@marktrue/dsh-mobile-remote 3.2.3-rc.1 → 3.2.4-alpha.1-app

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 (353) hide show
  1. package/DSH-Remote-v3.2.4.apk +4 -0
  2. package/README.md +6 -254
  3. package/manifest.json +21 -0
  4. package/package.json +12 -65
  5. package/CHANGELOG.md +0 -1362
  6. package/CONTRIBUTING.md +0 -59
  7. package/FAQ.md +0 -111
  8. package/cordis.patch.yml +0 -14
  9. package/docs/00-/345/274/200/345/217/221/346/200/273/347/272/262.md +0 -125
  10. package/docs/01-PRD.md +0 -148
  11. package/docs/02-architecture.md +0 -249
  12. package/docs/03-api.md +0 -930
  13. package/docs/04-security.md +0 -100
  14. package/docs/05-test-cases.md +0 -405
  15. package/docs/06-install-run.md +0 -372
  16. package/docs/07-user-manual.md +0 -70
  17. package/docs/08-/346/211/251/345/261/225/345/274/200/345/217/221/346/214/207/345/215/227.md +0 -86
  18. package/docs/09-compatibility.md +0 -227
  19. package/docs/10-release.md +0 -929
  20. package/docs/screenshots/01-home.png +0 -0
  21. package/docs/screenshots/02-notifications.png +0 -0
  22. package/docs/screenshots/03-sessions.png +0 -0
  23. package/docs/screenshots/04-chat.png +0 -0
  24. package/docs/screenshots/05-settings.png +0 -0
  25. package/docs/screenshots/06-new-session.png +0 -0
  26. package/docs/screenshots/pgy-appstore.jpg +0 -0
  27. package/docs/screenshots/pgy-mobile-app.jpg +0 -0
  28. package/docs/screenshots/pgy-pc-client.jpg +0 -0
  29. package/docs/spec-app-auto-update.md +0 -143
  30. package/lib/account-usage.js +0 -145
  31. package/lib/app-alignment.js +0 -112
  32. package/lib/app-carrier-store.js +0 -1972
  33. package/lib/app-carrier.js +0 -609
  34. package/lib/client.js +0 -1174
  35. package/lib/desktop-form.js +0 -738
  36. package/lib/endpoint-registry.js +0 -165
  37. package/lib/git-read-bundled-provider.js +0 -255
  38. package/lib/git-read-service.js +0 -322
  39. package/lib/index.js +0 -9609
  40. package/lib/npm-update-source.js +0 -226
  41. package/lib/plugin-content-digest.js +0 -80
  42. package/lib/plugin-self-update.js +0 -997
  43. package/lib/plugin-update-controller.js +0 -274
  44. package/lib/plugin-update-log.js +0 -164
  45. package/lib/plugin-update-transaction.js +0 -322
  46. package/lib/plugin-update.js +0 -309
  47. package/lib/runtime-dependency-snapshot.js +0 -345
  48. package/lib/session-title-cache.js +0 -123
  49. package/lib/session-title-refresh.js +0 -261
  50. package/lib/tool-process.js +0 -20
  51. package/lib/update-fetch.js +0 -24
  52. package/lib/update-lock-arbiter.js +0 -170
  53. package/lib/update-supervisor.js +0 -346
  54. package/node_modules/ansi-regex/index.d.ts +0 -37
  55. package/node_modules/ansi-regex/index.js +0 -10
  56. package/node_modules/ansi-regex/license +0 -9
  57. package/node_modules/ansi-regex/package.json +0 -55
  58. package/node_modules/ansi-regex/readme.md +0 -78
  59. package/node_modules/ansi-styles/index.d.ts +0 -345
  60. package/node_modules/ansi-styles/index.js +0 -163
  61. package/node_modules/ansi-styles/license +0 -9
  62. package/node_modules/ansi-styles/package.json +0 -56
  63. package/node_modules/ansi-styles/readme.md +0 -152
  64. package/node_modules/camelcase/index.d.ts +0 -63
  65. package/node_modules/camelcase/index.js +0 -76
  66. package/node_modules/camelcase/license +0 -9
  67. package/node_modules/camelcase/package.json +0 -43
  68. package/node_modules/camelcase/readme.md +0 -99
  69. package/node_modules/cliui/CHANGELOG.md +0 -76
  70. package/node_modules/cliui/LICENSE.txt +0 -14
  71. package/node_modules/cliui/README.md +0 -115
  72. package/node_modules/cliui/index.js +0 -354
  73. package/node_modules/cliui/package.json +0 -65
  74. package/node_modules/color-convert/CHANGELOG.md +0 -54
  75. package/node_modules/color-convert/LICENSE +0 -21
  76. package/node_modules/color-convert/README.md +0 -68
  77. package/node_modules/color-convert/conversions.js +0 -839
  78. package/node_modules/color-convert/index.js +0 -81
  79. package/node_modules/color-convert/package.json +0 -48
  80. package/node_modules/color-convert/route.js +0 -97
  81. package/node_modules/color-name/LICENSE +0 -8
  82. package/node_modules/color-name/README.md +0 -11
  83. package/node_modules/color-name/index.js +0 -152
  84. package/node_modules/color-name/package.json +0 -28
  85. package/node_modules/decamelize/index.js +0 -13
  86. package/node_modules/decamelize/license +0 -21
  87. package/node_modules/decamelize/package.json +0 -38
  88. package/node_modules/decamelize/readme.md +0 -48
  89. package/node_modules/dijkstrajs/.travis.yml +0 -4
  90. package/node_modules/dijkstrajs/CONTRIBUTING.md +0 -8
  91. package/node_modules/dijkstrajs/LICENSE.md +0 -19
  92. package/node_modules/dijkstrajs/README.md +0 -18
  93. package/node_modules/dijkstrajs/dijkstra.js +0 -165
  94. package/node_modules/dijkstrajs/package.json +0 -60
  95. package/node_modules/dijkstrajs/test/dijkstra.test.js +0 -96
  96. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  97. package/node_modules/emoji-regex/README.md +0 -73
  98. package/node_modules/emoji-regex/es2015/index.js +0 -6
  99. package/node_modules/emoji-regex/es2015/text.js +0 -6
  100. package/node_modules/emoji-regex/index.d.ts +0 -23
  101. package/node_modules/emoji-regex/index.js +0 -6
  102. package/node_modules/emoji-regex/package.json +0 -50
  103. package/node_modules/emoji-regex/text.js +0 -6
  104. package/node_modules/find-up/index.d.ts +0 -137
  105. package/node_modules/find-up/index.js +0 -89
  106. package/node_modules/find-up/license +0 -9
  107. package/node_modules/find-up/package.json +0 -53
  108. package/node_modules/find-up/readme.md +0 -156
  109. package/node_modules/get-caller-file/LICENSE.md +0 -6
  110. package/node_modules/get-caller-file/README.md +0 -41
  111. package/node_modules/get-caller-file/index.d.ts +0 -2
  112. package/node_modules/get-caller-file/index.js +0 -22
  113. package/node_modules/get-caller-file/index.js.map +0 -1
  114. package/node_modules/get-caller-file/package.json +0 -42
  115. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  116. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  117. package/node_modules/is-fullwidth-code-point/license +0 -9
  118. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  119. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  120. package/node_modules/locate-path/index.d.ts +0 -83
  121. package/node_modules/locate-path/index.js +0 -65
  122. package/node_modules/locate-path/license +0 -9
  123. package/node_modules/locate-path/package.json +0 -45
  124. package/node_modules/locate-path/readme.md +0 -122
  125. package/node_modules/p-limit/index.d.ts +0 -38
  126. package/node_modules/p-limit/index.js +0 -57
  127. package/node_modules/p-limit/license +0 -9
  128. package/node_modules/p-limit/package.json +0 -52
  129. package/node_modules/p-limit/readme.md +0 -101
  130. package/node_modules/p-locate/index.d.ts +0 -64
  131. package/node_modules/p-locate/index.js +0 -52
  132. package/node_modules/p-locate/license +0 -9
  133. package/node_modules/p-locate/package.json +0 -53
  134. package/node_modules/p-locate/readme.md +0 -90
  135. package/node_modules/p-try/index.d.ts +0 -39
  136. package/node_modules/p-try/index.js +0 -9
  137. package/node_modules/p-try/license +0 -9
  138. package/node_modules/p-try/package.json +0 -42
  139. package/node_modules/p-try/readme.md +0 -58
  140. package/node_modules/path-exists/index.d.ts +0 -28
  141. package/node_modules/path-exists/index.js +0 -23
  142. package/node_modules/path-exists/license +0 -9
  143. package/node_modules/path-exists/package.json +0 -39
  144. package/node_modules/path-exists/readme.md +0 -52
  145. package/node_modules/pngjs/.eslintignore +0 -2
  146. package/node_modules/pngjs/.eslintrc.json +0 -19
  147. package/node_modules/pngjs/.prettierignore +0 -3
  148. package/node_modules/pngjs/LICENSE +0 -20
  149. package/node_modules/pngjs/README.md +0 -429
  150. package/node_modules/pngjs/browser.js +0 -16096
  151. package/node_modules/pngjs/coverage/lcov-report/base.css +0 -354
  152. package/node_modules/pngjs/coverage/lcov-report/bitmapper.js.html +0 -881
  153. package/node_modules/pngjs/coverage/lcov-report/bitpacker.js.html +0 -554
  154. package/node_modules/pngjs/coverage/lcov-report/block-navigation.js +0 -77
  155. package/node_modules/pngjs/coverage/lcov-report/chunkstream.js.html +0 -647
  156. package/node_modules/pngjs/coverage/lcov-report/constants.js.html +0 -176
  157. package/node_modules/pngjs/coverage/lcov-report/crc.js.html +0 -200
  158. package/node_modules/pngjs/coverage/lcov-report/favicon.png +0 -0
  159. package/node_modules/pngjs/coverage/lcov-report/filter-pack.js.html +0 -593
  160. package/node_modules/pngjs/coverage/lcov-report/filter-parse-async.js.html +0 -152
  161. package/node_modules/pngjs/coverage/lcov-report/filter-parse-sync.js.html +0 -143
  162. package/node_modules/pngjs/coverage/lcov-report/filter-parse.js.html +0 -611
  163. package/node_modules/pngjs/coverage/lcov-report/format-normaliser.js.html +0 -359
  164. package/node_modules/pngjs/coverage/lcov-report/index.html +0 -426
  165. package/node_modules/pngjs/coverage/lcov-report/interlace.js.html +0 -365
  166. package/node_modules/pngjs/coverage/lcov-report/packer-async.js.html +0 -230
  167. package/node_modules/pngjs/coverage/lcov-report/packer-sync.js.html +0 -248
  168. package/node_modules/pngjs/coverage/lcov-report/packer.js.html +0 -467
  169. package/node_modules/pngjs/coverage/lcov-report/paeth-predictor.js.html +0 -128
  170. package/node_modules/pngjs/coverage/lcov-report/parser-async.js.html +0 -575
  171. package/node_modules/pngjs/coverage/lcov-report/parser-sync.js.html +0 -404
  172. package/node_modules/pngjs/coverage/lcov-report/parser.js.html +0 -950
  173. package/node_modules/pngjs/coverage/lcov-report/png-sync.js.html +0 -116
  174. package/node_modules/pngjs/coverage/lcov-report/png.js.html +0 -662
  175. package/node_modules/pngjs/coverage/lcov-report/prettify.css +0 -101
  176. package/node_modules/pngjs/coverage/lcov-report/prettify.js +0 -1007
  177. package/node_modules/pngjs/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  178. package/node_modules/pngjs/coverage/lcov-report/sorter.js +0 -169
  179. package/node_modules/pngjs/coverage/lcov-report/sync-inflate.js.html +0 -584
  180. package/node_modules/pngjs/coverage/lcov-report/sync-reader.js.html +0 -215
  181. package/node_modules/pngjs/coverage/lcov.info +0 -2177
  182. package/node_modules/pngjs/lib/bitmapper.js +0 -267
  183. package/node_modules/pngjs/lib/bitpacker.js +0 -158
  184. package/node_modules/pngjs/lib/chunkstream.js +0 -189
  185. package/node_modules/pngjs/lib/constants.js +0 -32
  186. package/node_modules/pngjs/lib/crc.js +0 -40
  187. package/node_modules/pngjs/lib/filter-pack.js +0 -171
  188. package/node_modules/pngjs/lib/filter-parse-async.js +0 -24
  189. package/node_modules/pngjs/lib/filter-parse-sync.js +0 -21
  190. package/node_modules/pngjs/lib/filter-parse.js +0 -177
  191. package/node_modules/pngjs/lib/format-normaliser.js +0 -93
  192. package/node_modules/pngjs/lib/interlace.js +0 -95
  193. package/node_modules/pngjs/lib/packer-async.js +0 -50
  194. package/node_modules/pngjs/lib/packer-sync.js +0 -56
  195. package/node_modules/pngjs/lib/packer.js +0 -129
  196. package/node_modules/pngjs/lib/paeth-predictor.js +0 -16
  197. package/node_modules/pngjs/lib/parser-async.js +0 -165
  198. package/node_modules/pngjs/lib/parser-sync.js +0 -108
  199. package/node_modules/pngjs/lib/parser.js +0 -290
  200. package/node_modules/pngjs/lib/png-sync.js +0 -12
  201. package/node_modules/pngjs/lib/png.js +0 -194
  202. package/node_modules/pngjs/lib/sync-inflate.js +0 -168
  203. package/node_modules/pngjs/lib/sync-reader.js +0 -45
  204. package/node_modules/pngjs/package.json +0 -73
  205. package/node_modules/qrcode/README.md +0 -770
  206. package/node_modules/qrcode/bin/qrcode +0 -159
  207. package/node_modules/qrcode/helper/to-sjis-browser.js +0 -2
  208. package/node_modules/qrcode/helper/to-sjis.js +0 -105
  209. package/node_modules/qrcode/lib/browser.js +0 -76
  210. package/node_modules/qrcode/lib/can-promise.js +0 -7
  211. package/node_modules/qrcode/lib/core/alignment-pattern.js +0 -83
  212. package/node_modules/qrcode/lib/core/alphanumeric-data.js +0 -59
  213. package/node_modules/qrcode/lib/core/bit-buffer.js +0 -37
  214. package/node_modules/qrcode/lib/core/bit-matrix.js +0 -65
  215. package/node_modules/qrcode/lib/core/byte-data.js +0 -30
  216. package/node_modules/qrcode/lib/core/error-correction-code.js +0 -135
  217. package/node_modules/qrcode/lib/core/error-correction-level.js +0 -50
  218. package/node_modules/qrcode/lib/core/finder-pattern.js +0 -22
  219. package/node_modules/qrcode/lib/core/format-info.js +0 -29
  220. package/node_modules/qrcode/lib/core/galois-field.js +0 -69
  221. package/node_modules/qrcode/lib/core/kanji-data.js +0 -54
  222. package/node_modules/qrcode/lib/core/mask-pattern.js +0 -234
  223. package/node_modules/qrcode/lib/core/mode.js +0 -167
  224. package/node_modules/qrcode/lib/core/numeric-data.js +0 -43
  225. package/node_modules/qrcode/lib/core/polynomial.js +0 -62
  226. package/node_modules/qrcode/lib/core/qrcode.js +0 -495
  227. package/node_modules/qrcode/lib/core/reed-solomon-encoder.js +0 -56
  228. package/node_modules/qrcode/lib/core/regex.js +0 -31
  229. package/node_modules/qrcode/lib/core/segments.js +0 -330
  230. package/node_modules/qrcode/lib/core/utils.js +0 -63
  231. package/node_modules/qrcode/lib/core/version-check.js +0 -9
  232. package/node_modules/qrcode/lib/core/version.js +0 -163
  233. package/node_modules/qrcode/lib/index.js +0 -12
  234. package/node_modules/qrcode/lib/renderer/canvas.js +0 -63
  235. package/node_modules/qrcode/lib/renderer/png.js +0 -78
  236. package/node_modules/qrcode/lib/renderer/svg-tag.js +0 -81
  237. package/node_modules/qrcode/lib/renderer/svg.js +0 -19
  238. package/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +0 -85
  239. package/node_modules/qrcode/lib/renderer/terminal/terminal.js +0 -49
  240. package/node_modules/qrcode/lib/renderer/terminal.js +0 -9
  241. package/node_modules/qrcode/lib/renderer/utf8.js +0 -71
  242. package/node_modules/qrcode/lib/renderer/utils.js +0 -99
  243. package/node_modules/qrcode/lib/server.js +0 -138
  244. package/node_modules/qrcode/license +0 -10
  245. package/node_modules/qrcode/package.json +0 -77
  246. package/node_modules/require-directory/.jshintrc +0 -67
  247. package/node_modules/require-directory/.npmignore +0 -1
  248. package/node_modules/require-directory/.travis.yml +0 -3
  249. package/node_modules/require-directory/LICENSE +0 -22
  250. package/node_modules/require-directory/README.markdown +0 -184
  251. package/node_modules/require-directory/index.js +0 -86
  252. package/node_modules/require-directory/package.json +0 -40
  253. package/node_modules/require-main-filename/CHANGELOG.md +0 -26
  254. package/node_modules/require-main-filename/LICENSE.txt +0 -14
  255. package/node_modules/require-main-filename/README.md +0 -26
  256. package/node_modules/require-main-filename/index.js +0 -18
  257. package/node_modules/require-main-filename/package.json +0 -35
  258. package/node_modules/set-blocking/CHANGELOG.md +0 -26
  259. package/node_modules/set-blocking/LICENSE.txt +0 -14
  260. package/node_modules/set-blocking/README.md +0 -31
  261. package/node_modules/set-blocking/index.js +0 -7
  262. package/node_modules/set-blocking/package.json +0 -42
  263. package/node_modules/string-width/index.d.ts +0 -29
  264. package/node_modules/string-width/index.js +0 -47
  265. package/node_modules/string-width/license +0 -9
  266. package/node_modules/string-width/package.json +0 -56
  267. package/node_modules/string-width/readme.md +0 -50
  268. package/node_modules/strip-ansi/index.d.ts +0 -17
  269. package/node_modules/strip-ansi/index.js +0 -4
  270. package/node_modules/strip-ansi/license +0 -9
  271. package/node_modules/strip-ansi/package.json +0 -54
  272. package/node_modules/strip-ansi/readme.md +0 -46
  273. package/node_modules/which-module/LICENSE +0 -13
  274. package/node_modules/which-module/README.md +0 -58
  275. package/node_modules/which-module/index.js +0 -9
  276. package/node_modules/which-module/package.json +0 -41
  277. package/node_modules/wrap-ansi/index.js +0 -186
  278. package/node_modules/wrap-ansi/license +0 -9
  279. package/node_modules/wrap-ansi/package.json +0 -61
  280. package/node_modules/wrap-ansi/readme.md +0 -97
  281. package/node_modules/y18n/CHANGELOG.md +0 -35
  282. package/node_modules/y18n/LICENSE +0 -13
  283. package/node_modules/y18n/README.md +0 -109
  284. package/node_modules/y18n/index.js +0 -188
  285. package/node_modules/y18n/package.json +0 -39
  286. package/node_modules/yargs/CHANGELOG.md +0 -420
  287. package/node_modules/yargs/LICENSE +0 -21
  288. package/node_modules/yargs/README.md +0 -140
  289. package/node_modules/yargs/build/lib/apply-extends.d.ts +0 -2
  290. package/node_modules/yargs/build/lib/apply-extends.js +0 -65
  291. package/node_modules/yargs/build/lib/argsert.d.ts +0 -2
  292. package/node_modules/yargs/build/lib/argsert.js +0 -65
  293. package/node_modules/yargs/build/lib/command.d.ts +0 -64
  294. package/node_modules/yargs/build/lib/command.js +0 -416
  295. package/node_modules/yargs/build/lib/common-types.d.ts +0 -36
  296. package/node_modules/yargs/build/lib/common-types.js +0 -25
  297. package/node_modules/yargs/build/lib/completion-templates.d.ts +0 -2
  298. package/node_modules/yargs/build/lib/completion-templates.js +0 -50
  299. package/node_modules/yargs/build/lib/completion.d.ts +0 -21
  300. package/node_modules/yargs/build/lib/completion.js +0 -135
  301. package/node_modules/yargs/build/lib/is-promise.d.ts +0 -1
  302. package/node_modules/yargs/build/lib/is-promise.js +0 -9
  303. package/node_modules/yargs/build/lib/levenshtein.d.ts +0 -1
  304. package/node_modules/yargs/build/lib/levenshtein.js +0 -58
  305. package/node_modules/yargs/build/lib/middleware.d.ts +0 -10
  306. package/node_modules/yargs/build/lib/middleware.js +0 -57
  307. package/node_modules/yargs/build/lib/obj-filter.d.ts +0 -1
  308. package/node_modules/yargs/build/lib/obj-filter.js +0 -14
  309. package/node_modules/yargs/build/lib/parse-command.d.ts +0 -11
  310. package/node_modules/yargs/build/lib/parse-command.js +0 -36
  311. package/node_modules/yargs/build/lib/process-argv.d.ts +0 -2
  312. package/node_modules/yargs/build/lib/process-argv.js +0 -31
  313. package/node_modules/yargs/build/lib/usage.d.ts +0 -49
  314. package/node_modules/yargs/build/lib/usage.js +0 -540
  315. package/node_modules/yargs/build/lib/validation.d.ts +0 -34
  316. package/node_modules/yargs/build/lib/validation.js +0 -330
  317. package/node_modules/yargs/build/lib/yargs.d.ts +0 -274
  318. package/node_modules/yargs/build/lib/yargs.js +0 -1190
  319. package/node_modules/yargs/build/lib/yerror.d.ts +0 -4
  320. package/node_modules/yargs/build/lib/yerror.js +0 -11
  321. package/node_modules/yargs/index.js +0 -40
  322. package/node_modules/yargs/locales/be.json +0 -46
  323. package/node_modules/yargs/locales/de.json +0 -46
  324. package/node_modules/yargs/locales/en.json +0 -51
  325. package/node_modules/yargs/locales/es.json +0 -46
  326. package/node_modules/yargs/locales/fi.json +0 -49
  327. package/node_modules/yargs/locales/fr.json +0 -53
  328. package/node_modules/yargs/locales/hi.json +0 -49
  329. package/node_modules/yargs/locales/hu.json +0 -46
  330. package/node_modules/yargs/locales/id.json +0 -50
  331. package/node_modules/yargs/locales/it.json +0 -46
  332. package/node_modules/yargs/locales/ja.json +0 -51
  333. package/node_modules/yargs/locales/ko.json +0 -49
  334. package/node_modules/yargs/locales/nb.json +0 -44
  335. package/node_modules/yargs/locales/nl.json +0 -49
  336. package/node_modules/yargs/locales/nn.json +0 -44
  337. package/node_modules/yargs/locales/pirate.json +0 -13
  338. package/node_modules/yargs/locales/pl.json +0 -49
  339. package/node_modules/yargs/locales/pt.json +0 -45
  340. package/node_modules/yargs/locales/pt_BR.json +0 -48
  341. package/node_modules/yargs/locales/ru.json +0 -46
  342. package/node_modules/yargs/locales/th.json +0 -46
  343. package/node_modules/yargs/locales/tr.json +0 -48
  344. package/node_modules/yargs/locales/zh_CN.json +0 -48
  345. package/node_modules/yargs/locales/zh_TW.json +0 -47
  346. package/node_modules/yargs/package.json +0 -92
  347. package/node_modules/yargs/yargs.js +0 -14
  348. package/node_modules/yargs-parser/CHANGELOG.md +0 -601
  349. package/node_modules/yargs-parser/LICENSE.txt +0 -14
  350. package/node_modules/yargs-parser/README.md +0 -449
  351. package/node_modules/yargs-parser/index.js +0 -1032
  352. package/node_modules/yargs-parser/lib/tokenize-arg-string.js +0 -40
  353. package/node_modules/yargs-parser/package.json +0 -46
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyExtends = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const yerror_1 = require("./yerror");
7
- let previouslyVisitedConfigs = [];
8
- function checkForCircularExtends(cfgPath) {
9
- if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {
10
- throw new yerror_1.YError(`Circular extended configurations: '${cfgPath}'.`);
11
- }
12
- }
13
- function getPathToDefaultConfig(cwd, pathToExtend) {
14
- return path.resolve(cwd, pathToExtend);
15
- }
16
- function mergeDeep(config1, config2) {
17
- const target = {};
18
- function isObject(obj) {
19
- return obj && typeof obj === 'object' && !Array.isArray(obj);
20
- }
21
- Object.assign(target, config1);
22
- for (const key of Object.keys(config2)) {
23
- if (isObject(config2[key]) && isObject(target[key])) {
24
- target[key] = mergeDeep(config1[key], config2[key]);
25
- }
26
- else {
27
- target[key] = config2[key];
28
- }
29
- }
30
- return target;
31
- }
32
- function applyExtends(config, cwd, mergeExtends = false) {
33
- let defaultConfig = {};
34
- if (Object.prototype.hasOwnProperty.call(config, 'extends')) {
35
- if (typeof config.extends !== 'string')
36
- return defaultConfig;
37
- const isPath = /\.json|\..*rc$/.test(config.extends);
38
- let pathToDefault = null;
39
- if (!isPath) {
40
- try {
41
- pathToDefault = require.resolve(config.extends);
42
- }
43
- catch (err) {
44
- // most likely this simply isn't a module.
45
- }
46
- }
47
- else {
48
- pathToDefault = getPathToDefaultConfig(cwd, config.extends);
49
- }
50
- // maybe the module uses key for some other reason,
51
- // err on side of caution.
52
- if (!pathToDefault && !isPath)
53
- return config;
54
- if (!pathToDefault)
55
- throw new yerror_1.YError(`Unable to find extended config '${config.extends}' in '${cwd}'.`);
56
- checkForCircularExtends(pathToDefault);
57
- previouslyVisitedConfigs.push(pathToDefault);
58
- defaultConfig = isPath ? JSON.parse(fs.readFileSync(pathToDefault, 'utf8')) : require(config.extends);
59
- delete config.extends;
60
- defaultConfig = applyExtends(defaultConfig, path.dirname(pathToDefault), mergeExtends);
61
- }
62
- previouslyVisitedConfigs = [];
63
- return mergeExtends ? mergeDeep(defaultConfig, config) : Object.assign({}, defaultConfig, config);
64
- }
65
- exports.applyExtends = applyExtends;
@@ -1,2 +0,0 @@
1
- export declare function argsert(callerArguments: any[], length?: number): void;
2
- export declare function argsert(expected: string, callerArguments: any[], length?: number): void;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.argsert = void 0;
4
- const yerror_1 = require("./yerror");
5
- const parse_command_1 = require("./parse-command");
6
- const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'];
7
- function argsert(arg1, arg2, arg3) {
8
- function parseArgs() {
9
- return typeof arg1 === 'object'
10
- ? [{ demanded: [], optional: [] }, arg1, arg2]
11
- : [parse_command_1.parseCommand(`cmd ${arg1}`), arg2, arg3];
12
- }
13
- // TODO: should this eventually raise an exception.
14
- try {
15
- // preface the argument description with "cmd", so
16
- // that we can run it through yargs' command parser.
17
- let position = 0;
18
- let [parsed, callerArguments, length] = parseArgs();
19
- const args = [].slice.call(callerArguments);
20
- while (args.length && args[args.length - 1] === undefined)
21
- args.pop();
22
- length = length || args.length;
23
- if (length < parsed.demanded.length) {
24
- throw new yerror_1.YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`);
25
- }
26
- const totalCommands = parsed.demanded.length + parsed.optional.length;
27
- if (length > totalCommands) {
28
- throw new yerror_1.YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);
29
- }
30
- parsed.demanded.forEach((demanded) => {
31
- const arg = args.shift();
32
- const observedType = guessType(arg);
33
- const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*');
34
- if (matchingTypes.length === 0)
35
- argumentTypeError(observedType, demanded.cmd, position);
36
- position += 1;
37
- });
38
- parsed.optional.forEach((optional) => {
39
- if (args.length === 0)
40
- return;
41
- const arg = args.shift();
42
- const observedType = guessType(arg);
43
- const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*');
44
- if (matchingTypes.length === 0)
45
- argumentTypeError(observedType, optional.cmd, position);
46
- position += 1;
47
- });
48
- }
49
- catch (err) {
50
- console.warn(err.stack);
51
- }
52
- }
53
- exports.argsert = argsert;
54
- function guessType(arg) {
55
- if (Array.isArray(arg)) {
56
- return 'array';
57
- }
58
- else if (arg === null) {
59
- return 'null';
60
- }
61
- return typeof arg;
62
- }
63
- function argumentTypeError(observedType, allowedTypes, position) {
64
- throw new yerror_1.YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`);
65
- }
@@ -1,64 +0,0 @@
1
- /// <reference types="node" />
2
- import { Dictionary } from './common-types';
3
- import { Middleware } from './middleware';
4
- import { Positional } from './parse-command';
5
- import { RequireDirectoryOptions } from 'require-directory';
6
- import { UsageInstance } from './usage';
7
- import { ValidationInstance } from './validation';
8
- import { YargsInstance, Options, OptionDefinition, Context, Arguments, DetailedArguments } from './yargs';
9
- export declare function command(yargs: YargsInstance, usage: UsageInstance, validation: ValidationInstance, globalMiddleware?: Middleware[]): CommandInstance;
10
- /** Instance of the command module. */
11
- export interface CommandInstance {
12
- addDirectory(dir: string, context: Context, req: NodeRequireFunction, callerFile: string, opts?: RequireDirectoryOptions<any>): void;
13
- addHandler(handler: CommandHandlerDefinition): void;
14
- addHandler(cmd: string | string[], description: CommandHandler['description'], builder?: CommandBuilderDefinition | CommandBuilder, handler?: CommandHandlerCallback, commandMiddleware?: Middleware[], deprecated?: boolean): void;
15
- cmdToParseOptions(cmdString: string): Positionals;
16
- freeze(): void;
17
- getCommandHandlers(): Dictionary<CommandHandler>;
18
- getCommands(): string[];
19
- hasDefaultCommand(): boolean;
20
- reset(): CommandInstance;
21
- runCommand(command: string | null, yargs: YargsInstance, parsed: DetailedArguments, commandIndex?: number): Arguments | Promise<Arguments>;
22
- runDefaultBuilderOn(yargs: YargsInstance): void;
23
- unfreeze(): void;
24
- }
25
- export interface CommandHandlerDefinition extends Partial<Pick<CommandHandler, 'deprecated' | 'description' | 'handler' | 'middlewares'>> {
26
- aliases?: string[];
27
- builder?: CommandBuilder | CommandBuilderDefinition;
28
- command?: string | string[];
29
- desc?: CommandHandler['description'];
30
- describe?: CommandHandler['description'];
31
- }
32
- export declare function isCommandHandlerDefinition(cmd: string | string[] | CommandHandlerDefinition): cmd is CommandHandlerDefinition;
33
- export interface CommandBuilderDefinition {
34
- builder?: CommandBuilder;
35
- deprecated?: boolean;
36
- handler: CommandHandlerCallback;
37
- middlewares?: Middleware[];
38
- }
39
- export declare function isCommandBuilderDefinition(builder?: CommandBuilder | CommandBuilderDefinition): builder is CommandBuilderDefinition;
40
- export interface CommandHandlerCallback {
41
- (argv: Arguments): any;
42
- }
43
- export interface CommandHandler {
44
- builder: CommandBuilder;
45
- demanded: Positional[];
46
- deprecated?: boolean;
47
- description?: string | false;
48
- handler: CommandHandlerCallback;
49
- middlewares: Middleware[];
50
- optional: Positional[];
51
- original: string;
52
- }
53
- export declare type CommandBuilder = CommandBuilderCallback | Dictionary<OptionDefinition>;
54
- interface CommandBuilderCallback {
55
- (y: YargsInstance): YargsInstance | void;
56
- }
57
- export declare function isCommandBuilderCallback(builder: CommandBuilder): builder is CommandBuilderCallback;
58
- interface Positionals extends Pick<Options, 'alias' | 'array' | 'default'> {
59
- demand: Dictionary<boolean>;
60
- }
61
- export interface FinishCommandHandler {
62
- (handlerResult: any): any;
63
- }
64
- export {};
@@ -1,416 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCommandBuilderCallback = exports.isCommandBuilderDefinition = exports.isCommandHandlerDefinition = exports.command = void 0;
4
- const common_types_1 = require("./common-types");
5
- const is_promise_1 = require("./is-promise");
6
- const middleware_1 = require("./middleware");
7
- const parse_command_1 = require("./parse-command");
8
- const path = require("path");
9
- const util_1 = require("util");
10
- const yargs_1 = require("./yargs");
11
- const requireDirectory = require("require-directory");
12
- const whichModule = require("which-module");
13
- const Parser = require("yargs-parser");
14
- const DEFAULT_MARKER = /(^\*)|(^\$0)/;
15
- // handles parsing positional arguments,
16
- // and populating argv with said positional
17
- // arguments.
18
- function command(yargs, usage, validation, globalMiddleware = []) {
19
- const self = {};
20
- let handlers = {};
21
- let aliasMap = {};
22
- let defaultCommand;
23
- self.addHandler = function addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) {
24
- let aliases = [];
25
- const middlewares = middleware_1.commandMiddlewareFactory(commandMiddleware);
26
- handler = handler || (() => { });
27
- if (Array.isArray(cmd)) {
28
- aliases = cmd.slice(1);
29
- cmd = cmd[0];
30
- }
31
- else if (isCommandHandlerDefinition(cmd)) {
32
- let command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd);
33
- if (cmd.aliases)
34
- command = [].concat(command).concat(cmd.aliases);
35
- self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated);
36
- return;
37
- }
38
- // allow a module to be provided instead of separate builder and handler
39
- if (isCommandBuilderDefinition(builder)) {
40
- self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated);
41
- return;
42
- }
43
- // parse positionals out of cmd string
44
- const parsedCommand = parse_command_1.parseCommand(cmd);
45
- // remove positional args from aliases only
46
- aliases = aliases.map(alias => parse_command_1.parseCommand(alias).cmd);
47
- // check for default and filter out '*''
48
- let isDefault = false;
49
- const parsedAliases = [parsedCommand.cmd].concat(aliases).filter((c) => {
50
- if (DEFAULT_MARKER.test(c)) {
51
- isDefault = true;
52
- return false;
53
- }
54
- return true;
55
- });
56
- // standardize on $0 for default command.
57
- if (parsedAliases.length === 0 && isDefault)
58
- parsedAliases.push('$0');
59
- // shift cmd and aliases after filtering out '*'
60
- if (isDefault) {
61
- parsedCommand.cmd = parsedAliases[0];
62
- aliases = parsedAliases.slice(1);
63
- cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd);
64
- }
65
- // populate aliasMap
66
- aliases.forEach((alias) => {
67
- aliasMap[alias] = parsedCommand.cmd;
68
- });
69
- if (description !== false) {
70
- usage.command(cmd, description, isDefault, aliases, deprecated);
71
- }
72
- handlers[parsedCommand.cmd] = {
73
- original: cmd,
74
- description,
75
- handler,
76
- builder: builder || {},
77
- middlewares,
78
- deprecated,
79
- demanded: parsedCommand.demanded,
80
- optional: parsedCommand.optional
81
- };
82
- if (isDefault)
83
- defaultCommand = handlers[parsedCommand.cmd];
84
- };
85
- self.addDirectory = function addDirectory(dir, context, req, callerFile, opts) {
86
- opts = opts || {};
87
- // disable recursion to support nested directories of subcommands
88
- if (typeof opts.recurse !== 'boolean')
89
- opts.recurse = false;
90
- // exclude 'json', 'coffee' from require-directory defaults
91
- if (!Array.isArray(opts.extensions))
92
- opts.extensions = ['js'];
93
- // allow consumer to define their own visitor function
94
- const parentVisit = typeof opts.visit === 'function' ? opts.visit : (o) => o;
95
- // call addHandler via visitor function
96
- opts.visit = function visit(obj, joined, filename) {
97
- const visited = parentVisit(obj, joined, filename);
98
- // allow consumer to skip modules with their own visitor
99
- if (visited) {
100
- // check for cyclic reference
101
- // each command file path should only be seen once per execution
102
- if (~context.files.indexOf(joined))
103
- return visited;
104
- // keep track of visited files in context.files
105
- context.files.push(joined);
106
- self.addHandler(visited);
107
- }
108
- return visited;
109
- };
110
- requireDirectory({ require: req, filename: callerFile }, dir, opts);
111
- };
112
- // lookup module object from require()d command and derive name
113
- // if module was not require()d and no name given, throw error
114
- function moduleName(obj) {
115
- const mod = whichModule(obj);
116
- if (!mod)
117
- throw new Error(`No command name given for module: ${util_1.inspect(obj)}`);
118
- return commandFromFilename(mod.filename);
119
- }
120
- // derive command name from filename
121
- function commandFromFilename(filename) {
122
- return path.basename(filename, path.extname(filename));
123
- }
124
- function extractDesc({ describe, description, desc }) {
125
- for (const test of [describe, description, desc]) {
126
- if (typeof test === 'string' || test === false)
127
- return test;
128
- common_types_1.assertNotStrictEqual(test, true);
129
- }
130
- return false;
131
- }
132
- self.getCommands = () => Object.keys(handlers).concat(Object.keys(aliasMap));
133
- self.getCommandHandlers = () => handlers;
134
- self.hasDefaultCommand = () => !!defaultCommand;
135
- self.runCommand = function runCommand(command, yargs, parsed, commandIndex) {
136
- let aliases = parsed.aliases;
137
- const commandHandler = handlers[command] || handlers[aliasMap[command]] || defaultCommand;
138
- const currentContext = yargs.getContext();
139
- let numFiles = currentContext.files.length;
140
- const parentCommands = currentContext.commands.slice();
141
- // what does yargs look like after the builder is run?
142
- let innerArgv = parsed.argv;
143
- let positionalMap = {};
144
- if (command) {
145
- currentContext.commands.push(command);
146
- currentContext.fullCommands.push(commandHandler.original);
147
- }
148
- const builder = commandHandler.builder;
149
- if (isCommandBuilderCallback(builder)) {
150
- // a function can be provided, which builds
151
- // up a yargs chain and possibly returns it.
152
- const builderOutput = builder(yargs.reset(parsed.aliases));
153
- const innerYargs = yargs_1.isYargsInstance(builderOutput) ? builderOutput : yargs;
154
- if (shouldUpdateUsage(innerYargs)) {
155
- innerYargs.getUsageInstance().usage(usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);
156
- }
157
- innerArgv = innerYargs._parseArgs(null, null, true, commandIndex);
158
- aliases = innerYargs.parsed.aliases;
159
- }
160
- else if (isCommandBuilderOptionDefinitions(builder)) {
161
- // as a short hand, an object can instead be provided, specifying
162
- // the options that a command takes.
163
- const innerYargs = yargs.reset(parsed.aliases);
164
- if (shouldUpdateUsage(innerYargs)) {
165
- innerYargs.getUsageInstance().usage(usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);
166
- }
167
- Object.keys(commandHandler.builder).forEach((key) => {
168
- innerYargs.option(key, builder[key]);
169
- });
170
- innerArgv = innerYargs._parseArgs(null, null, true, commandIndex);
171
- aliases = innerYargs.parsed.aliases;
172
- }
173
- if (!yargs._hasOutput()) {
174
- positionalMap = populatePositionals(commandHandler, innerArgv, currentContext);
175
- }
176
- const middlewares = globalMiddleware.slice(0).concat(commandHandler.middlewares);
177
- middleware_1.applyMiddleware(innerArgv, yargs, middlewares, true);
178
- // we apply validation post-hoc, so that custom
179
- // checks get passed populated positional arguments.
180
- if (!yargs._hasOutput()) {
181
- yargs._runValidation(innerArgv, aliases, positionalMap, yargs.parsed.error, !command);
182
- }
183
- if (commandHandler.handler && !yargs._hasOutput()) {
184
- yargs._setHasOutput();
185
- // to simplify the parsing of positionals in commands,
186
- // we temporarily populate '--' rather than _, with arguments
187
- const populateDoubleDash = !!yargs.getOptions().configuration['populate--'];
188
- if (!populateDoubleDash)
189
- yargs._copyDoubleDash(innerArgv);
190
- innerArgv = middleware_1.applyMiddleware(innerArgv, yargs, middlewares, false);
191
- let handlerResult;
192
- if (is_promise_1.isPromise(innerArgv)) {
193
- handlerResult = innerArgv.then(argv => commandHandler.handler(argv));
194
- }
195
- else {
196
- handlerResult = commandHandler.handler(innerArgv);
197
- }
198
- const handlerFinishCommand = yargs.getHandlerFinishCommand();
199
- if (is_promise_1.isPromise(handlerResult)) {
200
- yargs.getUsageInstance().cacheHelpMessage();
201
- handlerResult
202
- .then(value => {
203
- if (handlerFinishCommand) {
204
- handlerFinishCommand(value);
205
- }
206
- })
207
- .catch(error => {
208
- try {
209
- yargs.getUsageInstance().fail(null, error);
210
- }
211
- catch (err) {
212
- // fail's throwing would cause an unhandled rejection.
213
- }
214
- })
215
- .then(() => {
216
- yargs.getUsageInstance().clearCachedHelpMessage();
217
- });
218
- }
219
- else {
220
- if (handlerFinishCommand) {
221
- handlerFinishCommand(handlerResult);
222
- }
223
- }
224
- }
225
- if (command) {
226
- currentContext.commands.pop();
227
- currentContext.fullCommands.pop();
228
- }
229
- numFiles = currentContext.files.length - numFiles;
230
- if (numFiles > 0)
231
- currentContext.files.splice(numFiles * -1, numFiles);
232
- return innerArgv;
233
- };
234
- function shouldUpdateUsage(yargs) {
235
- return !yargs.getUsageInstance().getUsageDisabled() &&
236
- yargs.getUsageInstance().getUsage().length === 0;
237
- }
238
- function usageFromParentCommandsCommandHandler(parentCommands, commandHandler) {
239
- const c = DEFAULT_MARKER.test(commandHandler.original) ? commandHandler.original.replace(DEFAULT_MARKER, '').trim() : commandHandler.original;
240
- const pc = parentCommands.filter((c) => { return !DEFAULT_MARKER.test(c); });
241
- pc.push(c);
242
- return `$0 ${pc.join(' ')}`;
243
- }
244
- self.runDefaultBuilderOn = function (yargs) {
245
- common_types_1.assertNotStrictEqual(defaultCommand, undefined);
246
- if (shouldUpdateUsage(yargs)) {
247
- // build the root-level command string from the default string.
248
- const commandString = DEFAULT_MARKER.test(defaultCommand.original)
249
- ? defaultCommand.original : defaultCommand.original.replace(/^[^[\]<>]*/, '$0 ');
250
- yargs.getUsageInstance().usage(commandString, defaultCommand.description);
251
- }
252
- const builder = defaultCommand.builder;
253
- if (isCommandBuilderCallback(builder)) {
254
- builder(yargs);
255
- }
256
- else {
257
- Object.keys(builder).forEach((key) => {
258
- yargs.option(key, builder[key]);
259
- });
260
- }
261
- };
262
- // transcribe all positional arguments "command <foo> <bar> [apple]"
263
- // onto argv.
264
- function populatePositionals(commandHandler, argv, context) {
265
- argv._ = argv._.slice(context.commands.length); // nuke the current commands
266
- const demanded = commandHandler.demanded.slice(0);
267
- const optional = commandHandler.optional.slice(0);
268
- const positionalMap = {};
269
- validation.positionalCount(demanded.length, argv._.length);
270
- while (demanded.length) {
271
- const demand = demanded.shift();
272
- populatePositional(demand, argv, positionalMap);
273
- }
274
- while (optional.length) {
275
- const maybe = optional.shift();
276
- populatePositional(maybe, argv, positionalMap);
277
- }
278
- argv._ = context.commands.concat(argv._);
279
- postProcessPositionals(argv, positionalMap, self.cmdToParseOptions(commandHandler.original));
280
- return positionalMap;
281
- }
282
- function populatePositional(positional, argv, positionalMap) {
283
- const cmd = positional.cmd[0];
284
- if (positional.variadic) {
285
- positionalMap[cmd] = argv._.splice(0).map(String);
286
- }
287
- else {
288
- if (argv._.length)
289
- positionalMap[cmd] = [String(argv._.shift())];
290
- }
291
- }
292
- // we run yargs-parser against the positional arguments
293
- // applying the same parsing logic used for flags.
294
- function postProcessPositionals(argv, positionalMap, parseOptions) {
295
- // combine the parsing hints we've inferred from the command
296
- // string with explicitly configured parsing hints.
297
- const options = Object.assign({}, yargs.getOptions());
298
- options.default = Object.assign(parseOptions.default, options.default);
299
- for (const key of Object.keys(parseOptions.alias)) {
300
- options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]);
301
- }
302
- options.array = options.array.concat(parseOptions.array);
303
- delete options.config; // don't load config when processing positionals.
304
- const unparsed = [];
305
- Object.keys(positionalMap).forEach((key) => {
306
- positionalMap[key].map((value) => {
307
- if (options.configuration['unknown-options-as-args'])
308
- options.key[key] = true;
309
- unparsed.push(`--${key}`);
310
- unparsed.push(value);
311
- });
312
- });
313
- // short-circuit parse.
314
- if (!unparsed.length)
315
- return;
316
- const config = Object.assign({}, options.configuration, {
317
- 'populate--': true
318
- });
319
- const parsed = Parser.detailed(unparsed, Object.assign({}, options, {
320
- configuration: config
321
- }));
322
- if (parsed.error) {
323
- yargs.getUsageInstance().fail(parsed.error.message, parsed.error);
324
- }
325
- else {
326
- // only copy over positional keys (don't overwrite
327
- // flag arguments that were already parsed).
328
- const positionalKeys = Object.keys(positionalMap);
329
- Object.keys(positionalMap).forEach((key) => {
330
- positionalKeys.push(...parsed.aliases[key]);
331
- });
332
- Object.keys(parsed.argv).forEach((key) => {
333
- if (positionalKeys.indexOf(key) !== -1) {
334
- // any new aliases need to be placed in positionalMap, which
335
- // is used for validation.
336
- if (!positionalMap[key])
337
- positionalMap[key] = parsed.argv[key];
338
- argv[key] = parsed.argv[key];
339
- }
340
- });
341
- }
342
- }
343
- self.cmdToParseOptions = function (cmdString) {
344
- const parseOptions = {
345
- array: [],
346
- default: {},
347
- alias: {},
348
- demand: {}
349
- };
350
- const parsed = parse_command_1.parseCommand(cmdString);
351
- parsed.demanded.forEach((d) => {
352
- const [cmd, ...aliases] = d.cmd;
353
- if (d.variadic) {
354
- parseOptions.array.push(cmd);
355
- parseOptions.default[cmd] = [];
356
- }
357
- parseOptions.alias[cmd] = aliases;
358
- parseOptions.demand[cmd] = true;
359
- });
360
- parsed.optional.forEach((o) => {
361
- const [cmd, ...aliases] = o.cmd;
362
- if (o.variadic) {
363
- parseOptions.array.push(cmd);
364
- parseOptions.default[cmd] = [];
365
- }
366
- parseOptions.alias[cmd] = aliases;
367
- });
368
- return parseOptions;
369
- };
370
- self.reset = () => {
371
- handlers = {};
372
- aliasMap = {};
373
- defaultCommand = undefined;
374
- return self;
375
- };
376
- // used by yargs.parse() to freeze
377
- // the state of commands such that
378
- // we can apply .parse() multiple times
379
- // with the same yargs instance.
380
- const frozens = [];
381
- self.freeze = () => {
382
- frozens.push({
383
- handlers,
384
- aliasMap,
385
- defaultCommand
386
- });
387
- };
388
- self.unfreeze = () => {
389
- const frozen = frozens.pop();
390
- common_types_1.assertNotStrictEqual(frozen, undefined);
391
- ({
392
- handlers,
393
- aliasMap,
394
- defaultCommand
395
- } = frozen);
396
- };
397
- return self;
398
- }
399
- exports.command = command;
400
- function isCommandHandlerDefinition(cmd) {
401
- return typeof cmd === 'object';
402
- }
403
- exports.isCommandHandlerDefinition = isCommandHandlerDefinition;
404
- function isCommandBuilderDefinition(builder) {
405
- return typeof builder === 'object' &&
406
- !!builder.builder &&
407
- typeof builder.handler === 'function';
408
- }
409
- exports.isCommandBuilderDefinition = isCommandBuilderDefinition;
410
- function isCommandBuilderCallback(builder) {
411
- return typeof builder === 'function';
412
- }
413
- exports.isCommandBuilderCallback = isCommandBuilderCallback;
414
- function isCommandBuilderOptionDefinitions(builder) {
415
- return typeof builder === 'object';
416
- }
@@ -1,36 +0,0 @@
1
- /**
2
- * An object whose all properties have the same type.
3
- */
4
- export declare type Dictionary<T = any> = {
5
- [key: string]: T;
6
- };
7
- /**
8
- * Returns the keys of T that match Dictionary<U> and are not arrays.
9
- */
10
- export declare type DictionaryKeyof<T, U = any> = Exclude<KeyOf<T, Dictionary<U>>, KeyOf<T, any[]>>;
11
- /**
12
- * Returns the keys of T that match U.
13
- */
14
- export declare type KeyOf<T, U> = Exclude<{
15
- [K in keyof T]: T[K] extends U ? K : never;
16
- }[keyof T], undefined>;
17
- /**
18
- * An array whose first element is not undefined.
19
- */
20
- export declare type NotEmptyArray<T = any> = [T, ...T[]];
21
- /**
22
- * Returns the type of a Dictionary or array values.
23
- */
24
- export declare type ValueOf<T> = T extends (infer U)[] ? U : T[keyof T];
25
- /**
26
- * Typing wrapper around assert.notStrictEqual()
27
- */
28
- export declare function assertNotStrictEqual<N, T>(actual: T | N, expected: N, message?: string | Error): asserts actual is Exclude<T, N>;
29
- /**
30
- * Asserts actual is a single key, not a key array or a key map.
31
- */
32
- export declare function assertSingleKey(actual: string | string[] | Dictionary): asserts actual is string;
33
- /**
34
- * Typing wrapper around Object.keys()
35
- */
36
- export declare function objectKeys<T>(object: T): (keyof T)[];
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.objectKeys = exports.assertSingleKey = exports.assertNotStrictEqual = void 0;
4
- const assert_1 = require("assert");
5
- /**
6
- * Typing wrapper around assert.notStrictEqual()
7
- */
8
- function assertNotStrictEqual(actual, expected, message) {
9
- assert_1.notStrictEqual(actual, expected, message);
10
- }
11
- exports.assertNotStrictEqual = assertNotStrictEqual;
12
- /**
13
- * Asserts actual is a single key, not a key array or a key map.
14
- */
15
- function assertSingleKey(actual) {
16
- assert_1.strictEqual(typeof actual, 'string');
17
- }
18
- exports.assertSingleKey = assertSingleKey;
19
- /**
20
- * Typing wrapper around Object.keys()
21
- */
22
- function objectKeys(object) {
23
- return Object.keys(object);
24
- }
25
- exports.objectKeys = objectKeys;
@@ -1,2 +0,0 @@
1
- export declare const completionShTemplate = "###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_yargs_completions()\n{\n local cur_word args type_list\n\n cur_word=\"${COMP_WORDS[COMP_CWORD]}\"\n args=(\"${COMP_WORDS[@]}\")\n\n # ask yargs to generate completions.\n type_list=$({{app_path}} --get-yargs-completions \"${args[@]}\")\n\n COMPREPLY=( $(compgen -W \"${type_list}\" -- ${cur_word}) )\n\n # if no match was found, fall back to filename completion\n if [ ${#COMPREPLY[@]} -eq 0 ]; then\n COMPREPLY=()\n fi\n\n return 0\n}\ncomplete -o default -F _yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n";
2
- export declare const completionZshTemplate = "###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n# or {{app_path}} {{completion_command}} >> ~/.zsh_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local reply\n local si=$IFS\n IFS=$'\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"${words[@]}\"))\n IFS=$si\n _describe 'values' reply\n}\ncompdef _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n";