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.
Files changed (355) hide show
  1. package/bin/cline +0 -0
  2. package/bin/cline-host +0 -0
  3. package/node_modules/base64-js/LICENSE +21 -0
  4. package/node_modules/base64-js/README.md +34 -0
  5. package/node_modules/base64-js/base64js.min.js +1 -0
  6. package/node_modules/base64-js/index.d.ts +3 -0
  7. package/node_modules/base64-js/index.js +150 -0
  8. package/node_modules/base64-js/package.json +47 -0
  9. package/node_modules/better-sqlite3/LICENSE +21 -0
  10. package/node_modules/better-sqlite3/README.md +99 -0
  11. package/node_modules/better-sqlite3/binding.gyp +38 -0
  12. package/node_modules/better-sqlite3/deps/common.gypi +68 -0
  13. package/node_modules/better-sqlite3/deps/copy.js +31 -0
  14. package/node_modules/better-sqlite3/deps/defines.gypi +41 -0
  15. package/node_modules/better-sqlite3/deps/download.sh +122 -0
  16. package/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  17. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +262875 -0
  18. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13775 -0
  19. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +723 -0
  20. package/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  21. package/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  22. package/node_modules/better-sqlite3/lib/database.js +90 -0
  23. package/node_modules/better-sqlite3/lib/index.js +3 -0
  24. package/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  25. package/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  26. package/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  27. package/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  28. package/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  29. package/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  30. package/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  31. package/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  32. package/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  33. package/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  34. package/node_modules/better-sqlite3/lib/util.js +12 -0
  35. package/node_modules/better-sqlite3/package.json +62 -0
  36. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +2189 -0
  37. package/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
  38. package/node_modules/bindings/LICENSE.md +22 -0
  39. package/node_modules/bindings/README.md +98 -0
  40. package/node_modules/bindings/bindings.js +221 -0
  41. package/node_modules/bindings/package.json +28 -0
  42. package/node_modules/bl/.travis.yml +17 -0
  43. package/node_modules/bl/BufferList.js +396 -0
  44. package/node_modules/bl/LICENSE.md +13 -0
  45. package/node_modules/bl/README.md +247 -0
  46. package/node_modules/bl/bl.js +84 -0
  47. package/node_modules/bl/package.json +37 -0
  48. package/node_modules/bl/test/convert.js +21 -0
  49. package/node_modules/bl/test/indexOf.js +492 -0
  50. package/node_modules/bl/test/isBufferList.js +32 -0
  51. package/node_modules/bl/test/test.js +869 -0
  52. package/node_modules/buffer/AUTHORS.md +70 -0
  53. package/node_modules/buffer/LICENSE +21 -0
  54. package/node_modules/buffer/README.md +410 -0
  55. package/node_modules/buffer/index.d.ts +186 -0
  56. package/node_modules/buffer/index.js +1817 -0
  57. package/node_modules/buffer/package.json +96 -0
  58. package/node_modules/chownr/LICENSE +15 -0
  59. package/node_modules/chownr/README.md +3 -0
  60. package/node_modules/chownr/chownr.js +167 -0
  61. package/node_modules/chownr/package.json +29 -0
  62. package/node_modules/decompress-response/index.d.ts +22 -0
  63. package/node_modules/decompress-response/index.js +58 -0
  64. package/node_modules/decompress-response/license +9 -0
  65. package/node_modules/decompress-response/package.json +56 -0
  66. package/node_modules/decompress-response/readme.md +48 -0
  67. package/node_modules/deep-extend/LICENSE +20 -0
  68. package/node_modules/deep-extend/README.md +91 -0
  69. package/node_modules/deep-extend/index.js +1 -0
  70. package/node_modules/deep-extend/lib/deep-extend.js +150 -0
  71. package/node_modules/deep-extend/package.json +62 -0
  72. package/node_modules/detect-libc/LICENSE +201 -0
  73. package/node_modules/detect-libc/README.md +163 -0
  74. package/node_modules/detect-libc/index.d.ts +14 -0
  75. package/node_modules/detect-libc/lib/detect-libc.js +267 -0
  76. package/node_modules/detect-libc/lib/filesystem.js +41 -0
  77. package/node_modules/detect-libc/lib/process.js +24 -0
  78. package/node_modules/detect-libc/package.json +41 -0
  79. package/node_modules/end-of-stream/LICENSE +21 -0
  80. package/node_modules/end-of-stream/README.md +54 -0
  81. package/node_modules/end-of-stream/index.js +96 -0
  82. package/node_modules/end-of-stream/package.json +37 -0
  83. package/node_modules/expand-template/.travis.yml +6 -0
  84. package/node_modules/expand-template/LICENSE +21 -0
  85. package/node_modules/expand-template/README.md +43 -0
  86. package/node_modules/expand-template/index.js +26 -0
  87. package/node_modules/expand-template/package.json +29 -0
  88. package/node_modules/expand-template/test.js +67 -0
  89. package/node_modules/file-uri-to-path/.npmignore +1 -0
  90. package/node_modules/file-uri-to-path/.travis.yml +30 -0
  91. package/node_modules/file-uri-to-path/History.md +21 -0
  92. package/node_modules/file-uri-to-path/LICENSE +20 -0
  93. package/node_modules/file-uri-to-path/README.md +74 -0
  94. package/node_modules/file-uri-to-path/index.d.ts +2 -0
  95. package/node_modules/file-uri-to-path/index.js +66 -0
  96. package/node_modules/file-uri-to-path/package.json +32 -0
  97. package/node_modules/file-uri-to-path/test/test.js +24 -0
  98. package/node_modules/file-uri-to-path/test/tests.json +13 -0
  99. package/node_modules/fs-constants/LICENSE +21 -0
  100. package/node_modules/fs-constants/README.md +26 -0
  101. package/node_modules/fs-constants/browser.js +1 -0
  102. package/node_modules/fs-constants/index.js +1 -0
  103. package/node_modules/fs-constants/package.json +19 -0
  104. package/node_modules/github-from-package/.travis.yml +4 -0
  105. package/node_modules/github-from-package/LICENSE +18 -0
  106. package/node_modules/github-from-package/example/package.json +8 -0
  107. package/node_modules/github-from-package/example/url.js +3 -0
  108. package/node_modules/github-from-package/index.js +17 -0
  109. package/node_modules/github-from-package/package.json +30 -0
  110. package/node_modules/github-from-package/readme.markdown +53 -0
  111. package/node_modules/github-from-package/test/a.json +8 -0
  112. package/node_modules/github-from-package/test/b.json +5 -0
  113. package/node_modules/github-from-package/test/c.json +5 -0
  114. package/node_modules/github-from-package/test/d.json +7 -0
  115. package/node_modules/github-from-package/test/e.json +5 -0
  116. package/node_modules/github-from-package/test/url.js +19 -0
  117. package/node_modules/ieee754/LICENSE +11 -0
  118. package/node_modules/ieee754/README.md +51 -0
  119. package/node_modules/ieee754/index.d.ts +10 -0
  120. package/node_modules/ieee754/index.js +85 -0
  121. package/node_modules/ieee754/package.json +52 -0
  122. package/node_modules/inherits/LICENSE +16 -0
  123. package/node_modules/inherits/README.md +42 -0
  124. package/node_modules/inherits/inherits.js +9 -0
  125. package/node_modules/inherits/inherits_browser.js +27 -0
  126. package/node_modules/inherits/package.json +29 -0
  127. package/node_modules/ini/LICENSE +15 -0
  128. package/node_modules/ini/README.md +102 -0
  129. package/node_modules/ini/ini.js +206 -0
  130. package/node_modules/ini/package.json +33 -0
  131. package/node_modules/mimic-response/index.d.ts +17 -0
  132. package/node_modules/mimic-response/index.js +77 -0
  133. package/node_modules/mimic-response/license +9 -0
  134. package/node_modules/mimic-response/package.json +42 -0
  135. package/node_modules/mimic-response/readme.md +78 -0
  136. package/node_modules/minimist/.eslintrc +29 -0
  137. package/node_modules/minimist/.github/FUNDING.yml +12 -0
  138. package/node_modules/minimist/.nycrc +14 -0
  139. package/node_modules/minimist/CHANGELOG.md +298 -0
  140. package/node_modules/minimist/LICENSE +18 -0
  141. package/node_modules/minimist/README.md +121 -0
  142. package/node_modules/minimist/example/parse.js +4 -0
  143. package/node_modules/minimist/index.js +263 -0
  144. package/node_modules/minimist/package.json +75 -0
  145. package/node_modules/minimist/test/all_bool.js +34 -0
  146. package/node_modules/minimist/test/bool.js +177 -0
  147. package/node_modules/minimist/test/dash.js +43 -0
  148. package/node_modules/minimist/test/default_bool.js +37 -0
  149. package/node_modules/minimist/test/dotted.js +24 -0
  150. package/node_modules/minimist/test/kv_short.js +32 -0
  151. package/node_modules/minimist/test/long.js +33 -0
  152. package/node_modules/minimist/test/num.js +38 -0
  153. package/node_modules/minimist/test/parse.js +209 -0
  154. package/node_modules/minimist/test/parse_modified.js +11 -0
  155. package/node_modules/minimist/test/proto.js +64 -0
  156. package/node_modules/minimist/test/short.js +69 -0
  157. package/node_modules/minimist/test/stop_early.js +17 -0
  158. package/node_modules/minimist/test/unknown.js +104 -0
  159. package/node_modules/minimist/test/whitespace.js +10 -0
  160. package/node_modules/mkdirp-classic/LICENSE +21 -0
  161. package/node_modules/mkdirp-classic/README.md +18 -0
  162. package/node_modules/mkdirp-classic/index.js +98 -0
  163. package/node_modules/mkdirp-classic/package.json +18 -0
  164. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  165. package/node_modules/napi-build-utils/LICENSE +21 -0
  166. package/node_modules/napi-build-utils/README.md +52 -0
  167. package/node_modules/napi-build-utils/index.js +214 -0
  168. package/node_modules/napi-build-utils/index.md +0 -0
  169. package/node_modules/napi-build-utils/package.json +42 -0
  170. package/node_modules/node-abi/LICENSE +21 -0
  171. package/node_modules/node-abi/README.md +54 -0
  172. package/node_modules/node-abi/abi_registry.json +408 -0
  173. package/node_modules/node-abi/index.js +179 -0
  174. package/node_modules/node-abi/package.json +45 -0
  175. package/node_modules/once/LICENSE +15 -0
  176. package/node_modules/once/README.md +79 -0
  177. package/node_modules/once/once.js +42 -0
  178. package/node_modules/once/package.json +33 -0
  179. package/node_modules/prebuild-install/CHANGELOG.md +131 -0
  180. package/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  181. package/node_modules/prebuild-install/LICENSE +21 -0
  182. package/node_modules/prebuild-install/README.md +163 -0
  183. package/node_modules/prebuild-install/asset.js +44 -0
  184. package/node_modules/prebuild-install/bin.js +78 -0
  185. package/node_modules/prebuild-install/download.js +142 -0
  186. package/node_modules/prebuild-install/error.js +14 -0
  187. package/node_modules/prebuild-install/help.txt +16 -0
  188. package/node_modules/prebuild-install/index.js +1 -0
  189. package/node_modules/prebuild-install/log.js +33 -0
  190. package/node_modules/prebuild-install/package.json +67 -0
  191. package/node_modules/prebuild-install/proxy.js +35 -0
  192. package/node_modules/prebuild-install/rc.js +64 -0
  193. package/node_modules/prebuild-install/util.js +143 -0
  194. package/node_modules/pump/.github/FUNDING.yml +2 -0
  195. package/node_modules/pump/.travis.yml +5 -0
  196. package/node_modules/pump/LICENSE +21 -0
  197. package/node_modules/pump/README.md +74 -0
  198. package/node_modules/pump/SECURITY.md +5 -0
  199. package/node_modules/pump/index.js +86 -0
  200. package/node_modules/pump/package.json +24 -0
  201. package/node_modules/pump/test-browser.js +66 -0
  202. package/node_modules/pump/test-node.js +53 -0
  203. package/node_modules/rc/LICENSE.APACHE2 +15 -0
  204. package/node_modules/rc/LICENSE.BSD +26 -0
  205. package/node_modules/rc/LICENSE.MIT +24 -0
  206. package/node_modules/rc/README.md +227 -0
  207. package/node_modules/rc/browser.js +7 -0
  208. package/node_modules/rc/cli.js +4 -0
  209. package/node_modules/rc/index.js +53 -0
  210. package/node_modules/rc/lib/utils.js +104 -0
  211. package/node_modules/rc/package.json +29 -0
  212. package/node_modules/rc/test/ini.js +16 -0
  213. package/node_modules/rc/test/nested-env-vars.js +50 -0
  214. package/node_modules/rc/test/test.js +59 -0
  215. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  216. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  217. package/node_modules/readable-stream/LICENSE +47 -0
  218. package/node_modules/readable-stream/README.md +106 -0
  219. package/node_modules/readable-stream/errors-browser.js +127 -0
  220. package/node_modules/readable-stream/errors.js +116 -0
  221. package/node_modules/readable-stream/experimentalWarning.js +17 -0
  222. package/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  223. package/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  224. package/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  225. package/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  226. package/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  227. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  228. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  229. package/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  230. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  231. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  232. package/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  233. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  234. package/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  235. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  236. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  237. package/node_modules/readable-stream/package.json +68 -0
  238. package/node_modules/readable-stream/readable-browser.js +9 -0
  239. package/node_modules/readable-stream/readable.js +16 -0
  240. package/node_modules/safe-buffer/LICENSE +21 -0
  241. package/node_modules/safe-buffer/README.md +584 -0
  242. package/node_modules/safe-buffer/index.d.ts +187 -0
  243. package/node_modules/safe-buffer/index.js +65 -0
  244. package/node_modules/safe-buffer/package.json +51 -0
  245. package/node_modules/semver/LICENSE +15 -0
  246. package/node_modules/semver/README.md +664 -0
  247. package/node_modules/semver/bin/semver.js +191 -0
  248. package/node_modules/semver/classes/comparator.js +143 -0
  249. package/node_modules/semver/classes/index.js +7 -0
  250. package/node_modules/semver/classes/range.js +556 -0
  251. package/node_modules/semver/classes/semver.js +319 -0
  252. package/node_modules/semver/functions/clean.js +8 -0
  253. package/node_modules/semver/functions/cmp.js +54 -0
  254. package/node_modules/semver/functions/coerce.js +62 -0
  255. package/node_modules/semver/functions/compare-build.js +9 -0
  256. package/node_modules/semver/functions/compare-loose.js +5 -0
  257. package/node_modules/semver/functions/compare.js +7 -0
  258. package/node_modules/semver/functions/diff.js +60 -0
  259. package/node_modules/semver/functions/eq.js +5 -0
  260. package/node_modules/semver/functions/gt.js +5 -0
  261. package/node_modules/semver/functions/gte.js +5 -0
  262. package/node_modules/semver/functions/inc.js +21 -0
  263. package/node_modules/semver/functions/lt.js +5 -0
  264. package/node_modules/semver/functions/lte.js +5 -0
  265. package/node_modules/semver/functions/major.js +5 -0
  266. package/node_modules/semver/functions/minor.js +5 -0
  267. package/node_modules/semver/functions/neq.js +5 -0
  268. package/node_modules/semver/functions/parse.js +18 -0
  269. package/node_modules/semver/functions/patch.js +5 -0
  270. package/node_modules/semver/functions/prerelease.js +8 -0
  271. package/node_modules/semver/functions/rcompare.js +5 -0
  272. package/node_modules/semver/functions/rsort.js +5 -0
  273. package/node_modules/semver/functions/satisfies.js +12 -0
  274. package/node_modules/semver/functions/sort.js +5 -0
  275. package/node_modules/semver/functions/valid.js +8 -0
  276. package/node_modules/semver/index.js +91 -0
  277. package/node_modules/semver/internal/constants.js +37 -0
  278. package/node_modules/semver/internal/debug.js +11 -0
  279. package/node_modules/semver/internal/identifiers.js +25 -0
  280. package/node_modules/semver/internal/lrucache.js +42 -0
  281. package/node_modules/semver/internal/parse-options.js +17 -0
  282. package/node_modules/semver/internal/re.js +223 -0
  283. package/node_modules/semver/package.json +78 -0
  284. package/node_modules/semver/preload.js +4 -0
  285. package/node_modules/semver/range.bnf +16 -0
  286. package/node_modules/semver/ranges/gtr.js +6 -0
  287. package/node_modules/semver/ranges/intersects.js +9 -0
  288. package/node_modules/semver/ranges/ltr.js +6 -0
  289. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  290. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  291. package/node_modules/semver/ranges/min-version.js +63 -0
  292. package/node_modules/semver/ranges/outside.js +82 -0
  293. package/node_modules/semver/ranges/simplify.js +49 -0
  294. package/node_modules/semver/ranges/subset.js +249 -0
  295. package/node_modules/semver/ranges/to-comparators.js +10 -0
  296. package/node_modules/semver/ranges/valid.js +13 -0
  297. package/node_modules/simple-concat/.travis.yml +3 -0
  298. package/node_modules/simple-concat/LICENSE +20 -0
  299. package/node_modules/simple-concat/README.md +44 -0
  300. package/node_modules/simple-concat/index.js +15 -0
  301. package/node_modules/simple-concat/package.json +47 -0
  302. package/node_modules/simple-concat/test/basic.js +41 -0
  303. package/node_modules/simple-get/.github/dependabot.yml +15 -0
  304. package/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  305. package/node_modules/simple-get/LICENSE +20 -0
  306. package/node_modules/simple-get/README.md +333 -0
  307. package/node_modules/simple-get/index.js +108 -0
  308. package/node_modules/simple-get/package.json +67 -0
  309. package/node_modules/string_decoder/LICENSE +48 -0
  310. package/node_modules/string_decoder/README.md +47 -0
  311. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  312. package/node_modules/string_decoder/package.json +34 -0
  313. package/node_modules/strip-json-comments/index.js +70 -0
  314. package/node_modules/strip-json-comments/license +21 -0
  315. package/node_modules/strip-json-comments/package.json +42 -0
  316. package/node_modules/strip-json-comments/readme.md +64 -0
  317. package/node_modules/tar-fs/.travis.yml +6 -0
  318. package/node_modules/tar-fs/LICENSE +21 -0
  319. package/node_modules/tar-fs/README.md +165 -0
  320. package/node_modules/tar-fs/index.js +358 -0
  321. package/node_modules/tar-fs/package.json +41 -0
  322. package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  323. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  324. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  325. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  326. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  327. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  328. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  329. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  330. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  331. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  332. package/node_modules/tar-fs/test/index.js +346 -0
  333. package/node_modules/tar-stream/LICENSE +21 -0
  334. package/node_modules/tar-stream/README.md +168 -0
  335. package/node_modules/tar-stream/extract.js +257 -0
  336. package/node_modules/tar-stream/headers.js +295 -0
  337. package/node_modules/tar-stream/index.js +2 -0
  338. package/node_modules/tar-stream/pack.js +255 -0
  339. package/node_modules/tar-stream/package.json +58 -0
  340. package/node_modules/tar-stream/sandbox.js +11 -0
  341. package/node_modules/tunnel-agent/LICENSE +55 -0
  342. package/node_modules/tunnel-agent/README.md +4 -0
  343. package/node_modules/tunnel-agent/index.js +244 -0
  344. package/node_modules/tunnel-agent/package.json +22 -0
  345. package/node_modules/util-deprecate/History.md +16 -0
  346. package/node_modules/util-deprecate/LICENSE +24 -0
  347. package/node_modules/util-deprecate/README.md +53 -0
  348. package/node_modules/util-deprecate/browser.js +67 -0
  349. package/node_modules/util-deprecate/node.js +6 -0
  350. package/node_modules/util-deprecate/package.json +27 -0
  351. package/node_modules/wrappy/LICENSE +15 -0
  352. package/node_modules/wrappy/README.md +36 -0
  353. package/node_modules/wrappy/package.json +29 -0
  354. package/node_modules/wrappy/wrappy.js +33 -0
  355. 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,11 @@
1
+ 'use strict';
2
+
3
+ var parse = require('../');
4
+ var test = require('tape');
5
+
6
+ test('parse with modifier functions', function (t) {
7
+ t.plan(1);
8
+
9
+ var argv = parse(['-b', '123'], { boolean: 'b' });
10
+ t.deepEqual(argv, { b: true, _: [123] });
11
+ });
@@ -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
+ });
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var parse = require('../');
4
+ var test = require('tape');
5
+
6
+ test('whitespace should be whitespace', function (t) {
7
+ t.plan(1);
8
+ var x = parse(['-x', '\t']).x;
9
+ t.equal(x, '\t');
10
+ });