summaryrefslogtreecommitdiff
path: root/desktop/node_modules/minimist/test
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/node_modules/minimist/test')
-rw-r--r--desktop/node_modules/minimist/test/all_bool.js34
-rw-r--r--desktop/node_modules/minimist/test/bool.js177
-rw-r--r--desktop/node_modules/minimist/test/dash.js43
-rw-r--r--desktop/node_modules/minimist/test/default_bool.js37
-rw-r--r--desktop/node_modules/minimist/test/dotted.js24
-rw-r--r--desktop/node_modules/minimist/test/kv_short.js32
-rw-r--r--desktop/node_modules/minimist/test/long.js33
-rw-r--r--desktop/node_modules/minimist/test/num.js38
-rw-r--r--desktop/node_modules/minimist/test/parse.js209
-rw-r--r--desktop/node_modules/minimist/test/parse_modified.js11
-rw-r--r--desktop/node_modules/minimist/test/proto.js64
-rw-r--r--desktop/node_modules/minimist/test/short.js69
-rw-r--r--desktop/node_modules/minimist/test/stop_early.js17
-rw-r--r--desktop/node_modules/minimist/test/unknown.js104
-rw-r--r--desktop/node_modules/minimist/test/whitespace.js10
15 files changed, 902 insertions, 0 deletions
diff --git a/desktop/node_modules/minimist/test/all_bool.js b/desktop/node_modules/minimist/test/all_bool.js
new file mode 100644
index 0000000..befa0c9
--- /dev/null
+++ b/desktop/node_modules/minimist/test/all_bool.js
@@ -0,0 +1,34 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('flag boolean true (default all --args to boolean)', function (t) {
+ var argv = parse(['moo', '--honk', 'cow'], {
+ boolean: true,
+ });
+
+ t.deepEqual(argv, {
+ honk: true,
+ _: ['moo', 'cow'],
+ });
+
+ t.deepEqual(typeof argv.honk, 'boolean');
+ t.end();
+});
+
+test('flag boolean true only affects double hyphen arguments without equals signs', function (t) {
+ var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], {
+ boolean: true,
+ });
+
+ t.deepEqual(argv, {
+ honk: true,
+ tacos: 'good',
+ p: 55,
+ _: ['moo', 'cow'],
+ });
+
+ t.deepEqual(typeof argv.honk, 'boolean');
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/bool.js b/desktop/node_modules/minimist/test/bool.js
new file mode 100644
index 0000000..e58d47e
--- /dev/null
+++ b/desktop/node_modules/minimist/test/bool.js
@@ -0,0 +1,177 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('flag boolean default false', function (t) {
+ var argv = parse(['moo'], {
+ boolean: ['t', 'verbose'],
+ default: { verbose: false, t: false },
+ });
+
+ t.deepEqual(argv, {
+ verbose: false,
+ t: false,
+ _: ['moo'],
+ });
+
+ t.deepEqual(typeof argv.verbose, 'boolean');
+ t.deepEqual(typeof argv.t, 'boolean');
+ t.end();
+
+});
+
+test('boolean groups', function (t) {
+ var argv = parse(['-x', '-z', 'one', 'two', 'three'], {
+ boolean: ['x', 'y', 'z'],
+ });
+
+ t.deepEqual(argv, {
+ x: true,
+ y: false,
+ z: true,
+ _: ['one', 'two', 'three'],
+ });
+
+ t.deepEqual(typeof argv.x, 'boolean');
+ t.deepEqual(typeof argv.y, 'boolean');
+ t.deepEqual(typeof argv.z, 'boolean');
+ t.end();
+});
+test('boolean and alias with chainable api', function (t) {
+ var aliased = ['-h', 'derp'];
+ var regular = ['--herp', 'derp'];
+ var aliasedArgv = parse(aliased, {
+ boolean: 'herp',
+ alias: { h: 'herp' },
+ });
+ var propertyArgv = parse(regular, {
+ boolean: 'herp',
+ alias: { h: 'herp' },
+ });
+ var expected = {
+ herp: true,
+ h: true,
+ _: ['derp'],
+ };
+
+ t.same(aliasedArgv, expected);
+ t.same(propertyArgv, expected);
+ t.end();
+});
+
+test('boolean and alias with options hash', function (t) {
+ var aliased = ['-h', 'derp'];
+ var regular = ['--herp', 'derp'];
+ var opts = {
+ alias: { h: 'herp' },
+ boolean: 'herp',
+ };
+ var aliasedArgv = parse(aliased, opts);
+ var propertyArgv = parse(regular, opts);
+ var expected = {
+ herp: true,
+ h: true,
+ _: ['derp'],
+ };
+ t.same(aliasedArgv, expected);
+ t.same(propertyArgv, expected);
+ t.end();
+});
+
+test('boolean and alias array with options hash', function (t) {
+ var aliased = ['-h', 'derp'];
+ var regular = ['--herp', 'derp'];
+ var alt = ['--harp', 'derp'];
+ var opts = {
+ alias: { h: ['herp', 'harp'] },
+ boolean: 'h',
+ };
+ var aliasedArgv = parse(aliased, opts);
+ var propertyArgv = parse(regular, opts);
+ var altPropertyArgv = parse(alt, opts);
+ var expected = {
+ harp: true,
+ herp: true,
+ h: true,
+ _: ['derp'],
+ };
+ t.same(aliasedArgv, expected);
+ t.same(propertyArgv, expected);
+ t.same(altPropertyArgv, expected);
+ t.end();
+});
+
+test('boolean and alias using explicit true', function (t) {
+ var aliased = ['-h', 'true'];
+ var regular = ['--herp', 'true'];
+ var opts = {
+ alias: { h: 'herp' },
+ boolean: 'h',
+ };
+ var aliasedArgv = parse(aliased, opts);
+ var propertyArgv = parse(regular, opts);
+ var expected = {
+ herp: true,
+ h: true,
+ _: [],
+ };
+
+ t.same(aliasedArgv, expected);
+ t.same(propertyArgv, expected);
+ t.end();
+});
+
+// regression, see https://github.com/substack/node-optimist/issues/71
+test('boolean and --x=true', function (t) {
+ var parsed = parse(['--boool', '--other=true'], {
+ boolean: 'boool',
+ });
+
+ t.same(parsed.boool, true);
+ t.same(parsed.other, 'true');
+
+ parsed = parse(['--boool', '--other=false'], {
+ boolean: 'boool',
+ });
+
+ t.same(parsed.boool, true);
+ t.same(parsed.other, 'false');
+ t.end();
+});
+
+test('boolean --boool=true', function (t) {
+ var parsed = parse(['--boool=true'], {
+ default: {
+ boool: false,
+ },
+ boolean: ['boool'],
+ });
+
+ t.same(parsed.boool, true);
+ t.end();
+});
+
+test('boolean --boool=false', function (t) {
+ var parsed = parse(['--boool=false'], {
+ default: {
+ boool: true,
+ },
+ boolean: ['boool'],
+ });
+
+ t.same(parsed.boool, false);
+ t.end();
+});
+
+test('boolean using something similar to true', function (t) {
+ var opts = { boolean: 'h' };
+ var result = parse(['-h', 'true.txt'], opts);
+ var expected = {
+ h: true,
+ _: ['true.txt'],
+ };
+
+ t.same(result, expected);
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/dash.js b/desktop/node_modules/minimist/test/dash.js
new file mode 100644
index 0000000..7078817
--- /dev/null
+++ b/desktop/node_modules/minimist/test/dash.js
@@ -0,0 +1,43 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('-', function (t) {
+ t.plan(6);
+ t.deepEqual(parse(['-n', '-']), { n: '-', _: [] });
+ t.deepEqual(parse(['--nnn', '-']), { nnn: '-', _: [] });
+ t.deepEqual(parse(['-']), { _: ['-'] });
+ t.deepEqual(parse(['-f-']), { f: '-', _: [] });
+ t.deepEqual(
+ parse(['-b', '-'], { boolean: 'b' }),
+ { b: true, _: ['-'] }
+ );
+ t.deepEqual(
+ parse(['-s', '-'], { string: 's' }),
+ { s: '-', _: [] }
+ );
+});
+
+test('-a -- b', function (t) {
+ t.plan(2);
+ t.deepEqual(parse(['-a', '--', 'b']), { a: true, _: ['b'] });
+ t.deepEqual(parse(['--a', '--', 'b']), { a: true, _: ['b'] });
+});
+
+test('move arguments after the -- into their own `--` array', function (t) {
+ t.plan(1);
+ t.deepEqual(
+ parse(['--name', 'John', 'before', '--', 'after'], { '--': true }),
+ { name: 'John', _: ['before'], '--': ['after'] }
+ );
+});
+
+test('--- option value', function (t) {
+ // A multi-dash value is largely an edge case, but check the behaviour is as expected,
+ // and in particular the same for short option and long option (as made consistent in Jan 2023).
+ t.plan(2);
+ t.deepEqual(parse(['-n', '---']), { n: '---', _: [] });
+ t.deepEqual(parse(['--nnn', '---']), { nnn: '---', _: [] });
+});
+
diff --git a/desktop/node_modules/minimist/test/default_bool.js b/desktop/node_modules/minimist/test/default_bool.js
new file mode 100644
index 0000000..4e9f625
--- /dev/null
+++ b/desktop/node_modules/minimist/test/default_bool.js
@@ -0,0 +1,37 @@
+'use strict';
+
+var test = require('tape');
+var parse = require('../');
+
+test('boolean default true', function (t) {
+ var argv = parse([], {
+ boolean: 'sometrue',
+ default: { sometrue: true },
+ });
+ t.equal(argv.sometrue, true);
+ t.end();
+});
+
+test('boolean default false', function (t) {
+ var argv = parse([], {
+ boolean: 'somefalse',
+ default: { somefalse: false },
+ });
+ t.equal(argv.somefalse, false);
+ t.end();
+});
+
+test('boolean default to null', function (t) {
+ var argv = parse([], {
+ boolean: 'maybe',
+ default: { maybe: null },
+ });
+ t.equal(argv.maybe, null);
+
+ var argvLong = parse(['--maybe'], {
+ boolean: 'maybe',
+ default: { maybe: null },
+ });
+ t.equal(argvLong.maybe, true);
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/dotted.js b/desktop/node_modules/minimist/test/dotted.js
new file mode 100644
index 0000000..126ff03
--- /dev/null
+++ b/desktop/node_modules/minimist/test/dotted.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('dotted alias', function (t) {
+ var argv = parse(['--a.b', '22'], { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
+ t.equal(argv.a.b, 22);
+ t.equal(argv.aa.bb, 22);
+ t.end();
+});
+
+test('dotted default', function (t) {
+ var argv = parse('', { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
+ t.equal(argv.a.b, 11);
+ t.equal(argv.aa.bb, 11);
+ t.end();
+});
+
+test('dotted default with no alias', function (t) {
+ var argv = parse('', { default: { 'a.b': 11 } });
+ t.equal(argv.a.b, 11);
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/kv_short.js b/desktop/node_modules/minimist/test/kv_short.js
new file mode 100644
index 0000000..6d1b53a
--- /dev/null
+++ b/desktop/node_modules/minimist/test/kv_short.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('short -k=v', function (t) {
+ t.plan(1);
+
+ var argv = parse(['-b=123']);
+ t.deepEqual(argv, { b: 123, _: [] });
+});
+
+test('multi short -k=v', function (t) {
+ t.plan(1);
+
+ var argv = parse(['-a=whatever', '-b=robots']);
+ t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] });
+});
+
+test('short with embedded equals -k=a=b', function (t) {
+ t.plan(1);
+
+ var argv = parse(['-k=a=b']);
+ t.deepEqual(argv, { k: 'a=b', _: [] });
+});
+
+test('short with later equals like -ab=c', function (t) {
+ t.plan(1);
+
+ var argv = parse(['-ab=c']);
+ t.deepEqual(argv, { a: true, b: 'c', _: [] });
+});
diff --git a/desktop/node_modules/minimist/test/long.js b/desktop/node_modules/minimist/test/long.js
new file mode 100644
index 0000000..9fef51f
--- /dev/null
+++ b/desktop/node_modules/minimist/test/long.js
@@ -0,0 +1,33 @@
+'use strict';
+
+var test = require('tape');
+var parse = require('../');
+
+test('long opts', function (t) {
+ t.deepEqual(
+ parse(['--bool']),
+ { bool: true, _: [] },
+ 'long boolean'
+ );
+ t.deepEqual(
+ parse(['--pow', 'xixxle']),
+ { pow: 'xixxle', _: [] },
+ 'long capture sp'
+ );
+ t.deepEqual(
+ parse(['--pow=xixxle']),
+ { pow: 'xixxle', _: [] },
+ 'long capture eq'
+ );
+ t.deepEqual(
+ parse(['--host', 'localhost', '--port', '555']),
+ { host: 'localhost', port: 555, _: [] },
+ 'long captures sp'
+ );
+ t.deepEqual(
+ parse(['--host=localhost', '--port=555']),
+ { host: 'localhost', port: 555, _: [] },
+ 'long captures eq'
+ );
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/num.js b/desktop/node_modules/minimist/test/num.js
new file mode 100644
index 0000000..074393e
--- /dev/null
+++ b/desktop/node_modules/minimist/test/num.js
@@ -0,0 +1,38 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('nums', function (t) {
+ var argv = parse([
+ '-x', '1234',
+ '-y', '5.67',
+ '-z', '1e7',
+ '-w', '10f',
+ '--hex', '0xdeadbeef',
+ '789',
+ ]);
+ t.deepEqual(argv, {
+ x: 1234,
+ y: 5.67,
+ z: 1e7,
+ w: '10f',
+ hex: 0xdeadbeef,
+ _: [789],
+ });
+ t.deepEqual(typeof argv.x, 'number');
+ t.deepEqual(typeof argv.y, 'number');
+ t.deepEqual(typeof argv.z, 'number');
+ t.deepEqual(typeof argv.w, 'string');
+ t.deepEqual(typeof argv.hex, 'number');
+ t.deepEqual(typeof argv._[0], 'number');
+ t.end();
+});
+
+test('already a number', function (t) {
+ var argv = parse(['-x', 1234, 789]);
+ t.deepEqual(argv, { x: 1234, _: [789] });
+ t.deepEqual(typeof argv.x, 'number');
+ t.deepEqual(typeof argv._[0], 'number');
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/parse.js b/desktop/node_modules/minimist/test/parse.js
new file mode 100644
index 0000000..65d9d90
--- /dev/null
+++ b/desktop/node_modules/minimist/test/parse.js
@@ -0,0 +1,209 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('parse args', function (t) {
+ t.deepEqual(
+ parse(['--no-moo']),
+ { moo: false, _: [] },
+ 'no'
+ );
+ t.deepEqual(
+ parse(['-v', 'a', '-v', 'b', '-v', 'c']),
+ { v: ['a', 'b', 'c'], _: [] },
+ 'multi'
+ );
+ t.end();
+});
+
+test('comprehensive', function (t) {
+ t.deepEqual(
+ parse([
+ '--name=meowmers', 'bare', '-cats', 'woo',
+ '-h', 'awesome', '--multi=quux',
+ '--key', 'value',
+ '-b', '--bool', '--no-meep', '--multi=baz',
+ '--', '--not-a-flag', 'eek',
+ ]),
+ {
+ c: true,
+ a: true,
+ t: true,
+ s: 'woo',
+ h: 'awesome',
+ b: true,
+ bool: true,
+ key: 'value',
+ multi: ['quux', 'baz'],
+ meep: false,
+ name: 'meowmers',
+ _: ['bare', '--not-a-flag', 'eek'],
+ }
+ );
+ t.end();
+});
+
+test('flag boolean', function (t) {
+ var argv = parse(['-t', 'moo'], { boolean: 't' });
+ t.deepEqual(argv, { t: true, _: ['moo'] });
+ t.deepEqual(typeof argv.t, 'boolean');
+ t.end();
+});
+
+test('flag boolean value', function (t) {
+ var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
+ boolean: ['t', 'verbose'],
+ default: { verbose: true },
+ });
+
+ t.deepEqual(argv, {
+ verbose: false,
+ t: true,
+ _: ['moo'],
+ });
+
+ t.deepEqual(typeof argv.verbose, 'boolean');
+ t.deepEqual(typeof argv.t, 'boolean');
+ t.end();
+});
+
+test('newlines in params', function (t) {
+ var args = parse(['-s', 'X\nX']);
+ t.deepEqual(args, { _: [], s: 'X\nX' });
+
+ // reproduce in bash:
+ // VALUE="new
+ // line"
+ // node program.js --s="$VALUE"
+ args = parse(['--s=X\nX']);
+ t.deepEqual(args, { _: [], s: 'X\nX' });
+ t.end();
+});
+
+test('strings', function (t) {
+ var s = parse(['-s', '0001234'], { string: 's' }).s;
+ t.equal(s, '0001234');
+ t.equal(typeof s, 'string');
+
+ var x = parse(['-x', '56'], { string: 'x' }).x;
+ t.equal(x, '56');
+ t.equal(typeof x, 'string');
+ t.end();
+});
+
+test('stringArgs', function (t) {
+ var s = parse([' ', ' '], { string: '_' })._;
+ t.same(s.length, 2);
+ t.same(typeof s[0], 'string');
+ t.same(s[0], ' ');
+ t.same(typeof s[1], 'string');
+ t.same(s[1], ' ');
+ t.end();
+});
+
+test('empty strings', function (t) {
+ var s = parse(['-s'], { string: 's' }).s;
+ t.equal(s, '');
+ t.equal(typeof s, 'string');
+
+ var str = parse(['--str'], { string: 'str' }).str;
+ t.equal(str, '');
+ t.equal(typeof str, 'string');
+
+ var letters = parse(['-art'], {
+ string: ['a', 't'],
+ });
+
+ t.equal(letters.a, '');
+ t.equal(letters.r, true);
+ t.equal(letters.t, '');
+
+ t.end();
+});
+
+test('string and alias', function (t) {
+ var x = parse(['--str', '000123'], {
+ string: 's',
+ alias: { s: 'str' },
+ });
+
+ t.equal(x.str, '000123');
+ t.equal(typeof x.str, 'string');
+ t.equal(x.s, '000123');
+ t.equal(typeof x.s, 'string');
+
+ var y = parse(['-s', '000123'], {
+ string: 'str',
+ alias: { str: 's' },
+ });
+
+ t.equal(y.str, '000123');
+ t.equal(typeof y.str, 'string');
+ t.equal(y.s, '000123');
+ t.equal(typeof y.s, 'string');
+
+ var z = parse(['-s123'], {
+ alias: { str: ['s', 'S'] },
+ string: ['str'],
+ });
+
+ t.deepEqual(
+ z,
+ { _: [], s: '123', S: '123', str: '123' },
+ 'opt.string works with multiple aliases'
+ );
+ t.end();
+});
+
+test('slashBreak', function (t) {
+ t.same(
+ parse(['-I/foo/bar/baz']),
+ { I: '/foo/bar/baz', _: [] }
+ );
+ t.same(
+ parse(['-xyz/foo/bar/baz']),
+ { x: true, y: true, z: '/foo/bar/baz', _: [] }
+ );
+ t.end();
+});
+
+test('alias', function (t) {
+ var argv = parse(['-f', '11', '--zoom', '55'], {
+ alias: { z: 'zoom' },
+ });
+ t.equal(argv.zoom, 55);
+ t.equal(argv.z, argv.zoom);
+ t.equal(argv.f, 11);
+ t.end();
+});
+
+test('multiAlias', function (t) {
+ var argv = parse(['-f', '11', '--zoom', '55'], {
+ alias: { z: ['zm', 'zoom'] },
+ });
+ t.equal(argv.zoom, 55);
+ t.equal(argv.z, argv.zoom);
+ t.equal(argv.z, argv.zm);
+ t.equal(argv.f, 11);
+ t.end();
+});
+
+test('nested dotted objects', function (t) {
+ var argv = parse([
+ '--foo.bar', '3', '--foo.baz', '4',
+ '--foo.quux.quibble', '5', '--foo.quux.o_O',
+ '--beep.boop',
+ ]);
+
+ t.same(argv.foo, {
+ bar: 3,
+ baz: 4,
+ quux: {
+ quibble: 5,
+ o_O: true,
+ },
+ });
+ t.same(argv.beep, { boop: true });
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/parse_modified.js b/desktop/node_modules/minimist/test/parse_modified.js
new file mode 100644
index 0000000..32965d1
--- /dev/null
+++ b/desktop/node_modules/minimist/test/parse_modified.js
@@ -0,0 +1,11 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('parse with modifier functions', function (t) {
+ t.plan(1);
+
+ var argv = parse(['-b', '123'], { boolean: 'b' });
+ t.deepEqual(argv, { b: true, _: [123] });
+});
diff --git a/desktop/node_modules/minimist/test/proto.js b/desktop/node_modules/minimist/test/proto.js
new file mode 100644
index 0000000..6e629dd
--- /dev/null
+++ b/desktop/node_modules/minimist/test/proto.js
@@ -0,0 +1,64 @@
+'use strict';
+
+/* eslint no-proto: 0 */
+
+var parse = require('../');
+var test = require('tape');
+
+test('proto pollution', function (t) {
+ var argv = parse(['--__proto__.x', '123']);
+ t.equal({}.x, undefined);
+ t.equal(argv.__proto__.x, undefined);
+ t.equal(argv.x, undefined);
+ t.end();
+});
+
+test('proto pollution (array)', function (t) {
+ var argv = parse(['--x', '4', '--x', '5', '--x.__proto__.z', '789']);
+ t.equal({}.z, undefined);
+ t.deepEqual(argv.x, [4, 5]);
+ t.equal(argv.x.z, undefined);
+ t.equal(argv.x.__proto__.z, undefined);
+ t.end();
+});
+
+test('proto pollution (number)', function (t) {
+ var argv = parse(['--x', '5', '--x.__proto__.z', '100']);
+ t.equal({}.z, undefined);
+ t.equal((4).z, undefined);
+ t.equal(argv.x, 5);
+ t.equal(argv.x.z, undefined);
+ t.end();
+});
+
+test('proto pollution (string)', function (t) {
+ var argv = parse(['--x', 'abc', '--x.__proto__.z', 'def']);
+ t.equal({}.z, undefined);
+ t.equal('...'.z, undefined);
+ t.equal(argv.x, 'abc');
+ t.equal(argv.x.z, undefined);
+ t.end();
+});
+
+test('proto pollution (constructor)', function (t) {
+ var argv = parse(['--constructor.prototype.y', '123']);
+ t.equal({}.y, undefined);
+ t.equal(argv.y, undefined);
+ t.end();
+});
+
+test('proto pollution (constructor function)', function (t) {
+ var argv = parse(['--_.concat.constructor.prototype.y', '123']);
+ function fnToBeTested() {}
+ t.equal(fnToBeTested.y, undefined);
+ t.equal(argv.y, undefined);
+ t.end();
+});
+
+// powered by snyk - https://github.com/backstage/backstage/issues/10343
+test('proto pollution (constructor function) snyk', function (t) {
+ var argv = parse('--_.constructor.constructor.prototype.foo bar'.split(' '));
+ t.equal(function () {}.foo, undefined);
+ t.equal(argv.y, undefined);
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/short.js b/desktop/node_modules/minimist/test/short.js
new file mode 100644
index 0000000..4a7b843
--- /dev/null
+++ b/desktop/node_modules/minimist/test/short.js
@@ -0,0 +1,69 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('numeric short args', function (t) {
+ t.plan(2);
+ t.deepEqual(parse(['-n123']), { n: 123, _: [] });
+ t.deepEqual(
+ parse(['-123', '456']),
+ { 1: true, 2: true, 3: 456, _: [] }
+ );
+});
+
+test('short', function (t) {
+ t.deepEqual(
+ parse(['-b']),
+ { b: true, _: [] },
+ 'short boolean'
+ );
+ t.deepEqual(
+ parse(['foo', 'bar', 'baz']),
+ { _: ['foo', 'bar', 'baz'] },
+ 'bare'
+ );
+ t.deepEqual(
+ parse(['-cats']),
+ { c: true, a: true, t: true, s: true, _: [] },
+ 'group'
+ );
+ t.deepEqual(
+ parse(['-cats', 'meow']),
+ { c: true, a: true, t: true, s: 'meow', _: [] },
+ 'short group next'
+ );
+ t.deepEqual(
+ parse(['-h', 'localhost']),
+ { h: 'localhost', _: [] },
+ 'short capture'
+ );
+ t.deepEqual(
+ parse(['-h', 'localhost', '-p', '555']),
+ { h: 'localhost', p: 555, _: [] },
+ 'short captures'
+ );
+ t.end();
+});
+
+test('mixed short bool and capture', function (t) {
+ t.same(
+ parse(['-h', 'localhost', '-fp', '555', 'script.js']),
+ {
+ f: true, p: 555, h: 'localhost',
+ _: ['script.js'],
+ }
+ );
+ t.end();
+});
+
+test('short and long', function (t) {
+ t.deepEqual(
+ parse(['-h', 'localhost', '-fp', '555', 'script.js']),
+ {
+ f: true, p: 555, h: 'localhost',
+ _: ['script.js'],
+ }
+ );
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/stop_early.js b/desktop/node_modules/minimist/test/stop_early.js
new file mode 100644
index 0000000..52a6a91
--- /dev/null
+++ b/desktop/node_modules/minimist/test/stop_early.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('stops parsing on the first non-option when stopEarly is set', function (t) {
+ var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], {
+ stopEarly: true,
+ });
+
+ t.deepEqual(argv, {
+ aaa: 'bbb',
+ _: ['ccc', '--ddd'],
+ });
+
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/unknown.js b/desktop/node_modules/minimist/test/unknown.js
new file mode 100644
index 0000000..4f2e0ca
--- /dev/null
+++ b/desktop/node_modules/minimist/test/unknown.js
@@ -0,0 +1,104 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('boolean and alias is not unknown', function (t) {
+ var unknown = [];
+ function unknownFn(arg) {
+ unknown.push(arg);
+ return false;
+ }
+ var aliased = ['-h', 'true', '--derp', 'true'];
+ var regular = ['--herp', 'true', '-d', 'true'];
+ var opts = {
+ alias: { h: 'herp' },
+ boolean: 'h',
+ unknown: unknownFn,
+ };
+ parse(aliased, opts);
+ parse(regular, opts);
+
+ t.same(unknown, ['--derp', '-d']);
+ t.end();
+});
+
+test('flag boolean true any double hyphen argument is not unknown', function (t) {
+ var unknown = [];
+ function unknownFn(arg) {
+ unknown.push(arg);
+ return false;
+ }
+ var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], {
+ boolean: true,
+ unknown: unknownFn,
+ });
+ t.same(unknown, ['--tacos=good', 'cow', '-p']);
+ t.same(argv, {
+ honk: true,
+ _: [],
+ });
+ t.end();
+});
+
+test('string and alias is not unknown', function (t) {
+ var unknown = [];
+ function unknownFn(arg) {
+ unknown.push(arg);
+ return false;
+ }
+ var aliased = ['-h', 'hello', '--derp', 'goodbye'];
+ var regular = ['--herp', 'hello', '-d', 'moon'];
+ var opts = {
+ alias: { h: 'herp' },
+ string: 'h',
+ unknown: unknownFn,
+ };
+ parse(aliased, opts);
+ parse(regular, opts);
+
+ t.same(unknown, ['--derp', '-d']);
+ t.end();
+});
+
+test('default and alias is not unknown', function (t) {
+ var unknown = [];
+ function unknownFn(arg) {
+ unknown.push(arg);
+ return false;
+ }
+ var aliased = ['-h', 'hello'];
+ var regular = ['--herp', 'hello'];
+ var opts = {
+ default: { h: 'bar' },
+ alias: { h: 'herp' },
+ unknown: unknownFn,
+ };
+ parse(aliased, opts);
+ parse(regular, opts);
+
+ t.same(unknown, []);
+ t.end();
+ unknownFn(); // exercise fn for 100% coverage
+});
+
+test('value following -- is not unknown', function (t) {
+ var unknown = [];
+ function unknownFn(arg) {
+ unknown.push(arg);
+ return false;
+ }
+ var aliased = ['--bad', '--', 'good', 'arg'];
+ var opts = {
+ '--': true,
+ unknown: unknownFn,
+ };
+ var argv = parse(aliased, opts);
+
+ t.same(unknown, ['--bad']);
+ t.same(argv, {
+ '--': ['good', 'arg'],
+ _: [],
+ });
+ t.end();
+});
diff --git a/desktop/node_modules/minimist/test/whitespace.js b/desktop/node_modules/minimist/test/whitespace.js
new file mode 100644
index 0000000..4fdaf1d
--- /dev/null
+++ b/desktop/node_modules/minimist/test/whitespace.js
@@ -0,0 +1,10 @@
+'use strict';
+
+var parse = require('../');
+var test = require('tape');
+
+test('whitespace should be whitespace', function (t) {
+ t.plan(1);
+ var x = parse(['-x', '\t']).x;
+ t.equal(x, '\t');
+});