git-remote-ops 0.1.0

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 (245) hide show
  1. package/AGENTS.md +177 -0
  2. package/LICENSE +21 -0
  3. package/README.md +247 -0
  4. package/esm/_dnt.shims.js +72 -0
  5. package/esm/cli.js +217 -0
  6. package/esm/client.js +439 -0
  7. package/esm/deps/jsr.io/@cliffy/command/1.1.0/_argument_types.js +1 -0
  8. package/esm/deps/jsr.io/@cliffy/command/1.1.0/_errors.js +133 -0
  9. package/esm/deps/jsr.io/@cliffy/command/1.1.0/_spread.js +1 -0
  10. package/esm/deps/jsr.io/@cliffy/command/1.1.0/_type_utils.js +1 -0
  11. package/esm/deps/jsr.io/@cliffy/command/1.1.0/_utils.js +141 -0
  12. package/esm/deps/jsr.io/@cliffy/command/1.1.0/command.js +1861 -0
  13. package/esm/deps/jsr.io/@cliffy/command/1.1.0/help/_help_generator.js +357 -0
  14. package/esm/deps/jsr.io/@cliffy/command/1.1.0/mod.js +13 -0
  15. package/esm/deps/jsr.io/@cliffy/command/1.1.0/type.js +27 -0
  16. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/action_list.js +16 -0
  17. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/boolean.js +13 -0
  18. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/child_command.js +14 -0
  19. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/command.js +9 -0
  20. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/enum.js +24 -0
  21. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/file.js +12 -0
  22. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/integer.js +9 -0
  23. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/number.js +9 -0
  24. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/secret.js +7 -0
  25. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types/string.js +9 -0
  26. package/esm/deps/jsr.io/@cliffy/command/1.1.0/types.js +2 -0
  27. package/esm/deps/jsr.io/@cliffy/command/1.1.0/upgrade/_check_version.js +26 -0
  28. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/_errors.js +129 -0
  29. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/_utils.js +100 -0
  30. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/_validate_flags.js +166 -0
  31. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/flags.js +750 -0
  32. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/mod.js +55 -0
  33. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/types/boolean.js +11 -0
  34. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/types/integer.js +9 -0
  35. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/types/number.js +11 -0
  36. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/types/string.js +4 -0
  37. package/esm/deps/jsr.io/@cliffy/flags/1.1.0/types.js +1 -0
  38. package/esm/deps/jsr.io/@cliffy/internal/1.1.0/runtime/exit.js +16 -0
  39. package/esm/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_args.js +11 -0
  40. package/esm/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_columns.js +25 -0
  41. package/esm/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_env.js +18 -0
  42. package/esm/deps/jsr.io/@cliffy/internal/1.1.0/runtime/inspect.js +11 -0
  43. package/esm/deps/jsr.io/@cliffy/table/1.1.0/_layout.js +616 -0
  44. package/esm/deps/jsr.io/@cliffy/table/1.1.0/_utils.js +79 -0
  45. package/esm/deps/jsr.io/@cliffy/table/1.1.0/border.js +18 -0
  46. package/esm/deps/jsr.io/@cliffy/table/1.1.0/cell.js +190 -0
  47. package/esm/deps/jsr.io/@cliffy/table/1.1.0/column.js +117 -0
  48. package/esm/deps/jsr.io/@cliffy/table/1.1.0/consume_words.js +64 -0
  49. package/esm/deps/jsr.io/@cliffy/table/1.1.0/mod.js +42 -0
  50. package/esm/deps/jsr.io/@cliffy/table/1.1.0/row.js +82 -0
  51. package/esm/deps/jsr.io/@cliffy/table/1.1.0/table.js +341 -0
  52. package/esm/deps/jsr.io/@cliffy/table/1.1.0/unicode_width.js +101 -0
  53. package/esm/deps/jsr.io/@std/crypto/1.1.0/_types.js +2 -0
  54. package/esm/deps/jsr.io/@std/crypto/1.1.0/_wasm/lib/deno_std_wasm_crypto.internal.js +237 -0
  55. package/esm/deps/jsr.io/@std/crypto/1.1.0/_wasm/lib/deno_std_wasm_crypto.js +2277 -0
  56. package/esm/deps/jsr.io/@std/crypto/1.1.0/_wasm/mod.js +46 -0
  57. package/esm/deps/jsr.io/@std/crypto/1.1.0/aes_gcm.js +132 -0
  58. package/esm/deps/jsr.io/@std/crypto/1.1.0/crypto.js +270 -0
  59. package/esm/deps/jsr.io/@std/crypto/1.1.0/mod.js +23 -0
  60. package/esm/deps/jsr.io/@std/crypto/1.1.0/timing_safe_equal.js +61 -0
  61. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.js +51 -0
  62. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +13 -0
  63. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.js +2 -0
  64. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.js +87 -0
  65. package/esm/deps/jsr.io/@std/fmt/1.0.10/colors.js +903 -0
  66. package/esm/deps/jsr.io/@std/text/1.0.18/closest_string.js +46 -0
  67. package/esm/deps/jsr.io/@std/text/1.0.18/levenshtein_distance.js +127 -0
  68. package/esm/errors.js +38 -0
  69. package/esm/index.js +10 -0
  70. package/esm/logger.js +216 -0
  71. package/esm/objects/commit.js +47 -0
  72. package/esm/objects/index.js +2 -0
  73. package/esm/objects/tree.js +149 -0
  74. package/esm/pack/delta.js +179 -0
  75. package/esm/pack/index.js +3 -0
  76. package/esm/pack/objects.js +72 -0
  77. package/esm/pack/parser.js +304 -0
  78. package/esm/package.json +3 -0
  79. package/esm/protocol/index.js +3 -0
  80. package/esm/protocol/pkt_line.js +103 -0
  81. package/esm/protocol/refs.js +100 -0
  82. package/esm/protocol/upload_pack.js +259 -0
  83. package/esm/transport.js +128 -0
  84. package/esm/types.js +8 -0
  85. package/package.json +50 -0
  86. package/types/_dnt.shims.d.ts +16 -0
  87. package/types/_dnt.shims.d.ts.map +1 -0
  88. package/types/cli.d.ts +3 -0
  89. package/types/cli.d.ts.map +1 -0
  90. package/types/client.d.ts +108 -0
  91. package/types/client.d.ts.map +1 -0
  92. package/types/deps/jsr.io/@cliffy/command/1.1.0/_argument_types.d.ts +163 -0
  93. package/types/deps/jsr.io/@cliffy/command/1.1.0/_argument_types.d.ts.map +1 -0
  94. package/types/deps/jsr.io/@cliffy/command/1.1.0/_errors.d.ts +71 -0
  95. package/types/deps/jsr.io/@cliffy/command/1.1.0/_errors.d.ts.map +1 -0
  96. package/types/deps/jsr.io/@cliffy/command/1.1.0/_spread.d.ts +16 -0
  97. package/types/deps/jsr.io/@cliffy/command/1.1.0/_spread.d.ts.map +1 -0
  98. package/types/deps/jsr.io/@cliffy/command/1.1.0/_type_utils.d.ts +15 -0
  99. package/types/deps/jsr.io/@cliffy/command/1.1.0/_type_utils.d.ts.map +1 -0
  100. package/types/deps/jsr.io/@cliffy/command/1.1.0/_utils.d.ts +38 -0
  101. package/types/deps/jsr.io/@cliffy/command/1.1.0/_utils.d.ts.map +1 -0
  102. package/types/deps/jsr.io/@cliffy/command/1.1.0/command.d.ts +1086 -0
  103. package/types/deps/jsr.io/@cliffy/command/1.1.0/command.d.ts.map +1 -0
  104. package/types/deps/jsr.io/@cliffy/command/1.1.0/help/_help_generator.d.ts +33 -0
  105. package/types/deps/jsr.io/@cliffy/command/1.1.0/help/_help_generator.d.ts.map +1 -0
  106. package/types/deps/jsr.io/@cliffy/command/1.1.0/mod.d.ts +78 -0
  107. package/types/deps/jsr.io/@cliffy/command/1.1.0/mod.d.ts.map +1 -0
  108. package/types/deps/jsr.io/@cliffy/command/1.1.0/type.d.ts +51 -0
  109. package/types/deps/jsr.io/@cliffy/command/1.1.0/type.d.ts.map +1 -0
  110. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/action_list.d.ts +10 -0
  111. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/action_list.d.ts.map +1 -0
  112. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/boolean.d.ts +10 -0
  113. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/boolean.d.ts.map +1 -0
  114. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/child_command.d.ts +10 -0
  115. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/child_command.d.ts.map +1 -0
  116. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/command.d.ts +8 -0
  117. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/command.d.ts.map +1 -0
  118. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/enum.d.ts +11 -0
  119. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/enum.d.ts.map +1 -0
  120. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/file.d.ts +6 -0
  121. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/file.d.ts.map +1 -0
  122. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/integer.d.ts +8 -0
  123. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/integer.d.ts.map +1 -0
  124. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/number.d.ts +8 -0
  125. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/number.d.ts.map +1 -0
  126. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/secret.d.ts +6 -0
  127. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/secret.d.ts.map +1 -0
  128. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/string.d.ts +8 -0
  129. package/types/deps/jsr.io/@cliffy/command/1.1.0/types/string.d.ts.map +1 -0
  130. package/types/deps/jsr.io/@cliffy/command/1.1.0/types.d.ts +161 -0
  131. package/types/deps/jsr.io/@cliffy/command/1.1.0/types.d.ts.map +1 -0
  132. package/types/deps/jsr.io/@cliffy/command/1.1.0/upgrade/_check_version.d.ts +4 -0
  133. package/types/deps/jsr.io/@cliffy/command/1.1.0/upgrade/_check_version.d.ts.map +1 -0
  134. package/types/deps/jsr.io/@cliffy/flags/1.1.0/_errors.d.ts +67 -0
  135. package/types/deps/jsr.io/@cliffy/flags/1.1.0/_errors.d.ts.map +1 -0
  136. package/types/deps/jsr.io/@cliffy/flags/1.1.0/_utils.d.ts +17 -0
  137. package/types/deps/jsr.io/@cliffy/flags/1.1.0/_utils.d.ts.map +1 -0
  138. package/types/deps/jsr.io/@cliffy/flags/1.1.0/_validate_flags.d.ts +11 -0
  139. package/types/deps/jsr.io/@cliffy/flags/1.1.0/_validate_flags.d.ts.map +1 -0
  140. package/types/deps/jsr.io/@cliffy/flags/1.1.0/flags.d.ts +154 -0
  141. package/types/deps/jsr.io/@cliffy/flags/1.1.0/flags.d.ts.map +1 -0
  142. package/types/deps/jsr.io/@cliffy/flags/1.1.0/mod.d.ts +57 -0
  143. package/types/deps/jsr.io/@cliffy/flags/1.1.0/mod.d.ts.map +1 -0
  144. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/boolean.d.ts +4 -0
  145. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/boolean.d.ts.map +1 -0
  146. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/integer.d.ts +4 -0
  147. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/integer.d.ts.map +1 -0
  148. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/number.d.ts +4 -0
  149. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/number.d.ts.map +1 -0
  150. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/string.d.ts +4 -0
  151. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types/string.d.ts.map +1 -0
  152. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types.d.ts +170 -0
  153. package/types/deps/jsr.io/@cliffy/flags/1.1.0/types.d.ts.map +1 -0
  154. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/exit.d.ts +8 -0
  155. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/exit.d.ts.map +1 -0
  156. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_args.d.ts +7 -0
  157. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_args.d.ts.map +1 -0
  158. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_columns.d.ts +7 -0
  159. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_columns.d.ts.map +1 -0
  160. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_env.d.ts +8 -0
  161. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/get_env.d.ts.map +1 -0
  162. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/inspect.d.ts +7 -0
  163. package/types/deps/jsr.io/@cliffy/internal/1.1.0/runtime/inspect.d.ts.map +1 -0
  164. package/types/deps/jsr.io/@cliffy/table/1.1.0/_layout.d.ts +108 -0
  165. package/types/deps/jsr.io/@cliffy/table/1.1.0/_layout.d.ts.map +1 -0
  166. package/types/deps/jsr.io/@cliffy/table/1.1.0/_utils.d.ts +26 -0
  167. package/types/deps/jsr.io/@cliffy/table/1.1.0/_utils.d.ts.map +1 -0
  168. package/types/deps/jsr.io/@cliffy/table/1.1.0/border.d.ts +21 -0
  169. package/types/deps/jsr.io/@cliffy/table/1.1.0/border.d.ts.map +1 -0
  170. package/types/deps/jsr.io/@cliffy/table/1.1.0/cell.d.ts +155 -0
  171. package/types/deps/jsr.io/@cliffy/table/1.1.0/cell.d.ts.map +1 -0
  172. package/types/deps/jsr.io/@cliffy/table/1.1.0/column.d.ts +97 -0
  173. package/types/deps/jsr.io/@cliffy/table/1.1.0/column.d.ts.map +1 -0
  174. package/types/deps/jsr.io/@cliffy/table/1.1.0/consume_words.d.ts +30 -0
  175. package/types/deps/jsr.io/@cliffy/table/1.1.0/consume_words.d.ts.map +1 -0
  176. package/types/deps/jsr.io/@cliffy/table/1.1.0/mod.d.ts +43 -0
  177. package/types/deps/jsr.io/@cliffy/table/1.1.0/mod.d.ts.map +1 -0
  178. package/types/deps/jsr.io/@cliffy/table/1.1.0/row.d.ts +67 -0
  179. package/types/deps/jsr.io/@cliffy/table/1.1.0/row.d.ts.map +1 -0
  180. package/types/deps/jsr.io/@cliffy/table/1.1.0/table.d.ts +235 -0
  181. package/types/deps/jsr.io/@cliffy/table/1.1.0/table.d.ts.map +1 -0
  182. package/types/deps/jsr.io/@cliffy/table/1.1.0/unicode_width.d.ts +40 -0
  183. package/types/deps/jsr.io/@cliffy/table/1.1.0/unicode_width.d.ts.map +1 -0
  184. package/types/deps/jsr.io/@std/crypto/1.1.0/_types.d.ts +9 -0
  185. package/types/deps/jsr.io/@std/crypto/1.1.0/_types.d.ts.map +1 -0
  186. package/types/deps/jsr.io/@std/crypto/1.1.0/_wasm/lib/deno_std_wasm_crypto.d.ts +2 -0
  187. package/types/deps/jsr.io/@std/crypto/1.1.0/_wasm/lib/deno_std_wasm_crypto.d.ts.map +1 -0
  188. package/types/deps/jsr.io/@std/crypto/1.1.0/_wasm/lib/deno_std_wasm_crypto.internal.d.ts +69 -0
  189. package/types/deps/jsr.io/@std/crypto/1.1.0/_wasm/lib/deno_std_wasm_crypto.internal.d.ts.map +1 -0
  190. package/types/deps/jsr.io/@std/crypto/1.1.0/_wasm/mod.d.ts +13 -0
  191. package/types/deps/jsr.io/@std/crypto/1.1.0/_wasm/mod.d.ts.map +1 -0
  192. package/types/deps/jsr.io/@std/crypto/1.1.0/aes_gcm.d.ts +76 -0
  193. package/types/deps/jsr.io/@std/crypto/1.1.0/aes_gcm.d.ts.map +1 -0
  194. package/types/deps/jsr.io/@std/crypto/1.1.0/crypto.d.ts +149 -0
  195. package/types/deps/jsr.io/@std/crypto/1.1.0/crypto.d.ts.map +1 -0
  196. package/types/deps/jsr.io/@std/crypto/1.1.0/mod.d.ts +22 -0
  197. package/types/deps/jsr.io/@std/crypto/1.1.0/mod.d.ts.map +1 -0
  198. package/types/deps/jsr.io/@std/crypto/1.1.0/timing_safe_equal.d.ts +40 -0
  199. package/types/deps/jsr.io/@std/crypto/1.1.0/timing_safe_equal.d.ts.map +1 -0
  200. package/types/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts +23 -0
  201. package/types/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts.map +1 -0
  202. package/types/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +4 -0
  203. package/types/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +1 -0
  204. package/types/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +9 -0
  205. package/types/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +1 -0
  206. package/types/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts +39 -0
  207. package/types/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts.map +1 -0
  208. package/types/deps/jsr.io/@std/fmt/1.0.10/colors.d.ts +700 -0
  209. package/types/deps/jsr.io/@std/fmt/1.0.10/colors.d.ts.map +1 -0
  210. package/types/deps/jsr.io/@std/text/1.0.18/closest_string.d.ts +42 -0
  211. package/types/deps/jsr.io/@std/text/1.0.18/closest_string.d.ts.map +1 -0
  212. package/types/deps/jsr.io/@std/text/1.0.18/levenshtein_distance.d.ts +23 -0
  213. package/types/deps/jsr.io/@std/text/1.0.18/levenshtein_distance.d.ts.map +1 -0
  214. package/types/errors.d.ts +73 -0
  215. package/types/errors.d.ts.map +1 -0
  216. package/types/index.d.ts +14 -0
  217. package/types/index.d.ts.map +1 -0
  218. package/types/logger.d.ts +70 -0
  219. package/types/logger.d.ts.map +1 -0
  220. package/types/objects/commit.d.ts +23 -0
  221. package/types/objects/commit.d.ts.map +1 -0
  222. package/types/objects/index.d.ts +3 -0
  223. package/types/objects/index.d.ts.map +1 -0
  224. package/types/objects/tree.d.ts +49 -0
  225. package/types/objects/tree.d.ts.map +1 -0
  226. package/types/pack/delta.d.ts +47 -0
  227. package/types/pack/delta.d.ts.map +1 -0
  228. package/types/pack/index.d.ts +4 -0
  229. package/types/pack/index.d.ts.map +1 -0
  230. package/types/pack/objects.d.ts +53 -0
  231. package/types/pack/objects.d.ts.map +1 -0
  232. package/types/pack/parser.d.ts +61 -0
  233. package/types/pack/parser.d.ts.map +1 -0
  234. package/types/protocol/index.d.ts +4 -0
  235. package/types/protocol/index.d.ts.map +1 -0
  236. package/types/protocol/pkt_line.d.ts +44 -0
  237. package/types/protocol/pkt_line.d.ts.map +1 -0
  238. package/types/protocol/refs.d.ts +40 -0
  239. package/types/protocol/refs.d.ts.map +1 -0
  240. package/types/protocol/upload_pack.d.ts +45 -0
  241. package/types/protocol/upload_pack.d.ts.map +1 -0
  242. package/types/transport.d.ts +24 -0
  243. package/types/transport.d.ts.map +1 -0
  244. package/types/types.d.ts +121 -0
  245. package/types/types.d.ts.map +1 -0
@@ -0,0 +1,133 @@
1
+ import { didYouMeanCommand } from "./_utils.js";
2
+ import { getFlag } from "./_utils.js";
3
+ import { bold } from "../../../@std/fmt/1.0.10/colors.js";
4
+ export class CommandError extends Error {
5
+ constructor(message, options) {
6
+ super(message, options);
7
+ Object.setPrototypeOf(this, CommandError.prototype);
8
+ }
9
+ }
10
+ export class ValidationError extends CommandError {
11
+ exitCode;
12
+ cmd;
13
+ constructor(message, { exitCode, cause } = {}) {
14
+ super(message, { cause });
15
+ Object.setPrototypeOf(this, ValidationError.prototype);
16
+ this.exitCode = exitCode ?? 2;
17
+ }
18
+ }
19
+ export class DuplicateOptionNameError extends CommandError {
20
+ constructor(optionName, commandName) {
21
+ super(`An option with name '${bold(getFlag(optionName))}' is already registered on command '${bold(commandName)}'. If it is intended to override the option, set the '${bold("override")}' option of the '${bold("option")}' method to true.`);
22
+ Object.setPrototypeOf(this, DuplicateOptionNameError.prototype);
23
+ }
24
+ }
25
+ export class MissingCommandNameCompletionsError extends CommandError {
26
+ constructor(shell) {
27
+ super(`Failed to generate shell completions. Missing main command name. Use '${bold('cmd.name("<command-name>")')}' to set the name of the main command or use the '${bold("--name")}' option from the '${bold("completions")}' command to set the cli name: '${bold(`<command> completions ${shell} --name <cli-name>`)}'.`);
28
+ Object.setPrototypeOf(this, MissingCommandNameCompletionsError.prototype);
29
+ }
30
+ }
31
+ export class MissingCommandNameError extends CommandError {
32
+ constructor() {
33
+ super("Missing command name.");
34
+ Object.setPrototypeOf(this, MissingCommandNameError.prototype);
35
+ }
36
+ }
37
+ export class DuplicateCommandNameError extends CommandError {
38
+ constructor(name) {
39
+ super(`Duplicate command name "${name}".`);
40
+ Object.setPrototypeOf(this, DuplicateCommandNameError.prototype);
41
+ }
42
+ }
43
+ export class DuplicateCommandAliasError extends CommandError {
44
+ constructor(alias) {
45
+ super(`Duplicate command alias "${alias}".`);
46
+ Object.setPrototypeOf(this, DuplicateCommandAliasError.prototype);
47
+ }
48
+ }
49
+ export class CommandNotFoundError extends CommandError {
50
+ constructor(name, commands, excluded) {
51
+ super(`Unknown command "${name}".${didYouMeanCommand(name, commands, excluded)}`);
52
+ Object.setPrototypeOf(this, CommandNotFoundError.prototype);
53
+ }
54
+ }
55
+ export class DuplicateTypeError extends CommandError {
56
+ constructor(name) {
57
+ super(`Type with name "${name}" already exists.`);
58
+ Object.setPrototypeOf(this, DuplicateTypeError.prototype);
59
+ }
60
+ }
61
+ export class DuplicateCompletionError extends CommandError {
62
+ constructor(name) {
63
+ super(`Completion with name "${name}" already exists.`);
64
+ Object.setPrototypeOf(this, DuplicateCompletionError.prototype);
65
+ }
66
+ }
67
+ export class DuplicateExampleError extends CommandError {
68
+ constructor(name) {
69
+ super(`Example with name "${name}" already exists.`);
70
+ Object.setPrototypeOf(this, DuplicateExampleError.prototype);
71
+ }
72
+ }
73
+ export class DuplicateEnvVarError extends CommandError {
74
+ constructor(name) {
75
+ super(`Environment variable with name "${name}" already exists.`);
76
+ Object.setPrototypeOf(this, DuplicateEnvVarError.prototype);
77
+ }
78
+ }
79
+ export class MissingRequiredEnvVarError extends ValidationError {
80
+ constructor(envVar) {
81
+ super(`Missing required environment variable "${envVar.names[0]}".`);
82
+ Object.setPrototypeOf(this, MissingRequiredEnvVarError.prototype);
83
+ }
84
+ }
85
+ export class TooManyEnvVarValuesError extends CommandError {
86
+ constructor(name) {
87
+ super(`An environment variable can only have one value, but "${name}" has more than one.`);
88
+ Object.setPrototypeOf(this, TooManyEnvVarValuesError.prototype);
89
+ }
90
+ }
91
+ export class UnexpectedOptionalEnvVarValueError extends CommandError {
92
+ constructor(name) {
93
+ super(`An environment variable cannot have an optional value, but "${name}" is defined as optional.`);
94
+ Object.setPrototypeOf(this, UnexpectedOptionalEnvVarValueError.prototype);
95
+ }
96
+ }
97
+ export class UnexpectedVariadicEnvVarValueError extends CommandError {
98
+ constructor(name) {
99
+ super(`An environment variable cannot have an variadic value, but "${name}" is defined as variadic.`);
100
+ Object.setPrototypeOf(this, UnexpectedVariadicEnvVarValueError.prototype);
101
+ }
102
+ }
103
+ export class DefaultCommandNotFoundError extends CommandError {
104
+ constructor(name, commands) {
105
+ super(`Default command "${name}" not found.${didYouMeanCommand(name, commands)}`);
106
+ Object.setPrototypeOf(this, DefaultCommandNotFoundError.prototype);
107
+ }
108
+ }
109
+ export class UnknownCompletionCommandError extends CommandError {
110
+ constructor(name, commands) {
111
+ super(`Auto-completion failed. Unknown command "${name}".${didYouMeanCommand(name, commands)}`);
112
+ Object.setPrototypeOf(this, UnknownCompletionCommandError.prototype);
113
+ }
114
+ }
115
+ /* Validation errors. */
116
+ export class UnknownCommandError extends ValidationError {
117
+ constructor(name, commands, excluded) {
118
+ super(`Unknown command "${name}".${didYouMeanCommand(name, commands, excluded)}`);
119
+ Object.setPrototypeOf(this, UnknownCommandError.prototype);
120
+ }
121
+ }
122
+ export class NoArgumentsAllowedError extends ValidationError {
123
+ constructor(name) {
124
+ super(`No arguments allowed for command "${name}".`);
125
+ Object.setPrototypeOf(this, NoArgumentsAllowedError.prototype);
126
+ }
127
+ }
128
+ export class TooManyArgumentsError extends ValidationError {
129
+ constructor(args) {
130
+ super(`Too many arguments: ${args.join(" ")}`);
131
+ Object.setPrototypeOf(this, TooManyArgumentsError.prototype);
132
+ }
133
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,141 @@
1
+ import { UnexpectedArgumentAfterVariadicArgumentError, UnexpectedRequiredArgumentError, } from "../../flags/1.1.0/mod.js";
2
+ import { closestString } from "../../../@std/text/1.0.18/closest_string.js";
3
+ export function getFlag(name) {
4
+ if (name.startsWith("-")) {
5
+ return name;
6
+ }
7
+ if (name.length > 1) {
8
+ return `--${name}`;
9
+ }
10
+ return `-${name}`;
11
+ }
12
+ export function didYouMean(message, type, types) {
13
+ const match = types.length
14
+ ? closestString(type, types)
15
+ : undefined;
16
+ return match ? `${message} "${match}"?` : "";
17
+ }
18
+ export function didYouMeanCommand(command, commands, excludes = []) {
19
+ const commandNames = commands
20
+ .map((command) => command.getName())
21
+ .filter((command) => !excludes.includes(command));
22
+ return didYouMean(" Did you mean command", command, commandNames);
23
+ }
24
+ const ARGUMENT_REGEX = /^[<\[].+[\]>]$/;
25
+ const ARGUMENT_DETAILS_REGEX = /[<\[:>\]]/;
26
+ /**
27
+ * Split options and arguments.
28
+ * @param args Arguments definition: `--color, -c <color1:string> <color2:string>`
29
+ *
30
+ * For example: `-c, --color <color1:string> <color2:string>`
31
+ *
32
+ * Will result in:
33
+ * ```json
34
+ * {
35
+ * flags: [ "-c", "--color" ],
36
+ * typeDefinition: "<color1:string> <color2:string>",
37
+ * }
38
+ * ```
39
+ */
40
+ export function splitArguments(args) {
41
+ const parts = args.trim().split(/[, =] */g);
42
+ const typeParts = [];
43
+ while (parts[parts.length - 1] &&
44
+ ARGUMENT_REGEX.test(parts[parts.length - 1])) {
45
+ typeParts.unshift(parts.pop());
46
+ }
47
+ const typeDefinition = typeParts.join(" ");
48
+ return { flags: parts, typeDefinition, equalsSign: args.includes("=") };
49
+ }
50
+ export function parseArgumentsDefinition(argsDefinition, validate = true, all) {
51
+ const argumentDetails = [];
52
+ let hasOptional = false;
53
+ let hasVariadic = false;
54
+ const parts = Array.isArray(argsDefinition)
55
+ ? argsDefinition
56
+ : argsDefinition.split(/ +/);
57
+ for (let argDef of parts) {
58
+ if (typeof argDef === "string") {
59
+ argDef = { arg: argDef };
60
+ }
61
+ if (validate && hasVariadic) {
62
+ throw new UnexpectedArgumentAfterVariadicArgumentError(argDef.arg);
63
+ }
64
+ const parts = argDef.arg.split(ARGUMENT_DETAILS_REGEX);
65
+ if (!parts[1]) {
66
+ if (all) {
67
+ argumentDetails.push(parts[0]);
68
+ }
69
+ continue;
70
+ }
71
+ const type = parts[2] || "string";
72
+ const details = {
73
+ description: argDef.description,
74
+ optional: argDef.arg[0] === "[",
75
+ raw: argDef.arg,
76
+ name: parts[1],
77
+ action: parts[3] || type,
78
+ variadic: false,
79
+ list: type ? argDef.arg.indexOf(type + "[]") !== -1 : false,
80
+ type,
81
+ };
82
+ if (argDef.value !== undefined) {
83
+ details.value = argDef.value;
84
+ }
85
+ if (argDef.default !== undefined) {
86
+ details.default = argDef.default;
87
+ }
88
+ if (argDef.separator !== undefined) {
89
+ details.separator = argDef.separator;
90
+ }
91
+ if (validate && !details.optional && hasOptional) {
92
+ throw new UnexpectedRequiredArgumentError(details.name);
93
+ }
94
+ if (argDef.arg[0] === "[") {
95
+ hasOptional = true;
96
+ }
97
+ if (details.name.length > 3) {
98
+ const istVariadicLeft = details.name.slice(0, 3) === "...";
99
+ const istVariadicRight = details.name.slice(-3) === "...";
100
+ hasVariadic = details.variadic = istVariadicLeft || istVariadicRight;
101
+ if (istVariadicLeft) {
102
+ details.name = details.name.slice(3);
103
+ }
104
+ else if (istVariadicRight) {
105
+ details.name = details.name.slice(0, -3);
106
+ }
107
+ }
108
+ argumentDetails.push(details);
109
+ }
110
+ return argumentDetails;
111
+ }
112
+ export function dedent(str) {
113
+ const lines = str.split(/\r?\n|\r/g);
114
+ let text = "";
115
+ let indent = 0;
116
+ for (const line of lines) {
117
+ if (text || line.trim()) {
118
+ if (!text) {
119
+ text = line.trimStart();
120
+ indent = line.length - text.length;
121
+ }
122
+ else {
123
+ text += line.slice(indent);
124
+ }
125
+ text += "\n";
126
+ }
127
+ }
128
+ return text.trimEnd();
129
+ }
130
+ export function getDescription(description, short) {
131
+ return short
132
+ ? description.trim().split("\n", 1)[0].trim()
133
+ : dedent(description);
134
+ }
135
+ /** Convert underscore case string to camel case. */
136
+ export function underscoreToCamelCase(str) {
137
+ return str
138
+ .replace(/([a-z])([A-Z])/g, "$1_$2")
139
+ .toLowerCase()
140
+ .replace(/_([a-z])/g, (g) => g[1].toUpperCase());
141
+ }