@powerhousedao/ph-cli 6.0.0-dev.2 → 6.0.0-dev.20

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 (233) hide show
  1. package/dist/scripts/generate-commands-docs.d.ts +2 -0
  2. package/dist/scripts/generate-commands-docs.d.ts.map +1 -0
  3. package/dist/scripts/generate-commands-docs.js +47 -0
  4. package/dist/scripts/generate-commands-docs.js.map +1 -0
  5. package/dist/scripts/generate-commands-docs.ts +51 -0
  6. package/dist/scripts/generate-docs-legacy.d.ts +2 -0
  7. package/dist/scripts/generate-docs-legacy.d.ts.map +1 -0
  8. package/dist/scripts/{generate-commands-md.js → generate-docs-legacy.js} +2 -2
  9. package/dist/scripts/generate-docs-legacy.js.map +1 -0
  10. package/dist/scripts/{generate-commands-md.ts → generate-docs-legacy.ts} +1 -1
  11. package/dist/src/cli.js +23 -36
  12. package/dist/src/cli.js.map +1 -1
  13. package/dist/src/cli.old.d.ts +3 -0
  14. package/dist/src/cli.old.d.ts.map +1 -0
  15. package/dist/src/cli.old.js +43 -0
  16. package/dist/src/cli.old.js.map +1 -0
  17. package/dist/src/commands/access-token.d.ts +13 -8
  18. package/dist/src/commands/access-token.d.ts.map +1 -1
  19. package/dist/src/commands/access-token.js +111 -79
  20. package/dist/src/commands/access-token.js.map +1 -1
  21. package/dist/src/commands/connect.d.ts +248 -18
  22. package/dist/src/commands/connect.d.ts.map +1 -1
  23. package/dist/src/commands/connect.js +59 -84
  24. package/dist/src/commands/connect.js.map +1 -1
  25. package/dist/src/commands/generate.d.ts +57 -8
  26. package/dist/src/commands/generate.d.ts.map +1 -1
  27. package/dist/src/commands/generate.js +24 -40
  28. package/dist/src/commands/generate.js.map +1 -1
  29. package/dist/src/commands/get-package-manager.d.ts +30 -0
  30. package/dist/src/commands/get-package-manager.d.ts.map +1 -0
  31. package/dist/src/commands/get-package-manager.js +8 -0
  32. package/dist/src/commands/get-package-manager.js.map +1 -0
  33. package/dist/src/commands/index.d.ts +1 -2
  34. package/dist/src/commands/index.d.ts.map +1 -1
  35. package/dist/src/commands/index.js +13 -2
  36. package/dist/src/commands/index.js.map +1 -1
  37. package/dist/src/commands/inspect.d.ts +11 -5
  38. package/dist/src/commands/inspect.d.ts.map +1 -1
  39. package/dist/src/commands/inspect.js +26 -20
  40. package/dist/src/commands/inspect.js.map +1 -1
  41. package/dist/src/commands/install.d.ts +21 -14
  42. package/dist/src/commands/install.d.ts.map +1 -1
  43. package/dist/src/commands/install.js +71 -123
  44. package/dist/src/commands/install.js.map +1 -1
  45. package/dist/src/commands/legacy/access-token.old.d.ts +9 -0
  46. package/dist/src/commands/legacy/access-token.old.d.ts.map +1 -0
  47. package/dist/src/commands/legacy/access-token.old.js +110 -0
  48. package/dist/src/commands/legacy/access-token.old.js.map +1 -0
  49. package/dist/src/commands/legacy/connect.old.d.ts +19 -0
  50. package/dist/src/commands/legacy/connect.old.d.ts.map +1 -0
  51. package/dist/src/commands/legacy/connect.old.js +85 -0
  52. package/dist/src/commands/legacy/connect.old.js.map +1 -0
  53. package/dist/src/commands/legacy/generate.old.d.ts +9 -0
  54. package/dist/src/commands/legacy/generate.old.d.ts.map +1 -0
  55. package/dist/src/commands/legacy/generate.old.js +41 -0
  56. package/dist/src/commands/legacy/generate.old.js.map +1 -0
  57. package/dist/src/commands/{help.d.ts → legacy/help.old.d.ts} +1 -1
  58. package/dist/src/commands/legacy/help.old.d.ts.map +1 -0
  59. package/dist/src/commands/{help.js → legacy/help.old.js} +1 -1
  60. package/dist/src/commands/legacy/help.old.js.map +1 -0
  61. package/dist/src/commands/legacy/inspect.old.d.ts +6 -0
  62. package/dist/src/commands/legacy/inspect.old.d.ts.map +1 -0
  63. package/dist/src/commands/legacy/inspect.old.js +21 -0
  64. package/dist/src/commands/legacy/inspect.old.js.map +1 -0
  65. package/dist/src/commands/legacy/install.old.d.ts +15 -0
  66. package/dist/src/commands/legacy/install.old.d.ts.map +1 -0
  67. package/dist/src/commands/legacy/install.old.js +127 -0
  68. package/dist/src/commands/legacy/install.old.js.map +1 -0
  69. package/dist/src/commands/legacy/login.old.d.ts +12 -0
  70. package/dist/src/commands/legacy/login.old.d.ts.map +1 -0
  71. package/dist/src/commands/legacy/login.old.js +208 -0
  72. package/dist/src/commands/legacy/login.old.js.map +1 -0
  73. package/dist/src/commands/legacy/migrate.old.d.ts +11 -0
  74. package/dist/src/commands/legacy/migrate.old.d.ts.map +1 -0
  75. package/dist/src/commands/legacy/migrate.old.js +15 -0
  76. package/dist/src/commands/legacy/migrate.old.js.map +1 -0
  77. package/dist/src/commands/legacy/service.old.d.ts +5 -0
  78. package/dist/src/commands/legacy/service.old.d.ts.map +1 -0
  79. package/dist/src/commands/legacy/service.old.js +67 -0
  80. package/dist/src/commands/legacy/service.old.js.map +1 -0
  81. package/dist/src/commands/legacy/switchboard.old.d.ts +9 -0
  82. package/dist/src/commands/legacy/switchboard.old.d.ts.map +1 -0
  83. package/dist/src/commands/legacy/switchboard.old.js +78 -0
  84. package/dist/src/commands/legacy/switchboard.old.js.map +1 -0
  85. package/dist/src/commands/legacy/uninstall.old.d.ts +15 -0
  86. package/dist/src/commands/legacy/uninstall.old.d.ts.map +1 -0
  87. package/dist/src/commands/legacy/uninstall.old.js +120 -0
  88. package/dist/src/commands/legacy/uninstall.old.js.map +1 -0
  89. package/dist/src/commands/legacy/vetra.old.d.ts +23 -0
  90. package/dist/src/commands/legacy/vetra.old.d.ts.map +1 -0
  91. package/dist/src/commands/legacy/vetra.old.js +35 -0
  92. package/dist/src/commands/legacy/vetra.old.js.map +1 -0
  93. package/dist/src/commands/list.d.ts +9 -8
  94. package/dist/src/commands/list.d.ts.map +1 -1
  95. package/dist/src/commands/list.js +38 -32
  96. package/dist/src/commands/list.js.map +1 -1
  97. package/dist/src/commands/list.old.d.ts +9 -0
  98. package/dist/src/commands/list.old.d.ts.map +1 -0
  99. package/dist/src/commands/list.old.js +36 -0
  100. package/dist/src/commands/list.old.js.map +1 -0
  101. package/dist/src/commands/login.d.ts +19 -11
  102. package/dist/src/commands/login.d.ts.map +1 -1
  103. package/dist/src/commands/login.js +95 -94
  104. package/dist/src/commands/login.js.map +1 -1
  105. package/dist/src/commands/migrate.d.ts +11 -9
  106. package/dist/src/commands/migrate.d.ts.map +1 -1
  107. package/dist/src/commands/migrate.js +15 -11
  108. package/dist/src/commands/migrate.js.map +1 -1
  109. package/dist/src/commands/ph-cli-commands.d.ts +410 -0
  110. package/dist/src/commands/ph-cli-commands.d.ts.map +1 -0
  111. package/dist/src/commands/ph-cli-commands.js +25 -0
  112. package/dist/src/commands/ph-cli-commands.js.map +1 -0
  113. package/dist/src/commands/ph-cli-help.d.ts +396 -0
  114. package/dist/src/commands/ph-cli-help.d.ts.map +1 -0
  115. package/dist/src/commands/ph-cli-help.js +12 -0
  116. package/dist/src/commands/ph-cli-help.js.map +1 -0
  117. package/dist/src/commands/ph-cli.d.ts +490 -0
  118. package/dist/src/commands/ph-cli.d.ts.map +1 -0
  119. package/dist/src/commands/ph-cli.js +12 -0
  120. package/dist/src/commands/ph-cli.js.map +1 -0
  121. package/dist/src/commands/register-commands.d.ts +1 -1
  122. package/dist/src/commands/register-commands.d.ts.map +1 -1
  123. package/dist/src/commands/register-commands.js +13 -13
  124. package/dist/src/commands/register-commands.js.map +1 -1
  125. package/dist/src/commands/service.d.ts +11 -4
  126. package/dist/src/commands/service.d.ts.map +1 -1
  127. package/dist/src/commands/service.js +28 -16
  128. package/dist/src/commands/service.js.map +1 -1
  129. package/dist/src/commands/switchboard.d.ts +45 -8
  130. package/dist/src/commands/switchboard.d.ts.map +1 -1
  131. package/dist/src/commands/switchboard.js +34 -69
  132. package/dist/src/commands/switchboard.js.map +1 -1
  133. package/dist/src/commands/uninstall.d.ts +21 -14
  134. package/dist/src/commands/uninstall.d.ts.map +1 -1
  135. package/dist/src/commands/uninstall.js +68 -117
  136. package/dist/src/commands/uninstall.js.map +1 -1
  137. package/dist/src/commands/vetra.d.ts +63 -10
  138. package/dist/src/commands/vetra.d.ts.map +1 -1
  139. package/dist/src/commands/vetra.js +23 -34
  140. package/dist/src/commands/vetra.js.map +1 -1
  141. package/dist/src/get-version.d.ts +2 -0
  142. package/dist/src/get-version.d.ts.map +1 -0
  143. package/dist/src/get-version.js +7 -0
  144. package/dist/src/get-version.js.map +1 -0
  145. package/dist/src/index.d.ts +0 -1
  146. package/dist/src/index.d.ts.map +1 -1
  147. package/dist/src/index.js +0 -1
  148. package/dist/src/index.js.map +1 -1
  149. package/dist/src/services/auth.d.ts +1 -1
  150. package/dist/src/services/auth.d.ts.map +1 -1
  151. package/dist/src/services/auth.js.map +1 -1
  152. package/dist/src/services/connect.d.ts +4 -1
  153. package/dist/src/services/connect.d.ts.map +1 -1
  154. package/dist/src/services/connect.js +89 -1
  155. package/dist/src/services/connect.js.map +1 -1
  156. package/dist/src/services/generate.d.ts +2 -29
  157. package/dist/src/services/generate.d.ts.map +1 -1
  158. package/dist/src/services/generate.js +49 -75
  159. package/dist/src/services/generate.js.map +1 -1
  160. package/dist/src/services/inspect.d.ts +2 -4
  161. package/dist/src/services/inspect.d.ts.map +1 -1
  162. package/dist/src/services/inspect.js +8 -7
  163. package/dist/src/services/inspect.js.map +1 -1
  164. package/dist/src/services/legacy/connect.old.d.ts +2 -0
  165. package/dist/src/services/legacy/connect.old.d.ts.map +1 -0
  166. package/dist/src/services/legacy/connect.old.js +2 -0
  167. package/dist/src/services/legacy/connect.old.js.map +1 -0
  168. package/dist/src/services/legacy/generate.old.d.ts +30 -0
  169. package/dist/src/services/legacy/generate.old.d.ts.map +1 -0
  170. package/dist/src/services/legacy/generate.old.js +107 -0
  171. package/dist/src/services/legacy/generate.old.js.map +1 -0
  172. package/dist/src/services/legacy/inspect.old.d.ts +5 -0
  173. package/dist/src/services/legacy/inspect.old.d.ts.map +1 -0
  174. package/dist/src/services/legacy/inspect.old.js +49 -0
  175. package/dist/src/services/legacy/inspect.old.js.map +1 -0
  176. package/dist/src/services/legacy/migrate.old.d.ts +3 -0
  177. package/dist/src/services/legacy/migrate.old.d.ts.map +1 -0
  178. package/dist/src/services/legacy/migrate.old.js +289 -0
  179. package/dist/src/services/legacy/migrate.old.js.map +1 -0
  180. package/dist/src/services/legacy/switchboard.old.d.ts +54 -0
  181. package/dist/src/services/legacy/switchboard.old.d.ts.map +1 -0
  182. package/dist/src/services/legacy/switchboard.old.js +79 -0
  183. package/dist/src/services/legacy/switchboard.old.js.map +1 -0
  184. package/dist/src/services/legacy/vetra.old.d.ts +15 -0
  185. package/dist/src/services/legacy/vetra.old.d.ts.map +1 -0
  186. package/dist/src/services/legacy/vetra.old.js +176 -0
  187. package/dist/src/services/legacy/vetra.old.js.map +1 -0
  188. package/dist/src/services/migrate.d.ts +2 -6
  189. package/dist/src/services/migrate.d.ts.map +1 -1
  190. package/dist/src/services/migrate.js +52 -14
  191. package/dist/src/services/migrate.js.map +1 -1
  192. package/dist/src/services/switchboard.d.ts +2 -34
  193. package/dist/src/services/switchboard.d.ts.map +1 -1
  194. package/dist/src/services/switchboard.js +4 -6
  195. package/dist/src/services/switchboard.js.map +1 -1
  196. package/dist/src/services/vetra.d.ts +2 -14
  197. package/dist/src/services/vetra.d.ts.map +1 -1
  198. package/dist/src/services/vetra.js +58 -65
  199. package/dist/src/services/vetra.js.map +1 -1
  200. package/dist/src/types.d.ts +29 -0
  201. package/dist/src/types.d.ts.map +1 -1
  202. package/dist/src/utils/constants.d.ts +2 -0
  203. package/dist/src/utils/constants.d.ts.map +1 -0
  204. package/dist/src/utils/constants.js +2 -0
  205. package/dist/src/utils/constants.js.map +1 -0
  206. package/dist/src/utils/file-system.d.ts +2 -0
  207. package/dist/src/utils/file-system.d.ts.map +1 -0
  208. package/dist/src/utils/file-system.js +15 -0
  209. package/dist/src/utils/file-system.js.map +1 -0
  210. package/dist/src/utils/index.d.ts +3 -0
  211. package/dist/src/utils/index.d.ts.map +1 -0
  212. package/dist/src/utils/index.js +3 -0
  213. package/dist/src/utils/index.js.map +1 -0
  214. package/dist/src/utils/projects.d.ts +19 -0
  215. package/dist/src/utils/projects.d.ts.map +1 -0
  216. package/dist/src/utils/projects.js +93 -0
  217. package/dist/src/utils/projects.js.map +1 -0
  218. package/dist/src/utils.d.ts +0 -4
  219. package/dist/src/utils.d.ts.map +1 -1
  220. package/dist/src/utils.js.map +1 -1
  221. package/dist/src/version.d.ts +1 -1
  222. package/dist/src/version.d.ts.map +1 -1
  223. package/dist/src/version.js +1 -1
  224. package/dist/src/version.js.map +1 -1
  225. package/dist/test/utils.test.js +2 -1
  226. package/dist/test/utils.test.js.map +1 -1
  227. package/dist/tsconfig.tsbuildinfo +1 -1
  228. package/package.json +30 -17
  229. package/dist/scripts/generate-commands-md.d.ts +0 -2
  230. package/dist/scripts/generate-commands-md.d.ts.map +0 -1
  231. package/dist/scripts/generate-commands-md.js.map +0 -1
  232. package/dist/src/commands/help.d.ts.map +0 -1
  233. package/dist/src/commands/help.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-commands-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-commands-docs.d.ts","sourceRoot":"","sources":["../../scripts/generate-commands-docs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { writeCliDocsMarkdownFile } from "@powerhousedao/codegen/file-builders";
2
+ import process from "process";
3
+ import { accessToken } from "../src/commands/access-token.js";
4
+ import { build, connect, preview, studio } from "../src/commands/connect.js";
5
+ import { generate } from "../src/commands/generate.js";
6
+ import { inspect } from "../src/commands/inspect.js";
7
+ import { install } from "../src/commands/install.js";
8
+ import { list } from "../src/commands/list.js";
9
+ import { login } from "../src/commands/login.js";
10
+ import { migrate } from "../src/commands/migrate.js";
11
+ import { phCli } from "../src/commands/ph-cli.js";
12
+ import { switchboard } from "../src/commands/switchboard.js";
13
+ import { uninstall } from "../src/commands/uninstall.js";
14
+ import { vetra } from "../src/commands/vetra.js";
15
+ const commands = [
16
+ { name: "generate", command: generate },
17
+ { name: "vetra", command: vetra },
18
+ { name: "connect", command: connect },
19
+ { name: "connect studio", command: studio },
20
+ { name: "connect build", command: build },
21
+ { name: "connect preview", command: preview },
22
+ { name: "access token", command: accessToken },
23
+ { name: "inspect", command: inspect },
24
+ { name: "list", command: list },
25
+ { name: "migrate", command: migrate },
26
+ { name: "switchboard", command: switchboard },
27
+ { name: "login", command: login },
28
+ { name: "install", command: install },
29
+ { name: "uninstall", command: uninstall },
30
+ ];
31
+ const cliDescription = phCli.description ?? "";
32
+ async function main() {
33
+ await writeCliDocsMarkdownFile({
34
+ filePath: "COMMANDS.md",
35
+ docsTitle: "Powerhouse CLI Commands",
36
+ docsIntroduction: "This document provides detailed information about the available commands in the Powerhouse CLI.",
37
+ cliDescription,
38
+ entries: commands,
39
+ });
40
+ }
41
+ main()
42
+ .then(() => process.exit(0))
43
+ .catch((e) => {
44
+ console.error(e);
45
+ process.exit(1);
46
+ });
47
+ //# sourceMappingURL=generate-commands-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-commands-docs.js","sourceRoot":"","sources":["../../scripts/generate-commands-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE;IACvC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;IACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE;IAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE;IACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE;IAC7C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE;IAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;IACrC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;IACrC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE;IAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;IACrC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE;CAC1C,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;AAE/C,KAAK,UAAU,IAAI;IACjB,MAAM,wBAAwB,CAAC;QAC7B,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,yBAAyB;QACpC,gBAAgB,EACd,iGAAiG;QACnG,cAAc;QACd,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { writeCliDocsMarkdownFile } from "@powerhousedao/codegen/file-builders";
2
+ import process from "process";
3
+ import { accessToken } from "../src/commands/access-token.js";
4
+ import { build, connect, preview, studio } from "../src/commands/connect.js";
5
+ import { generate } from "../src/commands/generate.js";
6
+ import { inspect } from "../src/commands/inspect.js";
7
+ import { install } from "../src/commands/install.js";
8
+ import { list } from "../src/commands/list.js";
9
+ import { login } from "../src/commands/login.js";
10
+ import { migrate } from "../src/commands/migrate.js";
11
+ import { phCli } from "../src/commands/ph-cli.js";
12
+ import { switchboard } from "../src/commands/switchboard.js";
13
+ import { uninstall } from "../src/commands/uninstall.js";
14
+ import { vetra } from "../src/commands/vetra.js";
15
+
16
+ const commands = [
17
+ { name: "generate", command: generate },
18
+ { name: "vetra", command: vetra },
19
+ { name: "connect", command: connect },
20
+ { name: "connect studio", command: studio },
21
+ { name: "connect build", command: build },
22
+ { name: "connect preview", command: preview },
23
+ { name: "access token", command: accessToken },
24
+ { name: "inspect", command: inspect },
25
+ { name: "list", command: list },
26
+ { name: "migrate", command: migrate },
27
+ { name: "switchboard", command: switchboard },
28
+ { name: "login", command: login },
29
+ { name: "install", command: install },
30
+ { name: "uninstall", command: uninstall },
31
+ ];
32
+
33
+ const cliDescription = phCli.description ?? "";
34
+
35
+ async function main() {
36
+ await writeCliDocsMarkdownFile({
37
+ filePath: "COMMANDS.md",
38
+ docsTitle: "Powerhouse CLI Commands",
39
+ docsIntroduction:
40
+ "This document provides detailed information about the available commands in the Powerhouse CLI.",
41
+ cliDescription,
42
+ entries: commands,
43
+ });
44
+ }
45
+
46
+ main()
47
+ .then(() => process.exit(0))
48
+ .catch((e) => {
49
+ console.error(e);
50
+ process.exit(1);
51
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-docs-legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-docs-legacy.d.ts","sourceRoot":"","sources":["../../scripts/generate-docs-legacy.ts"],"names":[],"mappings":""}
@@ -11,7 +11,7 @@ async function generateCommandsMd() {
11
11
  const __dirname = path.dirname(__filename);
12
12
  const rootDir = path.resolve(__dirname, "..");
13
13
  const helpFilePath = path.join(rootDir, "src", "help.ts");
14
- const outputPath = path.join(rootDir, "COMMANDS.md");
14
+ const outputPath = path.join(rootDir, "COMMANDS-LEGACY.md");
15
15
  // Read the help.ts file
16
16
  const helpFileContent = fs.readFileSync(helpFilePath, "utf8");
17
17
  // Extract all help text constants using regex
@@ -69,4 +69,4 @@ function formatCommandName(commandName) {
69
69
  }
70
70
  // Run the script
71
71
  generateCommandsMd();
72
- //# sourceMappingURL=generate-commands-md.js.map
72
+ //# sourceMappingURL=generate-docs-legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-docs-legacy.js","sourceRoot":"","sources":["../../scripts/generate-docs-legacy.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ async function generateCommandsMd() {
12
12
  const __dirname = path.dirname(__filename);
13
13
  const rootDir = path.resolve(__dirname, "..");
14
14
  const helpFilePath = path.join(rootDir, "src", "help.ts");
15
- const outputPath = path.join(rootDir, "COMMANDS.md");
15
+ const outputPath = path.join(rootDir, "COMMANDS-LEGACY.md");
16
16
 
17
17
  // Read the help.ts file
18
18
  const helpFileContent = fs.readFileSync(helpFilePath, "utf8");
package/dist/src/cli.js CHANGED
@@ -1,42 +1,29 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from "commander";
3
- import { registerCommands } from "./index.js";
4
- function ensureNodeVersion(minVersion = "22") {
5
- const version = process.versions.node;
6
- if (!version) {
7
- return;
2
+ import { assertNodeVersion } from "@powerhousedao/common/clis";
3
+ import { run } from "cmd-ts";
4
+ import { phCliHelp } from "./commands/ph-cli-help.js";
5
+ import { phCli } from "./commands/ph-cli.js";
6
+ async function main() {
7
+ assertNodeVersion();
8
+ const args = process.argv.slice(2);
9
+ const hasNoArgs = args.length === 0;
10
+ const isHelp = args.some((arg) => arg === "--help" || arg === "-h");
11
+ const isTopLevelHelp = isHelp && args.length === 1;
12
+ const showTopLevelHelp = hasNoArgs || isTopLevelHelp;
13
+ const cli = showTopLevelHelp ? phCliHelp : phCli;
14
+ const [command, ...restArgs] = args;
15
+ if (command === "connect" &&
16
+ !["studio", "build", "preview"].includes(args[1]) &&
17
+ !isHelp) {
18
+ const argsWithDefaultConnectSubCommand = ["connect", "studio", ...restArgs];
19
+ await run(cli, argsWithDefaultConnectSubCommand);
8
20
  }
9
- if (version < minVersion) {
10
- console.error(`Node version ${minVersion} or higher is required. Current version: ${version}`);
11
- process.exit(1);
21
+ else {
22
+ await run(cli, args);
12
23
  }
13
24
  }
14
- // Ensure minimum Node.js version
15
- ensureNodeVersion("22");
16
- const program = new Command();
17
- program
18
- .name("ph-cli")
19
- .description("The Powerhouse CLI (ph-cli) is a command-line interface tool that provides essential commands for managing Powerhouse projects. The tool and it's commands are fundamental for creating, building, and running Document Models as a builder in studio mode.")
20
- .allowUnknownOption(true)
21
- .option("--verbose, --debug", "Enable debug mode");
22
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
23
- // @ts-ignore build time version file
24
- import("./version.js")
25
- .then(({ version }) => program.version(version))
26
- .catch((error) => console.error("Error loading version", error));
27
- registerCommands(program);
28
- // Logs full error only on debug mode. Otherwise logs only error message
29
- program.parseAsync(process.argv).catch((error) => {
30
- const isDebug = process.argv.find((arg) => ["--verbose", "--debug"].includes(arg));
31
- if (isDebug) {
32
- console.error(error);
33
- return;
34
- }
35
- const errorMessage = error instanceof Error
36
- ? error.message
37
- : typeof error === "string"
38
- ? error
39
- : JSON.stringify(error, null, 2);
40
- console.error(errorMessage);
25
+ await main().catch((e) => {
26
+ console.error(e);
27
+ process.exit(1);
41
28
  });
42
29
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,SAAS,iBAAiB,CAAC,UAAU,GAAG,IAAI;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,gBAAgB,UAAU,4CAA4C,OAAO,EAAE,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAExB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,6PAA6P,CAC9P;KACA,kBAAkB,CAAC,IAAI,CAAC;KACxB,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;AAErD,6DAA6D;AAC7D,qCAAqC;AACrC,MAAM,CAAC,cAAc,CAAC;KACnB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAuB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACpE,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5E,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1B,wEAAwE;AACxE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACxC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CACvC,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,KAAK,UAAU,IAAI;IACjB,iBAAiB,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;IACpE,MAAM,cAAc,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,SAAS,IAAI,cAAc,CAAC;IACrD,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IACpC,IACE,OAAO,KAAK,SAAS;QACrB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,MAAM,EACP,CAAC;QACD,MAAM,gCAAgC,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC5E,MAAM,GAAG,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACvB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.old.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.old.d.ts","sourceRoot":"","sources":["../../src/cli.old.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import { registerCommands } from "./commands/register-commands.js";
4
+ console.log("Running legacy ph-cli...");
5
+ function ensureNodeVersion(minVersion = "22") {
6
+ const version = process.versions.node;
7
+ if (!version) {
8
+ return;
9
+ }
10
+ if (version < minVersion) {
11
+ console.error(`Node version ${minVersion} or higher is required. Current version: ${version}`);
12
+ process.exit(1);
13
+ }
14
+ }
15
+ // Ensure minimum Node.js version
16
+ ensureNodeVersion("22");
17
+ const program = new Command();
18
+ program
19
+ .name("ph-cli")
20
+ .description("The Powerhouse CLI (ph-cli) is a command-line interface tool that provides essential commands for managing Powerhouse projects. The tool and it's commands are fundamental for creating, building, and running Document Models as a builder in studio mode.")
21
+ .allowUnknownOption(true)
22
+ .option("--verbose, --debug", "Enable debug mode");
23
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
24
+ // @ts-ignore build time version file
25
+ import("./version.js")
26
+ .then(({ version }) => program.version(version))
27
+ .catch((error) => console.error("Error loading version", error));
28
+ registerCommands(program);
29
+ // Logs full error only on debug mode. Otherwise logs only error message
30
+ program.parseAsync(process.argv).catch((error) => {
31
+ const isDebug = process.argv.find((arg) => ["--verbose", "--debug"].includes(arg));
32
+ if (isDebug) {
33
+ console.error(error);
34
+ return;
35
+ }
36
+ const errorMessage = error instanceof Error
37
+ ? error.message
38
+ : typeof error === "string"
39
+ ? error
40
+ : JSON.stringify(error, null, 2);
41
+ console.error(errorMessage);
42
+ });
43
+ //# sourceMappingURL=cli.old.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.old.js","sourceRoot":"","sources":["../../src/cli.old.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AACxC,SAAS,iBAAiB,CAAC,UAAU,GAAG,IAAI;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,gBAAgB,UAAU,4CAA4C,OAAO,EAAE,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAExB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,6PAA6P,CAC9P;KACA,kBAAkB,CAAC,IAAI,CAAC;KACxB,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;AAErD,6DAA6D;AAC7D,qCAAqC;AACrC,MAAM,CAAC,cAAc,CAAC;KACnB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAuB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACpE,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5E,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1B,wEAAwE;AACxE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACxC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CACvC,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
@@ -1,9 +1,14 @@
1
- import type { Command } from "commander";
2
- import type { CommandActionType } from "../types.js";
3
- export type AccessTokenOptions = {
4
- expiry?: string;
5
- audience?: string;
6
- };
7
- export declare const accessToken: CommandActionType<[AccessTokenOptions]>;
8
- export declare function accessTokenCommand(program: Command): Command;
1
+ export declare const accessToken: Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
2
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
3
+ debug: boolean | undefined;
4
+ expiry: string | undefined;
5
+ audience: string | undefined;
6
+ }>>;
7
+ } & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
8
+ debug: boolean | undefined;
9
+ expiry: string | undefined;
10
+ audience: string | undefined;
11
+ }, Promise<never>> & {
12
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<Promise<never>>>;
13
+ } & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
9
14
  //# sourceMappingURL=access-token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"access-token.d.ts","sourceRoot":"","sources":["../../../src/commands/access-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAgDF,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,CAAC,kBAAkB,CAAC,CAkF/D,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAY5D"}
1
+ {"version":3,"file":"access-token.d.ts","sourceRoot":"","sources":["../../../src/commands/access-token.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,WAAW;;;;;;;;;;;;6JAuHtB,CAAC"}
@@ -1,8 +1,114 @@
1
- import { accessTokenHelp } from "../help.js";
2
- import { setCustomHelp } from "../utils.js";
3
- const SECONDS_IN_DAY = 24 * 60 * 60;
4
- const DEFAULT_EXPIRY_DAYS = 7;
5
- const DEFAULT_EXPIRY_SECONDS = DEFAULT_EXPIRY_DAYS * SECONDS_IN_DAY;
1
+ import { accessTokenArgs, DEFAULT_EXPIRY_SECONDS, SECONDS_IN_DAY, } from "@powerhousedao/common/clis";
2
+ import { command } from "cmd-ts";
3
+ import { getConnectCrypto, getConnectDid, isAuthenticated, loadCredentials, } from "../services/auth.js";
4
+ export const accessToken = command({
5
+ name: "access-token",
6
+ description: `
7
+ The access-token command generates a bearer token for API authentication. This token
8
+ can be used to authenticate requests to Powerhouse APIs like reactor-api (Switchboard).
9
+
10
+ This command:
11
+ 1. Uses your CLI's cryptographic identity (DID) to sign a verifiable credential
12
+ 2. Creates a JWT bearer token with configurable expiration
13
+ 3. Outputs the token to stdout (info to stderr) for easy piping
14
+
15
+ Prerequisites:
16
+ You must have a cryptographic identity. Run 'ph login' first to:
17
+ - Generate a keypair (stored in .keypair.json)
18
+ - Optionally link your Ethereum address (stored in .auth.json)
19
+
20
+ Token Details:
21
+ The generated token is a JWT (JSON Web Token) containing:
22
+ - Issuer (iss): Your CLI's DID (did:key:...)
23
+ - Subject (sub): Your CLI's DID
24
+ - Credential Subject: Chain ID, network ID, and address (if authenticated)
25
+ - Expiration (exp): Based on --expiry option
26
+ - Audience (aud): If --audience is specified
27
+
28
+ Output:
29
+ - Token information (DID, address, expiry) is printed to stderr
30
+ - The token itself is printed to stdout for easy piping/copying
31
+
32
+ This allows you to use the command in scripts:
33
+ TOKEN=$(ph access-token)
34
+ curl -H "Authorization: Bearer $TOKEN" http://localhost:4001/graphql
35
+
36
+ Usage with APIs:
37
+ Generate token and use with curl
38
+ TOKEN=$(ph access-token --expiry 1d)
39
+ curl -X POST http://localhost:4001/graphql \\
40
+ -H "Content-Type: application/json" \\
41
+ -H "Authorization: Bearer $TOKEN" \\
42
+ -d '{"query": "{ drives { id name } }"}'
43
+
44
+ Export as environment variable
45
+ export PH_ACCESS_TOKEN=$(ph access-token)
46
+
47
+ Notes:
48
+ - Tokens are self-signed using your CLI's private key
49
+ - No network request is made; tokens are generated locally
50
+ - The recipient API must trust your CLI's DID to accept the token
51
+ - For reactor-api, ensure AUTH_ENABLED=true to require authentication
52
+ `,
53
+ args: accessTokenArgs,
54
+ handler: async (args) => {
55
+ if (args.debug) {
56
+ console.log(args);
57
+ }
58
+ // Require Renown authentication - user must have done 'ph login'
59
+ if (!isAuthenticated()) {
60
+ throw new Error("Not authenticated. Run 'ph login' first to authenticate with Renown. A Renown credential is required to generate valid bearer tokens.");
61
+ }
62
+ const creds = loadCredentials();
63
+ if (!creds) {
64
+ throw new Error("Failed to load credentials.");
65
+ }
66
+ // Get the CLI's DID
67
+ let did;
68
+ try {
69
+ did = await getConnectDid();
70
+ }
71
+ catch (e) {
72
+ throw new Error("Failed to get CLI identity. Run 'ph login' to reinitialize.");
73
+ }
74
+ const address = creds.address;
75
+ // Parse expiry
76
+ let expiresIn = DEFAULT_EXPIRY_SECONDS;
77
+ if (args.expiry)
78
+ expiresIn = parseExpiry(args.expiry);
79
+ // Generate the bearer token
80
+ const crypto = await getConnectCrypto();
81
+ const token = await crypto.getBearerToken(args.audience ?? "", address, true, // Force refresh to ensure we get a new token with the specified expiry
82
+ {
83
+ expiresIn,
84
+ aud: args.audience,
85
+ });
86
+ // Calculate human-readable expiry
87
+ const expiryDays = Math.floor(expiresIn / SECONDS_IN_DAY);
88
+ const expiryHours = Math.floor((expiresIn % SECONDS_IN_DAY) / 3600);
89
+ let expiryStr;
90
+ if (expiryDays > 0) {
91
+ expiryStr =
92
+ expiryHours > 0
93
+ ? `${expiryDays} day${expiryDays > 1 ? "s" : ""} and ${expiryHours} hour${expiryHours > 1 ? "s" : ""}`
94
+ : `${expiryDays} day${expiryDays > 1 ? "s" : ""}`;
95
+ }
96
+ else if (expiryHours > 0) {
97
+ expiryStr = `${expiryHours} hour${expiryHours > 1 ? "s" : ""}`;
98
+ }
99
+ else {
100
+ expiryStr = `${expiresIn} seconds`;
101
+ }
102
+ // Output token info to stderr, token itself to stdout for piping
103
+ console.error(`CLI DID: ${did}`);
104
+ console.error(`ETH Address: ${address}`);
105
+ console.error(`Token expires in: ${expiryStr}`);
106
+ console.error("");
107
+ // Output just the token to stdout (for easy piping/copying)
108
+ console.log(token);
109
+ process.exit(0);
110
+ },
111
+ });
6
112
  /**
7
113
  * Parse expiry string to seconds
8
114
  * Supports formats: "7d" (days), "24h" (hours), "3600" (seconds), "3600s" (seconds)
@@ -33,78 +139,4 @@ function parseExpiry(expiry) {
33
139
  }
34
140
  return seconds;
35
141
  }
36
- export const accessToken = async (options) => {
37
- const { getConnectCrypto, getConnectDid, isAuthenticated, loadCredentials } = await import("../services/auth.js");
38
- // Require Renown authentication - user must have done 'ph login'
39
- if (!isAuthenticated()) {
40
- console.error("Not authenticated. Run 'ph login' first to authenticate with Renown.");
41
- console.error("A Renown credential is required to generate valid bearer tokens.");
42
- process.exit(1);
43
- }
44
- const creds = loadCredentials();
45
- if (!creds) {
46
- console.error("Failed to load credentials.");
47
- process.exit(1);
48
- }
49
- // Get the CLI's DID
50
- let did;
51
- try {
52
- did = await getConnectDid();
53
- }
54
- catch (e) {
55
- console.error("Failed to get CLI identity. Run 'ph login' to reinitialize.");
56
- process.exit(1);
57
- }
58
- const address = creds.address;
59
- // Parse expiry
60
- let expiresIn = DEFAULT_EXPIRY_SECONDS;
61
- if (options.expiry) {
62
- try {
63
- expiresIn = parseExpiry(options.expiry);
64
- }
65
- catch (e) {
66
- console.error(e.message);
67
- process.exit(1);
68
- }
69
- }
70
- // Generate the bearer token
71
- const crypto = await getConnectCrypto();
72
- const token = await crypto.getBearerToken(options.audience ?? "", address, true, // Force refresh to ensure we get a new token with the specified expiry
73
- {
74
- expiresIn,
75
- aud: options.audience,
76
- });
77
- // Calculate human-readable expiry
78
- const expiryDays = Math.floor(expiresIn / SECONDS_IN_DAY);
79
- const expiryHours = Math.floor((expiresIn % SECONDS_IN_DAY) / 3600);
80
- let expiryStr;
81
- if (expiryDays > 0) {
82
- expiryStr =
83
- expiryHours > 0
84
- ? `${expiryDays} day${expiryDays > 1 ? "s" : ""} and ${expiryHours} hour${expiryHours > 1 ? "s" : ""}`
85
- : `${expiryDays} day${expiryDays > 1 ? "s" : ""}`;
86
- }
87
- else if (expiryHours > 0) {
88
- expiryStr = `${expiryHours} hour${expiryHours > 1 ? "s" : ""}`;
89
- }
90
- else {
91
- expiryStr = `${expiresIn} seconds`;
92
- }
93
- // Output token info to stderr, token itself to stdout for piping
94
- console.error(`CLI DID: ${did}`);
95
- console.error(`ETH Address: ${address}`);
96
- console.error(`Token expires in: ${expiryStr}`);
97
- console.error("");
98
- // Output just the token to stdout (for easy piping/copying)
99
- console.log(token);
100
- };
101
- export function accessTokenCommand(program) {
102
- const cmd = program
103
- .command("access-token")
104
- .description("Generate a bearer token for API authentication")
105
- .option("--expiry <duration>", `Token expiry duration. Supports: "7d" (days), "24h" (hours), "3600" or "3600s" (seconds). Default: ${DEFAULT_EXPIRY_DAYS}d`)
106
- .option("--audience <url>", "Target audience URL for the token (optional)")
107
- .action(accessToken);
108
- return setCustomHelp(cmd, accessTokenHelp);
109
- }
110
142
  //# sourceMappingURL=access-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access-token.js","sourceRoot":"","sources":["../../../src/commands/access-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-token.js","sourceRoot":"","sources":["../../../src/commands/access-token.ts"],"names":[],"mappings":"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"}