avo-cli 0.0.3 → 4.2.0.beta.2

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 (814) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +612 -0
  3. data/avo-cli.gemspec +22 -23
  4. data/exe/avo +6 -0
  5. data/lib/avo/cli/runner.rb +86 -0
  6. data/lib/avo/cli/version.rb +7 -0
  7. data/lib/avo-cli.rb +5 -0
  8. data/payload/README.md +612 -0
  9. data/payload/bin/run.cmd +3 -0
  10. data/payload/bin/run.js +5 -0
  11. data/payload/dist/base-command.js +60 -0
  12. data/payload/dist/client.js +78 -0
  13. data/payload/dist/commands/create.js +26 -0
  14. data/payload/dist/commands/delete.js +22 -0
  15. data/payload/dist/commands/get.js +19 -0
  16. data/payload/dist/commands/list.js +47 -0
  17. data/payload/dist/commands/login.js +93 -0
  18. data/payload/dist/commands/logout.js +13 -0
  19. data/payload/dist/commands/schema.js +58 -0
  20. data/payload/dist/commands/update.js +27 -0
  21. data/payload/dist/config.js +59 -0
  22. data/payload/dist/data.js +33 -0
  23. data/payload/dist/errors.js +93 -0
  24. data/payload/dist/hooks/command-not-found.js +22 -0
  25. data/payload/dist/index.js +1 -0
  26. data/payload/dist/list.js +7 -0
  27. data/payload/dist/payload.js +35 -0
  28. data/payload/dist/record-command.js +51 -0
  29. data/payload/dist/schema.js +29 -0
  30. data/payload/dist/store.js +91 -0
  31. data/payload/dist/suggest.js +29 -0
  32. data/payload/dist/table.js +40 -0
  33. data/payload/dist/write-command.js +26 -0
  34. data/payload/node_modules/@inquirer/ansi/LICENSE +22 -0
  35. data/payload/node_modules/@inquirer/ansi/README.md +89 -0
  36. data/payload/node_modules/@inquirer/ansi/dist/commonjs/index.d.ts +14 -0
  37. data/payload/node_modules/@inquirer/ansi/dist/commonjs/index.js +28 -0
  38. data/payload/node_modules/@inquirer/ansi/dist/commonjs/package.json +3 -0
  39. data/payload/node_modules/@inquirer/ansi/dist/esm/index.d.ts +14 -0
  40. data/payload/node_modules/@inquirer/ansi/dist/esm/index.js +21 -0
  41. data/payload/node_modules/@inquirer/ansi/dist/esm/package.json +3 -0
  42. data/payload/node_modules/@inquirer/ansi/package.json +97 -0
  43. data/payload/node_modules/@inquirer/core/LICENSE +22 -0
  44. data/payload/node_modules/@inquirer/core/README.md +383 -0
  45. data/payload/node_modules/@inquirer/core/dist/commonjs/index.d.ts +13 -0
  46. data/payload/node_modules/@inquirer/core/dist/commonjs/index.js +46 -0
  47. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/Separator.d.ts +10 -0
  48. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/Separator.js +28 -0
  49. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/create-prompt.d.ts +4 -0
  50. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/create-prompt.js +156 -0
  51. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/errors.d.ts +20 -0
  52. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/errors.js +29 -0
  53. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/hook-engine.d.ts +23 -0
  54. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/hook-engine.js +118 -0
  55. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/key.d.ts +12 -0
  56. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/key.js +29 -0
  57. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/make-theme.d.ts +3 -0
  58. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/make-theme.js +33 -0
  59. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/pagination/use-pagination.d.ts +16 -0
  60. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/pagination/use-pagination.js +124 -0
  61. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/promise-polyfill.d.ts +7 -0
  62. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/promise-polyfill.js +18 -0
  63. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/screen-manager.d.ts +14 -0
  64. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/screen-manager.js +82 -0
  65. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/theme.d.ts +155 -0
  66. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/theme.js +27 -0
  67. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-effect.d.ts +2 -0
  68. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-effect.js +14 -0
  69. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-keypress.d.ts +3 -0
  70. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-keypress.js +23 -0
  71. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-memo.d.ts +1 -0
  72. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-memo.js +17 -0
  73. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-prefix.d.ts +5 -0
  74. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-prefix.js +38 -0
  75. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-ref.d.ts +6 -0
  76. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-ref.js +7 -0
  77. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-state.d.ts +4 -0
  78. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/use-state.js +23 -0
  79. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/utils.d.ts +13 -0
  80. data/payload/node_modules/@inquirer/core/dist/commonjs/lib/utils.js +32 -0
  81. data/payload/node_modules/@inquirer/core/dist/commonjs/package.json +3 -0
  82. data/payload/node_modules/@inquirer/core/dist/esm/index.d.ts +13 -0
  83. data/payload/node_modules/@inquirer/core/dist/esm/index.js +12 -0
  84. data/payload/node_modules/@inquirer/core/dist/esm/lib/Separator.d.ts +10 -0
  85. data/payload/node_modules/@inquirer/core/dist/esm/lib/Separator.js +21 -0
  86. data/payload/node_modules/@inquirer/core/dist/esm/lib/create-prompt.d.ts +4 -0
  87. data/payload/node_modules/@inquirer/core/dist/esm/lib/create-prompt.js +117 -0
  88. data/payload/node_modules/@inquirer/core/dist/esm/lib/errors.d.ts +20 -0
  89. data/payload/node_modules/@inquirer/core/dist/esm/lib/errors.js +21 -0
  90. data/payload/node_modules/@inquirer/core/dist/esm/lib/hook-engine.d.ts +23 -0
  91. data/payload/node_modules/@inquirer/core/dist/esm/lib/hook-engine.js +110 -0
  92. data/payload/node_modules/@inquirer/core/dist/esm/lib/key.d.ts +12 -0
  93. data/payload/node_modules/@inquirer/core/dist/esm/lib/key.js +19 -0
  94. data/payload/node_modules/@inquirer/core/dist/esm/lib/make-theme.d.ts +3 -0
  95. data/payload/node_modules/@inquirer/core/dist/esm/lib/make-theme.js +30 -0
  96. data/payload/node_modules/@inquirer/core/dist/esm/lib/pagination/use-pagination.d.ts +16 -0
  97. data/payload/node_modules/@inquirer/core/dist/esm/lib/pagination/use-pagination.js +121 -0
  98. data/payload/node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.d.ts +7 -0
  99. data/payload/node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.js +14 -0
  100. data/payload/node_modules/@inquirer/core/dist/esm/lib/screen-manager.d.ts +14 -0
  101. data/payload/node_modules/@inquirer/core/dist/esm/lib/screen-manager.js +79 -0
  102. data/payload/node_modules/@inquirer/core/dist/esm/lib/theme.d.ts +155 -0
  103. data/payload/node_modules/@inquirer/core/dist/esm/lib/theme.js +21 -0
  104. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-effect.d.ts +2 -0
  105. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-effect.js +11 -0
  106. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-keypress.d.ts +3 -0
  107. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-keypress.js +20 -0
  108. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-memo.d.ts +1 -0
  109. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-memo.js +14 -0
  110. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-prefix.d.ts +5 -0
  111. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-prefix.js +35 -0
  112. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-ref.d.ts +6 -0
  113. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-ref.js +4 -0
  114. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-state.d.ts +4 -0
  115. data/payload/node_modules/@inquirer/core/dist/esm/lib/use-state.js +20 -0
  116. data/payload/node_modules/@inquirer/core/dist/esm/lib/utils.d.ts +13 -0
  117. data/payload/node_modules/@inquirer/core/dist/esm/lib/utils.js +25 -0
  118. data/payload/node_modules/@inquirer/core/dist/esm/package.json +3 -0
  119. data/payload/node_modules/@inquirer/core/node_modules/mute-stream/LICENSE +15 -0
  120. data/payload/node_modules/@inquirer/core/node_modules/mute-stream/README.md +68 -0
  121. data/payload/node_modules/@inquirer/core/node_modules/mute-stream/lib/index.js +142 -0
  122. data/payload/node_modules/@inquirer/core/node_modules/mute-stream/package.json +54 -0
  123. data/payload/node_modules/@inquirer/core/package.json +119 -0
  124. data/payload/node_modules/@inquirer/figures/LICENSE +22 -0
  125. data/payload/node_modules/@inquirer/figures/dist/commonjs/index.d.ts +275 -0
  126. data/payload/node_modules/@inquirer/figures/dist/commonjs/index.js +321 -0
  127. data/payload/node_modules/@inquirer/figures/dist/commonjs/package.json +3 -0
  128. data/payload/node_modules/@inquirer/figures/dist/esm/index.d.ts +275 -0
  129. data/payload/node_modules/@inquirer/figures/dist/esm/index.js +314 -0
  130. data/payload/node_modules/@inquirer/figures/dist/esm/package.json +3 -0
  131. data/payload/node_modules/@inquirer/figures/package.json +98 -0
  132. data/payload/node_modules/@inquirer/input/LICENSE +22 -0
  133. data/payload/node_modules/@inquirer/input/README.md +101 -0
  134. data/payload/node_modules/@inquirer/input/dist/commonjs/index.d.ts +20 -0
  135. data/payload/node_modules/@inquirer/input/dist/commonjs/index.js +99 -0
  136. data/payload/node_modules/@inquirer/input/dist/commonjs/package.json +3 -0
  137. data/payload/node_modules/@inquirer/input/dist/esm/index.d.ts +20 -0
  138. data/payload/node_modules/@inquirer/input/dist/esm/index.js +97 -0
  139. data/payload/node_modules/@inquirer/input/dist/esm/package.json +3 -0
  140. data/payload/node_modules/@inquirer/input/package.json +110 -0
  141. data/payload/node_modules/@inquirer/password/LICENSE +22 -0
  142. data/payload/node_modules/@inquirer/password/README.md +93 -0
  143. data/payload/node_modules/@inquirer/password/dist/commonjs/index.d.ts +10 -0
  144. data/payload/node_modules/@inquirer/password/dist/commonjs/index.js +57 -0
  145. data/payload/node_modules/@inquirer/password/dist/commonjs/package.json +3 -0
  146. data/payload/node_modules/@inquirer/password/dist/esm/index.d.ts +10 -0
  147. data/payload/node_modules/@inquirer/password/dist/esm/index.js +55 -0
  148. data/payload/node_modules/@inquirer/password/dist/esm/package.json +3 -0
  149. data/payload/node_modules/@inquirer/password/package.json +111 -0
  150. data/payload/node_modules/@inquirer/type/LICENSE +22 -0
  151. data/payload/node_modules/@inquirer/type/dist/commonjs/index.d.ts +2 -0
  152. data/payload/node_modules/@inquirer/type/dist/commonjs/index.js +18 -0
  153. data/payload/node_modules/@inquirer/type/dist/commonjs/inquirer.d.ts +38 -0
  154. data/payload/node_modules/@inquirer/type/dist/commonjs/inquirer.js +2 -0
  155. data/payload/node_modules/@inquirer/type/dist/commonjs/package.json +3 -0
  156. data/payload/node_modules/@inquirer/type/dist/commonjs/utils.d.ts +29 -0
  157. data/payload/node_modules/@inquirer/type/dist/commonjs/utils.js +3 -0
  158. data/payload/node_modules/@inquirer/type/dist/esm/index.d.ts +2 -0
  159. data/payload/node_modules/@inquirer/type/dist/esm/index.js +2 -0
  160. data/payload/node_modules/@inquirer/type/dist/esm/inquirer.d.ts +38 -0
  161. data/payload/node_modules/@inquirer/type/dist/esm/inquirer.js +1 -0
  162. data/payload/node_modules/@inquirer/type/dist/esm/package.json +3 -0
  163. data/payload/node_modules/@inquirer/type/dist/esm/utils.d.ts +29 -0
  164. data/payload/node_modules/@inquirer/type/dist/esm/utils.js +2 -0
  165. data/payload/node_modules/@inquirer/type/package.json +106 -0
  166. data/payload/node_modules/@oclif/core/LICENSE +21 -0
  167. data/payload/node_modules/@oclif/core/README.md +150 -0
  168. data/payload/node_modules/@oclif/core/lib/args.d.ts +56 -0
  169. data/payload/node_modules/@oclif/core/lib/args.js +85 -0
  170. data/payload/node_modules/@oclif/core/lib/cache.d.ts +27 -0
  171. data/payload/node_modules/@oclif/core/lib/cache.js +40 -0
  172. data/payload/node_modules/@oclif/core/lib/command.d.ts +192 -0
  173. data/payload/node_modules/@oclif/core/lib/command.js +350 -0
  174. data/payload/node_modules/@oclif/core/lib/config/config.d.ts +135 -0
  175. data/payload/node_modules/@oclif/core/lib/config/config.js +749 -0
  176. data/payload/node_modules/@oclif/core/lib/config/index.d.ts +3 -0
  177. data/payload/node_modules/@oclif/core/lib/config/index.js +9 -0
  178. data/payload/node_modules/@oclif/core/lib/config/plugin-loader.d.ts +38 -0
  179. data/payload/node_modules/@oclif/core/lib/config/plugin-loader.js +188 -0
  180. data/payload/node_modules/@oclif/core/lib/config/plugin.d.ts +51 -0
  181. data/payload/node_modules/@oclif/core/lib/config/plugin.js +373 -0
  182. data/payload/node_modules/@oclif/core/lib/config/ts-path.d.ts +9 -0
  183. data/payload/node_modules/@oclif/core/lib/config/ts-path.js +293 -0
  184. data/payload/node_modules/@oclif/core/lib/config/util.d.ts +23 -0
  185. data/payload/node_modules/@oclif/core/lib/config/util.js +54 -0
  186. data/payload/node_modules/@oclif/core/lib/constraints.d.ts +217 -0
  187. data/payload/node_modules/@oclif/core/lib/constraints.js +638 -0
  188. data/payload/node_modules/@oclif/core/lib/errors/error.d.ts +8 -0
  189. data/payload/node_modules/@oclif/core/lib/errors/error.js +63 -0
  190. data/payload/node_modules/@oclif/core/lib/errors/errors/cli.d.ts +29 -0
  191. data/payload/node_modules/@oclif/core/lib/errors/errors/cli.js +77 -0
  192. data/payload/node_modules/@oclif/core/lib/errors/errors/exit.d.ts +7 -0
  193. data/payload/node_modules/@oclif/core/lib/errors/errors/exit.js +14 -0
  194. data/payload/node_modules/@oclif/core/lib/errors/errors/module-load.d.ts +6 -0
  195. data/payload/node_modules/@oclif/core/lib/errors/errors/module-load.js +12 -0
  196. data/payload/node_modules/@oclif/core/lib/errors/errors/pretty-print.d.ts +9 -0
  197. data/payload/node_modules/@oclif/core/lib/errors/errors/pretty-print.js +67 -0
  198. data/payload/node_modules/@oclif/core/lib/errors/exit.d.ts +1 -0
  199. data/payload/node_modules/@oclif/core/lib/errors/exit.js +7 -0
  200. data/payload/node_modules/@oclif/core/lib/errors/handle.d.ts +14 -0
  201. data/payload/node_modules/@oclif/core/lib/errors/handle.js +60 -0
  202. data/payload/node_modules/@oclif/core/lib/errors/index.d.ts +8 -0
  203. data/payload/node_modules/@oclif/core/lib/errors/index.js +17 -0
  204. data/payload/node_modules/@oclif/core/lib/errors/warn.d.ts +8 -0
  205. data/payload/node_modules/@oclif/core/lib/errors/warn.js +40 -0
  206. data/payload/node_modules/@oclif/core/lib/execute.d.ts +44 -0
  207. data/payload/node_modules/@oclif/core/lib/execute.js +61 -0
  208. data/payload/node_modules/@oclif/core/lib/flags.d.ts +181 -0
  209. data/payload/node_modules/@oclif/core/lib/flags.js +129 -0
  210. data/payload/node_modules/@oclif/core/lib/flush.d.ts +1 -0
  211. data/payload/node_modules/@oclif/core/lib/flush.js +26 -0
  212. data/payload/node_modules/@oclif/core/lib/help/command.d.ts +33 -0
  213. data/payload/node_modules/@oclif/core/lib/help/command.js +352 -0
  214. data/payload/node_modules/@oclif/core/lib/help/docopts.d.ts +69 -0
  215. data/payload/node_modules/@oclif/core/lib/help/docopts.js +198 -0
  216. data/payload/node_modules/@oclif/core/lib/help/formatter.d.ts +96 -0
  217. data/payload/node_modules/@oclif/core/lib/help/formatter.js +194 -0
  218. data/payload/node_modules/@oclif/core/lib/help/index.d.ts +46 -0
  219. data/payload/node_modules/@oclif/core/lib/help/index.js +345 -0
  220. data/payload/node_modules/@oclif/core/lib/help/root.d.ts +11 -0
  221. data/payload/node_modules/@oclif/core/lib/help/root.js +47 -0
  222. data/payload/node_modules/@oclif/core/lib/help/util.d.ts +7 -0
  223. data/payload/node_modules/@oclif/core/lib/help/util.js +99 -0
  224. data/payload/node_modules/@oclif/core/lib/index.d.ts +20 -0
  225. data/payload/node_modules/@oclif/core/lib/index.js +101 -0
  226. data/payload/node_modules/@oclif/core/lib/interfaces/alphabet.d.ts +2 -0
  227. data/payload/node_modules/@oclif/core/lib/interfaces/alphabet.js +2 -0
  228. data/payload/node_modules/@oclif/core/lib/interfaces/args.d.ts +22 -0
  229. data/payload/node_modules/@oclif/core/lib/interfaces/args.js +2 -0
  230. data/payload/node_modules/@oclif/core/lib/interfaces/config.d.ts +139 -0
  231. data/payload/node_modules/@oclif/core/lib/interfaces/config.js +2 -0
  232. data/payload/node_modules/@oclif/core/lib/interfaces/errors.d.ts +27 -0
  233. data/payload/node_modules/@oclif/core/lib/interfaces/errors.js +2 -0
  234. data/payload/node_modules/@oclif/core/lib/interfaces/flags.d.ts +34 -0
  235. data/payload/node_modules/@oclif/core/lib/interfaces/flags.js +2 -0
  236. data/payload/node_modules/@oclif/core/lib/interfaces/help.d.ts +58 -0
  237. data/payload/node_modules/@oclif/core/lib/interfaces/help.js +2 -0
  238. data/payload/node_modules/@oclif/core/lib/interfaces/hooks.d.ts +185 -0
  239. data/payload/node_modules/@oclif/core/lib/interfaces/hooks.js +2 -0
  240. data/payload/node_modules/@oclif/core/lib/interfaces/index.d.ts +16 -0
  241. data/payload/node_modules/@oclif/core/lib/interfaces/index.js +2 -0
  242. data/payload/node_modules/@oclif/core/lib/interfaces/logger.d.ts +9 -0
  243. data/payload/node_modules/@oclif/core/lib/interfaces/logger.js +2 -0
  244. data/payload/node_modules/@oclif/core/lib/interfaces/manifest.d.ts +7 -0
  245. data/payload/node_modules/@oclif/core/lib/interfaces/manifest.js +2 -0
  246. data/payload/node_modules/@oclif/core/lib/interfaces/parser.d.ts +520 -0
  247. data/payload/node_modules/@oclif/core/lib/interfaces/parser.js +2 -0
  248. data/payload/node_modules/@oclif/core/lib/interfaces/pjson.d.ts +314 -0
  249. data/payload/node_modules/@oclif/core/lib/interfaces/pjson.js +2 -0
  250. data/payload/node_modules/@oclif/core/lib/interfaces/plugin.d.ts +104 -0
  251. data/payload/node_modules/@oclif/core/lib/interfaces/plugin.js +2 -0
  252. data/payload/node_modules/@oclif/core/lib/interfaces/s3-manifest.d.ts +14 -0
  253. data/payload/node_modules/@oclif/core/lib/interfaces/s3-manifest.js +2 -0
  254. data/payload/node_modules/@oclif/core/lib/interfaces/theme.d.ts +32 -0
  255. data/payload/node_modules/@oclif/core/lib/interfaces/theme.js +44 -0
  256. data/payload/node_modules/@oclif/core/lib/interfaces/topic.d.ts +5 -0
  257. data/payload/node_modules/@oclif/core/lib/interfaces/topic.js +2 -0
  258. data/payload/node_modules/@oclif/core/lib/interfaces/ts-config.d.ts +23 -0
  259. data/payload/node_modules/@oclif/core/lib/interfaces/ts-config.js +2 -0
  260. data/payload/node_modules/@oclif/core/lib/logger.d.ts +14 -0
  261. data/payload/node_modules/@oclif/core/lib/logger.js +89 -0
  262. data/payload/node_modules/@oclif/core/lib/main.d.ts +4 -0
  263. data/payload/node_modules/@oclif/core/lib/main.js +106 -0
  264. data/payload/node_modules/@oclif/core/lib/module-loader.d.ts +71 -0
  265. data/payload/node_modules/@oclif/core/lib/module-loader.js +206 -0
  266. data/payload/node_modules/@oclif/core/lib/parser/errors.d.ts +58 -0
  267. data/payload/node_modules/@oclif/core/lib/parser/errors.js +117 -0
  268. data/payload/node_modules/@oclif/core/lib/parser/help.d.ts +3 -0
  269. data/payload/node_modules/@oclif/core/lib/parser/help.js +29 -0
  270. data/payload/node_modules/@oclif/core/lib/parser/index.d.ts +5 -0
  271. data/payload/node_modules/@oclif/core/lib/parser/index.js +25 -0
  272. data/payload/node_modules/@oclif/core/lib/parser/parse.d.ts +37 -0
  273. data/payload/node_modules/@oclif/core/lib/parser/parse.js +545 -0
  274. data/payload/node_modules/@oclif/core/lib/parser/validate.d.ts +5 -0
  275. data/payload/node_modules/@oclif/core/lib/parser/validate.js +287 -0
  276. data/payload/node_modules/@oclif/core/lib/performance.d.ts +73 -0
  277. data/payload/node_modules/@oclif/core/lib/performance.js +227 -0
  278. data/payload/node_modules/@oclif/core/lib/screen.d.ts +2 -0
  279. data/payload/node_modules/@oclif/core/lib/screen.js +20 -0
  280. data/payload/node_modules/@oclif/core/lib/settings.d.ts +36 -0
  281. data/payload/node_modules/@oclif/core/lib/settings.js +7 -0
  282. data/payload/node_modules/@oclif/core/lib/symbols.d.ts +1 -0
  283. data/payload/node_modules/@oclif/core/lib/symbols.js +4 -0
  284. data/payload/node_modules/@oclif/core/lib/util/aggregate-flags.d.ts +2 -0
  285. data/payload/node_modules/@oclif/core/lib/util/aggregate-flags.js +12 -0
  286. data/payload/node_modules/@oclif/core/lib/util/cache-command.d.ts +3 -0
  287. data/payload/node_modules/@oclif/core/lib/util/cache-command.js +120 -0
  288. data/payload/node_modules/@oclif/core/lib/util/cache-default-value.d.ts +2 -0
  289. data/payload/node_modules/@oclif/core/lib/util/cache-default-value.js +28 -0
  290. data/payload/node_modules/@oclif/core/lib/util/determine-priority.d.ts +18 -0
  291. data/payload/node_modules/@oclif/core/lib/util/determine-priority.js +51 -0
  292. data/payload/node_modules/@oclif/core/lib/util/ensure-arg-object.d.ts +12 -0
  293. data/payload/node_modules/@oclif/core/lib/util/ensure-arg-object.js +13 -0
  294. data/payload/node_modules/@oclif/core/lib/util/find-root.d.ts +16 -0
  295. data/payload/node_modules/@oclif/core/lib/util/find-root.js +185 -0
  296. data/payload/node_modules/@oclif/core/lib/util/fs.d.ts +35 -0
  297. data/payload/node_modules/@oclif/core/lib/util/fs.js +93 -0
  298. data/payload/node_modules/@oclif/core/lib/util/ids.d.ts +3 -0
  299. data/payload/node_modules/@oclif/core/lib/util/ids.js +11 -0
  300. data/payload/node_modules/@oclif/core/lib/util/os.d.ts +19 -0
  301. data/payload/node_modules/@oclif/core/lib/util/os.js +58 -0
  302. data/payload/node_modules/@oclif/core/lib/util/read-pjson.d.ts +7 -0
  303. data/payload/node_modules/@oclif/core/lib/util/read-pjson.js +55 -0
  304. data/payload/node_modules/@oclif/core/lib/util/read-tsconfig.d.ts +2 -0
  305. data/payload/node_modules/@oclif/core/lib/util/read-tsconfig.js +77 -0
  306. data/payload/node_modules/@oclif/core/lib/util/util.d.ts +23 -0
  307. data/payload/node_modules/@oclif/core/lib/util/util.js +103 -0
  308. data/payload/node_modules/@oclif/core/lib/ux/action/base.d.ts +34 -0
  309. data/payload/node_modules/@oclif/core/lib/ux/action/base.js +183 -0
  310. data/payload/node_modules/@oclif/core/lib/ux/action/simple.d.ts +11 -0
  311. data/payload/node_modules/@oclif/core/lib/ux/action/simple.js +47 -0
  312. data/payload/node_modules/@oclif/core/lib/ux/action/spinner.d.ts +19 -0
  313. data/payload/node_modules/@oclif/core/lib/ux/action/spinner.js +88 -0
  314. data/payload/node_modules/@oclif/core/lib/ux/action/types.d.ts +5 -0
  315. data/payload/node_modules/@oclif/core/lib/ux/action/types.js +2 -0
  316. data/payload/node_modules/@oclif/core/lib/ux/colorize-json.d.ts +29 -0
  317. data/payload/node_modules/@oclif/core/lib/ux/colorize-json.js +100 -0
  318. data/payload/node_modules/@oclif/core/lib/ux/index.d.ts +70 -0
  319. data/payload/node_modules/@oclif/core/lib/ux/index.js +89 -0
  320. data/payload/node_modules/@oclif/core/lib/ux/list.d.ts +3 -0
  321. data/payload/node_modules/@oclif/core/lib/ux/list.js +28 -0
  322. data/payload/node_modules/@oclif/core/lib/ux/supports-color.d.ts +1 -0
  323. data/payload/node_modules/@oclif/core/lib/ux/supports-color.js +7 -0
  324. data/payload/node_modules/@oclif/core/lib/ux/theme.d.ts +9 -0
  325. data/payload/node_modules/@oclif/core/lib/ux/theme.js +45 -0
  326. data/payload/node_modules/@oclif/core/lib/ux/write.d.ts +2 -0
  327. data/payload/node_modules/@oclif/core/lib/ux/write.js +34 -0
  328. data/payload/node_modules/@oclif/core/node_modules/balanced-match/LICENSE.md +23 -0
  329. data/payload/node_modules/@oclif/core/node_modules/balanced-match/README.md +57 -0
  330. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/commonjs/index.d.ts +9 -0
  331. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/commonjs/index.d.ts.map +1 -0
  332. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/commonjs/index.js +59 -0
  333. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/commonjs/index.js.map +1 -0
  334. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/commonjs/package.json +3 -0
  335. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/esm/index.d.ts +9 -0
  336. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/esm/index.d.ts.map +1 -0
  337. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/esm/index.js +54 -0
  338. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/esm/index.js.map +1 -0
  339. data/payload/node_modules/@oclif/core/node_modules/balanced-match/dist/esm/package.json +3 -0
  340. data/payload/node_modules/@oclif/core/node_modules/balanced-match/package.json +68 -0
  341. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/LICENSE +23 -0
  342. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/README.md +105 -0
  343. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/commonjs/index.d.ts +8 -0
  344. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -0
  345. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/commonjs/index.js +289 -0
  346. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -0
  347. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/commonjs/package.json +3 -0
  348. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/esm/index.d.ts +8 -0
  349. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -0
  350. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/esm/index.js +285 -0
  351. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/esm/index.js.map +1 -0
  352. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/dist/esm/package.json +3 -0
  353. data/payload/node_modules/@oclif/core/node_modules/brace-expansion/package.json +64 -0
  354. data/payload/node_modules/@oclif/core/node_modules/ejs/LICENSE +202 -0
  355. data/payload/node_modules/@oclif/core/node_modules/ejs/README.md +389 -0
  356. data/payload/node_modules/@oclif/core/node_modules/ejs/bin/cli.js +218 -0
  357. data/payload/node_modules/@oclif/core/node_modules/ejs/ejs.js +1820 -0
  358. data/payload/node_modules/@oclif/core/node_modules/ejs/ejs.min.js +1 -0
  359. data/payload/node_modules/@oclif/core/node_modules/ejs/jakefile.js +206 -0
  360. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/cjs/ejs.js +853 -0
  361. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/cjs/package.json +1 -0
  362. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/cjs/parseargs.js +122 -0
  363. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/cjs/utils.js +242 -0
  364. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/esm/ejs.js +936 -0
  365. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/esm/package.json +3 -0
  366. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/esm/parseargs.js +136 -0
  367. data/payload/node_modules/@oclif/core/node_modules/ejs/lib/esm/utils.js +259 -0
  368. data/payload/node_modules/@oclif/core/node_modules/ejs/package.json +49 -0
  369. data/payload/node_modules/@oclif/core/node_modules/ejs/usage.txt +24 -0
  370. data/payload/node_modules/@oclif/core/node_modules/minimatch/LICENSE.md +55 -0
  371. data/payload/node_modules/@oclif/core/node_modules/minimatch/README.md +528 -0
  372. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +2 -0
  373. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +1 -0
  374. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +14 -0
  375. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -0
  376. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/ast.d.ts +22 -0
  377. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -0
  378. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/ast.js +845 -0
  379. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/ast.js.map +1 -0
  380. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +8 -0
  381. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -0
  382. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/brace-expressions.js +150 -0
  383. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -0
  384. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/escape.d.ts +15 -0
  385. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/escape.d.ts.map +1 -0
  386. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/escape.js +30 -0
  387. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/escape.js.map +1 -0
  388. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/index.d.ts +174 -0
  389. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -0
  390. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/index.js +1127 -0
  391. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/index.js.map +1 -0
  392. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/package.json +3 -0
  393. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/unescape.d.ts +22 -0
  394. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +1 -0
  395. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/unescape.js +38 -0
  396. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -0
  397. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +2 -0
  398. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +1 -0
  399. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/assert-valid-pattern.js +10 -0
  400. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -0
  401. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/ast.d.ts +22 -0
  402. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -0
  403. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/ast.js +841 -0
  404. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/ast.js.map +1 -0
  405. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/brace-expressions.d.ts +8 -0
  406. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -0
  407. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/brace-expressions.js +146 -0
  408. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -0
  409. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/escape.d.ts +15 -0
  410. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/escape.d.ts.map +1 -0
  411. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/escape.js +26 -0
  412. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/escape.js.map +1 -0
  413. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/index.d.ts +174 -0
  414. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/index.d.ts.map +1 -0
  415. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/index.js +1114 -0
  416. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/index.js.map +1 -0
  417. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/package.json +3 -0
  418. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/unescape.d.ts +22 -0
  419. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/unescape.d.ts.map +1 -0
  420. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/unescape.js +34 -0
  421. data/payload/node_modules/@oclif/core/node_modules/minimatch/dist/esm/unescape.js.map +1 -0
  422. data/payload/node_modules/@oclif/core/node_modules/minimatch/package.json +73 -0
  423. data/payload/node_modules/@oclif/core/node_modules/wrap-ansi/index.js +216 -0
  424. data/payload/node_modules/@oclif/core/node_modules/wrap-ansi/license +9 -0
  425. data/payload/node_modules/@oclif/core/node_modules/wrap-ansi/package.json +62 -0
  426. data/payload/node_modules/@oclif/core/node_modules/wrap-ansi/readme.md +91 -0
  427. data/payload/node_modules/@oclif/core/package.json +135 -0
  428. data/payload/node_modules/@oclif/plugin-help/LICENSE +21 -0
  429. data/payload/node_modules/@oclif/plugin-help/README.md +35 -0
  430. data/payload/node_modules/@oclif/plugin-help/lib/commands/help.d.ts +12 -0
  431. data/payload/node_modules/@oclif/plugin-help/lib/commands/help.js +20 -0
  432. data/payload/node_modules/@oclif/plugin-help/lib/index.d.ts +4 -0
  433. data/payload/node_modules/@oclif/plugin-help/lib/index.js +4 -0
  434. data/payload/node_modules/@oclif/plugin-help/oclif.manifest.json +43 -0
  435. data/payload/node_modules/@oclif/plugin-help/package.json +68 -0
  436. data/payload/node_modules/ansi-escapes/index.d.ts +248 -0
  437. data/payload/node_modules/ansi-escapes/index.js +157 -0
  438. data/payload/node_modules/ansi-escapes/license +9 -0
  439. data/payload/node_modules/ansi-escapes/package.json +57 -0
  440. data/payload/node_modules/ansi-escapes/readme.md +245 -0
  441. data/payload/node_modules/ansi-regex/index.d.ts +37 -0
  442. data/payload/node_modules/ansi-regex/index.js +10 -0
  443. data/payload/node_modules/ansi-regex/license +9 -0
  444. data/payload/node_modules/ansi-regex/package.json +55 -0
  445. data/payload/node_modules/ansi-regex/readme.md +78 -0
  446. data/payload/node_modules/ansi-styles/index.d.ts +345 -0
  447. data/payload/node_modules/ansi-styles/index.js +163 -0
  448. data/payload/node_modules/ansi-styles/license +9 -0
  449. data/payload/node_modules/ansi-styles/package.json +56 -0
  450. data/payload/node_modules/ansi-styles/readme.md +152 -0
  451. data/payload/node_modules/ansis/LICENSE +15 -0
  452. data/payload/node_modules/ansis/README.md +3 -0
  453. data/payload/node_modules/ansis/index.d.ts +1 -0
  454. data/payload/node_modules/ansis/index.js +1 -0
  455. data/payload/node_modules/ansis/index.mjs +1 -0
  456. data/payload/node_modules/ansis/package.json +20 -0
  457. data/payload/node_modules/clean-stack/index.d.ts +56 -0
  458. data/payload/node_modules/clean-stack/index.js +45 -0
  459. data/payload/node_modules/clean-stack/license +9 -0
  460. data/payload/node_modules/clean-stack/package.json +42 -0
  461. data/payload/node_modules/clean-stack/readme.md +77 -0
  462. data/payload/node_modules/cli-spinners/index.d.ts +128 -0
  463. data/payload/node_modules/cli-spinners/index.js +15 -0
  464. data/payload/node_modules/cli-spinners/license +9 -0
  465. data/payload/node_modules/cli-spinners/package.json +50 -0
  466. data/payload/node_modules/cli-spinners/readme.md +54 -0
  467. data/payload/node_modules/cli-spinners/spinners.json +1622 -0
  468. data/payload/node_modules/cli-width/LICENSE +13 -0
  469. data/payload/node_modules/cli-width/README.md +71 -0
  470. data/payload/node_modules/cli-width/index.d.ts +13 -0
  471. data/payload/node_modules/cli-width/index.js +49 -0
  472. data/payload/node_modules/cli-width/package.json +40 -0
  473. data/payload/node_modules/color-convert/CHANGELOG.md +54 -0
  474. data/payload/node_modules/color-convert/LICENSE +21 -0
  475. data/payload/node_modules/color-convert/README.md +68 -0
  476. data/payload/node_modules/color-convert/conversions.js +839 -0
  477. data/payload/node_modules/color-convert/index.js +81 -0
  478. data/payload/node_modules/color-convert/package.json +48 -0
  479. data/payload/node_modules/color-convert/route.js +97 -0
  480. data/payload/node_modules/color-name/LICENSE +8 -0
  481. data/payload/node_modules/color-name/README.md +11 -0
  482. data/payload/node_modules/color-name/index.js +152 -0
  483. data/payload/node_modules/color-name/package.json +28 -0
  484. data/payload/node_modules/debug/LICENSE +20 -0
  485. data/payload/node_modules/debug/README.md +481 -0
  486. data/payload/node_modules/debug/package.json +64 -0
  487. data/payload/node_modules/debug/src/browser.js +272 -0
  488. data/payload/node_modules/debug/src/common.js +292 -0
  489. data/payload/node_modules/debug/src/index.js +10 -0
  490. data/payload/node_modules/debug/src/node.js +263 -0
  491. data/payload/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  492. data/payload/node_modules/emoji-regex/README.md +73 -0
  493. data/payload/node_modules/emoji-regex/es2015/index.js +6 -0
  494. data/payload/node_modules/emoji-regex/es2015/text.js +6 -0
  495. data/payload/node_modules/emoji-regex/index.d.ts +23 -0
  496. data/payload/node_modules/emoji-regex/index.js +6 -0
  497. data/payload/node_modules/emoji-regex/package.json +50 -0
  498. data/payload/node_modules/emoji-regex/text.js +6 -0
  499. data/payload/node_modules/escape-string-regexp/index.d.ts +18 -0
  500. data/payload/node_modules/escape-string-regexp/index.js +13 -0
  501. data/payload/node_modules/escape-string-regexp/license +9 -0
  502. data/payload/node_modules/escape-string-regexp/package.json +38 -0
  503. data/payload/node_modules/escape-string-regexp/readme.md +34 -0
  504. data/payload/node_modules/fdir/LICENSE +7 -0
  505. data/payload/node_modules/fdir/README.md +91 -0
  506. data/payload/node_modules/fdir/dist/index.cjs +588 -0
  507. data/payload/node_modules/fdir/dist/index.d.cts +155 -0
  508. data/payload/node_modules/fdir/dist/index.d.mts +155 -0
  509. data/payload/node_modules/fdir/dist/index.mjs +570 -0
  510. data/payload/node_modules/fdir/package.json +103 -0
  511. data/payload/node_modules/get-package-type/CHANGELOG.md +10 -0
  512. data/payload/node_modules/get-package-type/LICENSE +21 -0
  513. data/payload/node_modules/get-package-type/README.md +32 -0
  514. data/payload/node_modules/get-package-type/async.cjs +52 -0
  515. data/payload/node_modules/get-package-type/cache.cjs +3 -0
  516. data/payload/node_modules/get-package-type/index.cjs +7 -0
  517. data/payload/node_modules/get-package-type/is-node-modules.cjs +15 -0
  518. data/payload/node_modules/get-package-type/package.json +35 -0
  519. data/payload/node_modules/get-package-type/sync.cjs +42 -0
  520. data/payload/node_modules/has-flag/index.d.ts +39 -0
  521. data/payload/node_modules/has-flag/index.js +8 -0
  522. data/payload/node_modules/has-flag/license +9 -0
  523. data/payload/node_modules/has-flag/package.json +46 -0
  524. data/payload/node_modules/has-flag/readme.md +89 -0
  525. data/payload/node_modules/indent-string/index.d.ts +42 -0
  526. data/payload/node_modules/indent-string/index.js +35 -0
  527. data/payload/node_modules/indent-string/license +9 -0
  528. data/payload/node_modules/indent-string/package.json +37 -0
  529. data/payload/node_modules/indent-string/readme.md +70 -0
  530. data/payload/node_modules/is-docker/cli.js +5 -0
  531. data/payload/node_modules/is-docker/index.d.ts +13 -0
  532. data/payload/node_modules/is-docker/index.js +29 -0
  533. data/payload/node_modules/is-docker/license +9 -0
  534. data/payload/node_modules/is-docker/package.json +44 -0
  535. data/payload/node_modules/is-docker/readme.md +27 -0
  536. data/payload/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  537. data/payload/node_modules/is-fullwidth-code-point/index.js +50 -0
  538. data/payload/node_modules/is-fullwidth-code-point/license +9 -0
  539. data/payload/node_modules/is-fullwidth-code-point/package.json +42 -0
  540. data/payload/node_modules/is-fullwidth-code-point/readme.md +39 -0
  541. data/payload/node_modules/is-inside-container/cli.js +5 -0
  542. data/payload/node_modules/is-inside-container/index.d.ts +13 -0
  543. data/payload/node_modules/is-inside-container/index.js +23 -0
  544. data/payload/node_modules/is-inside-container/license +9 -0
  545. data/payload/node_modules/is-inside-container/package.json +51 -0
  546. data/payload/node_modules/is-inside-container/readme.md +36 -0
  547. data/payload/node_modules/is-wsl/index.d.ts +15 -0
  548. data/payload/node_modules/is-wsl/index.js +36 -0
  549. data/payload/node_modules/is-wsl/license +9 -0
  550. data/payload/node_modules/is-wsl/package.json +58 -0
  551. data/payload/node_modules/is-wsl/readme.md +21 -0
  552. data/payload/node_modules/lilconfig/LICENSE +21 -0
  553. data/payload/node_modules/lilconfig/package.json +42 -0
  554. data/payload/node_modules/lilconfig/readme.md +98 -0
  555. data/payload/node_modules/lilconfig/src/index.d.ts +54 -0
  556. data/payload/node_modules/lilconfig/src/index.js +460 -0
  557. data/payload/node_modules/ms/index.js +162 -0
  558. data/payload/node_modules/ms/license.md +21 -0
  559. data/payload/node_modules/ms/package.json +38 -0
  560. data/payload/node_modules/ms/readme.md +59 -0
  561. data/payload/node_modules/picomatch/LICENSE +21 -0
  562. data/payload/node_modules/picomatch/README.md +743 -0
  563. data/payload/node_modules/picomatch/index.js +17 -0
  564. data/payload/node_modules/picomatch/lib/constants.js +184 -0
  565. data/payload/node_modules/picomatch/lib/parse.js +1425 -0
  566. data/payload/node_modules/picomatch/lib/picomatch.js +361 -0
  567. data/payload/node_modules/picomatch/lib/scan.js +403 -0
  568. data/payload/node_modules/picomatch/lib/utils.js +72 -0
  569. data/payload/node_modules/picomatch/package.json +83 -0
  570. data/payload/node_modules/picomatch/posix.js +3 -0
  571. data/payload/node_modules/powershell-utils/index.d.ts +122 -0
  572. data/payload/node_modules/powershell-utils/index.js +58 -0
  573. data/payload/node_modules/powershell-utils/license +9 -0
  574. data/payload/node_modules/powershell-utils/package.json +47 -0
  575. data/payload/node_modules/powershell-utils/readme.md +153 -0
  576. data/payload/node_modules/semver/LICENSE +15 -0
  577. data/payload/node_modules/semver/README.md +680 -0
  578. data/payload/node_modules/semver/bin/semver.js +195 -0
  579. data/payload/node_modules/semver/classes/comparator.js +143 -0
  580. data/payload/node_modules/semver/classes/index.js +7 -0
  581. data/payload/node_modules/semver/classes/range.js +577 -0
  582. data/payload/node_modules/semver/classes/semver.js +350 -0
  583. data/payload/node_modules/semver/functions/clean.js +8 -0
  584. data/payload/node_modules/semver/functions/cmp.js +54 -0
  585. data/payload/node_modules/semver/functions/coerce.js +62 -0
  586. data/payload/node_modules/semver/functions/compare-build.js +9 -0
  587. data/payload/node_modules/semver/functions/compare-loose.js +5 -0
  588. data/payload/node_modules/semver/functions/compare.js +7 -0
  589. data/payload/node_modules/semver/functions/diff.js +60 -0
  590. data/payload/node_modules/semver/functions/eq.js +5 -0
  591. data/payload/node_modules/semver/functions/gt.js +5 -0
  592. data/payload/node_modules/semver/functions/gte.js +5 -0
  593. data/payload/node_modules/semver/functions/inc.js +21 -0
  594. data/payload/node_modules/semver/functions/lt.js +5 -0
  595. data/payload/node_modules/semver/functions/lte.js +5 -0
  596. data/payload/node_modules/semver/functions/major.js +5 -0
  597. data/payload/node_modules/semver/functions/minor.js +5 -0
  598. data/payload/node_modules/semver/functions/neq.js +5 -0
  599. data/payload/node_modules/semver/functions/parse.js +18 -0
  600. data/payload/node_modules/semver/functions/patch.js +5 -0
  601. data/payload/node_modules/semver/functions/prerelease.js +8 -0
  602. data/payload/node_modules/semver/functions/rcompare.js +5 -0
  603. data/payload/node_modules/semver/functions/rsort.js +5 -0
  604. data/payload/node_modules/semver/functions/satisfies.js +12 -0
  605. data/payload/node_modules/semver/functions/sort.js +5 -0
  606. data/payload/node_modules/semver/functions/truncate.js +48 -0
  607. data/payload/node_modules/semver/functions/valid.js +8 -0
  608. data/payload/node_modules/semver/index.js +93 -0
  609. data/payload/node_modules/semver/internal/constants.js +37 -0
  610. data/payload/node_modules/semver/internal/debug.js +11 -0
  611. data/payload/node_modules/semver/internal/identifiers.js +29 -0
  612. data/payload/node_modules/semver/internal/lrucache.js +42 -0
  613. data/payload/node_modules/semver/internal/parse-options.js +17 -0
  614. data/payload/node_modules/semver/internal/re.js +223 -0
  615. data/payload/node_modules/semver/package.json +78 -0
  616. data/payload/node_modules/semver/preload.js +4 -0
  617. data/payload/node_modules/semver/range.bnf +17 -0
  618. data/payload/node_modules/semver/ranges/gtr.js +6 -0
  619. data/payload/node_modules/semver/ranges/intersects.js +9 -0
  620. data/payload/node_modules/semver/ranges/ltr.js +6 -0
  621. data/payload/node_modules/semver/ranges/max-satisfying.js +27 -0
  622. data/payload/node_modules/semver/ranges/min-satisfying.js +26 -0
  623. data/payload/node_modules/semver/ranges/min-version.js +63 -0
  624. data/payload/node_modules/semver/ranges/outside.js +82 -0
  625. data/payload/node_modules/semver/ranges/simplify.js +49 -0
  626. data/payload/node_modules/semver/ranges/subset.js +249 -0
  627. data/payload/node_modules/semver/ranges/to-comparators.js +10 -0
  628. data/payload/node_modules/semver/ranges/valid.js +13 -0
  629. data/payload/node_modules/signal-exit/LICENSE.txt +16 -0
  630. data/payload/node_modules/signal-exit/README.md +74 -0
  631. data/payload/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
  632. data/payload/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
  633. data/payload/node_modules/signal-exit/dist/cjs/browser.js +10 -0
  634. data/payload/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
  635. data/payload/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
  636. data/payload/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
  637. data/payload/node_modules/signal-exit/dist/cjs/index.js +279 -0
  638. data/payload/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
  639. data/payload/node_modules/signal-exit/dist/cjs/package.json +3 -0
  640. data/payload/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
  641. data/payload/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
  642. data/payload/node_modules/signal-exit/dist/cjs/signals.js +42 -0
  643. data/payload/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
  644. data/payload/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
  645. data/payload/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
  646. data/payload/node_modules/signal-exit/dist/mjs/browser.js +4 -0
  647. data/payload/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
  648. data/payload/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
  649. data/payload/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
  650. data/payload/node_modules/signal-exit/dist/mjs/index.js +275 -0
  651. data/payload/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
  652. data/payload/node_modules/signal-exit/dist/mjs/package.json +3 -0
  653. data/payload/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
  654. data/payload/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
  655. data/payload/node_modules/signal-exit/dist/mjs/signals.js +39 -0
  656. data/payload/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
  657. data/payload/node_modules/signal-exit/package.json +106 -0
  658. data/payload/node_modules/string-width/index.d.ts +29 -0
  659. data/payload/node_modules/string-width/index.js +47 -0
  660. data/payload/node_modules/string-width/license +9 -0
  661. data/payload/node_modules/string-width/package.json +56 -0
  662. data/payload/node_modules/string-width/readme.md +50 -0
  663. data/payload/node_modules/strip-ansi/index.d.ts +17 -0
  664. data/payload/node_modules/strip-ansi/index.js +4 -0
  665. data/payload/node_modules/strip-ansi/license +9 -0
  666. data/payload/node_modules/strip-ansi/package.json +54 -0
  667. data/payload/node_modules/strip-ansi/readme.md +46 -0
  668. data/payload/node_modules/supports-color/browser.js +24 -0
  669. data/payload/node_modules/supports-color/index.js +152 -0
  670. data/payload/node_modules/supports-color/license +9 -0
  671. data/payload/node_modules/supports-color/package.json +58 -0
  672. data/payload/node_modules/supports-color/readme.md +77 -0
  673. data/payload/node_modules/tinyglobby/LICENSE +21 -0
  674. data/payload/node_modules/tinyglobby/README.md +25 -0
  675. data/payload/node_modules/tinyglobby/dist/index.cjs +335 -0
  676. data/payload/node_modules/tinyglobby/dist/index.d.cts +148 -0
  677. data/payload/node_modules/tinyglobby/dist/index.d.mts +148 -0
  678. data/payload/node_modules/tinyglobby/dist/index.mjs +307 -0
  679. data/payload/node_modules/tinyglobby/package.json +70 -0
  680. data/payload/node_modules/type-fest/base.d.ts +39 -0
  681. data/payload/node_modules/type-fest/index.d.ts +2 -0
  682. data/payload/node_modules/type-fest/license +9 -0
  683. data/payload/node_modules/type-fest/package.json +58 -0
  684. data/payload/node_modules/type-fest/readme.md +760 -0
  685. data/payload/node_modules/type-fest/source/async-return-type.d.ts +23 -0
  686. data/payload/node_modules/type-fest/source/asyncify.d.ts +31 -0
  687. data/payload/node_modules/type-fest/source/basic.d.ts +51 -0
  688. data/payload/node_modules/type-fest/source/conditional-except.d.ts +43 -0
  689. data/payload/node_modules/type-fest/source/conditional-keys.d.ts +43 -0
  690. data/payload/node_modules/type-fest/source/conditional-pick.d.ts +42 -0
  691. data/payload/node_modules/type-fest/source/entries.d.ts +57 -0
  692. data/payload/node_modules/type-fest/source/entry.d.ts +60 -0
  693. data/payload/node_modules/type-fest/source/except.d.ts +22 -0
  694. data/payload/node_modules/type-fest/source/fixed-length-array.d.ts +38 -0
  695. data/payload/node_modules/type-fest/source/iterable-element.d.ts +46 -0
  696. data/payload/node_modules/type-fest/source/literal-union.d.ts +33 -0
  697. data/payload/node_modules/type-fest/source/merge-exclusive.d.ts +39 -0
  698. data/payload/node_modules/type-fest/source/merge.d.ts +25 -0
  699. data/payload/node_modules/type-fest/source/mutable.d.ts +38 -0
  700. data/payload/node_modules/type-fest/source/opaque.d.ts +65 -0
  701. data/payload/node_modules/type-fest/source/package-json.d.ts +611 -0
  702. data/payload/node_modules/type-fest/source/partial-deep.d.ts +72 -0
  703. data/payload/node_modules/type-fest/source/promisable.d.ts +23 -0
  704. data/payload/node_modules/type-fest/source/promise-value.d.ts +27 -0
  705. data/payload/node_modules/type-fest/source/readonly-deep.d.ts +59 -0
  706. data/payload/node_modules/type-fest/source/require-at-least-one.d.ts +33 -0
  707. data/payload/node_modules/type-fest/source/require-exactly-one.d.ts +35 -0
  708. data/payload/node_modules/type-fest/source/set-optional.d.ts +33 -0
  709. data/payload/node_modules/type-fest/source/set-required.d.ts +33 -0
  710. data/payload/node_modules/type-fest/source/set-return-type.d.ts +29 -0
  711. data/payload/node_modules/type-fest/source/simplify.d.ts +4 -0
  712. data/payload/node_modules/type-fest/source/stringified.d.ts +21 -0
  713. data/payload/node_modules/type-fest/source/tsconfig-json.d.ts +870 -0
  714. data/payload/node_modules/type-fest/source/typed-array.d.ts +15 -0
  715. data/payload/node_modules/type-fest/source/union-to-intersection.d.ts +58 -0
  716. data/payload/node_modules/type-fest/source/utilities.d.ts +5 -0
  717. data/payload/node_modules/type-fest/source/value-of.d.ts +40 -0
  718. data/payload/node_modules/type-fest/ts41/camel-case.d.ts +64 -0
  719. data/payload/node_modules/type-fest/ts41/delimiter-case.d.ts +85 -0
  720. data/payload/node_modules/type-fest/ts41/get.d.ts +131 -0
  721. data/payload/node_modules/type-fest/ts41/index.d.ts +10 -0
  722. data/payload/node_modules/type-fest/ts41/kebab-case.d.ts +36 -0
  723. data/payload/node_modules/type-fest/ts41/pascal-case.d.ts +36 -0
  724. data/payload/node_modules/type-fest/ts41/snake-case.d.ts +35 -0
  725. data/payload/node_modules/type-fest/ts41/utilities.d.ts +8 -0
  726. data/payload/node_modules/undici-types/LICENSE +21 -0
  727. data/payload/node_modules/undici-types/README.md +6 -0
  728. data/payload/node_modules/undici-types/agent.d.ts +31 -0
  729. data/payload/node_modules/undici-types/api.d.ts +43 -0
  730. data/payload/node_modules/undici-types/balanced-pool.d.ts +29 -0
  731. data/payload/node_modules/undici-types/cache.d.ts +36 -0
  732. data/payload/node_modules/undici-types/client.d.ts +108 -0
  733. data/payload/node_modules/undici-types/connector.d.ts +34 -0
  734. data/payload/node_modules/undici-types/content-type.d.ts +21 -0
  735. data/payload/node_modules/undici-types/cookies.d.ts +28 -0
  736. data/payload/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  737. data/payload/node_modules/undici-types/dispatcher.d.ts +256 -0
  738. data/payload/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  739. data/payload/node_modules/undici-types/errors.d.ts +149 -0
  740. data/payload/node_modules/undici-types/eventsource.d.ts +61 -0
  741. data/payload/node_modules/undici-types/fetch.d.ts +209 -0
  742. data/payload/node_modules/undici-types/file.d.ts +39 -0
  743. data/payload/node_modules/undici-types/filereader.d.ts +54 -0
  744. data/payload/node_modules/undici-types/formdata.d.ts +108 -0
  745. data/payload/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  746. data/payload/node_modules/undici-types/global-origin.d.ts +7 -0
  747. data/payload/node_modules/undici-types/handlers.d.ts +15 -0
  748. data/payload/node_modules/undici-types/header.d.ts +4 -0
  749. data/payload/node_modules/undici-types/index.d.ts +71 -0
  750. data/payload/node_modules/undici-types/interceptors.d.ts +17 -0
  751. data/payload/node_modules/undici-types/mock-agent.d.ts +50 -0
  752. data/payload/node_modules/undici-types/mock-client.d.ts +25 -0
  753. data/payload/node_modules/undici-types/mock-errors.d.ts +12 -0
  754. data/payload/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  755. data/payload/node_modules/undici-types/mock-pool.d.ts +25 -0
  756. data/payload/node_modules/undici-types/package.json +55 -0
  757. data/payload/node_modules/undici-types/patch.d.ts +33 -0
  758. data/payload/node_modules/undici-types/pool-stats.d.ts +19 -0
  759. data/payload/node_modules/undici-types/pool.d.ts +39 -0
  760. data/payload/node_modules/undici-types/proxy-agent.d.ts +28 -0
  761. data/payload/node_modules/undici-types/readable.d.ts +65 -0
  762. data/payload/node_modules/undici-types/retry-agent.d.ts +8 -0
  763. data/payload/node_modules/undici-types/retry-handler.d.ts +116 -0
  764. data/payload/node_modules/undici-types/util.d.ts +18 -0
  765. data/payload/node_modules/undici-types/webidl.d.ts +228 -0
  766. data/payload/node_modules/undici-types/websocket.d.ts +150 -0
  767. data/payload/node_modules/widest-line/index.d.ts +21 -0
  768. data/payload/node_modules/widest-line/index.js +16 -0
  769. data/payload/node_modules/widest-line/license +9 -0
  770. data/payload/node_modules/widest-line/package.json +54 -0
  771. data/payload/node_modules/widest-line/readme.md +34 -0
  772. data/payload/node_modules/wordwrap/LICENSE +18 -0
  773. data/payload/node_modules/wordwrap/README.markdown +70 -0
  774. data/payload/node_modules/wordwrap/example/center.js +10 -0
  775. data/payload/node_modules/wordwrap/example/meat.js +3 -0
  776. data/payload/node_modules/wordwrap/index.js +76 -0
  777. data/payload/node_modules/wordwrap/package.json +34 -0
  778. data/payload/node_modules/wordwrap/test/break.js +32 -0
  779. data/payload/node_modules/wordwrap/test/idleness.txt +63 -0
  780. data/payload/node_modules/wordwrap/test/wrap.js +33 -0
  781. data/payload/node_modules/wrap-ansi/index.js +186 -0
  782. data/payload/node_modules/wrap-ansi/license +9 -0
  783. data/payload/node_modules/wrap-ansi/package.json +61 -0
  784. data/payload/node_modules/wrap-ansi/readme.md +97 -0
  785. data/payload/node_modules/wsl-utils/index.d.ts +180 -0
  786. data/payload/node_modules/wsl-utils/index.js +140 -0
  787. data/payload/node_modules/wsl-utils/license +9 -0
  788. data/payload/node_modules/wsl-utils/package.json +48 -0
  789. data/payload/node_modules/wsl-utils/readme.md +223 -0
  790. data/payload/node_modules/wsl-utils/utilities.js +19 -0
  791. data/payload/node_modules/yoctocolors-cjs/index.d.ts +94 -0
  792. data/payload/node_modules/yoctocolors-cjs/index.js +98 -0
  793. data/payload/node_modules/yoctocolors-cjs/license +9 -0
  794. data/payload/node_modules/yoctocolors-cjs/package.json +67 -0
  795. data/payload/node_modules/yoctocolors-cjs/readme.md +130 -0
  796. data/payload/oclif.manifest.json +793 -0
  797. data/payload/package.json +80 -0
  798. metadata +809 -35
  799. data/Gemfile +0 -19
  800. data/Gemfile.lock +0 -78
  801. data/LICENSE.md +0 -7
  802. data/bin/avo +0 -9
  803. data/bin/rspec +0 -4
  804. data/lib/avo_cli/cli.rb +0 -60
  805. data/lib/avo_cli/rules/base.rb +0 -31
  806. data/lib/avo_cli/rules/fields_as_class_methods.rb +0 -14
  807. data/lib/avo_cli/scanner.rb +0 -42
  808. data/lib/avo_cli/scanners/base.rb +0 -13
  809. data/lib/avo_cli/scanners/resource_scanner.rb +0 -27
  810. data/lib/avo_cli/version.rb +0 -3
  811. data/lib/avo_cli.rb +0 -23
  812. data/lib/support.rb +0 -52
  813. data/linter.png +0 -0
  814. data/readme.md +0 -40
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bdc9cde344da7e9b78fec834dc6669b962ec8d38dc8395e82bd7474d19443150
4
- data.tar.gz: 43f5a3687bcf7b8b8522b21ebcdb920b6663ef46668cd2a46a65c5805d9c185e
3
+ metadata.gz: 6f24dba82a6ca98e2baa9134593d6dc8fb2942da23862e3e0d72a832537f7804
4
+ data.tar.gz: 4f42e13cfdadea6850706cb5356213d94616dfc7c54261213f3ad3b95540515e
5
5
  SHA512:
6
- metadata.gz: 6dad703e9fe4078220fd5f7e2c13c557a2409f62fba4f10b311cf39c4ac5891533884ba8d6691490b5557dfb8658fd22e3ddd0827d9117e728a98c6382208237
7
- data.tar.gz: 9588be062d50b08c33680aabc4284a8976ac0425f6ba35984fc0937b714d54f839a793266a60cb1f8a3161a9284182e957a6a92f29d82d954f56f5d63a3cf64c
6
+ metadata.gz: b495f6dd2dd9adb67fbff3466f60b8fb8e0b0c22bffc5e6c69900d0c30ff51bec20ff3376d3c2a7577339aec16d9815648eda5ef5b24f163dd8073838a038b0f
7
+ data.tar.gz: 1daf72e9176eb3b9d6de7613af88b07e349643928a50c27a7ed09c797e97b373e5327e342e38756c16eec0683228ee25bd386c166c27b3276ee1f54ad44380c6
data/README.md ADDED
@@ -0,0 +1,612 @@
1
+ # avo-cli
2
+
3
+ Command line client for the [Avo REST API](https://docs.avohq.io/4.0/rest-api.html).
4
+ It talks to any Rails app running `avo-api`; nothing is installed in the app.
5
+
6
+ Status: every command works against any app running `avo-api`, and the docs
7
+ site describes them. It ships as a Ruby gem that runs the built client on the
8
+ machine's Node ([docs/install.md](docs/install.md)); the gem builds and installs
9
+ locally and has not been released yet. What is left is in
10
+ [docs/plans/v1-todo.md](docs/plans/v1-todo.md).
11
+
12
+ ## Requirements
13
+
14
+ - Running the CLI: Node 18.12.1 or newer. 18.0 fails at startup on a missing
15
+ `node:fs/promises` export. The installed gem also needs Ruby 3.0 or newer,
16
+ for the `avo` executable that finds Node and hands the line over.
17
+ - Developing it: Node 22.13 or newer (`.node-version` pins it). The lint toolchain
18
+ (`@typescript-eslint` → `eslint-visitor-keys@5`) refuses anything older.
19
+ - yarn
20
+
21
+ ## Install (development)
22
+
23
+ ```sh
24
+ cd gems/avo-cli
25
+ yarn install
26
+ ./bin/dev.js --version
27
+ ```
28
+
29
+ `./bin/dev.js` runs the TypeScript sources directly through tsx.
30
+ `./bin/run.js` runs the compiled `dist/` after `yarn build`. The installed gem's
31
+ `avo` runs that same `run.js`, from the `payload/` the gem carries. To build the
32
+ gem and install it locally, see [docs/distribution.md](docs/distribution.md) §6.
33
+
34
+ ## Configuration
35
+
36
+ Log in once and every later command knows the app:
37
+
38
+ ```sh
39
+ avo login # asks for the host, the token and the API version (Enter for v1), checks them, saves them
40
+ avo schema # works in any terminal from here on
41
+ avo logout # deletes what was saved
42
+ ```
43
+
44
+ `avo login` saves to `~/.config/avo/config.json` (`$XDG_CONFIG_HOME/avo` when
45
+ set, `%LOCALAPPDATA%\avo` on Windows), readable by your user only. The token is
46
+ stored as plain text, like `~/.bundle/config`, so use a token you can revoke.
47
+
48
+ The host is the API base URL: the address `avo-api` answers on, mount path
49
+ included, exactly what you would paste into Postman before `/resources/...`.
50
+ An app that mounts it the usual way is `http://localhost:3000/api`; one that
51
+ mounts it elsewhere, say `mount_avo_api at: "avo"`, is
52
+ `http://localhost:3000/avo`. The CLI appends only `/resources/<version>/<path>`
53
+ and guesses no mount, so the address that works in a browser works here.
54
+
55
+ For CI and scripts, skip `login` and set the variables. A flag wins over its
56
+ variable, and either wins over what was saved. The saved host and token are
57
+ used only together: name a host or a token yourself and the saved pair is left
58
+ out, so a saved token never reaches another host. The saved API version goes
59
+ with them: `avo login --api-version v2` once, and later commands use `v2`.
60
+
61
+ | Variable | Flag | Default | Purpose |
62
+ | ----------------- | --------------- | ------- | ------------------------------------------------------------------- |
63
+ | `AVO_API_HOST` | `--host` | none | API base URL, mount path included, e.g. `http://localhost:3000/api` |
64
+ | `AVO_API_TOKEN` | `--token` | none | API token secret, sent as `Authorization: Bearer` |
65
+ | `AVO_API_VERSION` | `--api-version` | `v1` | API version segment of the URL, saved by `login` |
66
+
67
+ ## Commands
68
+
69
+ The gem is not released yet, so there is no `avo` on anyone's PATH: every
70
+ example here runs the source through `./bin/dev.js`. The generated reference
71
+ further down prints `avo`, the released name. These examples are swept to it
72
+ when the gem ships.
73
+
74
+ ```sh
75
+ ./bin/dev.js schema # what the token may reach, as a table
76
+ ./bin/dev.js schema --format json # the _schema body, byte for byte
77
+ ./bin/dev.js schema users # the fields a create sends, with required
78
+ ./bin/dev.js schema users --view show # the fields a record reads back
79
+ ./bin/dev.js list users # first page, one row per record
80
+ ./bin/dev.js list users --page 2 --per-page 10 # paging
81
+ ./bin/dev.js list users --sort name --dir desc # sorting, server side
82
+ ./bin/dev.js list users --fields id,name,email # pick the columns
83
+ ./bin/dev.js get users 5 # one record, field by field
84
+ ./bin/dev.js get users 5 --format json # the body, byte for byte
85
+ ./bin/dev.js get users 5 --verbose # request and response lines on stderr
86
+ ./bin/dev.js create users --data '{"name": "Ada", "email": "ada@example.com"}'
87
+ ./bin/dev.js update users 5 --data '{"name": "Ada King", "bio": null}' # null clears
88
+ ./bin/dev.js create users --data @user.json # the object from a file
89
+ ./bin/dev.js update users 5 --data - < user.json # the object from stdin
90
+ ./bin/dev.js delete users 5 # no confirmation, see below
91
+ ./bin/dev.js login # save the host, token and API version
92
+ ./bin/dev.js logout # delete what login saved
93
+ ```
94
+
95
+ ### Grammar
96
+
97
+ Every line has the same shape:
98
+
99
+ ```
100
+ ./bin/dev.js <verb> <resource> [id] [flags]
101
+ ```
102
+
103
+ There are six verbs: `schema`, `list`, `get`, `create`, `update` and `delete`.
104
+ The resource is always an argument, never a command, because route keys come
105
+ from the app being talked to and only after an HTTP call. `login` and `logout`
106
+ are the two commands outside the grammar: they take no resource
107
+ ([Configuration](#configuration)).
108
+
109
+ `./bin/dev.js --help` lists the six verbs, with `login`, `logout` and `help`
110
+ beside them, and `./bin/dev.js get --help` shows one. A line that names no
111
+ command prints the usage above, with a did-you-mean when the typo is close to
112
+ something real.
113
+
114
+ Each verb has a one-letter shortcut — `s l g c u d`, in the order listed above
115
+ — in the same slot, so `./bin/dev.js l users` is `list users`. They are hidden
116
+ aliases: help, the reference below and the error messages all keep to the full
117
+ spelling, and nothing else about the grammar bends. `./bin/dev.js users l` is
118
+ refused like any other line that puts the resource first.
119
+
120
+ ### Output
121
+
122
+ A table is plain text, two spaces between columns. `--fields` picks the
123
+ columns and lays a table out in the flag's order; a single `get` reads down
124
+ the page in the record's own order. A cell is one line: `-` for null and
125
+ empty, a list joined with `, `, an object — an association included — as its
126
+ JSON, and anything past 40 characters cut with `…`.
127
+
128
+ `--format json` prints the body exactly as the server sent it and ignores
129
+ `--fields`; `table` is the default. `--verbose` logs each request and
130
+ response line to stderr, so `--format json --verbose | jq` still works.
131
+
132
+ ### Writing fields
133
+
134
+ Fields are one JSON object, given through `--data` (`-d`): the JSON itself,
135
+ `@path` to read it from a file, or `-` to read stdin. Every key is a field as
136
+ `schema <resource>` lists them. JSON carries its own types, so nothing is
137
+ converted — a value is sent as written. Before sending, the CLI reads the
138
+ resource's form view: for the key the body nests under, for the `file` refusal
139
+ below, and for the two values the wire wants in another form. What each field
140
+ takes:
141
+
142
+ | The view says | You write | Sent |
143
+ | ------------------------------------------------- | ----------------------------------------------- | --------------------------------------- |
144
+ | `shape: array` | `"roles": ["editor", "reviewer"]` | as written; `null` sends `[]` |
145
+ | `shape: hash`, `keys: [latitude, longitude]` | `"coordinates": {"latitude": 44.4, …}` | as written; `null` sends every key null |
146
+ | polymorphic `belongs_to`, two scalars | `"reactable_type": "Post", "reactable_id": 7` | as written |
147
+ | `type: key_value` or `type: code` | `"settings": {"theme": "dark"}` | the object as a JSON string |
148
+ | `type: tags` | `"skills": "ruby,rails"` | the string; the field splits it |
149
+ | anything else | `"active": false`, `"birth_date": "1985-03-04"` | as written; the app casts |
150
+
151
+ Refused with exit `2`, before any request: `--data` that is not valid JSON or
152
+ not one object, and an `@path` that cannot be read. Refused once the view is
153
+ read, before the write: a `file` or `files` field, which needs a multipart
154
+ upload the CLI does not send. Nothing else is checked against the view: the API
155
+ validates a write, so an empty object, a field the view does not list or a
156
+ value outside a field's `options` goes out as written and the server answers.
157
+ An empty object is a `400`. A value outside a field's `options` is written as
158
+ given, or a `500` where a Rails enum raises on it, and a misspelled field name
159
+ or a value of the wrong shape is mostly dropped by the app's strong params
160
+ without a word — the write exits `0` with that field unchanged — until
161
+ [AVO-1804](https://linear.app/avo-hq/issue/AVO-1804) makes the API answer those
162
+ too. Read the record back when it matters.
163
+ [docs/field-types.md](docs/field-types.md) is the full table, type by type.
164
+
165
+ Quote the object in single quotes: the shell reads the line first, and an
166
+ unquoted `{"a":1,"b":2}` is a brace expansion that silently splits in two.
167
+ When the quoting gets in the way — a value holding a quote, or an object too
168
+ long for one line — write the JSON to a file and pass `--data @user.json`, or
169
+ pipe it in with `--data -`.
170
+
171
+ A `code` field takes its JSON as a string. Whether the field parses that string
172
+ on the way in is a write transform the view does not publish — it describes the
173
+ value a write sends, not what the field does with it afterwards — so over a
174
+ JSON column the string lands double-encoded unless the resource declares
175
+ `pretty_generated: true`. Setting such a field replaces the whole column;
176
+ nothing is merged.
177
+
178
+ `schema users` lists the fields a create may send, each with every key the
179
+ view publishes for it: its `type`, whether it is `required`, its `shape`, and
180
+ `options` or `keys` where it has them. `--view update` does the same for an
181
+ update, and `--view index` or `--view show` list what a record comes back
182
+ with, as `id` and `type`. The views are named by the API action they describe,
183
+ the same words `schema` shows under `entitlements`. The answer is always for
184
+ one view, never a merge of several, and each view needs the entitlement of the
185
+ request it describes: a read-only token gets `index` and `show`, and on
186
+ `create` and `update` a `403` the CLI relays like any other. A view the API
187
+ does not serve is refused by the API, which names the ones it has. A
188
+ `belongs_to` is listed by the key the body sets it through, `team_id`.
189
+
190
+ `delete` has no body, so it reads no view and sends straight away. The server
191
+ answers every request, and a refusal comes back as a `403` whose `reason` says
192
+ which side to widen, `token_entitlement` or `policy`. The CLI names the request
193
+ it made and relays the reason as it came:
194
+
195
+ ```
196
+ › Error: Forbidden: DELETE /api/resources/v1/users/5 was refused (reason: token_entitlement).
197
+ ```
198
+
199
+ `delete` asks for no confirmation: an agent or a CI job has no terminal to
200
+ answer a prompt on, and the line already names the record. A confirmation
201
+ step is parked for after v1.
202
+
203
+ ### Errors
204
+
205
+ Every error is one sentence naming what to change, on stderr. A `404` is the
206
+ one message whatever the cause — a mistyped resource, a missing id, an app
207
+ without `avo-api` mounted or licensed — because the API does not yet say which,
208
+ and the CLI does not guess. `schema` lists the names this token may reach:
209
+
210
+ ```
211
+ › Error: Not found: http://localhost:3030/api/resources/v1/user.
212
+ › Check the resource name and the API version, and that the app has avo-api mounted and licensed.
213
+ ```
214
+
215
+ A line that names no command is answered with the one grammar there is, and a
216
+ correction above it when the typo is close to something real:
217
+
218
+ ```
219
+ › Error: command lst users not found
220
+ › Did you mean: avo list?
221
+ › Usage: avo <verb> <resource> [id] [flags]
222
+ ```
223
+
224
+ A `422` lists what the app refused, one line per field:
225
+
226
+ ```
227
+ › Error: Failed to create User
228
+ › name: can't be blank
229
+ › email: has already been taken
230
+ ```
231
+
232
+ A wrong secret, an expired token and a revoked one all read the same
233
+ `Unauthorized`: the server does not say which, since saying would confirm a
234
+ guessed secret.
235
+
236
+ A redirect is reported and never followed, since the token would not survive
237
+ it. It is usually `http://` on an app that forces `https://`:
238
+
239
+ ```
240
+ › Error: http://app.example.com redirected to https://app.example.com/api/resources/v1/_schema. Use the address it points to as the host.
241
+ ```
242
+
243
+ ### Exit codes
244
+
245
+ | Code | Meaning |
246
+ | ----- | -------------------------------------------------------------------------------------------- |
247
+ | `0` | Success |
248
+ | `1` | The request failed: refused (400, 401, 403, 404, 422, 5xx), redirected, unreachable, timeout |
249
+ | `2` | Usage: the line or the setup was wrong, and nothing was written |
250
+ | `130` | Interrupted: Ctrl-C at an `avo login` prompt, with nothing saved |
251
+
252
+ Exit `1` also covers an answer that is not avo-api's: a `200` without the
253
+ `records`, `record` or schema the endpoint promises. Exit `2` is an unknown
254
+ command, a bad flag, `--view` with no resource, an empty id, a missing host or
255
+ token, a host without `http://` or `https://` or with a username and password
256
+ in it, a token holding a character a header cannot carry, `--data` that is not
257
+ one JSON object or names a file that cannot be read, and a `file` field. It is
258
+ also a saved login that cannot be read, written or parsed, `avo login` with a
259
+ value left to ask for and no terminal to ask on, and the installed gem finding
260
+ no Node, or one older than 18.12.1.
261
+
262
+ <!-- commands -->
263
+ * [`avo create RESOURCE`](#avo-create-resource)
264
+ * [`avo delete RESOURCE ID`](#avo-delete-resource-id)
265
+ * [`avo get RESOURCE ID`](#avo-get-resource-id)
266
+ * [`avo help [COMMAND]`](#avo-help-command)
267
+ * [`avo list RESOURCE`](#avo-list-resource)
268
+ * [`avo login`](#avo-login)
269
+ * [`avo logout`](#avo-logout)
270
+ * [`avo schema [RESOURCE]`](#avo-schema-resource)
271
+ * [`avo update RESOURCE ID`](#avo-update-resource-id)
272
+
273
+ ## `avo create RESOURCE`
274
+
275
+ Create a record from one JSON object of fields
276
+
277
+ ```
278
+ USAGE
279
+ $ avo create RESOURCE -d json|@path|- [--api-version <value>] [--host <value>] [--token <value>]
280
+ [--verbose] [--format table|json] [--fields field,field]
281
+
282
+ ARGUMENTS
283
+ RESOURCE A resource by its route key, as `schema` lists them
284
+
285
+ FLAGS
286
+ -d, --data=json|@path|- (required) Fields to write, as one JSON object; @path reads it from a file, - from stdin
287
+
288
+ CONNECTION FLAGS
289
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
290
+ then v1
291
+ --host=<value> [env: AVO_API_HOST] API base URL, including the mount path, e.g. http://localhost:3000/api
292
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
293
+
294
+ OUTPUT FLAGS
295
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
296
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
297
+ <options: table|json>
298
+ --verbose Log each request and response line to stderr
299
+
300
+ DESCRIPTION
301
+ Create a record from one JSON object of fields
302
+
303
+ EXAMPLES
304
+ $ avo create users --data '{"name": "Ada Lovelace", "email": "ada@example.com"}'
305
+
306
+ $ avo create users --data '{"name": "Ada", "active": true, "roles": ["editor", "reviewer"]}'
307
+
308
+ $ avo create comments --data '{"body": "Hi", "commentable_type": "Post", "commentable_id": 7}'
309
+
310
+ $ avo create users --data @user.json
311
+
312
+ $ avo create users --data - < user.json
313
+
314
+ $ avo create users --data '{"name": "Ada"}' --format json
315
+ ```
316
+
317
+ ## `avo delete RESOURCE ID`
318
+
319
+ Delete a record
320
+
321
+ ```
322
+ USAGE
323
+ $ avo delete RESOURCE ID [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
324
+ table|json]
325
+
326
+ ARGUMENTS
327
+ RESOURCE A resource by its route key, as `schema` lists them
328
+ ID Record id
329
+
330
+ CONNECTION FLAGS
331
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
332
+ then v1
333
+ --host=<value> [env: AVO_API_HOST] API base URL, including the mount path, e.g. http://localhost:3000/api
334
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
335
+
336
+ OUTPUT FLAGS
337
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
338
+ <options: table|json>
339
+ --verbose Log each request and response line to stderr
340
+
341
+ DESCRIPTION
342
+ Delete a record
343
+
344
+ EXAMPLES
345
+ $ avo delete users 5
346
+
347
+ $ avo delete users 5 --format json
348
+ ```
349
+
350
+ ## `avo get RESOURCE ID`
351
+
352
+ Show one record
353
+
354
+ ```
355
+ USAGE
356
+ $ avo get RESOURCE ID [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
357
+ table|json] [--fields field,field]
358
+
359
+ ARGUMENTS
360
+ RESOURCE A resource by its route key, as `schema` lists them
361
+ ID Record id
362
+
363
+ CONNECTION FLAGS
364
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
365
+ then v1
366
+ --host=<value> [env: AVO_API_HOST] API base URL, including the mount path, e.g. http://localhost:3000/api
367
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
368
+
369
+ OUTPUT FLAGS
370
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
371
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
372
+ <options: table|json>
373
+ --verbose Log each request and response line to stderr
374
+
375
+ DESCRIPTION
376
+ Show one record
377
+
378
+ EXAMPLES
379
+ $ avo get users 5
380
+
381
+ $ avo get users 5 --fields name,email
382
+
383
+ $ avo get users 5 --format json
384
+ ```
385
+
386
+ ## `avo help [COMMAND]`
387
+
388
+ Display help for avo.
389
+
390
+ ```
391
+ USAGE
392
+ $ avo help [COMMAND...] [-n]
393
+
394
+ ARGUMENTS
395
+ [COMMAND...] Command to show help for.
396
+
397
+ FLAGS
398
+ -n, --nested-commands Include all nested commands in the output.
399
+
400
+ DESCRIPTION
401
+ Display help for avo.
402
+ ```
403
+
404
+ ## `avo list RESOURCE`
405
+
406
+ List the records of a resource, one page at a time
407
+
408
+ ```
409
+ USAGE
410
+ $ avo list RESOURCE [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
411
+ table|json] [--dir <value> --sort <value>] [--fields field,field] [--page <value>] [--per-page <value>]
412
+
413
+ ARGUMENTS
414
+ RESOURCE A resource by its route key, as `schema` lists them
415
+
416
+ FLAGS
417
+ --dir=<value> Sort direction: asc or desc
418
+ --page=<value> Page number, starting at 1
419
+ --per-page=<value> Records per page (default: the app's Avo setting)
420
+ --sort=<value> Field to sort by
421
+
422
+ CONNECTION FLAGS
423
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
424
+ then v1
425
+ --host=<value> [env: AVO_API_HOST] API base URL, including the mount path, e.g. http://localhost:3000/api
426
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
427
+
428
+ OUTPUT FLAGS
429
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
430
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
431
+ <options: table|json>
432
+ --verbose Log each request and response line to stderr
433
+
434
+ DESCRIPTION
435
+ List the records of a resource, one page at a time
436
+
437
+ EXAMPLES
438
+ $ avo list users
439
+
440
+ $ avo list users --page 2 --per-page 10
441
+
442
+ $ avo list users --sort name --dir desc
443
+
444
+ $ avo list users --fields id,name,email
445
+
446
+ $ avo list users --format json
447
+ ```
448
+
449
+ ## `avo login`
450
+
451
+ Save a host, an API token and the API version, so later commands need none of them
452
+
453
+ ```
454
+ USAGE
455
+ $ avo login [--api-version <value>] [--host <value>] [--token <value>] [--verbose]
456
+
457
+ CONNECTION FLAGS
458
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
459
+ then v1
460
+ --host=<value> [env: AVO_API_HOST] API base URL, including the mount path, e.g. http://localhost:3000/api
461
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
462
+
463
+ OUTPUT FLAGS
464
+ --verbose Log each request and response line to stderr
465
+
466
+ DESCRIPTION
467
+ Save a host, an API token and the API version, so later commands need none of them
468
+
469
+ EXAMPLES
470
+ $ avo login
471
+
472
+ $ avo login --host http://localhost:3000/api
473
+
474
+ $ avo login --host http://localhost:3000/api --token avo_...
475
+
476
+ $ avo login --api-version v2
477
+ ```
478
+
479
+ ## `avo logout`
480
+
481
+ Delete the saved host and token. AVO_API_HOST and AVO_API_TOKEN set in the environment are not affected
482
+
483
+ ```
484
+ USAGE
485
+ $ avo logout
486
+
487
+ DESCRIPTION
488
+ Delete the saved host and token. AVO_API_HOST and AVO_API_TOKEN set in the environment are not affected
489
+
490
+ EXAMPLES
491
+ $ avo logout
492
+ ```
493
+
494
+ ## `avo schema [RESOURCE]`
495
+
496
+ List the resources the API serves, or the fields of one resource on one view
497
+
498
+ ```
499
+ USAGE
500
+ $ avo schema [RESOURCE] [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
501
+ table|json] [--view <value>]
502
+
503
+ ARGUMENTS
504
+ [RESOURCE] A resource by its route key; with none, the resources the API serves are listed
505
+
506
+ FLAGS
507
+ --view=<value> Which view's fields: create/update list what a write may send, with required; index/show what a record
508
+ reads back (default: create)
509
+
510
+ CONNECTION FLAGS
511
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
512
+ then v1
513
+ --host=<value> [env: AVO_API_HOST] API base URL, including the mount path, e.g. http://localhost:3000/api
514
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
515
+
516
+ OUTPUT FLAGS
517
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
518
+ <options: table|json>
519
+ --verbose Log each request and response line to stderr
520
+
521
+ DESCRIPTION
522
+ List the resources the API serves, or the fields of one resource on one view
523
+
524
+ EXAMPLES
525
+ $ avo schema
526
+
527
+ $ avo schema --format json
528
+
529
+ $ avo schema users
530
+
531
+ $ avo schema users --view show
532
+
533
+ $ avo schema --host http://localhost:3000/api --token avo_...
534
+ ```
535
+
536
+ ## `avo update RESOURCE ID`
537
+
538
+ Update a record from one JSON object of fields; every field not given is left as it is
539
+
540
+ ```
541
+ USAGE
542
+ $ avo update RESOURCE ID -d json|@path|- [--api-version <value>] [--host <value>] [--token <value>]
543
+ [--verbose] [--format table|json] [--fields field,field]
544
+
545
+ ARGUMENTS
546
+ RESOURCE A resource by its route key, as `schema` lists them
547
+ ID Record id
548
+
549
+ FLAGS
550
+ -d, --data=json|@path|- (required) Fields to write, as one JSON object; @path reads it from a file, - from stdin
551
+
552
+ CONNECTION FLAGS
553
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
554
+ then v1
555
+ --host=<value> [env: AVO_API_HOST] API base URL, including the mount path, e.g. http://localhost:3000/api
556
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
557
+
558
+ OUTPUT FLAGS
559
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
560
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
561
+ <options: table|json>
562
+ --verbose Log each request and response line to stderr
563
+
564
+ DESCRIPTION
565
+ Update a record from one JSON object of fields; every field not given is left as it is
566
+
567
+ EXAMPLES
568
+ $ avo update users 5 --data '{"name": "Ada King"}'
569
+
570
+ $ avo update users 5 --data '{"active": false, "age": 36}'
571
+
572
+ $ avo update users 5 --data '{"bio": null, "roles": []}'
573
+
574
+ $ avo update users 5 --data @user.json
575
+
576
+ $ avo update users 5 --data - < user.json
577
+
578
+ $ avo update users 5 --data '{"name": "Ada"}' --format json
579
+ ```
580
+ <!-- commandsstop -->
581
+
582
+ ## Development
583
+
584
+ ```sh
585
+ cd gems/avo-cli
586
+ node --version # 22.13 or newer, per `.node-version`
587
+
588
+ yarn build # compile src/ to dist/
589
+ yarn test # mocha, then typecheck and eslint (posttest)
590
+ yarn typecheck # tsc over src/ and test/, writing nothing
591
+ yarn lint
592
+ ```
593
+
594
+ Narrower runs, when the whole suite is more than you need:
595
+
596
+ ```sh
597
+ yarn mocha test/commands/list.test.ts # one file
598
+ yarn mocha "test/**/*.test.ts" --grep "404" # every test whose name matches
599
+ ```
600
+
601
+ Tests never reach the network: HTTP is stubbed with undici's `MockAgent`,
602
+ which Node's built-in `fetch` honours (see `test/http.test.ts`).
603
+
604
+ The command reference above is generated by `oclif readme` and regenerated on
605
+ `yarn version` and on pack. After changing a command's description, flags or
606
+ examples, run `yarn build && yarn oclif readme --no-source-links` and commit
607
+ the result. The flag matters: without it the reference links into the private
608
+ workspace repository, which `test/readme.test.ts` refuses.
609
+
610
+ To run the CLI against a real app, command by command, with the expected
611
+ output and every way a line can fail, follow
612
+ [docs/manual-testing.md](docs/manual-testing.md).
data/avo-cli.gemspec CHANGED
@@ -1,28 +1,27 @@
1
- require_relative "lib/avo_cli/version"
1
+ require_relative "lib/avo/cli/version"
2
2
 
3
3
  Gem::Specification.new do |spec|
4
- spec.name = "avo-cli"
5
- spec.version = AvoCli::VERSION
6
- spec.summary = "CLI to help with common tasks for Avo CMS such as linting."
7
- spec.description = "CLI to help with common tasks for Avo CMS such as linting."
8
- spec.authors = ["Adrian Marin"]
9
- spec.email = "adrian@adrianthedev.com"
10
- spec.files = Dir["{bin,lib}/**/*", "LICENSE.MD", "readme.md", "avo-cli.gemspec", "Gemfile", "Gemfile.lock", "linter.png"]
11
- spec.homepage = "https://avohq.io"
12
- spec.license = "MIT"
4
+ spec.name = "avo-cli"
5
+ spec.version = Avo::Cli::VERSION
6
+ spec.authors = ["Avo"]
7
+ spec.email = ["avo@avohq.io"]
8
+ spec.homepage = "https://github.com/avo-hq/avo"
9
+ spec.summary = "Command line client for the Avo REST API"
10
+ spec.description = "Command line client for the Avo REST API"
11
+ spec.license = "Commercial"
13
12
 
14
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
15
- # to allow pushing to a single host or delete this section to allow pushing to any host.
16
- if spec.respond_to?(:metadata)
17
- spec.metadata["bug_tracker_uri"] = "https://github.com/avo-hq/avo-cli/issues"
18
- spec.metadata["changelog_uri"] = "https://github.com/avo-hq/avo-cli/releases"
19
- spec.metadata["documentation_uri"] = "https://github.com/avo-hq/avo-cli"
20
- spec.metadata["homepage_uri"] = "https://avohq.io"
21
- spec.metadata["source_code_uri"] = "https://github.com/avo-hq/avo-cli"
22
- else
23
- raise "RubyGems 2.0 or newer is required to protect against " \
24
- "public gem pushes."
25
- end
13
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
14
+ spec.metadata["homepage_uri"] = spec.homepage
15
+
16
+ spec.required_ruby_version = ">= 3.0"
26
17
 
27
- spec.executables << "avo"
18
+ spec.bindir = "exe"
19
+ spec.executables = ["avo"]
20
+
21
+ # payload/ is gitignored and picked up from disk at pack time. `ws release` runs bin/build_payload in its own phase
22
+ # just before the build; run it by hand before packing this yourself. See docs/distribution.md.
23
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
+ Dir["{exe,lib,payload}/**/*", "README.md", "avo-cli.gemspec"]
25
+ .reject { |f| File.symlink?(File.expand_path(f)) }
26
+ end
28
27
  end
data/exe/avo ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require_relative "../lib/avo/cli/runner"
5
+
6
+ Avo::Cli::Runner.exec(ARGV)