Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Perrotte <mike@npmjs.com>2020-01-31 23:59:21 +0300
committerisaacs <i@izs.me>2020-05-08 04:11:51 +0300
commit56e1f868e8634a4bf0f7a7186a68a6f3de9cfb2a (patch)
treef05cdcb56d66480641b6c8f8bb823bc10c6842df /node_modules/nopt
parent8f6b6204f9cdbfc8e2a27a1c3b3f1591ac7e0d60 (diff)
npm-pick-manifest@6.0.0
Diffstat (limited to 'node_modules/nopt')
-rw-r--r--node_modules/nopt/.npmignore1
-rw-r--r--node_modules/nopt/.travis.yml8
-rwxr-xr-xnode_modules/nopt/examples/my-program.js30
-rw-r--r--node_modules/nopt/lib/nopt.js7
-rw-r--r--node_modules/nopt/package.json44
-rw-r--r--node_modules/nopt/test/basic.js303
6 files changed, 362 insertions, 31 deletions
diff --git a/node_modules/nopt/.npmignore b/node_modules/nopt/.npmignore
new file mode 100644
index 000000000..3c3629e64
--- /dev/null
+++ b/node_modules/nopt/.npmignore
@@ -0,0 +1 @@
+node_modules
diff --git a/node_modules/nopt/.travis.yml b/node_modules/nopt/.travis.yml
new file mode 100644
index 000000000..a1cef591c
--- /dev/null
+++ b/node_modules/nopt/.travis.yml
@@ -0,0 +1,8 @@
+language: node_js
+node_js:
+ - '0.12'
+ - '4'
+ - '6'
+ - '7'
+before_install:
+ - npm install -g npm@latest
diff --git a/node_modules/nopt/examples/my-program.js b/node_modules/nopt/examples/my-program.js
new file mode 100755
index 000000000..142447e18
--- /dev/null
+++ b/node_modules/nopt/examples/my-program.js
@@ -0,0 +1,30 @@
+#!/usr/bin/env node
+
+//process.env.DEBUG_NOPT = 1
+
+// my-program.js
+var nopt = require("../lib/nopt")
+ , Stream = require("stream").Stream
+ , path = require("path")
+ , knownOpts = { "foo" : [String, null]
+ , "bar" : [Stream, Number]
+ , "baz" : path
+ , "bloo" : [ "big", "medium", "small" ]
+ , "flag" : Boolean
+ , "pick" : Boolean
+ }
+ , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]
+ , "b7" : ["--bar", "7"]
+ , "m" : ["--bloo", "medium"]
+ , "p" : ["--pick"]
+ , "f" : ["--flag", "true"]
+ , "g" : ["--flag"]
+ , "s" : "--flag"
+ }
+ // everything is optional.
+ // knownOpts and shorthands default to {}
+ // arg list defaults to process.argv
+ // slice defaults to 2
+ , parsed = nopt(knownOpts, shortHands, process.argv, 2)
+
+console.log("parsed =\n"+ require("util").inspect(parsed))
diff --git a/node_modules/nopt/lib/nopt.js b/node_modules/nopt/lib/nopt.js
index 0ec5753d0..1fb113514 100644
--- a/node_modules/nopt/lib/nopt.js
+++ b/node_modules/nopt/lib/nopt.js
@@ -113,12 +113,7 @@ function clean (data, types, typeDefs) {
return d[k]
}).filter(function (val) { return val !== remove })
- // if we allow Array specifically, then an empty array is how we
- // express 'no value here', not null. Allow it.
- if (!val.length && type.indexOf(Array) === -1) {
- debug('VAL HAS NO LENGTH, DELETE IT', val, k, type.indexOf(Array))
- delete data[k]
- }
+ if (!val.length) delete data[k]
else if (isArray) {
debug(isArray, data[k], val)
data[k] = val
diff --git a/node_modules/nopt/package.json b/node_modules/nopt/package.json
index 1490f6d25..cea3624f4 100644
--- a/node_modules/nopt/package.json
+++ b/node_modules/nopt/package.json
@@ -1,54 +1,51 @@
{
- "_from": "nopt@4.0.3",
- "_id": "nopt@4.0.3",
+ "_args": [
+ [
+ "nopt@4.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "nopt@4.0.1",
+ "_id": "nopt@4.0.1",
"_inBundle": false,
- "_integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+ "_integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"_location": "/nopt",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "nopt@4.0.3",
+ "raw": "nopt@4.0.1",
"name": "nopt",
"escapedName": "nopt",
- "rawSpec": "4.0.3",
+ "rawSpec": "4.0.1",
"saveSpec": null,
- "fetchSpec": "4.0.3"
+ "fetchSpec": "4.0.1"
},
"_requiredBy": [
- "#USER",
- "/",
- "/node-gyp"
+ "/"
],
- "_resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
- "_shasum": "a375cad9d02fd921278d954c2254d5aa57e15e48",
- "_spec": "nopt@4.0.3",
- "_where": "/Users/ruyadorno/Documents/workspace/cli",
+ "_resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "_spec": "4.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
"bin": {
- "nopt": "bin/nopt.js"
+ "nopt": "./bin/nopt.js"
},
"bugs": {
"url": "https://github.com/npm/nopt/issues"
},
- "bundleDependencies": false,
"dependencies": {
"abbrev": "1",
"osenv": "^0.1.4"
},
- "deprecated": false,
"description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.",
"devDependencies": {
- "tap": "^14.10.6"
+ "tap": "^8.0.1"
},
- "files": [
- "bin",
- "lib"
- ],
"homepage": "https://github.com/npm/nopt#readme",
"license": "ISC",
"main": "lib/nopt.js",
@@ -58,10 +55,7 @@
"url": "git+https://github.com/npm/nopt.git"
},
"scripts": {
- "postversion": "npm publish",
- "prepublishOnly": "git push origin --follow-tags",
- "preversion": "npm test",
"test": "tap test/*.js"
},
- "version": "4.0.3"
+ "version": "4.0.1"
}
diff --git a/node_modules/nopt/test/basic.js b/node_modules/nopt/test/basic.js
new file mode 100644
index 000000000..5c18ac0fc
--- /dev/null
+++ b/node_modules/nopt/test/basic.js
@@ -0,0 +1,303 @@
+var nopt = require("../")
+ , test = require('tap').test
+ , isWin = process.platform === 'win32'
+
+test("passing a string results in a string", function (t) {
+ var parsed = nopt({ key: String }, {}, ["--key", "myvalue"], 0)
+ t.same(parsed.key, "myvalue")
+ t.end()
+})
+
+// https://github.com/npm/nopt/issues/31
+test("Empty String results in empty string, not true", function (t) {
+ var parsed = nopt({ empty: String }, {}, ["--empty"], 0)
+ t.same(parsed.empty, "")
+ t.end()
+})
+
+// https://github.com/npm/nopt/issues/65
+test("Empty String should not swallow next flag", function (t) {
+ var parsed = nopt({ empty: String, foo: String }, {}, ["--empty", "--foo"], 0)
+ t.same(parsed.empty, "")
+ t.same(parsed.foo, "")
+ t.end()
+})
+
+// https://github.com/npm/nopt/issues/66
+test("Empty String should not be true when type is single item Array", function (t) {
+ var parsed = nopt({ 'foo': [String] }, {}, ["--foo"], 0)
+ t.same(parsed.foo, "")
+ t.end()
+})
+
+test("~ path is resolved to " + (isWin ? '%USERPROFILE%' : '$HOME'), function (t) {
+ var path = require("path")
+ , the
+
+ if (isWin) {
+ the = {
+ key: 'USERPROFILE',
+ dir: 'C:\\temp',
+ val: '~\\val'
+ }
+ } else {
+ the = {
+ key: 'HOME',
+ dir: '/tmp',
+ val: '~/val'
+ }
+ }
+ if (!process.env[the.key]) process.env[the.key] = v.dir
+ var parsed = nopt({key: path}, {}, ["--key=" + the.val], 0)
+ t.same(parsed.key, path.resolve(process.env[the.key], "val"))
+ t.end()
+})
+
+// https://github.com/npm/nopt/issues/24
+test("Unknown options are not parsed as numbers", function (t) {
+ var parsed = nopt({"parse-me": Number}, null, ['--leave-as-is=1.20', '--parse-me=1.20'], 0)
+ t.equal(parsed['leave-as-is'], '1.20')
+ t.equal(parsed['parse-me'], 1.2)
+ t.end()
+});
+
+// https://github.com/npm/nopt/issues/48
+test("Check types based on name of type", function (t) {
+ var parsed = nopt({"parse-me": {name: "Number"}}, null, ['--parse-me=1.20'], 0)
+ t.equal(parsed['parse-me'], 1.2)
+ t.end()
+})
+
+
+test("Missing types are not parsed", function (t) {
+ var parsed = nopt({"parse-me": {}}, null, ['--parse-me=1.20'], 0)
+ //should only contain argv
+ t.equal(Object.keys(parsed).length, 1)
+ t.end()
+})
+
+test("Types passed without a name are not parsed", function (t) {
+ var parsed = nopt({"parse-me": {}}, {}, ['--parse-me=1.20'], 0)
+ //should only contain argv
+ t.equal(Object.keys(parsed).length, 1)
+ t.end()
+})
+
+test("other tests", function (t) {
+
+ var util = require("util")
+ , Stream = require("stream")
+ , path = require("path")
+ , url = require("url")
+
+ , shorthands =
+ { s : ["--loglevel", "silent"]
+ , d : ["--loglevel", "info"]
+ , dd : ["--loglevel", "verbose"]
+ , ddd : ["--loglevel", "silly"]
+ , noreg : ["--no-registry"]
+ , reg : ["--registry"]
+ , "no-reg" : ["--no-registry"]
+ , silent : ["--loglevel", "silent"]
+ , verbose : ["--loglevel", "verbose"]
+ , h : ["--usage"]
+ , H : ["--usage"]
+ , "?" : ["--usage"]
+ , help : ["--usage"]
+ , v : ["--version"]
+ , f : ["--force"]
+ , desc : ["--description"]
+ , "no-desc" : ["--no-description"]
+ , "local" : ["--no-global"]
+ , l : ["--long"]
+ , p : ["--parseable"]
+ , porcelain : ["--parseable"]
+ , g : ["--global"]
+ }
+
+ , types =
+ { aoa: Array
+ , nullstream: [null, Stream]
+ , date: Date
+ , str: String
+ , browser : String
+ , cache : path
+ , color : ["always", Boolean]
+ , depth : Number
+ , description : Boolean
+ , dev : Boolean
+ , editor : path
+ , force : Boolean
+ , global : Boolean
+ , globalconfig : path
+ , group : [String, Number]
+ , gzipbin : String
+ , logfd : [Number, Stream]
+ , loglevel : ["silent","win","error","warn","info","verbose","silly"]
+ , long : Boolean
+ , "node-version" : [false, String]
+ , npaturl : url
+ , npat : Boolean
+ , "onload-script" : [false, String]
+ , outfd : [Number, Stream]
+ , parseable : Boolean
+ , pre: Boolean
+ , prefix: path
+ , proxy : url
+ , "rebuild-bundle" : Boolean
+ , registry : url
+ , searchopts : String
+ , searchexclude: [null, String]
+ , shell : path
+ , t: [Array, String]
+ , tag : String
+ , tar : String
+ , tmp : path
+ , "unsafe-perm" : Boolean
+ , usage : Boolean
+ , user : String
+ , username : String
+ , userconfig : path
+ , version : Boolean
+ , viewer: path
+ , _exit : Boolean
+ , path: path
+ }
+
+ ; [["-v", {version:true}, []]
+ ,["---v", {version:true}, []]
+ ,["ls -s --no-reg connect -d",
+ {loglevel:"info",registry:null},["ls","connect"]]
+ ,["ls ---s foo",{loglevel:"silent"},["ls","foo"]]
+ ,["ls --registry blargle", {}, ["ls"]]
+ ,["--no-registry", {registry:null}, []]
+ ,["--no-color true", {color:false}, []]
+ ,["--no-color false", {color:true}, []]
+ ,["--no-color", {color:false}, []]
+ ,["--color false", {color:false}, []]
+ ,["--color --logfd 7", {logfd:7,color:true}, []]
+ ,["--color=true", {color:true}, []]
+ ,["--logfd=10", {logfd:10}, []]
+ ,["--tmp=/tmp -tar=gtar", {tmp: isWin ? "C:\\tmp" : "/tmp",tar:"gtar"},[]]
+ ,["--tmp=tmp -tar=gtar",
+ {tmp:path.resolve(process.cwd(), "tmp"),tar:"gtar"},[]]
+ ,["--logfd x", {}, []]
+ ,["a -true -- -no-false", {true:true},["a","-no-false"]]
+ ,["a -no-false", {false:false},["a"]]
+ ,["a -no-no-true", {true:true}, ["a"]]
+ ,["a -no-no-no-false", {false:false}, ["a"]]
+ ,["---NO-no-No-no-no-no-nO-no-no"+
+ "-No-no-no-no-no-no-no-no-no"+
+ "-no-no-no-no-NO-NO-no-no-no-no-no-no"+
+ "-no-body-can-do-the-boogaloo-like-I-do"
+ ,{"body-can-do-the-boogaloo-like-I-do":false}, []]
+ ,["we are -no-strangers-to-love "+
+ "--you-know=the-rules --and=so-do-i "+
+ "---im-thinking-of=a-full-commitment "+
+ "--no-you-would-get-this-from-any-other-guy "+
+ "--no-gonna-give-you-up "+
+ "-no-gonna-let-you-down=true "+
+ "--no-no-gonna-run-around false "+
+ "--desert-you=false "+
+ "--make-you-cry false "+
+ "--no-tell-a-lie "+
+ "--no-no-and-hurt-you false"
+ ,{"strangers-to-love":false
+ ,"you-know":"the-rules"
+ ,"and":"so-do-i"
+ ,"you-would-get-this-from-any-other-guy":false
+ ,"gonna-give-you-up":false
+ ,"gonna-let-you-down":false
+ ,"gonna-run-around":false
+ ,"desert-you":false
+ ,"make-you-cry":false
+ ,"tell-a-lie":false
+ ,"and-hurt-you":false
+ },["we", "are"]]
+ ,["-t one -t two -t three"
+ ,{t: ["one", "two", "three"]}
+ ,[]]
+ ,["-t one -t null -t three four five null"
+ ,{t: ["one", "null", "three"]}
+ ,["four", "five", "null"]]
+ ,["-t foo"
+ ,{t:["foo"]}
+ ,[]]
+ ,["--no-t"
+ ,{t:["false"]}
+ ,[]]
+ ,["-no-no-t"
+ ,{t:["true"]}
+ ,[]]
+ ,["-aoa one -aoa null -aoa 100"
+ ,{aoa:["one", null, '100']}
+ ,[]]
+ ,["-str 100"
+ ,{str:"100"}
+ ,[]]
+ ,["--color always"
+ ,{color:"always"}
+ ,[]]
+ ,["--no-nullstream"
+ ,{nullstream:null}
+ ,[]]
+ ,["--nullstream false"
+ ,{nullstream:null}
+ ,[]]
+ ,["--notadate=2011-01-25"
+ ,{notadate: "2011-01-25"}
+ ,[]]
+ ,["--date 2011-01-25"
+ ,{date: new Date("2011-01-25")}
+ ,[]]
+ ,["-cl 1"
+ ,{config: true, length: 1}
+ ,[]
+ ,{config: Boolean, length: Number, clear: Boolean}
+ ,{c: "--config", l: "--length"}]
+ ,["--acount bla"
+ ,{"acount":true}
+ ,["bla"]
+ ,{account: Boolean, credentials: Boolean, options: String}
+ ,{a:"--account", c:"--credentials",o:"--options"}]
+ ,["--clear"
+ ,{clear:true}
+ ,[]
+ ,{clear:Boolean,con:Boolean,len:Boolean,exp:Boolean,add:Boolean,rep:Boolean}
+ ,{c:"--con",l:"--len",e:"--exp",a:"--add",r:"--rep"}]
+ ,["--file -"
+ ,{"file":"-"}
+ ,[]
+ ,{file:String}
+ ,{}]
+ ,["--file -"
+ ,{"file":true}
+ ,["-"]
+ ,{file:Boolean}
+ ,{}]
+ ,["--path"
+ ,{"path":null}
+ ,[]]
+ ,["--path ."
+ ,{"path":process.cwd()}
+ ,[]]
+ ].forEach(function (test) {
+ var argv = test[0].split(/\s+/)
+ , opts = test[1]
+ , rem = test[2]
+ , actual = nopt(test[3] || types, test[4] || shorthands, argv, 0)
+ , parsed = actual.argv
+ delete actual.argv
+ for (var i in opts) {
+ var e = JSON.stringify(opts[i])
+ , a = JSON.stringify(actual[i] === undefined ? null : actual[i])
+ if (e && typeof e === "object") {
+ t.deepEqual(e, a)
+ } else {
+ t.equal(e, a)
+ }
+ }
+ t.deepEqual(rem, parsed.remain)
+ })
+ t.end()
+})