cline 1.0.0-nightly.5 → 1.0.0-nightly.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cline +0 -0
- package/bin/cline-host +0 -0
- package/node_modules/base64-js/LICENSE +21 -0
- package/node_modules/base64-js/README.md +34 -0
- package/node_modules/base64-js/base64js.min.js +1 -0
- package/node_modules/base64-js/index.d.ts +3 -0
- package/node_modules/base64-js/index.js +150 -0
- package/node_modules/base64-js/package.json +47 -0
- package/node_modules/better-sqlite3/LICENSE +21 -0
- package/node_modules/better-sqlite3/README.md +99 -0
- package/node_modules/better-sqlite3/binding.gyp +38 -0
- package/node_modules/better-sqlite3/deps/common.gypi +68 -0
- package/node_modules/better-sqlite3/deps/copy.js +31 -0
- package/node_modules/better-sqlite3/deps/defines.gypi +41 -0
- package/node_modules/better-sqlite3/deps/download.sh +122 -0
- package/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +262875 -0
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13775 -0
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +723 -0
- package/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
- package/node_modules/better-sqlite3/deps/test_extension.c +21 -0
- package/node_modules/better-sqlite3/lib/database.js +90 -0
- package/node_modules/better-sqlite3/lib/index.js +3 -0
- package/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
- package/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
- package/node_modules/better-sqlite3/lib/methods/function.js +31 -0
- package/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
- package/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
- package/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
- package/node_modules/better-sqlite3/lib/methods/table.js +189 -0
- package/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
- package/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
- package/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
- package/node_modules/better-sqlite3/lib/util.js +12 -0
- package/node_modules/better-sqlite3/package.json +62 -0
- package/node_modules/better-sqlite3/src/better_sqlite3.cpp +2189 -0
- package/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
- package/node_modules/bindings/LICENSE.md +22 -0
- package/node_modules/bindings/README.md +98 -0
- package/node_modules/bindings/bindings.js +221 -0
- package/node_modules/bindings/package.json +28 -0
- package/node_modules/bl/.travis.yml +17 -0
- package/node_modules/bl/BufferList.js +396 -0
- package/node_modules/bl/LICENSE.md +13 -0
- package/node_modules/bl/README.md +247 -0
- package/node_modules/bl/bl.js +84 -0
- package/node_modules/bl/package.json +37 -0
- package/node_modules/bl/test/convert.js +21 -0
- package/node_modules/bl/test/indexOf.js +492 -0
- package/node_modules/bl/test/isBufferList.js +32 -0
- package/node_modules/bl/test/test.js +869 -0
- package/node_modules/buffer/AUTHORS.md +70 -0
- package/node_modules/buffer/LICENSE +21 -0
- package/node_modules/buffer/README.md +410 -0
- package/node_modules/buffer/index.d.ts +186 -0
- package/node_modules/buffer/index.js +1817 -0
- package/node_modules/buffer/package.json +96 -0
- package/node_modules/chownr/LICENSE +15 -0
- package/node_modules/chownr/README.md +3 -0
- package/node_modules/chownr/chownr.js +167 -0
- package/node_modules/chownr/package.json +29 -0
- package/node_modules/decompress-response/index.d.ts +22 -0
- package/node_modules/decompress-response/index.js +58 -0
- package/node_modules/decompress-response/license +9 -0
- package/node_modules/decompress-response/package.json +56 -0
- package/node_modules/decompress-response/readme.md +48 -0
- package/node_modules/deep-extend/LICENSE +20 -0
- package/node_modules/deep-extend/README.md +91 -0
- package/node_modules/deep-extend/index.js +1 -0
- package/node_modules/deep-extend/lib/deep-extend.js +150 -0
- package/node_modules/deep-extend/package.json +62 -0
- package/node_modules/detect-libc/LICENSE +201 -0
- package/node_modules/detect-libc/README.md +163 -0
- package/node_modules/detect-libc/index.d.ts +14 -0
- package/node_modules/detect-libc/lib/detect-libc.js +267 -0
- package/node_modules/detect-libc/lib/filesystem.js +41 -0
- package/node_modules/detect-libc/lib/process.js +24 -0
- package/node_modules/detect-libc/package.json +41 -0
- package/node_modules/end-of-stream/LICENSE +21 -0
- package/node_modules/end-of-stream/README.md +54 -0
- package/node_modules/end-of-stream/index.js +96 -0
- package/node_modules/end-of-stream/package.json +37 -0
- package/node_modules/expand-template/.travis.yml +6 -0
- package/node_modules/expand-template/LICENSE +21 -0
- package/node_modules/expand-template/README.md +43 -0
- package/node_modules/expand-template/index.js +26 -0
- package/node_modules/expand-template/package.json +29 -0
- package/node_modules/expand-template/test.js +67 -0
- package/node_modules/file-uri-to-path/.npmignore +1 -0
- package/node_modules/file-uri-to-path/.travis.yml +30 -0
- package/node_modules/file-uri-to-path/History.md +21 -0
- package/node_modules/file-uri-to-path/LICENSE +20 -0
- package/node_modules/file-uri-to-path/README.md +74 -0
- package/node_modules/file-uri-to-path/index.d.ts +2 -0
- package/node_modules/file-uri-to-path/index.js +66 -0
- package/node_modules/file-uri-to-path/package.json +32 -0
- package/node_modules/file-uri-to-path/test/test.js +24 -0
- package/node_modules/file-uri-to-path/test/tests.json +13 -0
- package/node_modules/fs-constants/LICENSE +21 -0
- package/node_modules/fs-constants/README.md +26 -0
- package/node_modules/fs-constants/browser.js +1 -0
- package/node_modules/fs-constants/index.js +1 -0
- package/node_modules/fs-constants/package.json +19 -0
- package/node_modules/github-from-package/.travis.yml +4 -0
- package/node_modules/github-from-package/LICENSE +18 -0
- package/node_modules/github-from-package/example/package.json +8 -0
- package/node_modules/github-from-package/example/url.js +3 -0
- package/node_modules/github-from-package/index.js +17 -0
- package/node_modules/github-from-package/package.json +30 -0
- package/node_modules/github-from-package/readme.markdown +53 -0
- package/node_modules/github-from-package/test/a.json +8 -0
- package/node_modules/github-from-package/test/b.json +5 -0
- package/node_modules/github-from-package/test/c.json +5 -0
- package/node_modules/github-from-package/test/d.json +7 -0
- package/node_modules/github-from-package/test/e.json +5 -0
- package/node_modules/github-from-package/test/url.js +19 -0
- package/node_modules/ieee754/LICENSE +11 -0
- package/node_modules/ieee754/README.md +51 -0
- package/node_modules/ieee754/index.d.ts +10 -0
- package/node_modules/ieee754/index.js +85 -0
- package/node_modules/ieee754/package.json +52 -0
- package/node_modules/inherits/LICENSE +16 -0
- package/node_modules/inherits/README.md +42 -0
- package/node_modules/inherits/inherits.js +9 -0
- package/node_modules/inherits/inherits_browser.js +27 -0
- package/node_modules/inherits/package.json +29 -0
- package/node_modules/ini/LICENSE +15 -0
- package/node_modules/ini/README.md +102 -0
- package/node_modules/ini/ini.js +206 -0
- package/node_modules/ini/package.json +33 -0
- package/node_modules/mimic-response/index.d.ts +17 -0
- package/node_modules/mimic-response/index.js +77 -0
- package/node_modules/mimic-response/license +9 -0
- package/node_modules/mimic-response/package.json +42 -0
- package/node_modules/mimic-response/readme.md +78 -0
- package/node_modules/minimist/.eslintrc +29 -0
- package/node_modules/minimist/.github/FUNDING.yml +12 -0
- package/node_modules/minimist/.nycrc +14 -0
- package/node_modules/minimist/CHANGELOG.md +298 -0
- package/node_modules/minimist/LICENSE +18 -0
- package/node_modules/minimist/README.md +121 -0
- package/node_modules/minimist/example/parse.js +4 -0
- package/node_modules/minimist/index.js +263 -0
- package/node_modules/minimist/package.json +75 -0
- package/node_modules/minimist/test/all_bool.js +34 -0
- package/node_modules/minimist/test/bool.js +177 -0
- package/node_modules/minimist/test/dash.js +43 -0
- package/node_modules/minimist/test/default_bool.js +37 -0
- package/node_modules/minimist/test/dotted.js +24 -0
- package/node_modules/minimist/test/kv_short.js +32 -0
- package/node_modules/minimist/test/long.js +33 -0
- package/node_modules/minimist/test/num.js +38 -0
- package/node_modules/minimist/test/parse.js +209 -0
- package/node_modules/minimist/test/parse_modified.js +11 -0
- package/node_modules/minimist/test/proto.js +64 -0
- package/node_modules/minimist/test/short.js +69 -0
- package/node_modules/minimist/test/stop_early.js +17 -0
- package/node_modules/minimist/test/unknown.js +104 -0
- package/node_modules/minimist/test/whitespace.js +10 -0
- package/node_modules/mkdirp-classic/LICENSE +21 -0
- package/node_modules/mkdirp-classic/README.md +18 -0
- package/node_modules/mkdirp-classic/index.js +98 -0
- package/node_modules/mkdirp-classic/package.json +18 -0
- package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
- package/node_modules/napi-build-utils/LICENSE +21 -0
- package/node_modules/napi-build-utils/README.md +52 -0
- package/node_modules/napi-build-utils/index.js +214 -0
- package/node_modules/napi-build-utils/index.md +0 -0
- package/node_modules/napi-build-utils/package.json +42 -0
- package/node_modules/node-abi/LICENSE +21 -0
- package/node_modules/node-abi/README.md +54 -0
- package/node_modules/node-abi/abi_registry.json +408 -0
- package/node_modules/node-abi/index.js +179 -0
- package/node_modules/node-abi/package.json +45 -0
- package/node_modules/once/LICENSE +15 -0
- package/node_modules/once/README.md +79 -0
- package/node_modules/once/once.js +42 -0
- package/node_modules/once/package.json +33 -0
- package/node_modules/prebuild-install/CHANGELOG.md +131 -0
- package/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
- package/node_modules/prebuild-install/LICENSE +21 -0
- package/node_modules/prebuild-install/README.md +163 -0
- package/node_modules/prebuild-install/asset.js +44 -0
- package/node_modules/prebuild-install/bin.js +78 -0
- package/node_modules/prebuild-install/download.js +142 -0
- package/node_modules/prebuild-install/error.js +14 -0
- package/node_modules/prebuild-install/help.txt +16 -0
- package/node_modules/prebuild-install/index.js +1 -0
- package/node_modules/prebuild-install/log.js +33 -0
- package/node_modules/prebuild-install/package.json +67 -0
- package/node_modules/prebuild-install/proxy.js +35 -0
- package/node_modules/prebuild-install/rc.js +64 -0
- package/node_modules/prebuild-install/util.js +143 -0
- package/node_modules/pump/.github/FUNDING.yml +2 -0
- package/node_modules/pump/.travis.yml +5 -0
- package/node_modules/pump/LICENSE +21 -0
- package/node_modules/pump/README.md +74 -0
- package/node_modules/pump/SECURITY.md +5 -0
- package/node_modules/pump/index.js +86 -0
- package/node_modules/pump/package.json +24 -0
- package/node_modules/pump/test-browser.js +66 -0
- package/node_modules/pump/test-node.js +53 -0
- package/node_modules/rc/LICENSE.APACHE2 +15 -0
- package/node_modules/rc/LICENSE.BSD +26 -0
- package/node_modules/rc/LICENSE.MIT +24 -0
- package/node_modules/rc/README.md +227 -0
- package/node_modules/rc/browser.js +7 -0
- package/node_modules/rc/cli.js +4 -0
- package/node_modules/rc/index.js +53 -0
- package/node_modules/rc/lib/utils.js +104 -0
- package/node_modules/rc/package.json +29 -0
- package/node_modules/rc/test/ini.js +16 -0
- package/node_modules/rc/test/nested-env-vars.js +50 -0
- package/node_modules/rc/test/test.js +59 -0
- package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
- package/node_modules/readable-stream/GOVERNANCE.md +136 -0
- package/node_modules/readable-stream/LICENSE +47 -0
- package/node_modules/readable-stream/README.md +106 -0
- package/node_modules/readable-stream/errors-browser.js +127 -0
- package/node_modules/readable-stream/errors.js +116 -0
- package/node_modules/readable-stream/experimentalWarning.js +17 -0
- package/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
- package/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
- package/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
- package/node_modules/readable-stream/lib/_stream_transform.js +190 -0
- package/node_modules/readable-stream/lib/_stream_writable.js +641 -0
- package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
- package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
- package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
- package/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
- package/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
- package/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
- package/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
- package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
- package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
- package/node_modules/readable-stream/package.json +68 -0
- package/node_modules/readable-stream/readable-browser.js +9 -0
- package/node_modules/readable-stream/readable.js +16 -0
- package/node_modules/safe-buffer/LICENSE +21 -0
- package/node_modules/safe-buffer/README.md +584 -0
- package/node_modules/safe-buffer/index.d.ts +187 -0
- package/node_modules/safe-buffer/index.js +65 -0
- package/node_modules/safe-buffer/package.json +51 -0
- package/node_modules/semver/LICENSE +15 -0
- package/node_modules/semver/README.md +664 -0
- package/node_modules/semver/bin/semver.js +191 -0
- package/node_modules/semver/classes/comparator.js +143 -0
- package/node_modules/semver/classes/index.js +7 -0
- package/node_modules/semver/classes/range.js +556 -0
- package/node_modules/semver/classes/semver.js +319 -0
- package/node_modules/semver/functions/clean.js +8 -0
- package/node_modules/semver/functions/cmp.js +54 -0
- package/node_modules/semver/functions/coerce.js +62 -0
- package/node_modules/semver/functions/compare-build.js +9 -0
- package/node_modules/semver/functions/compare-loose.js +5 -0
- package/node_modules/semver/functions/compare.js +7 -0
- package/node_modules/semver/functions/diff.js +60 -0
- package/node_modules/semver/functions/eq.js +5 -0
- package/node_modules/semver/functions/gt.js +5 -0
- package/node_modules/semver/functions/gte.js +5 -0
- package/node_modules/semver/functions/inc.js +21 -0
- package/node_modules/semver/functions/lt.js +5 -0
- package/node_modules/semver/functions/lte.js +5 -0
- package/node_modules/semver/functions/major.js +5 -0
- package/node_modules/semver/functions/minor.js +5 -0
- package/node_modules/semver/functions/neq.js +5 -0
- package/node_modules/semver/functions/parse.js +18 -0
- package/node_modules/semver/functions/patch.js +5 -0
- package/node_modules/semver/functions/prerelease.js +8 -0
- package/node_modules/semver/functions/rcompare.js +5 -0
- package/node_modules/semver/functions/rsort.js +5 -0
- package/node_modules/semver/functions/satisfies.js +12 -0
- package/node_modules/semver/functions/sort.js +5 -0
- package/node_modules/semver/functions/valid.js +8 -0
- package/node_modules/semver/index.js +91 -0
- package/node_modules/semver/internal/constants.js +37 -0
- package/node_modules/semver/internal/debug.js +11 -0
- package/node_modules/semver/internal/identifiers.js +25 -0
- package/node_modules/semver/internal/lrucache.js +42 -0
- package/node_modules/semver/internal/parse-options.js +17 -0
- package/node_modules/semver/internal/re.js +223 -0
- package/node_modules/semver/package.json +78 -0
- package/node_modules/semver/preload.js +4 -0
- package/node_modules/semver/range.bnf +16 -0
- package/node_modules/semver/ranges/gtr.js +6 -0
- package/node_modules/semver/ranges/intersects.js +9 -0
- package/node_modules/semver/ranges/ltr.js +6 -0
- package/node_modules/semver/ranges/max-satisfying.js +27 -0
- package/node_modules/semver/ranges/min-satisfying.js +26 -0
- package/node_modules/semver/ranges/min-version.js +63 -0
- package/node_modules/semver/ranges/outside.js +82 -0
- package/node_modules/semver/ranges/simplify.js +49 -0
- package/node_modules/semver/ranges/subset.js +249 -0
- package/node_modules/semver/ranges/to-comparators.js +10 -0
- package/node_modules/semver/ranges/valid.js +13 -0
- package/node_modules/simple-concat/.travis.yml +3 -0
- package/node_modules/simple-concat/LICENSE +20 -0
- package/node_modules/simple-concat/README.md +44 -0
- package/node_modules/simple-concat/index.js +15 -0
- package/node_modules/simple-concat/package.json +47 -0
- package/node_modules/simple-concat/test/basic.js +41 -0
- package/node_modules/simple-get/.github/dependabot.yml +15 -0
- package/node_modules/simple-get/.github/workflows/ci.yml +23 -0
- package/node_modules/simple-get/LICENSE +20 -0
- package/node_modules/simple-get/README.md +333 -0
- package/node_modules/simple-get/index.js +108 -0
- package/node_modules/simple-get/package.json +67 -0
- package/node_modules/string_decoder/LICENSE +48 -0
- package/node_modules/string_decoder/README.md +47 -0
- package/node_modules/string_decoder/lib/string_decoder.js +296 -0
- package/node_modules/string_decoder/package.json +34 -0
- package/node_modules/strip-json-comments/index.js +70 -0
- package/node_modules/strip-json-comments/license +21 -0
- package/node_modules/strip-json-comments/package.json +42 -0
- package/node_modules/strip-json-comments/readme.md +64 -0
- package/node_modules/tar-fs/.travis.yml +6 -0
- package/node_modules/tar-fs/LICENSE +21 -0
- package/node_modules/tar-fs/README.md +165 -0
- package/node_modules/tar-fs/index.js +358 -0
- package/node_modules/tar-fs/package.json +41 -0
- package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
- package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
- package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
- package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
- package/node_modules/tar-fs/test/fixtures/e/file +0 -0
- package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
- package/node_modules/tar-fs/test/index.js +346 -0
- package/node_modules/tar-stream/LICENSE +21 -0
- package/node_modules/tar-stream/README.md +168 -0
- package/node_modules/tar-stream/extract.js +257 -0
- package/node_modules/tar-stream/headers.js +295 -0
- package/node_modules/tar-stream/index.js +2 -0
- package/node_modules/tar-stream/pack.js +255 -0
- package/node_modules/tar-stream/package.json +58 -0
- package/node_modules/tar-stream/sandbox.js +11 -0
- package/node_modules/tunnel-agent/LICENSE +55 -0
- package/node_modules/tunnel-agent/README.md +4 -0
- package/node_modules/tunnel-agent/index.js +244 -0
- package/node_modules/tunnel-agent/package.json +22 -0
- package/node_modules/util-deprecate/History.md +16 -0
- package/node_modules/util-deprecate/LICENSE +24 -0
- package/node_modules/util-deprecate/README.md +53 -0
- package/node_modules/util-deprecate/browser.js +67 -0
- package/node_modules/util-deprecate/node.js +6 -0
- package/node_modules/util-deprecate/package.json +27 -0
- package/node_modules/wrappy/LICENSE +15 -0
- package/node_modules/wrappy/README.md +36 -0
- package/node_modules/wrappy/package.json +29 -0
- package/node_modules/wrappy/wrappy.js +33 -0
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('-', function (t) {
|
|
7
|
+
t.plan(6);
|
|
8
|
+
t.deepEqual(parse(['-n', '-']), { n: '-', _: [] });
|
|
9
|
+
t.deepEqual(parse(['--nnn', '-']), { nnn: '-', _: [] });
|
|
10
|
+
t.deepEqual(parse(['-']), { _: ['-'] });
|
|
11
|
+
t.deepEqual(parse(['-f-']), { f: '-', _: [] });
|
|
12
|
+
t.deepEqual(
|
|
13
|
+
parse(['-b', '-'], { boolean: 'b' }),
|
|
14
|
+
{ b: true, _: ['-'] }
|
|
15
|
+
);
|
|
16
|
+
t.deepEqual(
|
|
17
|
+
parse(['-s', '-'], { string: 's' }),
|
|
18
|
+
{ s: '-', _: [] }
|
|
19
|
+
);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('-a -- b', function (t) {
|
|
23
|
+
t.plan(2);
|
|
24
|
+
t.deepEqual(parse(['-a', '--', 'b']), { a: true, _: ['b'] });
|
|
25
|
+
t.deepEqual(parse(['--a', '--', 'b']), { a: true, _: ['b'] });
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('move arguments after the -- into their own `--` array', function (t) {
|
|
29
|
+
t.plan(1);
|
|
30
|
+
t.deepEqual(
|
|
31
|
+
parse(['--name', 'John', 'before', '--', 'after'], { '--': true }),
|
|
32
|
+
{ name: 'John', _: ['before'], '--': ['after'] }
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('--- option value', function (t) {
|
|
37
|
+
// A multi-dash value is largely an edge case, but check the behaviour is as expected,
|
|
38
|
+
// and in particular the same for short option and long option (as made consistent in Jan 2023).
|
|
39
|
+
t.plan(2);
|
|
40
|
+
t.deepEqual(parse(['-n', '---']), { n: '---', _: [] });
|
|
41
|
+
t.deepEqual(parse(['--nnn', '---']), { nnn: '---', _: [] });
|
|
42
|
+
});
|
|
43
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var test = require('tape');
|
|
4
|
+
var parse = require('../');
|
|
5
|
+
|
|
6
|
+
test('boolean default true', function (t) {
|
|
7
|
+
var argv = parse([], {
|
|
8
|
+
boolean: 'sometrue',
|
|
9
|
+
default: { sometrue: true },
|
|
10
|
+
});
|
|
11
|
+
t.equal(argv.sometrue, true);
|
|
12
|
+
t.end();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('boolean default false', function (t) {
|
|
16
|
+
var argv = parse([], {
|
|
17
|
+
boolean: 'somefalse',
|
|
18
|
+
default: { somefalse: false },
|
|
19
|
+
});
|
|
20
|
+
t.equal(argv.somefalse, false);
|
|
21
|
+
t.end();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test('boolean default to null', function (t) {
|
|
25
|
+
var argv = parse([], {
|
|
26
|
+
boolean: 'maybe',
|
|
27
|
+
default: { maybe: null },
|
|
28
|
+
});
|
|
29
|
+
t.equal(argv.maybe, null);
|
|
30
|
+
|
|
31
|
+
var argvLong = parse(['--maybe'], {
|
|
32
|
+
boolean: 'maybe',
|
|
33
|
+
default: { maybe: null },
|
|
34
|
+
});
|
|
35
|
+
t.equal(argvLong.maybe, true);
|
|
36
|
+
t.end();
|
|
37
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('dotted alias', function (t) {
|
|
7
|
+
var argv = parse(['--a.b', '22'], { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
|
|
8
|
+
t.equal(argv.a.b, 22);
|
|
9
|
+
t.equal(argv.aa.bb, 22);
|
|
10
|
+
t.end();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test('dotted default', function (t) {
|
|
14
|
+
var argv = parse('', { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
|
|
15
|
+
t.equal(argv.a.b, 11);
|
|
16
|
+
t.equal(argv.aa.bb, 11);
|
|
17
|
+
t.end();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('dotted default with no alias', function (t) {
|
|
21
|
+
var argv = parse('', { default: { 'a.b': 11 } });
|
|
22
|
+
t.equal(argv.a.b, 11);
|
|
23
|
+
t.end();
|
|
24
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('short -k=v', function (t) {
|
|
7
|
+
t.plan(1);
|
|
8
|
+
|
|
9
|
+
var argv = parse(['-b=123']);
|
|
10
|
+
t.deepEqual(argv, { b: 123, _: [] });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test('multi short -k=v', function (t) {
|
|
14
|
+
t.plan(1);
|
|
15
|
+
|
|
16
|
+
var argv = parse(['-a=whatever', '-b=robots']);
|
|
17
|
+
t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] });
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('short with embedded equals -k=a=b', function (t) {
|
|
21
|
+
t.plan(1);
|
|
22
|
+
|
|
23
|
+
var argv = parse(['-k=a=b']);
|
|
24
|
+
t.deepEqual(argv, { k: 'a=b', _: [] });
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('short with later equals like -ab=c', function (t) {
|
|
28
|
+
t.plan(1);
|
|
29
|
+
|
|
30
|
+
var argv = parse(['-ab=c']);
|
|
31
|
+
t.deepEqual(argv, { a: true, b: 'c', _: [] });
|
|
32
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var test = require('tape');
|
|
4
|
+
var parse = require('../');
|
|
5
|
+
|
|
6
|
+
test('long opts', function (t) {
|
|
7
|
+
t.deepEqual(
|
|
8
|
+
parse(['--bool']),
|
|
9
|
+
{ bool: true, _: [] },
|
|
10
|
+
'long boolean'
|
|
11
|
+
);
|
|
12
|
+
t.deepEqual(
|
|
13
|
+
parse(['--pow', 'xixxle']),
|
|
14
|
+
{ pow: 'xixxle', _: [] },
|
|
15
|
+
'long capture sp'
|
|
16
|
+
);
|
|
17
|
+
t.deepEqual(
|
|
18
|
+
parse(['--pow=xixxle']),
|
|
19
|
+
{ pow: 'xixxle', _: [] },
|
|
20
|
+
'long capture eq'
|
|
21
|
+
);
|
|
22
|
+
t.deepEqual(
|
|
23
|
+
parse(['--host', 'localhost', '--port', '555']),
|
|
24
|
+
{ host: 'localhost', port: 555, _: [] },
|
|
25
|
+
'long captures sp'
|
|
26
|
+
);
|
|
27
|
+
t.deepEqual(
|
|
28
|
+
parse(['--host=localhost', '--port=555']),
|
|
29
|
+
{ host: 'localhost', port: 555, _: [] },
|
|
30
|
+
'long captures eq'
|
|
31
|
+
);
|
|
32
|
+
t.end();
|
|
33
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('nums', function (t) {
|
|
7
|
+
var argv = parse([
|
|
8
|
+
'-x', '1234',
|
|
9
|
+
'-y', '5.67',
|
|
10
|
+
'-z', '1e7',
|
|
11
|
+
'-w', '10f',
|
|
12
|
+
'--hex', '0xdeadbeef',
|
|
13
|
+
'789',
|
|
14
|
+
]);
|
|
15
|
+
t.deepEqual(argv, {
|
|
16
|
+
x: 1234,
|
|
17
|
+
y: 5.67,
|
|
18
|
+
z: 1e7,
|
|
19
|
+
w: '10f',
|
|
20
|
+
hex: 0xdeadbeef,
|
|
21
|
+
_: [789],
|
|
22
|
+
});
|
|
23
|
+
t.deepEqual(typeof argv.x, 'number');
|
|
24
|
+
t.deepEqual(typeof argv.y, 'number');
|
|
25
|
+
t.deepEqual(typeof argv.z, 'number');
|
|
26
|
+
t.deepEqual(typeof argv.w, 'string');
|
|
27
|
+
t.deepEqual(typeof argv.hex, 'number');
|
|
28
|
+
t.deepEqual(typeof argv._[0], 'number');
|
|
29
|
+
t.end();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('already a number', function (t) {
|
|
33
|
+
var argv = parse(['-x', 1234, 789]);
|
|
34
|
+
t.deepEqual(argv, { x: 1234, _: [789] });
|
|
35
|
+
t.deepEqual(typeof argv.x, 'number');
|
|
36
|
+
t.deepEqual(typeof argv._[0], 'number');
|
|
37
|
+
t.end();
|
|
38
|
+
});
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('parse args', function (t) {
|
|
7
|
+
t.deepEqual(
|
|
8
|
+
parse(['--no-moo']),
|
|
9
|
+
{ moo: false, _: [] },
|
|
10
|
+
'no'
|
|
11
|
+
);
|
|
12
|
+
t.deepEqual(
|
|
13
|
+
parse(['-v', 'a', '-v', 'b', '-v', 'c']),
|
|
14
|
+
{ v: ['a', 'b', 'c'], _: [] },
|
|
15
|
+
'multi'
|
|
16
|
+
);
|
|
17
|
+
t.end();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('comprehensive', function (t) {
|
|
21
|
+
t.deepEqual(
|
|
22
|
+
parse([
|
|
23
|
+
'--name=meowmers', 'bare', '-cats', 'woo',
|
|
24
|
+
'-h', 'awesome', '--multi=quux',
|
|
25
|
+
'--key', 'value',
|
|
26
|
+
'-b', '--bool', '--no-meep', '--multi=baz',
|
|
27
|
+
'--', '--not-a-flag', 'eek',
|
|
28
|
+
]),
|
|
29
|
+
{
|
|
30
|
+
c: true,
|
|
31
|
+
a: true,
|
|
32
|
+
t: true,
|
|
33
|
+
s: 'woo',
|
|
34
|
+
h: 'awesome',
|
|
35
|
+
b: true,
|
|
36
|
+
bool: true,
|
|
37
|
+
key: 'value',
|
|
38
|
+
multi: ['quux', 'baz'],
|
|
39
|
+
meep: false,
|
|
40
|
+
name: 'meowmers',
|
|
41
|
+
_: ['bare', '--not-a-flag', 'eek'],
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
t.end();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test('flag boolean', function (t) {
|
|
48
|
+
var argv = parse(['-t', 'moo'], { boolean: 't' });
|
|
49
|
+
t.deepEqual(argv, { t: true, _: ['moo'] });
|
|
50
|
+
t.deepEqual(typeof argv.t, 'boolean');
|
|
51
|
+
t.end();
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test('flag boolean value', function (t) {
|
|
55
|
+
var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
|
|
56
|
+
boolean: ['t', 'verbose'],
|
|
57
|
+
default: { verbose: true },
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
t.deepEqual(argv, {
|
|
61
|
+
verbose: false,
|
|
62
|
+
t: true,
|
|
63
|
+
_: ['moo'],
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
t.deepEqual(typeof argv.verbose, 'boolean');
|
|
67
|
+
t.deepEqual(typeof argv.t, 'boolean');
|
|
68
|
+
t.end();
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('newlines in params', function (t) {
|
|
72
|
+
var args = parse(['-s', 'X\nX']);
|
|
73
|
+
t.deepEqual(args, { _: [], s: 'X\nX' });
|
|
74
|
+
|
|
75
|
+
// reproduce in bash:
|
|
76
|
+
// VALUE="new
|
|
77
|
+
// line"
|
|
78
|
+
// node program.js --s="$VALUE"
|
|
79
|
+
args = parse(['--s=X\nX']);
|
|
80
|
+
t.deepEqual(args, { _: [], s: 'X\nX' });
|
|
81
|
+
t.end();
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
test('strings', function (t) {
|
|
85
|
+
var s = parse(['-s', '0001234'], { string: 's' }).s;
|
|
86
|
+
t.equal(s, '0001234');
|
|
87
|
+
t.equal(typeof s, 'string');
|
|
88
|
+
|
|
89
|
+
var x = parse(['-x', '56'], { string: 'x' }).x;
|
|
90
|
+
t.equal(x, '56');
|
|
91
|
+
t.equal(typeof x, 'string');
|
|
92
|
+
t.end();
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
test('stringArgs', function (t) {
|
|
96
|
+
var s = parse([' ', ' '], { string: '_' })._;
|
|
97
|
+
t.same(s.length, 2);
|
|
98
|
+
t.same(typeof s[0], 'string');
|
|
99
|
+
t.same(s[0], ' ');
|
|
100
|
+
t.same(typeof s[1], 'string');
|
|
101
|
+
t.same(s[1], ' ');
|
|
102
|
+
t.end();
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test('empty strings', function (t) {
|
|
106
|
+
var s = parse(['-s'], { string: 's' }).s;
|
|
107
|
+
t.equal(s, '');
|
|
108
|
+
t.equal(typeof s, 'string');
|
|
109
|
+
|
|
110
|
+
var str = parse(['--str'], { string: 'str' }).str;
|
|
111
|
+
t.equal(str, '');
|
|
112
|
+
t.equal(typeof str, 'string');
|
|
113
|
+
|
|
114
|
+
var letters = parse(['-art'], {
|
|
115
|
+
string: ['a', 't'],
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
t.equal(letters.a, '');
|
|
119
|
+
t.equal(letters.r, true);
|
|
120
|
+
t.equal(letters.t, '');
|
|
121
|
+
|
|
122
|
+
t.end();
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
test('string and alias', function (t) {
|
|
126
|
+
var x = parse(['--str', '000123'], {
|
|
127
|
+
string: 's',
|
|
128
|
+
alias: { s: 'str' },
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
t.equal(x.str, '000123');
|
|
132
|
+
t.equal(typeof x.str, 'string');
|
|
133
|
+
t.equal(x.s, '000123');
|
|
134
|
+
t.equal(typeof x.s, 'string');
|
|
135
|
+
|
|
136
|
+
var y = parse(['-s', '000123'], {
|
|
137
|
+
string: 'str',
|
|
138
|
+
alias: { str: 's' },
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
t.equal(y.str, '000123');
|
|
142
|
+
t.equal(typeof y.str, 'string');
|
|
143
|
+
t.equal(y.s, '000123');
|
|
144
|
+
t.equal(typeof y.s, 'string');
|
|
145
|
+
|
|
146
|
+
var z = parse(['-s123'], {
|
|
147
|
+
alias: { str: ['s', 'S'] },
|
|
148
|
+
string: ['str'],
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
t.deepEqual(
|
|
152
|
+
z,
|
|
153
|
+
{ _: [], s: '123', S: '123', str: '123' },
|
|
154
|
+
'opt.string works with multiple aliases'
|
|
155
|
+
);
|
|
156
|
+
t.end();
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
test('slashBreak', function (t) {
|
|
160
|
+
t.same(
|
|
161
|
+
parse(['-I/foo/bar/baz']),
|
|
162
|
+
{ I: '/foo/bar/baz', _: [] }
|
|
163
|
+
);
|
|
164
|
+
t.same(
|
|
165
|
+
parse(['-xyz/foo/bar/baz']),
|
|
166
|
+
{ x: true, y: true, z: '/foo/bar/baz', _: [] }
|
|
167
|
+
);
|
|
168
|
+
t.end();
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
test('alias', function (t) {
|
|
172
|
+
var argv = parse(['-f', '11', '--zoom', '55'], {
|
|
173
|
+
alias: { z: 'zoom' },
|
|
174
|
+
});
|
|
175
|
+
t.equal(argv.zoom, 55);
|
|
176
|
+
t.equal(argv.z, argv.zoom);
|
|
177
|
+
t.equal(argv.f, 11);
|
|
178
|
+
t.end();
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
test('multiAlias', function (t) {
|
|
182
|
+
var argv = parse(['-f', '11', '--zoom', '55'], {
|
|
183
|
+
alias: { z: ['zm', 'zoom'] },
|
|
184
|
+
});
|
|
185
|
+
t.equal(argv.zoom, 55);
|
|
186
|
+
t.equal(argv.z, argv.zoom);
|
|
187
|
+
t.equal(argv.z, argv.zm);
|
|
188
|
+
t.equal(argv.f, 11);
|
|
189
|
+
t.end();
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
test('nested dotted objects', function (t) {
|
|
193
|
+
var argv = parse([
|
|
194
|
+
'--foo.bar', '3', '--foo.baz', '4',
|
|
195
|
+
'--foo.quux.quibble', '5', '--foo.quux.o_O',
|
|
196
|
+
'--beep.boop',
|
|
197
|
+
]);
|
|
198
|
+
|
|
199
|
+
t.same(argv.foo, {
|
|
200
|
+
bar: 3,
|
|
201
|
+
baz: 4,
|
|
202
|
+
quux: {
|
|
203
|
+
quibble: 5,
|
|
204
|
+
o_O: true,
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
t.same(argv.beep, { boop: true });
|
|
208
|
+
t.end();
|
|
209
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/* eslint no-proto: 0 */
|
|
4
|
+
|
|
5
|
+
var parse = require('../');
|
|
6
|
+
var test = require('tape');
|
|
7
|
+
|
|
8
|
+
test('proto pollution', function (t) {
|
|
9
|
+
var argv = parse(['--__proto__.x', '123']);
|
|
10
|
+
t.equal({}.x, undefined);
|
|
11
|
+
t.equal(argv.__proto__.x, undefined);
|
|
12
|
+
t.equal(argv.x, undefined);
|
|
13
|
+
t.end();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test('proto pollution (array)', function (t) {
|
|
17
|
+
var argv = parse(['--x', '4', '--x', '5', '--x.__proto__.z', '789']);
|
|
18
|
+
t.equal({}.z, undefined);
|
|
19
|
+
t.deepEqual(argv.x, [4, 5]);
|
|
20
|
+
t.equal(argv.x.z, undefined);
|
|
21
|
+
t.equal(argv.x.__proto__.z, undefined);
|
|
22
|
+
t.end();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('proto pollution (number)', function (t) {
|
|
26
|
+
var argv = parse(['--x', '5', '--x.__proto__.z', '100']);
|
|
27
|
+
t.equal({}.z, undefined);
|
|
28
|
+
t.equal((4).z, undefined);
|
|
29
|
+
t.equal(argv.x, 5);
|
|
30
|
+
t.equal(argv.x.z, undefined);
|
|
31
|
+
t.end();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('proto pollution (string)', function (t) {
|
|
35
|
+
var argv = parse(['--x', 'abc', '--x.__proto__.z', 'def']);
|
|
36
|
+
t.equal({}.z, undefined);
|
|
37
|
+
t.equal('...'.z, undefined);
|
|
38
|
+
t.equal(argv.x, 'abc');
|
|
39
|
+
t.equal(argv.x.z, undefined);
|
|
40
|
+
t.end();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
test('proto pollution (constructor)', function (t) {
|
|
44
|
+
var argv = parse(['--constructor.prototype.y', '123']);
|
|
45
|
+
t.equal({}.y, undefined);
|
|
46
|
+
t.equal(argv.y, undefined);
|
|
47
|
+
t.end();
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('proto pollution (constructor function)', function (t) {
|
|
51
|
+
var argv = parse(['--_.concat.constructor.prototype.y', '123']);
|
|
52
|
+
function fnToBeTested() {}
|
|
53
|
+
t.equal(fnToBeTested.y, undefined);
|
|
54
|
+
t.equal(argv.y, undefined);
|
|
55
|
+
t.end();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// powered by snyk - https://github.com/backstage/backstage/issues/10343
|
|
59
|
+
test('proto pollution (constructor function) snyk', function (t) {
|
|
60
|
+
var argv = parse('--_.constructor.constructor.prototype.foo bar'.split(' '));
|
|
61
|
+
t.equal(function () {}.foo, undefined);
|
|
62
|
+
t.equal(argv.y, undefined);
|
|
63
|
+
t.end();
|
|
64
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('numeric short args', function (t) {
|
|
7
|
+
t.plan(2);
|
|
8
|
+
t.deepEqual(parse(['-n123']), { n: 123, _: [] });
|
|
9
|
+
t.deepEqual(
|
|
10
|
+
parse(['-123', '456']),
|
|
11
|
+
{ 1: true, 2: true, 3: 456, _: [] }
|
|
12
|
+
);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('short', function (t) {
|
|
16
|
+
t.deepEqual(
|
|
17
|
+
parse(['-b']),
|
|
18
|
+
{ b: true, _: [] },
|
|
19
|
+
'short boolean'
|
|
20
|
+
);
|
|
21
|
+
t.deepEqual(
|
|
22
|
+
parse(['foo', 'bar', 'baz']),
|
|
23
|
+
{ _: ['foo', 'bar', 'baz'] },
|
|
24
|
+
'bare'
|
|
25
|
+
);
|
|
26
|
+
t.deepEqual(
|
|
27
|
+
parse(['-cats']),
|
|
28
|
+
{ c: true, a: true, t: true, s: true, _: [] },
|
|
29
|
+
'group'
|
|
30
|
+
);
|
|
31
|
+
t.deepEqual(
|
|
32
|
+
parse(['-cats', 'meow']),
|
|
33
|
+
{ c: true, a: true, t: true, s: 'meow', _: [] },
|
|
34
|
+
'short group next'
|
|
35
|
+
);
|
|
36
|
+
t.deepEqual(
|
|
37
|
+
parse(['-h', 'localhost']),
|
|
38
|
+
{ h: 'localhost', _: [] },
|
|
39
|
+
'short capture'
|
|
40
|
+
);
|
|
41
|
+
t.deepEqual(
|
|
42
|
+
parse(['-h', 'localhost', '-p', '555']),
|
|
43
|
+
{ h: 'localhost', p: 555, _: [] },
|
|
44
|
+
'short captures'
|
|
45
|
+
);
|
|
46
|
+
t.end();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test('mixed short bool and capture', function (t) {
|
|
50
|
+
t.same(
|
|
51
|
+
parse(['-h', 'localhost', '-fp', '555', 'script.js']),
|
|
52
|
+
{
|
|
53
|
+
f: true, p: 555, h: 'localhost',
|
|
54
|
+
_: ['script.js'],
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
t.end();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test('short and long', function (t) {
|
|
61
|
+
t.deepEqual(
|
|
62
|
+
parse(['-h', 'localhost', '-fp', '555', 'script.js']),
|
|
63
|
+
{
|
|
64
|
+
f: true, p: 555, h: 'localhost',
|
|
65
|
+
_: ['script.js'],
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
t.end();
|
|
69
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('stops parsing on the first non-option when stopEarly is set', function (t) {
|
|
7
|
+
var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], {
|
|
8
|
+
stopEarly: true,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
t.deepEqual(argv, {
|
|
12
|
+
aaa: 'bbb',
|
|
13
|
+
_: ['ccc', '--ddd'],
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
t.end();
|
|
17
|
+
});
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var parse = require('../');
|
|
4
|
+
var test = require('tape');
|
|
5
|
+
|
|
6
|
+
test('boolean and alias is not unknown', function (t) {
|
|
7
|
+
var unknown = [];
|
|
8
|
+
function unknownFn(arg) {
|
|
9
|
+
unknown.push(arg);
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
var aliased = ['-h', 'true', '--derp', 'true'];
|
|
13
|
+
var regular = ['--herp', 'true', '-d', 'true'];
|
|
14
|
+
var opts = {
|
|
15
|
+
alias: { h: 'herp' },
|
|
16
|
+
boolean: 'h',
|
|
17
|
+
unknown: unknownFn,
|
|
18
|
+
};
|
|
19
|
+
parse(aliased, opts);
|
|
20
|
+
parse(regular, opts);
|
|
21
|
+
|
|
22
|
+
t.same(unknown, ['--derp', '-d']);
|
|
23
|
+
t.end();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('flag boolean true any double hyphen argument is not unknown', function (t) {
|
|
27
|
+
var unknown = [];
|
|
28
|
+
function unknownFn(arg) {
|
|
29
|
+
unknown.push(arg);
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], {
|
|
33
|
+
boolean: true,
|
|
34
|
+
unknown: unknownFn,
|
|
35
|
+
});
|
|
36
|
+
t.same(unknown, ['--tacos=good', 'cow', '-p']);
|
|
37
|
+
t.same(argv, {
|
|
38
|
+
honk: true,
|
|
39
|
+
_: [],
|
|
40
|
+
});
|
|
41
|
+
t.end();
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test('string and alias is not unknown', function (t) {
|
|
45
|
+
var unknown = [];
|
|
46
|
+
function unknownFn(arg) {
|
|
47
|
+
unknown.push(arg);
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
var aliased = ['-h', 'hello', '--derp', 'goodbye'];
|
|
51
|
+
var regular = ['--herp', 'hello', '-d', 'moon'];
|
|
52
|
+
var opts = {
|
|
53
|
+
alias: { h: 'herp' },
|
|
54
|
+
string: 'h',
|
|
55
|
+
unknown: unknownFn,
|
|
56
|
+
};
|
|
57
|
+
parse(aliased, opts);
|
|
58
|
+
parse(regular, opts);
|
|
59
|
+
|
|
60
|
+
t.same(unknown, ['--derp', '-d']);
|
|
61
|
+
t.end();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
test('default and alias is not unknown', function (t) {
|
|
65
|
+
var unknown = [];
|
|
66
|
+
function unknownFn(arg) {
|
|
67
|
+
unknown.push(arg);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
var aliased = ['-h', 'hello'];
|
|
71
|
+
var regular = ['--herp', 'hello'];
|
|
72
|
+
var opts = {
|
|
73
|
+
default: { h: 'bar' },
|
|
74
|
+
alias: { h: 'herp' },
|
|
75
|
+
unknown: unknownFn,
|
|
76
|
+
};
|
|
77
|
+
parse(aliased, opts);
|
|
78
|
+
parse(regular, opts);
|
|
79
|
+
|
|
80
|
+
t.same(unknown, []);
|
|
81
|
+
t.end();
|
|
82
|
+
unknownFn(); // exercise fn for 100% coverage
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test('value following -- is not unknown', function (t) {
|
|
86
|
+
var unknown = [];
|
|
87
|
+
function unknownFn(arg) {
|
|
88
|
+
unknown.push(arg);
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
var aliased = ['--bad', '--', 'good', 'arg'];
|
|
92
|
+
var opts = {
|
|
93
|
+
'--': true,
|
|
94
|
+
unknown: unknownFn,
|
|
95
|
+
};
|
|
96
|
+
var argv = parse(aliased, opts);
|
|
97
|
+
|
|
98
|
+
t.same(unknown, ['--bad']);
|
|
99
|
+
t.same(argv, {
|
|
100
|
+
'--': ['good', 'arg'],
|
|
101
|
+
_: [],
|
|
102
|
+
});
|
|
103
|
+
t.end();
|
|
104
|
+
});
|