fsevents 1.2.12 → 1.2.13

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 (498) hide show
  1. package/.travis.yml +6 -4
  2. package/install.js +13 -0
  3. package/package.json +3 -5
  4. package/node_modules/abbrev/LICENSE +0 -46
  5. package/node_modules/abbrev/README.md +0 -23
  6. package/node_modules/abbrev/abbrev.js +0 -61
  7. package/node_modules/abbrev/package.json +0 -56
  8. package/node_modules/ansi-regex/index.js +0 -4
  9. package/node_modules/ansi-regex/license +0 -21
  10. package/node_modules/ansi-regex/package.json +0 -108
  11. package/node_modules/ansi-regex/readme.md +0 -39
  12. package/node_modules/aproba/LICENSE +0 -14
  13. package/node_modules/aproba/README.md +0 -94
  14. package/node_modules/aproba/index.js +0 -105
  15. package/node_modules/aproba/package.json +0 -62
  16. package/node_modules/are-we-there-yet/CHANGES.md +0 -37
  17. package/node_modules/are-we-there-yet/LICENSE +0 -5
  18. package/node_modules/are-we-there-yet/README.md +0 -195
  19. package/node_modules/are-we-there-yet/index.js +0 -4
  20. package/node_modules/are-we-there-yet/package.json +0 -63
  21. package/node_modules/are-we-there-yet/tracker-base.js +0 -11
  22. package/node_modules/are-we-there-yet/tracker-group.js +0 -107
  23. package/node_modules/are-we-there-yet/tracker-stream.js +0 -36
  24. package/node_modules/are-we-there-yet/tracker.js +0 -30
  25. package/node_modules/balanced-match/.npmignore +0 -5
  26. package/node_modules/balanced-match/LICENSE.md +0 -21
  27. package/node_modules/balanced-match/README.md +0 -91
  28. package/node_modules/balanced-match/index.js +0 -59
  29. package/node_modules/balanced-match/package.json +0 -77
  30. package/node_modules/brace-expansion/LICENSE +0 -21
  31. package/node_modules/brace-expansion/README.md +0 -129
  32. package/node_modules/brace-expansion/index.js +0 -201
  33. package/node_modules/brace-expansion/package.json +0 -75
  34. package/node_modules/chownr/LICENSE +0 -15
  35. package/node_modules/chownr/README.md +0 -3
  36. package/node_modules/chownr/chownr.js +0 -167
  37. package/node_modules/chownr/package.json +0 -62
  38. package/node_modules/code-point-at/index.js +0 -32
  39. package/node_modules/code-point-at/license +0 -21
  40. package/node_modules/code-point-at/package.json +0 -70
  41. package/node_modules/code-point-at/readme.md +0 -32
  42. package/node_modules/concat-map/.travis.yml +0 -4
  43. package/node_modules/concat-map/LICENSE +0 -18
  44. package/node_modules/concat-map/README.markdown +0 -62
  45. package/node_modules/concat-map/example/map.js +0 -6
  46. package/node_modules/concat-map/index.js +0 -13
  47. package/node_modules/concat-map/package.json +0 -88
  48. package/node_modules/concat-map/test/map.js +0 -39
  49. package/node_modules/console-control-strings/LICENSE +0 -13
  50. package/node_modules/console-control-strings/README.md +0 -145
  51. package/node_modules/console-control-strings/README.md~ +0 -140
  52. package/node_modules/console-control-strings/index.js +0 -125
  53. package/node_modules/console-control-strings/package.json +0 -61
  54. package/node_modules/core-util-is/LICENSE +0 -19
  55. package/node_modules/core-util-is/README.md +0 -3
  56. package/node_modules/core-util-is/float.patch +0 -604
  57. package/node_modules/core-util-is/lib/util.js +0 -107
  58. package/node_modules/core-util-is/package.json +0 -62
  59. package/node_modules/core-util-is/test.js +0 -68
  60. package/node_modules/debug/CHANGELOG.md +0 -395
  61. package/node_modules/debug/LICENSE +0 -19
  62. package/node_modules/debug/README.md +0 -437
  63. package/node_modules/debug/dist/debug.js +0 -886
  64. package/node_modules/debug/node.js +0 -1
  65. package/node_modules/debug/package.json +0 -90
  66. package/node_modules/debug/src/browser.js +0 -180
  67. package/node_modules/debug/src/common.js +0 -249
  68. package/node_modules/debug/src/index.js +0 -12
  69. package/node_modules/debug/src/node.js +0 -174
  70. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  71. package/node_modules/deep-extend/LICENSE +0 -20
  72. package/node_modules/deep-extend/README.md +0 -91
  73. package/node_modules/deep-extend/index.js +0 -1
  74. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  75. package/node_modules/deep-extend/package.json +0 -92
  76. package/node_modules/delegates/.npmignore +0 -1
  77. package/node_modules/delegates/History.md +0 -22
  78. package/node_modules/delegates/License +0 -20
  79. package/node_modules/delegates/Makefile +0 -8
  80. package/node_modules/delegates/Readme.md +0 -94
  81. package/node_modules/delegates/index.js +0 -121
  82. package/node_modules/delegates/package.json +0 -48
  83. package/node_modules/delegates/test/index.js +0 -94
  84. package/node_modules/detect-libc/.npmignore +0 -7
  85. package/node_modules/detect-libc/LICENSE +0 -201
  86. package/node_modules/detect-libc/README.md +0 -78
  87. package/node_modules/detect-libc/bin/detect-libc.js +0 -18
  88. package/node_modules/detect-libc/lib/detect-libc.js +0 -92
  89. package/node_modules/detect-libc/package.json +0 -70
  90. package/node_modules/fs-minipass/LICENSE +0 -15
  91. package/node_modules/fs-minipass/README.md +0 -70
  92. package/node_modules/fs-minipass/index.js +0 -387
  93. package/node_modules/fs-minipass/package.json +0 -65
  94. package/node_modules/fs.realpath/LICENSE +0 -43
  95. package/node_modules/fs.realpath/README.md +0 -33
  96. package/node_modules/fs.realpath/index.js +0 -66
  97. package/node_modules/fs.realpath/old.js +0 -303
  98. package/node_modules/fs.realpath/package.json +0 -59
  99. package/node_modules/gauge/CHANGELOG.md +0 -160
  100. package/node_modules/gauge/LICENSE +0 -13
  101. package/node_modules/gauge/README.md +0 -399
  102. package/node_modules/gauge/base-theme.js +0 -14
  103. package/node_modules/gauge/error.js +0 -24
  104. package/node_modules/gauge/has-color.js +0 -12
  105. package/node_modules/gauge/index.js +0 -233
  106. package/node_modules/gauge/package.json +0 -91
  107. package/node_modules/gauge/plumbing.js +0 -48
  108. package/node_modules/gauge/process.js +0 -3
  109. package/node_modules/gauge/progress-bar.js +0 -35
  110. package/node_modules/gauge/render-template.js +0 -181
  111. package/node_modules/gauge/set-immediate.js +0 -7
  112. package/node_modules/gauge/set-interval.js +0 -3
  113. package/node_modules/gauge/spin.js +0 -5
  114. package/node_modules/gauge/template-item.js +0 -73
  115. package/node_modules/gauge/theme-set.js +0 -115
  116. package/node_modules/gauge/themes.js +0 -54
  117. package/node_modules/gauge/wide-truncate.js +0 -25
  118. package/node_modules/glob/LICENSE +0 -21
  119. package/node_modules/glob/README.md +0 -375
  120. package/node_modules/glob/changelog.md +0 -67
  121. package/node_modules/glob/common.js +0 -240
  122. package/node_modules/glob/glob.js +0 -790
  123. package/node_modules/glob/package.json +0 -79
  124. package/node_modules/glob/sync.js +0 -486
  125. package/node_modules/has-unicode/LICENSE +0 -14
  126. package/node_modules/has-unicode/README.md +0 -43
  127. package/node_modules/has-unicode/index.js +0 -16
  128. package/node_modules/has-unicode/package.json +0 -58
  129. package/node_modules/iconv-lite/Changelog.md +0 -162
  130. package/node_modules/iconv-lite/LICENSE +0 -21
  131. package/node_modules/iconv-lite/README.md +0 -156
  132. package/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  133. package/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  134. package/node_modules/iconv-lite/encodings/index.js +0 -22
  135. package/node_modules/iconv-lite/encodings/internal.js +0 -188
  136. package/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  137. package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  138. package/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  139. package/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  140. package/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  141. package/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  142. package/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  143. package/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  144. package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  145. package/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  146. package/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  147. package/node_modules/iconv-lite/encodings/utf16.js +0 -177
  148. package/node_modules/iconv-lite/encodings/utf7.js +0 -290
  149. package/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  150. package/node_modules/iconv-lite/lib/extend-node.js +0 -217
  151. package/node_modules/iconv-lite/lib/index.d.ts +0 -24
  152. package/node_modules/iconv-lite/lib/index.js +0 -153
  153. package/node_modules/iconv-lite/lib/streams.js +0 -121
  154. package/node_modules/iconv-lite/package.json +0 -76
  155. package/node_modules/ignore-walk/LICENSE +0 -15
  156. package/node_modules/ignore-walk/README.md +0 -60
  157. package/node_modules/ignore-walk/index.js +0 -269
  158. package/node_modules/ignore-walk/package.json +0 -74
  159. package/node_modules/inflight/LICENSE +0 -15
  160. package/node_modules/inflight/README.md +0 -37
  161. package/node_modules/inflight/inflight.js +0 -54
  162. package/node_modules/inflight/package.json +0 -58
  163. package/node_modules/inherits/LICENSE +0 -16
  164. package/node_modules/inherits/README.md +0 -42
  165. package/node_modules/inherits/inherits.js +0 -9
  166. package/node_modules/inherits/inherits_browser.js +0 -27
  167. package/node_modules/inherits/package.json +0 -62
  168. package/node_modules/ini/LICENSE +0 -15
  169. package/node_modules/ini/README.md +0 -102
  170. package/node_modules/ini/ini.js +0 -194
  171. package/node_modules/ini/package.json +0 -63
  172. package/node_modules/is-fullwidth-code-point/index.js +0 -46
  173. package/node_modules/is-fullwidth-code-point/license +0 -21
  174. package/node_modules/is-fullwidth-code-point/package.json +0 -77
  175. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  176. package/node_modules/isarray/.npmignore +0 -1
  177. package/node_modules/isarray/.travis.yml +0 -4
  178. package/node_modules/isarray/Makefile +0 -6
  179. package/node_modules/isarray/README.md +0 -60
  180. package/node_modules/isarray/component.json +0 -19
  181. package/node_modules/isarray/index.js +0 -5
  182. package/node_modules/isarray/package.json +0 -73
  183. package/node_modules/isarray/test.js +0 -20
  184. package/node_modules/minimatch/LICENSE +0 -15
  185. package/node_modules/minimatch/README.md +0 -209
  186. package/node_modules/minimatch/minimatch.js +0 -923
  187. package/node_modules/minimatch/package.json +0 -64
  188. package/node_modules/minimist/.travis.yml +0 -8
  189. package/node_modules/minimist/LICENSE +0 -18
  190. package/node_modules/minimist/example/parse.js +0 -2
  191. package/node_modules/minimist/index.js +0 -245
  192. package/node_modules/minimist/package.json +0 -74
  193. package/node_modules/minimist/readme.markdown +0 -95
  194. package/node_modules/minimist/test/all_bool.js +0 -32
  195. package/node_modules/minimist/test/bool.js +0 -178
  196. package/node_modules/minimist/test/dash.js +0 -31
  197. package/node_modules/minimist/test/default_bool.js +0 -35
  198. package/node_modules/minimist/test/dotted.js +0 -22
  199. package/node_modules/minimist/test/kv_short.js +0 -16
  200. package/node_modules/minimist/test/long.js +0 -31
  201. package/node_modules/minimist/test/num.js +0 -36
  202. package/node_modules/minimist/test/parse.js +0 -197
  203. package/node_modules/minimist/test/parse_modified.js +0 -9
  204. package/node_modules/minimist/test/proto.js +0 -44
  205. package/node_modules/minimist/test/short.js +0 -67
  206. package/node_modules/minimist/test/stop_early.js +0 -15
  207. package/node_modules/minimist/test/unknown.js +0 -102
  208. package/node_modules/minimist/test/whitespace.js +0 -8
  209. package/node_modules/minipass/LICENSE +0 -15
  210. package/node_modules/minipass/README.md +0 -606
  211. package/node_modules/minipass/index.js +0 -537
  212. package/node_modules/minipass/package.json +0 -72
  213. package/node_modules/minizlib/LICENSE +0 -26
  214. package/node_modules/minizlib/README.md +0 -53
  215. package/node_modules/minizlib/constants.js +0 -115
  216. package/node_modules/minizlib/index.js +0 -320
  217. package/node_modules/minizlib/package.json +0 -71
  218. package/node_modules/mkdirp/LICENSE +0 -21
  219. package/node_modules/mkdirp/bin/cmd.js +0 -33
  220. package/node_modules/mkdirp/bin/usage.txt +0 -12
  221. package/node_modules/mkdirp/index.js +0 -98
  222. package/node_modules/mkdirp/package.json +0 -70
  223. package/node_modules/mkdirp/readme.markdown +0 -100
  224. package/node_modules/ms/index.js +0 -162
  225. package/node_modules/ms/license.md +0 -21
  226. package/node_modules/ms/package.json +0 -69
  227. package/node_modules/ms/readme.md +0 -60
  228. package/node_modules/needle/.github/workflows/nodejs.yml +0 -27
  229. package/node_modules/needle/README.md +0 -593
  230. package/node_modules/needle/bin/needle +0 -40
  231. package/node_modules/needle/examples/deflated-stream.js +0 -22
  232. package/node_modules/needle/examples/digest-auth.js +0 -16
  233. package/node_modules/needle/examples/download-to-file.js +0 -18
  234. package/node_modules/needle/examples/multipart-stream.js +0 -25
  235. package/node_modules/needle/examples/parsed-stream.js +0 -23
  236. package/node_modules/needle/examples/parsed-stream2.js +0 -21
  237. package/node_modules/needle/examples/stream-events.js +0 -23
  238. package/node_modules/needle/examples/stream-to-file.js +0 -14
  239. package/node_modules/needle/examples/upload-image.js +0 -51
  240. package/node_modules/needle/lib/auth.js +0 -110
  241. package/node_modules/needle/lib/cookies.js +0 -79
  242. package/node_modules/needle/lib/decoder.js +0 -53
  243. package/node_modules/needle/lib/multipart.js +0 -98
  244. package/node_modules/needle/lib/needle.js +0 -803
  245. package/node_modules/needle/lib/parsers.js +0 -120
  246. package/node_modules/needle/lib/querystring.js +0 -49
  247. package/node_modules/needle/license.txt +0 -19
  248. package/node_modules/needle/package.json +0 -102
  249. package/node_modules/needle/test/basic_auth_spec.js +0 -196
  250. package/node_modules/needle/test/compression_spec.js +0 -112
  251. package/node_modules/needle/test/cookies_spec.js +0 -305
  252. package/node_modules/needle/test/decoder_spec.js +0 -86
  253. package/node_modules/needle/test/errors_spec.js +0 -286
  254. package/node_modules/needle/test/headers_spec.js +0 -198
  255. package/node_modules/needle/test/helpers.js +0 -72
  256. package/node_modules/needle/test/long_string_spec.js +0 -34
  257. package/node_modules/needle/test/output_spec.js +0 -254
  258. package/node_modules/needle/test/parsing_spec.js +0 -494
  259. package/node_modules/needle/test/post_data_spec.js +0 -1021
  260. package/node_modules/needle/test/proxy_spec.js +0 -202
  261. package/node_modules/needle/test/querystring_spec.js +0 -128
  262. package/node_modules/needle/test/redirect_spec.js +0 -392
  263. package/node_modules/needle/test/redirect_with_timeout.js +0 -45
  264. package/node_modules/needle/test/request_stream_spec.js +0 -202
  265. package/node_modules/needle/test/response_stream_spec.js +0 -139
  266. package/node_modules/needle/test/socket_pool_spec.js +0 -66
  267. package/node_modules/needle/test/url_spec.js +0 -155
  268. package/node_modules/needle/test/utils/formidable.js +0 -17
  269. package/node_modules/needle/test/utils/proxy.js +0 -62
  270. package/node_modules/needle/test/utils/test.js +0 -104
  271. package/node_modules/node-pre-gyp/CHANGELOG.md +0 -443
  272. package/node_modules/node-pre-gyp/LICENSE +0 -27
  273. package/node_modules/node-pre-gyp/README.md +0 -693
  274. package/node_modules/node-pre-gyp/appveyor.yml +0 -30
  275. package/node_modules/node-pre-gyp/bin/node-pre-gyp +0 -134
  276. package/node_modules/node-pre-gyp/bin/node-pre-gyp.cmd +0 -2
  277. package/node_modules/node-pre-gyp/contributing.md +0 -10
  278. package/node_modules/node-pre-gyp/lib/build.js +0 -51
  279. package/node_modules/node-pre-gyp/lib/clean.js +0 -32
  280. package/node_modules/node-pre-gyp/lib/configure.js +0 -52
  281. package/node_modules/node-pre-gyp/lib/info.js +0 -40
  282. package/node_modules/node-pre-gyp/lib/install.js +0 -285
  283. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +0 -203
  284. package/node_modules/node-pre-gyp/lib/package.js +0 -56
  285. package/node_modules/node-pre-gyp/lib/pre-binding.js +0 -30
  286. package/node_modules/node-pre-gyp/lib/publish.js +0 -79
  287. package/node_modules/node-pre-gyp/lib/rebuild.js +0 -21
  288. package/node_modules/node-pre-gyp/lib/reinstall.js +0 -20
  289. package/node_modules/node-pre-gyp/lib/reveal.js +0 -33
  290. package/node_modules/node-pre-gyp/lib/testbinary.js +0 -81
  291. package/node_modules/node-pre-gyp/lib/testpackage.js +0 -55
  292. package/node_modules/node-pre-gyp/lib/unpublish.js +0 -43
  293. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +0 -2070
  294. package/node_modules/node-pre-gyp/lib/util/compile.js +0 -87
  295. package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +0 -103
  296. package/node_modules/node-pre-gyp/lib/util/napi.js +0 -205
  297. package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html +0 -26
  298. package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/package.json +0 -9
  299. package/node_modules/node-pre-gyp/lib/util/s3_setup.js +0 -27
  300. package/node_modules/node-pre-gyp/lib/util/versioning.js +0 -331
  301. package/node_modules/node-pre-gyp/package.json +0 -87
  302. package/node_modules/nopt/CHANGELOG.md +0 -58
  303. package/node_modules/nopt/LICENSE +0 -15
  304. package/node_modules/nopt/README.md +0 -213
  305. package/node_modules/nopt/bin/nopt.js +0 -54
  306. package/node_modules/nopt/lib/nopt.js +0 -441
  307. package/node_modules/nopt/package.json +0 -65
  308. package/node_modules/npm-bundled/LICENSE +0 -15
  309. package/node_modules/npm-bundled/README.md +0 -48
  310. package/node_modules/npm-bundled/index.js +0 -249
  311. package/node_modules/npm-bundled/package.json +0 -63
  312. package/node_modules/npm-normalize-package-bin/.github/settings.yml +0 -2
  313. package/node_modules/npm-normalize-package-bin/.npmignore +0 -24
  314. package/node_modules/npm-normalize-package-bin/LICENSE +0 -15
  315. package/node_modules/npm-normalize-package-bin/README.md +0 -14
  316. package/node_modules/npm-normalize-package-bin/index.js +0 -60
  317. package/node_modules/npm-normalize-package-bin/package-lock.json +0 -3529
  318. package/node_modules/npm-normalize-package-bin/package.json +0 -58
  319. package/node_modules/npm-normalize-package-bin/test/array.js +0 -37
  320. package/node_modules/npm-normalize-package-bin/test/nobin.js +0 -35
  321. package/node_modules/npm-normalize-package-bin/test/object.js +0 -141
  322. package/node_modules/npm-normalize-package-bin/test/string.js +0 -37
  323. package/node_modules/npm-packlist/LICENSE +0 -15
  324. package/node_modules/npm-packlist/README.md +0 -68
  325. package/node_modules/npm-packlist/index.js +0 -289
  326. package/node_modules/npm-packlist/package.json +0 -74
  327. package/node_modules/npmlog/CHANGELOG.md +0 -49
  328. package/node_modules/npmlog/LICENSE +0 -15
  329. package/node_modules/npmlog/README.md +0 -216
  330. package/node_modules/npmlog/log.js +0 -309
  331. package/node_modules/npmlog/package.json +0 -61
  332. package/node_modules/number-is-nan/index.js +0 -4
  333. package/node_modules/number-is-nan/license +0 -21
  334. package/node_modules/number-is-nan/package.json +0 -67
  335. package/node_modules/number-is-nan/readme.md +0 -28
  336. package/node_modules/object-assign/index.js +0 -90
  337. package/node_modules/object-assign/license +0 -21
  338. package/node_modules/object-assign/package.json +0 -74
  339. package/node_modules/object-assign/readme.md +0 -61
  340. package/node_modules/once/LICENSE +0 -15
  341. package/node_modules/once/README.md +0 -79
  342. package/node_modules/once/once.js +0 -42
  343. package/node_modules/once/package.json +0 -67
  344. package/node_modules/os-homedir/index.js +0 -24
  345. package/node_modules/os-homedir/license +0 -21
  346. package/node_modules/os-homedir/package.json +0 -73
  347. package/node_modules/os-homedir/readme.md +0 -31
  348. package/node_modules/os-tmpdir/index.js +0 -25
  349. package/node_modules/os-tmpdir/license +0 -21
  350. package/node_modules/os-tmpdir/package.json +0 -73
  351. package/node_modules/os-tmpdir/readme.md +0 -32
  352. package/node_modules/osenv/LICENSE +0 -15
  353. package/node_modules/osenv/README.md +0 -63
  354. package/node_modules/osenv/osenv.js +0 -72
  355. package/node_modules/osenv/package.json +0 -73
  356. package/node_modules/path-is-absolute/index.js +0 -20
  357. package/node_modules/path-is-absolute/license +0 -21
  358. package/node_modules/path-is-absolute/package.json +0 -75
  359. package/node_modules/path-is-absolute/readme.md +0 -59
  360. package/node_modules/process-nextick-args/index.js +0 -45
  361. package/node_modules/process-nextick-args/license.md +0 -19
  362. package/node_modules/process-nextick-args/package.json +0 -50
  363. package/node_modules/process-nextick-args/readme.md +0 -18
  364. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  365. package/node_modules/rc/LICENSE.BSD +0 -26
  366. package/node_modules/rc/LICENSE.MIT +0 -24
  367. package/node_modules/rc/README.md +0 -227
  368. package/node_modules/rc/browser.js +0 -7
  369. package/node_modules/rc/cli.js +0 -4
  370. package/node_modules/rc/index.js +0 -53
  371. package/node_modules/rc/lib/utils.js +0 -104
  372. package/node_modules/rc/package.json +0 -64
  373. package/node_modules/rc/test/ini.js +0 -16
  374. package/node_modules/rc/test/nested-env-vars.js +0 -50
  375. package/node_modules/rc/test/test.js +0 -59
  376. package/node_modules/readable-stream/.travis.yml +0 -34
  377. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  378. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  379. package/node_modules/readable-stream/LICENSE +0 -47
  380. package/node_modules/readable-stream/README.md +0 -58
  381. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  382. package/node_modules/readable-stream/duplex-browser.js +0 -1
  383. package/node_modules/readable-stream/duplex.js +0 -1
  384. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  385. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  386. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  387. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  388. package/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  389. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  390. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  391. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  392. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  393. package/node_modules/readable-stream/package.json +0 -81
  394. package/node_modules/readable-stream/passthrough.js +0 -1
  395. package/node_modules/readable-stream/readable-browser.js +0 -7
  396. package/node_modules/readable-stream/readable.js +0 -19
  397. package/node_modules/readable-stream/transform.js +0 -1
  398. package/node_modules/readable-stream/writable-browser.js +0 -1
  399. package/node_modules/readable-stream/writable.js +0 -8
  400. package/node_modules/rimraf/LICENSE +0 -15
  401. package/node_modules/rimraf/README.md +0 -101
  402. package/node_modules/rimraf/bin.js +0 -50
  403. package/node_modules/rimraf/package.json +0 -67
  404. package/node_modules/rimraf/rimraf.js +0 -372
  405. package/node_modules/safe-buffer/LICENSE +0 -21
  406. package/node_modules/safe-buffer/README.md +0 -584
  407. package/node_modules/safe-buffer/index.d.ts +0 -187
  408. package/node_modules/safe-buffer/index.js +0 -62
  409. package/node_modules/safe-buffer/package.json +0 -65
  410. package/node_modules/safer-buffer/LICENSE +0 -21
  411. package/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  412. package/node_modules/safer-buffer/Readme.md +0 -156
  413. package/node_modules/safer-buffer/dangerous.js +0 -58
  414. package/node_modules/safer-buffer/package.json +0 -60
  415. package/node_modules/safer-buffer/safer.js +0 -77
  416. package/node_modules/safer-buffer/tests.js +0 -406
  417. package/node_modules/sax/LICENSE +0 -41
  418. package/node_modules/sax/README.md +0 -225
  419. package/node_modules/sax/lib/sax.js +0 -1565
  420. package/node_modules/sax/package.json +0 -61
  421. package/node_modules/semver/CHANGELOG.md +0 -39
  422. package/node_modules/semver/LICENSE +0 -15
  423. package/node_modules/semver/README.md +0 -412
  424. package/node_modules/semver/bin/semver +0 -160
  425. package/node_modules/semver/package.json +0 -60
  426. package/node_modules/semver/range.bnf +0 -16
  427. package/node_modules/semver/semver.js +0 -1483
  428. package/node_modules/set-blocking/CHANGELOG.md +0 -26
  429. package/node_modules/set-blocking/LICENSE.txt +0 -14
  430. package/node_modules/set-blocking/README.md +0 -31
  431. package/node_modules/set-blocking/index.js +0 -7
  432. package/node_modules/set-blocking/package.json +0 -70
  433. package/node_modules/signal-exit/CHANGELOG.md +0 -27
  434. package/node_modules/signal-exit/LICENSE.txt +0 -16
  435. package/node_modules/signal-exit/README.md +0 -40
  436. package/node_modules/signal-exit/index.js +0 -157
  437. package/node_modules/signal-exit/package.json +0 -66
  438. package/node_modules/signal-exit/signals.js +0 -53
  439. package/node_modules/string-width/index.js +0 -37
  440. package/node_modules/string-width/license +0 -21
  441. package/node_modules/string-width/package.json +0 -89
  442. package/node_modules/string-width/readme.md +0 -42
  443. package/node_modules/string_decoder/.travis.yml +0 -50
  444. package/node_modules/string_decoder/LICENSE +0 -48
  445. package/node_modules/string_decoder/README.md +0 -47
  446. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  447. package/node_modules/string_decoder/package.json +0 -59
  448. package/node_modules/strip-ansi/index.js +0 -6
  449. package/node_modules/strip-ansi/license +0 -21
  450. package/node_modules/strip-ansi/package.json +0 -102
  451. package/node_modules/strip-ansi/readme.md +0 -33
  452. package/node_modules/strip-json-comments/index.js +0 -70
  453. package/node_modules/strip-json-comments/license +0 -21
  454. package/node_modules/strip-json-comments/package.json +0 -74
  455. package/node_modules/strip-json-comments/readme.md +0 -64
  456. package/node_modules/tar/LICENSE +0 -15
  457. package/node_modules/tar/README.md +0 -954
  458. package/node_modules/tar/index.js +0 -18
  459. package/node_modules/tar/lib/buffer.js +0 -11
  460. package/node_modules/tar/lib/create.js +0 -105
  461. package/node_modules/tar/lib/extract.js +0 -112
  462. package/node_modules/tar/lib/header.js +0 -289
  463. package/node_modules/tar/lib/high-level-opt.js +0 -29
  464. package/node_modules/tar/lib/large-numbers.js +0 -97
  465. package/node_modules/tar/lib/list.js +0 -130
  466. package/node_modules/tar/lib/mkdir.js +0 -206
  467. package/node_modules/tar/lib/mode-fix.js +0 -14
  468. package/node_modules/tar/lib/pack.js +0 -404
  469. package/node_modules/tar/lib/parse.js +0 -428
  470. package/node_modules/tar/lib/pax.js +0 -146
  471. package/node_modules/tar/lib/read-entry.js +0 -98
  472. package/node_modules/tar/lib/replace.js +0 -220
  473. package/node_modules/tar/lib/types.js +0 -44
  474. package/node_modules/tar/lib/unpack.js +0 -621
  475. package/node_modules/tar/lib/update.js +0 -36
  476. package/node_modules/tar/lib/warn-mixin.js +0 -14
  477. package/node_modules/tar/lib/winchars.js +0 -23
  478. package/node_modules/tar/lib/write-entry.js +0 -422
  479. package/node_modules/tar/package.json +0 -82
  480. package/node_modules/util-deprecate/History.md +0 -16
  481. package/node_modules/util-deprecate/LICENSE +0 -24
  482. package/node_modules/util-deprecate/README.md +0 -53
  483. package/node_modules/util-deprecate/browser.js +0 -67
  484. package/node_modules/util-deprecate/node.js +0 -6
  485. package/node_modules/util-deprecate/package.json +0 -56
  486. package/node_modules/wide-align/LICENSE +0 -14
  487. package/node_modules/wide-align/README.md +0 -47
  488. package/node_modules/wide-align/align.js +0 -65
  489. package/node_modules/wide-align/package.json +0 -66
  490. package/node_modules/wrappy/LICENSE +0 -15
  491. package/node_modules/wrappy/README.md +0 -36
  492. package/node_modules/wrappy/package.json +0 -59
  493. package/node_modules/wrappy/wrappy.js +0 -33
  494. package/node_modules/yallist/LICENSE +0 -15
  495. package/node_modules/yallist/README.md +0 -204
  496. package/node_modules/yallist/iterator.js +0 -8
  497. package/node_modules/yallist/package.json +0 -63
  498. package/node_modules/yallist/yallist.js +0 -426
@@ -1,213 +0,0 @@
1
- If you want to write an option parser, and have it be good, there are
2
- two ways to do it. The Right Way, and the Wrong Way.
3
-
4
- The Wrong Way is to sit down and write an option parser. We've all done
5
- that.
6
-
7
- The Right Way is to write some complex configurable program with so many
8
- options that you hit the limit of your frustration just trying to
9
- manage them all, and defer it with duct-tape solutions until you see
10
- exactly to the core of the problem, and finally snap and write an
11
- awesome option parser.
12
-
13
- If you want to write an option parser, don't write an option parser.
14
- Write a package manager, or a source control system, or a service
15
- restarter, or an operating system. You probably won't end up with a
16
- good one of those, but if you don't give up, and you are relentless and
17
- diligent enough in your procrastination, you may just end up with a very
18
- nice option parser.
19
-
20
- ## USAGE
21
-
22
- ```javascript
23
- // my-program.js
24
- var nopt = require("nopt")
25
- , Stream = require("stream").Stream
26
- , path = require("path")
27
- , knownOpts = { "foo" : [String, null]
28
- , "bar" : [Stream, Number]
29
- , "baz" : path
30
- , "bloo" : [ "big", "medium", "small" ]
31
- , "flag" : Boolean
32
- , "pick" : Boolean
33
- , "many1" : [String, Array]
34
- , "many2" : [path, Array]
35
- }
36
- , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]
37
- , "b7" : ["--bar", "7"]
38
- , "m" : ["--bloo", "medium"]
39
- , "p" : ["--pick"]
40
- , "f" : ["--flag"]
41
- }
42
- // everything is optional.
43
- // knownOpts and shorthands default to {}
44
- // arg list defaults to process.argv
45
- // slice defaults to 2
46
- , parsed = nopt(knownOpts, shortHands, process.argv, 2)
47
- console.log(parsed)
48
- ```
49
-
50
- This would give you support for any of the following:
51
-
52
- ```console
53
- $ node my-program.js --foo "blerp" --no-flag
54
- { "foo" : "blerp", "flag" : false }
55
-
56
- $ node my-program.js ---bar 7 --foo "Mr. Hand" --flag
57
- { bar: 7, foo: "Mr. Hand", flag: true }
58
-
59
- $ node my-program.js --foo "blerp" -f -----p
60
- { foo: "blerp", flag: true, pick: true }
61
-
62
- $ node my-program.js -fp --foofoo
63
- { foo: "Mr. Foo", flag: true, pick: true }
64
-
65
- $ node my-program.js --foofoo -- -fp # -- stops the flag parsing.
66
- { foo: "Mr. Foo", argv: { remain: ["-fp"] } }
67
-
68
- $ node my-program.js --blatzk -fp # unknown opts are ok.
69
- { blatzk: true, flag: true, pick: true }
70
-
71
- $ node my-program.js --blatzk=1000 -fp # but you need to use = if they have a value
72
- { blatzk: 1000, flag: true, pick: true }
73
-
74
- $ node my-program.js --no-blatzk -fp # unless they start with "no-"
75
- { blatzk: false, flag: true, pick: true }
76
-
77
- $ node my-program.js --baz b/a/z # known paths are resolved.
78
- { baz: "/Users/isaacs/b/a/z" }
79
-
80
- # if Array is one of the types, then it can take many
81
- # values, and will always be an array. The other types provided
82
- # specify what types are allowed in the list.
83
-
84
- $ node my-program.js --many1 5 --many1 null --many1 foo
85
- { many1: ["5", "null", "foo"] }
86
-
87
- $ node my-program.js --many2 foo --many2 bar
88
- { many2: ["/path/to/foo", "path/to/bar"] }
89
- ```
90
-
91
- Read the tests at the bottom of `lib/nopt.js` for more examples of
92
- what this puppy can do.
93
-
94
- ## Types
95
-
96
- The following types are supported, and defined on `nopt.typeDefs`
97
-
98
- * String: A normal string. No parsing is done.
99
- * path: A file system path. Gets resolved against cwd if not absolute.
100
- * url: A url. If it doesn't parse, it isn't accepted.
101
- * Number: Must be numeric.
102
- * Date: Must parse as a date. If it does, and `Date` is one of the options,
103
- then it will return a Date object, not a string.
104
- * Boolean: Must be either `true` or `false`. If an option is a boolean,
105
- then it does not need a value, and its presence will imply `true` as
106
- the value. To negate boolean flags, do `--no-whatever` or `--whatever
107
- false`
108
- * NaN: Means that the option is strictly not allowed. Any value will
109
- fail.
110
- * Stream: An object matching the "Stream" class in node. Valuable
111
- for use when validating programmatically. (npm uses this to let you
112
- supply any WriteStream on the `outfd` and `logfd` config options.)
113
- * Array: If `Array` is specified as one of the types, then the value
114
- will be parsed as a list of options. This means that multiple values
115
- can be specified, and that the value will always be an array.
116
-
117
- If a type is an array of values not on this list, then those are
118
- considered valid values. For instance, in the example above, the
119
- `--bloo` option can only be one of `"big"`, `"medium"`, or `"small"`,
120
- and any other value will be rejected.
121
-
122
- When parsing unknown fields, `"true"`, `"false"`, and `"null"` will be
123
- interpreted as their JavaScript equivalents.
124
-
125
- You can also mix types and values, or multiple types, in a list. For
126
- instance `{ blah: [Number, null] }` would allow a value to be set to
127
- either a Number or null. When types are ordered, this implies a
128
- preference, and the first type that can be used to properly interpret
129
- the value will be used.
130
-
131
- To define a new type, add it to `nopt.typeDefs`. Each item in that
132
- hash is an object with a `type` member and a `validate` method. The
133
- `type` member is an object that matches what goes in the type list. The
134
- `validate` method is a function that gets called with `validate(data,
135
- key, val)`. Validate methods should assign `data[key]` to the valid
136
- value of `val` if it can be handled properly, or return boolean
137
- `false` if it cannot.
138
-
139
- You can also call `nopt.clean(data, types, typeDefs)` to clean up a
140
- config object and remove its invalid properties.
141
-
142
- ## Error Handling
143
-
144
- By default, nopt outputs a warning to standard error when invalid values for
145
- known options are found. You can change this behavior by assigning a method
146
- to `nopt.invalidHandler`. This method will be called with
147
- the offending `nopt.invalidHandler(key, val, types)`.
148
-
149
- If no `nopt.invalidHandler` is assigned, then it will console.error
150
- its whining. If it is assigned to boolean `false` then the warning is
151
- suppressed.
152
-
153
- ## Abbreviations
154
-
155
- Yes, they are supported. If you define options like this:
156
-
157
- ```javascript
158
- { "foolhardyelephants" : Boolean
159
- , "pileofmonkeys" : Boolean }
160
- ```
161
-
162
- Then this will work:
163
-
164
- ```bash
165
- node program.js --foolhar --pil
166
- node program.js --no-f --pileofmon
167
- # etc.
168
- ```
169
-
170
- ## Shorthands
171
-
172
- Shorthands are a hash of shorter option names to a snippet of args that
173
- they expand to.
174
-
175
- If multiple one-character shorthands are all combined, and the
176
- combination does not unambiguously match any other option or shorthand,
177
- then they will be broken up into their constituent parts. For example:
178
-
179
- ```json
180
- { "s" : ["--loglevel", "silent"]
181
- , "g" : "--global"
182
- , "f" : "--force"
183
- , "p" : "--parseable"
184
- , "l" : "--long"
185
- }
186
- ```
187
-
188
- ```bash
189
- npm ls -sgflp
190
- # just like doing this:
191
- npm ls --loglevel silent --global --force --long --parseable
192
- ```
193
-
194
- ## The Rest of the args
195
-
196
- The config object returned by nopt is given a special member called
197
- `argv`, which is an object with the following fields:
198
-
199
- * `remain`: The remaining args after all the parsing has occurred.
200
- * `original`: The args as they originally appeared.
201
- * `cooked`: The args after flags and shorthands are expanded.
202
-
203
- ## Slicing
204
-
205
- Node programs are called with more or less the exact argv as it appears
206
- in C land, after the v8 and node-specific options have been plucked off.
207
- As such, `argv[0]` is always `node` and `argv[1]` is always the
208
- JavaScript program being run.
209
-
210
- That's usually not very useful to you. So they're sliced off by
211
- default. If you want them, then you can pass in `0` as the last
212
- argument, or any other number that you'd like to slice off the start of
213
- the list.
@@ -1,54 +0,0 @@
1
- #!/usr/bin/env node
2
- var nopt = require("../lib/nopt")
3
- , path = require("path")
4
- , types = { num: Number
5
- , bool: Boolean
6
- , help: Boolean
7
- , list: Array
8
- , "num-list": [Number, Array]
9
- , "str-list": [String, Array]
10
- , "bool-list": [Boolean, Array]
11
- , str: String
12
- , clear: Boolean
13
- , config: Boolean
14
- , length: Number
15
- , file: path
16
- }
17
- , shorthands = { s: [ "--str", "astring" ]
18
- , b: [ "--bool" ]
19
- , nb: [ "--no-bool" ]
20
- , tft: [ "--bool-list", "--no-bool-list", "--bool-list", "true" ]
21
- , "?": ["--help"]
22
- , h: ["--help"]
23
- , H: ["--help"]
24
- , n: [ "--num", "125" ]
25
- , c: ["--config"]
26
- , l: ["--length"]
27
- , f: ["--file"]
28
- }
29
- , parsed = nopt( types
30
- , shorthands
31
- , process.argv
32
- , 2 )
33
-
34
- console.log("parsed", parsed)
35
-
36
- if (parsed.help) {
37
- console.log("")
38
- console.log("nopt cli tester")
39
- console.log("")
40
- console.log("types")
41
- console.log(Object.keys(types).map(function M (t) {
42
- var type = types[t]
43
- if (Array.isArray(type)) {
44
- return [t, type.map(function (type) { return type.name })]
45
- }
46
- return [t, type && type.name]
47
- }).reduce(function (s, i) {
48
- s[i[0]] = i[1]
49
- return s
50
- }, {}))
51
- console.log("")
52
- console.log("shorthands")
53
- console.log(shorthands)
54
- }
@@ -1,441 +0,0 @@
1
- // info about each config option.
2
-
3
- var debug = process.env.DEBUG_NOPT || process.env.NOPT_DEBUG
4
- ? function () { console.error.apply(console, arguments) }
5
- : function () {}
6
-
7
- var url = require("url")
8
- , path = require("path")
9
- , Stream = require("stream").Stream
10
- , abbrev = require("abbrev")
11
- , osenv = require("osenv")
12
-
13
- module.exports = exports = nopt
14
- exports.clean = clean
15
-
16
- exports.typeDefs =
17
- { String : { type: String, validate: validateString }
18
- , Boolean : { type: Boolean, validate: validateBoolean }
19
- , url : { type: url, validate: validateUrl }
20
- , Number : { type: Number, validate: validateNumber }
21
- , path : { type: path, validate: validatePath }
22
- , Stream : { type: Stream, validate: validateStream }
23
- , Date : { type: Date, validate: validateDate }
24
- }
25
-
26
- function nopt (types, shorthands, args, slice) {
27
- args = args || process.argv
28
- types = types || {}
29
- shorthands = shorthands || {}
30
- if (typeof slice !== "number") slice = 2
31
-
32
- debug(types, shorthands, args, slice)
33
-
34
- args = args.slice(slice)
35
- var data = {}
36
- , key
37
- , argv = {
38
- remain: [],
39
- cooked: args,
40
- original: args.slice(0)
41
- }
42
-
43
- parse(args, data, argv.remain, types, shorthands)
44
- // now data is full
45
- clean(data, types, exports.typeDefs)
46
- data.argv = argv
47
- Object.defineProperty(data.argv, 'toString', { value: function () {
48
- return this.original.map(JSON.stringify).join(" ")
49
- }, enumerable: false })
50
- return data
51
- }
52
-
53
- function clean (data, types, typeDefs) {
54
- typeDefs = typeDefs || exports.typeDefs
55
- var remove = {}
56
- , typeDefault = [false, true, null, String, Array]
57
-
58
- Object.keys(data).forEach(function (k) {
59
- if (k === "argv") return
60
- var val = data[k]
61
- , isArray = Array.isArray(val)
62
- , type = types[k]
63
- if (!isArray) val = [val]
64
- if (!type) type = typeDefault
65
- if (type === Array) type = typeDefault.concat(Array)
66
- if (!Array.isArray(type)) type = [type]
67
-
68
- debug("val=%j", val)
69
- debug("types=", type)
70
- val = val.map(function (val) {
71
- // if it's an unknown value, then parse false/true/null/numbers/dates
72
- if (typeof val === "string") {
73
- debug("string %j", val)
74
- val = val.trim()
75
- if ((val === "null" && ~type.indexOf(null))
76
- || (val === "true" &&
77
- (~type.indexOf(true) || ~type.indexOf(Boolean)))
78
- || (val === "false" &&
79
- (~type.indexOf(false) || ~type.indexOf(Boolean)))) {
80
- val = JSON.parse(val)
81
- debug("jsonable %j", val)
82
- } else if (~type.indexOf(Number) && !isNaN(val)) {
83
- debug("convert to number", val)
84
- val = +val
85
- } else if (~type.indexOf(Date) && !isNaN(Date.parse(val))) {
86
- debug("convert to date", val)
87
- val = new Date(val)
88
- }
89
- }
90
-
91
- if (!types.hasOwnProperty(k)) {
92
- return val
93
- }
94
-
95
- // allow `--no-blah` to set 'blah' to null if null is allowed
96
- if (val === false && ~type.indexOf(null) &&
97
- !(~type.indexOf(false) || ~type.indexOf(Boolean))) {
98
- val = null
99
- }
100
-
101
- var d = {}
102
- d[k] = val
103
- debug("prevalidated val", d, val, types[k])
104
- if (!validate(d, k, val, types[k], typeDefs)) {
105
- if (exports.invalidHandler) {
106
- exports.invalidHandler(k, val, types[k], data)
107
- } else if (exports.invalidHandler !== false) {
108
- debug("invalid: "+k+"="+val, types[k])
109
- }
110
- return remove
111
- }
112
- debug("validated val", d, val, types[k])
113
- return d[k]
114
- }).filter(function (val) { return val !== remove })
115
-
116
- // if we allow Array specifically, then an empty array is how we
117
- // express 'no value here', not null. Allow it.
118
- if (!val.length && type.indexOf(Array) === -1) {
119
- debug('VAL HAS NO LENGTH, DELETE IT', val, k, type.indexOf(Array))
120
- delete data[k]
121
- }
122
- else if (isArray) {
123
- debug(isArray, data[k], val)
124
- data[k] = val
125
- } else data[k] = val[0]
126
-
127
- debug("k=%s val=%j", k, val, data[k])
128
- })
129
- }
130
-
131
- function validateString (data, k, val) {
132
- data[k] = String(val)
133
- }
134
-
135
- function validatePath (data, k, val) {
136
- if (val === true) return false
137
- if (val === null) return true
138
-
139
- val = String(val)
140
-
141
- var isWin = process.platform === 'win32'
142
- , homePattern = isWin ? /^~(\/|\\)/ : /^~\//
143
- , home = osenv.home()
144
-
145
- if (home && val.match(homePattern)) {
146
- data[k] = path.resolve(home, val.substr(2))
147
- } else {
148
- data[k] = path.resolve(val)
149
- }
150
- return true
151
- }
152
-
153
- function validateNumber (data, k, val) {
154
- debug("validate Number %j %j %j", k, val, isNaN(val))
155
- if (isNaN(val)) return false
156
- data[k] = +val
157
- }
158
-
159
- function validateDate (data, k, val) {
160
- var s = Date.parse(val)
161
- debug("validate Date %j %j %j", k, val, s)
162
- if (isNaN(s)) return false
163
- data[k] = new Date(val)
164
- }
165
-
166
- function validateBoolean (data, k, val) {
167
- if (val instanceof Boolean) val = val.valueOf()
168
- else if (typeof val === "string") {
169
- if (!isNaN(val)) val = !!(+val)
170
- else if (val === "null" || val === "false") val = false
171
- else val = true
172
- } else val = !!val
173
- data[k] = val
174
- }
175
-
176
- function validateUrl (data, k, val) {
177
- val = url.parse(String(val))
178
- if (!val.host) return false
179
- data[k] = val.href
180
- }
181
-
182
- function validateStream (data, k, val) {
183
- if (!(val instanceof Stream)) return false
184
- data[k] = val
185
- }
186
-
187
- function validate (data, k, val, type, typeDefs) {
188
- // arrays are lists of types.
189
- if (Array.isArray(type)) {
190
- for (var i = 0, l = type.length; i < l; i ++) {
191
- if (type[i] === Array) continue
192
- if (validate(data, k, val, type[i], typeDefs)) return true
193
- }
194
- delete data[k]
195
- return false
196
- }
197
-
198
- // an array of anything?
199
- if (type === Array) return true
200
-
201
- // NaN is poisonous. Means that something is not allowed.
202
- if (type !== type) {
203
- debug("Poison NaN", k, val, type)
204
- delete data[k]
205
- return false
206
- }
207
-
208
- // explicit list of values
209
- if (val === type) {
210
- debug("Explicitly allowed %j", val)
211
- // if (isArray) (data[k] = data[k] || []).push(val)
212
- // else data[k] = val
213
- data[k] = val
214
- return true
215
- }
216
-
217
- // now go through the list of typeDefs, validate against each one.
218
- var ok = false
219
- , types = Object.keys(typeDefs)
220
- for (var i = 0, l = types.length; i < l; i ++) {
221
- debug("test type %j %j %j", k, val, types[i])
222
- var t = typeDefs[types[i]]
223
- if (t &&
224
- ((type && type.name && t.type && t.type.name) ? (type.name === t.type.name) : (type === t.type))) {
225
- var d = {}
226
- ok = false !== t.validate(d, k, val)
227
- val = d[k]
228
- if (ok) {
229
- // if (isArray) (data[k] = data[k] || []).push(val)
230
- // else data[k] = val
231
- data[k] = val
232
- break
233
- }
234
- }
235
- }
236
- debug("OK? %j (%j %j %j)", ok, k, val, types[i])
237
-
238
- if (!ok) delete data[k]
239
- return ok
240
- }
241
-
242
- function parse (args, data, remain, types, shorthands) {
243
- debug("parse", args, data, remain)
244
-
245
- var key = null
246
- , abbrevs = abbrev(Object.keys(types))
247
- , shortAbbr = abbrev(Object.keys(shorthands))
248
-
249
- for (var i = 0; i < args.length; i ++) {
250
- var arg = args[i]
251
- debug("arg", arg)
252
-
253
- if (arg.match(/^-{2,}$/)) {
254
- // done with keys.
255
- // the rest are args.
256
- remain.push.apply(remain, args.slice(i + 1))
257
- args[i] = "--"
258
- break
259
- }
260
- var hadEq = false
261
- if (arg.charAt(0) === "-" && arg.length > 1) {
262
- var at = arg.indexOf('=')
263
- if (at > -1) {
264
- hadEq = true
265
- var v = arg.substr(at + 1)
266
- arg = arg.substr(0, at)
267
- args.splice(i, 1, arg, v)
268
- }
269
-
270
- // see if it's a shorthand
271
- // if so, splice and back up to re-parse it.
272
- var shRes = resolveShort(arg, shorthands, shortAbbr, abbrevs)
273
- debug("arg=%j shRes=%j", arg, shRes)
274
- if (shRes) {
275
- debug(arg, shRes)
276
- args.splice.apply(args, [i, 1].concat(shRes))
277
- if (arg !== shRes[0]) {
278
- i --
279
- continue
280
- }
281
- }
282
- arg = arg.replace(/^-+/, "")
283
- var no = null
284
- while (arg.toLowerCase().indexOf("no-") === 0) {
285
- no = !no
286
- arg = arg.substr(3)
287
- }
288
-
289
- if (abbrevs[arg]) arg = abbrevs[arg]
290
-
291
- var argType = types[arg]
292
- var isTypeArray = Array.isArray(argType)
293
- if (isTypeArray && argType.length === 1) {
294
- isTypeArray = false
295
- argType = argType[0]
296
- }
297
-
298
- var isArray = argType === Array ||
299
- isTypeArray && argType.indexOf(Array) !== -1
300
-
301
- // allow unknown things to be arrays if specified multiple times.
302
- if (!types.hasOwnProperty(arg) && data.hasOwnProperty(arg)) {
303
- if (!Array.isArray(data[arg]))
304
- data[arg] = [data[arg]]
305
- isArray = true
306
- }
307
-
308
- var val
309
- , la = args[i + 1]
310
-
311
- var isBool = typeof no === 'boolean' ||
312
- argType === Boolean ||
313
- isTypeArray && argType.indexOf(Boolean) !== -1 ||
314
- (typeof argType === 'undefined' && !hadEq) ||
315
- (la === "false" &&
316
- (argType === null ||
317
- isTypeArray && ~argType.indexOf(null)))
318
-
319
- if (isBool) {
320
- // just set and move along
321
- val = !no
322
- // however, also support --bool true or --bool false
323
- if (la === "true" || la === "false") {
324
- val = JSON.parse(la)
325
- la = null
326
- if (no) val = !val
327
- i ++
328
- }
329
-
330
- // also support "foo":[Boolean, "bar"] and "--foo bar"
331
- if (isTypeArray && la) {
332
- if (~argType.indexOf(la)) {
333
- // an explicit type
334
- val = la
335
- i ++
336
- } else if ( la === "null" && ~argType.indexOf(null) ) {
337
- // null allowed
338
- val = null
339
- i ++
340
- } else if ( !la.match(/^-{2,}[^-]/) &&
341
- !isNaN(la) &&
342
- ~argType.indexOf(Number) ) {
343
- // number
344
- val = +la
345
- i ++
346
- } else if ( !la.match(/^-[^-]/) && ~argType.indexOf(String) ) {
347
- // string
348
- val = la
349
- i ++
350
- }
351
- }
352
-
353
- if (isArray) (data[arg] = data[arg] || []).push(val)
354
- else data[arg] = val
355
-
356
- continue
357
- }
358
-
359
- if (argType === String) {
360
- if (la === undefined) {
361
- la = ""
362
- } else if (la.match(/^-{1,2}[^-]+/)) {
363
- la = ""
364
- i --
365
- }
366
- }
367
-
368
- if (la && la.match(/^-{2,}$/)) {
369
- la = undefined
370
- i --
371
- }
372
-
373
- val = la === undefined ? true : la
374
- if (isArray) (data[arg] = data[arg] || []).push(val)
375
- else data[arg] = val
376
-
377
- i ++
378
- continue
379
- }
380
- remain.push(arg)
381
- }
382
- }
383
-
384
- function resolveShort (arg, shorthands, shortAbbr, abbrevs) {
385
- // handle single-char shorthands glommed together, like
386
- // npm ls -glp, but only if there is one dash, and only if
387
- // all of the chars are single-char shorthands, and it's
388
- // not a match to some other abbrev.
389
- arg = arg.replace(/^-+/, '')
390
-
391
- // if it's an exact known option, then don't go any further
392
- if (abbrevs[arg] === arg)
393
- return null
394
-
395
- // if it's an exact known shortopt, same deal
396
- if (shorthands[arg]) {
397
- // make it an array, if it's a list of words
398
- if (shorthands[arg] && !Array.isArray(shorthands[arg]))
399
- shorthands[arg] = shorthands[arg].split(/\s+/)
400
-
401
- return shorthands[arg]
402
- }
403
-
404
- // first check to see if this arg is a set of single-char shorthands
405
- var singles = shorthands.___singles
406
- if (!singles) {
407
- singles = Object.keys(shorthands).filter(function (s) {
408
- return s.length === 1
409
- }).reduce(function (l,r) {
410
- l[r] = true
411
- return l
412
- }, {})
413
- shorthands.___singles = singles
414
- debug('shorthand singles', singles)
415
- }
416
-
417
- var chrs = arg.split("").filter(function (c) {
418
- return singles[c]
419
- })
420
-
421
- if (chrs.join("") === arg) return chrs.map(function (c) {
422
- return shorthands[c]
423
- }).reduce(function (l, r) {
424
- return l.concat(r)
425
- }, [])
426
-
427
-
428
- // if it's an arg abbrev, and not a literal shorthand, then prefer the arg
429
- if (abbrevs[arg] && !shorthands[arg])
430
- return null
431
-
432
- // if it's an abbr for a shorthand, then use that
433
- if (shortAbbr[arg])
434
- arg = shortAbbr[arg]
435
-
436
- // make it an array, if it's a list of words
437
- if (shorthands[arg] && !Array.isArray(shorthands[arg]))
438
- shorthands[arg] = shorthands[arg].split(/\s+/)
439
-
440
- return shorthands[arg]
441
- }