@bemoje/cli 0.0.5 → 0.0.8

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 (907) hide show
  1. package/cjs/_example/bFindIn.js +189 -0
  2. package/cjs/_example/bFindIn.js.map +1 -0
  3. package/cjs/arg/ArgumentBuilder.js.map +1 -0
  4. package/cjs/arg/ArgumentParserSelector.js.map +1 -0
  5. package/cjs/arg/ArgumentReader.js.map +1 -0
  6. package/cjs/arg/ArgumentValidatorSelector.js.map +1 -0
  7. package/{dist/cjs → cjs}/cmd/CommandBuilder.js +38 -52
  8. package/cjs/cmd/CommandBuilder.js.map +1 -0
  9. package/{dist/cjs → cjs}/cmd/CommandBuilderMetaData.js +1 -0
  10. package/cjs/cmd/CommandBuilderMetaData.js.map +1 -0
  11. package/cjs/cmd/CommandFeatureSelector.js.map +1 -0
  12. package/cjs/cmd/DefaultHelpConfig.js.map +1 -0
  13. package/cjs/cmd/asdas.js.map +1 -0
  14. package/cjs/core/OutputManager.js.map +1 -0
  15. package/cjs/core/ParserSelector.js.map +1 -0
  16. package/cjs/core/ValidatorSelector.js.map +1 -0
  17. package/cjs/core/splitCombinedArgvShorts.js.map +1 -0
  18. package/cjs/db/AbstractJsonFileSection.js.map +1 -0
  19. package/cjs/db/AppDataSection.js.map +1 -0
  20. package/cjs/db/ConfigSection.js.map +1 -0
  21. package/cjs/db/JsonFile.js.map +1 -0
  22. package/cjs/db/PresetsSection.js.map +1 -0
  23. package/{dist/cjs → cjs}/index.js +1 -2
  24. package/cjs/index.js.map +1 -0
  25. package/cjs/opt/OptionArgumentParserSelector.js.map +1 -0
  26. package/cjs/opt/OptionArgumentValidatorSelector.js.map +1 -0
  27. package/cjs/opt/OptionBuilder.js.map +1 -0
  28. package/cjs/opt/OptionHelpers.js.map +1 -0
  29. package/cjs/opt/OptionReader.js.map +1 -0
  30. package/cjs/types/IConfig.js.map +1 -0
  31. package/cjs/types/IPreset.js.map +1 -0
  32. package/cjs/util/array/arrLast.js.map +1 -0
  33. package/cjs/util/array/arrSome.js.map +1 -0
  34. package/cjs/util/array/types/ArrayPredicate.js.map +1 -0
  35. package/cjs/util/db/JsonDB.js.map +1 -0
  36. package/cjs/util/errors/ErrorParser.js.map +1 -0
  37. package/cjs/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.js.map +1 -0
  38. package/cjs/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.js.map +1 -0
  39. package/cjs/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.js.map +1 -0
  40. package/cjs/util/fs/readFile/readFileSafeSync.js.map +1 -0
  41. package/cjs/util/fs/readFile/readFileSync.js.map +1 -0
  42. package/cjs/util/fs/readJsonFile/readJsonFileSafeSync.js.map +1 -0
  43. package/cjs/util/fs/removeFile/removeFile.js.map +1 -0
  44. package/cjs/util/fs/tempFile/tempFileSync.js.map +1 -0
  45. package/cjs/util/fs/types/IReadJsonFileOptions.js.map +1 -0
  46. package/cjs/util/fs/writeFile/writeFileSafeSync.js.map +1 -0
  47. package/cjs/util/fs/writeFile/writeFileSync.js.map +1 -0
  48. package/cjs/util/fs/writeJsonFile/writeJsonFileSafe.js.map +1 -0
  49. package/cjs/util/function/MethodDisabler.js.map +1 -0
  50. package/cjs/util/function/funSetName.js.map +1 -0
  51. package/cjs/util/node/execInherit.js.map +1 -0
  52. package/cjs/util/node/formatTableForTerminal.js.map +1 -0
  53. package/cjs/util/object/arrAssign.js.map +1 -0
  54. package/cjs/util/object/createArrayMerger.js.map +1 -0
  55. package/cjs/util/object/createObjectMerger.js.map +1 -0
  56. package/cjs/util/object/objAssign.js.map +1 -0
  57. package/cjs/util/object/objUpdatePropertyDescriptors.js.map +1 -0
  58. package/cjs/util/object/realizeLazyProperty.js.map +1 -0
  59. package/cjs/util/object/setNonEnumerable.js.map +1 -0
  60. package/cjs/util/os/defaultOpenInEditorCommand.js.map +1 -0
  61. package/cjs/util/os/isOSX.js.map +1 -0
  62. package/cjs/util/os/isVsCodeInstalled.js.map +1 -0
  63. package/cjs/util/os/isWindows.js.map +1 -0
  64. package/cjs/util/path/getTempDataPath.js.map +1 -0
  65. package/cjs/util/regex/regexEscapeString.js.map +1 -0
  66. package/cjs/util/string/strEnsureStartsWith.js.map +1 -0
  67. package/cjs/util/string/strFirstCharToUpperCase.js.map +1 -0
  68. package/cjs/util/string/strIsLowerCase.js.map +1 -0
  69. package/cjs/util/string/strIsUpperCase.js.map +1 -0
  70. package/cjs/util/string/strSplitCamelCase.js.map +1 -0
  71. package/cjs/util/string-parsers/createBooleanParser.js.map +1 -0
  72. package/cjs/util/string-parsers/createTypedListParser.js.map +1 -0
  73. package/cjs/util/string-parsers/parseBoolean.js.map +1 -0
  74. package/cjs/util/string-parsers/parseInteger.js.map +1 -0
  75. package/cjs/util/string-parsers/parseNumber.js.map +1 -0
  76. package/cjs/util/string-parsers/parseString.js.map +1 -0
  77. package/cjs/util/types/Any.js.map +1 -0
  78. package/cjs/util/types/DeepArray.js.map +1 -0
  79. package/cjs/util/types/DeepObject.js.map +1 -0
  80. package/cjs/util/types/JsonArray.js.map +1 -0
  81. package/cjs/util/types/JsonDefinedPrimitive.js.map +1 -0
  82. package/cjs/util/types/JsonObject.js.map +1 -0
  83. package/cjs/util/types/JsonRawPrimitive.js.map +1 -0
  84. package/cjs/util/types/JsonValue.js.map +1 -0
  85. package/cjs/util/types/ObjectKey.js.map +1 -0
  86. package/cjs/util/types/TConstructor.js.map +1 -0
  87. package/cjs/util/types/TFunction.js.map +1 -0
  88. package/cjs/util/types/TFunctionNoNew.js.map +1 -0
  89. package/cjs/util/types/TPlainObject.js.map +1 -0
  90. package/cjs/util/types/TPrimitive.js.map +1 -0
  91. package/cjs/util/types/TStringParser.js.map +1 -0
  92. package/cjs/util/types/TValidator.js.map +1 -0
  93. package/cjs/util/validation/createTypedArrayValidator.js.map +1 -0
  94. package/cjs/util/validation/ensureThat.js.map +1 -0
  95. package/cjs/util/validation/isArray.js.map +1 -0
  96. package/cjs/util/validation/isBoolean.js.map +1 -0
  97. package/cjs/util/validation/isFunction.js.map +1 -0
  98. package/cjs/util/validation/isNamedFunction.js.map +1 -0
  99. package/cjs/util/validation/isNamedFunctionArray.js.map +1 -0
  100. package/cjs/util/validation/isObject.js.map +1 -0
  101. package/cjs/util/validation/isPlainObject.js.map +1 -0
  102. package/cjs/util/validation/isPrimitive.js.map +1 -0
  103. package/cjs/util/validation/isString.js.map +1 -0
  104. package/cjs/util/validation/isStringArray.js.map +1 -0
  105. package/cjs/util/validation/isStringWithNoSpacesOrDashes.js.map +1 -0
  106. package/cjs/util/validation/numbers/isInteger.js.map +1 -0
  107. package/cjs/util/validation/numbers/isValidNumber.js.map +1 -0
  108. package/esm/_example/bFindIn.js +187 -0
  109. package/esm/_example/bFindIn.js.map +1 -0
  110. package/esm/arg/ArgumentBuilder.js.map +1 -0
  111. package/esm/arg/ArgumentParserSelector.js.map +1 -0
  112. package/esm/arg/ArgumentReader.js.map +1 -0
  113. package/esm/arg/ArgumentValidatorSelector.js.map +1 -0
  114. package/{dist/esm → esm}/cmd/CommandBuilder.js +36 -51
  115. package/esm/cmd/CommandBuilder.js.map +1 -0
  116. package/{dist/esm → esm}/cmd/CommandBuilderMetaData.js +1 -0
  117. package/esm/cmd/CommandBuilderMetaData.js.map +1 -0
  118. package/esm/cmd/CommandFeatureSelector.js.map +1 -0
  119. package/esm/cmd/DefaultHelpConfig.js.map +1 -0
  120. package/esm/cmd/asdas.js.map +1 -0
  121. package/esm/core/OutputManager.js.map +1 -0
  122. package/esm/core/ParserSelector.js.map +1 -0
  123. package/esm/core/ValidatorSelector.js.map +1 -0
  124. package/esm/core/splitCombinedArgvShorts.js.map +1 -0
  125. package/esm/db/AbstractJsonFileSection.js.map +1 -0
  126. package/esm/db/AppDataSection.js.map +1 -0
  127. package/esm/db/ConfigSection.js.map +1 -0
  128. package/esm/db/JsonFile.js.map +1 -0
  129. package/esm/db/PresetsSection.js.map +1 -0
  130. package/{dist/esm → esm}/index.js +1 -2
  131. package/esm/index.js.map +1 -0
  132. package/esm/opt/OptionArgumentParserSelector.js.map +1 -0
  133. package/esm/opt/OptionArgumentValidatorSelector.js.map +1 -0
  134. package/esm/opt/OptionBuilder.js.map +1 -0
  135. package/esm/opt/OptionHelpers.js.map +1 -0
  136. package/esm/opt/OptionReader.js.map +1 -0
  137. package/esm/types/IConfig.js.map +1 -0
  138. package/esm/types/IPreset.js.map +1 -0
  139. package/esm/util/array/arrLast.js.map +1 -0
  140. package/esm/util/array/arrSome.js.map +1 -0
  141. package/esm/util/array/types/ArrayPredicate.js.map +1 -0
  142. package/{dist/cjs → esm}/util/db/JsonDB.js.map +1 -1
  143. package/esm/util/errors/ErrorParser.js.map +1 -0
  144. package/esm/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.js.map +1 -0
  145. package/esm/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.js.map +1 -0
  146. package/esm/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.js.map +1 -0
  147. package/esm/util/fs/readFile/readFileSafeSync.js.map +1 -0
  148. package/esm/util/fs/readFile/readFileSync.js.map +1 -0
  149. package/esm/util/fs/readJsonFile/readJsonFileSafeSync.js.map +1 -0
  150. package/esm/util/fs/removeFile/removeFile.js.map +1 -0
  151. package/esm/util/fs/tempFile/tempFileSync.js.map +1 -0
  152. package/esm/util/fs/types/IReadJsonFileOptions.js.map +1 -0
  153. package/esm/util/fs/writeFile/writeFileSafeSync.js.map +1 -0
  154. package/esm/util/fs/writeFile/writeFileSync.js.map +1 -0
  155. package/esm/util/fs/writeJsonFile/writeJsonFileSafe.js.map +1 -0
  156. package/esm/util/function/MethodDisabler.js.map +1 -0
  157. package/esm/util/function/funSetName.js.map +1 -0
  158. package/esm/util/node/execInherit.js.map +1 -0
  159. package/esm/util/node/formatTableForTerminal.js.map +1 -0
  160. package/esm/util/object/arrAssign.js.map +1 -0
  161. package/esm/util/object/createArrayMerger.js.map +1 -0
  162. package/esm/util/object/createObjectMerger.js.map +1 -0
  163. package/esm/util/object/objAssign.js.map +1 -0
  164. package/esm/util/object/objUpdatePropertyDescriptors.js.map +1 -0
  165. package/esm/util/object/realizeLazyProperty.js.map +1 -0
  166. package/esm/util/object/setNonEnumerable.js.map +1 -0
  167. package/esm/util/os/defaultOpenInEditorCommand.js.map +1 -0
  168. package/esm/util/os/isOSX.js.map +1 -0
  169. package/esm/util/os/isVsCodeInstalled.js.map +1 -0
  170. package/esm/util/os/isWindows.js.map +1 -0
  171. package/esm/util/path/getTempDataPath.js.map +1 -0
  172. package/esm/util/regex/regexEscapeString.js.map +1 -0
  173. package/esm/util/string/strEnsureStartsWith.js.map +1 -0
  174. package/esm/util/string/strFirstCharToUpperCase.js.map +1 -0
  175. package/esm/util/string/strIsLowerCase.js.map +1 -0
  176. package/esm/util/string/strIsUpperCase.js.map +1 -0
  177. package/esm/util/string/strSplitCamelCase.js.map +1 -0
  178. package/esm/util/string-parsers/createBooleanParser.js.map +1 -0
  179. package/esm/util/string-parsers/createTypedListParser.js.map +1 -0
  180. package/esm/util/string-parsers/parseBoolean.js.map +1 -0
  181. package/esm/util/string-parsers/parseInteger.js.map +1 -0
  182. package/esm/util/string-parsers/parseNumber.js.map +1 -0
  183. package/esm/util/string-parsers/parseString.js.map +1 -0
  184. package/esm/util/types/Any.js.map +1 -0
  185. package/esm/util/types/DeepArray.js.map +1 -0
  186. package/esm/util/types/DeepObject.js.map +1 -0
  187. package/esm/util/types/JsonArray.js.map +1 -0
  188. package/esm/util/types/JsonDefinedPrimitive.js.map +1 -0
  189. package/esm/util/types/JsonObject.js.map +1 -0
  190. package/esm/util/types/JsonRawPrimitive.js.map +1 -0
  191. package/esm/util/types/JsonValue.js.map +1 -0
  192. package/esm/util/types/ObjectKey.js.map +1 -0
  193. package/esm/util/types/TConstructor.js.map +1 -0
  194. package/esm/util/types/TFunction.js.map +1 -0
  195. package/esm/util/types/TFunctionNoNew.js.map +1 -0
  196. package/esm/util/types/TPlainObject.js.map +1 -0
  197. package/esm/util/types/TPrimitive.js.map +1 -0
  198. package/esm/util/types/TStringParser.js.map +1 -0
  199. package/esm/util/types/TValidator.js.map +1 -0
  200. package/esm/util/validation/createTypedArrayValidator.js.map +1 -0
  201. package/esm/util/validation/ensureThat.js.map +1 -0
  202. package/esm/util/validation/isArray.js.map +1 -0
  203. package/esm/util/validation/isBoolean.js.map +1 -0
  204. package/esm/util/validation/isFunction.js.map +1 -0
  205. package/esm/util/validation/isNamedFunction.js.map +1 -0
  206. package/esm/util/validation/isNamedFunctionArray.js.map +1 -0
  207. package/esm/util/validation/isObject.js.map +1 -0
  208. package/esm/util/validation/isPlainObject.js.map +1 -0
  209. package/esm/util/validation/isPrimitive.js.map +1 -0
  210. package/esm/util/validation/isString.js.map +1 -0
  211. package/esm/util/validation/isStringArray.js.map +1 -0
  212. package/esm/util/validation/isStringWithNoSpacesOrDashes.js.map +1 -0
  213. package/esm/util/validation/numbers/isInteger.js.map +1 -0
  214. package/esm/util/validation/numbers/isValidNumber.js.map +1 -0
  215. package/package.json +5 -10
  216. package/types/_example/bFindIn.d.ts +1 -0
  217. package/{dist/types → types}/cmd/CommandBuilder.d.ts +7 -0
  218. package/{dist/types → types}/cmd/CommandBuilderMetaData.d.ts +1 -0
  219. package/{dist/types → types}/index.d.ts +1 -2
  220. package/.eslintrc.json +0 -5
  221. package/.swcrc +0 -32
  222. package/dist/cjs/arg/ArgumentBuilder.js.map +0 -1
  223. package/dist/cjs/arg/ArgumentParserSelector.js.map +0 -1
  224. package/dist/cjs/arg/ArgumentReader.js.map +0 -1
  225. package/dist/cjs/arg/ArgumentValidatorSelector.js.map +0 -1
  226. package/dist/cjs/cmd/CLI.js +0 -16
  227. package/dist/cjs/cmd/CLI.js.map +0 -1
  228. package/dist/cjs/cmd/CommandBuilder.js.map +0 -1
  229. package/dist/cjs/cmd/CommandBuilderMetaData.js.map +0 -1
  230. package/dist/cjs/cmd/CommandFeatureSelector.js.map +0 -1
  231. package/dist/cjs/cmd/DefaultHelpConfig.js.map +0 -1
  232. package/dist/cjs/cmd/asdas.js.map +0 -1
  233. package/dist/cjs/core/OutputManager.js.map +0 -1
  234. package/dist/cjs/core/ParserSelector.js.map +0 -1
  235. package/dist/cjs/core/ValidatorSelector.js.map +0 -1
  236. package/dist/cjs/core/splitCombinedArgvShorts.js.map +0 -1
  237. package/dist/cjs/db/AbstractJsonFileSection.js.map +0 -1
  238. package/dist/cjs/db/AppDataSection.js.map +0 -1
  239. package/dist/cjs/db/ConfigSection.js.map +0 -1
  240. package/dist/cjs/db/JsonFile.js.map +0 -1
  241. package/dist/cjs/db/PresetsSection.js.map +0 -1
  242. package/dist/cjs/index.js.map +0 -1
  243. package/dist/cjs/opt/OptionArgumentParserSelector.js.map +0 -1
  244. package/dist/cjs/opt/OptionArgumentValidatorSelector.js.map +0 -1
  245. package/dist/cjs/opt/OptionBuilder.js.map +0 -1
  246. package/dist/cjs/opt/OptionHelpers.js.map +0 -1
  247. package/dist/cjs/opt/OptionReader.js.map +0 -1
  248. package/dist/cjs/proto/overrideCommanderPrototype.js +0 -37
  249. package/dist/cjs/proto/overrideCommanderPrototype.js.map +0 -1
  250. package/dist/cjs/types/IConfig.js.map +0 -1
  251. package/dist/cjs/types/IPreset.js.map +0 -1
  252. package/dist/cjs/util/array/arrLast.js.map +0 -1
  253. package/dist/cjs/util/array/arrSome.js.map +0 -1
  254. package/dist/cjs/util/array/types/ArrayPredicate.js.map +0 -1
  255. package/dist/cjs/util/errors/ErrorParser.js.map +0 -1
  256. package/dist/cjs/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.js.map +0 -1
  257. package/dist/cjs/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.js.map +0 -1
  258. package/dist/cjs/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.js.map +0 -1
  259. package/dist/cjs/util/fs/readFile/readFileSafeSync.js.map +0 -1
  260. package/dist/cjs/util/fs/readFile/readFileSync.js.map +0 -1
  261. package/dist/cjs/util/fs/readJsonFile/readJsonFileSafeSync.js.map +0 -1
  262. package/dist/cjs/util/fs/removeFile/removeFile.js.map +0 -1
  263. package/dist/cjs/util/fs/tempFile/tempFileSync.js.map +0 -1
  264. package/dist/cjs/util/fs/types/IReadJsonFileOptions.js.map +0 -1
  265. package/dist/cjs/util/fs/writeFile/writeFileSafeSync.js.map +0 -1
  266. package/dist/cjs/util/fs/writeFile/writeFileSync.js.map +0 -1
  267. package/dist/cjs/util/fs/writeJsonFile/writeJsonFileSafe.js.map +0 -1
  268. package/dist/cjs/util/function/MethodDisabler.js.map +0 -1
  269. package/dist/cjs/util/function/funSetName.js.map +0 -1
  270. package/dist/cjs/util/node/execInherit.js.map +0 -1
  271. package/dist/cjs/util/node/formatTableForTerminal.js.map +0 -1
  272. package/dist/cjs/util/object/arrAssign.js.map +0 -1
  273. package/dist/cjs/util/object/createArrayMerger.js.map +0 -1
  274. package/dist/cjs/util/object/createObjectMerger.js.map +0 -1
  275. package/dist/cjs/util/object/objAssign.js.map +0 -1
  276. package/dist/cjs/util/object/objUpdatePropertyDescriptors.js.map +0 -1
  277. package/dist/cjs/util/object/realizeLazyProperty.js.map +0 -1
  278. package/dist/cjs/util/object/setNonEnumerable.js.map +0 -1
  279. package/dist/cjs/util/os/defaultOpenInEditorCommand.js.map +0 -1
  280. package/dist/cjs/util/os/isOSX.js.map +0 -1
  281. package/dist/cjs/util/os/isVsCodeInstalled.js.map +0 -1
  282. package/dist/cjs/util/os/isWindows.js.map +0 -1
  283. package/dist/cjs/util/path/getTempDataPath.js.map +0 -1
  284. package/dist/cjs/util/regex/regexEscapeString.js.map +0 -1
  285. package/dist/cjs/util/string/strEnsureStartsWith.js.map +0 -1
  286. package/dist/cjs/util/string/strFirstCharToUpperCase.js.map +0 -1
  287. package/dist/cjs/util/string/strIsLowerCase.js.map +0 -1
  288. package/dist/cjs/util/string/strIsUpperCase.js.map +0 -1
  289. package/dist/cjs/util/string/strSplitCamelCase.js.map +0 -1
  290. package/dist/cjs/util/string-parsers/createBooleanParser.js.map +0 -1
  291. package/dist/cjs/util/string-parsers/createTypedListParser.js.map +0 -1
  292. package/dist/cjs/util/string-parsers/parseBoolean.js.map +0 -1
  293. package/dist/cjs/util/string-parsers/parseInteger.js.map +0 -1
  294. package/dist/cjs/util/string-parsers/parseNumber.js.map +0 -1
  295. package/dist/cjs/util/string-parsers/parseString.js.map +0 -1
  296. package/dist/cjs/util/types/Any.js.map +0 -1
  297. package/dist/cjs/util/types/DeepArray.js.map +0 -1
  298. package/dist/cjs/util/types/DeepObject.js.map +0 -1
  299. package/dist/cjs/util/types/JsonArray.js.map +0 -1
  300. package/dist/cjs/util/types/JsonDefinedPrimitive.js.map +0 -1
  301. package/dist/cjs/util/types/JsonObject.js.map +0 -1
  302. package/dist/cjs/util/types/JsonRawPrimitive.js.map +0 -1
  303. package/dist/cjs/util/types/JsonValue.js.map +0 -1
  304. package/dist/cjs/util/types/ObjectKey.js.map +0 -1
  305. package/dist/cjs/util/types/TConstructor.js.map +0 -1
  306. package/dist/cjs/util/types/TFunction.js.map +0 -1
  307. package/dist/cjs/util/types/TFunctionNoNew.js.map +0 -1
  308. package/dist/cjs/util/types/TPlainObject.js.map +0 -1
  309. package/dist/cjs/util/types/TPrimitive.js.map +0 -1
  310. package/dist/cjs/util/types/TStringParser.js.map +0 -1
  311. package/dist/cjs/util/types/TValidator.js.map +0 -1
  312. package/dist/cjs/util/validation/createTypedArrayValidator.js.map +0 -1
  313. package/dist/cjs/util/validation/ensureThat.js.map +0 -1
  314. package/dist/cjs/util/validation/isArray.js.map +0 -1
  315. package/dist/cjs/util/validation/isBoolean.js.map +0 -1
  316. package/dist/cjs/util/validation/isFunction.js.map +0 -1
  317. package/dist/cjs/util/validation/isNamedFunction.js.map +0 -1
  318. package/dist/cjs/util/validation/isNamedFunctionArray.js.map +0 -1
  319. package/dist/cjs/util/validation/isObject.js.map +0 -1
  320. package/dist/cjs/util/validation/isPlainObject.js.map +0 -1
  321. package/dist/cjs/util/validation/isPrimitive.js.map +0 -1
  322. package/dist/cjs/util/validation/isString.js.map +0 -1
  323. package/dist/cjs/util/validation/isStringArray.js.map +0 -1
  324. package/dist/cjs/util/validation/isStringWithNoSpacesOrDashes.js.map +0 -1
  325. package/dist/cjs/util/validation/numbers/isInteger.js.map +0 -1
  326. package/dist/cjs/util/validation/numbers/isValidNumber.js.map +0 -1
  327. package/dist/esm/arg/ArgumentBuilder.js.map +0 -1
  328. package/dist/esm/arg/ArgumentParserSelector.js.map +0 -1
  329. package/dist/esm/arg/ArgumentReader.js.map +0 -1
  330. package/dist/esm/arg/ArgumentValidatorSelector.js.map +0 -1
  331. package/dist/esm/cmd/CLI.js +0 -12
  332. package/dist/esm/cmd/CLI.js.map +0 -1
  333. package/dist/esm/cmd/CommandBuilder.js.map +0 -1
  334. package/dist/esm/cmd/CommandBuilderMetaData.js.map +0 -1
  335. package/dist/esm/cmd/CommandFeatureSelector.js.map +0 -1
  336. package/dist/esm/cmd/DefaultHelpConfig.js.map +0 -1
  337. package/dist/esm/cmd/asdas.js.map +0 -1
  338. package/dist/esm/core/OutputManager.js.map +0 -1
  339. package/dist/esm/core/ParserSelector.js.map +0 -1
  340. package/dist/esm/core/ValidatorSelector.js.map +0 -1
  341. package/dist/esm/core/splitCombinedArgvShorts.js.map +0 -1
  342. package/dist/esm/db/AbstractJsonFileSection.js.map +0 -1
  343. package/dist/esm/db/AppDataSection.js.map +0 -1
  344. package/dist/esm/db/ConfigSection.js.map +0 -1
  345. package/dist/esm/db/JsonFile.js.map +0 -1
  346. package/dist/esm/db/PresetsSection.js.map +0 -1
  347. package/dist/esm/index.js.map +0 -1
  348. package/dist/esm/opt/OptionArgumentParserSelector.js.map +0 -1
  349. package/dist/esm/opt/OptionArgumentValidatorSelector.js.map +0 -1
  350. package/dist/esm/opt/OptionBuilder.js.map +0 -1
  351. package/dist/esm/opt/OptionHelpers.js.map +0 -1
  352. package/dist/esm/opt/OptionReader.js.map +0 -1
  353. package/dist/esm/proto/overrideCommanderPrototype.js +0 -34
  354. package/dist/esm/proto/overrideCommanderPrototype.js.map +0 -1
  355. package/dist/esm/types/IConfig.js.map +0 -1
  356. package/dist/esm/types/IPreset.js.map +0 -1
  357. package/dist/esm/util/array/arrLast.js.map +0 -1
  358. package/dist/esm/util/array/arrSome.js.map +0 -1
  359. package/dist/esm/util/array/types/ArrayPredicate.js.map +0 -1
  360. package/dist/esm/util/db/JsonDB.js.map +0 -1
  361. package/dist/esm/util/errors/ErrorParser.js.map +0 -1
  362. package/dist/esm/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.js.map +0 -1
  363. package/dist/esm/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.js.map +0 -1
  364. package/dist/esm/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.js.map +0 -1
  365. package/dist/esm/util/fs/readFile/readFileSafeSync.js.map +0 -1
  366. package/dist/esm/util/fs/readFile/readFileSync.js.map +0 -1
  367. package/dist/esm/util/fs/readJsonFile/readJsonFileSafeSync.js.map +0 -1
  368. package/dist/esm/util/fs/removeFile/removeFile.js.map +0 -1
  369. package/dist/esm/util/fs/tempFile/tempFileSync.js.map +0 -1
  370. package/dist/esm/util/fs/types/IReadJsonFileOptions.js.map +0 -1
  371. package/dist/esm/util/fs/writeFile/writeFileSafeSync.js.map +0 -1
  372. package/dist/esm/util/fs/writeFile/writeFileSync.js.map +0 -1
  373. package/dist/esm/util/fs/writeJsonFile/writeJsonFileSafe.js.map +0 -1
  374. package/dist/esm/util/function/MethodDisabler.js.map +0 -1
  375. package/dist/esm/util/function/funSetName.js.map +0 -1
  376. package/dist/esm/util/node/execInherit.js.map +0 -1
  377. package/dist/esm/util/node/formatTableForTerminal.js.map +0 -1
  378. package/dist/esm/util/object/arrAssign.js.map +0 -1
  379. package/dist/esm/util/object/createArrayMerger.js.map +0 -1
  380. package/dist/esm/util/object/createObjectMerger.js.map +0 -1
  381. package/dist/esm/util/object/objAssign.js.map +0 -1
  382. package/dist/esm/util/object/objUpdatePropertyDescriptors.js.map +0 -1
  383. package/dist/esm/util/object/realizeLazyProperty.js.map +0 -1
  384. package/dist/esm/util/object/setNonEnumerable.js.map +0 -1
  385. package/dist/esm/util/os/defaultOpenInEditorCommand.js.map +0 -1
  386. package/dist/esm/util/os/isOSX.js.map +0 -1
  387. package/dist/esm/util/os/isVsCodeInstalled.js.map +0 -1
  388. package/dist/esm/util/os/isWindows.js.map +0 -1
  389. package/dist/esm/util/path/getTempDataPath.js.map +0 -1
  390. package/dist/esm/util/regex/regexEscapeString.js.map +0 -1
  391. package/dist/esm/util/string/strEnsureStartsWith.js.map +0 -1
  392. package/dist/esm/util/string/strFirstCharToUpperCase.js.map +0 -1
  393. package/dist/esm/util/string/strIsLowerCase.js.map +0 -1
  394. package/dist/esm/util/string/strIsUpperCase.js.map +0 -1
  395. package/dist/esm/util/string/strSplitCamelCase.js.map +0 -1
  396. package/dist/esm/util/string-parsers/createBooleanParser.js.map +0 -1
  397. package/dist/esm/util/string-parsers/createTypedListParser.js.map +0 -1
  398. package/dist/esm/util/string-parsers/parseBoolean.js.map +0 -1
  399. package/dist/esm/util/string-parsers/parseInteger.js.map +0 -1
  400. package/dist/esm/util/string-parsers/parseNumber.js.map +0 -1
  401. package/dist/esm/util/string-parsers/parseString.js.map +0 -1
  402. package/dist/esm/util/types/Any.js.map +0 -1
  403. package/dist/esm/util/types/DeepArray.js.map +0 -1
  404. package/dist/esm/util/types/DeepObject.js.map +0 -1
  405. package/dist/esm/util/types/JsonArray.js.map +0 -1
  406. package/dist/esm/util/types/JsonDefinedPrimitive.js.map +0 -1
  407. package/dist/esm/util/types/JsonObject.js.map +0 -1
  408. package/dist/esm/util/types/JsonRawPrimitive.js.map +0 -1
  409. package/dist/esm/util/types/JsonValue.js.map +0 -1
  410. package/dist/esm/util/types/ObjectKey.js.map +0 -1
  411. package/dist/esm/util/types/TConstructor.js.map +0 -1
  412. package/dist/esm/util/types/TFunction.js.map +0 -1
  413. package/dist/esm/util/types/TFunctionNoNew.js.map +0 -1
  414. package/dist/esm/util/types/TPlainObject.js.map +0 -1
  415. package/dist/esm/util/types/TPrimitive.js.map +0 -1
  416. package/dist/esm/util/types/TStringParser.js.map +0 -1
  417. package/dist/esm/util/types/TValidator.js.map +0 -1
  418. package/dist/esm/util/validation/createTypedArrayValidator.js.map +0 -1
  419. package/dist/esm/util/validation/ensureThat.js.map +0 -1
  420. package/dist/esm/util/validation/isArray.js.map +0 -1
  421. package/dist/esm/util/validation/isBoolean.js.map +0 -1
  422. package/dist/esm/util/validation/isFunction.js.map +0 -1
  423. package/dist/esm/util/validation/isNamedFunction.js.map +0 -1
  424. package/dist/esm/util/validation/isNamedFunctionArray.js.map +0 -1
  425. package/dist/esm/util/validation/isObject.js.map +0 -1
  426. package/dist/esm/util/validation/isPlainObject.js.map +0 -1
  427. package/dist/esm/util/validation/isPrimitive.js.map +0 -1
  428. package/dist/esm/util/validation/isString.js.map +0 -1
  429. package/dist/esm/util/validation/isStringArray.js.map +0 -1
  430. package/dist/esm/util/validation/isStringWithNoSpacesOrDashes.js.map +0 -1
  431. package/dist/esm/util/validation/numbers/isInteger.js.map +0 -1
  432. package/dist/esm/util/validation/numbers/isValidNumber.js.map +0 -1
  433. package/dist/types/cmd/CLI.d.ts +0 -2
  434. package/dist/types/proto/overrideCommanderPrototype.d.ts +0 -8
  435. package/jest.config.ts +0 -11
  436. package/notes/tsc.md +0 -1
  437. package/project.json +0 -43
  438. package/scripts/_example/CommandBuilder.example.ts +0 -96
  439. package/scripts/_example/CommandBuilder.example2.ts +0 -31
  440. package/scripts/_example/CommandBuilder.example3.ts +0 -20
  441. package/scripts/_example/bFindIn.ts +0 -207
  442. package/scripts/currentBemojeUtils.txt +0 -41
  443. package/scripts/rollupUtils.ts +0 -184
  444. package/src/arg/ArgumentBuilder.test.ts +0 -102
  445. package/src/arg/ArgumentBuilder.ts +0 -47
  446. package/src/arg/ArgumentParserSelector.test.ts +0 -53
  447. package/src/arg/ArgumentParserSelector.ts +0 -14
  448. package/src/arg/ArgumentReader.test.ts +0 -60
  449. package/src/arg/ArgumentReader.ts +0 -33
  450. package/src/arg/ArgumentValidatorSelector.test.ts +0 -80
  451. package/src/arg/ArgumentValidatorSelector.ts +0 -14
  452. package/src/cmd/CLI.test.ts +0 -14
  453. package/src/cmd/CLI.ts +0 -13
  454. package/src/cmd/CommandBuilder.test.ts +0 -611
  455. package/src/cmd/CommandBuilder.ts +0 -1175
  456. package/src/cmd/CommandBuilderMetaData.test.ts +0 -54
  457. package/src/cmd/CommandBuilderMetaData.ts +0 -44
  458. package/src/cmd/CommandFeatureSelector.test.ts +0 -185
  459. package/src/cmd/CommandFeatureSelector.ts +0 -113
  460. package/src/cmd/DefaultHelpConfig.test.ts +0 -22
  461. package/src/cmd/DefaultHelpConfig.ts +0 -141
  462. package/src/cmd/asdas.ts +0 -40
  463. package/src/core/OutputManager.test.ts +0 -129
  464. package/src/core/OutputManager.ts +0 -103
  465. package/src/core/ParserSelector.test.ts +0 -7
  466. package/src/core/ParserSelector.ts +0 -38
  467. package/src/core/ValidatorSelector.test.ts +0 -7
  468. package/src/core/ValidatorSelector.ts +0 -38
  469. package/src/core/splitCombinedArgvShorts.test.ts +0 -9
  470. package/src/core/splitCombinedArgvShorts.ts +0 -10
  471. package/src/db/AbstractJsonFileSection.test.ts +0 -274
  472. package/src/db/AbstractJsonFileSection.ts +0 -218
  473. package/src/db/AppDataSection.test.ts +0 -69
  474. package/src/db/AppDataSection.ts +0 -46
  475. package/src/db/ConfigSection.test.ts +0 -95
  476. package/src/db/ConfigSection.ts +0 -74
  477. package/src/db/JsonFile.test.ts +0 -56
  478. package/src/db/JsonFile.ts +0 -52
  479. package/src/db/PresetsSection.test.ts +0 -130
  480. package/src/db/PresetsSection.ts +0 -92
  481. package/src/index.ts +0 -103
  482. package/src/opt/OptionArgumentParserSelector.test.ts +0 -54
  483. package/src/opt/OptionArgumentParserSelector.ts +0 -14
  484. package/src/opt/OptionArgumentValidatorSelector.test.ts +0 -90
  485. package/src/opt/OptionArgumentValidatorSelector.ts +0 -16
  486. package/src/opt/OptionBuilder.test.ts +0 -229
  487. package/src/opt/OptionBuilder.ts +0 -85
  488. package/src/opt/OptionHelpers.test.ts +0 -229
  489. package/src/opt/OptionHelpers.ts +0 -57
  490. package/src/opt/OptionReader.test.ts +0 -106
  491. package/src/opt/OptionReader.ts +0 -61
  492. package/src/proto/overrideCommanderPrototype.ts +0 -42
  493. package/src/types/IConfig.ts +0 -25
  494. package/src/types/IPreset.ts +0 -16
  495. package/src/util/array/arrLast.test.ts +0 -25
  496. package/src/util/array/arrLast.ts +0 -15
  497. package/src/util/array/arrSome.test.ts +0 -78
  498. package/src/util/array/arrSome.ts +0 -23
  499. package/src/util/array/types/ArrayPredicate.ts +0 -10
  500. package/src/util/db/JsonDB.test.ts +0 -214
  501. package/src/util/db/JsonDB.ts +0 -138
  502. package/src/util/errors/ErrorParser.ts +0 -165
  503. package/src/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.ts +0 -15
  504. package/src/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.ts +0 -30
  505. package/src/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.ts +0 -25
  506. package/src/util/fs/readFile/readFileSafeSync.ts +0 -20
  507. package/src/util/fs/readFile/readFileSync.ts +0 -13
  508. package/src/util/fs/readJsonFile/readJsonFileSafeSync.ts +0 -17
  509. package/src/util/fs/removeFile/removeFile.ts +0 -1
  510. package/src/util/fs/tempFile/tempFileSync.ts +0 -21
  511. package/src/util/fs/types/IReadJsonFileOptions.ts +0 -1
  512. package/src/util/fs/writeFile/writeFileSafeSync.ts +0 -1
  513. package/src/util/fs/writeFile/writeFileSync.ts +0 -1
  514. package/src/util/fs/writeJsonFile/writeJsonFileSafe.ts +0 -1
  515. package/src/util/function/MethodDisabler.test.ts +0 -112
  516. package/src/util/function/MethodDisabler.ts +0 -94
  517. package/src/util/function/funSetName.test.ts +0 -12
  518. package/src/util/function/funSetName.ts +0 -16
  519. package/src/util/node/execInherit.ts +0 -14
  520. package/src/util/node/formatTableForTerminal.ts +0 -12
  521. package/src/util/object/arrAssign.ts +0 -3
  522. package/src/util/object/createArrayMerger.test.ts +0 -11
  523. package/src/util/object/createArrayMerger.ts +0 -15
  524. package/src/util/object/createObjectMerger.test.ts +0 -11
  525. package/src/util/object/createObjectMerger.ts +0 -17
  526. package/src/util/object/objAssign.ts +0 -3
  527. package/src/util/object/objUpdatePropertyDescriptors.test.ts +0 -40
  528. package/src/util/object/objUpdatePropertyDescriptors.ts +0 -29
  529. package/src/util/object/realizeLazyProperty.ts +0 -9
  530. package/src/util/object/setNonEnumerable.test.ts +0 -63
  531. package/src/util/object/setNonEnumerable.ts +0 -22
  532. package/src/util/os/defaultOpenInEditorCommand.ts +0 -14
  533. package/src/util/os/isOSX.ts +0 -9
  534. package/src/util/os/isVsCodeInstalled.test.ts +0 -7
  535. package/src/util/os/isVsCodeInstalled.ts +0 -14
  536. package/src/util/os/isWindows.ts +0 -12
  537. package/src/util/path/getTempDataPath.test.ts +0 -9
  538. package/src/util/path/getTempDataPath.ts +0 -14
  539. package/src/util/regex/regexEscapeString.test.ts +0 -35
  540. package/src/util/regex/regexEscapeString.ts +0 -13
  541. package/src/util/string/strEnsureStartsWith.test.ts +0 -13
  542. package/src/util/string/strEnsureStartsWith.ts +0 -14
  543. package/src/util/string/strFirstCharToUpperCase.test.ts +0 -33
  544. package/src/util/string/strFirstCharToUpperCase.ts +0 -11
  545. package/src/util/string/strIsLowerCase.test.ts +0 -42
  546. package/src/util/string/strIsLowerCase.ts +0 -13
  547. package/src/util/string/strIsUpperCase.test.ts +0 -48
  548. package/src/util/string/strIsUpperCase.ts +0 -13
  549. package/src/util/string/strSplitCamelCase.test.ts +0 -54
  550. package/src/util/string/strSplitCamelCase.ts +0 -51
  551. package/src/util/string-parsers/createBooleanParser.test.ts +0 -58
  552. package/src/util/string-parsers/createBooleanParser.ts +0 -21
  553. package/src/util/string-parsers/createTypedListParser.test.ts +0 -19
  554. package/src/util/string-parsers/createTypedListParser.ts +0 -19
  555. package/src/util/string-parsers/parseBoolean.test.ts +0 -30
  556. package/src/util/string-parsers/parseBoolean.ts +0 -12
  557. package/src/util/string-parsers/parseInteger.test.ts +0 -52
  558. package/src/util/string-parsers/parseInteger.ts +0 -9
  559. package/src/util/string-parsers/parseNumber.test.ts +0 -53
  560. package/src/util/string-parsers/parseNumber.ts +0 -6
  561. package/src/util/string-parsers/parseString.test.ts +0 -7
  562. package/src/util/string-parsers/parseString.ts +0 -3
  563. package/src/util/types/Any.ts +0 -2
  564. package/src/util/types/DeepArray.ts +0 -12
  565. package/src/util/types/DeepObject.ts +0 -16
  566. package/src/util/types/JsonArray.ts +0 -8
  567. package/src/util/types/JsonDefinedPrimitive.ts +0 -5
  568. package/src/util/types/JsonObject.ts +0 -8
  569. package/src/util/types/JsonRawPrimitive.ts +0 -7
  570. package/src/util/types/JsonValue.ts +0 -14
  571. package/src/util/types/ObjectKey.ts +0 -1
  572. package/src/util/types/TConstructor.ts +0 -6
  573. package/src/util/types/TFunction.ts +0 -5
  574. package/src/util/types/TFunctionNoNew.ts +0 -3
  575. package/src/util/types/TPlainObject.ts +0 -4
  576. package/src/util/types/TPrimitive.ts +0 -1
  577. package/src/util/types/TStringParser.ts +0 -1
  578. package/src/util/types/TValidator.ts +0 -3
  579. package/src/util/validation/createTypedArrayValidator.test.ts +0 -34
  580. package/src/util/validation/createTypedArrayValidator.ts +0 -25
  581. package/src/util/validation/ensureThat.test.ts +0 -37
  582. package/src/util/validation/ensureThat.ts +0 -14
  583. package/src/util/validation/isArray.test.ts +0 -7
  584. package/src/util/validation/isArray.ts +0 -1
  585. package/src/util/validation/isBoolean.test.ts +0 -31
  586. package/src/util/validation/isBoolean.ts +0 -3
  587. package/src/util/validation/isFunction.test.ts +0 -54
  588. package/src/util/validation/isFunction.ts +0 -14
  589. package/src/util/validation/isNamedFunction.test.ts +0 -28
  590. package/src/util/validation/isNamedFunction.ts +0 -8
  591. package/src/util/validation/isNamedFunctionArray.test.ts +0 -14
  592. package/src/util/validation/isNamedFunctionArray.ts +0 -5
  593. package/src/util/validation/isObject.test.ts +0 -57
  594. package/src/util/validation/isObject.ts +0 -17
  595. package/src/util/validation/isPlainObject.test.ts +0 -21
  596. package/src/util/validation/isPlainObject.ts +0 -14
  597. package/src/util/validation/isPrimitive.ts +0 -15
  598. package/src/util/validation/isString.test.ts +0 -23
  599. package/src/util/validation/isString.ts +0 -3
  600. package/src/util/validation/isStringArray.test.ts +0 -24
  601. package/src/util/validation/isStringArray.ts +0 -8
  602. package/src/util/validation/isStringWithNoSpacesOrDashes.test.ts +0 -28
  603. package/src/util/validation/isStringWithNoSpacesOrDashes.ts +0 -5
  604. package/src/util/validation/numbers/isInteger.test.ts +0 -25
  605. package/src/util/validation/numbers/isInteger.ts +0 -13
  606. package/src/util/validation/numbers/isValidNumber.test.ts +0 -20
  607. package/src/util/validation/numbers/isValidNumber.ts +0 -17
  608. package/tsconfig.json +0 -32
  609. package/tsconfig.lib.json +0 -18
  610. package/tsconfig.spec.json +0 -10
  611. /package/{dist/cjs → cjs}/arg/ArgumentBuilder.js +0 -0
  612. /package/{dist/cjs → cjs}/arg/ArgumentParserSelector.js +0 -0
  613. /package/{dist/cjs → cjs}/arg/ArgumentReader.js +0 -0
  614. /package/{dist/cjs → cjs}/arg/ArgumentValidatorSelector.js +0 -0
  615. /package/{dist/cjs → cjs}/cmd/CommandFeatureSelector.js +0 -0
  616. /package/{dist/cjs → cjs}/cmd/DefaultHelpConfig.js +0 -0
  617. /package/{dist/cjs → cjs}/cmd/asdas.js +0 -0
  618. /package/{dist/cjs → cjs}/core/OutputManager.js +0 -0
  619. /package/{dist/cjs → cjs}/core/ParserSelector.js +0 -0
  620. /package/{dist/cjs → cjs}/core/ValidatorSelector.js +0 -0
  621. /package/{dist/cjs → cjs}/core/splitCombinedArgvShorts.js +0 -0
  622. /package/{dist/cjs → cjs}/db/AbstractJsonFileSection.js +0 -0
  623. /package/{dist/cjs → cjs}/db/AppDataSection.js +0 -0
  624. /package/{dist/cjs → cjs}/db/ConfigSection.js +0 -0
  625. /package/{dist/cjs → cjs}/db/JsonFile.js +0 -0
  626. /package/{dist/cjs → cjs}/db/PresetsSection.js +0 -0
  627. /package/{dist/cjs → cjs}/opt/OptionArgumentParserSelector.js +0 -0
  628. /package/{dist/cjs → cjs}/opt/OptionArgumentValidatorSelector.js +0 -0
  629. /package/{dist/cjs → cjs}/opt/OptionBuilder.js +0 -0
  630. /package/{dist/cjs → cjs}/opt/OptionHelpers.js +0 -0
  631. /package/{dist/cjs → cjs}/opt/OptionReader.js +0 -0
  632. /package/{dist/cjs → cjs}/types/IConfig.js +0 -0
  633. /package/{dist/cjs → cjs}/types/IPreset.js +0 -0
  634. /package/{dist/cjs → cjs}/util/array/arrLast.js +0 -0
  635. /package/{dist/cjs → cjs}/util/array/arrSome.js +0 -0
  636. /package/{dist/cjs → cjs}/util/array/types/ArrayPredicate.js +0 -0
  637. /package/{dist/cjs → cjs}/util/db/JsonDB.js +0 -0
  638. /package/{dist/cjs → cjs}/util/errors/ErrorParser.js +0 -0
  639. /package/{dist/cjs → cjs}/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.js +0 -0
  640. /package/{dist/cjs → cjs}/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.js +0 -0
  641. /package/{dist/cjs → cjs}/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.js +0 -0
  642. /package/{dist/cjs → cjs}/util/fs/readFile/readFileSafeSync.js +0 -0
  643. /package/{dist/cjs → cjs}/util/fs/readFile/readFileSync.js +0 -0
  644. /package/{dist/cjs → cjs}/util/fs/readJsonFile/readJsonFileSafeSync.js +0 -0
  645. /package/{dist/cjs → cjs}/util/fs/removeFile/removeFile.js +0 -0
  646. /package/{dist/cjs → cjs}/util/fs/tempFile/tempFileSync.js +0 -0
  647. /package/{dist/cjs → cjs}/util/fs/types/IReadJsonFileOptions.js +0 -0
  648. /package/{dist/cjs → cjs}/util/fs/writeFile/writeFileSafeSync.js +0 -0
  649. /package/{dist/cjs → cjs}/util/fs/writeFile/writeFileSync.js +0 -0
  650. /package/{dist/cjs → cjs}/util/fs/writeJsonFile/writeJsonFileSafe.js +0 -0
  651. /package/{dist/cjs → cjs}/util/function/MethodDisabler.js +0 -0
  652. /package/{dist/cjs → cjs}/util/function/funSetName.js +0 -0
  653. /package/{dist/cjs → cjs}/util/node/execInherit.js +0 -0
  654. /package/{dist/cjs → cjs}/util/node/formatTableForTerminal.js +0 -0
  655. /package/{dist/cjs → cjs}/util/object/arrAssign.js +0 -0
  656. /package/{dist/cjs → cjs}/util/object/createArrayMerger.js +0 -0
  657. /package/{dist/cjs → cjs}/util/object/createObjectMerger.js +0 -0
  658. /package/{dist/cjs → cjs}/util/object/objAssign.js +0 -0
  659. /package/{dist/cjs → cjs}/util/object/objUpdatePropertyDescriptors.js +0 -0
  660. /package/{dist/cjs → cjs}/util/object/realizeLazyProperty.js +0 -0
  661. /package/{dist/cjs → cjs}/util/object/setNonEnumerable.js +0 -0
  662. /package/{dist/cjs → cjs}/util/os/defaultOpenInEditorCommand.js +0 -0
  663. /package/{dist/cjs → cjs}/util/os/isOSX.js +0 -0
  664. /package/{dist/cjs → cjs}/util/os/isVsCodeInstalled.js +0 -0
  665. /package/{dist/cjs → cjs}/util/os/isWindows.js +0 -0
  666. /package/{dist/cjs → cjs}/util/path/getTempDataPath.js +0 -0
  667. /package/{dist/cjs → cjs}/util/regex/regexEscapeString.js +0 -0
  668. /package/{dist/cjs → cjs}/util/string/strEnsureStartsWith.js +0 -0
  669. /package/{dist/cjs → cjs}/util/string/strFirstCharToUpperCase.js +0 -0
  670. /package/{dist/cjs → cjs}/util/string/strIsLowerCase.js +0 -0
  671. /package/{dist/cjs → cjs}/util/string/strIsUpperCase.js +0 -0
  672. /package/{dist/cjs → cjs}/util/string/strSplitCamelCase.js +0 -0
  673. /package/{dist/cjs → cjs}/util/string-parsers/createBooleanParser.js +0 -0
  674. /package/{dist/cjs → cjs}/util/string-parsers/createTypedListParser.js +0 -0
  675. /package/{dist/cjs → cjs}/util/string-parsers/parseBoolean.js +0 -0
  676. /package/{dist/cjs → cjs}/util/string-parsers/parseInteger.js +0 -0
  677. /package/{dist/cjs → cjs}/util/string-parsers/parseNumber.js +0 -0
  678. /package/{dist/cjs → cjs}/util/string-parsers/parseString.js +0 -0
  679. /package/{dist/cjs → cjs}/util/types/Any.js +0 -0
  680. /package/{dist/cjs → cjs}/util/types/DeepArray.js +0 -0
  681. /package/{dist/cjs → cjs}/util/types/DeepObject.js +0 -0
  682. /package/{dist/cjs → cjs}/util/types/JsonArray.js +0 -0
  683. /package/{dist/cjs → cjs}/util/types/JsonDefinedPrimitive.js +0 -0
  684. /package/{dist/cjs → cjs}/util/types/JsonObject.js +0 -0
  685. /package/{dist/cjs → cjs}/util/types/JsonRawPrimitive.js +0 -0
  686. /package/{dist/cjs → cjs}/util/types/JsonValue.js +0 -0
  687. /package/{dist/cjs → cjs}/util/types/ObjectKey.js +0 -0
  688. /package/{dist/cjs → cjs}/util/types/TConstructor.js +0 -0
  689. /package/{dist/cjs → cjs}/util/types/TFunction.js +0 -0
  690. /package/{dist/cjs → cjs}/util/types/TFunctionNoNew.js +0 -0
  691. /package/{dist/cjs → cjs}/util/types/TPlainObject.js +0 -0
  692. /package/{dist/cjs → cjs}/util/types/TPrimitive.js +0 -0
  693. /package/{dist/cjs → cjs}/util/types/TStringParser.js +0 -0
  694. /package/{dist/cjs → cjs}/util/types/TValidator.js +0 -0
  695. /package/{dist/cjs → cjs}/util/validation/createTypedArrayValidator.js +0 -0
  696. /package/{dist/cjs → cjs}/util/validation/ensureThat.js +0 -0
  697. /package/{dist/cjs → cjs}/util/validation/isArray.js +0 -0
  698. /package/{dist/cjs → cjs}/util/validation/isBoolean.js +0 -0
  699. /package/{dist/cjs → cjs}/util/validation/isFunction.js +0 -0
  700. /package/{dist/cjs → cjs}/util/validation/isNamedFunction.js +0 -0
  701. /package/{dist/cjs → cjs}/util/validation/isNamedFunctionArray.js +0 -0
  702. /package/{dist/cjs → cjs}/util/validation/isObject.js +0 -0
  703. /package/{dist/cjs → cjs}/util/validation/isPlainObject.js +0 -0
  704. /package/{dist/cjs → cjs}/util/validation/isPrimitive.js +0 -0
  705. /package/{dist/cjs → cjs}/util/validation/isString.js +0 -0
  706. /package/{dist/cjs → cjs}/util/validation/isStringArray.js +0 -0
  707. /package/{dist/cjs → cjs}/util/validation/isStringWithNoSpacesOrDashes.js +0 -0
  708. /package/{dist/cjs → cjs}/util/validation/numbers/isInteger.js +0 -0
  709. /package/{dist/cjs → cjs}/util/validation/numbers/isValidNumber.js +0 -0
  710. /package/{dist/esm → esm}/arg/ArgumentBuilder.js +0 -0
  711. /package/{dist/esm → esm}/arg/ArgumentParserSelector.js +0 -0
  712. /package/{dist/esm → esm}/arg/ArgumentReader.js +0 -0
  713. /package/{dist/esm → esm}/arg/ArgumentValidatorSelector.js +0 -0
  714. /package/{dist/esm → esm}/cmd/CommandFeatureSelector.js +0 -0
  715. /package/{dist/esm → esm}/cmd/DefaultHelpConfig.js +0 -0
  716. /package/{dist/esm → esm}/cmd/asdas.js +0 -0
  717. /package/{dist/esm → esm}/core/OutputManager.js +0 -0
  718. /package/{dist/esm → esm}/core/ParserSelector.js +0 -0
  719. /package/{dist/esm → esm}/core/ValidatorSelector.js +0 -0
  720. /package/{dist/esm → esm}/core/splitCombinedArgvShorts.js +0 -0
  721. /package/{dist/esm → esm}/db/AbstractJsonFileSection.js +0 -0
  722. /package/{dist/esm → esm}/db/AppDataSection.js +0 -0
  723. /package/{dist/esm → esm}/db/ConfigSection.js +0 -0
  724. /package/{dist/esm → esm}/db/JsonFile.js +0 -0
  725. /package/{dist/esm → esm}/db/PresetsSection.js +0 -0
  726. /package/{dist/esm → esm}/opt/OptionArgumentParserSelector.js +0 -0
  727. /package/{dist/esm → esm}/opt/OptionArgumentValidatorSelector.js +0 -0
  728. /package/{dist/esm → esm}/opt/OptionBuilder.js +0 -0
  729. /package/{dist/esm → esm}/opt/OptionHelpers.js +0 -0
  730. /package/{dist/esm → esm}/opt/OptionReader.js +0 -0
  731. /package/{dist/esm → esm}/types/IConfig.js +0 -0
  732. /package/{dist/esm → esm}/types/IPreset.js +0 -0
  733. /package/{dist/esm → esm}/util/array/arrLast.js +0 -0
  734. /package/{dist/esm → esm}/util/array/arrSome.js +0 -0
  735. /package/{dist/esm → esm}/util/array/types/ArrayPredicate.js +0 -0
  736. /package/{dist/esm → esm}/util/db/JsonDB.js +0 -0
  737. /package/{dist/esm → esm}/util/errors/ErrorParser.js +0 -0
  738. /package/{dist/esm → esm}/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.js +0 -0
  739. /package/{dist/esm → esm}/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.js +0 -0
  740. /package/{dist/esm → esm}/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.js +0 -0
  741. /package/{dist/esm → esm}/util/fs/readFile/readFileSafeSync.js +0 -0
  742. /package/{dist/esm → esm}/util/fs/readFile/readFileSync.js +0 -0
  743. /package/{dist/esm → esm}/util/fs/readJsonFile/readJsonFileSafeSync.js +0 -0
  744. /package/{dist/esm → esm}/util/fs/removeFile/removeFile.js +0 -0
  745. /package/{dist/esm → esm}/util/fs/tempFile/tempFileSync.js +0 -0
  746. /package/{dist/esm → esm}/util/fs/types/IReadJsonFileOptions.js +0 -0
  747. /package/{dist/esm → esm}/util/fs/writeFile/writeFileSafeSync.js +0 -0
  748. /package/{dist/esm → esm}/util/fs/writeFile/writeFileSync.js +0 -0
  749. /package/{dist/esm → esm}/util/fs/writeJsonFile/writeJsonFileSafe.js +0 -0
  750. /package/{dist/esm → esm}/util/function/MethodDisabler.js +0 -0
  751. /package/{dist/esm → esm}/util/function/funSetName.js +0 -0
  752. /package/{dist/esm → esm}/util/node/execInherit.js +0 -0
  753. /package/{dist/esm → esm}/util/node/formatTableForTerminal.js +0 -0
  754. /package/{dist/esm → esm}/util/object/arrAssign.js +0 -0
  755. /package/{dist/esm → esm}/util/object/createArrayMerger.js +0 -0
  756. /package/{dist/esm → esm}/util/object/createObjectMerger.js +0 -0
  757. /package/{dist/esm → esm}/util/object/objAssign.js +0 -0
  758. /package/{dist/esm → esm}/util/object/objUpdatePropertyDescriptors.js +0 -0
  759. /package/{dist/esm → esm}/util/object/realizeLazyProperty.js +0 -0
  760. /package/{dist/esm → esm}/util/object/setNonEnumerable.js +0 -0
  761. /package/{dist/esm → esm}/util/os/defaultOpenInEditorCommand.js +0 -0
  762. /package/{dist/esm → esm}/util/os/isOSX.js +0 -0
  763. /package/{dist/esm → esm}/util/os/isVsCodeInstalled.js +0 -0
  764. /package/{dist/esm → esm}/util/os/isWindows.js +0 -0
  765. /package/{dist/esm → esm}/util/path/getTempDataPath.js +0 -0
  766. /package/{dist/esm → esm}/util/regex/regexEscapeString.js +0 -0
  767. /package/{dist/esm → esm}/util/string/strEnsureStartsWith.js +0 -0
  768. /package/{dist/esm → esm}/util/string/strFirstCharToUpperCase.js +0 -0
  769. /package/{dist/esm → esm}/util/string/strIsLowerCase.js +0 -0
  770. /package/{dist/esm → esm}/util/string/strIsUpperCase.js +0 -0
  771. /package/{dist/esm → esm}/util/string/strSplitCamelCase.js +0 -0
  772. /package/{dist/esm → esm}/util/string-parsers/createBooleanParser.js +0 -0
  773. /package/{dist/esm → esm}/util/string-parsers/createTypedListParser.js +0 -0
  774. /package/{dist/esm → esm}/util/string-parsers/parseBoolean.js +0 -0
  775. /package/{dist/esm → esm}/util/string-parsers/parseInteger.js +0 -0
  776. /package/{dist/esm → esm}/util/string-parsers/parseNumber.js +0 -0
  777. /package/{dist/esm → esm}/util/string-parsers/parseString.js +0 -0
  778. /package/{dist/esm → esm}/util/types/Any.js +0 -0
  779. /package/{dist/esm → esm}/util/types/DeepArray.js +0 -0
  780. /package/{dist/esm → esm}/util/types/DeepObject.js +0 -0
  781. /package/{dist/esm → esm}/util/types/JsonArray.js +0 -0
  782. /package/{dist/esm → esm}/util/types/JsonDefinedPrimitive.js +0 -0
  783. /package/{dist/esm → esm}/util/types/JsonObject.js +0 -0
  784. /package/{dist/esm → esm}/util/types/JsonRawPrimitive.js +0 -0
  785. /package/{dist/esm → esm}/util/types/JsonValue.js +0 -0
  786. /package/{dist/esm → esm}/util/types/ObjectKey.js +0 -0
  787. /package/{dist/esm → esm}/util/types/TConstructor.js +0 -0
  788. /package/{dist/esm → esm}/util/types/TFunction.js +0 -0
  789. /package/{dist/esm → esm}/util/types/TFunctionNoNew.js +0 -0
  790. /package/{dist/esm → esm}/util/types/TPlainObject.js +0 -0
  791. /package/{dist/esm → esm}/util/types/TPrimitive.js +0 -0
  792. /package/{dist/esm → esm}/util/types/TStringParser.js +0 -0
  793. /package/{dist/esm → esm}/util/types/TValidator.js +0 -0
  794. /package/{dist/esm → esm}/util/validation/createTypedArrayValidator.js +0 -0
  795. /package/{dist/esm → esm}/util/validation/ensureThat.js +0 -0
  796. /package/{dist/esm → esm}/util/validation/isArray.js +0 -0
  797. /package/{dist/esm → esm}/util/validation/isBoolean.js +0 -0
  798. /package/{dist/esm → esm}/util/validation/isFunction.js +0 -0
  799. /package/{dist/esm → esm}/util/validation/isNamedFunction.js +0 -0
  800. /package/{dist/esm → esm}/util/validation/isNamedFunctionArray.js +0 -0
  801. /package/{dist/esm → esm}/util/validation/isObject.js +0 -0
  802. /package/{dist/esm → esm}/util/validation/isPlainObject.js +0 -0
  803. /package/{dist/esm → esm}/util/validation/isPrimitive.js +0 -0
  804. /package/{dist/esm → esm}/util/validation/isString.js +0 -0
  805. /package/{dist/esm → esm}/util/validation/isStringArray.js +0 -0
  806. /package/{dist/esm → esm}/util/validation/isStringWithNoSpacesOrDashes.js +0 -0
  807. /package/{dist/esm → esm}/util/validation/numbers/isInteger.js +0 -0
  808. /package/{dist/esm → esm}/util/validation/numbers/isValidNumber.js +0 -0
  809. /package/{dist/types → types}/arg/ArgumentBuilder.d.ts +0 -0
  810. /package/{dist/types → types}/arg/ArgumentParserSelector.d.ts +0 -0
  811. /package/{dist/types → types}/arg/ArgumentReader.d.ts +0 -0
  812. /package/{dist/types → types}/arg/ArgumentValidatorSelector.d.ts +0 -0
  813. /package/{dist/types → types}/cmd/CommandFeatureSelector.d.ts +0 -0
  814. /package/{dist/types → types}/cmd/DefaultHelpConfig.d.ts +0 -0
  815. /package/{dist/types → types}/cmd/asdas.d.ts +0 -0
  816. /package/{dist/types → types}/core/OutputManager.d.ts +0 -0
  817. /package/{dist/types → types}/core/ParserSelector.d.ts +0 -0
  818. /package/{dist/types → types}/core/ValidatorSelector.d.ts +0 -0
  819. /package/{dist/types → types}/core/splitCombinedArgvShorts.d.ts +0 -0
  820. /package/{dist/types → types}/db/AbstractJsonFileSection.d.ts +0 -0
  821. /package/{dist/types → types}/db/AppDataSection.d.ts +0 -0
  822. /package/{dist/types → types}/db/ConfigSection.d.ts +0 -0
  823. /package/{dist/types → types}/db/JsonFile.d.ts +0 -0
  824. /package/{dist/types → types}/db/PresetsSection.d.ts +0 -0
  825. /package/{dist/types → types}/opt/OptionArgumentParserSelector.d.ts +0 -0
  826. /package/{dist/types → types}/opt/OptionArgumentValidatorSelector.d.ts +0 -0
  827. /package/{dist/types → types}/opt/OptionBuilder.d.ts +0 -0
  828. /package/{dist/types → types}/opt/OptionHelpers.d.ts +0 -0
  829. /package/{dist/types → types}/opt/OptionReader.d.ts +0 -0
  830. /package/{dist/types → types}/types/IConfig.d.ts +0 -0
  831. /package/{dist/types → types}/types/IPreset.d.ts +0 -0
  832. /package/{dist/types → types}/util/array/arrLast.d.ts +0 -0
  833. /package/{dist/types → types}/util/array/arrSome.d.ts +0 -0
  834. /package/{dist/types → types}/util/array/types/ArrayPredicate.d.ts +0 -0
  835. /package/{dist/types → types}/util/db/JsonDB.d.ts +0 -0
  836. /package/{dist/types → types}/util/errors/ErrorParser.d.ts +0 -0
  837. /package/{dist/types → types}/util/fs/promptUserEditInTextEditor/IGetUserInputFromEditorOptions.d.ts +0 -0
  838. /package/{dist/types → types}/util/fs/promptUserEditInTextEditor/promptUserEditInTextEditorSync.d.ts +0 -0
  839. /package/{dist/types → types}/util/fs/promptUserEditInTextEditor/promptUserEditJsonInTextEditorSync.d.ts +0 -0
  840. /package/{dist/types → types}/util/fs/readFile/readFileSafeSync.d.ts +0 -0
  841. /package/{dist/types → types}/util/fs/readFile/readFileSync.d.ts +0 -0
  842. /package/{dist/types → types}/util/fs/readJsonFile/readJsonFileSafeSync.d.ts +0 -0
  843. /package/{dist/types → types}/util/fs/removeFile/removeFile.d.ts +0 -0
  844. /package/{dist/types → types}/util/fs/tempFile/tempFileSync.d.ts +0 -0
  845. /package/{dist/types → types}/util/fs/types/IReadJsonFileOptions.d.ts +0 -0
  846. /package/{dist/types → types}/util/fs/writeFile/writeFileSafeSync.d.ts +0 -0
  847. /package/{dist/types → types}/util/fs/writeFile/writeFileSync.d.ts +0 -0
  848. /package/{dist/types → types}/util/fs/writeJsonFile/writeJsonFileSafe.d.ts +0 -0
  849. /package/{dist/types → types}/util/function/MethodDisabler.d.ts +0 -0
  850. /package/{dist/types → types}/util/function/funSetName.d.ts +0 -0
  851. /package/{dist/types → types}/util/node/execInherit.d.ts +0 -0
  852. /package/{dist/types → types}/util/node/formatTableForTerminal.d.ts +0 -0
  853. /package/{dist/types → types}/util/object/arrAssign.d.ts +0 -0
  854. /package/{dist/types → types}/util/object/createArrayMerger.d.ts +0 -0
  855. /package/{dist/types → types}/util/object/createObjectMerger.d.ts +0 -0
  856. /package/{dist/types → types}/util/object/objAssign.d.ts +0 -0
  857. /package/{dist/types → types}/util/object/objUpdatePropertyDescriptors.d.ts +0 -0
  858. /package/{dist/types → types}/util/object/realizeLazyProperty.d.ts +0 -0
  859. /package/{dist/types → types}/util/object/setNonEnumerable.d.ts +0 -0
  860. /package/{dist/types → types}/util/os/defaultOpenInEditorCommand.d.ts +0 -0
  861. /package/{dist/types → types}/util/os/isOSX.d.ts +0 -0
  862. /package/{dist/types → types}/util/os/isVsCodeInstalled.d.ts +0 -0
  863. /package/{dist/types → types}/util/os/isWindows.d.ts +0 -0
  864. /package/{dist/types → types}/util/path/getTempDataPath.d.ts +0 -0
  865. /package/{dist/types → types}/util/regex/regexEscapeString.d.ts +0 -0
  866. /package/{dist/types → types}/util/string/strEnsureStartsWith.d.ts +0 -0
  867. /package/{dist/types → types}/util/string/strFirstCharToUpperCase.d.ts +0 -0
  868. /package/{dist/types → types}/util/string/strIsLowerCase.d.ts +0 -0
  869. /package/{dist/types → types}/util/string/strIsUpperCase.d.ts +0 -0
  870. /package/{dist/types → types}/util/string/strSplitCamelCase.d.ts +0 -0
  871. /package/{dist/types → types}/util/string-parsers/createBooleanParser.d.ts +0 -0
  872. /package/{dist/types → types}/util/string-parsers/createTypedListParser.d.ts +0 -0
  873. /package/{dist/types → types}/util/string-parsers/parseBoolean.d.ts +0 -0
  874. /package/{dist/types → types}/util/string-parsers/parseInteger.d.ts +0 -0
  875. /package/{dist/types → types}/util/string-parsers/parseNumber.d.ts +0 -0
  876. /package/{dist/types → types}/util/string-parsers/parseString.d.ts +0 -0
  877. /package/{dist/types → types}/util/types/Any.d.ts +0 -0
  878. /package/{dist/types → types}/util/types/DeepArray.d.ts +0 -0
  879. /package/{dist/types → types}/util/types/DeepObject.d.ts +0 -0
  880. /package/{dist/types → types}/util/types/JsonArray.d.ts +0 -0
  881. /package/{dist/types → types}/util/types/JsonDefinedPrimitive.d.ts +0 -0
  882. /package/{dist/types → types}/util/types/JsonObject.d.ts +0 -0
  883. /package/{dist/types → types}/util/types/JsonRawPrimitive.d.ts +0 -0
  884. /package/{dist/types → types}/util/types/JsonValue.d.ts +0 -0
  885. /package/{dist/types → types}/util/types/ObjectKey.d.ts +0 -0
  886. /package/{dist/types → types}/util/types/TConstructor.d.ts +0 -0
  887. /package/{dist/types → types}/util/types/TFunction.d.ts +0 -0
  888. /package/{dist/types → types}/util/types/TFunctionNoNew.d.ts +0 -0
  889. /package/{dist/types → types}/util/types/TPlainObject.d.ts +0 -0
  890. /package/{dist/types → types}/util/types/TPrimitive.d.ts +0 -0
  891. /package/{dist/types → types}/util/types/TStringParser.d.ts +0 -0
  892. /package/{dist/types → types}/util/types/TValidator.d.ts +0 -0
  893. /package/{dist/types → types}/util/validation/createTypedArrayValidator.d.ts +0 -0
  894. /package/{dist/types → types}/util/validation/ensureThat.d.ts +0 -0
  895. /package/{dist/types → types}/util/validation/isArray.d.ts +0 -0
  896. /package/{dist/types → types}/util/validation/isBoolean.d.ts +0 -0
  897. /package/{dist/types → types}/util/validation/isFunction.d.ts +0 -0
  898. /package/{dist/types → types}/util/validation/isNamedFunction.d.ts +0 -0
  899. /package/{dist/types → types}/util/validation/isNamedFunctionArray.d.ts +0 -0
  900. /package/{dist/types → types}/util/validation/isObject.d.ts +0 -0
  901. /package/{dist/types → types}/util/validation/isPlainObject.d.ts +0 -0
  902. /package/{dist/types → types}/util/validation/isPrimitive.d.ts +0 -0
  903. /package/{dist/types → types}/util/validation/isString.d.ts +0 -0
  904. /package/{dist/types → types}/util/validation/isStringArray.d.ts +0 -0
  905. /package/{dist/types → types}/util/validation/isStringWithNoSpacesOrDashes.d.ts +0 -0
  906. /package/{dist/types → types}/util/validation/numbers/isInteger.d.ts +0 -0
  907. /package/{dist/types → types}/util/validation/numbers/isValidNumber.d.ts +0 -0
@@ -1,1175 +0,0 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
- import colors from 'ansi-colors'
3
- import fs from 'fs-extra'
4
- import isAsyncFunction from 'is-async-function'
5
- import os from 'os'
6
- import path from 'path'
7
- import type { Any } from '../util/types/Any'
8
- import { ArgumentBuilder } from '../arg/ArgumentBuilder'
9
- import { arrAssign } from '../util/object/arrAssign'
10
- import { arrLast } from '../util/array/arrLast'
11
- import { arrSome } from '../util/array/arrSome'
12
- import { CommandBuilderMetaData } from './CommandBuilderMetaData'
13
- import { commanderBackRefs } from '../proto/overrideCommanderPrototype'
14
- import { CommandFeatureSelector } from './CommandFeatureSelector'
15
- import { DefaultHelpConfig } from './DefaultHelpConfig'
16
- import { ensureThat } from '../util/validation/ensureThat'
17
- import { formatTableForTerminal } from '../util/node/formatTableForTerminal'
18
- import type { IConfig } from '../types/IConfig'
19
- import type { IPreset, IPresetPartial } from '../types/IPreset'
20
- import { isArray } from '../util/validation/isArray'
21
- import { isObject } from '../util/validation/isObject'
22
- import { isString } from '../util/validation/isString'
23
- import { isStringArray } from '../util/validation/isStringArray'
24
- import { isStringWithNoSpacesOrDashes } from '../util/validation/isStringWithNoSpacesOrDashes'
25
- import { JsonFile } from '../db/JsonFile'
26
- import { objAssign } from '../util/object/objAssign'
27
- import { OptionBuilder } from '../opt/OptionBuilder'
28
- import { OptionHelpers } from '../opt/OptionHelpers'
29
- import { OutputManager } from '../core/OutputManager'
30
- import { PresetsSection } from '../db/PresetsSection'
31
- import { realizeLazyProperty } from '../util/object/realizeLazyProperty'
32
- import { removeFile } from '../util/fs/removeFile/removeFile'
33
- import type { ReturnTypesOfFunctionArray, ReturnTypesOfFunctionMap } from './asdas'
34
- import { setNonEnumerable } from '../util/object/setNonEnumerable'
35
- import { splitCombinedArgvShorts } from '../core/splitCombinedArgvShorts'
36
- import type { TStringParser } from '../util/types/TStringParser'
37
- import {
38
- type AddHelpTextPosition,
39
- Argument,
40
- Command,
41
- CommanderError,
42
- type CommandUnknownOpts,
43
- type ErrorOptions,
44
- type HelpConfiguration,
45
- type HookEvent,
46
- InvalidArgumentError,
47
- Option,
48
- type OptionValues,
49
- type OptionValueSource,
50
- } from '@commander-js/extra-typings'
51
- import { type JsonValue } from '../util/types/JsonValue'
52
-
53
- /**
54
- * Wrapper around the @see Command class, for more intuitive construction.
55
- */
56
- export class CommandBuilder<Args extends Any[] = unknown[], Opts extends OptionValues = OptionValues> {
57
- static dataDirectory = path.join(os.homedir(), 'config', 'cli')
58
-
59
- protected readonly features = new CommandFeatureSelector(this)
60
- readonly parent: CommandBuilder | null = null
61
- readonly $: Command<Args, Opts>
62
- readonly meta = new CommandBuilderMetaData<Args>()
63
- get db() {
64
- return realizeLazyProperty(this, 'db', new JsonFile(this))
65
- }
66
-
67
- constructor(
68
- name: string,
69
- callback?: (this: CommandBuilder<Args, Opts>, cmd: CommandBuilder<Args, Opts>) => void,
70
- parent?: CommandBuilder,
71
- isNative = false
72
- ) {
73
- this.meta.isNative = isNative
74
- this.$ = new Command<Args, Opts>(name)
75
- commanderBackRefs.set(this.$, this)
76
-
77
- if (parent) {
78
- this.parent = parent
79
- this.parent.meta.subcommands.push(this)
80
- this.parent.$.addCommand(this.$)
81
- }
82
-
83
- this.initializeHelp()
84
-
85
- if (callback) callback.call(this, this)
86
-
87
- if (this.parent) {
88
- this.$.copyInheritedSettings(this.parent.$)
89
- this.features.inheritFrom(this.parent.features)
90
- this.inheritParentHiddenGlobals()
91
- }
92
-
93
- if (!this.meta.isNative) {
94
- this.assertCommandNameNotReserved(this.name)
95
- this.addUtilCommands()
96
- }
97
-
98
- if (this.isRoot) {
99
- for (const child of this.getChildrenIterator({ includeSelf: true })) {
100
- if (child.features.isAutoAssignSubCommandAliasesEnabled) {
101
- child.assignSubCommandAliases()
102
- if (!child.meta.isNative) {
103
- child.assertNoDuplicateCommandNames()
104
- }
105
- }
106
-
107
- if (child.features.isAutoAssignMissingOptionFlagsEnabled) {
108
- child.assignMissingOptionFlags()
109
- if (!child.meta.isNative) {
110
- child.assertNoDuplicateOptionNames()
111
- }
112
- }
113
- }
114
- }
115
- }
116
-
117
- setRecommended() {
118
- this.enableBuiltinOptions({ debug: true, disableStderr: true, disableStdout: true })
119
- this.autoAssignMissingOptionFlags()
120
- this.autoAssignSubCommandAliases()
121
- this.presetsEnabled()
122
- }
123
-
124
- deleteDataFile() {
125
- const filepath = this.dataFilepath
126
- if (fs.existsSync(filepath)) removeFile(filepath)
127
- }
128
-
129
- version(string: string) {
130
- this.$.version(string)
131
- const opt = this.options.find((o) => o.attributeName() === 'version')
132
- if (opt) this.meta.globalOptions.push(opt)
133
- return this
134
- }
135
-
136
- description(...lines: string[]) {
137
- const description = lines.join('\n')
138
- const summary = description.split(/(\. ?|\n|$)/)[0]
139
- this.$.summary(summary + '.')
140
- this.$.description(description)
141
- return this
142
- }
143
-
144
- alias(alias: string) {
145
- this.assertCommandNameNotReserved(alias)
146
- this.$.alias(alias)
147
- return this
148
- }
149
- aliases(...aliases: string[]) {
150
- aliases.forEach((alias) => this.assertCommandNameNotReserved(alias))
151
- this.$.aliases(aliases)
152
- return this
153
- }
154
-
155
- enableBuiltinOptions(options?: {
156
- debug?: boolean
157
- disableColor?: boolean
158
- disableStderr?: boolean
159
- disableStdout?: boolean
160
- }) {
161
- if (!options || options.debug) this.globalOption('-D, --debug', 'Output debugging information.')
162
- if (!options || options.disableColor) this.globalOption('-C, --disable-color', 'Disable color in terminal output.')
163
- if (!options || options.disableStderr) this.globalOption('-E, --disable-stderr', 'Mute all output to stderr.')
164
- if (!options || options.disableStdout) this.globalOption('-O, --disable-stdout', 'Mute all output to stdout.')
165
- return this
166
- }
167
-
168
- argument(name: string, description?: string): this
169
- argument(name: string, cb: (opt: ArgumentBuilder, cmd: this) => void): this
170
- argument(name: string, cb?: string | ((arg: ArgumentBuilder, cmd: this) => void)): this {
171
- const ins = new ArgumentBuilder(this, name)
172
- this.$.addArgument(ins.$)
173
- if (typeof cb === 'function') {
174
- cb(ins, this)
175
- } else if (typeof cb === 'string') {
176
- ins.description(cb)
177
- }
178
- return this
179
- }
180
- option(flags: string, description?: string): this
181
- option(flags: string, cb?: (opt: OptionBuilder, cmd: this) => void): this
182
- option(flags: string, cb?: string | ((opt: OptionBuilder, cmd: this) => void)): this {
183
- const ins = new OptionBuilder(this, flags)
184
- if (this.hasIdenticalParentOption(ins.$)) return this
185
- this.$.addOption(ins.$)
186
- if (typeof cb === 'function') {
187
- cb(ins, this)
188
- } else if (typeof cb === 'string') {
189
- ins.description(cb)
190
- }
191
- return this
192
- }
193
- globalOption(flags: string, description?: string): this
194
- globalOption(flags: string, cb?: (opt: OptionBuilder, cmd: this) => void): this
195
- globalOption(flags: string, cb?: string | ((opt: OptionBuilder, cmd: this) => void)): this {
196
- return this.option(flags, (ins) => {
197
- const opt = ins.$
198
- this.meta.globalOptions.push(opt)
199
- if (typeof cb === 'function') {
200
- cb(ins, this)
201
- } else if (typeof cb === 'string') {
202
- ins.description(cb)
203
- }
204
- if (opt.hidden) this.meta.hiddenGlobalOptions.add(opt)
205
- })
206
- }
207
- command<A extends Any[] = unknown[], O extends OptionValues = OptionValues>(
208
- name: string,
209
- cb: (this: CommandBuilder<A, O>, cmd: CommandBuilder<A, O>) => void
210
- ): this {
211
- new CommandBuilder<A, O>(name, cb, this)
212
- return this
213
- }
214
- nativeCommand<A extends Any[] = unknown[], O extends OptionValues = OptionValues>(
215
- name: string,
216
- cb: (this: CommandBuilder<A, O>, cmd: CommandBuilder<A, O>) => void
217
- ): this {
218
- new CommandBuilder<A, O>(name, cb, this, true)
219
- return this
220
- }
221
- action(fn: (...args: any[]) => void | Promise<void>): this {
222
- const isAsync = isAsyncFunction(fn) || /^\(.+\) ?=> ?tslib_1\.__awaiter\(/.test(fn.toString().trim())
223
- Object.defineProperty(this.meta, 'actionHandler', { value: fn, configurable: false, writable: false })
224
- this.initializeActionWrapper(isAsync)
225
- return this
226
- }
227
- errorHandler(fn: (this: Command, error: unknown, cmd: CommandBuilder<Args, Opts>) => void) {
228
- Object.defineProperty(this.meta, 'errorHandler', { value: fn, configurable: true })
229
- return this
230
- }
231
- appData(key: string, value: JsonValue) {
232
- this.features.appData(true)
233
- this.db.appData.defineProperty(key, value)
234
- return this
235
- }
236
- config(key: string, entry: IConfig<JsonValue>) {
237
- this.features.config(true)
238
- this.db.config.defineProperty(key, entry)
239
- return this
240
- }
241
- preset(name: string, preset: IPresetPartial) {
242
- this.features.presets()
243
- this.meta.presetOptionKeys.push(name)
244
- this.db.presets.defineProperty(name, {
245
- description: preset.description,
246
- presets: preset.presets ?? [],
247
- args: preset.args ?? [],
248
- options: preset.options ?? {},
249
- })
250
- return this
251
- }
252
- presetsEnabled(boolean = true) {
253
- this.features.presets(boolean)
254
- return this
255
- }
256
- autoAssignMissingOptionFlags(boolean = true) {
257
- this.features.autoAssignMissingOptionFlags(boolean)
258
- return this
259
- }
260
- autoAssignSubCommandAliases(boolean = true) {
261
- this.features.autoAssignSubCommandAliases(boolean)
262
- return this
263
- }
264
- allowExcessArguments(bool = true) {
265
- this.$.allowExcessArguments(bool)
266
- return this
267
- }
268
- allowUnknownOption(bool = true) {
269
- this.$.allowUnknownOption(bool)
270
- return this
271
- }
272
- /**
273
- * Register callback to use as replacement for calling process.exit.
274
- */
275
- exitOverride(callback?: (err: CommanderError) => never | void): this {
276
- this.$.exitOverride(callback)
277
- return this
278
- }
279
- throwInsteadOfProcessExit() {
280
- const onErr = (err: unknown) => {
281
- throw err
282
- }
283
- this.exitOverride(onErr)
284
- this.errorHandler(onErr)
285
- }
286
- /**
287
- * Add hook for life cycle event.
288
- */
289
- hook(
290
- event: HookEvent,
291
- listener: (thisCommand: CommandUnknownOpts, actionCommand: CommandUnknownOpts) => void | Promise<void>
292
- ): this {
293
- this.$.hook(event, listener)
294
- return this
295
- }
296
-
297
- /**
298
- * You can customise the help by overriding Help properties using configureHelp(),
299
- * or with a subclass of Help by overriding createHelp().
300
- */
301
- configureHelp(configuration: HelpConfiguration): this {
302
- this.$.configureHelp(configuration)
303
- return this
304
- }
305
-
306
- /**
307
- * Display the help or a custom message after an error occurs.
308
- */
309
- showHelpAfterError(displayHelp?: boolean | string): this {
310
- this.$.showHelpAfterError(displayHelp)
311
- return this
312
- }
313
-
314
- /**
315
- * Display suggestion of similar commands for unknown commands, or options for unknown options.
316
- */
317
- showSuggestionAfterError(displaySuggestion?: boolean): this {
318
- this.$.showSuggestionAfterError(displaySuggestion)
319
- return this
320
- }
321
-
322
- /**
323
- * Add additional text to be displayed with the built-in help.
324
- *
325
- * Position is 'before' or 'after' to affect just this command,
326
- * and 'beforeAll' or 'afterAll' to affect this command and all its subcommands.
327
- */
328
- addHelpText(position: AddHelpTextPosition, text: string) {
329
- this.$.addHelpText(position, text)
330
- return this
331
- }
332
- throwCommanderError(message: string, exitCode = 1, type = 'error'): never {
333
- throw new CommanderError(exitCode, type, message)
334
- }
335
-
336
- hideGlobalOptions(...names: string[]) {
337
- const globals = this.getGlobalOptions()
338
- names = names.length ? names : globals.map((opt) => opt.attributeName())
339
- for (const name of names) {
340
- if (!name) continue
341
- let found = false
342
- for (const opt of globals) {
343
- if (opt.attributeName() === name) {
344
- this.meta.hiddenGlobalOptions.add(opt)
345
- found = true
346
- break
347
- }
348
- }
349
-
350
- if (!found) this.throwCommanderError(`Unknown global option name: ${name} for command, ${this.name}`)
351
- }
352
- return this
353
- }
354
- unhideGlobalOptions(...names: string[]) {
355
- const globals = this.getGlobalOptions()
356
- names = names.length ? names : globals.map((opt) => opt.attributeName())
357
- for (const name of names) {
358
- if (!name) continue
359
- let found = false
360
- for (const opt of globals) {
361
- if (opt.attributeName() === name) {
362
- this.meta.hiddenGlobalOptions.delete(opt)
363
- found = true
364
- break
365
- }
366
- }
367
- if (!found) this.throwCommanderError(`Unknown global option name: ${name} for command, ${this.name}`)
368
- }
369
- return this
370
- }
371
- /**
372
- * Set the directory for searching for executable subcommands of this command.
373
- */
374
- executableDir(path: string): this {
375
- this.$.executableDir(path)
376
- return this
377
- }
378
-
379
- /**
380
- * Store option value.
381
- */
382
- setOptionValue(key: string, value: unknown): this {
383
- this.$.setOptionValue(key, value)
384
- return this
385
- }
386
-
387
- /**
388
- * Store option value and where the value came from.
389
- */
390
- setOptionValueWithSource(key: string, value: unknown, source: OptionValueSource): this {
391
- this.$.setOptionValueWithSource(key, value, source)
392
- return this
393
- }
394
- setDataFilepath(filepath: string) {
395
- Object.defineProperty(this, 'dataFilepath', { value: filepath })
396
- if (Object.hasOwn(this, 'db') && Object.hasOwn(this.db, 'db')) {
397
- this.db.db.setFilepath(filepath)
398
- }
399
- }
400
-
401
- /**
402
- * Display error message and exit (or call exitOverride).
403
- */
404
- outputError(message: string, options?: ErrorOptions) {
405
- this.$.error(message, options)
406
- }
407
-
408
- /**
409
- * Output help information for this command.
410
- */
411
- outputHelp() {
412
- console.log(this.getRenderedHelp())
413
- }
414
-
415
- /**
416
- * Display error message and exit (or call exitOverride).
417
- */
418
- outputDebugMessage(event: string, getProps: () => Record<string, unknown> = () => ({})) {
419
- OutputManager.getInstance().outputDebug(() => ({ event, cmd: this.getPrefixString(), ...getProps() }))
420
- }
421
-
422
- parseArguments(args: string[]) {
423
- const last = this.arguments.length - 1
424
- return args.map((arg, i) => {
425
- if (!arg) return arg
426
- const parse = this.meta.argParsers[i > last ? last : i]
427
- return parse ? (Array.isArray(arg) ? arg.map(parse) : parse(arg)) : arg
428
- })
429
- }
430
-
431
- /**
432
- * Parses (and validates) options using the parsers defined in the command builder.
433
- */
434
- parseOptions(opts: OptionValues) {
435
- for (const [key, value] of Object.entries(opts)) {
436
- const parse = this.meta.optParsers[key]
437
- opts[key] = parse ? (Array.isArray(value) ? value.map(parse) : parse(value as string)) : value
438
- }
439
- return opts
440
- }
441
-
442
- /**
443
- * Validate ALREADY PARSED args using the validators defined in the command builder.
444
- */
445
- assertValidArguments(parsedArgs: Any[]) {
446
- const last = this.arguments.length - 1
447
- parsedArgs.forEach((arg, i) => {
448
- if (arg == null) return
449
- const index = i > last ? last : i
450
- const validators = this.meta.argValidators[index]
451
- if (!validators) return
452
- for (const isValid of validators) {
453
- ensureThat(arg, isValid, { Err: InvalidArgumentError })
454
- }
455
- })
456
- return parsedArgs
457
- }
458
-
459
- /**
460
- * Validate ALREADY PARSED options using the validators defined in the command builder.
461
- */
462
- assertValidOptions(parsedOptions: OptionValues) {
463
- for (const [key, value] of Object.entries(parsedOptions)) {
464
- if (!this.meta.optValidators[key]) continue
465
- if (value == null) continue
466
- for (const isValid of this.meta.optValidators[key]) {
467
- ensureThat(value, isValid)
468
- }
469
- }
470
- return parsedOptions
471
- }
472
-
473
- assertValidPreset(key: string, preset: IPreset) {
474
- const { description, presets, args, options } = preset
475
- ensureThat(key, isStringWithNoSpacesOrDashes)
476
- ensureThat(description, isString)
477
- ensureThat(presets, isStringArray)
478
- ensureThat(args, isArray)
479
- this.assertPresetArgsOptional(args)
480
- this.assertValidArguments(args)
481
- ensureThat(options, isObject)
482
- this.assertValidOptions(options)
483
- }
484
-
485
- get name() {
486
- return this.$.name()
487
- }
488
- /**
489
- * Get the command at the root of the command tree.
490
- */
491
- get root(): CommandBuilder {
492
- if (this.isRoot) return this
493
- return this.getAncestors().pop() as CommandBuilder
494
- }
495
- get isRoot() {
496
- return !this.parent
497
- }
498
- get arguments() {
499
- return this.$.registeredArguments
500
- }
501
- get options() {
502
- return this.$.options
503
- }
504
- get commander() {
505
- return this.$
506
- }
507
- get hasGrandChildren() {
508
- return this.meta.subcommands.some((sub) => !!sub.meta.subcommands.length)
509
- }
510
- /**
511
- * Returns whether a command's last argument is variadic.
512
- */
513
- get isLastArgVariadic() {
514
- if (!this.arguments.length) return false
515
- return arrLast(this.arguments as Argument[]).variadic
516
- }
517
- get dataFilepath() {
518
- return path.join(CommandBuilder.dataDirectory, this.root.name + '.json')
519
- }
520
-
521
- /**
522
- * Get the executable search directory.
523
- */
524
- getExecutableDir(): string | null {
525
- return this.$.executableDir()
526
- }
527
- /**
528
- * Retrieve option value.
529
- */
530
- getOptionValue(key: string): Any {
531
- return this.$.getOptionValue(key)
532
- }
533
-
534
- /**
535
- * Get source of option value.
536
- */
537
- getOptionValueSource(key: string): OptionValueSource | undefined {
538
- return this.$.getOptionValueSource(key)
539
- }
540
-
541
- /**
542
- * Get source of option value. See also .optsWithGlobals().
543
- */
544
- getOptionValueSourceWithGlobals(key: string): OptionValueSource | undefined {
545
- return this.$.getOptionValueSourceWithGlobals(key)
546
- }
547
- getActionHandler() {
548
- return this.meta.actionHandler
549
- }
550
- getDescription() {
551
- return this.$.description()
552
- }
553
- getSummary() {
554
- return this.$.summary()
555
- }
556
- getVersion() {
557
- return this.$.version()
558
- }
559
- getAlias() {
560
- return this.$.alias()
561
- }
562
- getAliases() {
563
- return this.$.aliases()
564
- }
565
-
566
- /**
567
- * Get a commands prefix array based on all its parent/ancestor commands.
568
- */
569
- getPrefixArray(): string[] {
570
- return this.getAncestors({ includeSelf: true })
571
- .reverse()
572
- .map((node) => node.name)
573
- }
574
-
575
- /**
576
- * Get a commands prefix string based on all its parent/ancestor commands.
577
- */
578
- getPrefixString() {
579
- return this.getPrefixArray().join(' ')
580
- }
581
-
582
- getGlobalOptions(): Option[] {
583
- const result: Option[] = []
584
- for (const anc of this.getAncestors({ includeSelf: true }).reverse()) {
585
- for (const gopt of anc.meta.globalOptions) {
586
- if (!this.meta.hiddenGlobalOptions.has(gopt)) {
587
- result.push(gopt)
588
- }
589
- }
590
- }
591
- return result
592
- }
593
-
594
- getOwnAndGlobalOptions(): Option[] {
595
- return this.options.concat(this.getGlobalOptions())
596
- }
597
-
598
- *getChildrenIterator(options?: { includeSelf?: boolean }): Generator<CommandBuilder> {
599
- if (options?.includeSelf) yield this
600
- for (const sub of this.meta.subcommands) {
601
- yield sub
602
- yield* sub.getChildrenIterator()
603
- }
604
- }
605
-
606
- getChildren(options?: { includeSelf?: boolean }) {
607
- return [...this.getChildrenIterator(options)]
608
- }
609
-
610
- *getAncestorsIterator(options?: { includeSelf?: boolean }): Generator<CommandBuilder> {
611
- if (options?.includeSelf) yield this
612
- let node = this.parent
613
- while (node) {
614
- yield node
615
- node = node.parent
616
- }
617
- }
618
-
619
- /**
620
- * Get a command's ancestors, optionally starting from the command itself.
621
- */
622
- getAncestors(options?: { includeSelf?: boolean }): CommandBuilder[] {
623
- return [...this.getAncestorsIterator(options)]
624
- }
625
-
626
- *getSiblingsIterator() {
627
- if (!this.parent) return
628
- for (const sub of this.parent.meta.subcommands) {
629
- if (sub === this) continue
630
- yield sub
631
- }
632
- }
633
-
634
- /**
635
- * Returns an array of sibling CommandBuilder objects.
636
- */
637
- getSiblings() {
638
- return [...this.getSiblingsIterator()]
639
- }
640
- getClosestNonNativeParent() {
641
- for (const anc of this.getAncestorsIterator({ includeSelf: true })) {
642
- if (!anc.meta.isNative) return anc
643
- }
644
- this.throwCommanderError('No non-native parent found')
645
- }
646
-
647
- getRenderedHelp() {
648
- return this.$.helpInformation()
649
- }
650
-
651
- getOptsWithGlobalsParsed() {
652
- return this.parseOptions(this.$.optsWithGlobals())
653
- }
654
-
655
- getParsedValidArgsOptsWithPresets(): [Any[], OptionValues] {
656
- const [presetArgs, presetOpts, presetOrder] = this.getPresetArgsAndOpts()
657
- const args = this.getParsedValidArgsWithPresets(presetArgs)
658
- const opts = this.getParsedValidOptsWithPresets(presetOpts)
659
- this.debugLogArgsOpts(args, opts, presetArgs, presetOpts, presetOrder)
660
- return [args, opts]
661
- }
662
-
663
- getParsedValidArgsWithPresets(presetArgs: Any[][]) {
664
- const result = arrAssign([], ...presetArgs, this.parseArguments(this.$.args))
665
- this.combineVariadicArgs(result)
666
- this.assertValidArguments(result)
667
- return this.padArgsWithUndefinedUntilExpectedLength(result)
668
- }
669
-
670
- getParsedValidOptsWithPresets(presetOpts: OptionValues[]) {
671
- const parsed = this.getOptsWithGlobalsParsed()
672
- const opts = presetOpts.length ? objAssign({}, ...presetOpts, parsed) : parsed
673
- this.deleteOptionsWithDefaultOrNoValue(opts)
674
- this.assertValidOptions(opts)
675
- return opts
676
- }
677
-
678
- getPresetArgsAndOpts(): [presetArgs: string[][], presetOpts: OptionValues[], presetOrder: string[]] {
679
- if (!this.features.isPresetsEnabled) return [[], [], []]
680
- const presets = this.db.presets.getAll()
681
- const opts = this.$.optsWithGlobals()
682
- const selectedPresets = Object.keys(presets).filter((name) => opts[name] === true)
683
- const presetOrder = Object.keys(opts).filter((key) => selectedPresets.includes(key))
684
- const presetArgs: string[][] = presetOrder.map((name) => presets[name].args)
685
- const presetOpts: OptionValues[] = presetOrder.map((name) => presets[name].options)
686
- return [presetArgs, presetOpts, presetOrder]
687
- }
688
-
689
- protected combineVariadicArgs(result: Any[]) {
690
- if (this.isLastArgVariadic && result.length && !Array.isArray(arrLast(result))) {
691
- const rest = result.splice(this.arguments.length - 1)
692
- result.push(rest.filter((arg) => arg != null))
693
- }
694
- return result
695
- }
696
-
697
- protected debugLogArgsOpts(
698
- args: Any[],
699
- opts: OptionValues,
700
- presetArgs: string[][],
701
- presetOpts: OptionValues[],
702
- presetOrder: string[]
703
- ) {
704
- if (opts['debug']) {
705
- if (this.features.isPresetsEnabled) {
706
- this.outputDebugMessage('parsePresets', () => ({ presetOrder, presetArgs, presetOpts }))
707
- }
708
- this.outputDebugMessage('parseArgsOpts', () => {
709
- return {
710
- args,
711
- opts,
712
- command: [this.root.name, ...this.meta.rawArgs].join(' '),
713
- }
714
- })
715
- }
716
- }
717
-
718
- protected deleteOptionsWithDefaultOrNoValue(opts: OptionValues) {
719
- const names = new Set(this.getOwnAndGlobalOptions().map((o) => o.attributeName()))
720
- for (const [key, value] of Object.entries(opts)) {
721
- if (!names.has(key) || value === false || value == null) {
722
- setNonEnumerable(opts, key)
723
- }
724
- }
725
- for (const key of this.meta.presetOptionKeys) {
726
- if (Object.hasOwn(opts, key)) {
727
- setNonEnumerable(opts, key)
728
- }
729
- }
730
- return opts
731
- }
732
-
733
- protected handleOutputOptions() {
734
- const opts = this.$.optsWithGlobals()
735
- const om = OutputManager.getInstance().reset()
736
- if (opts['disableColor']) om.colors.enabled = false
737
- if (opts['disableStderr']) om.stderr.disable()
738
- if (opts['disableStdout']) om.stdout.disable()
739
- if (opts['debug']) {
740
- om.debug.enable()
741
- om.drainDebugMessageQueue()
742
- }
743
- }
744
-
745
- protected padArgsWithUndefinedUntilExpectedLength(args: Any[]) {
746
- while (args.length < this.arguments.length) args.push(undefined)
747
- return args
748
- }
749
-
750
- protected assertPresetArgsOptional(args: Any[]) {
751
- args.forEach((arg, i) => {
752
- if (arg != null && i < this.arguments.length && this.arguments[i].required) {
753
- this.throwCommanderError(`Cannot preset required arguments.`)
754
- }
755
- })
756
- }
757
-
758
- protected addUtilCommands() {
759
- if (
760
- !this.hasGrandChildren &&
761
- !this.features.isConfigEnabled &&
762
- !this.features.isPresetsEnabled &&
763
- !this.features.isAppDataEnabled
764
- ) {
765
- return
766
- }
767
-
768
- this.nativeCommand('util', (u) => {
769
- const cmd = u.getClosestNonNativeParent()
770
- u.alias('u')
771
- u.description('Utility commands.')
772
- if (cmd.features.isConfigEnabled) {
773
- u.nativeCommand('config', createConfigCommand)
774
- }
775
- if (cmd.features.isPresetsEnabled && cmd.meta.hasCustomActionHandler) {
776
- u.nativeCommand('presets', createPresetsCommand)
777
- }
778
- if (cmd.hasGrandChildren) {
779
- u.nativeCommand('list', createUtilListCommand)
780
- }
781
- if (cmd.features.isConfigEnabled || cmd.features.isPresetsEnabled || cmd.features.isAppDataEnabled) {
782
- u.nativeCommand('filepath', createUtilFilepathCommand)
783
- }
784
-
785
- function createUtilFilepathCommand(f: CommandBuilder) {
786
- f.alias('f')
787
- f.description('Print filepath to JSON file containing user data, eg. config and presets.')
788
- f.action(async () => console.log(cmd.dataFilepath))
789
- }
790
-
791
- function createUtilListCommand(l: CommandBuilder) {
792
- l.alias('l')
793
- l.description('List nested subcommands.')
794
- l.option('--all', 'Include utility commands.')
795
- l.action(async (opts: { all?: boolean }) => {
796
- const filter = opts.all
797
- ? undefined
798
- : (prefix: string) => {
799
- return !/ (config|presets|util)( .+)?$/gi.test(prefix)
800
- }
801
- const table: string[][] = []
802
- for (const c of cmd.getChildrenIterator({ includeSelf: true })) {
803
- const prefix = c.getPrefixString()
804
- if (filter && !filter(prefix)) continue
805
- table.push([prefix, c.getSummary()])
806
- }
807
- const ansi = table.map((row) => {
808
- const arr = row[0].split(' ')
809
- const last = arr.pop() as string
810
- let col = colors.magenta
811
- if (row[1].startsWith('[Preset]')) {
812
- col = colors.green
813
- } else if (/ (util|config|presets) /.test(row[0])) {
814
- col = colors.gray
815
- } else if (/ (util|config|presets)/.test(row[0])) {
816
- col = colors.dim
817
- }
818
- row[0] = arr.map(colors.dim).concat(col(last)).join(' ')
819
- return row
820
- })
821
- console.log(formatTableForTerminal(ansi, ['Command', 'Summary']))
822
- })
823
- }
824
-
825
- function createPresetsCommand(p: CommandBuilder) {
826
- const db = cmd.db.presets as PresetsSection
827
- p.alias('p')
828
- p.description(
829
- 'Edit presets in your text editor',
830
- '',
831
- 'A preset consists of pre-set arguments and/or options for a command.',
832
- 'Additionally, a preset can have other presets as dependencies.',
833
- 'When running the command, multiple presets can be stacked.',
834
- 'Required arguments cannot be pre-set.'
835
- )
836
- p.nativeCommand('edit', (e) => {
837
- e.alias('e')
838
- e.description('Edit as JSON in a text editor.')
839
- e.option('--editor [cmd]', 'The command to launch your preferred text editor.')
840
- e.action(async (opts: { editor: string }) => {
841
- db.edit(opts.editor)
842
- console.info(db.getAll())
843
- })
844
- })
845
- p.nativeCommand('list', (l) => {
846
- l.alias('l')
847
- l.description('List all presets.')
848
- l.action(async () => console.dir(db.getAll(), { depth: null }))
849
- })
850
- for (const [key, preset] of Object.entries(db.getAll())) {
851
- if (key === 'defaults') continue
852
- cmd.option(`--${key}`, (o) => {
853
- o.description('[Preset]: ' + preset.description)
854
- const implied: Record<string, boolean> = { defaults: true }
855
- const recurse = (preset: string) => {
856
- if (implied[preset]) return
857
- implied[preset] = true
858
- db.get(preset).presets.forEach((k) => recurse(k))
859
- }
860
- recurse(key)
861
- o.implies(implied)
862
- })
863
- }
864
- }
865
-
866
- function createConfigCommand(c: CommandBuilder) {
867
- const db = cmd.db.config
868
- c.alias('c')
869
- c.description('Manage configuration file.')
870
- c.nativeCommand('edit', (e) => {
871
- e.alias('e')
872
- e.description('Edit as JSON in a text editor.')
873
- e.option('--editor [cmd]', 'The command to launch your preferred text editor.')
874
- e.action(async (opts: { editor: string }) => {
875
- db.edit(opts.editor)
876
- console.info(db.getAll())
877
- })
878
- })
879
- c.nativeCommand('list', (l) => {
880
- l.alias('l')
881
- l.description('Print entire config with details.')
882
- l.action(async () => {
883
- const result = db.keys.map((key: string) => ({
884
- key,
885
- description: db.descriptions[key],
886
- value: db.get(key),
887
- defaultValue: db.defaultValues,
888
- }))
889
- console.dir(result, { depth: null })
890
- })
891
- })
892
- c.nativeCommand('get', (g) => {
893
- g.alias('g')
894
- g.description('Print value(s) from the config.')
895
- g.argument('[key]', 'The key to print the value of. Omit to print all values.')
896
- g.action(async (key: string) => console.log(key ? db.get(key) : db.getAll()))
897
- })
898
- c.nativeCommand('set', (s) => {
899
- s.alias('s')
900
- s.description('Set a value in the config.')
901
- s.argument('<key>', 'The key to set the value of.')
902
- s.argument('<value>', 'The new value.')
903
- s.action(async (key: string, val: string) => {
904
- const parse = db.parsers[key]
905
- const value = typeof parse === 'function' ? parse(val) : val
906
- db.set(key, value)
907
- console.info({ [key]: value })
908
- })
909
- })
910
- c.nativeCommand('reset', (r) => {
911
- r.alias('r')
912
- r.description('Reset to defaults.')
913
- r.argument('[key]', 'The key for which to reset the value. Omit to reset entire config.')
914
- r.action(async (key: string) => {
915
- if (key) db.reset(key)
916
- else db.resetAll()
917
- console.info(db.getAll())
918
- })
919
- })
920
- /*
921
- config.option('--editor [cmd]', (o) => {
922
- o.description('The command to launch your preferred text editor.')
923
- })
924
- config.argument('[action]', (a) => {
925
- a.description('The action to perform.')
926
- a.choices(['edit', 'list', 'get', 'set', 'reset'])
927
- a.default('edit')
928
- })
929
- config.argument('[key]', (a) => {
930
- a.description('Property key (if applicable)')
931
- })
932
- config.argument('[value]', (a) => {
933
- a.description('Value to set (if applicable)')
934
- })
935
- config.action(
936
- async (action: string, key: string, value: string, opts: { editor: string }, config: CommandBuilder) => {
937
- const cmd = config.getClosestNonNativeParent()
938
- const cfg = cmd.db.config
939
- if (!action || action === 'edit') {
940
- cfg.edit(opts.editor)
941
- return console.info(cfg.getAll())
942
- } else if (action === 'list') {
943
- return console.dir(
944
- cfg.keys.map((key: string) => {
945
- return {
946
- key,
947
- description: cfg.descriptions[key],
948
- value: cfg.get(key),
949
- defaultValue: cfg.defaultValues,
950
- }
951
- })
952
- )
953
- } else if (action === 'get') {
954
- if (key) return console.log(cfg.get(key))
955
- else return console.log(cfg.getAll())
956
- } else if (action === 'set') {
957
- const from = cfg.get(key)
958
- const parse = cfg.parsers[key]
959
- const to = typeof parse === 'function' ? cfg.parsers[key](value) : value
960
- cfg.set(key, to)
961
- return console.info({ changed: key, from, to })
962
- } else if (action === 'reset') {
963
- if (key) cfg.reset(key)
964
- else cfg.resetAll()
965
- return console.info(cfg.getAll())
966
- }
967
- }
968
- )*/
969
- }
970
- })
971
- }
972
-
973
- /**
974
- * Makes aliases for the command.
975
- * The idea is to be able to navigate the command tree by only typing the first letter(s) of the command names.
976
- *
977
- * Example: A command 'cola' would get these aliases: ['c', 'co', 'col'].
978
- * However, if there are namespace clashes with sibling subcommands that start with the same letter,
979
- * eg. like 'cola' and 'coal' where the first two letters clash, cola's aliases are reduced to only ['col'] and similarly for 'coal'.
980
- *
981
- * This method creates the aliases, ensuring there are no clashes with sublings, why it is important that the
982
- * entire command tree is built before invoking this method.
983
- */
984
- protected assignSubCommandAliases() {
985
- if (this.getAlias() || this.name.length <= 1) return this
986
- const sibAliases = this.getSiblings()
987
- .map((sib) => sib.getAliases())
988
- .flat()
989
- for (let i = 0; i < this.name.length - 1; i++) {
990
- let cmdAlias = this.name.substring(0, i + 1)
991
- let isClash = arrSome(sibAliases, (sibAlias) => {
992
- return cmdAlias === sibAlias
993
- })
994
- if (isClash && i === 0) {
995
- cmdAlias = cmdAlias.charAt(0).toUpperCase()
996
- isClash = arrSome(sibAliases, (sibAlias) => {
997
- return cmdAlias === sibAlias
998
- })
999
- }
1000
- if (isClash) continue
1001
- this.alias(cmdAlias)
1002
- return this
1003
- }
1004
- return this
1005
- }
1006
-
1007
- /**
1008
- * Automatically set 'short' and 'long' names to options that don't have one assigned yet.
1009
- *
1010
- * First, it tries to assign a short name based on the first letter of the option's attribute name
1011
- * Both lower and upper case are tried. If these is not available, the next letter of the option name is tried.
1012
- *
1013
- * If none of the letters of the option name are available, the option is skipped until all other
1014
- * options have had letters from their names attempted assigned.
1015
- * Those that remain are assigned the first available letter of the alphabet + 0-9.
1016
- * If there are 64 options for the command and no more alphanumeric characters are available,
1017
- * the option is not assigned a short name.
1018
- */
1019
- protected assignMissingOptionFlags() {
1020
- const taken = new Set<string>()
1021
- for (const anc of this.getAncestorsIterator({ includeSelf: true })) {
1022
- anc.options.forEach((opt) => {
1023
- if (!opt.short) return
1024
- taken.add(opt.short.replace(/^-/g, ''))
1025
- })
1026
- }
1027
-
1028
- const failed = new Set<Option>()
1029
-
1030
- // assign letter from option name
1031
- this.options.forEach((opt) => {
1032
- if (opt.short) return
1033
- const name = opt.attributeName()
1034
- for (let c = 0; c < name.length; c++) {
1035
- let char = name.charAt(c).toLowerCase()
1036
- if (taken.has(char)) {
1037
- char = char.toUpperCase()
1038
- if (taken.has(char)) continue
1039
- }
1040
- OptionHelpers.setShort(opt, char)
1041
- taken.add(char)
1042
- return
1043
- }
1044
- failed.add(opt)
1045
- })
1046
-
1047
- // assign random alphanumeric character.
1048
- const name = 'abcdefghijklmnopqrstuvwxyz1234567890'
1049
- failed.forEach((opt) => {
1050
- for (let c = 0; c < name.length; c++) {
1051
- let char = name.charAt(c)
1052
- if (taken.has(char)) {
1053
- char = char.toUpperCase()
1054
- if (taken.has(char)) continue
1055
- }
1056
- OptionHelpers.setShort(opt, char)
1057
- taken.add(char)
1058
- return
1059
- }
1060
- })
1061
- }
1062
-
1063
- protected assertNoDuplicateCommandNames() {
1064
- const names = this.$.commands.map((sub) => sub.aliases().concat(sub.name())).flat()
1065
- if (names.length !== new Set(names).size) {
1066
- this.throwCommanderError(
1067
- `Duplicate subcommand names/aliases found for command, ${this.name}: ${names.join(', ')}`
1068
- )
1069
- }
1070
- }
1071
- protected hasIdenticalParentOption(option: Option) {
1072
- const flags = option.flags
1073
- for (const anc of this.getAncestorsIterator({ includeSelf: true })) {
1074
- for (const opt of anc.$.options) {
1075
- if (flags === opt.flags) {
1076
- return true
1077
- }
1078
- }
1079
- }
1080
- return false
1081
- }
1082
- protected assertNoDuplicateOptionNames() {
1083
- const throwErr = (cmd: CommandBuilder, opt: string, anc?: CommandBuilder) => {
1084
- this.throwCommanderError(
1085
- `Duplicate option names > cmd: ${cmd.name}, ${anc ? `anc: ${anc.name}, ` : ''}opt: ${opt}`
1086
- )
1087
- }
1088
- const set = new Set<string>()
1089
- for (const opt of this.options) {
1090
- if (opt.name() === 'help') continue
1091
- if (opt.short) {
1092
- if (set.has(opt.short)) throwErr(this, opt.short)
1093
- set.add(opt.short)
1094
- }
1095
- if (opt.long) {
1096
- if (set.has(opt.long)) throwErr(this, opt.long)
1097
- set.add(opt.long)
1098
- }
1099
- if (opt.attributeName()) {
1100
- if (set.has(opt.attributeName())) throwErr(this, opt.attributeName())
1101
- set.add(opt.attributeName())
1102
- }
1103
- }
1104
- for (const anc of this.getAncestorsIterator()) {
1105
- for (const opt of anc.$.options) {
1106
- if (opt.short && set.has(opt.short)) {
1107
- if (opt.short !== 'V') continue
1108
- throwErr(this, opt.short, anc)
1109
- }
1110
- if (opt.long && set.has(opt.long)) {
1111
- throwErr(this, opt.long, anc)
1112
- }
1113
- if (opt.attributeName() && set.has(opt.attributeName())) {
1114
- throwErr(this, opt.attributeName(), anc)
1115
- }
1116
- }
1117
- }
1118
- }
1119
- protected initializeActionWrapper(isAsync = false) {
1120
- if (isAsync) {
1121
- this.$.action(async () => {
1122
- try {
1123
- this.handleOutputOptions()
1124
- const [args, opts] = this.getParsedValidArgsOptsWithPresets()
1125
- if (opts['help']) return this.outputHelp()
1126
- type TArgs = typeof this.$.args
1127
- const owg = this.$.optsWithGlobals()
1128
- type TOpts = typeof owg
1129
- await this.meta.actionHandler.call(this, ...(args as TArgs), opts as TOpts, this)
1130
- } catch (error) {
1131
- this.meta.errorHandler.call(this, error, this)
1132
- }
1133
- })
1134
- } else {
1135
- this.$.action(() => {
1136
- try {
1137
- this.handleOutputOptions()
1138
- const [args, opts] = this.getParsedValidArgsOptsWithPresets()
1139
- if (opts['help']) return this.outputHelp()
1140
- // type TArgs = ReturnTypesOfFunctionArray<typeof this.meta.argParsers>
1141
- // type TOpts = ReturnTypesOfFunctionMap<typeof this.meta.optParsers>
1142
- type TArgs = typeof this.$.args
1143
- const owg = this.$.optsWithGlobals()
1144
- type TOpts = typeof owg
1145
- this.meta.actionHandler.call(this, ...(args as TArgs), opts as TOpts, this)
1146
- } catch (error) {
1147
- this.meta.errorHandler.call(this, error, this)
1148
- }
1149
- })
1150
- }
1151
- }
1152
-
1153
- protected initializeHelp() {
1154
- if (this.isRoot) this.globalOption('-h, --help', 'show help')
1155
- this.$.addHelpCommand('?', 'show help')
1156
- this.$.configureHelp(DefaultHelpConfig)
1157
- }
1158
-
1159
- protected inheritParentHiddenGlobals() {
1160
- if (!this.parent) return
1161
- for (const opt of this.parent.meta.hiddenGlobalOptions) {
1162
- this.meta.hiddenGlobalOptions.add(opt)
1163
- }
1164
- }
1165
-
1166
- protected assertCommandNameNotReserved(name: string) {
1167
- if (this.isRoot) return
1168
- if (this.meta.isNative) return
1169
- if (name === 'u' || name === 'util') {
1170
- this.throwCommanderError(`Name '${name}' is reserved and is not available as name or alias.`)
1171
- }
1172
- }
1173
- }
1174
-
1175
- process.argv = splitCombinedArgvShorts(process.argv.slice())