{"_id":"argv-parser","_rev":"29-90748eec9b7e78a68401ef382810d09c","name":"argv-parser","description":"Argv-parser is a small and simple node.js module to parser `process.argv`.","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"argv-parser","version":"0.1.0","description":"> A much better node.js commander solution for sub commands.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/kaelzhang/argv-parser.git"},"keywords":["argv","parser","argument-vector","cleaner","simple"],"author":{"name":"Kael"},"license":"MIT","readmeFilename":"README.md","bugs":{"url":"https://github.com/kaelzhang/argv-parser/issues"},"readme":"# Argv-parser\n\n> \n\n\n\n\n\n\n\n\n\n","_id":"argv-parser@0.1.0","dist":{"shasum":"b2aeb0ce8c621b254d86e9618cf2d79ced3cd887","tarball":"https://registry.npmjs.org/argv-parser/-/argv-parser-0.1.0.tgz","integrity":"sha512-0q0Ne6S4O6yE10q3So8R2zMqTBf42Euuf8atfxUWhb9CEyJNjewkAhWrWHsQrEP/Ry9weRA+9sG56DT1jQvBJw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEskGnf6NsU3MFDbikAyoCStGGByCNA2lVQuzlLhgq04AiAhoMmoZLO+bVgEMdOZ55k6GWoyoul+G26Ht0U7SBV8qg=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{}},"0.1.3":{"name":"argv-parser","version":"0.1.3","description":"Argv-parser is a small and simple node.js module to parser `process.argv`.","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/kaelzhang/argv-parser.git"},"keywords":["argv","parser","argument-vector","cleaner","simple"],"author":{"name":"Kael"},"license":"MIT","readmeFilename":"README.md","bugs":{"url":"https://github.com/kaelzhang/argv-parser/issues"},"dependencies":{"nopt":"~2.1.2"},"devDependencies":{"assert":"~0.4.9"},"readme":"# Argv-parser\n\n> Argv-parser is a small and simple node.js module to parser `process.argv`\n\nArgv-parser is designed to be simple and will do nothing about:\n\n- option registration\n- description of options\n- output\n\n## Installation\n\n```sh\nnpm install argv-parser --save\n```\n\n## Usage\n\n```js\nvar parser = require('argv-parser');\n```\n\n## parser.parse(argv, options)\n\nParse argument vector (argv) or something like argv.\n\n##### Returns `ret` `Object`\n\n- parsed: `Object` the parsed object\n- warnings: `Object` the warnings of each option. If not exists, `ret.warning` will be an empty object\n- errors: `Object` the errors of each option.\n\n##### argv `Array`\n\n`process.argv` or something like that.\n\n##### options `Object`\n\n- rules: `Object` an extended `nopt` rules\n- offset: `Number` (optional, default to `2`) the offset from which the parser should start to parse.\n\n\n## parser.clean(data, options)\n\n##### Returns\n\nThe same as `parser.parse`\n\n##### options `Object`\n\n- rules: `Object`\n- types: `Object` (optional) type definitions. For most cases, you needn't this option\n\n\n## options.rules\n\n\n## Example\n\ntest.js\n\n```js\nvar rules = {\n    open: {\n        type: Boolean,\n        value: true\n    },\n\n    port: {\n        type: Number,\n        short: 'p',\n        value: function(port, parsed, tool) {\n            if(!port){\n                port = 9230;\n            }\n\n            if(port < 8000){\n                tool.warn('port < 8000 which is dangerous');\n                \n                if(port < 1000){\n                \ttool.error('port < 100 which is forbidden');\n        \t\t\treturn;\n                }\n            }\n\n            return port;\n        }\n    },\n\n    html: {\n        type: 'html',\n    },\n\n    name: {\n        type: String\n    }\n};\n\nvar data = parser.parse(process.argv, {\n\trules: rules\n});\n```\n\nDefault values:\n\n```\n$ node test.js\n> data.parsed.open; // true\n> data.parsed.port; // 9230\n\n```\n\nType limitation:\n\n```\n$ node test.js --port 8888 --no-open --name name<script>alert(123)</script>\n> data.parsed.open; // false\n> data.parsed.port; // 8888\n> data.parsed.name; // 'namealert(123)'; -> stripped\n> data.errors;      // {}\n> data.warnings;    // {}\n```\n\nWarnings and errors:\n\n```\n$ node test.js --port 888 --no-open --name name<script>alert(123)</script>\n> data.parsed.open; // false\n> data.parsed.port; // undefined; -> error\n> data.parsed.name; // 'name<script>alert(123)</script>'\n> data.errors;      // {port: ['port < 100 which is forbidden']}\n> data.warnings;    // {port: ['port < 8000 which is dangerous']}\n```\n\n\n\n\n\n\n","_id":"argv-parser@0.1.3","dist":{"shasum":"1b5cc0a078f4ab6db0d597f9340a8d7b0771d5da","tarball":"https://registry.npmjs.org/argv-parser/-/argv-parser-0.1.3.tgz","integrity":"sha512-FuuEG09vlOcofTlHxCgTwdm9lzTvqt/LzI6VIs7qtADammjuJDwJj8ARaHbKGbjApYaSKPI7GkCpmkJRL4XUsg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDnmz87wEzvM29H2GMWdKREO6j5NwxFgRrqpCi1ciX9SAiAzLgBA3Pl5+aaNIR1v09MvqH5jRKdC47PaDG1kZGEWYw=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{}},"0.1.4":{"name":"argv-parser","version":"0.1.4","description":"Argv-parser is a small and simple node.js module to parser `process.argv`.","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/kaelzhang/argv-parser.git"},"keywords":["argv","parser","argument-vector","cleaner","simple"],"author":{"name":"Kael"},"license":"MIT","readmeFilename":"README.md","bugs":{"url":"https://github.com/kaelzhang/argv-parser/issues"},"dependencies":{"nopt":"~2.1.2"},"devDependencies":{"assert":"~0.4.9"},"readme":"# Argv-parser\n\n> Argv-parser is a small and simple node.js module to parse `process.argv`\n\nArgv-parser is designed to be simple and will do nothing about:\n\n- option registration\n- description of options\n- output\n\n## Installation\n\n```sh\nnpm install argv-parser --save\n```\n\n## Usage\n\n```js\nvar parser = require('argv-parser');\n```\n\n## parser.parse(argv, options)\n\nParse argument vector (argv) or something like argv.\n\n##### Returns `ret` `Object`\n\n- parsed: `Object` the parsed object\n- warnings: `Object` the warnings of each option. If not exists, `ret.warning` will be an empty object\n- errors: `Object` the errors of each option.\n\n##### argv `Array`\n\n`process.argv` or something like that.\n\n##### options `Object`\n\n- rules: `Object` an extended `nopt` rules\n- offset: `Number` (optional, default to `2`) the offset from which the parser should start to parse.\n\n\n## parser.clean(data, options)\n\n##### Returns\n\nThe same as `parser.parse`\n\n##### options `Object`\n\n- rules: `Object`\n- types: `Object` (optional) type definitions. For most cases, you needn't this option\n\n\n## options.rules\n\n\n## Example\n\ntest.js\n\n```js\nvar rules = {\n    open: {\n        type: Boolean,\n        value: true\n    },\n\n    port: {\n        type: Number,\n        short: 'p',\n        value: function(port, parsed, tool) {\n            if(!port){\n                port = 9230;\n            }\n\n            if(port < 8000){\n                tool.warn('port < 8000 which is dangerous');\n                \n                if(port < 1000){\n                \ttool.error('port < 100 which is forbidden');\n        \t\t\treturn;\n                }\n            }\n\n            return port;\n        }\n    },\n\n    html: {\n        type: 'html',\n    },\n\n    name: {\n        type: String\n    }\n};\n\nvar data = parser.parse(process.argv, {\n\trules: rules\n});\n```\n\nDefault values:\n\n```\n$ node test.js\n> data.parsed.open; // true\n> data.parsed.port; // 9230\n\n```\n\nType limitation:\n\n```\n$ node test.js --port 8888 --no-open --name name<script>alert(123)</script>\n> data.parsed.open; // false\n> data.parsed.port; // 8888\n> data.parsed.name; // 'namealert(123)'; -> stripped\n> data.errors;      // {}\n> data.warnings;    // {}\n```\n\nWarnings and errors:\n\n```\n$ node test.js --port 888 --no-open --name name<script>alert(123)</script>\n> data.parsed.open; // false\n> data.parsed.port; // undefined; -> error\n> data.parsed.name; // 'name<script>alert(123)</script>'\n> data.errors;      // {port: ['port < 100 which is forbidden']}\n> data.warnings;    // {port: ['port < 8000 which is dangerous']}\n```\n\n\n\n\n\n\n","_id":"argv-parser@0.1.4","dist":{"shasum":"c0d0c362f0897bc28e798c20e48b42933db3c0f1","tarball":"https://registry.npmjs.org/argv-parser/-/argv-parser-0.1.4.tgz","integrity":"sha512-VGavB5jKw3rBS7i3VED4YE6kQd9dCHlVUFTcYc14L9kAxWczk2BE82GtwQt7sSOi4ePiPrvAFQo3SACaw0ldUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCl9PS72wXp0E8O+7auQuBFv9fYdMK/TkLL+h7dDmvnTAIgdcArVjcA9zXuuNy8Bj2SMeFs2dvKZqOhexlQTAzJNdo="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}]}},"readme":"# Argv-parser\n\n> \n\n\n\n\n\n\n\n\n\n","maintainers":[{"name":"kael","email":"i@kael.me"}],"time":{"modified":"2022-06-13T03:26:40.936Z","created":"2013-08-03T10:51:35.012Z","0.1.0":"2013-08-03T10:51:40.437Z","0.1.3":"2013-08-03T17:07:36.327Z","0.1.4":"2013-09-26T02:30:36.769Z"},"author":{"name":"Kael"},"repository":{"type":"git","url":"git://github.com/kaelzhang/argv-parser.git"}}