@prismer/sdk 2.0.7 → 2.2.55

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 (387) hide show
  1. package/README.md +13 -7
  2. package/dist/chunk-R7POPVJR.mjs +35 -0
  3. package/dist/cli.js +59723 -8280
  4. package/dist/index.d.mts +724 -229
  5. package/dist/index.d.ts +724 -229
  6. package/dist/index.js +325 -23
  7. package/dist/index.mjs +324 -23
  8. package/dist/katex-OIP2Q473.mjs +14515 -0
  9. package/dist/pkf-schema.json +35 -0
  10. package/dist/pkf.d.mts +1 -0
  11. package/dist/pkf.d.ts +1 -0
  12. package/dist/pkf.js +48370 -0
  13. package/dist/pkf.mjs +33683 -0
  14. package/node_modules/@clack/core/CHANGELOG.md +249 -0
  15. package/node_modules/@clack/core/LICENSE +9 -0
  16. package/node_modules/@clack/core/README.md +22 -0
  17. package/node_modules/@clack/core/dist/index.cjs +15 -0
  18. package/node_modules/@clack/core/dist/index.cjs.map +1 -0
  19. package/node_modules/@clack/core/dist/index.d.cts +209 -0
  20. package/node_modules/@clack/core/dist/index.d.mts +209 -0
  21. package/node_modules/@clack/core/dist/index.d.ts +209 -0
  22. package/node_modules/@clack/core/dist/index.mjs +15 -0
  23. package/node_modules/@clack/core/dist/index.mjs.map +1 -0
  24. package/node_modules/@clack/core/package.json +62 -0
  25. package/node_modules/@clack/prompts/CHANGELOG.md +374 -0
  26. package/node_modules/@clack/prompts/LICENSE +9 -0
  27. package/node_modules/@clack/prompts/README.md +191 -0
  28. package/node_modules/@clack/prompts/dist/index.cjs +80 -0
  29. package/node_modules/@clack/prompts/dist/index.cjs.map +1 -0
  30. package/node_modules/@clack/prompts/dist/index.d.cts +151 -0
  31. package/node_modules/@clack/prompts/dist/index.d.mts +151 -0
  32. package/node_modules/@clack/prompts/dist/index.d.ts +151 -0
  33. package/node_modules/@clack/prompts/dist/index.mjs +80 -0
  34. package/node_modules/@clack/prompts/dist/index.mjs.map +1 -0
  35. package/node_modules/@clack/prompts/package.json +61 -0
  36. package/node_modules/@iarna/toml/LICENSE +14 -0
  37. package/node_modules/@iarna/toml/README.md +301 -0
  38. package/node_modules/@iarna/toml/index.d.ts +57 -0
  39. package/node_modules/@iarna/toml/lib/create-date.js +23 -0
  40. package/node_modules/@iarna/toml/lib/create-datetime-float.js +24 -0
  41. package/node_modules/@iarna/toml/lib/create-datetime.js +10 -0
  42. package/node_modules/@iarna/toml/lib/create-time.js +22 -0
  43. package/node_modules/@iarna/toml/lib/format-num.js +6 -0
  44. package/node_modules/@iarna/toml/lib/parser-debug.js +60 -0
  45. package/node_modules/@iarna/toml/lib/parser.js +127 -0
  46. package/node_modules/@iarna/toml/lib/toml-parser.js +1379 -0
  47. package/node_modules/@iarna/toml/package.json +82 -0
  48. package/node_modules/@iarna/toml/parse-async.js +30 -0
  49. package/node_modules/@iarna/toml/parse-pretty-error.js +33 -0
  50. package/node_modules/@iarna/toml/parse-stream.js +80 -0
  51. package/node_modules/@iarna/toml/parse-string.js +18 -0
  52. package/node_modules/@iarna/toml/parse.js +5 -0
  53. package/node_modules/@iarna/toml/stringify.js +296 -0
  54. package/node_modules/@iarna/toml/toml.js +3 -0
  55. package/node_modules/@prismer/aip-sdk/README.md +36 -0
  56. package/node_modules/@prismer/aip-sdk/dist/cli/chunk-LIJDUCHB.js +104 -0
  57. package/node_modules/@prismer/aip-sdk/dist/cli/chunk-QUQXZ2LD.js +99 -0
  58. package/node_modules/@prismer/aip-sdk/dist/cli/credentials-5GGZEJFG.js +56 -0
  59. package/node_modules/@prismer/aip-sdk/dist/cli/delegation-3J35VGBZ.js +64 -0
  60. package/node_modules/@prismer/aip-sdk/dist/cli/identity-LXVWKSVB.js +7 -0
  61. package/node_modules/@prismer/aip-sdk/dist/cli/index.js +259 -0
  62. package/node_modules/@prismer/aip-sdk/dist/cli/resolver-TGOPKW52.js +26 -0
  63. package/node_modules/@prismer/aip-sdk/dist/index.cjs +368 -0
  64. package/node_modules/@prismer/aip-sdk/dist/index.d.cts +174 -0
  65. package/node_modules/@prismer/aip-sdk/dist/index.d.ts +174 -0
  66. package/node_modules/@prismer/aip-sdk/dist/index.js +322 -0
  67. package/node_modules/@prismer/aip-sdk/package.json +53 -0
  68. package/node_modules/ansi-regex/index.d.ts +37 -0
  69. package/node_modules/ansi-regex/index.js +10 -0
  70. package/node_modules/ansi-regex/license +9 -0
  71. package/node_modules/ansi-regex/package.json +55 -0
  72. package/node_modules/ansi-regex/readme.md +78 -0
  73. package/node_modules/camelcase/index.d.ts +63 -0
  74. package/node_modules/camelcase/index.js +76 -0
  75. package/node_modules/camelcase/license +9 -0
  76. package/node_modules/camelcase/package.json +43 -0
  77. package/node_modules/camelcase/readme.md +99 -0
  78. package/node_modules/cliui/LICENSE.txt +14 -0
  79. package/node_modules/cliui/README.md +115 -0
  80. package/node_modules/cliui/index.js +354 -0
  81. package/node_modules/cliui/package.json +65 -0
  82. package/node_modules/color-convert/LICENSE +21 -0
  83. package/node_modules/color-convert/README.md +68 -0
  84. package/node_modules/color-convert/conversions.js +839 -0
  85. package/node_modules/color-convert/index.js +81 -0
  86. package/node_modules/color-convert/package.json +48 -0
  87. package/node_modules/color-convert/route.js +97 -0
  88. package/node_modules/color-name/LICENSE +8 -0
  89. package/node_modules/color-name/README.md +11 -0
  90. package/node_modules/color-name/index.js +152 -0
  91. package/node_modules/color-name/package.json +28 -0
  92. package/node_modules/commander/LICENSE +22 -0
  93. package/node_modules/commander/Readme.md +1157 -0
  94. package/node_modules/commander/esm.mjs +16 -0
  95. package/node_modules/commander/index.js +24 -0
  96. package/node_modules/commander/lib/argument.js +149 -0
  97. package/node_modules/commander/lib/command.js +2509 -0
  98. package/node_modules/commander/lib/error.js +39 -0
  99. package/node_modules/commander/lib/help.js +520 -0
  100. package/node_modules/commander/lib/option.js +330 -0
  101. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  102. package/node_modules/commander/package-support.json +16 -0
  103. package/node_modules/commander/package.json +84 -0
  104. package/node_modules/commander/typings/esm.d.mts +3 -0
  105. package/node_modules/commander/typings/index.d.ts +969 -0
  106. package/node_modules/decamelize/index.js +13 -0
  107. package/node_modules/decamelize/license +21 -0
  108. package/node_modules/decamelize/package.json +38 -0
  109. package/node_modules/decamelize/readme.md +48 -0
  110. package/node_modules/dijkstrajs/.travis.yml +4 -0
  111. package/node_modules/dijkstrajs/CONTRIBUTING.md +8 -0
  112. package/node_modules/dijkstrajs/LICENSE.md +19 -0
  113. package/node_modules/dijkstrajs/README.md +18 -0
  114. package/node_modules/dijkstrajs/dijkstra.js +165 -0
  115. package/node_modules/dijkstrajs/package.json +60 -0
  116. package/node_modules/dijkstrajs/test/dijkstra.test.js +96 -0
  117. package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  118. package/node_modules/emoji-regex/README.md +73 -0
  119. package/node_modules/emoji-regex/es2015/index.js +6 -0
  120. package/node_modules/emoji-regex/es2015/text.js +6 -0
  121. package/node_modules/emoji-regex/index.d.ts +23 -0
  122. package/node_modules/emoji-regex/index.js +6 -0
  123. package/node_modules/emoji-regex/package.json +50 -0
  124. package/node_modules/emoji-regex/text.js +6 -0
  125. package/node_modules/find-up/index.d.ts +137 -0
  126. package/node_modules/find-up/index.js +89 -0
  127. package/node_modules/find-up/license +9 -0
  128. package/node_modules/find-up/package.json +53 -0
  129. package/node_modules/find-up/readme.md +156 -0
  130. package/node_modules/get-caller-file/LICENSE.md +6 -0
  131. package/node_modules/get-caller-file/README.md +41 -0
  132. package/node_modules/get-caller-file/index.d.ts +2 -0
  133. package/node_modules/get-caller-file/index.js +22 -0
  134. package/node_modules/get-caller-file/index.js.map +1 -0
  135. package/node_modules/get-caller-file/package.json +42 -0
  136. package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  137. package/node_modules/is-fullwidth-code-point/index.js +50 -0
  138. package/node_modules/is-fullwidth-code-point/license +9 -0
  139. package/node_modules/is-fullwidth-code-point/package.json +42 -0
  140. package/node_modules/is-fullwidth-code-point/readme.md +39 -0
  141. package/node_modules/locate-path/index.d.ts +83 -0
  142. package/node_modules/locate-path/index.js +65 -0
  143. package/node_modules/locate-path/license +9 -0
  144. package/node_modules/locate-path/package.json +45 -0
  145. package/node_modules/locate-path/readme.md +122 -0
  146. package/node_modules/p-locate/index.d.ts +64 -0
  147. package/node_modules/p-locate/index.js +52 -0
  148. package/node_modules/p-locate/license +9 -0
  149. package/node_modules/p-locate/node_modules/p-limit/index.d.ts +38 -0
  150. package/node_modules/p-locate/node_modules/p-limit/index.js +57 -0
  151. package/node_modules/p-locate/node_modules/p-limit/license +9 -0
  152. package/node_modules/p-locate/node_modules/p-limit/package.json +52 -0
  153. package/node_modules/p-locate/node_modules/p-limit/readme.md +101 -0
  154. package/node_modules/p-locate/package.json +53 -0
  155. package/node_modules/p-locate/readme.md +90 -0
  156. package/node_modules/p-try/index.d.ts +39 -0
  157. package/node_modules/p-try/index.js +9 -0
  158. package/node_modules/p-try/license +9 -0
  159. package/node_modules/p-try/package.json +42 -0
  160. package/node_modules/p-try/readme.md +58 -0
  161. package/node_modules/path-exists/index.d.ts +28 -0
  162. package/node_modules/path-exists/index.js +23 -0
  163. package/node_modules/path-exists/license +9 -0
  164. package/node_modules/path-exists/package.json +39 -0
  165. package/node_modules/path-exists/readme.md +52 -0
  166. package/node_modules/picocolors/LICENSE +15 -0
  167. package/node_modules/picocolors/README.md +21 -0
  168. package/node_modules/picocolors/package.json +25 -0
  169. package/node_modules/picocolors/picocolors.browser.js +4 -0
  170. package/node_modules/picocolors/picocolors.d.ts +5 -0
  171. package/node_modules/picocolors/picocolors.js +75 -0
  172. package/node_modules/picocolors/types.d.ts +51 -0
  173. package/node_modules/pngjs/.eslintignore +2 -0
  174. package/node_modules/pngjs/.eslintrc.json +19 -0
  175. package/node_modules/pngjs/.prettierignore +3 -0
  176. package/node_modules/pngjs/LICENSE +20 -0
  177. package/node_modules/pngjs/README.md +429 -0
  178. package/node_modules/pngjs/browser.js +16096 -0
  179. package/node_modules/pngjs/coverage/lcov-report/base.css +354 -0
  180. package/node_modules/pngjs/coverage/lcov-report/bitmapper.js.html +881 -0
  181. package/node_modules/pngjs/coverage/lcov-report/bitpacker.js.html +554 -0
  182. package/node_modules/pngjs/coverage/lcov-report/block-navigation.js +77 -0
  183. package/node_modules/pngjs/coverage/lcov-report/chunkstream.js.html +647 -0
  184. package/node_modules/pngjs/coverage/lcov-report/constants.js.html +176 -0
  185. package/node_modules/pngjs/coverage/lcov-report/crc.js.html +200 -0
  186. package/node_modules/pngjs/coverage/lcov-report/favicon.png +0 -0
  187. package/node_modules/pngjs/coverage/lcov-report/filter-pack.js.html +593 -0
  188. package/node_modules/pngjs/coverage/lcov-report/filter-parse-async.js.html +152 -0
  189. package/node_modules/pngjs/coverage/lcov-report/filter-parse-sync.js.html +143 -0
  190. package/node_modules/pngjs/coverage/lcov-report/filter-parse.js.html +611 -0
  191. package/node_modules/pngjs/coverage/lcov-report/format-normaliser.js.html +359 -0
  192. package/node_modules/pngjs/coverage/lcov-report/index.html +426 -0
  193. package/node_modules/pngjs/coverage/lcov-report/interlace.js.html +365 -0
  194. package/node_modules/pngjs/coverage/lcov-report/packer-async.js.html +230 -0
  195. package/node_modules/pngjs/coverage/lcov-report/packer-sync.js.html +248 -0
  196. package/node_modules/pngjs/coverage/lcov-report/packer.js.html +467 -0
  197. package/node_modules/pngjs/coverage/lcov-report/paeth-predictor.js.html +128 -0
  198. package/node_modules/pngjs/coverage/lcov-report/parser-async.js.html +575 -0
  199. package/node_modules/pngjs/coverage/lcov-report/parser-sync.js.html +404 -0
  200. package/node_modules/pngjs/coverage/lcov-report/parser.js.html +950 -0
  201. package/node_modules/pngjs/coverage/lcov-report/png-sync.js.html +116 -0
  202. package/node_modules/pngjs/coverage/lcov-report/png.js.html +662 -0
  203. package/node_modules/pngjs/coverage/lcov-report/prettify.css +101 -0
  204. package/node_modules/pngjs/coverage/lcov-report/prettify.js +1007 -0
  205. package/node_modules/pngjs/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  206. package/node_modules/pngjs/coverage/lcov-report/sorter.js +169 -0
  207. package/node_modules/pngjs/coverage/lcov-report/sync-inflate.js.html +584 -0
  208. package/node_modules/pngjs/coverage/lcov-report/sync-reader.js.html +215 -0
  209. package/node_modules/pngjs/coverage/lcov.info +2177 -0
  210. package/node_modules/pngjs/lib/bitmapper.js +267 -0
  211. package/node_modules/pngjs/lib/bitpacker.js +158 -0
  212. package/node_modules/pngjs/lib/chunkstream.js +189 -0
  213. package/node_modules/pngjs/lib/constants.js +32 -0
  214. package/node_modules/pngjs/lib/crc.js +40 -0
  215. package/node_modules/pngjs/lib/filter-pack.js +171 -0
  216. package/node_modules/pngjs/lib/filter-parse-async.js +24 -0
  217. package/node_modules/pngjs/lib/filter-parse-sync.js +21 -0
  218. package/node_modules/pngjs/lib/filter-parse.js +177 -0
  219. package/node_modules/pngjs/lib/format-normaliser.js +93 -0
  220. package/node_modules/pngjs/lib/interlace.js +95 -0
  221. package/node_modules/pngjs/lib/packer-async.js +50 -0
  222. package/node_modules/pngjs/lib/packer-sync.js +56 -0
  223. package/node_modules/pngjs/lib/packer.js +129 -0
  224. package/node_modules/pngjs/lib/paeth-predictor.js +16 -0
  225. package/node_modules/pngjs/lib/parser-async.js +165 -0
  226. package/node_modules/pngjs/lib/parser-sync.js +108 -0
  227. package/node_modules/pngjs/lib/parser.js +290 -0
  228. package/node_modules/pngjs/lib/png-sync.js +12 -0
  229. package/node_modules/pngjs/lib/png.js +194 -0
  230. package/node_modules/pngjs/lib/sync-inflate.js +168 -0
  231. package/node_modules/pngjs/lib/sync-reader.js +45 -0
  232. package/node_modules/pngjs/package.json +73 -0
  233. package/node_modules/qrcode/README.md +770 -0
  234. package/node_modules/qrcode/bin/qrcode +159 -0
  235. package/node_modules/qrcode/helper/to-sjis-browser.js +2 -0
  236. package/node_modules/qrcode/helper/to-sjis.js +105 -0
  237. package/node_modules/qrcode/lib/browser.js +76 -0
  238. package/node_modules/qrcode/lib/can-promise.js +7 -0
  239. package/node_modules/qrcode/lib/core/alignment-pattern.js +83 -0
  240. package/node_modules/qrcode/lib/core/alphanumeric-data.js +59 -0
  241. package/node_modules/qrcode/lib/core/bit-buffer.js +37 -0
  242. package/node_modules/qrcode/lib/core/bit-matrix.js +65 -0
  243. package/node_modules/qrcode/lib/core/byte-data.js +30 -0
  244. package/node_modules/qrcode/lib/core/error-correction-code.js +135 -0
  245. package/node_modules/qrcode/lib/core/error-correction-level.js +50 -0
  246. package/node_modules/qrcode/lib/core/finder-pattern.js +22 -0
  247. package/node_modules/qrcode/lib/core/format-info.js +29 -0
  248. package/node_modules/qrcode/lib/core/galois-field.js +69 -0
  249. package/node_modules/qrcode/lib/core/kanji-data.js +54 -0
  250. package/node_modules/qrcode/lib/core/mask-pattern.js +234 -0
  251. package/node_modules/qrcode/lib/core/mode.js +167 -0
  252. package/node_modules/qrcode/lib/core/numeric-data.js +43 -0
  253. package/node_modules/qrcode/lib/core/polynomial.js +62 -0
  254. package/node_modules/qrcode/lib/core/qrcode.js +495 -0
  255. package/node_modules/qrcode/lib/core/reed-solomon-encoder.js +56 -0
  256. package/node_modules/qrcode/lib/core/regex.js +31 -0
  257. package/node_modules/qrcode/lib/core/segments.js +330 -0
  258. package/node_modules/qrcode/lib/core/utils.js +63 -0
  259. package/node_modules/qrcode/lib/core/version-check.js +9 -0
  260. package/node_modules/qrcode/lib/core/version.js +163 -0
  261. package/node_modules/qrcode/lib/index.js +12 -0
  262. package/node_modules/qrcode/lib/renderer/canvas.js +63 -0
  263. package/node_modules/qrcode/lib/renderer/png.js +78 -0
  264. package/node_modules/qrcode/lib/renderer/svg-tag.js +81 -0
  265. package/node_modules/qrcode/lib/renderer/svg.js +19 -0
  266. package/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +85 -0
  267. package/node_modules/qrcode/lib/renderer/terminal/terminal.js +49 -0
  268. package/node_modules/qrcode/lib/renderer/terminal.js +9 -0
  269. package/node_modules/qrcode/lib/renderer/utf8.js +71 -0
  270. package/node_modules/qrcode/lib/renderer/utils.js +99 -0
  271. package/node_modules/qrcode/lib/server.js +138 -0
  272. package/node_modules/qrcode/license +10 -0
  273. package/node_modules/qrcode/package.json +77 -0
  274. package/node_modules/require-directory/.jshintrc +67 -0
  275. package/node_modules/require-directory/.npmignore +1 -0
  276. package/node_modules/require-directory/.travis.yml +3 -0
  277. package/node_modules/require-directory/LICENSE +22 -0
  278. package/node_modules/require-directory/README.markdown +184 -0
  279. package/node_modules/require-directory/index.js +86 -0
  280. package/node_modules/require-directory/package.json +40 -0
  281. package/node_modules/require-main-filename/LICENSE.txt +14 -0
  282. package/node_modules/require-main-filename/README.md +26 -0
  283. package/node_modules/require-main-filename/index.js +18 -0
  284. package/node_modules/require-main-filename/package.json +35 -0
  285. package/node_modules/set-blocking/LICENSE.txt +14 -0
  286. package/node_modules/set-blocking/README.md +31 -0
  287. package/node_modules/set-blocking/index.js +7 -0
  288. package/node_modules/set-blocking/package.json +42 -0
  289. package/node_modules/sisteransi/license +21 -0
  290. package/node_modules/sisteransi/package.json +34 -0
  291. package/node_modules/sisteransi/readme.md +113 -0
  292. package/node_modules/sisteransi/src/index.js +58 -0
  293. package/node_modules/sisteransi/src/sisteransi.d.ts +35 -0
  294. package/node_modules/string-width/index.d.ts +29 -0
  295. package/node_modules/string-width/index.js +47 -0
  296. package/node_modules/string-width/license +9 -0
  297. package/node_modules/string-width/package.json +56 -0
  298. package/node_modules/string-width/readme.md +50 -0
  299. package/node_modules/strip-ansi/index.d.ts +17 -0
  300. package/node_modules/strip-ansi/index.js +4 -0
  301. package/node_modules/strip-ansi/license +9 -0
  302. package/node_modules/strip-ansi/package.json +54 -0
  303. package/node_modules/strip-ansi/readme.md +46 -0
  304. package/node_modules/which-module/LICENSE +13 -0
  305. package/node_modules/which-module/README.md +58 -0
  306. package/node_modules/which-module/index.js +9 -0
  307. package/node_modules/which-module/package.json +41 -0
  308. package/node_modules/wrap-ansi/index.js +186 -0
  309. package/node_modules/wrap-ansi/license +9 -0
  310. package/node_modules/wrap-ansi/node_modules/ansi-styles/index.d.ts +345 -0
  311. package/node_modules/wrap-ansi/node_modules/ansi-styles/index.js +163 -0
  312. package/node_modules/wrap-ansi/node_modules/ansi-styles/license +9 -0
  313. package/node_modules/wrap-ansi/node_modules/ansi-styles/package.json +56 -0
  314. package/node_modules/wrap-ansi/node_modules/ansi-styles/readme.md +152 -0
  315. package/node_modules/wrap-ansi/package.json +61 -0
  316. package/node_modules/wrap-ansi/readme.md +97 -0
  317. package/node_modules/y18n/LICENSE +13 -0
  318. package/node_modules/y18n/README.md +109 -0
  319. package/node_modules/y18n/index.js +188 -0
  320. package/node_modules/y18n/package.json +39 -0
  321. package/node_modules/yargs/LICENSE +21 -0
  322. package/node_modules/yargs/README.md +140 -0
  323. package/node_modules/yargs/build/lib/apply-extends.d.ts +2 -0
  324. package/node_modules/yargs/build/lib/apply-extends.js +65 -0
  325. package/node_modules/yargs/build/lib/argsert.d.ts +2 -0
  326. package/node_modules/yargs/build/lib/argsert.js +65 -0
  327. package/node_modules/yargs/build/lib/command.d.ts +64 -0
  328. package/node_modules/yargs/build/lib/command.js +416 -0
  329. package/node_modules/yargs/build/lib/common-types.d.ts +36 -0
  330. package/node_modules/yargs/build/lib/common-types.js +25 -0
  331. package/node_modules/yargs/build/lib/completion-templates.d.ts +2 -0
  332. package/node_modules/yargs/build/lib/completion-templates.js +50 -0
  333. package/node_modules/yargs/build/lib/completion.d.ts +21 -0
  334. package/node_modules/yargs/build/lib/completion.js +135 -0
  335. package/node_modules/yargs/build/lib/is-promise.d.ts +1 -0
  336. package/node_modules/yargs/build/lib/is-promise.js +9 -0
  337. package/node_modules/yargs/build/lib/levenshtein.d.ts +1 -0
  338. package/node_modules/yargs/build/lib/levenshtein.js +58 -0
  339. package/node_modules/yargs/build/lib/middleware.d.ts +10 -0
  340. package/node_modules/yargs/build/lib/middleware.js +57 -0
  341. package/node_modules/yargs/build/lib/obj-filter.d.ts +1 -0
  342. package/node_modules/yargs/build/lib/obj-filter.js +14 -0
  343. package/node_modules/yargs/build/lib/parse-command.d.ts +11 -0
  344. package/node_modules/yargs/build/lib/parse-command.js +36 -0
  345. package/node_modules/yargs/build/lib/process-argv.d.ts +2 -0
  346. package/node_modules/yargs/build/lib/process-argv.js +31 -0
  347. package/node_modules/yargs/build/lib/usage.d.ts +49 -0
  348. package/node_modules/yargs/build/lib/usage.js +540 -0
  349. package/node_modules/yargs/build/lib/validation.d.ts +34 -0
  350. package/node_modules/yargs/build/lib/validation.js +330 -0
  351. package/node_modules/yargs/build/lib/yargs.d.ts +274 -0
  352. package/node_modules/yargs/build/lib/yargs.js +1190 -0
  353. package/node_modules/yargs/build/lib/yerror.d.ts +4 -0
  354. package/node_modules/yargs/build/lib/yerror.js +11 -0
  355. package/node_modules/yargs/index.js +40 -0
  356. package/node_modules/yargs/locales/be.json +46 -0
  357. package/node_modules/yargs/locales/de.json +46 -0
  358. package/node_modules/yargs/locales/en.json +51 -0
  359. package/node_modules/yargs/locales/es.json +46 -0
  360. package/node_modules/yargs/locales/fi.json +49 -0
  361. package/node_modules/yargs/locales/fr.json +53 -0
  362. package/node_modules/yargs/locales/hi.json +49 -0
  363. package/node_modules/yargs/locales/hu.json +46 -0
  364. package/node_modules/yargs/locales/id.json +50 -0
  365. package/node_modules/yargs/locales/it.json +46 -0
  366. package/node_modules/yargs/locales/ja.json +51 -0
  367. package/node_modules/yargs/locales/ko.json +49 -0
  368. package/node_modules/yargs/locales/nb.json +44 -0
  369. package/node_modules/yargs/locales/nl.json +49 -0
  370. package/node_modules/yargs/locales/nn.json +44 -0
  371. package/node_modules/yargs/locales/pirate.json +13 -0
  372. package/node_modules/yargs/locales/pl.json +49 -0
  373. package/node_modules/yargs/locales/pt.json +45 -0
  374. package/node_modules/yargs/locales/pt_BR.json +48 -0
  375. package/node_modules/yargs/locales/ru.json +46 -0
  376. package/node_modules/yargs/locales/th.json +46 -0
  377. package/node_modules/yargs/locales/tr.json +48 -0
  378. package/node_modules/yargs/locales/zh_CN.json +48 -0
  379. package/node_modules/yargs/locales/zh_TW.json +47 -0
  380. package/node_modules/yargs/package.json +92 -0
  381. package/node_modules/yargs/yargs.js +14 -0
  382. package/node_modules/yargs-parser/LICENSE.txt +14 -0
  383. package/node_modules/yargs-parser/README.md +449 -0
  384. package/node_modules/yargs-parser/index.js +1032 -0
  385. package/node_modules/yargs-parser/lib/tokenize-arg-string.js +40 -0
  386. package/node_modules/yargs-parser/package.json +46 -0
  387. package/package.json +28 -5
@@ -0,0 +1,1032 @@
1
+ const camelCase = require('camelcase')
2
+ const decamelize = require('decamelize')
3
+ const path = require('path')
4
+ const tokenizeArgString = require('./lib/tokenize-arg-string')
5
+ const util = require('util')
6
+
7
+ function parse (args, opts) {
8
+ opts = Object.assign(Object.create(null), opts)
9
+ // allow a string argument to be passed in rather
10
+ // than an argv array.
11
+ args = tokenizeArgString(args)
12
+
13
+ // aliases might have transitive relationships, normalize this.
14
+ const aliases = combineAliases(Object.assign(Object.create(null), opts.alias))
15
+ const configuration = Object.assign({
16
+ 'boolean-negation': true,
17
+ 'camel-case-expansion': true,
18
+ 'combine-arrays': false,
19
+ 'dot-notation': true,
20
+ 'duplicate-arguments-array': true,
21
+ 'flatten-duplicate-arrays': true,
22
+ 'greedy-arrays': true,
23
+ 'halt-at-non-option': false,
24
+ 'nargs-eats-options': false,
25
+ 'negation-prefix': 'no-',
26
+ 'parse-numbers': true,
27
+ 'populate--': false,
28
+ 'set-placeholder-key': false,
29
+ 'short-option-groups': true,
30
+ 'strip-aliased': false,
31
+ 'strip-dashed': false,
32
+ 'unknown-options-as-args': false
33
+ }, opts.configuration)
34
+ const defaults = Object.assign(Object.create(null), opts.default)
35
+ const configObjects = opts.configObjects || []
36
+ const envPrefix = opts.envPrefix
37
+ const notFlagsOption = configuration['populate--']
38
+ const notFlagsArgv = notFlagsOption ? '--' : '_'
39
+ const newAliases = Object.create(null)
40
+ const defaulted = Object.create(null)
41
+ // allow a i18n handler to be passed in, default to a fake one (util.format).
42
+ const __ = opts.__ || util.format
43
+ const flags = {
44
+ aliases: Object.create(null),
45
+ arrays: Object.create(null),
46
+ bools: Object.create(null),
47
+ strings: Object.create(null),
48
+ numbers: Object.create(null),
49
+ counts: Object.create(null),
50
+ normalize: Object.create(null),
51
+ configs: Object.create(null),
52
+ nargs: Object.create(null),
53
+ coercions: Object.create(null),
54
+ keys: []
55
+ }
56
+ const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/
57
+ const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)')
58
+
59
+ ;[].concat(opts.array).filter(Boolean).forEach(function (opt) {
60
+ const key = opt.key || opt
61
+
62
+ // assign to flags[bools|strings|numbers]
63
+ const assignment = Object.keys(opt).map(function (key) {
64
+ return ({
65
+ boolean: 'bools',
66
+ string: 'strings',
67
+ number: 'numbers'
68
+ })[key]
69
+ }).filter(Boolean).pop()
70
+
71
+ // assign key to be coerced
72
+ if (assignment) {
73
+ flags[assignment][key] = true
74
+ }
75
+
76
+ flags.arrays[key] = true
77
+ flags.keys.push(key)
78
+ })
79
+
80
+ ;[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
81
+ flags.bools[key] = true
82
+ flags.keys.push(key)
83
+ })
84
+
85
+ ;[].concat(opts.string).filter(Boolean).forEach(function (key) {
86
+ flags.strings[key] = true
87
+ flags.keys.push(key)
88
+ })
89
+
90
+ ;[].concat(opts.number).filter(Boolean).forEach(function (key) {
91
+ flags.numbers[key] = true
92
+ flags.keys.push(key)
93
+ })
94
+
95
+ ;[].concat(opts.count).filter(Boolean).forEach(function (key) {
96
+ flags.counts[key] = true
97
+ flags.keys.push(key)
98
+ })
99
+
100
+ ;[].concat(opts.normalize).filter(Boolean).forEach(function (key) {
101
+ flags.normalize[key] = true
102
+ flags.keys.push(key)
103
+ })
104
+
105
+ Object.keys(opts.narg || {}).forEach(function (k) {
106
+ flags.nargs[k] = opts.narg[k]
107
+ flags.keys.push(k)
108
+ })
109
+
110
+ Object.keys(opts.coerce || {}).forEach(function (k) {
111
+ flags.coercions[k] = opts.coerce[k]
112
+ flags.keys.push(k)
113
+ })
114
+
115
+ if (Array.isArray(opts.config) || typeof opts.config === 'string') {
116
+ ;[].concat(opts.config).filter(Boolean).forEach(function (key) {
117
+ flags.configs[key] = true
118
+ })
119
+ } else {
120
+ Object.keys(opts.config || {}).forEach(function (k) {
121
+ flags.configs[k] = opts.config[k]
122
+ })
123
+ }
124
+
125
+ // create a lookup table that takes into account all
126
+ // combinations of aliases: {f: ['foo'], foo: ['f']}
127
+ extendAliases(opts.key, aliases, opts.default, flags.arrays)
128
+
129
+ // apply default values to all aliases.
130
+ Object.keys(defaults).forEach(function (key) {
131
+ (flags.aliases[key] || []).forEach(function (alias) {
132
+ defaults[alias] = defaults[key]
133
+ })
134
+ })
135
+
136
+ let error = null
137
+ checkConfiguration()
138
+
139
+ let notFlags = []
140
+
141
+ const argv = Object.assign(Object.create(null), { _: [] })
142
+ // TODO(bcoe): for the first pass at removing object prototype we didn't
143
+ // remove all prototypes from objects returned by this API, we might want
144
+ // to gradually move towards doing so.
145
+ const argvReturn = {}
146
+
147
+ for (let i = 0; i < args.length; i++) {
148
+ const arg = args[i]
149
+ let broken
150
+ let key
151
+ let letters
152
+ let m
153
+ let next
154
+ let value
155
+
156
+ // any unknown option (except for end-of-options, "--")
157
+ if (arg !== '--' && isUnknownOptionAsArg(arg)) {
158
+ argv._.push(arg)
159
+ // -- separated by =
160
+ } else if (arg.match(/^--.+=/) || (
161
+ !configuration['short-option-groups'] && arg.match(/^-.+=/)
162
+ )) {
163
+ // Using [\s\S] instead of . because js doesn't support the
164
+ // 'dotall' regex modifier. See:
165
+ // http://stackoverflow.com/a/1068308/13216
166
+ m = arg.match(/^--?([^=]+)=([\s\S]*)$/)
167
+
168
+ // arrays format = '--f=a b c'
169
+ if (checkAllAliases(m[1], flags.arrays)) {
170
+ i = eatArray(i, m[1], args, m[2])
171
+ } else if (checkAllAliases(m[1], flags.nargs) !== false) {
172
+ // nargs format = '--f=monkey washing cat'
173
+ i = eatNargs(i, m[1], args, m[2])
174
+ } else {
175
+ setArg(m[1], m[2])
176
+ }
177
+ } else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {
178
+ key = arg.match(negatedBoolean)[1]
179
+ setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false)
180
+
181
+ // -- separated by space.
182
+ } else if (arg.match(/^--.+/) || (
183
+ !configuration['short-option-groups'] && arg.match(/^-[^-]+/)
184
+ )) {
185
+ key = arg.match(/^--?(.+)/)[1]
186
+
187
+ if (checkAllAliases(key, flags.arrays)) {
188
+ // array format = '--foo a b c'
189
+ i = eatArray(i, key, args)
190
+ } else if (checkAllAliases(key, flags.nargs) !== false) {
191
+ // nargs format = '--foo a b c'
192
+ // should be truthy even if: flags.nargs[key] === 0
193
+ i = eatNargs(i, key, args)
194
+ } else {
195
+ next = args[i + 1]
196
+
197
+ if (next !== undefined && (!next.match(/^-/) ||
198
+ next.match(negative)) &&
199
+ !checkAllAliases(key, flags.bools) &&
200
+ !checkAllAliases(key, flags.counts)) {
201
+ setArg(key, next)
202
+ i++
203
+ } else if (/^(true|false)$/.test(next)) {
204
+ setArg(key, next)
205
+ i++
206
+ } else {
207
+ setArg(key, defaultValue(key))
208
+ }
209
+ }
210
+
211
+ // dot-notation flag separated by '='.
212
+ } else if (arg.match(/^-.\..+=/)) {
213
+ m = arg.match(/^-([^=]+)=([\s\S]*)$/)
214
+ setArg(m[1], m[2])
215
+
216
+ // dot-notation flag separated by space.
217
+ } else if (arg.match(/^-.\..+/) && !arg.match(negative)) {
218
+ next = args[i + 1]
219
+ key = arg.match(/^-(.\..+)/)[1]
220
+
221
+ if (next !== undefined && !next.match(/^-/) &&
222
+ !checkAllAliases(key, flags.bools) &&
223
+ !checkAllAliases(key, flags.counts)) {
224
+ setArg(key, next)
225
+ i++
226
+ } else {
227
+ setArg(key, defaultValue(key))
228
+ }
229
+ } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
230
+ letters = arg.slice(1, -1).split('')
231
+ broken = false
232
+
233
+ for (let j = 0; j < letters.length; j++) {
234
+ next = arg.slice(j + 2)
235
+
236
+ if (letters[j + 1] && letters[j + 1] === '=') {
237
+ value = arg.slice(j + 3)
238
+ key = letters[j]
239
+
240
+ if (checkAllAliases(key, flags.arrays)) {
241
+ // array format = '-f=a b c'
242
+ i = eatArray(i, key, args, value)
243
+ } else if (checkAllAliases(key, flags.nargs) !== false) {
244
+ // nargs format = '-f=monkey washing cat'
245
+ i = eatNargs(i, key, args, value)
246
+ } else {
247
+ setArg(key, value)
248
+ }
249
+
250
+ broken = true
251
+ break
252
+ }
253
+
254
+ if (next === '-') {
255
+ setArg(letters[j], next)
256
+ continue
257
+ }
258
+
259
+ // current letter is an alphabetic character and next value is a number
260
+ if (/[A-Za-z]/.test(letters[j]) &&
261
+ /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
262
+ setArg(letters[j], next)
263
+ broken = true
264
+ break
265
+ }
266
+
267
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
268
+ setArg(letters[j], next)
269
+ broken = true
270
+ break
271
+ } else {
272
+ setArg(letters[j], defaultValue(letters[j]))
273
+ }
274
+ }
275
+
276
+ key = arg.slice(-1)[0]
277
+
278
+ if (!broken && key !== '-') {
279
+ if (checkAllAliases(key, flags.arrays)) {
280
+ // array format = '-f a b c'
281
+ i = eatArray(i, key, args)
282
+ } else if (checkAllAliases(key, flags.nargs) !== false) {
283
+ // nargs format = '-f a b c'
284
+ // should be truthy even if: flags.nargs[key] === 0
285
+ i = eatNargs(i, key, args)
286
+ } else {
287
+ next = args[i + 1]
288
+
289
+ if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||
290
+ next.match(negative)) &&
291
+ !checkAllAliases(key, flags.bools) &&
292
+ !checkAllAliases(key, flags.counts)) {
293
+ setArg(key, next)
294
+ i++
295
+ } else if (/^(true|false)$/.test(next)) {
296
+ setArg(key, next)
297
+ i++
298
+ } else {
299
+ setArg(key, defaultValue(key))
300
+ }
301
+ }
302
+ }
303
+ } else if (arg.match(/^-[0-9]$/) &&
304
+ arg.match(negative) &&
305
+ checkAllAliases(arg.slice(1), flags.bools)) {
306
+ // single-digit boolean alias, e.g: xargs -0
307
+ key = arg.slice(1)
308
+ setArg(key, defaultValue(key))
309
+ } else if (arg === '--') {
310
+ notFlags = args.slice(i + 1)
311
+ break
312
+ } else if (configuration['halt-at-non-option']) {
313
+ notFlags = args.slice(i)
314
+ break
315
+ } else {
316
+ argv._.push(maybeCoerceNumber('_', arg))
317
+ }
318
+ }
319
+
320
+ // order of precedence:
321
+ // 1. command line arg
322
+ // 2. value from env var
323
+ // 3. value from config file
324
+ // 4. value from config objects
325
+ // 5. configured default value
326
+ applyEnvVars(argv, true) // special case: check env vars that point to config file
327
+ applyEnvVars(argv, false)
328
+ setConfig(argv)
329
+ setConfigObjects()
330
+ applyDefaultsAndAliases(argv, flags.aliases, defaults, true)
331
+ applyCoercions(argv)
332
+ if (configuration['set-placeholder-key']) setPlaceholderKeys(argv)
333
+
334
+ // for any counts either not in args or without an explicit default, set to 0
335
+ Object.keys(flags.counts).forEach(function (key) {
336
+ if (!hasKey(argv, key.split('.'))) setArg(key, 0)
337
+ })
338
+
339
+ // '--' defaults to undefined.
340
+ if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = []
341
+ notFlags.forEach(function (key) {
342
+ argv[notFlagsArgv].push(key)
343
+ })
344
+
345
+ if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {
346
+ Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {
347
+ delete argv[key]
348
+ })
349
+ }
350
+
351
+ if (configuration['strip-aliased']) {
352
+ ;[].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {
353
+ if (configuration['camel-case-expansion']) {
354
+ delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')]
355
+ }
356
+
357
+ delete argv[alias]
358
+ })
359
+ }
360
+
361
+ // how many arguments should we consume, based
362
+ // on the nargs option?
363
+ function eatNargs (i, key, args, argAfterEqualSign) {
364
+ let ii
365
+ let toEat = checkAllAliases(key, flags.nargs)
366
+ // NaN has a special meaning for the array type, indicating that one or
367
+ // more values are expected.
368
+ toEat = isNaN(toEat) ? 1 : toEat
369
+
370
+ if (toEat === 0) {
371
+ if (!isUndefined(argAfterEqualSign)) {
372
+ error = Error(__('Argument unexpected for: %s', key))
373
+ }
374
+ setArg(key, defaultValue(key))
375
+ return i
376
+ }
377
+
378
+ let available = isUndefined(argAfterEqualSign) ? 0 : 1
379
+ if (configuration['nargs-eats-options']) {
380
+ // classic behavior, yargs eats positional and dash arguments.
381
+ if (args.length - (i + 1) + available < toEat) {
382
+ error = Error(__('Not enough arguments following: %s', key))
383
+ }
384
+ available = toEat
385
+ } else {
386
+ // nargs will not consume flag arguments, e.g., -abc, --foo,
387
+ // and terminates when one is observed.
388
+ for (ii = i + 1; ii < args.length; ii++) {
389
+ if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii])) available++
390
+ else break
391
+ }
392
+ if (available < toEat) error = Error(__('Not enough arguments following: %s', key))
393
+ }
394
+
395
+ let consumed = Math.min(available, toEat)
396
+ if (!isUndefined(argAfterEqualSign) && consumed > 0) {
397
+ setArg(key, argAfterEqualSign)
398
+ consumed--
399
+ }
400
+ for (ii = i + 1; ii < (consumed + i + 1); ii++) {
401
+ setArg(key, args[ii])
402
+ }
403
+
404
+ return (i + consumed)
405
+ }
406
+
407
+ // if an option is an array, eat all non-hyphenated arguments
408
+ // following it... YUM!
409
+ // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"]
410
+ function eatArray (i, key, args, argAfterEqualSign) {
411
+ let argsToSet = []
412
+ let next = argAfterEqualSign || args[i + 1]
413
+ // If both array and nargs are configured, enforce the nargs count:
414
+ const nargsCount = checkAllAliases(key, flags.nargs)
415
+
416
+ if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {
417
+ argsToSet.push(true)
418
+ } else if (isUndefined(next) ||
419
+ (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {
420
+ // for keys without value ==> argsToSet remains an empty []
421
+ // set user default value, if available
422
+ if (defaults[key] !== undefined) {
423
+ const defVal = defaults[key]
424
+ argsToSet = Array.isArray(defVal) ? defVal : [defVal]
425
+ }
426
+ } else {
427
+ // value in --option=value is eaten as is
428
+ if (!isUndefined(argAfterEqualSign)) {
429
+ argsToSet.push(processValue(key, argAfterEqualSign))
430
+ }
431
+ for (let ii = i + 1; ii < args.length; ii++) {
432
+ if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||
433
+ (nargsCount && argsToSet.length >= nargsCount)) break
434
+ next = args[ii]
435
+ if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) break
436
+ i = ii
437
+ argsToSet.push(processValue(key, next))
438
+ }
439
+ }
440
+
441
+ // If both array and nargs are configured, create an error if less than
442
+ // nargs positionals were found. NaN has special meaning, indicating
443
+ // that at least one value is required (more are okay).
444
+ if ((nargsCount && argsToSet.length < nargsCount) ||
445
+ (isNaN(nargsCount) && argsToSet.length === 0)) {
446
+ error = Error(__('Not enough arguments following: %s', key))
447
+ }
448
+
449
+ setArg(key, argsToSet)
450
+ return i
451
+ }
452
+
453
+ function setArg (key, val) {
454
+ if (/-/.test(key) && configuration['camel-case-expansion']) {
455
+ const alias = key.split('.').map(function (prop) {
456
+ return camelCase(prop)
457
+ }).join('.')
458
+ addNewAlias(key, alias)
459
+ }
460
+
461
+ const value = processValue(key, val)
462
+ const splitKey = key.split('.')
463
+ setKey(argv, splitKey, value)
464
+
465
+ // handle populating aliases of the full key
466
+ if (flags.aliases[key]) {
467
+ flags.aliases[key].forEach(function (x) {
468
+ x = x.split('.')
469
+ setKey(argv, x, value)
470
+ })
471
+ }
472
+
473
+ // handle populating aliases of the first element of the dot-notation key
474
+ if (splitKey.length > 1 && configuration['dot-notation']) {
475
+ ;(flags.aliases[splitKey[0]] || []).forEach(function (x) {
476
+ x = x.split('.')
477
+
478
+ // expand alias with nested objects in key
479
+ const a = [].concat(splitKey)
480
+ a.shift() // nuke the old key.
481
+ x = x.concat(a)
482
+
483
+ // populate alias only if is not already an alias of the full key
484
+ // (already populated above)
485
+ if (!(flags.aliases[key] || []).includes(x.join('.'))) {
486
+ setKey(argv, x, value)
487
+ }
488
+ })
489
+ }
490
+
491
+ // Set normalize getter and setter when key is in 'normalize' but isn't an array
492
+ if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
493
+ const keys = [key].concat(flags.aliases[key] || [])
494
+ keys.forEach(function (key) {
495
+ Object.defineProperty(argvReturn, key, {
496
+ enumerable: true,
497
+ get () {
498
+ return val
499
+ },
500
+ set (value) {
501
+ val = typeof value === 'string' ? path.normalize(value) : value
502
+ }
503
+ })
504
+ })
505
+ }
506
+ }
507
+
508
+ function addNewAlias (key, alias) {
509
+ if (!(flags.aliases[key] && flags.aliases[key].length)) {
510
+ flags.aliases[key] = [alias]
511
+ newAliases[alias] = true
512
+ }
513
+ if (!(flags.aliases[alias] && flags.aliases[alias].length)) {
514
+ addNewAlias(alias, key)
515
+ }
516
+ }
517
+
518
+ function processValue (key, val) {
519
+ // strings may be quoted, clean this up as we assign values.
520
+ if (typeof val === 'string' &&
521
+ (val[0] === "'" || val[0] === '"') &&
522
+ val[val.length - 1] === val[0]
523
+ ) {
524
+ val = val.substring(1, val.length - 1)
525
+ }
526
+
527
+ // handle parsing boolean arguments --foo=true --bar false.
528
+ if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
529
+ if (typeof val === 'string') val = val === 'true'
530
+ }
531
+
532
+ let value = Array.isArray(val)
533
+ ? val.map(function (v) { return maybeCoerceNumber(key, v) })
534
+ : maybeCoerceNumber(key, val)
535
+
536
+ // increment a count given as arg (either no value or value parsed as boolean)
537
+ if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {
538
+ value = increment
539
+ }
540
+
541
+ // Set normalized value when key is in 'normalize' and in 'arrays'
542
+ if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
543
+ if (Array.isArray(val)) value = val.map(path.normalize)
544
+ else value = path.normalize(val)
545
+ }
546
+ return value
547
+ }
548
+
549
+ function maybeCoerceNumber (key, value) {
550
+ if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {
551
+ const shouldCoerceNumber = isNumber(value) && configuration['parse-numbers'] && (
552
+ Number.isSafeInteger(Math.floor(value))
553
+ )
554
+ if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) value = Number(value)
555
+ }
556
+ return value
557
+ }
558
+
559
+ // set args from config.json file, this should be
560
+ // applied last so that defaults can be applied.
561
+ function setConfig (argv) {
562
+ const configLookup = Object.create(null)
563
+
564
+ // expand defaults/aliases, in-case any happen to reference
565
+ // the config.json file.
566
+ applyDefaultsAndAliases(configLookup, flags.aliases, defaults)
567
+
568
+ Object.keys(flags.configs).forEach(function (configKey) {
569
+ const configPath = argv[configKey] || configLookup[configKey]
570
+ if (configPath) {
571
+ try {
572
+ let config = null
573
+ const resolvedConfigPath = path.resolve(process.cwd(), configPath)
574
+
575
+ if (typeof flags.configs[configKey] === 'function') {
576
+ try {
577
+ config = flags.configs[configKey](resolvedConfigPath)
578
+ } catch (e) {
579
+ config = e
580
+ }
581
+ if (config instanceof Error) {
582
+ error = config
583
+ return
584
+ }
585
+ } else {
586
+ config = require(resolvedConfigPath)
587
+ }
588
+
589
+ setConfigObject(config)
590
+ } catch (ex) {
591
+ if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath))
592
+ }
593
+ }
594
+ })
595
+ }
596
+
597
+ // set args from config object.
598
+ // it recursively checks nested objects.
599
+ function setConfigObject (config, prev) {
600
+ Object.keys(config).forEach(function (key) {
601
+ const value = config[key]
602
+ const fullKey = prev ? prev + '.' + key : key
603
+
604
+ // if the value is an inner object and we have dot-notation
605
+ // enabled, treat inner objects in config the same as
606
+ // heavily nested dot notations (foo.bar.apple).
607
+ if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {
608
+ // if the value is an object but not an array, check nested object
609
+ setConfigObject(value, fullKey)
610
+ } else {
611
+ // setting arguments via CLI takes precedence over
612
+ // values within the config file.
613
+ if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {
614
+ setArg(fullKey, value)
615
+ }
616
+ }
617
+ })
618
+ }
619
+
620
+ // set all config objects passed in opts
621
+ function setConfigObjects () {
622
+ if (typeof configObjects === 'undefined') return
623
+ configObjects.forEach(function (configObject) {
624
+ setConfigObject(configObject)
625
+ })
626
+ }
627
+
628
+ function applyEnvVars (argv, configOnly) {
629
+ if (typeof envPrefix === 'undefined') return
630
+
631
+ const prefix = typeof envPrefix === 'string' ? envPrefix : ''
632
+ Object.keys(process.env).forEach(function (envVar) {
633
+ if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {
634
+ // get array of nested keys and convert them to camel case
635
+ const keys = envVar.split('__').map(function (key, i) {
636
+ if (i === 0) {
637
+ key = key.substring(prefix.length)
638
+ }
639
+ return camelCase(key)
640
+ })
641
+
642
+ if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {
643
+ setArg(keys.join('.'), process.env[envVar])
644
+ }
645
+ }
646
+ })
647
+ }
648
+
649
+ function applyCoercions (argv) {
650
+ let coerce
651
+ const applied = new Set()
652
+ Object.keys(argv).forEach(function (key) {
653
+ if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases
654
+ coerce = checkAllAliases(key, flags.coercions)
655
+ if (typeof coerce === 'function') {
656
+ try {
657
+ const value = maybeCoerceNumber(key, coerce(argv[key]))
658
+ ;([].concat(flags.aliases[key] || [], key)).forEach(ali => {
659
+ applied.add(ali)
660
+ argv[ali] = value
661
+ })
662
+ } catch (err) {
663
+ error = err
664
+ }
665
+ }
666
+ }
667
+ })
668
+ }
669
+
670
+ function setPlaceholderKeys (argv) {
671
+ flags.keys.forEach((key) => {
672
+ // don't set placeholder keys for dot notation options 'foo.bar'.
673
+ if (~key.indexOf('.')) return
674
+ if (typeof argv[key] === 'undefined') argv[key] = undefined
675
+ })
676
+ return argv
677
+ }
678
+
679
+ function applyDefaultsAndAliases (obj, aliases, defaults, canLog = false) {
680
+ Object.keys(defaults).forEach(function (key) {
681
+ if (!hasKey(obj, key.split('.'))) {
682
+ setKey(obj, key.split('.'), defaults[key])
683
+ if (canLog) defaulted[key] = true
684
+
685
+ ;(aliases[key] || []).forEach(function (x) {
686
+ if (hasKey(obj, x.split('.'))) return
687
+ setKey(obj, x.split('.'), defaults[key])
688
+ })
689
+ }
690
+ })
691
+ }
692
+
693
+ function hasKey (obj, keys) {
694
+ let o = obj
695
+
696
+ if (!configuration['dot-notation']) keys = [keys.join('.')]
697
+
698
+ keys.slice(0, -1).forEach(function (key) {
699
+ o = (o[key] || {})
700
+ })
701
+
702
+ const key = keys[keys.length - 1]
703
+
704
+ if (typeof o !== 'object') return false
705
+ else return key in o
706
+ }
707
+
708
+ function setKey (obj, keys, value) {
709
+ let o = obj
710
+
711
+ if (!configuration['dot-notation']) keys = [keys.join('.')]
712
+
713
+ keys.slice(0, -1).forEach(function (key, index) {
714
+ // TODO(bcoe): in the next major version of yargs, switch to
715
+ // Object.create(null) for dot notation:
716
+ key = sanitizeKey(key)
717
+
718
+ if (typeof o === 'object' && o[key] === undefined) {
719
+ o[key] = {}
720
+ }
721
+
722
+ if (typeof o[key] !== 'object' || Array.isArray(o[key])) {
723
+ // ensure that o[key] is an array, and that the last item is an empty object.
724
+ if (Array.isArray(o[key])) {
725
+ o[key].push({})
726
+ } else {
727
+ o[key] = [o[key], {}]
728
+ }
729
+
730
+ // we want to update the empty object at the end of the o[key] array, so set o to that object
731
+ o = o[key][o[key].length - 1]
732
+ } else {
733
+ o = o[key]
734
+ }
735
+ })
736
+
737
+ // TODO(bcoe): in the next major version of yargs, switch to
738
+ // Object.create(null) for dot notation:
739
+ const key = sanitizeKey(keys[keys.length - 1])
740
+
741
+ const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays)
742
+ const isValueArray = Array.isArray(value)
743
+ let duplicate = configuration['duplicate-arguments-array']
744
+
745
+ // nargs has higher priority than duplicate
746
+ if (!duplicate && checkAllAliases(key, flags.nargs)) {
747
+ duplicate = true
748
+ if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {
749
+ o[key] = undefined
750
+ }
751
+ }
752
+
753
+ if (value === increment) {
754
+ o[key] = increment(o[key])
755
+ } else if (Array.isArray(o[key])) {
756
+ if (duplicate && isTypeArray && isValueArray) {
757
+ o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value])
758
+ } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
759
+ o[key] = value
760
+ } else {
761
+ o[key] = o[key].concat([value])
762
+ }
763
+ } else if (o[key] === undefined && isTypeArray) {
764
+ o[key] = isValueArray ? value : [value]
765
+ } else if (duplicate && !(
766
+ o[key] === undefined ||
767
+ checkAllAliases(key, flags.counts) ||
768
+ checkAllAliases(key, flags.bools)
769
+ )) {
770
+ o[key] = [o[key], value]
771
+ } else {
772
+ o[key] = value
773
+ }
774
+ }
775
+
776
+ // extend the aliases list with inferred aliases.
777
+ function extendAliases (...args) {
778
+ args.forEach(function (obj) {
779
+ Object.keys(obj || {}).forEach(function (key) {
780
+ // short-circuit if we've already added a key
781
+ // to the aliases array, for example it might
782
+ // exist in both 'opts.default' and 'opts.key'.
783
+ if (flags.aliases[key]) return
784
+
785
+ flags.aliases[key] = [].concat(aliases[key] || [])
786
+ // For "--option-name", also set argv.optionName
787
+ flags.aliases[key].concat(key).forEach(function (x) {
788
+ if (/-/.test(x) && configuration['camel-case-expansion']) {
789
+ const c = camelCase(x)
790
+ if (c !== key && flags.aliases[key].indexOf(c) === -1) {
791
+ flags.aliases[key].push(c)
792
+ newAliases[c] = true
793
+ }
794
+ }
795
+ })
796
+ // For "--optionName", also set argv['option-name']
797
+ flags.aliases[key].concat(key).forEach(function (x) {
798
+ if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {
799
+ const c = decamelize(x, '-')
800
+ if (c !== key && flags.aliases[key].indexOf(c) === -1) {
801
+ flags.aliases[key].push(c)
802
+ newAliases[c] = true
803
+ }
804
+ }
805
+ })
806
+ flags.aliases[key].forEach(function (x) {
807
+ flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {
808
+ return x !== y
809
+ }))
810
+ })
811
+ })
812
+ })
813
+ }
814
+
815
+ // return the 1st set flag for any of a key's aliases (or false if no flag set)
816
+ function checkAllAliases (key, flag) {
817
+ const toCheck = [].concat(flags.aliases[key] || [], key)
818
+ const keys = Object.keys(flag)
819
+ const setAlias = toCheck.find(key => keys.includes(key))
820
+ return setAlias ? flag[setAlias] : false
821
+ }
822
+
823
+ function hasAnyFlag (key) {
824
+ const toCheck = [].concat(Object.keys(flags).map(k => flags[k]))
825
+ return toCheck.some(function (flag) {
826
+ return Array.isArray(flag) ? flag.includes(key) : flag[key]
827
+ })
828
+ }
829
+
830
+ function hasFlagsMatching (arg, ...patterns) {
831
+ const toCheck = [].concat(...patterns)
832
+ return toCheck.some(function (pattern) {
833
+ const match = arg.match(pattern)
834
+ return match && hasAnyFlag(match[1])
835
+ })
836
+ }
837
+
838
+ // based on a simplified version of the short flag group parsing logic
839
+ function hasAllShortFlags (arg) {
840
+ // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group
841
+ if (arg.match(negative) || !arg.match(/^-[^-]+/)) { return false }
842
+ let hasAllFlags = true
843
+ let next
844
+ const letters = arg.slice(1).split('')
845
+ for (let j = 0; j < letters.length; j++) {
846
+ next = arg.slice(j + 2)
847
+
848
+ if (!hasAnyFlag(letters[j])) {
849
+ hasAllFlags = false
850
+ break
851
+ }
852
+
853
+ if ((letters[j + 1] && letters[j + 1] === '=') ||
854
+ next === '-' ||
855
+ (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) ||
856
+ (letters[j + 1] && letters[j + 1].match(/\W/))) {
857
+ break
858
+ }
859
+ }
860
+ return hasAllFlags
861
+ }
862
+
863
+ function isUnknownOptionAsArg (arg) {
864
+ return configuration['unknown-options-as-args'] && isUnknownOption(arg)
865
+ }
866
+
867
+ function isUnknownOption (arg) {
868
+ // ignore negative numbers
869
+ if (arg.match(negative)) { return false }
870
+ // if this is a short option group and all of them are configured, it isn't unknown
871
+ if (hasAllShortFlags(arg)) { return false }
872
+ // e.g. '--count=2'
873
+ const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/
874
+ // e.g. '-a' or '--arg'
875
+ const normalFlag = /^-+([^=]+?)$/
876
+ // e.g. '-a-'
877
+ const flagEndingInHyphen = /^-+([^=]+?)-$/
878
+ // e.g. '-abc123'
879
+ const flagEndingInDigits = /^-+([^=]+?\d+)$/
880
+ // e.g. '-a/usr/local'
881
+ const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/
882
+ // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method
883
+ return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters)
884
+ }
885
+
886
+ // make a best effor to pick a default value
887
+ // for an option based on name and type.
888
+ function defaultValue (key) {
889
+ if (!checkAllAliases(key, flags.bools) &&
890
+ !checkAllAliases(key, flags.counts) &&
891
+ `${key}` in defaults) {
892
+ return defaults[key]
893
+ } else {
894
+ return defaultForType(guessType(key))
895
+ }
896
+ }
897
+
898
+ // return a default value, given the type of a flag.,
899
+ // e.g., key of type 'string' will default to '', rather than 'true'.
900
+ function defaultForType (type) {
901
+ const def = {
902
+ boolean: true,
903
+ string: '',
904
+ number: undefined,
905
+ array: []
906
+ }
907
+
908
+ return def[type]
909
+ }
910
+
911
+ // given a flag, enforce a default type.
912
+ function guessType (key) {
913
+ let type = 'boolean'
914
+ if (checkAllAliases(key, flags.strings)) type = 'string'
915
+ else if (checkAllAliases(key, flags.numbers)) type = 'number'
916
+ else if (checkAllAliases(key, flags.bools)) type = 'boolean'
917
+ else if (checkAllAliases(key, flags.arrays)) type = 'array'
918
+ return type
919
+ }
920
+
921
+ function isNumber (x) {
922
+ if (x === null || x === undefined) return false
923
+ // if loaded from config, may already be a number.
924
+ if (typeof x === 'number') return true
925
+ // hexadecimal.
926
+ if (/^0x[0-9a-f]+$/i.test(x)) return true
927
+ // don't treat 0123 as a number; as it drops the leading '0'.
928
+ if (x.length > 1 && x[0] === '0') return false
929
+ return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x)
930
+ }
931
+
932
+ function isUndefined (num) {
933
+ return num === undefined
934
+ }
935
+
936
+ // check user configuration settings for inconsistencies
937
+ function checkConfiguration () {
938
+ // count keys should not be set as array/narg
939
+ Object.keys(flags.counts).find(key => {
940
+ if (checkAllAliases(key, flags.arrays)) {
941
+ error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key))
942
+ return true
943
+ } else if (checkAllAliases(key, flags.nargs)) {
944
+ error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key))
945
+ return true
946
+ }
947
+ })
948
+ }
949
+
950
+ return {
951
+ argv: Object.assign(argvReturn, argv),
952
+ error: error,
953
+ aliases: Object.assign({}, flags.aliases),
954
+ newAliases: Object.assign({}, newAliases),
955
+ defaulted: Object.assign({}, defaulted),
956
+ configuration: configuration
957
+ }
958
+ }
959
+
960
+ // if any aliases reference each other, we should
961
+ // merge them together.
962
+ function combineAliases (aliases) {
963
+ const aliasArrays = []
964
+ const combined = Object.create(null)
965
+ let change = true
966
+
967
+ // turn alias lookup hash {key: ['alias1', 'alias2']} into
968
+ // a simple array ['key', 'alias1', 'alias2']
969
+ Object.keys(aliases).forEach(function (key) {
970
+ aliasArrays.push(
971
+ [].concat(aliases[key], key)
972
+ )
973
+ })
974
+
975
+ // combine arrays until zero changes are
976
+ // made in an iteration.
977
+ while (change) {
978
+ change = false
979
+ for (let i = 0; i < aliasArrays.length; i++) {
980
+ for (let ii = i + 1; ii < aliasArrays.length; ii++) {
981
+ const intersect = aliasArrays[i].filter(function (v) {
982
+ return aliasArrays[ii].indexOf(v) !== -1
983
+ })
984
+
985
+ if (intersect.length) {
986
+ aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii])
987
+ aliasArrays.splice(ii, 1)
988
+ change = true
989
+ break
990
+ }
991
+ }
992
+ }
993
+ }
994
+
995
+ // map arrays back to the hash-lookup (de-dupe while
996
+ // we're at it).
997
+ aliasArrays.forEach(function (aliasArray) {
998
+ aliasArray = aliasArray.filter(function (v, i, self) {
999
+ return self.indexOf(v) === i
1000
+ })
1001
+ combined[aliasArray.pop()] = aliasArray
1002
+ })
1003
+
1004
+ return combined
1005
+ }
1006
+
1007
+ // this function should only be called when a count is given as an arg
1008
+ // it is NOT called to set a default value
1009
+ // thus we can start the count at 1 instead of 0
1010
+ function increment (orig) {
1011
+ return orig !== undefined ? orig + 1 : 1
1012
+ }
1013
+
1014
+ function Parser (args, opts) {
1015
+ const result = parse(args.slice(), opts)
1016
+ return result.argv
1017
+ }
1018
+
1019
+ // parse arguments and return detailed
1020
+ // meta information, aliases, etc.
1021
+ Parser.detailed = function (args, opts) {
1022
+ return parse(args.slice(), opts)
1023
+ }
1024
+
1025
+ // TODO(bcoe): in the next major version of yargs, switch to
1026
+ // Object.create(null) for dot notation:
1027
+ function sanitizeKey (key) {
1028
+ if (key === '__proto__') return '___proto___'
1029
+ return key
1030
+ }
1031
+
1032
+ module.exports = Parser