avo-cli 0.0.3 → 4.2.0.beta.1

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 +605 -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 +605 -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 +77 -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 +57 -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: 693a493271a4046b7de64b56c79e7ca47317d53e5f3463f432b4c8f4fdea0368
4
+ data.tar.gz: 42d38d237c710dc2be011924039e0a00eef23b3a754736a71e21f22d6ba8642f
5
5
  SHA512:
6
- metadata.gz: 6dad703e9fe4078220fd5f7e2c13c557a2409f62fba4f10b311cf39c4ac5891533884ba8d6691490b5557dfb8658fd22e3ddd0827d9117e728a98c6382208237
7
- data.tar.gz: 9588be062d50b08c33680aabc4284a8976ac0425f6ba35984fc0937b714d54f839a793266a60cb1f8a3161a9284182e957a6a92f29d82d954f56f5d63a3cf64c
6
+ metadata.gz: 116f8ff946f36dad80ca4c996d699d6951796795c91950e009859e6a60302e45433d8b9cae7f43ff4cdafdbfea702a9defd37d648eb2d5ad3e8afbad7dc75097
7
+ data.tar.gz: c2224fe2ba6074f14270e0bcee03d9129e308b111da3435c6d9607be9276117087025a22eaf9ac4e9eab414903aeeb45921f946f7ddb9c201099358a79c5a065
data/README.md ADDED
@@ -0,0 +1,605 @@
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
+ For CI and scripts, skip `login` and set the variables. A flag wins over its
49
+ variable, and either wins over what was saved. The saved host and token are
50
+ used only together: name a host or a token yourself and the saved pair is left
51
+ out, so a saved token never reaches another host. The saved API version goes
52
+ with them: `avo login --api-version v2` once, and later commands use `v2`.
53
+
54
+ | Variable | Flag | Default | Purpose |
55
+ | ----------------- | --------------- | ------- | -------------------------------------------------- |
56
+ | `AVO_API_HOST` | `--host` | none | Base URL of the app, e.g. `http://localhost:3000` |
57
+ | `AVO_API_TOKEN` | `--token` | none | API token secret, sent as `Authorization: Bearer` |
58
+ | `AVO_API_VERSION` | `--api-version` | `v1` | API version segment of the URL, saved by `login` |
59
+
60
+ ## Commands
61
+
62
+ The gem is not released yet, so there is no `avo` on anyone's PATH: every
63
+ example here runs the source through `./bin/dev.js`. The generated reference
64
+ further down prints `avo`, the released name. These examples are swept to it
65
+ when the gem ships.
66
+
67
+ ```sh
68
+ ./bin/dev.js schema # what the token may reach, as a table
69
+ ./bin/dev.js schema --format json # the _schema body, byte for byte
70
+ ./bin/dev.js schema users # the fields a create sends, with required
71
+ ./bin/dev.js schema users --view show # the fields a record reads back
72
+ ./bin/dev.js list users # first page, one row per record
73
+ ./bin/dev.js list users --page 2 --per-page 10 # paging
74
+ ./bin/dev.js list users --sort name --dir desc # sorting, server side
75
+ ./bin/dev.js list users --fields id,name,email # pick the columns
76
+ ./bin/dev.js get users 5 # one record, field by field
77
+ ./bin/dev.js get users 5 --format json # the body, byte for byte
78
+ ./bin/dev.js get users 5 --verbose # request and response lines on stderr
79
+ ./bin/dev.js create users --data '{"name": "Ada", "email": "ada@example.com"}'
80
+ ./bin/dev.js update users 5 --data '{"name": "Ada King", "bio": null}' # null clears
81
+ ./bin/dev.js create users --data @user.json # the object from a file
82
+ ./bin/dev.js update users 5 --data - < user.json # the object from stdin
83
+ ./bin/dev.js delete users 5 # no confirmation, see below
84
+ ./bin/dev.js login # save the host, token and API version
85
+ ./bin/dev.js logout # delete what login saved
86
+ ```
87
+
88
+ ### Grammar
89
+
90
+ Every line has the same shape:
91
+
92
+ ```
93
+ ./bin/dev.js <verb> <resource> [id] [flags]
94
+ ```
95
+
96
+ There are six verbs: `schema`, `list`, `get`, `create`, `update` and `delete`.
97
+ The resource is always an argument, never a command, because route keys come
98
+ from the app being talked to and only after an HTTP call. `login` and `logout`
99
+ are the two commands outside the grammar: they take no resource
100
+ ([Configuration](#configuration)).
101
+
102
+ `./bin/dev.js --help` lists the six verbs, with `login`, `logout` and `help`
103
+ beside them, and `./bin/dev.js get --help` shows one. A line that names no
104
+ command prints the usage above, with a did-you-mean when the typo is close to
105
+ something real.
106
+
107
+ Each verb has a one-letter shortcut — `s l g c u d`, in the order listed above
108
+ — in the same slot, so `./bin/dev.js l users` is `list users`. They are hidden
109
+ aliases: help, the reference below and the error messages all keep to the full
110
+ spelling, and nothing else about the grammar bends. `./bin/dev.js users l` is
111
+ refused like any other line that puts the resource first.
112
+
113
+ ### Output
114
+
115
+ A table is plain text, two spaces between columns. `--fields` picks the
116
+ columns and lays a table out in the flag's order; a single `get` reads down
117
+ the page in the record's own order. A cell is one line: `-` for null and
118
+ empty, a list joined with `, `, an object — an association included — as its
119
+ JSON, and anything past 40 characters cut with `…`.
120
+
121
+ `--format json` prints the body exactly as the server sent it and ignores
122
+ `--fields`; `table` is the default. `--verbose` logs each request and
123
+ response line to stderr, so `--format json --verbose | jq` still works.
124
+
125
+ ### Writing fields
126
+
127
+ Fields are one JSON object, given through `--data` (`-d`): the JSON itself,
128
+ `@path` to read it from a file, or `-` to read stdin. Every key is a field as
129
+ `schema <resource>` lists them. JSON carries its own types, so nothing is
130
+ converted — a value is sent as written. Before sending, the CLI reads the
131
+ resource's form view: for the key the body nests under, for the `file` refusal
132
+ below, and for the two values the wire wants in another form. What each field
133
+ takes:
134
+
135
+ | The view says | You write | Sent |
136
+ | ------------------------------------------------- | ----------------------------------------------- | --------------------------------------- |
137
+ | `shape: array` | `"roles": ["editor", "reviewer"]` | as written; `null` sends `[]` |
138
+ | `shape: hash`, `keys: [latitude, longitude]` | `"coordinates": {"latitude": 44.4, …}` | as written; `null` sends every key null |
139
+ | polymorphic `belongs_to`, two scalars | `"reactable_type": "Post", "reactable_id": 7` | as written |
140
+ | `type: key_value` or `type: code` | `"settings": {"theme": "dark"}` | the object as a JSON string |
141
+ | `type: tags` | `"skills": "ruby,rails"` | the string; the field splits it |
142
+ | anything else | `"active": false`, `"birth_date": "1985-03-04"` | as written; the app casts |
143
+
144
+ Refused with exit `2`, before any request: `--data` that is not valid JSON or
145
+ not one object, and an `@path` that cannot be read. Refused once the view is
146
+ read, before the write: a `file` or `files` field, which needs a multipart
147
+ upload the CLI does not send. Nothing else is checked against the view: the API
148
+ validates a write, so an empty object, a field the view does not list or a
149
+ value outside a field's `options` goes out as written and the server answers.
150
+ An empty object is a `400`. A value outside a field's `options` is written as
151
+ given, or a `500` where a Rails enum raises on it, and a misspelled field name
152
+ or a value of the wrong shape is mostly dropped by the app's strong params
153
+ without a word — the write exits `0` with that field unchanged — until
154
+ [AVO-1804](https://linear.app/avo-hq/issue/AVO-1804) makes the API answer those
155
+ too. Read the record back when it matters.
156
+ [docs/field-types.md](docs/field-types.md) is the full table, type by type.
157
+
158
+ Quote the object in single quotes: the shell reads the line first, and an
159
+ unquoted `{"a":1,"b":2}` is a brace expansion that silently splits in two.
160
+ When the quoting gets in the way — a value holding a quote, or an object too
161
+ long for one line — write the JSON to a file and pass `--data @user.json`, or
162
+ pipe it in with `--data -`.
163
+
164
+ A `code` field takes its JSON as a string. Whether the field parses that string
165
+ on the way in is a write transform the view does not publish — it describes the
166
+ value a write sends, not what the field does with it afterwards — so over a
167
+ JSON column the string lands double-encoded unless the resource declares
168
+ `pretty_generated: true`. Setting such a field replaces the whole column;
169
+ nothing is merged.
170
+
171
+ `schema users` lists the fields a create may send, each with every key the
172
+ view publishes for it: its `type`, whether it is `required`, its `shape`, and
173
+ `options` or `keys` where it has them. `--view update` does the same for an
174
+ update, and `--view index` or `--view show` list what a record comes back
175
+ with, as `id` and `type`. The views are named by the API action they describe,
176
+ the same words `schema` shows under `entitlements`. The answer is always for
177
+ one view, never a merge of several, and each view needs the entitlement of the
178
+ request it describes: a read-only token gets `index` and `show`, and on
179
+ `create` and `update` a `403` the CLI relays like any other. A view the API
180
+ does not serve is refused by the API, which names the ones it has. A
181
+ `belongs_to` is listed by the key the body sets it through, `team_id`.
182
+
183
+ `delete` has no body, so it reads no view and sends straight away. The server
184
+ answers every request, and a refusal comes back as a `403` whose `reason` says
185
+ which side to widen, `token_entitlement` or `policy`. The CLI names the request
186
+ it made and relays the reason as it came:
187
+
188
+ ```
189
+ › Error: Forbidden: DELETE /api/resources/v1/users/5 was refused (reason: token_entitlement).
190
+ ```
191
+
192
+ `delete` asks for no confirmation: an agent or a CI job has no terminal to
193
+ answer a prompt on, and the line already names the record. A confirmation
194
+ step is parked for after v1.
195
+
196
+ ### Errors
197
+
198
+ Every error is one sentence naming what to change, on stderr. A `404` is the
199
+ one message whatever the cause — a mistyped resource, a missing id, an app
200
+ without `avo-api` mounted or licensed — because the API does not yet say which,
201
+ and the CLI does not guess. `schema` lists the names this token may reach:
202
+
203
+ ```
204
+ › Error: Not found: http://localhost:3030/api/resources/v1/user.
205
+ › Check the resource name and the API version, and that the app has avo-api mounted and licensed.
206
+ ```
207
+
208
+ A line that names no command is answered with the one grammar there is, and a
209
+ correction above it when the typo is close to something real:
210
+
211
+ ```
212
+ › Error: command lst users not found
213
+ › Did you mean: avo list?
214
+ › Usage: avo <verb> <resource> [id] [flags]
215
+ ```
216
+
217
+ A `422` lists what the app refused, one line per field:
218
+
219
+ ```
220
+ › Error: Failed to create User
221
+ › name: can't be blank
222
+ › email: has already been taken
223
+ ```
224
+
225
+ A wrong secret, an expired token and a revoked one all read the same
226
+ `Unauthorized`: the server does not say which, since saying would confirm a
227
+ guessed secret.
228
+
229
+ A redirect is reported and never followed, since the token would not survive
230
+ it. It is usually `http://` on an app that forces `https://`:
231
+
232
+ ```
233
+ › Error: http://app.example.com redirected to https://app.example.com/api/resources/v1/_schema. Use the address it points to as the host.
234
+ ```
235
+
236
+ ### Exit codes
237
+
238
+ | Code | Meaning |
239
+ | ----- | -------------------------------------------------------------------------------------------- |
240
+ | `0` | Success |
241
+ | `1` | The request failed: refused (400, 401, 403, 404, 422, 5xx), redirected, unreachable, timeout |
242
+ | `2` | Usage: the line or the setup was wrong, and nothing was written |
243
+ | `130` | Interrupted: Ctrl-C at an `avo login` prompt, with nothing saved |
244
+
245
+ Exit `1` also covers an answer that is not avo-api's: a `200` without the
246
+ `records`, `record` or schema the endpoint promises. Exit `2` is an unknown
247
+ command, a bad flag, `--view` with no resource, an empty id, a missing host or
248
+ token, a host without `http://` or `https://` or with a username and password
249
+ in it, a token holding a character a header cannot carry, `--data` that is not
250
+ one JSON object or names a file that cannot be read, and a `file` field. It is
251
+ also a saved login that cannot be read, written or parsed, `avo login` with a
252
+ value left to ask for and no terminal to ask on, and the installed gem finding
253
+ no Node, or one older than 18.12.1.
254
+
255
+ <!-- commands -->
256
+ * [`avo create RESOURCE`](#avo-create-resource)
257
+ * [`avo delete RESOURCE ID`](#avo-delete-resource-id)
258
+ * [`avo get RESOURCE ID`](#avo-get-resource-id)
259
+ * [`avo help [COMMAND]`](#avo-help-command)
260
+ * [`avo list RESOURCE`](#avo-list-resource)
261
+ * [`avo login`](#avo-login)
262
+ * [`avo logout`](#avo-logout)
263
+ * [`avo schema [RESOURCE]`](#avo-schema-resource)
264
+ * [`avo update RESOURCE ID`](#avo-update-resource-id)
265
+
266
+ ## `avo create RESOURCE`
267
+
268
+ Create a record from one JSON object of fields
269
+
270
+ ```
271
+ USAGE
272
+ $ avo create RESOURCE -d json|@path|- [--api-version <value>] [--host <value>] [--token <value>]
273
+ [--verbose] [--format table|json] [--fields field,field]
274
+
275
+ ARGUMENTS
276
+ RESOURCE A resource by its route key, as `schema` lists them
277
+
278
+ FLAGS
279
+ -d, --data=json|@path|- (required) Fields to write, as one JSON object; @path reads it from a file, - from stdin
280
+
281
+ CONNECTION FLAGS
282
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
283
+ then v1
284
+ --host=<value> [env: AVO_API_HOST] Base URL of the app, e.g. http://localhost:3000
285
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
286
+
287
+ OUTPUT FLAGS
288
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
289
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
290
+ <options: table|json>
291
+ --verbose Log each request and response line to stderr
292
+
293
+ DESCRIPTION
294
+ Create a record from one JSON object of fields
295
+
296
+ EXAMPLES
297
+ $ avo create users --data '{"name": "Ada Lovelace", "email": "ada@example.com"}'
298
+
299
+ $ avo create users --data '{"name": "Ada", "active": true, "roles": ["editor", "reviewer"]}'
300
+
301
+ $ avo create comments --data '{"body": "Hi", "commentable_type": "Post", "commentable_id": 7}'
302
+
303
+ $ avo create users --data @user.json
304
+
305
+ $ avo create users --data - < user.json
306
+
307
+ $ avo create users --data '{"name": "Ada"}' --format json
308
+ ```
309
+
310
+ ## `avo delete RESOURCE ID`
311
+
312
+ Delete a record
313
+
314
+ ```
315
+ USAGE
316
+ $ avo delete RESOURCE ID [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
317
+ table|json]
318
+
319
+ ARGUMENTS
320
+ RESOURCE A resource by its route key, as `schema` lists them
321
+ ID Record id
322
+
323
+ CONNECTION FLAGS
324
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
325
+ then v1
326
+ --host=<value> [env: AVO_API_HOST] Base URL of the app, e.g. http://localhost:3000
327
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
328
+
329
+ OUTPUT FLAGS
330
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
331
+ <options: table|json>
332
+ --verbose Log each request and response line to stderr
333
+
334
+ DESCRIPTION
335
+ Delete a record
336
+
337
+ EXAMPLES
338
+ $ avo delete users 5
339
+
340
+ $ avo delete users 5 --format json
341
+ ```
342
+
343
+ ## `avo get RESOURCE ID`
344
+
345
+ Show one record
346
+
347
+ ```
348
+ USAGE
349
+ $ avo get RESOURCE ID [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
350
+ table|json] [--fields field,field]
351
+
352
+ ARGUMENTS
353
+ RESOURCE A resource by its route key, as `schema` lists them
354
+ ID Record id
355
+
356
+ CONNECTION FLAGS
357
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
358
+ then v1
359
+ --host=<value> [env: AVO_API_HOST] Base URL of the app, e.g. http://localhost:3000
360
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
361
+
362
+ OUTPUT FLAGS
363
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
364
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
365
+ <options: table|json>
366
+ --verbose Log each request and response line to stderr
367
+
368
+ DESCRIPTION
369
+ Show one record
370
+
371
+ EXAMPLES
372
+ $ avo get users 5
373
+
374
+ $ avo get users 5 --fields name,email
375
+
376
+ $ avo get users 5 --format json
377
+ ```
378
+
379
+ ## `avo help [COMMAND]`
380
+
381
+ Display help for avo.
382
+
383
+ ```
384
+ USAGE
385
+ $ avo help [COMMAND...] [-n]
386
+
387
+ ARGUMENTS
388
+ [COMMAND...] Command to show help for.
389
+
390
+ FLAGS
391
+ -n, --nested-commands Include all nested commands in the output.
392
+
393
+ DESCRIPTION
394
+ Display help for avo.
395
+ ```
396
+
397
+ ## `avo list RESOURCE`
398
+
399
+ List the records of a resource, one page at a time
400
+
401
+ ```
402
+ USAGE
403
+ $ avo list RESOURCE [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
404
+ table|json] [--dir <value> --sort <value>] [--fields field,field] [--page <value>] [--per-page <value>]
405
+
406
+ ARGUMENTS
407
+ RESOURCE A resource by its route key, as `schema` lists them
408
+
409
+ FLAGS
410
+ --dir=<value> Sort direction: asc or desc
411
+ --page=<value> Page number, starting at 1
412
+ --per-page=<value> Records per page (default: the app's Avo setting)
413
+ --sort=<value> Field to sort by
414
+
415
+ CONNECTION FLAGS
416
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
417
+ then v1
418
+ --host=<value> [env: AVO_API_HOST] Base URL of the app, e.g. http://localhost:3000
419
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
420
+
421
+ OUTPUT FLAGS
422
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
423
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
424
+ <options: table|json>
425
+ --verbose Log each request and response line to stderr
426
+
427
+ DESCRIPTION
428
+ List the records of a resource, one page at a time
429
+
430
+ EXAMPLES
431
+ $ avo list users
432
+
433
+ $ avo list users --page 2 --per-page 10
434
+
435
+ $ avo list users --sort name --dir desc
436
+
437
+ $ avo list users --fields id,name,email
438
+
439
+ $ avo list users --format json
440
+ ```
441
+
442
+ ## `avo login`
443
+
444
+ Save a host, an API token and the API version, so later commands need none of them
445
+
446
+ ```
447
+ USAGE
448
+ $ avo login [--api-version <value>] [--host <value>] [--token <value>] [--verbose]
449
+
450
+ CONNECTION FLAGS
451
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
452
+ then v1
453
+ --host=<value> [env: AVO_API_HOST] Base URL of the app, e.g. http://localhost:3000
454
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
455
+
456
+ OUTPUT FLAGS
457
+ --verbose Log each request and response line to stderr
458
+
459
+ DESCRIPTION
460
+ Save a host, an API token and the API version, so later commands need none of them
461
+
462
+ EXAMPLES
463
+ $ avo login
464
+
465
+ $ avo login --host http://localhost:3000
466
+
467
+ $ avo login --host http://localhost:3000 --token avo_...
468
+
469
+ $ avo login --api-version v2
470
+ ```
471
+
472
+ ## `avo logout`
473
+
474
+ Delete the saved host and token. AVO_API_HOST and AVO_API_TOKEN set in the environment are not affected
475
+
476
+ ```
477
+ USAGE
478
+ $ avo logout
479
+
480
+ DESCRIPTION
481
+ Delete the saved host and token. AVO_API_HOST and AVO_API_TOKEN set in the environment are not affected
482
+
483
+ EXAMPLES
484
+ $ avo logout
485
+ ```
486
+
487
+ ## `avo schema [RESOURCE]`
488
+
489
+ List the resources the API serves, or the fields of one resource on one view
490
+
491
+ ```
492
+ USAGE
493
+ $ avo schema [RESOURCE] [--api-version <value>] [--host <value>] [--token <value>] [--verbose] [--format
494
+ table|json] [--view <value>]
495
+
496
+ ARGUMENTS
497
+ [RESOURCE] A resource by its route key; with none, the resources the API serves are listed
498
+
499
+ FLAGS
500
+ --view=<value> Which view's fields: create/update list what a write may send, with required; index/show what a record
501
+ reads back (default: create)
502
+
503
+ CONNECTION FLAGS
504
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
505
+ then v1
506
+ --host=<value> [env: AVO_API_HOST] Base URL of the app, e.g. http://localhost:3000
507
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
508
+
509
+ OUTPUT FLAGS
510
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
511
+ <options: table|json>
512
+ --verbose Log each request and response line to stderr
513
+
514
+ DESCRIPTION
515
+ List the resources the API serves, or the fields of one resource on one view
516
+
517
+ EXAMPLES
518
+ $ avo schema
519
+
520
+ $ avo schema --format json
521
+
522
+ $ avo schema users
523
+
524
+ $ avo schema users --view show
525
+
526
+ $ avo schema --host http://localhost:3000 --token avo_...
527
+ ```
528
+
529
+ ## `avo update RESOURCE ID`
530
+
531
+ Update a record from one JSON object of fields; every field not given is left as it is
532
+
533
+ ```
534
+ USAGE
535
+ $ avo update RESOURCE ID -d json|@path|- [--api-version <value>] [--host <value>] [--token <value>]
536
+ [--verbose] [--format table|json] [--fields field,field]
537
+
538
+ ARGUMENTS
539
+ RESOURCE A resource by its route key, as `schema` lists them
540
+ ID Record id
541
+
542
+ FLAGS
543
+ -d, --data=json|@path|- (required) Fields to write, as one JSON object; @path reads it from a file, - from stdin
544
+
545
+ CONNECTION FLAGS
546
+ --api-version=<value> [env: AVO_API_VERSION] API version segment of the URL; defaults to the one `avo login` saved,
547
+ then v1
548
+ --host=<value> [env: AVO_API_HOST] Base URL of the app, e.g. http://localhost:3000
549
+ --token=<value> [env: AVO_API_TOKEN] API token secret, sent as a Bearer token
550
+
551
+ OUTPUT FLAGS
552
+ --fields=field,field Columns to show, comma-separated, e.g. id,name,email
553
+ --format=<option> [default: table] Output format; `json` prints the body exactly as the server sent it
554
+ <options: table|json>
555
+ --verbose Log each request and response line to stderr
556
+
557
+ DESCRIPTION
558
+ Update a record from one JSON object of fields; every field not given is left as it is
559
+
560
+ EXAMPLES
561
+ $ avo update users 5 --data '{"name": "Ada King"}'
562
+
563
+ $ avo update users 5 --data '{"active": false, "age": 36}'
564
+
565
+ $ avo update users 5 --data '{"bio": null, "roles": []}'
566
+
567
+ $ avo update users 5 --data @user.json
568
+
569
+ $ avo update users 5 --data - < user.json
570
+
571
+ $ avo update users 5 --data '{"name": "Ada"}' --format json
572
+ ```
573
+ <!-- commandsstop -->
574
+
575
+ ## Development
576
+
577
+ ```sh
578
+ cd gems/avo-cli
579
+ node --version # 22.13 or newer, per `.node-version`
580
+
581
+ yarn build # compile src/ to dist/
582
+ yarn test # mocha, then typecheck and eslint (posttest)
583
+ yarn typecheck # tsc over src/ and test/, writing nothing
584
+ yarn lint
585
+ ```
586
+
587
+ Narrower runs, when the whole suite is more than you need:
588
+
589
+ ```sh
590
+ yarn mocha test/commands/list.test.ts # one file
591
+ yarn mocha "test/**/*.test.ts" --grep "404" # every test whose name matches
592
+ ```
593
+
594
+ Tests never reach the network: HTTP is stubbed with undici's `MockAgent`,
595
+ which Node's built-in `fetch` honours (see `test/http.test.ts`).
596
+
597
+ The command reference above is generated by `oclif readme` and regenerated on
598
+ `yarn version` and on pack. After changing a command's description, flags or
599
+ examples, run `yarn build && yarn oclif readme --no-source-links` and commit
600
+ the result. The flag matters: without it the reference links into the private
601
+ workspace repository, which `test/readme.test.ts` refuses.
602
+
603
+ To run the CLI against a real app, command by command, with the expected
604
+ output and every way a line can fail, follow
605
+ [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. Run bin/build_payload before packing: the release path
22
+ # does not yet run it, 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)