Commit d3bc79c79662ef926ed90cea8226813961a5b6fb

Authored by bichao.dong
1 parent 5fb9eca4

remove node_modules

Showing 73 changed files with 0 additions and 4691 deletions

Too many changes to show.

To preserve performance only 73 of 3766 files are displayed.

images/node_modules/.bin/cake deleted 120000 → 0
1 -../coffee-script/bin/cake  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/coffee deleted 120000 → 0
1 -../coffee-script/bin/coffee  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/esparse deleted 120000 → 0
1 -../esprima/bin/esparse.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/esvalidate deleted 120000 → 0
1 -../esprima/bin/esvalidate.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/grunt-glue deleted 120000 → 0
1 -../grunt-glue/bin/grunt-glue  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/gulp deleted 120000 → 0
1 -../gulp/bin/gulp.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/js-yaml deleted 120000 → 0
1 -../js-yaml/bin/js-yaml.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/mkdirp deleted 120000 → 0
1 -../mkdirp/bin/cmd.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/nopt deleted 120000 → 0
1 -../nopt/bin/nopt.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/rimraf deleted 120000 → 0
1 -../rimraf/bin.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/semver deleted 120000 → 0
1 -../semver/bin/semver  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/strip-indent deleted 120000 → 0
1 -../strip-indent/cli.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/user-home deleted 120000 → 0
1 -../user-home/cli.js  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/.bin/which deleted 120000 → 0
1 -../which/bin/which  
2 \ No newline at end of file 0 \ No newline at end of file
images/node_modules/abbrev/.npmignore deleted 100644 → 0
1 -.nyc_output  
2 -nyc_output  
3 -node_modules  
4 -coverage  
images/node_modules/abbrev/.travis.yml deleted 100644 → 0
1 -language: node_js  
2 -node_js:  
3 - - '0.10'  
4 - - '0.12'  
5 - - 'iojs'  
images/node_modules/abbrev/CONTRIBUTING.md deleted 100644 → 0
1 - To get started, <a  
2 - href="http://www.clahub.com/agreements/isaacs/abbrev-js">sign the  
3 - Contributor License Agreement</a>.  
images/node_modules/abbrev/LICENSE deleted 100644 → 0
1 -The ISC License  
2 -  
3 -Copyright (c) Isaac Z. Schlueter and Contributors  
4 -  
5 -Permission to use, copy, modify, and/or distribute this software for any  
6 -purpose with or without fee is hereby granted, provided that the above  
7 -copyright notice and this permission notice appear in all copies.  
8 -  
9 -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES  
10 -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF  
11 -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR  
12 -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES  
13 -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN  
14 -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR  
15 -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  
images/node_modules/abbrev/README.md deleted 100644 → 0
1 -# abbrev-js  
2 -  
3 -Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).  
4 -  
5 -Usage:  
6 -  
7 - var abbrev = require("abbrev");  
8 - abbrev("foo", "fool", "folding", "flop");  
9 -  
10 - // returns:  
11 - { fl: 'flop'  
12 - , flo: 'flop'  
13 - , flop: 'flop'  
14 - , fol: 'folding'  
15 - , fold: 'folding'  
16 - , foldi: 'folding'  
17 - , foldin: 'folding'  
18 - , folding: 'folding'  
19 - , foo: 'foo'  
20 - , fool: 'fool'  
21 - }  
22 -  
23 -This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.  
images/node_modules/abbrev/abbrev.js deleted 100644 → 0
1 -  
2 -module.exports = exports = abbrev.abbrev = abbrev  
3 -  
4 -abbrev.monkeyPatch = monkeyPatch  
5 -  
6 -function monkeyPatch () {  
7 - Object.defineProperty(Array.prototype, 'abbrev', {  
8 - value: function () { return abbrev(this) },  
9 - enumerable: false, configurable: true, writable: true  
10 - })  
11 -  
12 - Object.defineProperty(Object.prototype, 'abbrev', {  
13 - value: function () { return abbrev(Object.keys(this)) },  
14 - enumerable: false, configurable: true, writable: true  
15 - })  
16 -}  
17 -  
18 -function abbrev (list) {  
19 - if (arguments.length !== 1 || !Array.isArray(list)) {  
20 - list = Array.prototype.slice.call(arguments, 0)  
21 - }  
22 - for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {  
23 - args[i] = typeof list[i] === "string" ? list[i] : String(list[i])  
24 - }  
25 -  
26 - // sort them lexicographically, so that they're next to their nearest kin  
27 - args = args.sort(lexSort)  
28 -  
29 - // walk through each, seeing how much it has in common with the next and previous  
30 - var abbrevs = {}  
31 - , prev = ""  
32 - for (var i = 0, l = args.length ; i < l ; i ++) {  
33 - var current = args[i]  
34 - , next = args[i + 1] || ""  
35 - , nextMatches = true  
36 - , prevMatches = true  
37 - if (current === next) continue  
38 - for (var j = 0, cl = current.length ; j < cl ; j ++) {  
39 - var curChar = current.charAt(j)  
40 - nextMatches = nextMatches && curChar === next.charAt(j)  
41 - prevMatches = prevMatches && curChar === prev.charAt(j)  
42 - if (!nextMatches && !prevMatches) {  
43 - j ++  
44 - break  
45 - }  
46 - }  
47 - prev = current  
48 - if (j === cl) {  
49 - abbrevs[current] = current  
50 - continue  
51 - }  
52 - for (var a = current.substr(0, j) ; j <= cl ; j ++) {  
53 - abbrevs[a] = current  
54 - a += current.charAt(j)  
55 - }  
56 - }  
57 - return abbrevs  
58 -}  
59 -  
60 -function lexSort (a, b) {  
61 - return a === b ? 0 : a > b ? 1 : -1  
62 -}  
images/node_modules/abbrev/package.json deleted 100644 → 0
1 -{  
2 - "_args": [  
3 - [  
4 - "abbrev@1",  
5 - "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/nopt"  
6 - ]  
7 - ],  
8 - "_from": "abbrev@>=1.0.0 <2.0.0",  
9 - "_id": "abbrev@1.0.7",  
10 - "_inCache": true,  
11 - "_installable": true,  
12 - "_location": "/abbrev",  
13 - "_nodeVersion": "2.0.1",  
14 - "_npmUser": {  
15 - "email": "isaacs@npmjs.com",  
16 - "name": "isaacs"  
17 - },  
18 - "_npmVersion": "2.10.1",  
19 - "_phantomChildren": {},  
20 - "_requested": {  
21 - "name": "abbrev",  
22 - "raw": "abbrev@1",  
23 - "rawSpec": "1",  
24 - "scope": null,  
25 - "spec": ">=1.0.0 <2.0.0",  
26 - "type": "range"  
27 - },  
28 - "_requiredBy": [  
29 - "/nopt"  
30 - ],  
31 - "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz",  
32 - "_shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843",  
33 - "_shrinkwrap": null,  
34 - "_spec": "abbrev@1",  
35 - "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/nopt",  
36 - "author": {  
37 - "email": "i@izs.me",  
38 - "name": "Isaac Z. Schlueter"  
39 - },  
40 - "bugs": {  
41 - "url": "https://github.com/isaacs/abbrev-js/issues"  
42 - },  
43 - "dependencies": {},  
44 - "description": "Like ruby's abbrev module, but in js",  
45 - "devDependencies": {  
46 - "tap": "^1.2.0"  
47 - },  
48 - "directories": {},  
49 - "dist": {  
50 - "shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843",  
51 - "tarball": "http://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"  
52 - },  
53 - "gitHead": "821d09ce7da33627f91bbd8ed631497ed6f760c2",  
54 - "homepage": "https://github.com/isaacs/abbrev-js#readme",  
55 - "license": "ISC",  
56 - "main": "abbrev.js",  
57 - "maintainers": [  
58 - {  
59 - "name": "isaacs",  
60 - "email": "i@izs.me"  
61 - }  
62 - ],  
63 - "name": "abbrev",  
64 - "optionalDependencies": {},  
65 - "readme": "ERROR: No README data found!",  
66 - "repository": {  
67 - "type": "git",  
68 - "url": "git+ssh://git@github.com/isaacs/abbrev-js.git"  
69 - },  
70 - "scripts": {  
71 - "test": "tap test.js --cov"  
72 - },  
73 - "version": "1.0.7"  
74 -}  
images/node_modules/abbrev/test.js deleted 100644 → 0
1 -var abbrev = require('./abbrev.js')  
2 -var assert = require("assert")  
3 -var util = require("util")  
4 -  
5 -console.log("TAP version 13")  
6 -var count = 0  
7 -  
8 -function test (list, expect) {  
9 - count++  
10 - var actual = abbrev(list)  
11 - assert.deepEqual(actual, expect,  
12 - "abbrev("+util.inspect(list)+") === " + util.inspect(expect) + "\n"+  
13 - "actual: "+util.inspect(actual))  
14 - actual = abbrev.apply(exports, list)  
15 - assert.deepEqual(abbrev.apply(exports, list), expect,  
16 - "abbrev("+list.map(JSON.stringify).join(",")+") === " + util.inspect(expect) + "\n"+  
17 - "actual: "+util.inspect(actual))  
18 - console.log('ok - ' + list.join(' '))  
19 -}  
20 -  
21 -test([ "ruby", "ruby", "rules", "rules", "rules" ],  
22 -{ rub: 'ruby'  
23 -, ruby: 'ruby'  
24 -, rul: 'rules'  
25 -, rule: 'rules'  
26 -, rules: 'rules'  
27 -})  
28 -test(["fool", "foom", "pool", "pope"],  
29 -{ fool: 'fool'  
30 -, foom: 'foom'  
31 -, poo: 'pool'  
32 -, pool: 'pool'  
33 -, pop: 'pope'  
34 -, pope: 'pope'  
35 -})  
36 -test(["a", "ab", "abc", "abcd", "abcde", "acde"],  
37 -{ a: 'a'  
38 -, ab: 'ab'  
39 -, abc: 'abc'  
40 -, abcd: 'abcd'  
41 -, abcde: 'abcde'  
42 -, ac: 'acde'  
43 -, acd: 'acde'  
44 -, acde: 'acde'  
45 -})  
46 -  
47 -console.log("1..%d", count)  
images/node_modules/ansi-regex/index.js deleted 100644 → 0
1 -'use strict';  
2 -module.exports = function () {  
3 - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;  
4 -};  
images/node_modules/ansi-regex/license deleted 100644 → 0
1 -The MIT License (MIT)  
2 -  
3 -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)  
4 -  
5 -Permission is hereby granted, free of charge, to any person obtaining a copy  
6 -of this software and associated documentation files (the "Software"), to deal  
7 -in the Software without restriction, including without limitation the rights  
8 -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell  
9 -copies of the Software, and to permit persons to whom the Software is  
10 -furnished to do so, subject to the following conditions:  
11 -  
12 -The above copyright notice and this permission notice shall be included in  
13 -all copies or substantial portions of the Software.  
14 -  
15 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
16 -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  
17 -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE  
18 -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  
19 -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,  
20 -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN  
21 -THE SOFTWARE.  
images/node_modules/ansi-regex/package.json deleted 100644 → 0
1 -{  
2 - "_args": [  
3 - [  
4 - "ansi-regex@^2.0.0",  
5 - "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/has-ansi"  
6 - ]  
7 - ],  
8 - "_from": "ansi-regex@>=2.0.0 <3.0.0",  
9 - "_id": "ansi-regex@2.0.0",  
10 - "_inCache": true,  
11 - "_installable": true,  
12 - "_location": "/ansi-regex",  
13 - "_nodeVersion": "0.12.5",  
14 - "_npmUser": {  
15 - "email": "sindresorhus@gmail.com",  
16 - "name": "sindresorhus"  
17 - },  
18 - "_npmVersion": "2.11.2",  
19 - "_phantomChildren": {},  
20 - "_requested": {  
21 - "name": "ansi-regex",  
22 - "raw": "ansi-regex@^2.0.0",  
23 - "rawSpec": "^2.0.0",  
24 - "scope": null,  
25 - "spec": ">=2.0.0 <3.0.0",  
26 - "type": "range"  
27 - },  
28 - "_requiredBy": [  
29 - "/has-ansi",  
30 - "/strip-ansi"  
31 - ],  
32 - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",  
33 - "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107",  
34 - "_shrinkwrap": null,  
35 - "_spec": "ansi-regex@^2.0.0",  
36 - "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/has-ansi",  
37 - "author": {  
38 - "email": "sindresorhus@gmail.com",  
39 - "name": "Sindre Sorhus",  
40 - "url": "sindresorhus.com"  
41 - },  
42 - "bugs": {  
43 - "url": "https://github.com/sindresorhus/ansi-regex/issues"  
44 - },  
45 - "dependencies": {},  
46 - "description": "Regular expression for matching ANSI escape codes",  
47 - "devDependencies": {  
48 - "mocha": "*"  
49 - },  
50 - "directories": {},  
51 - "dist": {  
52 - "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107",  
53 - "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"  
54 - },  
55 - "engines": {  
56 - "node": ">=0.10.0"  
57 - },  
58 - "files": [  
59 - "index.js"  
60 - ],  
61 - "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f",  
62 - "homepage": "https://github.com/sindresorhus/ansi-regex",  
63 - "keywords": [  
64 - "256",  
65 - "ansi",  
66 - "cli",  
67 - "color",  
68 - "colors",  
69 - "colour",  
70 - "command-line",  
71 - "console",  
72 - "escape",  
73 - "find",  
74 - "formatting",  
75 - "match",  
76 - "pattern",  
77 - "re",  
78 - "regex",  
79 - "regexp",  
80 - "rgb",  
81 - "shell",  
82 - "string",  
83 - "styles",  
84 - "terminal",  
85 - "test",  
86 - "text",  
87 - "tty",  
88 - "xterm"  
89 - ],  
90 - "license": "MIT",  
91 - "maintainers": [  
92 - {  
93 - "name": "sindresorhus",  
94 - "email": "sindresorhus@gmail.com"  
95 - },  
96 - {  
97 - "name": "jbnicolai",  
98 - "email": "jappelman@xebia.com"  
99 - }  
100 - ],  
101 - "name": "ansi-regex",  
102 - "optionalDependencies": {},  
103 - "readme": "ERROR: No README data found!",  
104 - "repository": {  
105 - "type": "git",  
106 - "url": "git+https://github.com/sindresorhus/ansi-regex.git"  
107 - },  
108 - "scripts": {  
109 - "test": "mocha test/test.js",  
110 - "view-supported": "node test/viewCodes.js"  
111 - },  
112 - "version": "2.0.0"  
113 -}  
images/node_modules/ansi-regex/readme.md deleted 100644 → 0
1 -# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex)  
2 -  
3 -> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)  
4 -  
5 -  
6 -## Install  
7 -  
8 -```  
9 -$ npm install --save ansi-regex  
10 -```  
11 -  
12 -  
13 -## Usage  
14 -  
15 -```js  
16 -var ansiRegex = require('ansi-regex');  
17 -  
18 -ansiRegex().test('\u001b[4mcake\u001b[0m');  
19 -//=> true  
20 -  
21 -ansiRegex().test('cake');  
22 -//=> false  
23 -  
24 -'\u001b[4mcake\u001b[0m'.match(ansiRegex());  
25 -//=> ['\u001b[4m', '\u001b[0m']  
26 -```  
27 -  
28 -  
29 -## License  
30 -  
31 -MIT © [Sindre Sorhus](http://sindresorhus.com)  
images/node_modules/ansi-styles/index.js deleted 100644 → 0
1 -'use strict';  
2 -  
3 -function assembleStyles () {  
4 - var styles = {  
5 - modifiers: {  
6 - reset: [0, 0],  
7 - bold: [1, 22], // 21 isn't widely supported and 22 does the same thing  
8 - dim: [2, 22],  
9 - italic: [3, 23],  
10 - underline: [4, 24],  
11 - inverse: [7, 27],  
12 - hidden: [8, 28],  
13 - strikethrough: [9, 29]  
14 - },  
15 - colors: {  
16 - black: [30, 39],  
17 - red: [31, 39],  
18 - green: [32, 39],  
19 - yellow: [33, 39],  
20 - blue: [34, 39],  
21 - magenta: [35, 39],  
22 - cyan: [36, 39],  
23 - white: [37, 39],  
24 - gray: [90, 39]  
25 - },  
26 - bgColors: {  
27 - bgBlack: [40, 49],  
28 - bgRed: [41, 49],  
29 - bgGreen: [42, 49],  
30 - bgYellow: [43, 49],  
31 - bgBlue: [44, 49],  
32 - bgMagenta: [45, 49],  
33 - bgCyan: [46, 49],  
34 - bgWhite: [47, 49]  
35 - }  
36 - };  
37 -  
38 - // fix humans  
39 - styles.colors.grey = styles.colors.gray;  
40 -  
41 - Object.keys(styles).forEach(function (groupName) {  
42 - var group = styles[groupName];  
43 -  
44 - Object.keys(group).forEach(function (styleName) {  
45 - var style = group[styleName];  
46 -  
47 - styles[styleName] = group[styleName] = {  
48 - open: '\u001b[' + style[0] + 'm',  
49 - close: '\u001b[' + style[1] + 'm'  
50 - };  
51 - });  
52 -  
53 - Object.defineProperty(styles, groupName, {  
54 - value: group,  
55 - enumerable: false  
56 - });  
57 - });  
58 -  
59 - return styles;  
60 -}  
61 -  
62 -Object.defineProperty(module, 'exports', {  
63 - enumerable: true,  
64 - get: assembleStyles  
65 -});  
images/node_modules/ansi-styles/license deleted 100644 → 0
1 -The MIT License (MIT)  
2 -  
3 -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)  
4 -  
5 -Permission is hereby granted, free of charge, to any person obtaining a copy  
6 -of this software and associated documentation files (the "Software"), to deal  
7 -in the Software without restriction, including without limitation the rights  
8 -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell  
9 -copies of the Software, and to permit persons to whom the Software is  
10 -furnished to do so, subject to the following conditions:  
11 -  
12 -The above copyright notice and this permission notice shall be included in  
13 -all copies or substantial portions of the Software.  
14 -  
15 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
16 -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  
17 -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE  
18 -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  
19 -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,  
20 -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN  
21 -THE SOFTWARE.  
images/node_modules/ansi-styles/package.json deleted 100644 → 0
1 -{  
2 - "_args": [  
3 - [  
4 - "ansi-styles@^2.1.0",  
5 - "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/chalk"  
6 - ]  
7 - ],  
8 - "_from": "ansi-styles@>=2.1.0 <3.0.0",  
9 - "_id": "ansi-styles@2.1.0",  
10 - "_inCache": true,  
11 - "_installable": true,  
12 - "_location": "/ansi-styles",  
13 - "_nodeVersion": "0.12.4",  
14 - "_npmUser": {  
15 - "email": "jappelman@xebia.com",  
16 - "name": "jbnicolai"  
17 - },  
18 - "_npmVersion": "2.10.1",  
19 - "_phantomChildren": {},  
20 - "_requested": {  
21 - "name": "ansi-styles",  
22 - "raw": "ansi-styles@^2.1.0",  
23 - "rawSpec": "^2.1.0",  
24 - "scope": null,  
25 - "spec": ">=2.1.0 <3.0.0",  
26 - "type": "range"  
27 - },  
28 - "_requiredBy": [  
29 - "/chalk"  
30 - ],  
31 - "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz",  
32 - "_shasum": "990f747146927b559a932bf92959163d60c0d0e2",  
33 - "_shrinkwrap": null,  
34 - "_spec": "ansi-styles@^2.1.0",  
35 - "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/chalk",  
36 - "author": {  
37 - "email": "sindresorhus@gmail.com",  
38 - "name": "Sindre Sorhus",  
39 - "url": "sindresorhus.com"  
40 - },  
41 - "bugs": {  
42 - "url": "https://github.com/chalk/ansi-styles/issues"  
43 - },  
44 - "dependencies": {},  
45 - "description": "ANSI escape codes for styling strings in the terminal",  
46 - "devDependencies": {  
47 - "mocha": "*"  
48 - },  
49 - "directories": {},  
50 - "dist": {  
51 - "shasum": "990f747146927b559a932bf92959163d60c0d0e2",  
52 - "tarball": "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz"  
53 - },  
54 - "engines": {  
55 - "node": ">=0.10.0"  
56 - },  
57 - "files": [  
58 - "index.js"  
59 - ],  
60 - "gitHead": "18421cbe4a2d93359ec2599a894f704be126d066",  
61 - "homepage": "https://github.com/chalk/ansi-styles",  
62 - "keywords": [  
63 - "256",  
64 - "ansi",  
65 - "cli",  
66 - "color",  
67 - "colors",  
68 - "colour",  
69 - "command-line",  
70 - "console",  
71 - "escape",  
72 - "formatting",  
73 - "log",  
74 - "logging",  
75 - "rgb",  
76 - "shell",  
77 - "string",  
78 - "styles",  
79 - "terminal",  
80 - "text",  
81 - "tty",  
82 - "xterm"  
83 - ],  
84 - "license": "MIT",  
85 - "maintainers": [  
86 - {  
87 - "name": "sindresorhus",  
88 - "email": "sindresorhus@gmail.com"  
89 - },  
90 - {  
91 - "name": "jbnicolai",  
92 - "email": "jappelman@xebia.com"  
93 - }  
94 - ],  
95 - "name": "ansi-styles",  
96 - "optionalDependencies": {},  
97 - "readme": "ERROR: No README data found!",  
98 - "repository": {  
99 - "type": "git",  
100 - "url": "git+https://github.com/chalk/ansi-styles.git"  
101 - },  
102 - "scripts": {  
103 - "test": "mocha"  
104 - },  
105 - "version": "2.1.0"  
106 -}  
images/node_modules/ansi-styles/readme.md deleted 100644 → 0
1 -# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)  
2 -  
3 -> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal  
4 -  
5 -You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.  
6 -  
7 -![](screenshot.png)  
8 -  
9 -  
10 -## Install  
11 -  
12 -```  
13 -$ npm install --save ansi-styles  
14 -```  
15 -  
16 -  
17 -## Usage  
18 -  
19 -```js  
20 -var ansi = require('ansi-styles');  
21 -  
22 -console.log(ansi.green.open + 'Hello world!' + ansi.green.close);  
23 -```  
24 -  
25 -  
26 -## API  
27 -  
28 -Each style has an `open` and `close` property.  
29 -  
30 -  
31 -## Styles  
32 -  
33 -### Modifiers  
34 -  
35 -- `reset`  
36 -- `bold`  
37 -- `dim`  
38 -- `italic` *(not widely supported)*  
39 -- `underline`  
40 -- `inverse`  
41 -- `hidden`  
42 -- `strikethrough` *(not widely supported)*  
43 -  
44 -### Colors  
45 -  
46 -- `black`  
47 -- `red`  
48 -- `green`  
49 -- `yellow`  
50 -- `blue`  
51 -- `magenta`  
52 -- `cyan`  
53 -- `white`  
54 -- `gray`  
55 -  
56 -### Background colors  
57 -  
58 -- `bgBlack`  
59 -- `bgRed`  
60 -- `bgGreen`  
61 -- `bgYellow`  
62 -- `bgBlue`  
63 -- `bgMagenta`  
64 -- `bgCyan`  
65 -- `bgWhite`  
66 -  
67 -  
68 -## Advanced usage  
69 -  
70 -By default you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.  
71 -  
72 -- `ansi.modifiers`  
73 -- `ansi.colors`  
74 -- `ansi.bgColors`  
75 -  
76 -  
77 -###### Example  
78 -  
79 -```js  
80 -console.log(ansi.colors.green.open);  
81 -```  
82 -  
83 -  
84 -## License  
85 -  
86 -MIT © [Sindre Sorhus](http://sindresorhus.com)  
images/node_modules/archy/.travis.yml deleted 100644 → 0
1 -language: node_js  
2 -node_js:  
3 - - 0.6  
4 - - 0.8  
images/node_modules/archy/LICENSE deleted 100644 → 0
1 -This software is released under the MIT license:  
2 -  
3 -Permission is hereby granted, free of charge, to any person obtaining a copy of  
4 -this software and associated documentation files (the "Software"), to deal in  
5 -the Software without restriction, including without limitation the rights to  
6 -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of  
7 -the Software, and to permit persons to whom the Software is furnished to do so,  
8 -subject to the following conditions:  
9 -  
10 -The above copyright notice and this permission notice shall be included in all  
11 -copies or substantial portions of the Software.  
12 -  
13 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
14 -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS  
15 -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR  
16 -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER  
17 -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  
18 -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  
images/node_modules/archy/examples/beep.js deleted 100644 → 0
1 -var archy = require('../');  
2 -var s = archy({  
3 - label : 'beep',  
4 - nodes : [  
5 - 'ity',  
6 - {  
7 - label : 'boop',  
8 - nodes : [  
9 - {  
10 - label : 'o_O',  
11 - nodes : [  
12 - {  
13 - label : 'oh',  
14 - nodes : [ 'hello', 'puny' ]  
15 - },  
16 - 'human'  
17 - ]  
18 - },  
19 - 'party\ntime!'  
20 - ]  
21 - }  
22 - ]  
23 -});  
24 -console.log(s);  
images/node_modules/archy/examples/multi_line.js deleted 100644 → 0
1 -var archy = require('../');  
2 -  
3 -var s = archy({  
4 - label : 'beep\none\ntwo',  
5 - nodes : [  
6 - 'ity',  
7 - {  
8 - label : 'boop',  
9 - nodes : [  
10 - {  
11 - label : 'o_O\nwheee',  
12 - nodes : [  
13 - {  
14 - label : 'oh',  
15 - nodes : [ 'hello', 'puny\nmeat' ]  
16 - },  
17 - 'creature'  
18 - ]  
19 - },  
20 - 'party\ntime!'  
21 - ]  
22 - }  
23 - ]  
24 -});  
25 -console.log(s);  
images/node_modules/archy/index.js deleted 100644 → 0
1 -module.exports = function archy (obj, prefix, opts) {  
2 - if (prefix === undefined) prefix = '';  
3 - if (!opts) opts = {};  
4 - var chr = function (s) {  
5 - var chars = {  
6 - '│' : '|',  
7 - '└' : '`',  
8 - '├' : '+',  
9 - '─' : '-',  
10 - '┬' : '-'  
11 - };  
12 - return opts.unicode === false ? chars[s] : s;  
13 - };  
14 -  
15 - if (typeof obj === 'string') obj = { label : obj };  
16 -  
17 - var nodes = obj.nodes || [];  
18 - var lines = (obj.label || '').split('\n');  
19 - var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' ';  
20 -  
21 - return prefix  
22 - + lines.join(splitter) + '\n'  
23 - + nodes.map(function (node, ix) {  
24 - var last = ix === nodes.length - 1;  
25 - var more = node.nodes && node.nodes.length;  
26 - var prefix_ = prefix + (last ? ' ' : chr('│')) + ' ';  
27 -  
28 - return prefix  
29 - + (last ? chr('└') : chr('├')) + chr('─')  
30 - + (more ? chr('┬') : chr('─')) + ' '  
31 - + archy(node, prefix_, opts).slice(prefix.length + 2)  
32 - ;  
33 - }).join('')  
34 - ;  
35 -};  
images/node_modules/archy/package.json deleted 100644 → 0
1 -{  
2 - "_args": [  
3 - [  
4 - "archy@^1.0.0",  
5 - "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/gulp"  
6 - ]  
7 - ],  
8 - "_from": "archy@>=1.0.0 <2.0.0",  
9 - "_id": "archy@1.0.0",  
10 - "_inCache": true,  
11 - "_installable": true,  
12 - "_location": "/archy",  
13 - "_npmUser": {  
14 - "email": "mail@substack.net",  
15 - "name": "substack"  
16 - },  
17 - "_npmVersion": "1.4.25",  
18 - "_phantomChildren": {},  
19 - "_requested": {  
20 - "name": "archy",  
21 - "raw": "archy@^1.0.0",  
22 - "rawSpec": "^1.0.0",  
23 - "scope": null,  
24 - "spec": ">=1.0.0 <2.0.0",  
25 - "type": "range"  
26 - },  
27 - "_requiredBy": [  
28 - "/gulp"  
29 - ],  
30 - "_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",  
31 - "_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",  
32 - "_shrinkwrap": null,  
33 - "_spec": "archy@^1.0.0",  
34 - "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/gulp",  
35 - "author": {  
36 - "email": "mail@substack.net",  
37 - "name": "James Halliday",  
38 - "url": "http://substack.net"  
39 - },  
40 - "bugs": {  
41 - "url": "https://github.com/substack/node-archy/issues"  
42 - },  
43 - "dependencies": {},  
44 - "description": "render nested hierarchies `npm ls` style with unicode pipes",  
45 - "devDependencies": {  
46 - "tap": "~0.3.3",  
47 - "tape": "~0.1.1"  
48 - },  
49 - "directories": {},  
50 - "dist": {  
51 - "shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",  
52 - "tarball": "http://registry.npmjs.org/archy/-/archy-1.0.0.tgz"  
53 - },  
54 - "gitHead": "30223c16191e877bf027b15b12daf077b9b55b84",  
55 - "homepage": "https://github.com/substack/node-archy",  
56 - "keywords": [  
57 - "hierarchy",  
58 - "npm ls",  
59 - "pretty",  
60 - "print",  
61 - "unicode"  
62 - ],  
63 - "license": "MIT",  
64 - "main": "index.js",  
65 - "maintainers": [  
66 - {  
67 - "name": "substack",  
68 - "email": "mail@substack.net"  
69 - }  
70 - ],  
71 - "name": "archy",  
72 - "optionalDependencies": {},  
73 - "readme": "ERROR: No README data found!",  
74 - "repository": {  
75 - "type": "git",  
76 - "url": "git+ssh://git@github.com/substack/node-archy.git"  
77 - },  
78 - "scripts": {  
79 - "test": "tap test"  
80 - },  
81 - "testling": {  
82 - "browsers": {  
83 - "chrome": [  
84 - "20.0"  
85 - ],  
86 - "firefox": [  
87 - "10.0",  
88 - "15.0"  
89 - ],  
90 - "iexplore": [  
91 - "6.0",  
92 - "7.0",  
93 - "8.0",  
94 - "9.0"  
95 - ],  
96 - "opera": [  
97 - "12.0"  
98 - ],  
99 - "safari": [  
100 - "5.1"  
101 - ]  
102 - },  
103 - "files": "test/*.js"  
104 - },  
105 - "version": "1.0.0"  
106 -}  
images/node_modules/archy/readme.markdown deleted 100644 → 0
1 -# archy  
2 -  
3 -Render nested hierarchies `npm ls` style with unicode pipes.  
4 -  
5 -[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy)  
6 -  
7 -[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy)  
8 -  
9 -# example  
10 -  
11 -``` js  
12 -var archy = require('archy');  
13 -var s = archy({  
14 - label : 'beep',  
15 - nodes : [  
16 - 'ity',  
17 - {  
18 - label : 'boop',  
19 - nodes : [  
20 - {  
21 - label : 'o_O',  
22 - nodes : [  
23 - {  
24 - label : 'oh',  
25 - nodes : [ 'hello', 'puny' ]  
26 - },  
27 - 'human'  
28 - ]  
29 - },  
30 - 'party\ntime!'  
31 - ]  
32 - }  
33 - ]  
34 -});  
35 -console.log(s);  
36 -```  
37 -  
38 -output  
39 -  
40 -```  
41 -beep  
42 -├── ity  
43 -└─┬ boop  
44 - ├─┬ o_O  
45 - │ ├─┬ oh  
46 - │ │ ├── hello  
47 - │ │ └── puny  
48 - │ └── human  
49 - └── party  
50 - time!  
51 -```  
52 -  
53 -# methods  
54 -  
55 -var archy = require('archy')  
56 -  
57 -## archy(obj, prefix='', opts={})  
58 -  
59 -Return a string representation of `obj` with unicode pipe characters like how  
60 -`npm ls` looks.  
61 -  
62 -`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields.  
63 -`'label'` is a string of text to display at a node level and `'nodes'` is an  
64 -array of the descendents of the current node.  
65 -  
66 -If a node is a string, that string will be used as the `'label'` and an empty  
67 -array of `'nodes'` will be used.  
68 -  
69 -`prefix` gets prepended to all the lines and is used by the algorithm to  
70 -recursively update.  
71 -  
72 -If `'label'` has newlines they will be indented at the present indentation level  
73 -with the current prefix.  
74 -  
75 -To disable unicode results in favor of all-ansi output set `opts.unicode` to  
76 -`false`.  
77 -  
78 -# install  
79 -  
80 -With [npm](http://npmjs.org) do:  
81 -  
82 -```  
83 -npm install archy  
84 -```  
85 -  
86 -# license  
87 -  
88 -MIT  
images/node_modules/archy/test/beep.js deleted 100644 → 0
1 -var test = require('tape');  
2 -var archy = require('../');  
3 -  
4 -test('beep', function (t) {  
5 - var s = archy({  
6 - label : 'beep',  
7 - nodes : [  
8 - 'ity',  
9 - {  
10 - label : 'boop',  
11 - nodes : [  
12 - {  
13 - label : 'o_O',  
14 - nodes : [  
15 - {  
16 - label : 'oh',  
17 - nodes : [ 'hello', 'puny' ]  
18 - },  
19 - 'human'  
20 - ]  
21 - },  
22 - 'party!'  
23 - ]  
24 - }  
25 - ]  
26 - });  
27 - t.equal(s, [  
28 - 'beep',  
29 - '├── ity',  
30 - '└─┬ boop',  
31 - ' ├─┬ o_O',  
32 - ' │ ├─┬ oh',  
33 - ' │ │ ├── hello',  
34 - ' │ │ └── puny',  
35 - ' │ └── human',  
36 - ' └── party!',  
37 - ''  
38 - ].join('\n'));  
39 - t.end();  
40 -});  
images/node_modules/archy/test/multi_line.js deleted 100644 → 0
1 -var test = require('tape');  
2 -var archy = require('../');  
3 -  
4 -test('multi-line', function (t) {  
5 - var s = archy({  
6 - label : 'beep\none\ntwo',  
7 - nodes : [  
8 - 'ity',  
9 - {  
10 - label : 'boop',  
11 - nodes : [  
12 - {  
13 - label : 'o_O\nwheee',  
14 - nodes : [  
15 - {  
16 - label : 'oh',  
17 - nodes : [ 'hello', 'puny\nmeat' ]  
18 - },  
19 - 'creature'  
20 - ]  
21 - },  
22 - 'party\ntime!'  
23 - ]  
24 - }  
25 - ]  
26 - });  
27 - t.equal(s, [  
28 - 'beep',  
29 - '│ one',  
30 - '│ two',  
31 - '├── ity',  
32 - '└─┬ boop',  
33 - ' ├─┬ o_O',  
34 - ' │ │ wheee',  
35 - ' │ ├─┬ oh',  
36 - ' │ │ ├── hello',  
37 - ' │ │ └── puny',  
38 - ' │ │ meat',  
39 - ' │ └── creature',  
40 - ' └── party',  
41 - ' time!',  
42 - ''  
43 - ].join('\n'));  
44 - t.end();  
45 -});  
images/node_modules/archy/test/non_unicode.js deleted 100644 → 0
1 -var test = require('tape');  
2 -var archy = require('../');  
3 -  
4 -test('beep', function (t) {  
5 - var s = archy({  
6 - label : 'beep',  
7 - nodes : [  
8 - 'ity',  
9 - {  
10 - label : 'boop',  
11 - nodes : [  
12 - {  
13 - label : 'o_O',  
14 - nodes : [  
15 - {  
16 - label : 'oh',  
17 - nodes : [ 'hello', 'puny' ]  
18 - },  
19 - 'human'  
20 - ]  
21 - },  
22 - 'party!'  
23 - ]  
24 - }  
25 - ]  
26 - }, '', { unicode : false });  
27 - t.equal(s, [  
28 - 'beep',  
29 - '+-- ity',  
30 - '`-- boop',  
31 - ' +-- o_O',  
32 - ' | +-- oh',  
33 - ' | | +-- hello',  
34 - ' | | `-- puny',  
35 - ' | `-- human',  
36 - ' `-- party!',  
37 - ''  
38 - ].join('\n'));  
39 - t.end();  
40 -});  
images/node_modules/argparse/HISTORY.md deleted 100644 → 0
1 -0.1.16 / 2013-12-01  
2 --------------------  
3 -  
4 -* Maintenance release. Updated dependencies and docs.  
5 -  
6 -  
7 -0.1.15 / 2013-05-13  
8 --------------------  
9 -  
10 -* Fixed #55, @trebor89  
11 -  
12 -  
13 -0.1.14 / 2013-05-12  
14 --------------------  
15 -  
16 -* Fixed #62, @maxtaco  
17 -  
18 -  
19 -0.1.13 / 2013-04-08  
20 --------------------  
21 -  
22 -* Added `.npmignore` to reduce package size  
23 -  
24 -  
25 -0.1.12 / 2013-02-10  
26 --------------------  
27 -  
28 -* Fixed conflictHandler (#46), @hpaulj  
29 -  
30 -  
31 -0.1.11 / 2013-02-07  
32 --------------------  
33 -  
34 -* Multiple bugfixes, @hpaulj  
35 -* Added 70+ tests (ported from python), @hpaulj  
36 -* Added conflictHandler, @applepicke  
37 -* Added fromfilePrefixChar, @hpaulj  
38 -  
39 -  
40 -0.1.10 / 2012-12-30  
41 --------------------  
42 -  
43 -* Added [mutual exclusion](http://docs.python.org/dev/library/argparse.html#mutual-exclusion)  
44 - support, thanks to @hpaulj  
45 -* Fixed options check for `storeConst` & `appendConst` actions, thanks to @hpaulj  
46 -  
47 -  
48 -0.1.9 / 2012-12-27  
49 -------------------  
50 -  
51 -* Fixed option dest interferens with other options (issue #23), thanks to @hpaulj  
52 -* Fixed default value behavior with `*` positionals, thanks to @hpaulj  
53 -* Improve `getDefault()` behavior, thanks to @hpaulj  
54 -* Imrove negative argument parsing, thanks to @hpaulj  
55 -  
56 -  
57 -0.1.8 / 2012-12-01  
58 -------------------  
59 -  
60 -* Fixed parser parents (issue #19), thanks to @hpaulj  
61 -* Fixed negative argument parse (issue #20), thanks to @hpaulj  
62 -  
63 -  
64 -0.1.7 / 2012-10-14  
65 -------------------  
66 -  
67 -* Fixed 'choices' argument parse (issue #16)  
68 -* Fixed stderr output (issue #15)  
69 -  
70 -  
71 -0.1.6 / 2012-09-09  
72 -------------------  
73 -  
74 -* Fixed check for conflict of options (thanks to @tomxtobin)  
75 -  
76 -  
77 -0.1.5 / 2012-09-03  
78 -------------------  
79 -  
80 -* Fix parser #setDefaults method (thanks to @tomxtobin)  
81 -  
82 -  
83 -0.1.4 / 2012-07-30  
84 -------------------  
85 -  
86 -* Fixed pseudo-argument support (thanks to @CGamesPlay)  
87 -* Fixed addHelp default (should be true), if not set (thanks to @benblank)  
88 -  
89 -  
90 -0.1.3 / 2012-06-27  
91 -------------------  
92 -  
93 -* Fixed formatter api name: Formatter -> HelpFormatter  
94 -  
95 -  
96 -0.1.2 / 2012-05-29  
97 -------------------  
98 -  
99 -* Added basic tests  
100 -* Removed excess whitespace in help  
101 -* Fixed error reporting, when parcer with subcommands  
102 - called with empty arguments  
103 -  
104 -  
105 -0.1.1 / 2012-05-23  
106 -------------------  
107 -  
108 -* Fixed line wrapping in help formatter  
109 -* Added better error reporting on invalid arguments  
110 -  
111 -  
112 -0.1.0 / 2012-05-16  
113 -------------------  
114 -  
115 -* First release.  
images/node_modules/argparse/LICENSE deleted 100644 → 0
1 -(The MIT License)  
2 -  
3 -Copyright (C) 2012 by Vitaly Puzrin  
4 -  
5 -Permission is hereby granted, free of charge, to any person obtaining a copy  
6 -of this software and associated documentation files (the "Software"), to deal  
7 -in the Software without restriction, including without limitation the rights  
8 -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell  
9 -copies of the Software, and to permit persons to whom the Software is  
10 -furnished to do so, subject to the following conditions:  
11 -  
12 -The above copyright notice and this permission notice shall be included in  
13 -all copies or substantial portions of the Software.  
14 -  
15 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
16 -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  
17 -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE  
18 -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  
19 -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,  
20 -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN  
21 -THE SOFTWARE.  
images/node_modules/argparse/README.md deleted 100644 → 0
1 -argparse  
2 -========  
3 -  
4 -[![Build Status](https://secure.travis-ci.org/nodeca/argparse.png?branch=master)](http://travis-ci.org/nodeca/argparse)  
5 -  
6 -CLI arguments parser for node.js. Javascript port of python's  
7 -[argparse](http://docs.python.org/dev/library/argparse.html) module  
8 -(original version 3.2). That's a full port, except some very rare options,  
9 -recorded in issue tracker.  
10 -  
11 -**NB.** Method names changed to camelCase. See [generated docs](http://nodeca.github.com/argparse/).  
12 -  
13 -  
14 -Example  
15 -=======  
16 -  
17 -test.js file:  
18 -  
19 -```javascript  
20 -#!/usr/bin/env node  
21 -'use strict';  
22 -  
23 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
24 -var parser = new ArgumentParser({  
25 - version: '0.0.1',  
26 - addHelp:true,  
27 - description: 'Argparse example'  
28 -});  
29 -parser.addArgument(  
30 - [ '-f', '--foo' ],  
31 - {  
32 - help: 'foo bar'  
33 - }  
34 -);  
35 -parser.addArgument(  
36 - [ '-b', '--bar' ],  
37 - {  
38 - help: 'bar foo'  
39 - }  
40 -);  
41 -var args = parser.parseArgs();  
42 -console.dir(args);  
43 -```  
44 -  
45 -Display help:  
46 -  
47 -```  
48 -$ ./test.js -h  
49 -usage: example.js [-h] [-v] [-f FOO] [-b BAR]  
50 -  
51 -Argparse example  
52 -  
53 -Optional arguments:  
54 - -h, --help Show this help message and exit.  
55 - -v, --version Show program's version number and exit.  
56 - -f FOO, --foo FOO foo bar  
57 - -b BAR, --bar BAR bar foo  
58 -```  
59 -  
60 -Parse arguments:  
61 -  
62 -```  
63 -$ ./test.js -f=3 --bar=4  
64 -{ foo: '3', bar: '4' }  
65 -```  
66 -  
67 -More [examples](https://github.com/nodeca/argparse/tree/master/examples).  
68 -  
69 -  
70 -ArgumentParser objects  
71 -======================  
72 -  
73 -```  
74 -new ArgumentParser({paramters hash});  
75 -```  
76 -  
77 -Creates a new ArgumentParser object.  
78 -  
79 -**Supported params:**  
80 -  
81 -- ```description``` - Text to display before the argument help.  
82 -- ```epilog``` - Text to display after the argument help.  
83 -- ```addHelp``` - Add a -h/–help option to the parser. (default: true)  
84 -- ```argumentDefault``` - Set the global default value for arguments. (default: null)  
85 -- ```parents``` - A list of ArgumentParser objects whose arguments should also be included.  
86 -- ```prefixChars``` - The set of characters that prefix optional arguments. (default: ‘-‘)  
87 -- ```formatterClass``` - A class for customizing the help output.  
88 -- ```prog``` - The name of the program (default: `path.basename(process.argv[1])`)  
89 -- ```usage``` - The string describing the program usage (default: generated)  
90 -- ```conflictHandler``` - Usually unnecessary, defines strategy for resolving conflicting optionals.  
91 -  
92 -**Not supportied yet**  
93 -  
94 -- ```fromfilePrefixChars``` - The set of characters that prefix files from which additional arguments should be read.  
95 -  
96 -  
97 -Details in [original ArgumentParser guide](http://docs.python.org/dev/library/argparse.html#argumentparser-objects)  
98 -  
99 -  
100 -addArgument() method  
101 -====================  
102 -  
103 -```  
104 -ArgumentParser.addArgument([names or flags], {options})  
105 -```  
106 -  
107 -Defines how a single command-line argument should be parsed.  
108 -  
109 -- ```name or flags``` - Either a name or a list of option strings, e.g. foo or -f, --foo.  
110 -  
111 -Options:  
112 -  
113 -- ```action``` - The basic type of action to be taken when this argument is encountered at the command line.  
114 -- ```nargs```- The number of command-line arguments that should be consumed.  
115 -- ```constant``` - A constant value required by some action and nargs selections.  
116 -- ```defaultValue``` - The value produced if the argument is absent from the command line.  
117 -- ```type``` - The type to which the command-line argument should be converted.  
118 -- ```choices``` - A container of the allowable values for the argument.  
119 -- ```required``` - Whether or not the command-line option may be omitted (optionals only).  
120 -- ```help``` - A brief description of what the argument does.  
121 -- ```metavar``` - A name for the argument in usage messages.  
122 -- ```dest``` - The name of the attribute to be added to the object returned by parseArgs().  
123 -  
124 -Details in [original add_argument guide](http://docs.python.org/dev/library/argparse.html#the-add-argument-method)  
125 -  
126 -  
127 -Action (some details)  
128 -================  
129 -  
130 -ArgumentParser objects associate command-line arguments with actions.  
131 -These actions can do just about anything with the command-line arguments associated  
132 -with them, though most actions simply add an attribute to the object returned by  
133 -parseArgs(). The action keyword argument specifies how the command-line arguments  
134 -should be handled. The supported actions are:  
135 -  
136 -- ```store``` - Just stores the argument’s value. This is the default action.  
137 -- ```storeConst``` - Stores value, specified by the const keyword argument.  
138 - (Note that the const keyword argument defaults to the rather unhelpful None.)  
139 - The 'storeConst' action is most commonly used with optional arguments, that  
140 - specify some sort of flag.  
141 -- ```storeTrue``` and ```storeFalse``` - Stores values True and False  
142 - respectively. These are special cases of 'storeConst'.  
143 -- ```append``` - Stores a list, and appends each argument value to the list.  
144 - This is useful to allow an option to be specified multiple times.  
145 -- ```appendConst``` - Stores a list, and appends value, specified by the  
146 - const keyword argument to the list. (Note, that the const keyword argument defaults  
147 - is None.) The 'appendConst' action is typically used when multiple arguments need  
148 - to store constants to the same list.  
149 -- ```count``` - Counts the number of times a keyword argument occurs. For example,  
150 - used for increasing verbosity levels.  
151 -- ```help``` - Prints a complete help message for all the options in the current  
152 - parser and then exits. By default a help action is automatically added to the parser.  
153 - See ArgumentParser for details of how the output is created.  
154 -- ```version``` - Prints version information and exit. Expects a `version=`  
155 - keyword argument in the addArgument() call.  
156 -  
157 -Details in [original action guide](http://docs.python.org/dev/library/argparse.html#action)  
158 -  
159 -  
160 -Sub-commands  
161 -============  
162 -  
163 -ArgumentParser.addSubparsers()  
164 -  
165 -Many programs split their functionality into a number of sub-commands, for  
166 -example, the svn program can invoke sub-commands like `svn checkout`, `svn update`,  
167 -and `svn commit`. Splitting up functionality this way can be a particularly good  
168 -idea when a program performs several different functions which require different  
169 -kinds of command-line arguments. `ArgumentParser` supports creation of such  
170 -sub-commands with `addSubparsers()` method. The `addSubparsers()` method is  
171 -normally called with no arguments and returns an special action object.  
172 -This object has a single method `addParser()`, which takes a command name and  
173 -any `ArgumentParser` constructor arguments, and returns an `ArgumentParser` object  
174 -that can be modified as usual.  
175 -  
176 -Example:  
177 -  
178 -sub_commands.js  
179 -```javascript  
180 -#!/usr/bin/env node  
181 -'use strict';  
182 -  
183 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
184 -var parser = new ArgumentParser({  
185 - version: '0.0.1',  
186 - addHelp:true,  
187 - description: 'Argparse examples: sub-commands',  
188 -});  
189 -  
190 -var subparsers = parser.addSubparsers({  
191 - title:'subcommands',  
192 - dest:"subcommand_name"  
193 -});  
194 -  
195 -var bar = subparsers.addParser('c1', {addHelp:true});  
196 -bar.addArgument(  
197 - [ '-f', '--foo' ],  
198 - {  
199 - action: 'store',  
200 - help: 'foo3 bar3'  
201 - }  
202 -);  
203 -var bar = subparsers.addParser(  
204 - 'c2',  
205 - {aliases:['co'], addHelp:true}  
206 -);  
207 -bar.addArgument(  
208 - [ '-b', '--bar' ],  
209 - {  
210 - action: 'store',  
211 - type: 'int',  
212 - help: 'foo3 bar3'  
213 - }  
214 -);  
215 -  
216 -var args = parser.parseArgs();  
217 -console.dir(args);  
218 -  
219 -```  
220 -  
221 -Details in [original sub-commands guide](http://docs.python.org/dev/library/argparse.html#sub-commands)  
222 -  
223 -  
224 -Contributors  
225 -============  
226 -  
227 -- [Eugene Shkuropat](https://github.com/shkuropat)  
228 -- [Paul Jacobson](https://github.com/hpaulj)  
229 -  
230 -[others](https://github.com/nodeca/argparse/graphs/contributors)  
231 -  
232 -License  
233 -=======  
234 -  
235 -Copyright (c) 2012 [Vitaly Puzrin](https://github.com/puzrin).  
236 -Released under the MIT license. See  
237 -[LICENSE](https://github.com/nodeca/argparse/blob/master/LICENSE) for details.  
238 -  
239 -  
images/node_modules/argparse/examples/arguments.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -var parser = new ArgumentParser({  
6 - version: '0.0.1',  
7 - addHelp: true,  
8 - description: 'Argparse examples: arguments'  
9 -});  
10 -parser.addArgument(  
11 - [ '-f', '--foo' ],  
12 - {  
13 - help: 'foo bar'  
14 - }  
15 -);  
16 -parser.addArgument(  
17 - [ '-b', '--bar' ],  
18 - {  
19 - help: 'bar foo'  
20 - }  
21 -);  
22 -  
23 -  
24 -parser.printHelp();  
25 -console.log('-----------');  
26 -  
27 -var args;  
28 -args = parser.parseArgs('-f 1 -b2'.split(' '));  
29 -console.dir(args);  
30 -console.log('-----------');  
31 -args = parser.parseArgs('-f=3 --bar=4'.split(' '));  
32 -console.dir(args);  
33 -console.log('-----------');  
34 -args = parser.parseArgs('--foo 5 --bar 6'.split(' '));  
35 -console.dir(args);  
36 -console.log('-----------');  
images/node_modules/argparse/examples/choice.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -var parser = new ArgumentParser({  
6 - version: '0.0.1',  
7 - addHelp: true,  
8 - description: 'Argparse examples: choice'  
9 -});  
10 -  
11 -parser.addArgument(['foo'], {choices: 'abc'});  
12 -  
13 -parser.printHelp();  
14 -console.log('-----------');  
15 -  
16 -var args;  
17 -args = parser.parseArgs(['c']);  
18 -console.dir(args);  
19 -console.log('-----------');  
20 -parser.parseArgs(['X']);  
21 -console.dir(args);  
22 -  
images/node_modules/argparse/examples/constants.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -var parser = new ArgumentParser({  
6 - version: '0.0.1',  
7 - addHelp: true,  
8 - description: 'Argparse examples: constant'  
9 -});  
10 -  
11 -parser.addArgument(  
12 - [ '-a'],  
13 - {  
14 - action: 'storeConst',  
15 - dest: 'answer',  
16 - help: 'store constant',  
17 - constant: 42  
18 - }  
19 -);  
20 -parser.addArgument(  
21 - [ '--str' ],  
22 - {  
23 - action: 'appendConst',  
24 - dest: 'types',  
25 - help: 'append constant "str" to types',  
26 - constant: 'str'  
27 - }  
28 -);  
29 -parser.addArgument(  
30 - [ '--int' ],  
31 - {  
32 - action: 'appendConst',  
33 - dest: 'types',  
34 - help: 'append constant "int" to types',  
35 - constant: 'int'  
36 - }  
37 -);  
38 -  
39 -parser.addArgument(  
40 - [ '--true' ],  
41 - {  
42 - action: 'storeTrue',  
43 - help: 'store true constant'  
44 - }  
45 -);  
46 -parser.addArgument(  
47 - [ '--false' ],  
48 - {  
49 - action: 'storeFalse',  
50 - help: 'store false constant'  
51 - }  
52 -);  
53 -  
54 -parser.printHelp();  
55 -console.log('-----------');  
56 -  
57 -var args;  
58 -args = parser.parseArgs('-a --str --int --true'.split(' '));  
59 -console.dir(args);  
images/node_modules/argparse/examples/help.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -var parser = new ArgumentParser({  
6 - version: '0.0.1',  
7 - addHelp: true,  
8 - description: 'Argparse examples: help',  
9 - epilog: 'help epilog',  
10 - prog: 'help_example_prog',  
11 - usage: 'Usage %(prog)s <agrs>'  
12 -});  
13 -parser.printHelp();  
images/node_modules/argparse/examples/nargs.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -var parser = new ArgumentParser({  
6 - version: '0.0.1',  
7 - addHelp: true,  
8 - description: 'Argparse examples: nargs'  
9 -});  
10 -parser.addArgument(  
11 - [ '-f', '--foo' ],  
12 - {  
13 - help: 'foo bar',  
14 - nargs: 1  
15 - }  
16 -);  
17 -parser.addArgument(  
18 - [ '-b', '--bar' ],  
19 - {  
20 - help: 'bar foo',  
21 - nargs: '*'  
22 - }  
23 -);  
24 -  
25 -parser.printHelp();  
26 -console.log('-----------');  
27 -  
28 -var args;  
29 -args = parser.parseArgs('--foo a --bar c d'.split(' '));  
30 -console.dir(args);  
31 -console.log('-----------');  
32 -args = parser.parseArgs('--bar b c f --foo a'.split(' '));  
33 -console.dir(args);  
images/node_modules/argparse/examples/parents.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -  
6 -var args;  
7 -var parent_parser = new ArgumentParser({ addHelp: false });  
8 -// note addHelp:false to prevent duplication of the -h option  
9 -parent_parser.addArgument(  
10 - ['--parent'],  
11 - { type: 'int', description: 'parent' }  
12 -);  
13 -  
14 -var foo_parser = new ArgumentParser({  
15 - parents: [ parent_parser ],  
16 - description: 'child1'  
17 -});  
18 -foo_parser.addArgument(['foo']);  
19 -args = foo_parser.parseArgs(['--parent', '2', 'XXX']);  
20 -console.log(args);  
21 -  
22 -var bar_parser = new ArgumentParser({  
23 - parents: [ parent_parser ],  
24 - description: 'child2'  
25 -});  
26 -bar_parser.addArgument(['--bar']);  
27 -args = bar_parser.parseArgs(['--bar', 'YYY']);  
28 -console.log(args);  
images/node_modules/argparse/examples/prefix_chars.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -var parser = new ArgumentParser({  
6 - version: '0.0.1',  
7 - addHelp: true,  
8 - description: 'Argparse examples: prefix_chars',  
9 - prefixChars: '-+'  
10 -});  
11 -parser.addArgument(['+f', '++foo']);  
12 -parser.addArgument(['++bar'], {action: 'storeTrue'});  
13 -  
14 -parser.printHelp();  
15 -console.log('-----------');  
16 -  
17 -var args;  
18 -args = parser.parseArgs(['+f', '1']);  
19 -console.dir(args);  
20 -args = parser.parseArgs(['++bar']);  
21 -console.dir(args);  
22 -args = parser.parseArgs(['++foo', '2', '++bar']);  
23 -console.dir(args);  
images/node_modules/argparse/examples/sub_commands.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -'use strict';  
3 -  
4 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
5 -var parser = new ArgumentParser({  
6 - version: '0.0.1',  
7 - addHelp: true,  
8 - description: 'Argparse examples: sub-commands'  
9 -});  
10 -  
11 -var subparsers = parser.addSubparsers({  
12 - title: 'subcommands',  
13 - dest: "subcommand_name"  
14 -});  
15 -  
16 -var bar = subparsers.addParser('c1', {addHelp: true, help: 'c1 help'});  
17 -bar.addArgument(  
18 - [ '-f', '--foo' ],  
19 - {  
20 - action: 'store',  
21 - help: 'foo3 bar3'  
22 - }  
23 -);  
24 -var bar = subparsers.addParser(  
25 - 'c2',  
26 - {aliases: ['co'], addHelp: true, help: 'c2 help'}  
27 -);  
28 -bar.addArgument(  
29 - [ '-b', '--bar' ],  
30 - {  
31 - action: 'store',  
32 - type: 'int',  
33 - help: 'foo3 bar3'  
34 - }  
35 -);  
36 -parser.printHelp();  
37 -console.log('-----------');  
38 -  
39 -var args;  
40 -args = parser.parseArgs('c1 -f 2'.split(' '));  
41 -console.dir(args);  
42 -console.log('-----------');  
43 -args = parser.parseArgs('c2 -b 1'.split(' '));  
44 -console.dir(args);  
45 -console.log('-----------');  
46 -args = parser.parseArgs('co -b 1'.split(' '));  
47 -console.dir(args);  
48 -console.log('-----------');  
49 -parser.parseArgs(['c1', '-h']);  
images/node_modules/argparse/examples/sum.js deleted 100755 → 0
1 -#!/usr/bin/env node  
2 -  
3 -'use strict';  
4 -  
5 -  
6 -var ArgumentParser = require('../lib/argparse').ArgumentParser;  
7 -var parser = new ArgumentParser({ description: 'Process some integers.' });  
8 -  
9 -  
10 -function sum(arr) {  
11 - return arr.reduce(function (a, b) {  
12 - return a + b;  
13 - }, 0);  
14 -}  
15 -function max(arr) {  
16 - return Math.max.apply(Math, arr);  
17 -}  
18 -  
19 -  
20 -parser.addArgument(['integers'], {  
21 - metavar: 'N',  
22 - type: 'int',  
23 - nargs: '+',  
24 - help: 'an integer for the accumulator'  
25 -});  
26 -parser.addArgument(['--sum'], {  
27 - dest: 'accumulate',  
28 - action: 'storeConst',  
29 - constant: sum,  
30 - defaultValue: max,  
31 - help: 'sum the integers (default: find the max)'  
32 -});  
33 -  
34 -var args = parser.parseArgs('--sum 1 2 -1'.split(' '));  
35 -console.log(args.accumulate(args.integers));  
images/node_modules/argparse/examples/testformatters.js deleted 100644 → 0
1 -'use strict';  
2 -  
3 -var a, group, parser, helptext;  
4 -  
5 -var assert = require('assert');  
6 -var _ = require('underscore');  
7 -_.str = require('underscore.string');  
8 -var print = function () {  
9 - return console.log.apply(console, arguments);  
10 - };  
11 -// print = function () {};  
12 -  
13 -var argparse = require('argparse');  
14 -  
15 -print("TEST argparse.ArgumentDefaultsHelpFormatter");  
16 -  
17 -parser = new argparse.ArgumentParser({  
18 - debug: true,  
19 - formatterClass: argparse.ArgumentDefaultsHelpFormatter,  
20 - description: 'description'  
21 -});  
22 -  
23 -parser.addArgument(['--foo'], {  
24 - help: 'foo help - oh and by the way, %(defaultValue)s'  
25 -});  
26 -  
27 -parser.addArgument(['--bar'], {  
28 - action: 'storeTrue',  
29 - help: 'bar help'  
30 -});  
31 -  
32 -parser.addArgument(['spam'], {  
33 - help: 'spam help'  
34 -});  
35 -  
36 -parser.addArgument(['badger'], {  
37 - nargs: '?',  
38 - defaultValue: 'wooden',  
39 - help: 'badger help'  
40 -});  
41 -  
42 -group = parser.addArgumentGroup({  
43 - title: 'title',  
44 - description: 'group description'  
45 -});  
46 -  
47 -group.addArgument(['--baz'], {  
48 - type: 'int',  
49 - defaultValue: 42,  
50 - help: 'baz help'  
51 -});  
52 -  
53 -helptext = parser.formatHelp();  
54 -print(helptext);  
55 -// test selected clips  
56 -assert(helptext.match(/badger help \(default: wooden\)/));  
57 -assert(helptext.match(/foo help - oh and by the way, null/));  
58 -assert(helptext.match(/bar help \(default: false\)/));  
59 -assert(helptext.match(/title:\n {2}group description/)); // test indent  
60 -assert(helptext.match(/baz help \(default: 42\)/im));  
61 -  
62 -/*  
63 -usage: PROG [-h] [--foo FOO] [--bar] [--baz BAZ] spam [badger]  
64 -  
65 -description  
66 -  
67 -positional arguments:  
68 - spam spam help  
69 - badger badger help (default: wooden)  
70 -  
71 -optional arguments:  
72 - -h, --help show this help message and exit  
73 - --foo FOO foo help - oh and by the way, null  
74 - --bar bar help (default: false)  
75 -  
76 -title:  
77 - group description  
78 -  
79 - --baz BAZ baz help (default: 42)  
80 -*/  
81 -  
82 -print("TEST argparse.RawDescriptionHelpFormatter");  
83 -  
84 -parser = new argparse.ArgumentParser({  
85 - debug: true,  
86 - prog: 'PROG',  
87 - formatterClass: argparse.RawDescriptionHelpFormatter,  
88 - description: 'Keep the formatting\n' +  
89 - ' exactly as it is written\n' +  
90 - '\n' +  
91 - 'here\n'  
92 -});  
93 -  
94 -a = parser.addArgument(['--foo'], {  
95 - help: ' foo help should not\n' +  
96 - ' retain this odd formatting'  
97 -});  
98 -  
99 -parser.addArgument(['spam'], {  
100 - 'help': 'spam help'  
101 -});  
102 -  
103 -group = parser.addArgumentGroup({  
104 - title: 'title',  
105 - description: ' This text\n' +  
106 - ' should be indented\n' +  
107 - ' exactly like it is here\n'  
108 -});  
109 -  
110 -group.addArgument(['--bar'], {  
111 - help: 'bar help'  
112 -});  
113 -  
114 -helptext = parser.formatHelp();  
115 -print(helptext);  
116 -// test selected clips  
117 -assert(helptext.match(parser.description));  
118 -assert.equal(helptext.match(a.help), null);  
119 -assert(helptext.match(/foo help should not retain this odd formatting/));  
120 -  
121 -/*  
122 -class TestHelpRawDescription(HelpTestCase):  
123 - """Test the RawTextHelpFormatter"""  
124 -....  
125 -  
126 -usage: PROG [-h] [--foo FOO] [--bar BAR] spam  
127 -  
128 -Keep the formatting  
129 - exactly as it is written  
130 -  
131 -here  
132 -  
133 -positional arguments:  
134 - spam spam help  
135 -  
136 -optional arguments:  
137 - -h, --help show this help message and exit  
138 - --foo FOO foo help should not retain this odd formatting  
139 -  
140 -title:  
141 - This text  
142 - should be indented  
143 - exactly like it is here  
144 -  
145 - --bar BAR bar help  
146 -*/  
147 -  
148 -  
149 -print("TEST argparse.RawTextHelpFormatter");  
150 -  
151 -parser = new argparse.ArgumentParser({  
152 - debug: true,  
153 - prog: 'PROG',  
154 - formatterClass: argparse.RawTextHelpFormatter,  
155 - description: 'Keep the formatting\n' +  
156 - ' exactly as it is written\n' +  
157 - '\n' +  
158 - 'here\n'  
159 -});  
160 -  
161 -parser.addArgument(['--baz'], {  
162 - help: ' baz help should also\n' +  
163 - 'appear as given here'  
164 -});  
165 -  
166 -a = parser.addArgument(['--foo'], {  
167 - help: ' foo help should also\n' +  
168 - 'appear as given here'  
169 -});  
170 -  
171 -parser.addArgument(['spam'], {  
172 - 'help': 'spam help'  
173 -});  
174 -  
175 -group = parser.addArgumentGroup({  
176 - title: 'title',  
177 - description: ' This text\n' +  
178 - ' should be indented\n' +  
179 - ' exactly like it is here\n'  
180 -});  
181 -  
182 -group.addArgument(['--bar'], {  
183 - help: 'bar help'  
184 -});  
185 -  
186 -helptext = parser.formatHelp();  
187 -print(helptext);  
188 -// test selected clips  
189 -assert(helptext.match(parser.description));  
190 -assert(helptext.match(/( {14})appear as given here/gm));  
191 -  
192 -/*  
193 -class TestHelpRawText(HelpTestCase):  
194 - """Test the RawTextHelpFormatter"""  
195 -  
196 -usage: PROG [-h] [--foo FOO] [--bar BAR] spam  
197 -  
198 -Keep the formatting  
199 - exactly as it is written  
200 -  
201 -here  
202 -  
203 -positional arguments:  
204 - spam spam help  
205 -  
206 -optional arguments:  
207 - -h, --help show this help message and exit  
208 - --foo FOO foo help should also  
209 - appear as given here  
210 -  
211 -title:  
212 - This text  
213 - should be indented  
214 - exactly like it is here  
215 -  
216 - --bar BAR bar help  
217 -*/  
218 -  
219 -  
220 -print("TEST metavar as a tuple");  
221 -  
222 -parser = new argparse.ArgumentParser({  
223 - prog: 'PROG'  
224 -});  
225 -  
226 -parser.addArgument(['-w'], {  
227 - help: 'w',  
228 - nargs: '+',  
229 - metavar: ['W1', 'W2']  
230 -});  
231 -  
232 -parser.addArgument(['-x'], {  
233 - help: 'x',  
234 - nargs: '*',  
235 - metavar: ['X1', 'X2']  
236 -});  
237 -  
238 -parser.addArgument(['-y'], {  
239 - help: 'y',  
240 - nargs: 3,  
241 - metavar: ['Y1', 'Y2', 'Y3']  
242 -});  
243 -  
244 -parser.addArgument(['-z'], {  
245 - help: 'z',  
246 - nargs: '?',  
247 - metavar: ['Z1']  
248 -});  
249 -  
250 -helptext = parser.formatHelp();  
251 -print(helptext);  
252 -var ustring = 'PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]';  
253 -ustring = ustring.replace(/\[/g, '\\[').replace(/\]/g, '\\]');  
254 -// print(ustring)  
255 -assert(helptext.match(new RegExp(ustring)));  
256 -  
257 -/*  
258 -class TestHelpTupleMetavar(HelpTestCase):  
259 - """Test specifying metavar as a tuple"""  
260 -  
261 -usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]  
262 -  
263 -optional arguments:  
264 - -h, --help show this help message and exit  
265 - -w W1 [W2 ...] w  
266 - -x [X1 [X2 ...]] x  
267 - -y Y1 Y2 Y3 y  
268 - -z [Z1] z  
269 -*/  
270 -  
images/node_modules/argparse/index.js deleted 100644 → 0
1 -module.exports = require('./lib/argparse');  
images/node_modules/argparse/lib/action.js deleted 100644 → 0
1 -/**  
2 - * class Action  
3 - *  
4 - * Base class for all actions  
5 - * Do not call in your code, use this class only for inherits your own action  
6 - *  
7 - * Information about how to convert command line strings to Javascript objects.  
8 - * Action objects are used by an ArgumentParser to represent the information  
9 - * needed to parse a single argument from one or more strings from the command  
10 - * line. The keyword arguments to the Action constructor are also all attributes  
11 - * of Action instances.  
12 - *  
13 - * #####Alowed keywords:  
14 - *  
15 - * - `store`  
16 - * - `storeConstant`  
17 - * - `storeTrue`  
18 - * - `storeFalse`  
19 - * - `append`  
20 - * - `appendConstant`  
21 - * - `count`  
22 - * - `help`  
23 - * - `version`  
24 - *  
25 - * Information about action options see [[Action.new]]  
26 - *  
27 - * See also [original guide](http://docs.python.org/dev/library/argparse.html#action)  
28 - *  
29 - **/  
30 -  
31 -'use strict';  
32 -  
33 -  
34 -// Constants  
35 -var $$ = require('./const');  
36 -  
37 -  
38 -/**  
39 - * new Action(options)  
40 - *  
41 - * Base class for all actions. Used only for inherits  
42 - *  
43 - *  
44 - * ##### Options:  
45 - *  
46 - * - `optionStrings` A list of command-line option strings for the action.  
47 - * - `dest` Attribute to hold the created object(s)  
48 - * - `nargs` The number of command-line arguments that should be consumed.  
49 - * By default, one argument will be consumed and a single value will be  
50 - * produced.  
51 - * - `constant` Default value for an action with no value.  
52 - * - `defaultValue` The value to be produced if the option is not specified.  
53 - * - `type` Cast to 'string'|'int'|'float'|'complex'|function (string). If  
54 - * None, 'string'.  
55 - * - `choices` The choices available.  
56 - * - `required` True if the action must always be specified at the command  
57 - * line.  
58 - * - `help` The help describing the argument.  
59 - * - `metavar` The name to be used for the option's argument with the help  
60 - * string. If None, the 'dest' value will be used as the name.  
61 - *  
62 - * ##### nargs supported values:  
63 - *  
64 - * - `N` (an integer) consumes N arguments (and produces a list)  
65 - * - `?` consumes zero or one arguments  
66 - * - `*` consumes zero or more arguments (and produces a list)  
67 - * - `+` consumes one or more arguments (and produces a list)  
68 - *  
69 - * Note: that the difference between the default and nargs=1 is that with the  
70 - * default, a single value will be produced, while with nargs=1, a list  
71 - * containing a single value will be produced.  
72 - **/  
73 -var Action = module.exports = function Action(options) {  
74 - options = options || {};  
75 - this.optionStrings = options.optionStrings || [];  
76 - this.dest = options.dest;  
77 - this.nargs = options.nargs !== undefined ? options.nargs : null;  
78 - this.constant = options.constant !== undefined ? options.constant : null;  
79 - this.defaultValue = options.defaultValue;  
80 - this.type = options.type !== undefined ? options.type : null;  
81 - this.choices = options.choices !== undefined ? options.choices : null;  
82 - this.required = options.required !== undefined ? options.required: false;  
83 - this.help = options.help !== undefined ? options.help : null;  
84 - this.metavar = options.metavar !== undefined ? options.metavar : null;  
85 -  
86 - if (!(this.optionStrings instanceof Array)) {  
87 - throw new Error('optionStrings should be an array');  
88 - }  
89 - if (this.required !== undefined && typeof(this.required) !== 'boolean') {  
90 - throw new Error('required should be a boolean');  
91 - }  
92 -};  
93 -  
94 -/**  
95 - * Action#getName -> String  
96 - *  
97 - * Tells action name  
98 - **/  
99 -Action.prototype.getName = function () {  
100 - if (this.optionStrings.length > 0) {  
101 - return this.optionStrings.join('/');  
102 - } else if (this.metavar !== null && this.metavar !== $$.SUPPRESS) {  
103 - return this.metavar;  
104 - } else if (this.dest !== undefined && this.dest !== $$.SUPPRESS) {  
105 - return this.dest;  
106 - }  
107 - return null;  
108 -};  
109 -  
110 -/**  
111 - * Action#isOptional -> Boolean  
112 - *  
113 - * Return true if optional  
114 - **/  
115 -Action.prototype.isOptional = function () {  
116 - return !this.isPositional();  
117 -};  
118 -  
119 -/**  
120 - * Action#isPositional -> Boolean  
121 - *  
122 - * Return true if positional  
123 - **/  
124 -Action.prototype.isPositional = function () {  
125 - return (this.optionStrings.length === 0);  
126 -};  
127 -  
128 -/**  
129 - * Action#call(parser, namespace, values, optionString) -> Void  
130 - * - parser (ArgumentParser): current parser  
131 - * - namespace (Namespace): namespace for output data  
132 - * - values (Array): parsed values  
133 - * - optionString (Array): input option string(not parsed)  
134 - *  
135 - * Call the action. Should be implemented in inherited classes  
136 - *  
137 - * ##### Example  
138 - *  
139 - * ActionCount.prototype.call = function (parser, namespace, values, optionString) {  
140 - * namespace.set(this.dest, (namespace[this.dest] || 0) + 1);  
141 - * };  
142 - *  
143 - **/  
144 -Action.prototype.call = function () {  
145 - throw new Error('.call() not defined');// Not Implemented error  
146 -};  
images/node_modules/argparse/lib/action/append.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionAppend  
3 - *  
4 - * This action stores a list, and appends each argument value to the list.  
5 - * This is useful to allow an option to be specified multiple times.  
6 - * This class inherided from [[Action]]  
7 - *  
8 - **/  
9 -  
10 -'use strict';  
11 -  
12 -var util = require('util');  
13 -  
14 -var Action = require('../action');  
15 -  
16 -// Constants  
17 -var $$ = require('../const');  
18 -  
19 -/*:nodoc:*  
20 - * new ActionAppend(options)  
21 - * - options (object): options hash see [[Action.new]]  
22 - *  
23 - * Note: options.nargs should be optional for constants  
24 - * and more then zero for other  
25 - **/  
26 -var ActionAppend = module.exports = function ActionAppend(options) {  
27 - options = options || {};  
28 - if (this.nargs <= 0) {  
29 - throw new Error('nargs for append actions must be > 0; if arg ' +  
30 - 'strings are not supplying the value to append, ' +  
31 - 'the append const action may be more appropriate');  
32 - }  
33 - if (!!this.constant && this.nargs !== $$.OPTIONAL) {  
34 - throw new Error('nargs must be OPTIONAL to supply const');  
35 - }  
36 - Action.call(this, options);  
37 -};  
38 -util.inherits(ActionAppend, Action);  
39 -  
40 -/*:nodoc:*  
41 - * ActionAppend#call(parser, namespace, values, optionString) -> Void  
42 - * - parser (ArgumentParser): current parser  
43 - * - namespace (Namespace): namespace for output data  
44 - * - values (Array): parsed values  
45 - * - optionString (Array): input option string(not parsed)  
46 - *  
47 - * Call the action. Save result in namespace object  
48 - **/  
49 -ActionAppend.prototype.call = function (parser, namespace, values) {  
50 - var items = [].concat(namespace[this.dest] || []); // or _.clone  
51 - items.push(values);  
52 - namespace.set(this.dest, items);  
53 -};  
54 -  
55 -  
images/node_modules/argparse/lib/action/append/constant.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionAppendConstant  
3 - *  
4 - * This stores a list, and appends the value specified by  
5 - * the const keyword argument to the list.  
6 - * (Note that the const keyword argument defaults to null.)  
7 - * The 'appendConst' action is typically useful when multiple  
8 - * arguments need to store constants to the same list.  
9 - *  
10 - * This class inherited from [[Action]]  
11 - **/  
12 -  
13 -'use strict';  
14 -  
15 -var util = require('util');  
16 -  
17 -var Action = require('../../action');  
18 -  
19 -/*:nodoc:*  
20 - * new ActionAppendConstant(options)  
21 - * - options (object): options hash see [[Action.new]]  
22 - *  
23 - **/  
24 -var ActionAppendConstant = module.exports = function ActionAppendConstant(options) {  
25 - options = options || {};  
26 - options.nargs = 0;  
27 - if (options.constant === undefined) {  
28 - throw new Error('constant option is required for appendAction');  
29 - }  
30 - Action.call(this, options);  
31 -};  
32 -util.inherits(ActionAppendConstant, Action);  
33 -  
34 -/*:nodoc:*  
35 - * ActionAppendConstant#call(parser, namespace, values, optionString) -> Void  
36 - * - parser (ArgumentParser): current parser  
37 - * - namespace (Namespace): namespace for output data  
38 - * - values (Array): parsed values  
39 - * - optionString (Array): input option string(not parsed)  
40 - *  
41 - * Call the action. Save result in namespace object  
42 - **/  
43 -ActionAppendConstant.prototype.call = function (parser, namespace) {  
44 - var items = [].concat(namespace[this.dest] || []);  
45 - items.push(this.constant);  
46 - namespace.set(this.dest, items);  
47 -};  
images/node_modules/argparse/lib/action/count.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionCount  
3 - *  
4 - * This counts the number of times a keyword argument occurs.  
5 - * For example, this is useful for increasing verbosity levels  
6 - *  
7 - * This class inherided from [[Action]]  
8 - *  
9 - **/  
10 -'use strict';  
11 -  
12 -var util = require('util');  
13 -  
14 -var Action = require('../action');  
15 -  
16 -/*:nodoc:*  
17 - * new ActionCount(options)  
18 - * - options (object): options hash see [[Action.new]]  
19 - *  
20 - **/  
21 -var ActionCount = module.exports = function ActionCount(options) {  
22 - options = options || {};  
23 - options.nargs = 0;  
24 -  
25 - Action.call(this, options);  
26 -};  
27 -util.inherits(ActionCount, Action);  
28 -  
29 -/*:nodoc:*  
30 - * ActionCount#call(parser, namespace, values, optionString) -> Void  
31 - * - parser (ArgumentParser): current parser  
32 - * - namespace (Namespace): namespace for output data  
33 - * - values (Array): parsed values  
34 - * - optionString (Array): input option string(not parsed)  
35 - *  
36 - * Call the action. Save result in namespace object  
37 - **/  
38 -ActionCount.prototype.call = function (parser, namespace) {  
39 - namespace.set(this.dest, (namespace[this.dest] || 0) + 1);  
40 -};  
images/node_modules/argparse/lib/action/help.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionHelp  
3 - *  
4 - * Support action for printing help  
5 - * This class inherided from [[Action]]  
6 - **/  
7 -'use strict';  
8 -  
9 -var util = require('util');  
10 -  
11 -var Action = require('../action');  
12 -  
13 -// Constants  
14 -var $$ = require('../const');  
15 -  
16 -/*:nodoc:*  
17 - * new ActionHelp(options)  
18 - * - options (object): options hash see [[Action.new]]  
19 - *  
20 - **/  
21 -var ActionHelp = module.exports = function ActionHelp(options) {  
22 - options = options || {};  
23 - if (options.defaultValue !== null) {  
24 - options.defaultValue = options.defaultValue;  
25 - }  
26 - else {  
27 - options.defaultValue = $$.SUPPRESS;  
28 - }  
29 - options.dest = (options.dest !== null ? options.dest: $$.SUPPRESS);  
30 - options.nargs = 0;  
31 - Action.call(this, options);  
32 -  
33 -};  
34 -util.inherits(ActionHelp, Action);  
35 -  
36 -/*:nodoc:*  
37 - * ActionHelp#call(parser, namespace, values, optionString)  
38 - * - parser (ArgumentParser): current parser  
39 - * - namespace (Namespace): namespace for output data  
40 - * - values (Array): parsed values  
41 - * - optionString (Array): input option string(not parsed)  
42 - *  
43 - * Print help and exit  
44 - **/  
45 -ActionHelp.prototype.call = function (parser) {  
46 - parser.printHelp();  
47 - parser.exit();  
48 -};  
images/node_modules/argparse/lib/action/store.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionStore  
3 - *  
4 - * This action just stores the argument’s value. This is the default action.  
5 - *  
6 - * This class inherited from [[Action]]  
7 - *  
8 - **/  
9 -'use strict';  
10 -  
11 -var util = require('util');  
12 -  
13 -var Action = require('../action');  
14 -  
15 -// Constants  
16 -var $$ = require('../const');  
17 -  
18 -  
19 -/*:nodoc:*  
20 - * new ActionStore(options)  
21 - * - options (object): options hash see [[Action.new]]  
22 - *  
23 - **/  
24 -var ActionStore = module.exports = function ActionStore(options) {  
25 - options = options || {};  
26 - if (this.nargs <= 0) {  
27 - throw new Error('nargs for store actions must be > 0; if you ' +  
28 - 'have nothing to store, actions such as store ' +  
29 - 'true or store const may be more appropriate');  
30 -  
31 - }  
32 - if (this.constant !== undefined && this.nargs !== $$.OPTIONAL) {  
33 - throw new Error('nargs must be OPTIONAL to supply const');  
34 - }  
35 - Action.call(this, options);  
36 -};  
37 -util.inherits(ActionStore, Action);  
38 -  
39 -/*:nodoc:*  
40 - * ActionStore#call(parser, namespace, values, optionString) -> Void  
41 - * - parser (ArgumentParser): current parser  
42 - * - namespace (Namespace): namespace for output data  
43 - * - values (Array): parsed values  
44 - * - optionString (Array): input option string(not parsed)  
45 - *  
46 - * Call the action. Save result in namespace object  
47 - **/  
48 -ActionStore.prototype.call = function (parser, namespace, values) {  
49 - namespace.set(this.dest, values);  
50 -};  
images/node_modules/argparse/lib/action/store/constant.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionStoreConstant  
3 - *  
4 - * This action stores the value specified by the const keyword argument.  
5 - * (Note that the const keyword argument defaults to the rather unhelpful null.)  
6 - * The 'store_const' action is most commonly used with optional  
7 - * arguments that specify some sort of flag.  
8 - *  
9 - * This class inherited from [[Action]]  
10 - **/  
11 -'use strict';  
12 -  
13 -var util = require('util');  
14 -  
15 -var Action = require('../../action');  
16 -  
17 -/*:nodoc:*  
18 - * new ActionStoreConstant(options)  
19 - * - options (object): options hash see [[Action.new]]  
20 - *  
21 - **/  
22 -var ActionStoreConstant = module.exports = function ActionStoreConstant(options) {  
23 - options = options || {};  
24 - options.nargs = 0;  
25 - if (options.constant === undefined) {  
26 - throw new Error('constant option is required for storeAction');  
27 - }  
28 - Action.call(this, options);  
29 -};  
30 -util.inherits(ActionStoreConstant, Action);  
31 -  
32 -/*:nodoc:*  
33 - * ActionStoreConstant#call(parser, namespace, values, optionString) -> Void  
34 - * - parser (ArgumentParser): current parser  
35 - * - namespace (Namespace): namespace for output data  
36 - * - values (Array): parsed values  
37 - * - optionString (Array): input option string(not parsed)  
38 - *  
39 - * Call the action. Save result in namespace object  
40 - **/  
41 -ActionStoreConstant.prototype.call = function (parser, namespace) {  
42 - namespace.set(this.dest, this.constant);  
43 -};  
images/node_modules/argparse/lib/action/store/false.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionStoreFalse  
3 - *  
4 - * This action store the values False respectively.  
5 - * This is special cases of 'storeConst'  
6 - *  
7 - * This class inherited from [[Action]]  
8 - **/  
9 -  
10 -'use strict';  
11 -  
12 -var util = require('util');  
13 -  
14 -var ActionStoreConstant = require('./constant');  
15 -  
16 -/*:nodoc:*  
17 - * new ActionStoreFalse(options)  
18 - * - options (object): hash of options see [[Action.new]]  
19 - *  
20 - **/  
21 -var ActionStoreFalse = module.exports = function ActionStoreFalse(options) {  
22 - options = options || {};  
23 - options.constant = false;  
24 - options.defaultValue = options.defaultValue !== null ? options.defaultValue: true;  
25 - ActionStoreConstant.call(this, options);  
26 -};  
27 -util.inherits(ActionStoreFalse, ActionStoreConstant);  
images/node_modules/argparse/lib/action/store/true.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionStoreTrue  
3 - *  
4 - * This action store the values True respectively.  
5 - * This isspecial cases of 'storeConst'  
6 - *  
7 - * This class inherited from [[Action]]  
8 - **/  
9 -'use strict';  
10 -  
11 -var util = require('util');  
12 -  
13 -var ActionStoreConstant = require('./constant');  
14 -  
15 -/*:nodoc:*  
16 - * new ActionStoreTrue(options)  
17 - * - options (object): options hash see [[Action.new]]  
18 - *  
19 - **/  
20 -var ActionStoreTrue = module.exports = function ActionStoreTrue(options) {  
21 - options = options || {};  
22 - options.constant = true;  
23 - options.defaultValue = options.defaultValue !== null ? options.defaultValue: false;  
24 - ActionStoreConstant.call(this, options);  
25 -};  
26 -util.inherits(ActionStoreTrue, ActionStoreConstant);  
images/node_modules/argparse/lib/action/subparsers.js deleted 100644 → 0
1 -/** internal  
2 - * class ActionSubparsers  
3 - *  
4 - * Support the creation of such sub-commands with the addSubparsers()  
5 - *  
6 - * This class inherited from [[Action]]  
7 - **/  
8 -'use strict';  
9 -  
10 -var util = require('util');  
11 -var format = require('util').format;  
12 -var _ = require('underscore');  
13 -  
14 -  
15 -var Action = require('../action');  
16 -  
17 -// Constants  
18 -var $$ = require('../const');  
19 -  
20 -// Errors  
21 -var argumentErrorHelper = require('../argument/error');  
22 -  
23 -  
24 -/*:nodoc:*  
25 - * new ChoicesPseudoAction(name, help)  
26 - *  
27 - * Create pseudo action for correct help text  
28 - *  
29 - **/  
30 -var ChoicesPseudoAction = function (name, help) {  
31 - var options = {  
32 - optionStrings: [],  
33 - dest: name,  
34 - help: help  
35 - };  
36 -  
37 - Action.call(this, options);  
38 -};  
39 -util.inherits(ChoicesPseudoAction, Action);  
40 -  
41 -/**  
42 - * new ActionSubparsers(options)  
43 - * - options (object): options hash see [[Action.new]]  
44 - *  
45 - **/  
46 -var ActionSubparsers = module.exports = function ActionSubparsers(options) {  
47 - options = options || {};  
48 - options.dest = options.dest || $$.SUPPRESS;  
49 - options.nargs = $$.PARSER;  
50 -  
51 - this.debug = (options.debug === true);  
52 -  
53 - this._progPrefix = options.prog;  
54 - this._parserClass = options.parserClass;  
55 - this._nameParserMap = {};  
56 - this._choicesActions = [];  
57 -  
58 - options.choices = this._nameParserMap;  
59 - Action.call(this, options);  
60 -};  
61 -util.inherits(ActionSubparsers, Action);  
62 -  
63 -/*:nodoc:*  
64 - * ActionSubparsers#addParser(name, options) -> ArgumentParser  
65 - * - name (string): sub-command name  
66 - * - options (object): see [[ArgumentParser.new]]  
67 - *  
68 - * Note:  
69 - * addParser supports an additional aliases option,  
70 - * which allows multiple strings to refer to the same subparser.  
71 - * This example, like svn, aliases co as a shorthand for checkout  
72 - *  
73 - **/  
74 -ActionSubparsers.prototype.addParser = function (name, options) {  
75 - var parser;  
76 -  
77 - var self = this;  
78 -  
79 - options = options || {};  
80 -  
81 - options.debug = (this.debug === true);  
82 -  
83 - // set program from the existing prefix  
84 - if (!options.prog) {  
85 - options.prog = this._progPrefix + ' ' + name;  
86 - }  
87 -  
88 - var aliases = options.aliases || [];  
89 -  
90 - // create a pseudo-action to hold the choice help  
91 - if (!!options.help || _.isString(options.help)) {  
92 - var help = options.help;  
93 - delete options.help;  
94 -  
95 - var choiceAction = new ChoicesPseudoAction(name, help);  
96 - this._choicesActions.push(choiceAction);  
97 - }  
98 -  
99 - // create the parser and add it to the map  
100 - parser = new this._parserClass(options);  
101 - this._nameParserMap[name] = parser;  
102 -  
103 - // make parser available under aliases also  
104 - aliases.forEach(function (alias) {  
105 - self._nameParserMap[alias] = parser;  
106 - });  
107 -  
108 - return parser;  
109 -};  
110 -  
111 -ActionSubparsers.prototype._getSubactions = function () {  
112 - return this._choicesActions;  
113 -};  
114 -  
115 -/*:nodoc:*  
116 - * ActionSubparsers#call(parser, namespace, values, optionString) -> Void  
117 - * - parser (ArgumentParser): current parser  
118 - * - namespace (Namespace): namespace for output data  
119 - * - values (Array): parsed values  
120 - * - optionString (Array): input option string(not parsed)  
121 - *  
122 - * Call the action. Parse input aguments  
123 - **/  
124 -ActionSubparsers.prototype.call = function (parser, namespace, values) {  
125 - var parserName = values[0];  
126 - var argStrings = values.slice(1);  
127 -  
128 - // set the parser name if requested  
129 - if (this.dest !== $$.SUPPRESS) {  
130 - namespace[this.dest] = parserName;  
131 - }  
132 -  
133 - // select the parser  
134 - if (!!this._nameParserMap[parserName]) {  
135 - parser = this._nameParserMap[parserName];  
136 - } else {  
137 - throw argumentErrorHelper(format(  
138 - 'Unknown parser "%s" (choices: [%s]).',  
139 - parserName,  
140 - _.keys(this._nameParserMap).join(', ')  
141 - ));  
142 - }  
143 -  
144 - // parse all the remaining options into the namespace  
145 - parser.parseArgs(argStrings, namespace);  
146 -};  
147 -  
148 -  
images/node_modules/argparse/lib/action/version.js deleted 100644 → 0
1 -/*:nodoc:*  
2 - * class ActionVersion  
3 - *  
4 - * Support action for printing program version  
5 - * This class inherited from [[Action]]  
6 - **/  
7 -'use strict';  
8 -  
9 -var util = require('util');  
10 -  
11 -var Action = require('../action');  
12 -  
13 -//  
14 -// Constants  
15 -//  
16 -var $$ = require('../const');  
17 -  
18 -/*:nodoc:*  
19 - * new ActionVersion(options)  
20 - * - options (object): options hash see [[Action.new]]  
21 - *  
22 - **/  
23 -var ActionVersion = module.exports = function ActionVersion(options) {  
24 - options = options || {};  
25 - options.defaultValue = (!!options.defaultValue ? options.defaultValue: $$.SUPPRESS);  
26 - options.dest = (options.dest || $$.SUPPRESS);  
27 - options.nargs = 0;  
28 - this.version = options.version;  
29 - Action.call(this, options);  
30 -};  
31 -util.inherits(ActionVersion, Action);  
32 -  
33 -/*:nodoc:*  
34 - * ActionVersion#call(parser, namespace, values, optionString) -> Void  
35 - * - parser (ArgumentParser): current parser  
36 - * - namespace (Namespace): namespace for output data  
37 - * - values (Array): parsed values  
38 - * - optionString (Array): input option string(not parsed)  
39 - *  
40 - * Print version and exit  
41 - **/  
42 -ActionVersion.prototype.call = function (parser) {  
43 - var version = this.version || parser.version;  
44 - var formatter = parser._getFormatter();  
45 - formatter.addText(version);  
46 - parser.exit(0, formatter.formatHelp());  
47 -};  
48 -  
49 -  
50 -  
images/node_modules/argparse/lib/action_container.js deleted 100644 → 0
1 -/** internal  
2 - * class ActionContainer  
3 - *  
4 - * Action container. Parent for [[ArgumentParser]] and [[ArgumentGroup]]  
5 - **/  
6 -  
7 -'use strict';  
8 -  
9 -var format = require('util').format;  
10 -var _ = require('underscore');  
11 -  
12 -_.str = require('underscore.string');  
13 -  
14 -// Constants  
15 -var $$ = require('./const');  
16 -  
17 -//Actions  
18 -var ActionHelp = require('./action/help');  
19 -var ActionAppend = require('./action/append');  
20 -var ActionAppendConstant = require('./action/append/constant');  
21 -var ActionCount = require('./action/count');  
22 -var ActionStore = require('./action/store');  
23 -var ActionStoreConstant = require('./action/store/constant');  
24 -var ActionStoreTrue = require('./action/store/true');  
25 -var ActionStoreFalse = require('./action/store/false');  
26 -var ActionVersion = require('./action/version');  
27 -var ActionSubparsers = require('./action/subparsers');  
28 -  
29 -// Errors  
30 -var argumentErrorHelper = require('./argument/error');  
31 -  
32 -  
33 -  
34 -/**  
35 - * new ActionContainer(options)  
36 - *  
37 - * Action container. Parent for [[ArgumentParser]] and [[ArgumentGroup]]  
38 - *  
39 - * ##### Options:  
40 - *  
41 - * - `description` -- A description of what the program does  
42 - * - `prefixChars` -- Characters that prefix optional arguments  
43 - * - `argumentDefault` -- The default value for all arguments  
44 - * - `conflictHandler` -- The conflict handler to use for duplicate arguments  
45 - **/  
46 -var ActionContainer = module.exports = function ActionContainer(options) {  
47 - options = options || {};  
48 -  
49 - this.description = options.description;  
50 - this.argumentDefault = options.argumentDefault;  
51 - this.prefixChars = options.prefixChars || '';  
52 - this.conflictHandler = options.conflictHandler;  
53 -  
54 - // set up registries  
55 - this._registries = {};  
56 -  
57 - // register actions  
58 - this.register('action', null, ActionStore);  
59 - this.register('action', 'store', ActionStore);  
60 - this.register('action', 'storeConst', ActionStoreConstant);  
61 - this.register('action', 'storeTrue', ActionStoreTrue);  
62 - this.register('action', 'storeFalse', ActionStoreFalse);  
63 - this.register('action', 'append', ActionAppend);  
64 - this.register('action', 'appendConst', ActionAppendConstant);  
65 - this.register('action', 'count', ActionCount);  
66 - this.register('action', 'help', ActionHelp);  
67 - this.register('action', 'version', ActionVersion);  
68 - this.register('action', 'parsers', ActionSubparsers);  
69 -  
70 - // raise an exception if the conflict handler is invalid  
71 - this._getHandler();  
72 -  
73 - // action storage  
74 - this._actions = [];  
75 - this._optionStringActions = {};  
76 -  
77 - // groups  
78 - this._actionGroups = [];  
79 - this._mutuallyExclusiveGroups = [];  
80 -  
81 - // defaults storage  
82 - this._defaults = {};  
83 -  
84 - // determines whether an "option" looks like a negative number  
85 - // -1, -1.5 -5e+4  
86 - this._regexpNegativeNumber = new RegExp('^[-]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$');  
87 -  
88 - // whether or not there are any optionals that look like negative  
89 - // numbers -- uses a list so it can be shared and edited  
90 - this._hasNegativeNumberOptionals = [];  
91 -};  
92 -  
93 -// Groups must be required, then ActionContainer already defined  
94 -var ArgumentGroup = require('./argument/group');  
95 -var MutuallyExclusiveGroup = require('./argument/exclusive');  
96 -  
97 -//  
98 -// Registration methods  
99 -//  
100 -  
101 -/**  
102 - * ActionContainer#register(registryName, value, object) -> Void  
103 - * - registryName (String) : object type action|type  
104 - * - value (string) : keyword  
105 - * - object (Object|Function) : handler  
106 - *  
107 - * Register handlers  
108 - **/  
109 -ActionContainer.prototype.register = function (registryName, value, object) {  
110 - this._registries[registryName] = this._registries[registryName] || {};  
111 - this._registries[registryName][value] = object;  
112 -};  
113 -  
114 -ActionContainer.prototype._registryGet = function (registryName, value, defaultValue) {  
115 - if (3 > arguments.length) {  
116 - defaultValue = null;  
117 - }  
118 - return this._registries[registryName][value] || defaultValue;  
119 -};  
120 -  
121 -//  
122 -// Namespace default accessor methods  
123 -//  
124 -  
125 -/**  
126 - * ActionContainer#setDefaults(options) -> Void  
127 - * - options (object):hash of options see [[Action.new]]  
128 - *  
129 - * Set defaults  
130 - **/  
131 -ActionContainer.prototype.setDefaults = function (options) {  
132 - options = options || {};  
133 - for (var property in options) {  
134 - this._defaults[property] = options[property];  
135 - }  
136 -  
137 - // if these defaults match any existing arguments, replace the previous  
138 - // default on the object with the new one  
139 - this._actions.forEach(function (action) {  
140 - if (action.dest in options) {  
141 - action.defaultValue = options[action.dest];  
142 - }  
143 - });  
144 -};  
145 -  
146 -/**  
147 - * ActionContainer#getDefault(dest) -> Mixed  
148 - * - dest (string): action destination  
149 - *  
150 - * Return action default value  
151 - **/  
152 -ActionContainer.prototype.getDefault = function (dest) {  
153 - var result = (_.has(this._defaults, dest)) ? this._defaults[dest] : null;  
154 -  
155 - this._actions.forEach(function (action) {  
156 - if (action.dest === dest && _.has(action, 'defaultValue')) {  
157 - result = action.defaultValue;  
158 - }  
159 - });  
160 -  
161 - return result;  
162 -};  
163 -//  
164 -// Adding argument actions  
165 -//  
166 -  
167 -/**  
168 - * ActionContainer#addArgument(args, options) -> Object  
169 - * - args (Array): array of argument keys  
170 - * - options (Object): action objects see [[Action.new]]  
171 - *  
172 - * #### Examples  
173 - * - addArgument([-f, --foo], {action:'store', defaultValue=1, ...})  
174 - * - addArgument(['bar'], action: 'store', nargs:1, ...})  
175 - **/  
176 -ActionContainer.prototype.addArgument = function (args, options) {  
177 - args = args;  
178 - options = options || {};  
179 -  
180 - if (!_.isArray(args)) {  
181 - throw new TypeError('addArgument first argument should be an array');  
182 - }  
183 - if (!_.isObject(options) || _.isArray(options)) {  
184 - throw new TypeError('addArgument second argument should be a hash');  
185 - }  
186 -  
187 - // if no positional args are supplied or only one is supplied and  
188 - // it doesn't look like an option string, parse a positional argument  
189 - if (!args || args.length === 1 && this.prefixChars.indexOf(args[0][0]) < 0) {  
190 - if (args && !!options.dest) {  
191 - throw new Error('dest supplied twice for positional argument');  
192 - }  
193 - options = this._getPositional(args, options);  
194 -  
195 - // otherwise, we're adding an optional argument  
196 - } else {  
197 - options = this._getOptional(args, options);  
198 - }  
199 -  
200 - // if no default was supplied, use the parser-level default  
201 - if (_.isUndefined(options.defaultValue)) {  
202 - var dest = options.dest;  
203 - if (_.has(this._defaults, dest)) {  
204 - options.defaultValue = this._defaults[dest];  
205 - } else if (!_.isUndefined(this.argumentDefault)) {  
206 - options.defaultValue = this.argumentDefault;  
207 - }  
208 - }  
209 -  
210 - // create the action object, and add it to the parser  
211 - var ActionClass = this._popActionClass(options);  
212 - if (! _.isFunction(ActionClass)) {  
213 - throw new Error(format('Unknown action "%s".', ActionClass));  
214 - }  
215 - var action = new ActionClass(options);  
216 -  
217 - // throw an error if the action type is not callable  
218 - var typeFunction = this._registryGet('type', action.type, action.type);  
219 - if (!_.isFunction(typeFunction)) {  
220 - throw new Error(format('"%s" is not callable', typeFunction));  
221 - }  
222 -  
223 - return this._addAction(action);  
224 -};  
225 -  
226 -/**  
227 - * ActionContainer#addArgumentGroup(options) -> ArgumentGroup  
228 - * - options (Object): hash of options see [[ArgumentGroup.new]]  
229 - *  
230 - * Create new arguments groups  
231 - **/  
232 -ActionContainer.prototype.addArgumentGroup = function (options) {  
233 - var group = new ArgumentGroup(this, options);  
234 - this._actionGroups.push(group);  
235 - return group;  
236 -};  
237 -  
238 -/**  
239 - * ActionContainer#addMutuallyExclusiveGroup(options) -> ArgumentGroup  
240 - * - options (Object): {required: false}  
241 - *  
242 - * Create new mutual exclusive groups  
243 - **/  
244 -ActionContainer.prototype.addMutuallyExclusiveGroup = function (options) {  
245 - var group = new MutuallyExclusiveGroup(this, options);  
246 - this._mutuallyExclusiveGroups.push(group);  
247 - return group;  
248 -};  
249 -  
250 -ActionContainer.prototype._addAction = function (action) {  
251 - var self = this;  
252 -  
253 - // resolve any conflicts  
254 - this._checkConflict(action);  
255 -  
256 - // add to actions list  
257 - this._actions.push(action);  
258 - action.container = this;  
259 -  
260 - // index the action by any option strings it has  
261 - action.optionStrings.forEach(function (optionString) {  
262 - self._optionStringActions[optionString] = action;  
263 - });  
264 -  
265 - // set the flag if any option strings look like negative numbers  
266 - action.optionStrings.forEach(function (optionString) {  
267 - if (optionString.match(self._regexpNegativeNumber)) {  
268 - if (!_.any(self._hasNegativeNumberOptionals)) {  
269 - self._hasNegativeNumberOptionals.push(true);  
270 - }  
271 - }  
272 - });  
273 -  
274 - // return the created action  
275 - return action;  
276 -};  
277 -  
278 -ActionContainer.prototype._removeAction = function (action) {  
279 - var actionIndex = this._actions.indexOf(action);  
280 - if (actionIndex >= 0) {  
281 - this._actions.splice(actionIndex, 1);  
282 - }  
283 -};  
284 -  
285 -ActionContainer.prototype._addContainerActions = function (container) {  
286 - // collect groups by titles  
287 - var titleGroupMap = {};  
288 - this._actionGroups.forEach(function (group) {  
289 - if (titleGroupMap[group.title]) {  
290 - throw new Error(format('Cannot merge actions - two groups are named "%s".', group.title));  
291 - }  
292 - titleGroupMap[group.title] = group;  
293 - });  
294 -  
295 - // map each action to its group  
296 - var groupMap = {};  
297 - function actionHash(action) {  
298 - // unique (hopefully?) string suitable as dictionary key  
299 - return action.getName();  
300 - }  
301 - container._actionGroups.forEach(function (group) {  
302 - // if a group with the title exists, use that, otherwise  
303 - // create a new group matching the container's group  
304 - if (!titleGroupMap[group.title]) {  
305 - titleGroupMap[group.title] = this.addArgumentGroup({  
306 - title: group.title,  
307 - description: group.description  
308 - });  
309 - }  
310 -  
311 - // map the actions to their new group  
312 - group._groupActions.forEach(function (action) {  
313 - groupMap[actionHash(action)] = titleGroupMap[group.title];  
314 - });  
315 - }, this);  
316 -  
317 - // add container's mutually exclusive groups  
318 - // NOTE: if add_mutually_exclusive_group ever gains title= and  
319 - // description= then this code will need to be expanded as above  
320 - var mutexGroup;  
321 - container._mutuallyExclusiveGroups.forEach(function (group) {  
322 - mutexGroup = this.addMutuallyExclusiveGroup({  
323 - required: group.required  
324 - });  
325 - // map the actions to their new mutex group  
326 - group._groupActions.forEach(function (action) {  
327 - groupMap[actionHash(action)] = mutexGroup;  
328 - });  
329 - }, this); // forEach takes a 'this' argument  
330 -  
331 - // add all actions to this container or their group  
332 - container._actions.forEach(function (action) {  
333 - var key = actionHash(action);  
334 - if (!!groupMap[key]) {  
335 - groupMap[key]._addAction(action);  
336 - }  
337 - else  
338 - {  
339 - this._addAction(action);  
340 - }  
341 - });  
342 -};  
343 -  
344 -ActionContainer.prototype._getPositional = function (dest, options) {  
345 - if (_.isArray(dest)) {  
346 - dest = _.first(dest);  
347 - }  
348 - // make sure required is not specified  
349 - if (options.required) {  
350 - throw new Error('"required" is an invalid argument for positionals.');  
351 - }  
352 -  
353 - // mark positional arguments as required if at least one is  
354 - // always required  
355 - if (options.nargs !== $$.OPTIONAL && options.nargs !== $$.ZERO_OR_MORE) {  
356 - options.required = true;  
357 - }  
358 - if (options.nargs === $$.ZERO_OR_MORE && options.defaultValue === undefined) {  
359 - options.required = true;  
360 - }  
361 -  
362 - // return the keyword arguments with no option strings  
363 - options.dest = dest;  
364 - options.optionStrings = [];  
365 - return options;  
366 -};  
367 -  
368 -ActionContainer.prototype._getOptional = function (args, options) {  
369 - var prefixChars = this.prefixChars;  
370 - var optionStrings = [];  
371 - var optionStringsLong = [];  
372 -  
373 - // determine short and long option strings  
374 - args.forEach(function (optionString) {  
375 - // error on strings that don't start with an appropriate prefix  
376 - if (prefixChars.indexOf(optionString[0]) < 0) {  
377 - throw new Error(format('Invalid option string "%s": must start with a "%s".',  
378 - optionString,  
379 - prefixChars  
380 - ));  
381 - }  
382 -  
383 - // strings starting with two prefix characters are long options  
384 - optionStrings.push(optionString);  
385 - if (optionString.length > 1 && prefixChars.indexOf(optionString[1]) >= 0) {  
386 - optionStringsLong.push(optionString);  
387 - }  
388 - });  
389 -  
390 - // infer dest, '--foo-bar' -> 'foo_bar' and '-x' -> 'x'  
391 - var dest = options.dest || null;  
392 - delete options.dest;  
393 -  
394 - if (!dest) {  
395 - var optionStringDest = optionStringsLong.length ? optionStringsLong[0] :optionStrings[0];  
396 - dest = _.str.strip(optionStringDest, this.prefixChars);  
397 -  
398 - if (dest.length === 0) {  
399 - throw new Error(  
400 - format('dest= is required for options like "%s"', optionStrings.join(', '))  
401 - );  
402 - }  
403 - dest = dest.replace(/-/g, '_');  
404 - }  
405 -  
406 - // return the updated keyword arguments  
407 - options.dest = dest;  
408 - options.optionStrings = optionStrings;  
409 -  
410 - return options;  
411 -};  
412 -  
413 -ActionContainer.prototype._popActionClass = function (options, defaultValue) {  
414 - defaultValue = defaultValue || null;  
415 -  
416 - var action = (options.action || defaultValue);  
417 - delete options.action;  
418 -  
419 - var actionClass = this._registryGet('action', action, action);  
420 - return actionClass;  
421 -};  
422 -  
423 -ActionContainer.prototype._getHandler = function () {  
424 - var handlerString = this.conflictHandler;  
425 - var handlerFuncName = "_handleConflict" + _.str.capitalize(handlerString);  
426 - var func = this[handlerFuncName];  
427 - if (typeof func === 'undefined') {  
428 - var msg = "invalid conflict resolution value: " + handlerString;  
429 - throw new Error(msg);  
430 - } else {  
431 - return func;  
432 - }  
433 -};  
434 -  
435 -ActionContainer.prototype._checkConflict = function (action) {  
436 - var optionStringActions = this._optionStringActions;  
437 - var conflictOptionals = [];  
438 -  
439 - // find all options that conflict with this option  
440 - // collect pairs, the string, and an existing action that it conflicts with  
441 - action.optionStrings.forEach(function (optionString) {  
442 - var conflOptional = optionStringActions[optionString];  
443 - if (typeof conflOptional !== 'undefined') {  
444 - conflictOptionals.push([optionString, conflOptional]);  
445 - }  
446 - });  
447 -  
448 - if (conflictOptionals.length > 0) {  
449 - var conflictHandler = this._getHandler();  
450 - conflictHandler.call(this, action, conflictOptionals);  
451 - }  
452 -};  
453 -  
454 -ActionContainer.prototype._handleConflictError = function (action, conflOptionals) {  
455 - var conflicts = _.map(conflOptionals, function (pair) {return pair[0]; });  
456 - conflicts = conflicts.join(', ');  
457 - throw argumentErrorHelper(  
458 - action,  
459 - format('Conflicting option string(s): %s', conflicts)  
460 - );  
461 -};  
462 -  
463 -ActionContainer.prototype._handleConflictResolve = function (action, conflOptionals) {  
464 - // remove all conflicting options  
465 - var self = this;  
466 - conflOptionals.forEach(function (pair) {  
467 - var optionString = pair[0];  
468 - var conflictingAction = pair[1];  
469 - // remove the conflicting option string  
470 - var i = conflictingAction.optionStrings.indexOf(optionString);  
471 - if (i >= 0) {  
472 - conflictingAction.optionStrings.splice(i, 1);  
473 - }  
474 - delete self._optionStringActions[optionString];  
475 - // if the option now has no option string, remove it from the  
476 - // container holding it  
477 - if (conflictingAction.optionStrings.length === 0) {  
478 - conflictingAction.container._removeAction(conflictingAction);  
479 - }  
480 - });  
481 -};  
images/node_modules/argparse/lib/argparse.js deleted 100644 → 0
1 -'use strict';  
2 -  
3 -module.exports.ArgumentParser = require('./argument_parser.js');  
4 -module.exports.Namespace = require('./namespace');  
5 -module.exports.Action = require('./action');  
6 -module.exports.HelpFormatter = require('./help/formatter.js');  
7 -module.exports.Const = require('./const.js');  
8 -  
9 -module.exports.ArgumentDefaultsHelpFormatter =  
10 - require('./help/added_formatters.js').ArgumentDefaultsHelpFormatter;  
11 -module.exports.RawDescriptionHelpFormatter =  
12 - require('./help/added_formatters.js').RawDescriptionHelpFormatter;  
13 -module.exports.RawTextHelpFormatter =  
14 - require('./help/added_formatters.js').RawTextHelpFormatter;  
images/node_modules/argparse/lib/argument/error.js deleted 100644 → 0
1 -'use strict';  
2 -  
3 -  
4 -var format = require('util').format;  
5 -  
6 -  
7 -var ERR_CODE = 'ARGError';  
8 -  
9 -/*:nodoc:*  
10 - * argumentError(argument, message) -> TypeError  
11 - * - argument (Object): action with broken argument  
12 - * - message (String): error message  
13 - *  
14 - * Error format helper. An error from creating or using an argument  
15 - * (optional or positional). The string value of this exception  
16 - * is the message, augmented with information  
17 - * about the argument that caused it.  
18 - *  
19 - * #####Example  
20 - *  
21 - * var argumentErrorHelper = require('./argument/error');  
22 - * if (conflictOptionals.length > 0) {  
23 - * throw argumentErrorHelper(  
24 - * action,  
25 - * format('Conflicting option string(s): %s', conflictOptionals.join(', '))  
26 - * );  
27 - * }  
28 - *  
29 - **/  
30 -module.exports = function (argument, message) {  
31 - var argumentName = null;  
32 - var errMessage;  
33 - var err;  
34 -  
35 - if (argument.getName) {  
36 - argumentName = argument.getName();  
37 - } else {  
38 - argumentName = '' + argument;  
39 - }  
40 -  
41 - if (!argumentName) {  
42 - errMessage = message;  
43 - } else {  
44 - errMessage = format('argument "%s": %s', argumentName, message);  
45 - }  
46 -  
47 - err = new TypeError(errMessage);  
48 - err.code = ERR_CODE;  
49 - return err;  
50 -};  
images/node_modules/argparse/lib/argument/exclusive.js deleted 100644 → 0
1 -/** internal  
2 - * class MutuallyExclusiveGroup  
3 - *  
4 - * Group arguments.  
5 - * By default, ArgumentParser groups command-line arguments  
6 - * into “positional arguments” and “optional arguments”  
7 - * when displaying help messages. When there is a better  
8 - * conceptual grouping of arguments than this default one,  
9 - * appropriate groups can be created using the addArgumentGroup() method  
10 - *  
11 - * This class inherited from [[ArgumentContainer]]  
12 - **/  
13 -'use strict';  
14 -  
15 -var util = require('util');  
16 -  
17 -var ArgumentGroup = require('./group');  
18 -  
19 -/**  
20 - * new MutuallyExclusiveGroup(container, options)  
21 - * - container (object): main container  
22 - * - options (object): options.required -> true/false  
23 - *  
24 - * `required` could be an argument itself, but making it a property of  
25 - * the options argument is more consistent with the JS adaptation of the Python)  
26 - **/  
27 -var MutuallyExclusiveGroup = module.exports = function MutuallyExclusiveGroup(container, options) {  
28 - var required;  
29 - options = options || {};  
30 - required = options.required || false;  
31 - ArgumentGroup.call(this, container);  
32 - this.required = required;  
33 -  
34 -};  
35 -util.inherits(MutuallyExclusiveGroup, ArgumentGroup);  
36 -  
37 -  
38 -MutuallyExclusiveGroup.prototype._addAction = function (action) {  
39 - var msg;  
40 - if (action.required) {  
41 - msg = 'mutually exclusive arguments must be optional';  
42 - throw new Error(msg);  
43 - }  
44 - action = this._container._addAction(action);  
45 - this._groupActions.push(action);  
46 - return action;  
47 -};  
48 -  
49 -  
50 -MutuallyExclusiveGroup.prototype._removeAction = function (action) {  
51 - this._container._removeAction(action);  
52 - this._groupActions.remove(action);  
53 -};  
54 -  
images/node_modules/argparse/lib/argument/group.js deleted 100644 → 0
1 -/** internal  
2 - * class ArgumentGroup  
3 - *  
4 - * Group arguments.  
5 - * By default, ArgumentParser groups command-line arguments  
6 - * into “positional arguments” and “optional arguments”  
7 - * when displaying help messages. When there is a better  
8 - * conceptual grouping of arguments than this default one,  
9 - * appropriate groups can be created using the addArgumentGroup() method  
10 - *  
11 - * This class inherited from [[ArgumentContainer]]  
12 - **/  
13 -'use strict';  
14 -  
15 -var util = require('util');  
16 -  
17 -var ActionContainer = require('../action_container');  
18 -  
19 -  
20 -/**  
21 - * new ArgumentGroup(container, options)  
22 - * - container (object): main container  
23 - * - options (object): hash of group options  
24 - *  
25 - * #### options  
26 - * - **prefixChars** group name prefix  
27 - * - **argumentDefault** default argument value  
28 - * - **title** group title  
29 - * - **description** group description  
30 - *  
31 - **/  
32 -var ArgumentGroup = module.exports = function ArgumentGroup(container, options) {  
33 -  
34 - options = options || {};  
35 -  
36 - // add any missing keyword arguments by checking the container  
37 - options.conflictHandler = (options.conflictHandler || container.conflictHandler);  
38 - options.prefixChars = (options.prefixChars || container.prefixChars);  
39 - options.argumentDefault = (options.argumentDefault || container.argumentDefault);  
40 -  
41 - ActionContainer.call(this, options);  
42 -  
43 - // group attributes  
44 - this.title = options.title;  
45 - this._groupActions = [];  
46 -  
47 - // share most attributes with the container  
48 - this._container = container;  
49 - this._registries = container._registries;  
50 - this._actions = container._actions;  
51 - this._optionStringActions = container._optionStringActions;  
52 - this._defaults = container._defaults;  
53 - this._hasNegativeNumberOptionals = container._hasNegativeNumberOptionals;  
54 - this._mutuallyExclusiveGroups = container._mutuallyExclusiveGroups;  
55 -};  
56 -util.inherits(ArgumentGroup, ActionContainer);  
57 -  
58 -  
59 -ArgumentGroup.prototype._addAction = function (action) {  
60 - // Parent add action  
61 - action = ActionContainer.prototype._addAction.call(this, action);  
62 - this._groupActions.push(action);  
63 - return action;  
64 -};  
65 -  
66 -  
67 -ArgumentGroup.prototype._removeAction = function (action) {  
68 - // Parent remove action  
69 - ActionContainer.prototype._removeAction.call(this, action);  
70 - var actionIndex = this._groupActions.indexOf(action);  
71 - if (actionIndex >= 0) {  
72 - this._groupActions.splice(actionIndex, 1);  
73 - }  
74 -};  
75 -  
images/node_modules/argparse/lib/argument_parser.js deleted 100644 → 0
1 -/**  
2 - * class ArgumentParser  
3 - *  
4 - * Object for parsing command line strings into js objects.  
5 - *  
6 - * Inherited from [[ActionContainer]]  
7 - **/  
8 -'use strict';  
9 -  
10 -var util = require('util');  
11 -var format = require('util').format;  
12 -var Path = require('path');  
13 -  
14 -var _ = require('underscore');  
15 -_.str = require('underscore.string');  
16 -  
17 -// Constants  
18 -var $$ = require('./const');  
19 -  
20 -var ActionContainer = require('./action_container');  
21 -  
22 -// Errors  
23 -var argumentErrorHelper = require('./argument/error');  
24 -  
25 -var HelpFormatter = require('./help/formatter');  
26 -  
27 -var Namespace = require('./namespace');  
28 -  
29 -  
30 -/**  
31 - * new ArgumentParser(options)  
32 - *  
33 - * Create a new ArgumentParser object.  
34 - *  
35 - * ##### Options:  
36 - * - `prog` The name of the program (default: Path.basename(process.argv[1]))  
37 - * - `usage` A usage message (default: auto-generated from arguments)  
38 - * - `description` A description of what the program does  
39 - * - `epilog` Text following the argument descriptions  
40 - * - `parents` Parsers whose arguments should be copied into this one  
41 - * - `formatterClass` HelpFormatter class for printing help messages  
42 - * - `prefixChars` Characters that prefix optional arguments  
43 - * - `fromfilePrefixChars` Characters that prefix files containing additional arguments  
44 - * - `argumentDefault` The default value for all arguments  
45 - * - `addHelp` Add a -h/-help option  
46 - * - `conflictHandler` Specifies how to handle conflicting argument names  
47 - * - `debug` Enable debug mode. Argument errors throw exception in  
48 - * debug mode and process.exit in normal. Used for development and  
49 - * testing (default: false)  
50 - *  
51 - * See also [original guide][1]  
52 - *  
53 - * [1]:http://docs.python.org/dev/library/argparse.html#argumentparser-objects  
54 - **/  
55 -var ArgumentParser = module.exports = function ArgumentParser(options) {  
56 - var self = this;  
57 - options = options || {};  
58 -  
59 - options.description = (options.description || null);  
60 - options.argumentDefault = (options.argumentDefault || null);  
61 - options.prefixChars = (options.prefixChars || '-');  
62 - options.conflictHandler = (options.conflictHandler || 'error');  
63 - ActionContainer.call(this, options);  
64 -  
65 - options.addHelp = (options.addHelp === undefined || !!options.addHelp);  
66 - options.parents = (options.parents || []);  
67 - // default program name  
68 - options.prog = (options.prog || Path.basename(process.argv[1]));  
69 - this.prog = options.prog;  
70 - this.usage = options.usage;  
71 - this.epilog = options.epilog;  
72 - this.version = options.version;  
73 -  
74 - this.debug = (options.debug === true);  
75 -  
76 - this.formatterClass = (options.formatterClass || HelpFormatter);  
77 - this.fromfilePrefixChars = options.fromfilePrefixChars || null;  
78 - this._positionals = this.addArgumentGroup({title: 'Positional arguments'});  
79 - this._optionals = this.addArgumentGroup({title: 'Optional arguments'});  
80 - this._subparsers = null;  
81 -  
82 - // register types  
83 - var FUNCTION_IDENTITY = function (o) {  
84 - return o;  
85 - };  
86 - this.register('type', 'auto', FUNCTION_IDENTITY);  
87 - this.register('type', null, FUNCTION_IDENTITY);  
88 - this.register('type', 'int', function (x) {  
89 - var result = parseInt(x, 10);  
90 - if (isNaN(result)) {  
91 - throw new Error(x + ' is not a valid integer.');  
92 - }  
93 - return result;  
94 - });  
95 - this.register('type', 'float', function (x) {  
96 - var result = parseFloat(x);  
97 - if (isNaN(result)) {  
98 - throw new Error(x + ' is not a valid float.');  
99 - }  
100 - return result;  
101 - });  
102 - this.register('type', 'string', function (x) {  
103 - return '' + x;  
104 - });  
105 -  
106 - // add help and version arguments if necessary  
107 - var defaultPrefix = (this.prefixChars.indexOf('-') > -1) ? '-' : this.prefixChars[0];  
108 - if (options.addHelp) {  
109 - this.addArgument(  
110 - [defaultPrefix + 'h', defaultPrefix + defaultPrefix + 'help'],  
111 - {  
112 - action: 'help',  
113 - defaultValue: $$.SUPPRESS,  
114 - help: 'Show this help message and exit.'  
115 - }  
116 - );  
117 - }  
118 - if (this.version !== undefined) {  
119 - this.addArgument(  
120 - [defaultPrefix + 'v', defaultPrefix + defaultPrefix + 'version'],  
121 - {  
122 - action: 'version',  
123 - version: this.version,  
124 - defaultValue: $$.SUPPRESS,  
125 - help: "Show program's version number and exit."  
126 - }  
127 - );  
128 - }  
129 -  
130 - // add parent arguments and defaults  
131 - options.parents.forEach(function (parent) {  
132 - self._addContainerActions(parent);  
133 - if (parent._defaults !== undefined) {  
134 - for (var defaultKey in parent._defaults) {  
135 - if (parent._defaults.hasOwnProperty(defaultKey)) {  
136 - self._defaults[defaultKey] = parent._defaults[defaultKey];  
137 - }  
138 - }  
139 - }  
140 - });  
141 -  
142 -};  
143 -util.inherits(ArgumentParser, ActionContainer);  
144 -  
145 -/**  
146 - * ArgumentParser#addSubparsers(options) -> [[ActionSubparsers]]  
147 - * - options (object): hash of options see [[ActionSubparsers.new]]  
148 - *  
149 - * See also [subcommands][1]  
150 - *  
151 - * [1]:http://docs.python.org/dev/library/argparse.html#sub-commands  
152 - **/  
153 -ArgumentParser.prototype.addSubparsers = function (options) {  
154 - if (!!this._subparsers) {  
155 - this.error('Cannot have multiple subparser arguments.');  
156 - }  
157 -  
158 - options = options || {};  
159 - options.debug = (this.debug === true);  
160 - options.optionStrings = [];  
161 - options.parserClass = (options.parserClass || ArgumentParser);  
162 -  
163 -  
164 - if (!!options.title || !!options.description) {  
165 -  
166 - this._subparsers = this.addArgumentGroup({  
167 - title: (options.title || 'subcommands'),  
168 - description: options.description  
169 - });  
170 - delete options.title;  
171 - delete options.description;  
172 -  
173 - } else {  
174 - this._subparsers = this._positionals;  
175 - }  
176 -  
177 - // prog defaults to the usage message of this parser, skipping  
178 - // optional arguments and with no "usage:" prefix  
179 - if (!options.prog) {  
180 - var formatter = this._getFormatter();  
181 - var positionals = this._getPositionalActions();  
182 - var groups = this._mutuallyExclusiveGroups;  
183 - formatter.addUsage(this.usage, positionals, groups, '');  
184 - options.prog = _.str.strip(formatter.formatHelp());  
185 - }  
186 -  
187 - // create the parsers action and add it to the positionals list  
188 - var ParsersClass = this._popActionClass(options, 'parsers');  
189 - var action = new ParsersClass(options);  
190 - this._subparsers._addAction(action);  
191 -  
192 - // return the created parsers action  
193 - return action;  
194 -};  
195 -  
196 -ArgumentParser.prototype._addAction = function (action) {  
197 - if (action.isOptional()) {  
198 - this._optionals._addAction(action);  
199 - } else {  
200 - this._positionals._addAction(action);  
201 - }  
202 - return action;  
203 -};  
204 -  
205 -ArgumentParser.prototype._getOptionalActions = function () {  
206 - return this._actions.filter(function (action) {  
207 - return action.isOptional();  
208 - });  
209 -};  
210 -  
211 -ArgumentParser.prototype._getPositionalActions = function () {  
212 - return this._actions.filter(function (action) {  
213 - return action.isPositional();  
214 - });  
215 -};  
216 -  
217 -  
218 -/**  
219 - * ArgumentParser#parseArgs(args, namespace) -> Namespace|Object  
220 - * - args (array): input elements  
221 - * - namespace (Namespace|Object): result object  
222 - *  
223 - * Parsed args and throws error if some arguments are not recognized  
224 - *  
225 - * See also [original guide][1]  
226 - *  
227 - * [1]:http://docs.python.org/dev/library/argparse.html#the-parse-args-method  
228 - **/  
229 -ArgumentParser.prototype.parseArgs = function (args, namespace) {  
230 - var argv;  
231 - var result = this.parseKnownArgs(args, namespace);  
232 -  
233 - args = result[0];  
234 - argv = result[1];  
235 - if (argv && argv.length > 0) {  
236 - this.error(  
237 - format('Unrecognized arguments: %s.', argv.join(' '))  
238 - );  
239 - }  
240 - return args;  
241 -};  
242 -  
243 -/**  
244 - * ArgumentParser#parseKnownArgs(args, namespace) -> array  
245 - * - args (array): input options  
246 - * - namespace (Namespace|Object): result object  
247 - *  
248 - * Parse known arguments and return tuple of result object  
249 - * and unknown args  
250 - *  
251 - * See also [original guide][1]  
252 - *  
253 - * [1]:http://docs.python.org/dev/library/argparse.html#partial-parsing  
254 - **/  
255 -ArgumentParser.prototype.parseKnownArgs = function (args, namespace) {  
256 - var self = this;  
257 -  
258 - // args default to the system args  
259 - args = args || process.argv.slice(2);  
260 -  
261 - // default Namespace built from parser defaults  
262 - namespace = namespace || new Namespace();  
263 -  
264 - self._actions.forEach(function (action) {  
265 - if (action.dest !== $$.SUPPRESS) {  
266 - if (!_.has(namespace, action.dest)) {  
267 - if (action.defaultValue !== $$.SUPPRESS) {  
268 - var defaultValue = action.defaultValue;  
269 - if (_.isString(action.defaultValue)) {  
270 - defaultValue = self._getValue(action, defaultValue);  
271 - }  
272 - namespace[action.dest] = defaultValue;  
273 - }  
274 - }  
275 - }  
276 - });  
277 -  
278 - _.keys(self._defaults).forEach(function (dest) {  
279 - namespace[dest] = self._defaults[dest];  
280 - });  
281 -  
282 - // parse the arguments and exit if there are any errors  
283 - try {  
284 - var res = this._parseKnownArgs(args, namespace);  
285 -  
286 - namespace = res[0];  
287 - args = res[1];  
288 - if (_.has(namespace, $$._UNRECOGNIZED_ARGS_ATTR)) {  
289 - args = _.union(args, namespace[$$._UNRECOGNIZED_ARGS_ATTR]);  
290 - delete namespace[$$._UNRECOGNIZED_ARGS_ATTR];  
291 - }  
292 - return [namespace, args];  
293 - } catch (e) {  
294 - this.error(e);  
295 - }  
296 -};  
297 -  
298 -ArgumentParser.prototype._parseKnownArgs = function (argStrings, namespace) {  
299 - var self = this;  
300 -  
301 - var extras = [];  
302 -  
303 - // replace arg strings that are file references  
304 - if (this.fromfilePrefixChars !== null) {  
305 - argStrings = this._readArgsFromFiles(argStrings);  
306 - }  
307 - // map all mutually exclusive arguments to the other arguments  
308 - // they can't occur with  
309 - // Python has 'conflicts = action_conflicts.setdefault(mutex_action, [])'  
310 - // though I can't conceive of a way in which an action could be a member  
311 - // of two different mutually exclusive groups.  
312 -  
313 - function actionHash(action) {  
314 - // some sort of hashable key for this action  
315 - // action itself cannot be a key in actionConflicts  
316 - // I think getName() (join of optionStrings) is unique enough  
317 - return action.getName();  
318 - }  
319 -  
320 - var conflicts, key;  
321 - var actionConflicts = {};  
322 -  
323 - this._mutuallyExclusiveGroups.forEach(function (mutexGroup) {  
324 - mutexGroup._groupActions.forEach(function (mutexAction, i, groupActions) {  
325 - key = actionHash(mutexAction);  
326 - if (!_.has(actionConflicts, key)) {  
327 - actionConflicts[key] = [];  
328 - }  
329 - conflicts = actionConflicts[key];  
330 - conflicts.push.apply(conflicts, groupActions.slice(0, i));  
331 - conflicts.push.apply(conflicts, groupActions.slice(i + 1));  
332 - });  
333 - });  
334 -  
335 - // find all option indices, and determine the arg_string_pattern  
336 - // which has an 'O' if there is an option at an index,  
337 - // an 'A' if there is an argument, or a '-' if there is a '--'  
338 - var optionStringIndices = {};  
339 -  
340 - var argStringPatternParts = [];  
341 -  
342 - argStrings.forEach(function (argString, argStringIndex) {  
343 - if (argString === '--') {  
344 - argStringPatternParts.push('-');  
345 - while (argStringIndex < argStrings.length) {  
346 - argStringPatternParts.push('A');  
347 - argStringIndex++;  
348 - }  
349 - }  
350 - // otherwise, add the arg to the arg strings  
351 - // and note the index if it was an option  
352 - else {  
353 - var pattern;  
354 - var optionTuple = self._parseOptional(argString);  
355 - if (!optionTuple) {  
356 - pattern = 'A';  
357 - }  
358 - else {  
359 - optionStringIndices[argStringIndex] = optionTuple;  
360 - pattern = 'O';  
361 - }  
362 - argStringPatternParts.push(pattern);  
363 - }  
364 - });  
365 - var argStringsPattern = argStringPatternParts.join('');  
366 -  
367 - var seenActions = [];  
368 - var seenNonDefaultActions = [];  
369 -  
370 -  
371 - function takeAction(action, argumentStrings, optionString) {  
372 - seenActions.push(action);  
373 - var argumentValues = self._getValues(action, argumentStrings);  
374 -  
375 - // error if this argument is not allowed with other previously  
376 - // seen arguments, assuming that actions that use the default  
377 - // value don't really count as "present"  
378 - if (argumentValues !== action.defaultValue) {  
379 - seenNonDefaultActions.push(action);  
380 - if (!!actionConflicts[actionHash(action)]) {  
381 - actionConflicts[actionHash(action)].forEach(function (actionConflict) {  
382 - if (seenNonDefaultActions.indexOf(actionConflict) >= 0) {  
383 - throw argumentErrorHelper(  
384 - action,  
385 - format('Not allowed with argument "%s".', actionConflict.getName())  
386 - );  
387 - }  
388 - });  
389 - }  
390 - }  
391 -  
392 - if (argumentValues !== $$.SUPPRESS) {  
393 - action.call(self, namespace, argumentValues, optionString);  
394 - }  
395 - }  
396 -  
397 - function consumeOptional(startIndex) {  
398 - // get the optional identified at this index  
399 - var optionTuple = optionStringIndices[startIndex];  
400 - var action = optionTuple[0];  
401 - var optionString = optionTuple[1];  
402 - var explicitArg = optionTuple[2];  
403 -  
404 - // identify additional optionals in the same arg string  
405 - // (e.g. -xyz is the same as -x -y -z if no args are required)  
406 - var actionTuples = [];  
407 -  
408 - var args, argCount, start, stop;  
409 -  
410 - while (true) {  
411 - if (!action) {  
412 - extras.push(argStrings[startIndex]);  
413 - return startIndex + 1;  
414 - }  
415 - if (!!explicitArg) {  
416 - argCount = self._matchArgument(action, 'A');  
417 -  
418 - // if the action is a single-dash option and takes no  
419 - // arguments, try to parse more single-dash options out  
420 - // of the tail of the option string  
421 - var chars = self.prefixChars;  
422 - if (argCount === 0 && chars.indexOf(optionString[1]) < 0) {  
423 - actionTuples.push([action, [], optionString]);  
424 - optionString = optionString[0] + explicitArg[0];  
425 - var newExplicitArg = explicitArg.slice(1) || null;  
426 - var optionalsMap = self._optionStringActions;  
427 -  
428 - if (_.keys(optionalsMap).indexOf(optionString) >= 0) {  
429 - action = optionalsMap[optionString];  
430 - explicitArg = newExplicitArg;  
431 - }  
432 - else {  
433 - var msg = 'ignored explicit argument %r';  
434 - throw argumentErrorHelper(action, msg);  
435 - }  
436 - }  
437 - // if the action expect exactly one argument, we've  
438 - // successfully matched the option; exit the loop  
439 - else if (argCount === 1) {  
440 - stop = startIndex + 1;  
441 - args = [explicitArg];  
442 - actionTuples.push([action, args, optionString]);  
443 - break;  
444 - }  
445 - // error if a double-dash option did not use the  
446 - // explicit argument  
447 - else {  
448 - var message = 'ignored explicit argument %r';  
449 - throw argumentErrorHelper(action, _.str.sprintf(message, explicitArg));  
450 - }  
451 - }  
452 - // if there is no explicit argument, try to match the  
453 - // optional's string arguments with the following strings  
454 - // if successful, exit the loop  
455 - else {  
456 -  
457 - start = startIndex + 1;  
458 - var selectedPatterns = argStringsPattern.substr(start);  
459 -  
460 - argCount = self._matchArgument(action, selectedPatterns);  
461 - stop = start + argCount;  
462 -  
463 -  
464 - args = argStrings.slice(start, stop);  
465 -  
466 - actionTuples.push([action, args, optionString]);  
467 - break;  
468 - }  
469 -  
470 - }  
471 -  
472 - // add the Optional to the list and return the index at which  
473 - // the Optional's string args stopped  
474 - if (actionTuples.length < 1) {  
475 - throw new Error('length should be > 0');  
476 - }  
477 - for (var i = 0; i < actionTuples.length; i++) {  
478 - takeAction.apply(self, actionTuples[i]);  
479 - }  
480 - return stop;  
481 - }  
482 -  
483 - // the list of Positionals left to be parsed; this is modified  
484 - // by consume_positionals()  
485 - var positionals = self._getPositionalActions();  
486 -  
487 - function consumePositionals(startIndex) {  
488 - // match as many Positionals as possible  
489 - var selectedPattern = argStringsPattern.substr(startIndex);  
490 - var argCounts = self._matchArgumentsPartial(positionals, selectedPattern);  
491 -  
492 - // slice off the appropriate arg strings for each Positional  
493 - // and add the Positional and its args to the list  
494 - _.zip(positionals, argCounts).forEach(function (item) {  
495 - var action = item[0];  
496 - var argCount = item[1];  
497 - if (argCount === undefined) {  
498 - return;  
499 - }  
500 - var args = argStrings.slice(startIndex, startIndex + argCount);  
501 -  
502 - startIndex += argCount;  
503 - takeAction(action, args);  
504 - });  
505 -  
506 - // slice off the Positionals that we just parsed and return the  
507 - // index at which the Positionals' string args stopped  
508 - positionals = positionals.slice(argCounts.length);  
509 - return startIndex;  
510 - }  
511 -  
512 - // consume Positionals and Optionals alternately, until we have  
513 - // passed the last option string  
514 - var startIndex = 0;  
515 - var position;  
516 -  
517 - var maxOptionStringIndex = -1;  
518 -  
519 - Object.keys(optionStringIndices).forEach(function (position) {  
520 - maxOptionStringIndex = Math.max(maxOptionStringIndex, parseInt(position, 10));  
521 - });  
522 -  
523 - var positionalsEndIndex, nextOptionStringIndex;  
524 -  
525 - while (startIndex <= maxOptionStringIndex) {  
526 - // consume any Positionals preceding the next option  
527 - nextOptionStringIndex = null;  
528 - for (position in optionStringIndices) {  
529 - if (!optionStringIndices.hasOwnProperty(position)) { continue; }  
530 -  
531 - position = parseInt(position, 10);  
532 - if (position >= startIndex) {  
533 - if (nextOptionStringIndex !== null) {  
534 - nextOptionStringIndex = Math.min(nextOptionStringIndex, position);  
535 - }  
536 - else {  
537 - nextOptionStringIndex = position;  
538 - }  
539 - }  
540 - }  
541 -  
542 - if (startIndex !== nextOptionStringIndex) {  
543 - positionalsEndIndex = consumePositionals(startIndex);  
544 - // only try to parse the next optional if we didn't consume  
545 - // the option string during the positionals parsing  
546 - if (positionalsEndIndex > startIndex) {  
547 - startIndex = positionalsEndIndex;  
548 - continue;  
549 - }  
550 - else {  
551 - startIndex = positionalsEndIndex;  
552 - }  
553 - }  
554 -  
555 - // if we consumed all the positionals we could and we're not  
556 - // at the index of an option string, there were extra arguments  
557 - if (!optionStringIndices[startIndex]) {  
558 - var strings = argStrings.slice(startIndex, nextOptionStringIndex);  
559 - extras = extras.concat(strings);  
560 - startIndex = nextOptionStringIndex;  
561 - }  
562 - // consume the next optional and any arguments for it  
563 - startIndex = consumeOptional(startIndex);  
564 - }  
565 -  
566 - // consume any positionals following the last Optional  
567 - var stopIndex = consumePositionals(startIndex);  
568 -  
569 - // if we didn't consume all the argument strings, there were extras  
570 - extras = extras.concat(_.rest(argStrings, stopIndex));  
571 -  
572 - // if we didn't use all the Positional objects, there were too few  
573 - // arg strings supplied.  
574 - if (positionals.length > 0) {  
575 - self.error('too few arguments');  
576 - }  
577 -  
578 - // make sure all required actions were present  
579 - self._actions.forEach(function (action) {  
580 - if (action.required) {  
581 - if (_.indexOf(seenActions, action) < 0) {  
582 - self.error(format('Argument "%s" is required', action.getName()));  
583 - }  
584 - }  
585 - });  
586 -  
587 - // make sure all required groups have one option present  
588 - var actionUsed = false;  
589 - self._mutuallyExclusiveGroups.forEach(function (group) {  
590 - if (group.required) {  
591 - actionUsed = _.any(group._groupActions, function (action) {  
592 - return _.contains(seenNonDefaultActions, action);  
593 - });  
594 -  
595 - // if no actions were used, report the error  
596 - if (!actionUsed) {  
597 - var names = [];  
598 - group._groupActions.forEach(function (action) {  
599 - if (action.help !== $$.SUPPRESS) {  
600 - names.push(action.getName());  
601 - }  
602 - });  
603 - names = names.join(' ');  
604 - var msg = 'one of the arguments ' + names + ' is required';  
605 - self.error(msg);  
606 - }  
607 - }  
608 - });  
609 -  
610 - // return the updated namespace and the extra arguments  
611 - return [namespace, extras];  
612 -};  
613 -  
614 -ArgumentParser.prototype._readArgsFromFiles = function (argStrings) {  
615 - // expand arguments referencing files  
616 - var _this = this;  
617 - var fs = require('fs');  
618 - var newArgStrings = [];  
619 - argStrings.forEach(function (argString) {  
620 - if (_this.fromfilePrefixChars.indexOf(argString[0]) < 0) {  
621 - // for regular arguments, just add them back into the list  
622 - newArgStrings.push(argString);  
623 - } else {  
624 - // replace arguments referencing files with the file content  
625 - try {  
626 - var argstrs = [];  
627 - var filename = argString.slice(1);  
628 - var content = fs.readFileSync(filename, 'utf8');  
629 - content = content.trim().split('\n');  
630 - content.forEach(function (argLine) {  
631 - _this.convertArgLineToArgs(argLine).forEach(function (arg) {  
632 - argstrs.push(arg);  
633 - });  
634 - argstrs = _this._readArgsFromFiles(argstrs);  
635 - });  
636 - newArgStrings.push.apply(newArgStrings, argstrs);  
637 - } catch (error) {  
638 - return _this.error(error.message);  
639 - }  
640 - }  
641 - });  
642 - return newArgStrings;  
643 -};  
644 -  
645 -ArgumentParser.prototype.convertArgLineToArgs = function (argLine) {  
646 - return [argLine];  
647 -};  
648 -  
649 -ArgumentParser.prototype._matchArgument = function (action, regexpArgStrings) {  
650 -  
651 - // match the pattern for this action to the arg strings  
652 - var regexpNargs = new RegExp('^' + this._getNargsPattern(action));  
653 - var matches = regexpArgStrings.match(regexpNargs);  
654 - var message;  
655 -  
656 - // throw an exception if we weren't able to find a match  
657 - if (!matches) {  
658 - switch (action.nargs) {  
659 - case undefined:  
660 - case null:  
661 - message = 'Expected one argument.';  
662 - break;  
663 - case $$.OPTIONAL:  
664 - message = 'Expected at most one argument.';  
665 - break;  
666 - case $$.ONE_OR_MORE:  
667 - message = 'Expected at least one argument.';  
668 - break;  
669 - default:  
670 - message = 'Expected %s argument(s)';  
671 - }  
672 -  
673 - throw argumentErrorHelper(  
674 - action,  
675 - format(message, action.nargs)  
676 - );  
677 - }  
678 - // return the number of arguments matched  
679 - return matches[1].length;  
680 -};  
681 -  
682 -ArgumentParser.prototype._matchArgumentsPartial = function (actions, regexpArgStrings) {  
683 - // progressively shorten the actions list by slicing off the  
684 - // final actions until we find a match  
685 - var self = this;  
686 - var result = [];  
687 - var actionSlice, pattern, matches;  
688 - var i, j;  
689 -  
690 - var getLength = function (string) {  
691 - return string.length;  
692 - };  
693 -  
694 - for (i = actions.length; i > 0; i--) {  
695 - pattern = '';  
696 - actionSlice = actions.slice(0, i);  
697 - for (j = 0; j < actionSlice.length; j++) {  
698 - pattern += self._getNargsPattern(actionSlice[j]);  
699 - }  
700 -  
701 - pattern = new RegExp('^' + pattern);  
702 - matches = regexpArgStrings.match(pattern);  
703 -  
704 - if (matches && matches.length > 0) {  
705 - // need only groups  
706 - matches = matches.splice(1);  
707 - result = result.concat(matches.map(getLength));  
708 - break;  
709 - }  
710 - }  
711 -  
712 - // return the list of arg string counts  
713 - return result;  
714 -};  
715 -  
716 -ArgumentParser.prototype._parseOptional = function (argString) {  
717 - var action, optionString, argExplicit, optionTuples;  
718 -  
719 - // if it's an empty string, it was meant to be a positional  
720 - if (!argString) {  
721 - return null;  
722 - }  
723 -  
724 - // if it doesn't start with a prefix, it was meant to be positional  
725 - if (this.prefixChars.indexOf(argString[0]) < 0) {  
726 - return null;  
727 - }  
728 -  
729 - // if the option string is present in the parser, return the action  
730 - if (!!this._optionStringActions[argString]) {  
731 - return [this._optionStringActions[argString], argString, null];  
732 - }  
733 -  
734 - // if it's just a single character, it was meant to be positional  
735 - if (argString.length === 1) {  
736 - return null;  
737 - }  
738 -  
739 - // if the option string before the "=" is present, return the action  
740 - if (argString.indexOf('=') >= 0) {  
741 - var argStringSplit = argString.split('=');  
742 - optionString = argStringSplit[0];  
743 - argExplicit = argStringSplit[1];  
744 -  
745 - if (!!this._optionStringActions[optionString]) {  
746 - action = this._optionStringActions[optionString];  
747 - return [action, optionString, argExplicit];  
748 - }  
749 - }  
750 -  
751 - // search through all possible prefixes of the option string  
752 - // and all actions in the parser for possible interpretations  
753 - optionTuples = this._getOptionTuples(argString);  
754 -  
755 - // if multiple actions match, the option string was ambiguous  
756 - if (optionTuples.length > 1) {  
757 - var optionStrings = optionTuples.map(function (optionTuple) {  
758 - return optionTuple[1];  
759 - });  
760 - this.error(format(  
761 - 'Ambiguous option: "%s" could match %s.',  
762 - argString, optionStrings.join(', ')  
763 - ));  
764 - // if exactly one action matched, this segmentation is good,  
765 - // so return the parsed action  
766 - } else if (optionTuples.length === 1) {  
767 - return optionTuples[0];  
768 - }  
769 -  
770 - // if it was not found as an option, but it looks like a negative  
771 - // number, it was meant to be positional  
772 - // unless there are negative-number-like options  
773 - if (argString.match(this._regexpNegativeNumber)) {  
774 - if (!_.any(this._hasNegativeNumberOptionals)) {  
775 - return null;  
776 - }  
777 - }  
778 - // if it contains a space, it was meant to be a positional  
779 - if (argString.search(' ') >= 0) {  
780 - return null;  
781 - }  
782 -  
783 - // it was meant to be an optional but there is no such option  
784 - // in this parser (though it might be a valid option in a subparser)  
785 - return [null, argString, null];  
786 -};  
787 -  
788 -ArgumentParser.prototype._getOptionTuples = function (optionString) {  
789 - var result = [];  
790 - var chars = this.prefixChars;  
791 - var optionPrefix;  
792 - var argExplicit;  
793 - var action;  
794 - var actionOptionString;  
795 -  
796 - // option strings starting with two prefix characters are only split at  
797 - // the '='  
798 - if (chars.indexOf(optionString[0]) >= 0 && chars.indexOf(optionString[1]) >= 0) {  
799 - if (optionString.indexOf('=') >= 0) {  
800 - var optionStringSplit = optionString.split('=', 1);  
801 -  
802 - optionPrefix = optionStringSplit[0];  
803 - argExplicit = optionStringSplit[1];  
804 - } else {  
805 - optionPrefix = optionString;  
806 - argExplicit = null;  
807 - }  
808 -  
809 - for (actionOptionString in this._optionStringActions) {  
810 - if (actionOptionString.substr(0, optionPrefix.length) === optionPrefix) {  
811 - action = this._optionStringActions[actionOptionString];  
812 - result.push([action, actionOptionString, argExplicit]);  
813 - }  
814 - }  
815 -  
816 - // single character options can be concatenated with their arguments  
817 - // but multiple character options always have to have their argument  
818 - // separate  
819 - } else if (chars.indexOf(optionString[0]) >= 0 && chars.indexOf(optionString[1]) < 0) {  
820 - optionPrefix = optionString;  
821 - argExplicit = null;  
822 - var optionPrefixShort = optionString.substr(0, 2);  
823 - var argExplicitShort = optionString.substr(2);  
824 -  
825 - for (actionOptionString in this._optionStringActions) {  
826 - action = this._optionStringActions[actionOptionString];  
827 - if (actionOptionString === optionPrefixShort) {  
828 - result.push([action, actionOptionString, argExplicitShort]);  
829 - } else if (actionOptionString.substr(0, optionPrefix.length) === optionPrefix) {  
830 - result.push([action, actionOptionString, argExplicit]);  
831 - }  
832 - }  
833 -  
834 - // shouldn't ever get here  
835 - } else {  
836 - throw new Error(format('Unexpected option string: %s.', optionString));  
837 - }  
838 - // return the collected option tuples  
839 - return result;  
840 -};  
841 -  
842 -ArgumentParser.prototype._getNargsPattern = function (action) {  
843 - // in all examples below, we have to allow for '--' args  
844 - // which are represented as '-' in the pattern  
845 - var regexpNargs;  
846 -  
847 - switch (action.nargs) {  
848 - // the default (null) is assumed to be a single argument  
849 - case undefined:  
850 - case null:  
851 - regexpNargs = '(-*A-*)';  
852 - break;  
853 - // allow zero or more arguments  
854 - case $$.OPTIONAL:  
855 - regexpNargs = '(-*A?-*)';  
856 - break;  
857 - // allow zero or more arguments  
858 - case $$.ZERO_OR_MORE:  
859 - regexpNargs = '(-*[A-]*)';  
860 - break;  
861 - // allow one or more arguments  
862 - case $$.ONE_OR_MORE:  
863 - regexpNargs = '(-*A[A-]*)';  
864 - break;  
865 - // allow any number of options or arguments  
866 - case $$.REMAINDER:  
867 - regexpNargs = '([-AO]*)';  
868 - break;  
869 - // allow one argument followed by any number of options or arguments  
870 - case $$.PARSER:  
871 - regexpNargs = '(-*A[-AO]*)';  
872 - break;  
873 - // all others should be integers  
874 - default:  
875 - regexpNargs = '(-*' + _.str.repeat('-*A', action.nargs) + '-*)';  
876 - }  
877 -  
878 - // if this is an optional action, -- is not allowed  
879 - if (action.isOptional()) {  
880 - regexpNargs = regexpNargs.replace(/-\*/g, '');  
881 - regexpNargs = regexpNargs.replace(/-/g, '');  
882 - }  
883 -  
884 - // return the pattern  
885 - return regexpNargs;  
886 -};  
887 -  
888 -//  
889 -// Value conversion methods  
890 -//  
891 -  
892 -ArgumentParser.prototype._getValues = function (action, argStrings) {  
893 - var self = this;  
894 -  
895 - // for everything but PARSER args, strip out '--'  
896 - if (action.nargs !== $$.PARSER && action.nargs !== $$.REMAINDER) {  
897 - argStrings = argStrings.filter(function (arrayElement) {  
898 - return arrayElement !== '--';  
899 - });  
900 - }  
901 -  
902 - var value, argString;  
903 -  
904 - // optional argument produces a default when not present  
905 - if (argStrings.length === 0 && action.nargs === $$.OPTIONAL) {  
906 -  
907 - value = (action.isOptional()) ? action.constant: action.defaultValue;  
908 -  
909 - if (typeof(value) === 'string') {  
910 - value = this._getValue(action, value);  
911 - this._checkValue(action, value);  
912 - }  
913 -  
914 - // when nargs='*' on a positional, if there were no command-line  
915 - // args, use the default if it is anything other than None  
916 - } else if (argStrings.length === 0 && action.nargs === $$.ZERO_OR_MORE &&  
917 - action.optionStrings.length === 0) {  
918 -  
919 - value = (action.defaultValue || argStrings);  
920 - this._checkValue(action, value);  
921 -  
922 - // single argument or optional argument produces a single value  
923 - } else if (argStrings.length === 1 &&  
924 - (!action.nargs || action.nargs === $$.OPTIONAL)) {  
925 -  
926 - argString = argStrings[0];  
927 - value = this._getValue(action, argString);  
928 - this._checkValue(action, value);  
929 -  
930 - // REMAINDER arguments convert all values, checking none  
931 - } else if (action.nargs === $$.REMAINDER) {  
932 - value = argStrings.map(function (v) {  
933 - return self._getValue(action, v);  
934 - });  
935 -  
936 - // PARSER arguments convert all values, but check only the first  
937 - } else if (action.nargs === $$.PARSER) {  
938 - value = argStrings.map(function (v) {  
939 - return self._getValue(action, v);  
940 - });  
941 - this._checkValue(action, value[0]);  
942 -  
943 - // all other types of nargs produce a list  
944 - } else {  
945 - value = argStrings.map(function (v) {  
946 - return self._getValue(action, v);  
947 - });  
948 - value.forEach(function (v) {  
949 - self._checkValue(action, v);  
950 - });  
951 - }  
952 -  
953 - // return the converted value  
954 - return value;  
955 -};  
956 -  
957 -ArgumentParser.prototype._getValue = function (action, argString) {  
958 - var result;  
959 -  
960 - var typeFunction = this._registryGet('type', action.type, action.type);  
961 - if (!_.isFunction(typeFunction)) {  
962 - var message = format('%s is not callable', typeFunction);  
963 - throw argumentErrorHelper(action, message);  
964 - }  
965 -  
966 - // convert the value to the appropriate type  
967 - try {  
968 - result = typeFunction(argString);  
969 -  
970 - // ArgumentTypeErrors indicate errors  
971 - // If action.type is not a registered string, it is a function  
972 - // Try to deduce its name for inclusion in the error message  
973 - // Failing that, include the error message it raised.  
974 - } catch (e) {  
975 - var name = null;  
976 - if (_.isString(action.type)) {  
977 - name = action.type;  
978 - } else {  
979 - name = action.type.name || action.type.displayName || '<function>';  
980 - }  
981 - var msg = format('Invalid %s value: %s', name, argString);  
982 - if (name === '<function>') {msg += '\n' + e.message; }  
983 - throw argumentErrorHelper(action, msg);  
984 - }  
985 - // return the converted value  
986 - return result;  
987 -};  
988 -  
989 -ArgumentParser.prototype._checkValue = function (action, value) {  
990 - // converted value must be one of the choices (if specified)  
991 - var choices = action.choices;  
992 - if (!!choices) {  
993 - // choise for argument can by array or string  
994 - if ((_.isString(choices) || _.isArray(choices)) &&  
995 - choices.indexOf(value) !== -1) {  
996 - return;  
997 - }  
998 - // choise for subparsers can by only hash  
999 - if (_.isObject(choices) && !_.isArray(choices) && choices[value]) {  
1000 - return;  
1001 - }  
1002 -  
1003 - if (_.isString(choices)) {  
1004 - choices = choices.split('').join(', ');  
1005 - }  
1006 - else if (_.isArray(choices)) {  
1007 - choices = choices.join(', ');  
1008 - }  
1009 - else {  
1010 - choices = _.keys(choices).join(', ');  
1011 - }  
1012 - var message = format('Invalid choice: %s (choose from [%s])', value, choices);  
1013 - throw argumentErrorHelper(action, message);  
1014 - }  
1015 -};  
1016 -  
1017 -//  
1018 -// Help formatting methods  
1019 -//  
1020 -  
1021 -/**  
1022 - * ArgumentParser#formatUsage -> string  
1023 - *  
1024 - * Return usage string  
1025 - *  
1026 - * See also [original guide][1]  
1027 - *  
1028 - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help  
1029 - **/  
1030 -ArgumentParser.prototype.formatUsage = function () {  
1031 - var formatter = this._getFormatter();  
1032 - formatter.addUsage(this.usage, this._actions, this._mutuallyExclusiveGroups);  
1033 - return formatter.formatHelp();  
1034 -};  
1035 -  
1036 -/**  
1037 - * ArgumentParser#formatHelp -> string  
1038 - *  
1039 - * Return help  
1040 - *  
1041 - * See also [original guide][1]  
1042 - *  
1043 - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help  
1044 - **/  
1045 -ArgumentParser.prototype.formatHelp = function () {  
1046 - var formatter = this._getFormatter();  
1047 -  
1048 - // usage  
1049 - formatter.addUsage(this.usage, this._actions, this._mutuallyExclusiveGroups);  
1050 -  
1051 - // description  
1052 - formatter.addText(this.description);  
1053 -  
1054 - // positionals, optionals and user-defined groups  
1055 - this._actionGroups.forEach(function (actionGroup) {  
1056 - formatter.startSection(actionGroup.title);  
1057 - formatter.addText(actionGroup.description);  
1058 - formatter.addArguments(actionGroup._groupActions);  
1059 - formatter.endSection();  
1060 - });  
1061 -  
1062 - // epilog  
1063 - formatter.addText(this.epilog);  
1064 -  
1065 - // determine help from format above  
1066 - return formatter.formatHelp();  
1067 -};  
1068 -  
1069 -ArgumentParser.prototype._getFormatter = function () {  
1070 - var FormatterClass = this.formatterClass;  
1071 - var formatter = new FormatterClass({prog: this.prog});  
1072 - return formatter;  
1073 -};  
1074 -  
1075 -//  
1076 -// Print functions  
1077 -//  
1078 -  
1079 -/**  
1080 - * ArgumentParser#printUsage() -> Void  
1081 - *  
1082 - * Print usage  
1083 - *  
1084 - * See also [original guide][1]  
1085 - *  
1086 - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help  
1087 - **/  
1088 -ArgumentParser.prototype.printUsage = function () {  
1089 - this._printMessage(this.formatUsage());  
1090 -};  
1091 -  
1092 -/**  
1093 - * ArgumentParser#printHelp() -> Void  
1094 - *  
1095 - * Print help  
1096 - *  
1097 - * See also [original guide][1]  
1098 - *  
1099 - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help  
1100 - **/  
1101 -ArgumentParser.prototype.printHelp = function () {  
1102 - this._printMessage(this.formatHelp());  
1103 -};  
1104 -  
1105 -ArgumentParser.prototype._printMessage = function (message, stream) {  
1106 - if (!stream) {  
1107 - stream = process.stdout;  
1108 - }  
1109 - if (message) {  
1110 - stream.write('' + message);  
1111 - }  
1112 -};  
1113 -  
1114 -//  
1115 -// Exit functions  
1116 -//  
1117 -  
1118 -/**  
1119 - * ArgumentParser#exit(status=0, message) -> Void  
1120 - * - status (int): exit status  
1121 - * - message (string): message  
1122 - *  
1123 - * Print message in stderr/stdout and exit program  
1124 - **/  
1125 -ArgumentParser.prototype.exit = function (status, message) {  
1126 - if (!!message) {  
1127 - if (status === 0) {  
1128 - this._printMessage(message);  
1129 - }  
1130 - else {  
1131 - this._printMessage(message, process.stderr);  
1132 - }  
1133 - }  
1134 -  
1135 - process.exit(status);  
1136 -};  
1137 -  
1138 -/**  
1139 - * ArgumentParser#error(message) -> Void  
1140 - * - err (Error|string): message  
1141 - *  
1142 - * Error method Prints a usage message incorporating the message to stderr and  
1143 - * exits. If you override this in a subclass,  
1144 - * it should not return -- it should  
1145 - * either exit or throw an exception.  
1146 - *  
1147 - **/  
1148 -ArgumentParser.prototype.error = function (err) {  
1149 - var message;  
1150 - if (err instanceof Error) {  
1151 - if (this.debug === true) {  
1152 - throw err;  
1153 - }  
1154 - message = err.message;  
1155 - }  
1156 - else {  
1157 - message = err;  
1158 - }  
1159 - var msg = format('%s: error: %s', this.prog, message) + $$.EOL;  
1160 -  
1161 - if (this.debug === true) {  
1162 - throw new Error(msg);  
1163 - }  
1164 -  
1165 - this.printUsage(process.stderr);  
1166 -  
1167 - return this.exit(2, msg);  
1168 -};  
images/node_modules/argparse/lib/const.js deleted 100644 → 0
1 -//  
2 -// Constants  
3 -//  
4 -module.exports.EOL = '\n';  
5 -  
6 -module.exports.SUPPRESS = '==SUPPRESS==';  
7 -  
8 -module.exports.OPTIONAL = '?';  
9 -  
10 -module.exports.ZERO_OR_MORE = '*';  
11 -  
12 -module.exports.ONE_OR_MORE = '+';  
13 -  
14 -module.exports.PARSER = 'A...';  
15 -  
16 -module.exports.REMAINDER = '...';  
17 -  
18 -module.exports._UNRECOGNIZED_ARGS_ATTR = '_unrecognized_args';  
images/node_modules/argparse/lib/help/added_formatters.js deleted 100644 → 0
1 -'use strict';  
2 -  
3 -var util = require('util');  
4 -var _ = require('underscore');  
5 -_.str = require('underscore.string');  
6 -  
7 -// Constants  
8 -var $$ = require('../const');  
9 -  
10 -var HelpFormatter = require('./formatter.js');  
11 -  
12 -/**  
13 - * new RawDescriptionHelpFormatter(options)  
14 - * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...})  
15 - *  
16 - * Help message formatter which adds default values to argument help.  
17 - *  
18 - * Only the name of this class is considered a public API. All the methods  
19 - * provided by the class are considered an implementation detail.  
20 - **/  
21 -  
22 -var ArgumentDefaultsHelpFormatter = function ArgumentDefaultsHelpFormatter(options) {  
23 - HelpFormatter.call(this, options);  
24 -};  
25 -  
26 -util.inherits(ArgumentDefaultsHelpFormatter, HelpFormatter);  
27 -  
28 -ArgumentDefaultsHelpFormatter.prototype._getHelpString = function (action) {  
29 - var help = action.help;  
30 - if (action.help.indexOf('%(defaultValue)s') === -1) {  
31 - if (action.defaultValue !== $$.SUPPRESS) {  
32 - var defaulting_nargs = [$$.OPTIONAL, $$.ZERO_OR_MORE];  
33 - if (action.isOptional() || (defaulting_nargs.indexOf(action.nargs) >= 0)) {  
34 - help += ' (default: %(defaultValue)s)';  
35 - }  
36 - }  
37 - }  
38 - return help;  
39 -};  
40 -  
41 -module.exports.ArgumentDefaultsHelpFormatter = ArgumentDefaultsHelpFormatter;  
42 -  
43 -/**  
44 - * new RawDescriptionHelpFormatter(options)  
45 - * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...})  
46 - *  
47 - * Help message formatter which retains any formatting in descriptions.  
48 - *  
49 - * Only the name of this class is considered a public API. All the methods  
50 - * provided by the class are considered an implementation detail.  
51 - **/  
52 -  
53 -var RawDescriptionHelpFormatter = function RawDescriptionHelpFormatter(options) {  
54 - HelpFormatter.call(this, options);  
55 -};  
56 -  
57 -util.inherits(RawDescriptionHelpFormatter, HelpFormatter);  
58 -  
59 -RawDescriptionHelpFormatter.prototype._fillText = function (text, width, indent) {  
60 - var lines = text.split('\n');  
61 - lines = lines.map(function (line) {  
62 - return _.str.rtrim(indent + line);  
63 - });  
64 - return lines.join('\n');  
65 -};  
66 -module.exports.RawDescriptionHelpFormatter = RawDescriptionHelpFormatter;  
67 -  
68 -/**  
69 - * new RawTextHelpFormatter(options)  
70 - * new ArgumentParser({formatterClass: argparse.RawTextHelpFormatter, ...})  
71 - *  
72 - * Help message formatter which retains formatting of all help text.  
73 - *  
74 - * Only the name of this class is considered a public API. All the methods  
75 - * provided by the class are considered an implementation detail.  
76 - **/  
77 -  
78 -var RawTextHelpFormatter = function RawTextHelpFormatter(options) {  
79 - RawDescriptionHelpFormatter.call(this, options);  
80 -};  
81 -  
82 -util.inherits(RawTextHelpFormatter, RawDescriptionHelpFormatter);  
83 -  
84 -RawTextHelpFormatter.prototype._splitLines = function (text) {  
85 - return text.split('\n');  
86 -};  
87 -  
88 -module.exports.RawTextHelpFormatter = RawTextHelpFormatter;