@seamapi/cli 0.18.1 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/README.md +55 -1
  2. package/bin/cli.js +73 -249
  3. package/bin/cli.js.map +1 -1
  4. package/lib/args/coerce.d.ts +28 -0
  5. package/lib/args/coerce.js +131 -0
  6. package/lib/args/coerce.js.map +1 -0
  7. package/lib/{util/cli-args.d.ts → args/parse.d.ts} +12 -15
  8. package/lib/{util/cli-args.js → args/parse.js} +21 -24
  9. package/lib/args/parse.js.map +1 -0
  10. package/lib/args/validate.d.ts +23 -0
  11. package/lib/args/validate.js +42 -0
  12. package/lib/args/validate.js.map +1 -0
  13. package/lib/auth/operations.d.ts +54 -0
  14. package/lib/auth/operations.js +115 -0
  15. package/lib/auth/operations.js.map +1 -0
  16. package/lib/{validate-token.js → auth/validate-token.js} +2 -2
  17. package/lib/auth/validate-token.js.map +1 -0
  18. package/lib/blueprint/cache.d.ts +16 -0
  19. package/lib/blueprint/cache.js +73 -0
  20. package/lib/blueprint/cache.js.map +1 -0
  21. package/lib/blueprint/endpoint.d.ts +14 -0
  22. package/lib/{get-response-key.js → blueprint/endpoint.js} +11 -2
  23. package/lib/blueprint/endpoint.js.map +1 -0
  24. package/lib/blueprint/index.d.ts +12 -0
  25. package/lib/blueprint/index.js +10 -0
  26. package/lib/blueprint/index.js.map +1 -0
  27. package/lib/blueprint/source-npm.d.ts +10 -0
  28. package/lib/{blueprint.js → blueprint/source-npm.js} +20 -74
  29. package/lib/blueprint/source-npm.js.map +1 -0
  30. package/lib/blueprint/source-remote.d.ts +6 -0
  31. package/lib/blueprint/source-remote.js +14 -0
  32. package/lib/blueprint/source-remote.js.map +1 -0
  33. package/lib/commands/api-command.d.ts +8 -0
  34. package/lib/commands/api-command.js +71 -0
  35. package/lib/commands/api-command.js.map +1 -0
  36. package/lib/commands/local/completion.d.ts +18 -0
  37. package/lib/commands/local/completion.js +35 -0
  38. package/lib/commands/local/completion.js.map +1 -0
  39. package/lib/commands/local/config-reveal-location.d.ts +2 -0
  40. package/lib/commands/local/config-reveal-location.js +15 -0
  41. package/lib/commands/local/config-reveal-location.js.map +1 -0
  42. package/lib/commands/local/config-set-fake-server.d.ts +3 -0
  43. package/lib/commands/local/config-set-fake-server.js +20 -0
  44. package/lib/commands/local/config-set-fake-server.js.map +1 -0
  45. package/lib/commands/local/config-use-remote-api-defs.d.ts +2 -0
  46. package/lib/commands/local/config-use-remote-api-defs.js +20 -0
  47. package/lib/commands/local/config-use-remote-api-defs.js.map +1 -0
  48. package/lib/commands/local/health.d.ts +2 -0
  49. package/lib/commands/local/health.js +18 -0
  50. package/lib/commands/local/health.js.map +1 -0
  51. package/lib/commands/local/login.d.ts +2 -0
  52. package/lib/commands/local/login.js +35 -0
  53. package/lib/commands/local/login.js.map +1 -0
  54. package/lib/commands/local/logout.d.ts +2 -0
  55. package/lib/commands/local/logout.js +17 -0
  56. package/lib/commands/local/logout.js.map +1 -0
  57. package/lib/commands/local/select-server.d.ts +2 -0
  58. package/lib/commands/local/select-server.js +27 -0
  59. package/lib/commands/local/select-server.js.map +1 -0
  60. package/lib/commands/local/select-workspace.d.ts +2 -0
  61. package/lib/commands/local/select-workspace.js +22 -0
  62. package/lib/commands/local/select-workspace.js.map +1 -0
  63. package/lib/commands/local/wizard.d.ts +9 -0
  64. package/lib/commands/local/wizard.js +28 -0
  65. package/lib/commands/local/wizard.js.map +1 -0
  66. package/lib/commands/registry.d.ts +54 -0
  67. package/lib/commands/registry.js +64 -0
  68. package/lib/commands/registry.js.map +1 -0
  69. package/lib/{command-spec.d.ts → commands/spec.d.ts} +8 -12
  70. package/lib/{command-spec.js → commands/spec.js} +27 -120
  71. package/lib/commands/spec.js.map +1 -0
  72. package/lib/config/config-store.d.ts +23 -8
  73. package/lib/config/config-store.js +16 -42
  74. package/lib/config/config-store.js.map +1 -1
  75. package/lib/config/index.d.ts +2 -1
  76. package/lib/config/index.js +2 -1
  77. package/lib/config/index.js.map +1 -1
  78. package/lib/config/memory-config-store.d.ts +21 -0
  79. package/lib/config/memory-config-store.js +48 -0
  80. package/lib/config/memory-config-store.js.map +1 -0
  81. package/lib/config/migrate.js +1 -1
  82. package/lib/config/migrate.js.map +1 -1
  83. package/lib/config/values.d.ts +12 -0
  84. package/lib/config/values.js +50 -0
  85. package/lib/config/values.js.map +1 -0
  86. package/lib/context.d.ts +37 -0
  87. package/lib/context.js +31 -0
  88. package/lib/context.js.map +1 -0
  89. package/lib/env.d.ts +5 -0
  90. package/lib/env.js +5 -0
  91. package/lib/env.js.map +1 -1
  92. package/lib/errors.d.ts +31 -0
  93. package/lib/errors.js +58 -0
  94. package/lib/errors.js.map +1 -0
  95. package/lib/http/api.d.ts +37 -0
  96. package/lib/http/api.js +20 -0
  97. package/lib/http/api.js.map +1 -0
  98. package/lib/http/client.d.ts +4 -0
  99. package/lib/{get-seam.js → http/client.js} +16 -17
  100. package/lib/http/client.js.map +1 -0
  101. package/lib/http/follow-ups.d.ts +6 -0
  102. package/lib/http/follow-ups.js +30 -0
  103. package/lib/http/follow-ups.js.map +1 -0
  104. package/lib/http/memory-seam-api.d.ts +22 -0
  105. package/lib/http/memory-seam-api.js +41 -0
  106. package/lib/http/memory-seam-api.js.map +1 -0
  107. package/lib/http/request.d.ts +19 -0
  108. package/lib/http/request.js +39 -0
  109. package/lib/http/request.js.map +1 -0
  110. package/lib/{interact-for-access-code.js → interactions/access-code.js} +4 -4
  111. package/lib/interactions/access-code.js.map +1 -0
  112. package/lib/{interact-for-acs-entrance.js → interactions/acs-entrance.js} +3 -3
  113. package/lib/interactions/acs-entrance.js.map +1 -0
  114. package/lib/{interact-for-acs-system.js → interactions/acs-system.js} +3 -3
  115. package/lib/interactions/acs-system.js.map +1 -0
  116. package/lib/{interact-for-acs-user.js → interactions/acs-user.js} +4 -4
  117. package/lib/interactions/acs-user.js.map +1 -0
  118. package/lib/{interact-for-action-attempt-poll.js → interactions/action-attempt-poll.js} +5 -5
  119. package/lib/interactions/action-attempt-poll.js.map +1 -0
  120. package/lib/{interact-for-array.js → interactions/array.js} +4 -3
  121. package/lib/interactions/array.js.map +1 -0
  122. package/lib/{interact-for-blueprint-object.d.ts → interactions/blueprint-object.d.ts} +3 -2
  123. package/lib/{interact-for-blueprint-object.js → interactions/blueprint-object.js} +49 -20
  124. package/lib/interactions/blueprint-object.js.map +1 -0
  125. package/lib/{interact-for-command-params.d.ts → interactions/command-params.d.ts} +2 -2
  126. package/lib/{interact-for-command-params.js → interactions/command-params.js} +4 -3
  127. package/lib/interactions/command-params.js.map +1 -0
  128. package/lib/interactions/command-selection.d.ts +10 -0
  129. package/lib/{interact-for-command-selection.js → interactions/command-selection.js} +9 -15
  130. package/lib/interactions/command-selection.js.map +1 -0
  131. package/lib/{interact-for-connected-account.js → interactions/connected-account.js} +3 -3
  132. package/lib/interactions/connected-account.js.map +1 -0
  133. package/lib/{interact-for-custom-metadata.js → interactions/custom-metadata.js} +4 -3
  134. package/lib/interactions/custom-metadata.js.map +1 -0
  135. package/lib/{interact-for-device.js → interactions/device.js} +3 -3
  136. package/lib/interactions/device.js.map +1 -0
  137. package/lib/interactions/index.d.ts +19 -0
  138. package/lib/interactions/index.js +20 -0
  139. package/lib/interactions/index.js.map +1 -0
  140. package/lib/{interact-for-login.js → interactions/login.js} +16 -14
  141. package/lib/interactions/login.js.map +1 -0
  142. package/lib/{interact-for-resource.js → interactions/resource.js} +3 -3
  143. package/lib/interactions/resource.js.map +1 -0
  144. package/lib/{interact-for-server-selection.js → interactions/server-selection.js} +10 -13
  145. package/lib/interactions/server-selection.js.map +1 -0
  146. package/lib/{interact-for-timestamp.js → interactions/timestamp.js} +2 -2
  147. package/lib/interactions/timestamp.js.map +1 -0
  148. package/lib/{interact-for-use-remote-api-defs.js → interactions/use-remote-api-defs.js} +5 -6
  149. package/lib/interactions/use-remote-api-defs.js.map +1 -0
  150. package/lib/{interact-for-user-identity.js → interactions/user-identity.js} +3 -3
  151. package/lib/interactions/user-identity.js.map +1 -0
  152. package/lib/{interact-for-workspace-id.js → interactions/workspace-id.js} +11 -10
  153. package/lib/interactions/workspace-id.js.map +1 -0
  154. package/lib/memory-prompt.d.ts +32 -0
  155. package/lib/memory-prompt.js +41 -0
  156. package/lib/memory-prompt.js.map +1 -0
  157. package/lib/output/get-output.d.ts +1 -1
  158. package/lib/output/get-output.js +1 -1
  159. package/lib/output/get-output.js.map +1 -1
  160. package/lib/output/{create-memory-output.d.ts → memory-output.d.ts} +1 -1
  161. package/lib/output/{create-memory-output.js → memory-output.js} +2 -2
  162. package/lib/output/memory-output.js.map +1 -0
  163. package/lib/output/{create-output.d.ts → output.d.ts} +18 -1
  164. package/lib/output/output.js +46 -0
  165. package/lib/output/output.js.map +1 -0
  166. package/lib/output/read-stdin-json.js.map +1 -0
  167. package/lib/output/resolve-output-format.d.ts +1 -1
  168. package/lib/{util → output}/with-loading.js +1 -1
  169. package/lib/output/with-loading.js.map +1 -0
  170. package/lib/prompt.d.ts +101 -0
  171. package/lib/{util/prompt.js → prompt.js} +83 -56
  172. package/lib/prompt.js.map +1 -0
  173. package/lib/{completion → render/completion}/describe.js +1 -2
  174. package/lib/render/completion/describe.js.map +1 -0
  175. package/lib/{completion → render/completion}/index.d.ts +2 -2
  176. package/lib/{completion → render/completion}/index.js +1 -2
  177. package/lib/render/completion/index.js.map +1 -0
  178. package/lib/{completion → render/completion}/render-bash.d.ts +1 -1
  179. package/lib/{completion → render/completion}/render-bash.js +1 -1
  180. package/lib/render/completion/render-bash.js.map +1 -0
  181. package/lib/{completion → render/completion}/render-fish.d.ts +1 -1
  182. package/lib/render/completion/render-fish.js.map +1 -0
  183. package/lib/{completion → render/completion}/render-zsh.d.ts +1 -1
  184. package/lib/{completion → render/completion}/render-zsh.js +1 -1
  185. package/lib/render/completion/render-zsh.js.map +1 -0
  186. package/lib/{render-help.d.ts → render/help.d.ts} +1 -1
  187. package/lib/{render-help.js → render/help.js} +2 -2
  188. package/lib/render/help.js.map +1 -0
  189. package/lib/render/text.d.ts +4 -0
  190. package/lib/render/text.js +16 -0
  191. package/lib/render/text.js.map +1 -0
  192. package/lib/version.d.ts +2 -2
  193. package/lib/version.js +2 -2
  194. package/package.json +4 -3
  195. package/src/bin/cli.ts +91 -332
  196. package/src/lib/args/coerce.ts +164 -0
  197. package/src/lib/{util/cli-args.ts → args/parse.ts} +30 -25
  198. package/src/lib/args/validate.ts +73 -0
  199. package/src/lib/auth/operations.ts +169 -0
  200. package/src/lib/{validate-token.ts → auth/validate-token.ts} +2 -2
  201. package/src/lib/blueprint/cache.ts +97 -0
  202. package/src/lib/{get-response-key.ts → blueprint/endpoint.ts} +17 -3
  203. package/src/lib/blueprint/index.ts +27 -0
  204. package/src/lib/{blueprint.ts → blueprint/source-npm.ts} +27 -99
  205. package/src/lib/blueprint/source-remote.ts +17 -0
  206. package/src/lib/commands/api-command.ts +109 -0
  207. package/src/lib/commands/local/completion.ts +51 -0
  208. package/src/lib/commands/local/config-reveal-location.ts +16 -0
  209. package/src/lib/commands/local/config-set-fake-server.ts +21 -0
  210. package/src/lib/commands/local/config-use-remote-api-defs.ts +23 -0
  211. package/src/lib/commands/local/health.ts +22 -0
  212. package/src/lib/commands/local/login.ts +42 -0
  213. package/src/lib/commands/local/logout.ts +18 -0
  214. package/src/lib/commands/local/select-server.ts +30 -0
  215. package/src/lib/commands/local/select-workspace.ts +25 -0
  216. package/src/lib/commands/local/wizard.ts +31 -0
  217. package/src/lib/commands/registry.ts +127 -0
  218. package/src/lib/{command-spec.ts → commands/spec.ts} +30 -131
  219. package/src/lib/config/config-store.ts +39 -64
  220. package/src/lib/config/index.ts +8 -1
  221. package/src/lib/config/memory-config-store.ts +62 -0
  222. package/src/lib/config/migrate.ts +1 -1
  223. package/src/lib/config/values.ts +72 -0
  224. package/src/lib/context.ts +84 -0
  225. package/src/lib/env.ts +9 -2
  226. package/src/lib/errors.ts +67 -0
  227. package/src/lib/http/api.ts +61 -0
  228. package/src/lib/{get-seam.ts → http/client.ts} +19 -18
  229. package/src/lib/http/follow-ups.ts +42 -0
  230. package/src/lib/http/memory-seam-api.ts +57 -0
  231. package/src/lib/http/request.ts +69 -0
  232. package/src/lib/{interact-for-access-code.ts → interactions/access-code.ts} +4 -3
  233. package/src/lib/{interact-for-acs-entrance.ts → interactions/acs-entrance.ts} +3 -2
  234. package/src/lib/{interact-for-acs-system.ts → interactions/acs-system.ts} +3 -2
  235. package/src/lib/{interact-for-acs-user.ts → interactions/acs-user.ts} +4 -3
  236. package/src/lib/{interact-for-action-attempt-poll.ts → interactions/action-attempt-poll.ts} +4 -4
  237. package/src/lib/{interact-for-array.ts → interactions/array.ts} +3 -3
  238. package/src/lib/{interact-for-blueprint-object.ts → interactions/blueprint-object.ts} +57 -24
  239. package/src/lib/{interact-for-command-params.ts → interactions/command-params.ts} +6 -4
  240. package/src/lib/{interact-for-command-selection.ts → interactions/command-selection.ts} +11 -23
  241. package/src/lib/{interact-for-connected-account.ts → interactions/connected-account.ts} +3 -2
  242. package/src/lib/{interact-for-custom-metadata.ts → interactions/custom-metadata.ts} +3 -7
  243. package/src/lib/{interact-for-device.ts → interactions/device.ts} +3 -2
  244. package/src/lib/interactions/index.ts +19 -0
  245. package/src/lib/{interact-for-login.ts → interactions/login.ts} +16 -13
  246. package/src/lib/{interact-for-resource.ts → interactions/resource.ts} +2 -2
  247. package/src/lib/{interact-for-server-selection.ts → interactions/server-selection.ts} +12 -17
  248. package/src/lib/{interact-for-timestamp.ts → interactions/timestamp.ts} +1 -1
  249. package/src/lib/{interact-for-use-remote-api-defs.ts → interactions/use-remote-api-defs.ts} +4 -5
  250. package/src/lib/{interact-for-user-identity.ts → interactions/user-identity.ts} +3 -2
  251. package/src/lib/{interact-for-workspace-id.ts → interactions/workspace-id.ts} +10 -17
  252. package/src/lib/memory-prompt.ts +89 -0
  253. package/src/lib/output/get-output.ts +1 -1
  254. package/src/lib/output/{create-memory-output.ts → memory-output.ts} +1 -1
  255. package/src/lib/output/{create-output.ts → output.ts} +47 -32
  256. package/src/lib/output/resolve-output-format.ts +1 -1
  257. package/src/lib/{util → output}/with-loading.ts +1 -1
  258. package/src/lib/prompt.ts +306 -0
  259. package/src/lib/{completion → render/completion}/describe.ts +1 -2
  260. package/src/lib/{completion → render/completion}/index.ts +3 -4
  261. package/src/lib/{completion → render/completion}/render-bash.ts +1 -1
  262. package/src/lib/{completion → render/completion}/render-fish.ts +2 -1
  263. package/src/lib/{completion → render/completion}/render-zsh.ts +2 -1
  264. package/src/lib/{render-help.ts → render/help.ts} +1 -1
  265. package/src/lib/render/text.ts +17 -0
  266. package/src/lib/version.ts +2 -2
  267. package/lib/blueprint.d.ts +0 -7
  268. package/lib/blueprint.js.map +0 -1
  269. package/lib/command-spec.js.map +0 -1
  270. package/lib/completion/describe.js.map +0 -1
  271. package/lib/completion/index.js.map +0 -1
  272. package/lib/completion/render-bash.js.map +0 -1
  273. package/lib/completion/render-fish.js.map +0 -1
  274. package/lib/completion/render-zsh.js.map +0 -1
  275. package/lib/get-api-blueprint.d.ts +0 -6
  276. package/lib/get-api-blueprint.js +0 -18
  277. package/lib/get-api-blueprint.js.map +0 -1
  278. package/lib/get-command-blueprint-def.d.ts +0 -2
  279. package/lib/get-command-blueprint-def.js +0 -11
  280. package/lib/get-command-blueprint-def.js.map +0 -1
  281. package/lib/get-credentials.d.ts +0 -15
  282. package/lib/get-credentials.js +0 -35
  283. package/lib/get-credentials.js.map +0 -1
  284. package/lib/get-current-workspace-id.d.ts +0 -1
  285. package/lib/get-current-workspace-id.js +0 -9
  286. package/lib/get-current-workspace-id.js.map +0 -1
  287. package/lib/get-response-key.d.ts +0 -9
  288. package/lib/get-response-key.js.map +0 -1
  289. package/lib/get-seam.d.ts +0 -3
  290. package/lib/get-seam.js.map +0 -1
  291. package/lib/get-server.d.ts +0 -6
  292. package/lib/get-server.js +0 -17
  293. package/lib/get-server.js.map +0 -1
  294. package/lib/interact-for-access-code.js.map +0 -1
  295. package/lib/interact-for-acs-entrance.js.map +0 -1
  296. package/lib/interact-for-acs-system.js.map +0 -1
  297. package/lib/interact-for-acs-user.js.map +0 -1
  298. package/lib/interact-for-action-attempt-poll.js.map +0 -1
  299. package/lib/interact-for-array.js.map +0 -1
  300. package/lib/interact-for-blueprint-object.js.map +0 -1
  301. package/lib/interact-for-command-params.js.map +0 -1
  302. package/lib/interact-for-command-selection.d.ts +0 -2
  303. package/lib/interact-for-command-selection.js.map +0 -1
  304. package/lib/interact-for-connected-account.js.map +0 -1
  305. package/lib/interact-for-custom-metadata.js.map +0 -1
  306. package/lib/interact-for-device.js.map +0 -1
  307. package/lib/interact-for-login.js.map +0 -1
  308. package/lib/interact-for-resource.js.map +0 -1
  309. package/lib/interact-for-server-selection.js.map +0 -1
  310. package/lib/interact-for-timestamp.js.map +0 -1
  311. package/lib/interact-for-use-remote-api-defs.js.map +0 -1
  312. package/lib/interact-for-user-identity.js.map +0 -1
  313. package/lib/interact-for-workspace-id.js.map +0 -1
  314. package/lib/output/create-memory-output.js.map +0 -1
  315. package/lib/output/create-output.js +0 -34
  316. package/lib/output/create-output.js.map +0 -1
  317. package/lib/render-help.js.map +0 -1
  318. package/lib/types.d.ts +0 -6
  319. package/lib/types.js +0 -2
  320. package/lib/types.js.map +0 -1
  321. package/lib/util/cli-args.js.map +0 -1
  322. package/lib/util/ellipsis.d.ts +0 -1
  323. package/lib/util/ellipsis.js +0 -6
  324. package/lib/util/ellipsis.js.map +0 -1
  325. package/lib/util/prompt.d.ts +0 -80
  326. package/lib/util/prompt.js.map +0 -1
  327. package/lib/util/read-stdin-json.js.map +0 -1
  328. package/lib/util/request-seam-api.d.ts +0 -7
  329. package/lib/util/request-seam-api.js +0 -26
  330. package/lib/util/request-seam-api.js.map +0 -1
  331. package/lib/util/with-loading.js.map +0 -1
  332. package/lib/validate-token.js.map +0 -1
  333. package/src/lib/get-api-blueprint.ts +0 -31
  334. package/src/lib/get-command-blueprint-def.ts +0 -15
  335. package/src/lib/get-credentials.ts +0 -38
  336. package/src/lib/get-current-workspace-id.ts +0 -9
  337. package/src/lib/get-server.ts +0 -20
  338. package/src/lib/types.ts +0 -7
  339. package/src/lib/util/ellipsis.ts +0 -4
  340. package/src/lib/util/prompt.ts +0 -229
  341. package/src/lib/util/request-seam-api.ts +0 -47
  342. /package/lib/{validate-token.d.ts → auth/validate-token.d.ts} +0 -0
  343. /package/lib/{interact-for-access-code.d.ts → interactions/access-code.d.ts} +0 -0
  344. /package/lib/{interact-for-acs-entrance.d.ts → interactions/acs-entrance.d.ts} +0 -0
  345. /package/lib/{interact-for-acs-system.d.ts → interactions/acs-system.d.ts} +0 -0
  346. /package/lib/{interact-for-acs-user.d.ts → interactions/acs-user.d.ts} +0 -0
  347. /package/lib/{interact-for-action-attempt-poll.d.ts → interactions/action-attempt-poll.d.ts} +0 -0
  348. /package/lib/{interact-for-array.d.ts → interactions/array.d.ts} +0 -0
  349. /package/lib/{interact-for-connected-account.d.ts → interactions/connected-account.d.ts} +0 -0
  350. /package/lib/{interact-for-custom-metadata.d.ts → interactions/custom-metadata.d.ts} +0 -0
  351. /package/lib/{interact-for-device.d.ts → interactions/device.d.ts} +0 -0
  352. /package/lib/{interact-for-login.d.ts → interactions/login.d.ts} +0 -0
  353. /package/lib/{interact-for-resource.d.ts → interactions/resource.d.ts} +0 -0
  354. /package/lib/{interact-for-server-selection.d.ts → interactions/server-selection.d.ts} +0 -0
  355. /package/lib/{interact-for-timestamp.d.ts → interactions/timestamp.d.ts} +0 -0
  356. /package/lib/{interact-for-use-remote-api-defs.d.ts → interactions/use-remote-api-defs.d.ts} +0 -0
  357. /package/lib/{interact-for-user-identity.d.ts → interactions/user-identity.d.ts} +0 -0
  358. /package/lib/{interact-for-workspace-id.d.ts → interactions/workspace-id.d.ts} +0 -0
  359. /package/lib/{util → output}/read-stdin-json.d.ts +0 -0
  360. /package/lib/{util → output}/read-stdin-json.js +0 -0
  361. /package/lib/{util → output}/with-loading.d.ts +0 -0
  362. /package/lib/{completion → render/completion}/describe.d.ts +0 -0
  363. /package/lib/{completion → render/completion}/render-fish.js +0 -0
  364. /package/src/lib/{util → output}/read-stdin-json.ts +0 -0
@@ -1,19 +1,21 @@
1
- import { access, mkdir, readFile, rename, rm, writeFile, } from 'node:fs/promises';
2
- import { dirname, join } from 'node:path';
3
- import { fileURLToPath, pathToFileURL } from 'node:url';
1
+ import { access, mkdir, rm, writeFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
4
  import envPaths from 'env-paths';
5
5
  import { extract } from 'tar';
6
- import { withLoading } from './util/with-loading.js';
7
- import { seamapiBlueprintVersion } from './version.js';
6
+ import { withLoading } from '../output/with-loading.js';
7
+ import { getBlueprintVersion, getCacheFile, isUpdateCheckDue, readCache, writeCache, } from './cache.js';
8
8
  const typesPackageName = '@seamapi/types';
9
9
  const openapiTarEntryName = 'package/lib/seam/connect/openapi.js';
10
10
  const registryUrl = 'https://registry.npmjs.org';
11
- const updateCheckInterval = 24 * 60 * 60 * 1000;
12
- const cacheFileName = 'blueprint.json';
13
- const getBlueprint = async (options = {}) => {
11
+ /**
12
+ * Build a blueprint from the latest published Seam API types on npm,
13
+ * using the on-disk cache unless it is stale or an update is forced.
14
+ */
15
+ export const getBlueprint = async (options = {}) => {
14
16
  const update = options.update ?? false;
15
17
  const cacheDirectory = options.cacheDirectory ?? envPaths('seam', { suffix: '' }).cache;
16
- const cacheFile = join(cacheDirectory, cacheFileName);
18
+ const cacheFile = getCacheFile(cacheDirectory);
17
19
  const blueprintVersion = await getBlueprintVersion();
18
20
  const cache = await readCache(cacheFile);
19
21
  const isCacheUsable = cache != null && cache.blueprintVersion === blueprintVersion;
@@ -55,38 +57,6 @@ const getBlueprint = async (options = {}) => {
55
57
  });
56
58
  return blueprint;
57
59
  };
58
- const getBlueprintVersion = async () => {
59
- if (seamapiBlueprintVersion !== '0.0.0')
60
- return seamapiBlueprintVersion;
61
- // The version is only injected when the package is packed, so a
62
- // development checkout reads the pinned version from package.json
63
- // to keep invalidating the cache on version changes as expected.
64
- const pkg = await findOwnPackageJson();
65
- return pkg?.dependencies?.['@seamapi/blueprint'] ?? seamapiBlueprintVersion;
66
- };
67
- const findOwnPackageJson = async () => {
68
- let directory = dirname(fileURLToPath(import.meta.url));
69
- while (true) {
70
- try {
71
- const pkg = JSON.parse(await readFile(join(directory, 'package.json'), 'utf8'));
72
- if (pkg.name === '@seamapi/cli')
73
- return pkg;
74
- }
75
- catch {
76
- // Keep walking up until a package.json for this package is found.
77
- }
78
- const parent = dirname(directory);
79
- if (parent === directory)
80
- return null;
81
- directory = parent;
82
- }
83
- };
84
- const isUpdateCheckDue = (checkedAt) => {
85
- const checkedAtTime = Date.parse(checkedAt);
86
- if (Number.isNaN(checkedAtTime))
87
- return true;
88
- return Date.now() - checkedAtTime > updateCheckInterval;
89
- };
90
60
  const fetchLatestTypesPackageManifest = async () => {
91
61
  const res = await fetch(`${registryUrl}/${typesPackageName}/latest`, {
92
62
  headers: { accept: 'application/json' },
@@ -95,7 +65,8 @@ const fetchLatestTypesPackageManifest = async () => {
95
65
  if (!res.ok) {
96
66
  throw new Error(`npm registry responded with status ${res.status}`);
97
67
  }
98
- const manifest = (await res.json());
68
+ const body = await res.json();
69
+ const manifest = body;
99
70
  if (typeof manifest.version !== 'string' ||
100
71
  typeof manifest.dist?.tarball !== 'string') {
101
72
  throw new Error('npm registry returned an unexpected package manifest');
@@ -121,17 +92,20 @@ const downloadOpenapi = async (manifest, cacheDirectory) => {
121
92
  await rm(extractDirectory, { recursive: true, force: true });
122
93
  await mkdir(extractDirectory, { recursive: true });
123
94
  try {
124
- await writeFile(tarballFile, Buffer.from(await res.arrayBuffer()));
95
+ const tarball = await res.arrayBuffer();
96
+ await writeFile(tarballFile, Buffer.from(tarball));
125
97
  await extract({ file: tarballFile, cwd: extractDirectory }, [
126
98
  openapiTarEntryName,
127
99
  ]);
128
100
  const moduleFile = join(extractDirectory, openapiTarEntryName);
129
- if (!(await exists(moduleFile))) {
101
+ const moduleFileExists = await exists(moduleFile);
102
+ if (!moduleFileExists) {
130
103
  throw new Error(`Missing ${openapiTarEntryName} in package tarball`);
131
104
  }
132
105
  // The OpenAPI document is published as a JavaScript module, so import it.
133
106
  const openapiModuleUrl = pathToFileURL(moduleFile).href;
134
- const { default: openapi } = (await import(openapiModuleUrl));
107
+ const openapiModule = (await import(openapiModuleUrl));
108
+ const { default: openapi } = openapiModule;
135
109
  if (openapi == null) {
136
110
  throw new Error(`Missing default export in ${openapiTarEntryName}`);
137
111
  }
@@ -150,33 +124,5 @@ const exists = async (file) => {
150
124
  return false;
151
125
  }
152
126
  };
153
- const readCache = async (file) => {
154
- try {
155
- const cache = JSON.parse(await readFile(file, 'utf8'));
156
- if (!isBlueprintCache(cache))
157
- return null;
158
- return cache;
159
- }
160
- catch {
161
- return null;
162
- }
163
- };
164
- const writeCache = async (file, cache) => {
165
- const temporaryFile = `${file}.tmp`;
166
- await mkdir(dirname(file), { recursive: true });
167
- await writeFile(temporaryFile, `${JSON.stringify(cache)}\n`, 'utf8');
168
- await rename(temporaryFile, file);
169
- };
170
- const isBlueprintCache = (cache) => {
171
- if (cache == null || typeof cache !== 'object')
172
- return false;
173
- const { blueprintVersion, typesVersion, checkedAt, blueprint } = cache;
174
- return (typeof blueprintVersion === 'string' &&
175
- typeof typesVersion === 'string' &&
176
- typeof checkedAt === 'string' &&
177
- blueprint != null &&
178
- typeof blueprint === 'object');
179
- };
180
127
  const toErrorMessage = (error) => error instanceof Error ? error.message : String(error);
181
- export default getBlueprint;
182
- //# sourceMappingURL=blueprint.js.map
128
+ //# sourceMappingURL=source-npm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-npm.js","sourceRoot":"","sources":["../../src/lib/blueprint/source-npm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Blueprint } from '@seamapi/blueprint';
2
+ /**
3
+ * Build a blueprint from the OpenAPI document the current server is running,
4
+ * describing exactly what that server accepts rather than what is published.
5
+ */
6
+ export declare const createRemoteBlueprint: () => Promise<Blueprint>;
@@ -0,0 +1,14 @@
1
+ import { resolveAuth } from '../context.js';
2
+ /**
3
+ * Build a blueprint from the OpenAPI document the current server is running,
4
+ * describing exactly what that server accepts rather than what is published.
5
+ */
6
+ export const createRemoteBlueprint = async () => {
7
+ const [{ createBlueprint }, { getOpenapiSchema }] = await Promise.all([
8
+ import('@seamapi/blueprint'),
9
+ import('@seamapi/http/connect'),
10
+ ]);
11
+ const openapi = await getOpenapiSchema(resolveAuth().server);
12
+ return await createBlueprint({ openapi }, { omitUndocumented: true });
13
+ };
14
+ //# sourceMappingURL=source-remote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-remote.js","sourceRoot":"","sources":["../../src/lib/blueprint/source-remote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAAwB,EAAE;IAClE,MAAM,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpE,MAAM,CAAC,oBAAoB,CAAC;QAC5B,MAAM,CAAC,uBAAuB,CAAC;KAChC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAA;IAE5D,OAAO,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;AACvE,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { CliContext } from '../context.js';
2
+ import type { CommandResult, Invocation } from './registry.js';
3
+ /**
4
+ * Run a command that calls a Seam API endpoint: assemble the params,
5
+ * prompt for what is missing, make the request, and run any follow-ups
6
+ * the response calls for.
7
+ */
8
+ export declare const executeApiCommand: (invocation: Invocation, ctx: CliContext) => Promise<CommandResult>;
@@ -0,0 +1,71 @@
1
+ import { isDeepStrictEqual as isEqual } from 'node:util';
2
+ import { coerceArgParams } from '../args/coerce.js';
3
+ import { parseCliArgs, toArgName, toArgParams } from '../args/parse.js';
4
+ import { assertRequiredParams } from '../args/validate.js';
5
+ import { getCommandBlueprintDef, getResponseKey, } from '../blueprint/endpoint.js';
6
+ import { UsageError } from '../errors.js';
7
+ import { runResponseFollowUps } from '../http/follow-ups.js';
8
+ import { requestSeamApi } from '../http/request.js';
9
+ import { interactForCommandParams } from '../interactions/index.js';
10
+ /**
11
+ * Run a command that calls a Seam API endpoint: assemble the params,
12
+ * prompt for what is missing, make the request, and run any follow-ups
13
+ * the response calls for.
14
+ */
15
+ export const executeApiCommand = async (invocation, ctx) => {
16
+ const { path } = invocation;
17
+ const isNonInteractive = ctx.interactivity === 'non-interactive';
18
+ const apiPath = `/${path.join('/').replace(/-/g, '_')}`;
19
+ const parameters = getCommandBlueprintDef(path, ctx).request.parameters;
20
+ // Re-read the arguments knowing the endpoint's own parameter types — the
21
+ // generic first parse guessed, mangling opaque values like access codes —
22
+ // then coerce each value to the JSON type its parameter documents.
23
+ const stringKeys = parameters
24
+ .filter(({ format }) => format !== 'boolean' && format !== 'number')
25
+ .flatMap(({ name }) => [name, name.replace(/_/g, '-')]);
26
+ const { params: argParams, issues } = coerceArgParams(parameters, toArgParams(parseCliArgs(invocation.argv, { stringKeys })));
27
+ if (issues.length > 0) {
28
+ throw new UsageError(`Invalid ${issues.length === 1 ? 'value' : 'values'} for ${apiPath}: ${issues
29
+ .map(({ name, expected }) => `${toArgName(name)} expects ${expected}`)
30
+ .join('; ')}`, {
31
+ hint: `Run 'seam ${path.join(' ')} --help' to see what it accepts.`,
32
+ });
33
+ }
34
+ // Params given as arguments win over params piped in.
35
+ const commandParams = { ...invocation.stdinParams };
36
+ Object.assign(commandParams, argParams);
37
+ applyEndpointDefaults(path, commandParams);
38
+ // Non-interactive runs never prompt: validate and send what was given.
39
+ let params;
40
+ if (isNonInteractive) {
41
+ assertRequiredParams(parameters, commandParams, apiPath);
42
+ params = commandParams;
43
+ }
44
+ else {
45
+ const edited = await interactForCommandParams({ command: path, params: commandParams }, ctx);
46
+ if (edited === '[Back]') {
47
+ return { kind: 'back', toPath: path.slice(0, -1) };
48
+ }
49
+ params = edited;
50
+ }
51
+ if (apiPath.includes('/events/list') && params['between']) {
52
+ delete params['since'];
53
+ }
54
+ const api = await ctx.api();
55
+ const body = await requestSeamApi({ path: apiPath, params, responseKey: getResponseKey(path, ctx) }, { api, output: ctx.output });
56
+ await runResponseFollowUps(body, ctx);
57
+ return { kind: 'done' };
58
+ };
59
+ /**
60
+ * Per-endpoint request policy that is not derivable from the API
61
+ * definitions. Keep this table small and explicit.
62
+ */
63
+ const applyEndpointDefaults = (path, params) => {
64
+ // Unbounded event lists are never wanted, so default to the last month.
65
+ if (isEqual(path, ['events', 'list']) && !params['since']) {
66
+ const date = new Date();
67
+ date.setMonth(date.getMonth() - 1);
68
+ params['since'] = date.toISOString();
69
+ }
70
+ };
71
+ //# sourceMappingURL=api-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-command.js","sourceRoot":"","sources":["../../src/lib/commands/api-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ApiBlueprint } from '../../blueprint/index.js';
2
+ import type { Command } from '../../commands/registry.js';
3
+ import type { CommandSpec } from '../../commands/spec.js';
4
+ import { type CompletionShell } from '../../render/completion/index.js';
5
+ /**
6
+ * Print the completion script for a shell.
7
+ *
8
+ * Completions always come from the cached API definitions so that they can
9
+ * be generated without logging in. They may lag the definitions served by
10
+ * Seam when config use-remote-api-defs is enabled.
11
+ *
12
+ * Called by the entry before any auth or blueprint context exists, and by
13
+ * the registered command's executor — one implementation for both.
14
+ */
15
+ export declare const printCompletion: (shell: CompletionShell, spec: CommandSpec) => void;
16
+ type BuildSpec = (blueprint: ApiBlueprint) => CommandSpec;
17
+ export declare const createCompletionCommands: (buildSpec: BuildSpec) => Command[];
18
+ export {};
@@ -0,0 +1,35 @@
1
+ import { getOutput } from '../../output/get-output.js';
2
+ import { renderCompletion, } from '../../render/completion/index.js';
3
+ /**
4
+ * Print the completion script for a shell.
5
+ *
6
+ * Completions always come from the cached API definitions so that they can
7
+ * be generated without logging in. They may lag the definitions served by
8
+ * Seam when config use-remote-api-defs is enabled.
9
+ *
10
+ * Called by the entry before any auth or blueprint context exists, and by
11
+ * the registered command's executor — one implementation for both.
12
+ */
13
+ export const printCompletion = (shell, spec) => {
14
+ getOutput().text(renderCompletion(shell, spec));
15
+ };
16
+ const completionCommand = (shell, buildSpec) => ({
17
+ definition: {
18
+ path: ['completion', shell],
19
+ kind: 'cli',
20
+ title: `Print the ${shell} completion script.`,
21
+ description: '',
22
+ flags: [],
23
+ },
24
+ requiresAuth: false,
25
+ execute: async (_invocation, ctx) => {
26
+ printCompletion(shell, buildSpec(ctx.blueprint));
27
+ return { kind: 'done' };
28
+ },
29
+ });
30
+ export const createCompletionCommands = (buildSpec) => [
31
+ completionCommand('bash', buildSpec),
32
+ completionCommand('fish', buildSpec),
33
+ completionCommand('zsh', buildSpec),
34
+ ];
35
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/lib/commands/local/completion.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAEL,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AAEvC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAsB,EACtB,IAAiB,EACX,EAAE;IACR,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;AACjD,CAAC,CAAA;AAID,MAAM,iBAAiB,GAAG,CACxB,KAAsB,EACtB,SAAoB,EACX,EAAE,CAAC,CAAC;IACb,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC;QAC3B,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,aAAa,KAAK,qBAAqB;QAC9C,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAClC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;QAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAAa,EAAE,CAAC;IAC3E,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;IACpC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;IACpC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC;CACpC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ export declare const configRevealLocationCommand: Command;
@@ -0,0 +1,15 @@
1
+ export const configRevealLocationCommand = {
2
+ definition: {
3
+ path: ['config', 'reveal-location'],
4
+ kind: 'cli',
5
+ title: 'Print the path to the CLI configuration file.',
6
+ description: '',
7
+ flags: [],
8
+ },
9
+ requiresAuth: true,
10
+ execute: async (_invocation, ctx) => {
11
+ ctx.output.text(ctx.config.path);
12
+ return { kind: 'done' };
13
+ },
14
+ };
15
+ //# sourceMappingURL=config-reveal-location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-reveal-location.js","sourceRoot":"","sources":["../../../src/lib/commands/local/config-reveal-location.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,2BAA2B,GAAY;IAClD,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACnC,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,+CAA+C;QACtD,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAClC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ /** Hidden: a development shortcut, kept out of help and completion. */
3
+ export declare const configSetFakeServerCommand: Command;
@@ -0,0 +1,20 @@
1
+ import { selectFakeServer } from '../../auth/operations.js';
2
+ /** Hidden: a development shortcut, kept out of help and completion. */
3
+ export const configSetFakeServerCommand = {
4
+ definition: {
5
+ path: ['config', 'set', 'fake-server'],
6
+ kind: 'cli',
7
+ title: 'Point the CLI at a fake Seam Connect server.',
8
+ description: '',
9
+ flags: [],
10
+ },
11
+ requiresAuth: false,
12
+ hidden: true,
13
+ execute: async (_invocation, ctx) => {
14
+ const { server } = selectFakeServer({ config: ctx.config });
15
+ ctx.output.info(`Server URL set to ${server}`);
16
+ ctx.output.info(`PAT set to use fakeseamconnect with "seam_apikey1_token"`);
17
+ return { kind: 'done' };
18
+ },
19
+ };
20
+ //# sourceMappingURL=config-set-fake-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-set-fake-server.js","sourceRoot":"","sources":["../../../src/lib/commands/local/config-set-fake-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,uEAAuE;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAY;IACjD,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC;QACtC,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,8CAA8C;QACrD,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAA;QAC9C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;QAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ export declare const configUseRemoteApiDefsCommand: Command;
@@ -0,0 +1,20 @@
1
+ import { NonInteractiveError } from '../../errors.js';
2
+ import { interactForUseRemoteApiDefs } from '../../interactions/index.js';
3
+ export const configUseRemoteApiDefsCommand = {
4
+ definition: {
5
+ path: ['config', 'use-remote-api-defs'],
6
+ kind: 'cli',
7
+ title: 'Choose whether to use the API definitions served by Seam.',
8
+ description: '',
9
+ flags: [],
10
+ },
11
+ requiresAuth: true,
12
+ execute: async (_invocation, ctx) => {
13
+ if (ctx.interactivity === 'non-interactive') {
14
+ throw new NonInteractiveError('Cannot select whether to use remote API definitions in non-interactive mode');
15
+ }
16
+ await interactForUseRemoteApiDefs();
17
+ return { kind: 'done' };
18
+ },
19
+ };
20
+ //# sourceMappingURL=config-use-remote-api-defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-use-remote-api-defs.js","sourceRoot":"","sources":["../../../src/lib/commands/local/config-use-remote-api-defs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAEvE,MAAM,CAAC,MAAM,6BAA6B,GAAY;IACpD,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QACvC,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,2DAA2D;QAClE,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAClC,IAAI,GAAG,CAAC,aAAa,KAAK,iBAAiB,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,CAC3B,6EAA6E,CAC9E,CAAA;QACH,CAAC;QACD,MAAM,2BAA2B,EAAE,CAAA;QACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ export declare const healthCommand: Command;
@@ -0,0 +1,18 @@
1
+ import { requestSeamApi } from '../../http/request.js';
2
+ export const healthCommand = {
3
+ definition: {
4
+ path: ['health', 'get-health'],
5
+ // Handled by the CLI itself, but calls the Seam API.
6
+ kind: 'api',
7
+ title: 'Report the health of the Seam API.',
8
+ description: '',
9
+ flags: [],
10
+ },
11
+ requiresAuth: true,
12
+ execute: async (_invocation, ctx) => {
13
+ const api = await ctx.api();
14
+ await requestSeamApi({ path: '/health/get_health', params: {} }, { api, output: ctx.output });
15
+ return { kind: 'done' };
16
+ },
17
+ };
18
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/lib/commands/local/health.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC9B,qDAAqD;QACrD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,CAAA;QAC3B,MAAM,cAAc,CAClB,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,EAC1C,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAC5B,CAAA;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ export declare const loginCommand: Command;
@@ -0,0 +1,35 @@
1
+ import { assertMutable, login } from '../../auth/operations.js';
2
+ import { stringFlag } from '../../commands/spec.js';
3
+ import { NonInteractiveError } from '../../errors.js';
4
+ import { interactForLogin } from '../../interactions/index.js';
5
+ export const loginCommand = {
6
+ definition: {
7
+ path: ['login'],
8
+ kind: 'cli',
9
+ title: 'Log in to Seam.',
10
+ description: 'Prompts for a personal access token unless one is passed with --token.',
11
+ flags: [
12
+ stringFlag('server', 'Seam API server to log in to.'),
13
+ stringFlag('token', 'Personal access token to log in with.'),
14
+ stringFlag('workspace-id', 'Workspace to select after logging in.'),
15
+ ],
16
+ },
17
+ requiresAuth: false,
18
+ execute: async ({ args }, ctx) => {
19
+ if (args['token'] || args['workspace_id'] || args['server']) {
20
+ await login({
21
+ server: args['server'] ? args['server'] : undefined,
22
+ token: args['token'] ? String(args['token']).trim() : undefined,
23
+ workspaceId: args['workspace_id'] ? args['workspace_id'] : undefined,
24
+ }, ctx.config);
25
+ return { kind: 'done' };
26
+ }
27
+ assertMutable(ctx.auth, 'token', 'log in');
28
+ if (ctx.interactivity === 'non-interactive') {
29
+ throw new NonInteractiveError('Missing required parameter for login: --token');
30
+ }
31
+ await interactForLogin();
32
+ return { kind: 'done' };
33
+ },
34
+ };
35
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/lib/commands/local/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAY;IACnC,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,wEAAwE;QAC1E,KAAK,EAAE;YACL,UAAU,CAAC,QAAQ,EAAE,+BAA+B,CAAC;YACrD,UAAU,CAAC,OAAO,EAAE,uCAAuC,CAAC;YAC5D,UAAU,CAAC,cAAc,EAAE,uCAAuC,CAAC;SACpE;KACF;IACD,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,CACT;gBACE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC/D,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;aACrE,EACD,GAAG,CAAC,MAAM,CACX,CAAA;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QACzB,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC1C,IAAI,GAAG,CAAC,aAAa,KAAK,iBAAiB,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,CAC3B,+CAA+C,CAChD,CAAA;QACH,CAAC;QACD,MAAM,gBAAgB,EAAE,CAAA;QACxB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ export declare const logoutCommand: Command;
@@ -0,0 +1,17 @@
1
+ import { logout } from '../../auth/operations.js';
2
+ export const logoutCommand = {
3
+ definition: {
4
+ path: ['logout'],
5
+ kind: 'cli',
6
+ title: 'Log out of Seam.',
7
+ description: '',
8
+ flags: [],
9
+ },
10
+ requiresAuth: true,
11
+ execute: async (_invocation, ctx) => {
12
+ logout(ctx.config);
13
+ ctx.output.info('Logged out!');
14
+ return { kind: 'done' };
15
+ },
16
+ };
17
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/lib/commands/local/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ export declare const selectServerCommand: Command;
@@ -0,0 +1,27 @@
1
+ import { assertMutable, selectServer } from '../../auth/operations.js';
2
+ import { stringFlag } from '../../commands/spec.js';
3
+ import { NonInteractiveError } from '../../errors.js';
4
+ import { interactForServerSelection } from '../../interactions/index.js';
5
+ export const selectServerCommand = {
6
+ definition: {
7
+ path: ['select', 'server'],
8
+ kind: 'cli',
9
+ title: 'Select the Seam API server.',
10
+ description: '',
11
+ flags: [stringFlag('server', 'Seam API server to select.')],
12
+ },
13
+ requiresAuth: false,
14
+ execute: async ({ args }, ctx) => {
15
+ assertMutable(ctx.auth, 'server', 'select a server');
16
+ if (args['server']) {
17
+ selectServer(args['server'], ctx.config);
18
+ return { kind: 'done' };
19
+ }
20
+ if (ctx.interactivity === 'non-interactive') {
21
+ throw new NonInteractiveError('Missing required parameter for select server: --server');
22
+ }
23
+ await interactForServerSelection();
24
+ return { kind: 'done' };
25
+ },
26
+ };
27
+ //# sourceMappingURL=select-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-server.js","sourceRoot":"","sources":["../../../src/lib/commands/local/select-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAEtE,MAAM,CAAC,MAAM,mBAAmB,GAAY;IAC1C,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC1B,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;KAC5D;IACD,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;QAC/B,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YACxC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QACzB,CAAC;QACD,IAAI,GAAG,CAAC,aAAa,KAAK,iBAAiB,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,CAC3B,wDAAwD,CACzD,CAAA;QACH,CAAC;QACD,MAAM,0BAA0B,EAAE,CAAA;QAClC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ export declare const selectWorkspaceCommand: Command;
@@ -0,0 +1,22 @@
1
+ import { assertMutable } from '../../auth/operations.js';
2
+ import { NonInteractiveError } from '../../errors.js';
3
+ import { interactForWorkspaceId } from '../../interactions/index.js';
4
+ export const selectWorkspaceCommand = {
5
+ definition: {
6
+ path: ['select', 'workspace'],
7
+ kind: 'cli',
8
+ title: 'Select the current workspace.',
9
+ description: '',
10
+ flags: [],
11
+ },
12
+ requiresAuth: true,
13
+ execute: async (_invocation, ctx) => {
14
+ assertMutable(ctx.auth, 'workspaceId', 'select a workspace');
15
+ if (ctx.interactivity === 'non-interactive') {
16
+ throw new NonInteractiveError('Cannot select a workspace in non-interactive mode: pass --workspace-id to "seam login"');
17
+ }
18
+ await interactForWorkspaceId();
19
+ return { kind: 'done' };
20
+ },
21
+ };
22
+ //# sourceMappingURL=select-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-workspace.js","sourceRoot":"","sources":["../../../src/lib/commands/local/select-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAElE,MAAM,CAAC,MAAM,sBAAsB,GAAY;IAC7C,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC7B,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAClC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAA;QAC5D,IAAI,GAAG,CAAC,aAAa,KAAK,iBAAiB,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,CAC3B,wFAAwF,CACzF,CAAA;QACH,CAAC;QACD,MAAM,sBAAsB,EAAE,CAAA;QAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { Command } from '../../commands/registry.js';
2
+ /**
3
+ * Run the Seam setup wizard.
4
+ *
5
+ * Intercepted by the entry before argument parsing so the wizard owns its
6
+ * own argv; the registered executor covers selecting it interactively.
7
+ */
8
+ export declare const runWizard: (argv: string[]) => Promise<void>;
9
+ export declare const wizardCommand: Command;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Run the Seam setup wizard.
3
+ *
4
+ * Intercepted by the entry before argument parsing so the wizard owns its
5
+ * own argv; the registered executor covers selecting it interactively.
6
+ */
7
+ export const runWizard = async (argv) => {
8
+ const { default: wizard } = await import('@seamapi/wizard');
9
+ await wizard({
10
+ argv,
11
+ commandName: 'seam wizard',
12
+ });
13
+ };
14
+ export const wizardCommand = {
15
+ definition: {
16
+ path: ['wizard'],
17
+ kind: 'cli',
18
+ title: 'Set up Seam in the current project.',
19
+ description: 'Takes a project from zero to a working Seam integration. Run seam wizard --help for its own options.',
20
+ flags: [],
21
+ },
22
+ requiresAuth: false,
23
+ execute: async () => {
24
+ await runWizard([]);
25
+ return { kind: 'done' };
26
+ },
27
+ };
28
+ //# sourceMappingURL=wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/lib/commands/local/wizard.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAc,EAAiB,EAAE;IAC/D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC3D,MAAM,MAAM,CAAC;QACX,IAAI;QACJ,WAAW,EAAE,aAAa;KAC3B,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,qCAAqC;QAC5C,WAAW,EACT,sGAAsG;QACxG,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,SAAS,CAAC,EAAE,CAAC,CAAA;QACnB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}