@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,6 +1,6 @@
1
- import { getSeam } from './get-seam.js';
2
- import { interactForAcsSystem } from './interact-for-acs-system.js';
3
- import { interactForResource } from './interact-for-resource.js';
1
+ import { getSeam } from '../http/client.js';
2
+ import { interactForAcsSystem } from './acs-system.js';
3
+ import { interactForResource } from './resource.js';
4
4
  export const interactForAcsUser = async () => {
5
5
  const seam = await getSeam();
6
6
  const acsSystemId = await interactForAcsSystem('What acs_system does the acs_user belong to?');
@@ -14,4 +14,4 @@ export const interactForAcsUser = async () => {
14
14
  }),
15
15
  });
16
16
  };
17
- //# sourceMappingURL=interact-for-acs-user.js.map
17
+ //# sourceMappingURL=acs-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acs-user.js","sourceRoot":"","sources":["../../src/lib/interactions/acs-user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;IAE5B,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAC5C,8CAA8C,CAC/C,CAAA;IAED,OAAO,mBAAmB,CAAC;QACzB,YAAY,EAAE,UAAU;QACxB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;QACzE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnB,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YACnD,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
- import { getSeam } from './get-seam.js';
2
- import { getOutput } from './output/get-output.js';
3
- import { promptConfirm } from './util/prompt.js';
4
- import { withLoading } from './util/with-loading.js';
1
+ import { getSeam } from '../http/client.js';
2
+ import { getOutput } from '../output/get-output.js';
3
+ import { withLoading } from '../output/with-loading.js';
4
+ import { promptConfirm } from '../prompt.js';
5
5
  export const interactForActionAttemptPoll = async (actionAttempt) => {
6
6
  if (actionAttempt.status === 'pending') {
7
7
  const pollForActionAttempt = await promptConfirm({
@@ -18,4 +18,4 @@ export const interactForActionAttemptPoll = async (actionAttempt) => {
18
18
  }
19
19
  }
20
20
  };
21
- //# sourceMappingURL=interact-for-action-attempt-poll.js.map
21
+ //# sourceMappingURL=action-attempt-poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-attempt-poll.js","sourceRoot":"","sources":["../../src/lib/interactions/action-attempt-poll.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAC/C,aAA0D,EAC1D,EAAE;IACF,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,oBAAoB,GAAG,MAAM,aAAa,CAAC;YAC/C,OAAO,EAAE,6DAA6D;YACtE,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAA;QAEF,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;YAC5B,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,aAAa,CAAA;YAE5D,MAAM,oBAAoB,GAAG,MAAM,WAAW,CAC5C,2BAA2B,EAC3B,GAAG,EAAE,CACH,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,EAAE,iBAAiB,EAAE,eAAe,EAAE,EACtC,EAAE,oBAAoB,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CACpE,CACJ,CAAA;YACD,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
- import { getOutput } from './output/get-output.js';
2
- import { PromptCancelledError, promptNumber, promptSelect, promptText, withBackHint, } from './util/prompt.js';
1
+ import { PromptCancelledError } from '../errors.js';
2
+ import { getOutput } from '../output/get-output.js';
3
+ import { promptNumber, promptSelect, promptText, withBackHint, } from '../prompt.js';
3
4
  export const interactForArray = async (array, message) => {
4
5
  const updatedArray = [...array];
5
6
  const output = getOutput();
@@ -60,4 +61,4 @@ export const interactForArray = async (array, message) => {
60
61
  } while (action !== 'done');
61
62
  return updatedArray;
62
63
  };
63
- //# sourceMappingURL=interact-for-array.js.map
64
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/lib/interactions/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,eAAe,CAAA;AAEtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAAe,EACf,OAAe,EACI,EAAE;IACrB,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,gBAAgB,CAAC,CAAA;QACvC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACnC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACtC,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC,CAAA;IAED,IAAI,MAAc,CAAA;IAClB,GAAG,CAAC;QACF,WAAW,EAAE,CAAA;QAEb,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,YAAY,CAAC;gBAC1B,OAAO,EAAE,YAAY,CAAC,mBAAmB,CAAC;gBAC1C,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;oBACtC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC5C,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE;iBAC3C;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,oBAAoB,CAAC;gBAAE,MAAM,KAAK,CAAA;YACzD,oEAAoE;YACpE,MAAK;QACP,CAAC;QAED,IAAI,CAAC;YACH,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;oBAC/B,OAAO,EAAE,YAAY,CAAC,qBAAqB,CAAC;iBAC7C,CAAC,CAAA;gBACF,IAAI,OAAO,EAAE,CAAC;oBACZ,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;oBAC/B,OAAO,EAAE,YAAY,CAAC,wCAAwC,CAAC;oBAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,YAAY,CAAC,MAAM;wBACvC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,eAAe;iBACtB,CAAC,CAAA;gBACF,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,oBAAoB,CAAC;gBAAE,MAAM,KAAK,CAAA;YACzD,yDAAyD;QAC3D,CAAC;IACH,CAAC,QAAQ,MAAM,KAAK,MAAM,EAAC;IAE3B,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import type { Parameter } from '@seamapi/blueprint';
2
- import type { ContextHelpers } from './types.js';
2
+ import type { CliContext } from '../context.js';
3
3
  export declare const interactForBlueprintObject: (args: {
4
4
  command: string[];
5
5
  parameters: Parameter[];
6
6
  params: Record<string, any>;
7
+ hasRequiredParameters?: boolean;
7
8
  isSubProperty?: boolean;
8
9
  subPropertyPath?: string;
9
- }, ctx: ContextHelpers) => Promise<any>;
10
+ }, ctx: CliContext) => Promise<any>;
@@ -1,17 +1,18 @@
1
- import { interactForAccessCode } from './interact-for-access-code.js';
2
- import { interactForAcsEntrance } from './interact-for-acs-entrance.js';
3
- import { interactForAcsSystem } from './interact-for-acs-system.js';
4
- import { interactForAcsUser } from './interact-for-acs-user.js';
5
- import { interactForArray } from './interact-for-array.js';
6
- import { interactForConnectedAccount } from './interact-for-connected-account.js';
7
- import { interactForCustomMetadata } from './interact-for-custom-metadata.js';
8
- import { interactForDevice } from './interact-for-device.js';
9
- import { interactForTimestamp } from './interact-for-timestamp.js';
10
- import { interactForUserIdentity } from './interact-for-user-identity.js';
11
- import { getOutput } from './output/get-output.js';
12
- import { NonInteractiveError, toArgName } from './util/cli-args.js';
13
- import { ellipsis } from './util/ellipsis.js';
14
- import { promptAutocomplete, promptAutocompleteMultiselect, PromptCancelledError, promptConfirm, promptNumber, promptSelect, promptText, withBackHint, } from './util/prompt.js';
1
+ import { assertRequiredParams } from '../args/validate.js';
2
+ import { NonInteractiveError, PromptCancelledError } from '../errors.js';
3
+ import { getOutput } from '../output/get-output.js';
4
+ import { promptAutocomplete, promptAutocompleteMultiselect, promptConfirm, promptNumber, promptSelect, promptText, withBackHint, } from '../prompt.js';
5
+ import { ellipsis } from '../render/text.js';
6
+ import { interactForAccessCode } from './access-code.js';
7
+ import { interactForAcsEntrance } from './acs-entrance.js';
8
+ import { interactForAcsSystem } from './acs-system.js';
9
+ import { interactForAcsUser } from './acs-user.js';
10
+ import { interactForArray } from './array.js';
11
+ import { interactForConnectedAccount } from './connected-account.js';
12
+ import { interactForCustomMetadata } from './custom-metadata.js';
13
+ import { interactForDevice } from './device.js';
14
+ import { interactForTimestamp } from './timestamp.js';
15
+ import { interactForUserIdentity } from './user-identity.js';
15
16
  const ergonomicPropOrder = [
16
17
  'name',
17
18
  'connected_account_id',
@@ -31,19 +32,23 @@ export const interactForBlueprintObject = async (args, ctx) => {
31
32
  .map((parameter) => parameter.name);
32
33
  const isSupplied = (k) => args.params[k] !== undefined;
33
34
  const haveAllRequiredParams = required.every(isSupplied);
35
+ // Some request schemas require one of several parameters without marking
36
+ // any individual parameter as required. The request-level signal tells us
37
+ // that an entirely empty request still needs interaction.
38
+ const hasAnyParams = Object.values(args.params).some((value) => value !== undefined);
39
+ const satisfiesRequestRequirement = args.hasRequiredParameters !== true || hasAnyParams;
34
40
  const cmdPath = `/${args.command.join('/').replace(/-/g, '_')}`;
35
41
  const shouldAutoSubmit = ctx.interactivity !== 'interactive' &&
36
42
  haveAllRequiredParams &&
43
+ satisfiesRequestRequirement &&
37
44
  !args.isSubProperty;
38
45
  if (shouldAutoSubmit) {
39
46
  return args.params;
40
47
  }
41
48
  if (ctx.interactivity === 'non-interactive') {
42
- const missing = required.filter((k) => !isSupplied(k));
43
49
  const target = args.isSubProperty ? `"${args.subPropertyPath}"` : cmdPath;
44
- throw new NonInteractiveError(missing.length > 0
45
- ? `Missing required ${missing.length === 1 ? 'parameter' : 'parameters'} for ${target}: ${missing.map(toArgName).join(' ')}`
46
- : `Cannot prompt for ${target} in non-interactive mode`);
50
+ assertRequiredParams(args.parameters, args.params, target);
51
+ throw new NonInteractiveError(`Cannot prompt for ${target} in non-interactive mode`);
47
52
  }
48
53
  const propSortScore = (prop) => {
49
54
  if (required.includes(prop))
@@ -62,7 +67,9 @@ export const interactForBlueprintObject = async (args, ctx) => {
62
67
  paramToEdit = await promptAutocomplete({
63
68
  message: parameterSelectionMessage,
64
69
  choices: [
65
- ...(haveAllRequiredParams && !args.isSubProperty
70
+ ...(haveAllRequiredParams &&
71
+ satisfiesRequestRequirement &&
72
+ !args.isSubProperty
66
73
  ? [
67
74
  {
68
75
  value: 'done',
@@ -129,6 +136,28 @@ export const interactForBlueprintObject = async (args, ctx) => {
129
136
  // Dismissing any prompt below returns to the parameter menu with the
130
137
  // parameter left as it was, rather than ending the whole command.
131
138
  try {
139
+ if (prop != null && (prop.isNullable || isSupplied(paramToEdit))) {
140
+ const action = await promptSelect({
141
+ message: withBackHint(`${paramToEdit}:`),
142
+ choices: [
143
+ { label: 'Enter a value', value: 'value' },
144
+ ...(prop.isNullable
145
+ ? [{ label: 'Set to null', value: 'null' }]
146
+ : []),
147
+ ...(isSupplied(paramToEdit)
148
+ ? [{ label: 'Unset', value: 'unset' }]
149
+ : []),
150
+ ],
151
+ });
152
+ if (action === 'null') {
153
+ args.params[paramToEdit] = null;
154
+ return interactForBlueprintObject(args, ctx);
155
+ }
156
+ if (action === 'unset') {
157
+ delete args.params[paramToEdit];
158
+ return interactForBlueprintObject(args, ctx);
159
+ }
160
+ }
132
161
  if (paramToEdit === 'device_id') {
133
162
  args.params[paramToEdit] = await interactForDevice();
134
163
  return interactForBlueprintObject(args, ctx);
@@ -249,4 +278,4 @@ export const interactForBlueprintObject = async (args, ctx) => {
249
278
  }
250
279
  throw new Error(`Didn't know how to handle Blueprint parameter for property: "${paramToEdit}"`);
251
280
  };
252
- //# sourceMappingURL=interact-for-blueprint-object.js.map
281
+ //# sourceMappingURL=blueprint-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint-object.js","sourceRoot":"","sources":["../../src/lib/interactions/blueprint-object.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { ContextHelpers } from './types.js';
1
+ import type { CliContext } from '../context.js';
2
2
  export declare const interactForCommandParams: (args: {
3
3
  command: string[];
4
4
  params: Record<string, any>;
5
- }, ctx: ContextHelpers) => Promise<any>;
5
+ }, ctx: CliContext) => Promise<any>;
@@ -1,11 +1,12 @@
1
- import { getCommandBlueprintDef } from './get-command-blueprint-def.js';
2
- import { interactForBlueprintObject } from './interact-for-blueprint-object.js';
1
+ import { getCommandBlueprintDef } from '../blueprint/endpoint.js';
2
+ import { interactForBlueprintObject } from './blueprint-object.js';
3
3
  export const interactForCommandParams = async (args, ctx) => {
4
4
  const endpoint = getCommandBlueprintDef(args.command, ctx);
5
5
  return interactForBlueprintObject({
6
6
  command: args.command,
7
7
  params: args.params,
8
8
  parameters: endpoint.request.parameters,
9
+ hasRequiredParameters: endpoint.request.hasRequiredParameters,
9
10
  }, ctx);
10
11
  };
11
- //# sourceMappingURL=interact-for-command-params.js.map
12
+ //# sourceMappingURL=command-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-params.js","sourceRoot":"","sources":["../../src/lib/interactions/command-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAGlE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAElE,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAGC,EACD,GAAe,EACD,EAAE;IAChB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE1D,OAAO,0BAA0B,CAC/B;QACE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU;QACvC,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,qBAAqB;KAC9D,EACD,GAAG,CACJ,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { Interactivity } from '../args/parse.js';
2
+ /**
3
+ * Resolve a command path to a full command, prompting to complete it when
4
+ * interactive. `commands` is every selectable command path, from the
5
+ * registry's spec.
6
+ */
7
+ export declare function interactForCommandSelection(commandPath: string[], helpers: {
8
+ commands: string[][];
9
+ interactivity: Interactivity;
10
+ }): Promise<string[]>;
@@ -1,6 +1,6 @@
1
1
  import { isDeepStrictEqual as isEqual } from 'node:util';
2
- import { NonInteractiveError } from './util/cli-args.js';
3
- import { promptAutocomplete, PromptCancelledError, withBackHint, } from './util/prompt.js';
2
+ import { NonInteractiveError, PromptCancelledError } from '../errors.js';
3
+ import { promptAutocomplete, withBackHint } from '../prompt.js';
4
4
  const uniqBy = (items, keyOf) => {
5
5
  const seen = new Set();
6
6
  return items.filter((item) => {
@@ -21,19 +21,13 @@ function ergonomicSort(aStr, bStr) {
21
21
  b = ergonomicOrder.length;
22
22
  return a > b ? 1 : a < b ? -1 : 0;
23
23
  }
24
+ /**
25
+ * Resolve a command path to a full command, prompting to complete it when
26
+ * interactive. `commands` is every selectable command path, from the
27
+ * registry's spec.
28
+ */
24
29
  export async function interactForCommandSelection(commandPath, helpers) {
25
- const commands = helpers.blueprint.routes
26
- .flatMap((route) => route.endpoints)
27
- .map((endpoint) => endpoint.path.replace(/_/g, '-').replace(/^\//, '').split('/'))
28
- .concat([
29
- ['login'],
30
- ['logout'],
31
- ['config', 'reveal-location'],
32
- ['config', 'use-remote-api-defs'],
33
- ['select', 'workspace'],
34
- ['select', 'server'],
35
- ['health', 'get-health'],
36
- ]);
30
+ const commands = helpers.commands;
37
31
  const possibleCommands = uniqBy(commandPath.length === 0
38
32
  ? commands
39
33
  : commands.filter((cmd) => isEqual(cmd.slice(0, commandPath.length), commandPath)), (v) => v[commandPath.length]);
@@ -98,4 +92,4 @@ export async function interactForCommandSelection(commandPath, helpers) {
98
92
  }
99
93
  return fullCommand;
100
94
  }
101
- //# sourceMappingURL=interact-for-command-selection.js.map
95
+ //# sourceMappingURL=command-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-selection.js","sourceRoot":"","sources":["../../src/lib/interactions/command-selection.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { getSeam } from './get-seam.js';
2
- import { interactForResource } from './interact-for-resource.js';
1
+ import { getSeam } from '../http/client.js';
2
+ import { interactForResource } from './resource.js';
3
3
  export const interactForConnectedAccount = async () => {
4
4
  const seam = await getSeam();
5
5
  return interactForResource({
@@ -17,4 +17,4 @@ export const interactForConnectedAccount = async () => {
17
17
  },
18
18
  });
19
19
  };
20
- //# sourceMappingURL=interact-for-connected-account.js.map
20
+ //# sourceMappingURL=connected-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connected-account.js","sourceRoot":"","sources":["../../src/lib/interactions/connected-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,IAAI,EAAE;IACpD,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;IAE5B,OAAO,mBAAmB,CAAC;QACzB,YAAY,EAAE,mBAAmB;QACjC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACnD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,gBAAgB,CAAC,eAAe,IAAI,EAAE,CACvC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAA;YAE/D,OAAO;gBACL,KAAK,EACH,gBAAgB,CAAC,eAAe,EAAE,KAAK;oBACvC,WAAW,CAAC,CAAC,CAAC;oBACd,WAAW;gBACb,KAAK,EAAE,gBAAgB,CAAC,oBAAoB;gBAC5C,WAAW,EAAE,GAAG,gBAAgB,CAAC,YAAY,IAAI,gBAAgB,CAAC,oBAAoB,EAAE;aACzF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
- import { getOutput } from './output/get-output.js';
2
- import { PromptCancelledError, promptSelect, promptText, withBackHint, } from './util/prompt.js';
1
+ import { PromptCancelledError } from '../errors.js';
2
+ import { getOutput } from '../output/get-output.js';
3
+ import { promptSelect, promptText, withBackHint } from '../prompt.js';
3
4
  export const interactForCustomMetadata = async (customMetadata) => {
4
5
  const updatedCustomMetadata = { ...customMetadata };
5
6
  const output = getOutput();
@@ -74,4 +75,4 @@ export const interactForCustomMetadata = async (customMetadata) => {
74
75
  } while (action !== 'done');
75
76
  return updatedCustomMetadata;
76
77
  };
77
- //# sourceMappingURL=interact-for-custom-metadata.js.map
78
+ //# sourceMappingURL=custom-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-metadata.js","sourceRoot":"","sources":["../../src/lib/interactions/custom-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { getSeam } from './get-seam.js';
2
- import { interactForResource } from './interact-for-resource.js';
1
+ import { getSeam } from '../http/client.js';
2
+ import { interactForResource } from './resource.js';
3
3
  export const interactForDevice = async () => {
4
4
  const seam = await getSeam();
5
5
  return interactForResource({
@@ -12,4 +12,4 @@ export const interactForDevice = async () => {
12
12
  }),
13
13
  });
14
14
  };
15
- //# sourceMappingURL=interact-for-device.js.map
15
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/lib/interactions/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;IAE5B,OAAO,mBAAmB,CAAC;QACzB,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,WAAW;YAC5C,KAAK,EAAE,MAAM,CAAC,SAAS;YACvB,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE;SACzD,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ export * from './access-code.js';
2
+ export * from './acs-entrance.js';
3
+ export * from './acs-system.js';
4
+ export * from './acs-user.js';
5
+ export * from './action-attempt-poll.js';
6
+ export * from './array.js';
7
+ export * from './blueprint-object.js';
8
+ export * from './command-params.js';
9
+ export * from './command-selection.js';
10
+ export * from './connected-account.js';
11
+ export * from './custom-metadata.js';
12
+ export * from './device.js';
13
+ export * from './login.js';
14
+ export * from './resource.js';
15
+ export * from './server-selection.js';
16
+ export * from './timestamp.js';
17
+ export * from './use-remote-api-defs.js';
18
+ export * from './user-identity.js';
19
+ export * from './workspace-id.js';
@@ -0,0 +1,20 @@
1
+ export * from './access-code.js';
2
+ export * from './acs-entrance.js';
3
+ export * from './acs-system.js';
4
+ export * from './acs-user.js';
5
+ export * from './action-attempt-poll.js';
6
+ export * from './array.js';
7
+ export * from './blueprint-object.js';
8
+ export * from './command-params.js';
9
+ export * from './command-selection.js';
10
+ export * from './connected-account.js';
11
+ export * from './custom-metadata.js';
12
+ export * from './device.js';
13
+ export * from './login.js';
14
+ export * from './resource.js';
15
+ export * from './server-selection.js';
16
+ export * from './timestamp.js';
17
+ export * from './use-remote-api-defs.js';
18
+ export * from './user-identity.js';
19
+ export * from './workspace-id.js';
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/interactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA"}
@@ -1,19 +1,21 @@
1
1
  import { isApiKey, isPersonalAccessToken } from '@seamapi/http/connect';
2
2
  import chalk from 'chalk';
3
- import { getConfigStore } from './config/index.js';
4
- import { assertEnvVarUnset, getTokenFromEnv, tokenEnvVar } from './env.js';
5
- import { getServer } from './get-server.js';
6
- import { interactForWorkspaceId } from './interact-for-workspace-id.js';
7
- import { getOutput } from './output/get-output.js';
8
- import { promptText } from './util/prompt.js';
9
- import { withLoading } from './util/with-loading.js';
10
- import { validateToken } from './validate-token.js';
3
+ import { assertMutable, storeToken } from '../auth/operations.js';
4
+ import { validateToken } from '../auth/validate-token.js';
5
+ import { getConfigStore } from '../config/index.js';
6
+ import { resolveAuth } from '../context.js';
7
+ import { getOutput } from '../output/get-output.js';
8
+ import { withLoading } from '../output/with-loading.js';
9
+ import { promptText } from '../prompt.js';
10
+ import { interactForWorkspaceId } from './workspace-id.js';
11
11
  export const interactForLogin = async () => {
12
- const config = await getConfigStore();
12
+ const config = getConfigStore();
13
13
  const output = getOutput();
14
- assertEnvVarUnset(tokenEnvVar, getTokenFromEnv(), 'log in');
15
- if (getServer().includes('localhost')) {
16
- output.info(`You're using a local Seam Connect instance, you can enter the API Key to your local user, you can create a new user from:\n\n${getServer()}/admin/create_user_with_api_key`);
14
+ const auth = resolveAuth(config);
15
+ // Refuse before prompting: nothing typed here could be stored.
16
+ assertMutable(auth, 'token', 'log in');
17
+ if (auth.server.includes('localhost')) {
18
+ output.info(`You're using a local Seam Connect instance, you can enter the API Key to your local user, you can create a new user from:\n\n${auth.server}/admin/create_user_with_api_key`);
17
19
  }
18
20
  else {
19
21
  output.info(`To login, navigate to the URL below and create a new Personal Access Token (PAT) and paste the PAT in the provided box:\n\nhttps://console.seam.co/settings/access-tokens\n\n`);
@@ -35,7 +37,7 @@ export const interactForLogin = async () => {
35
37
  else {
36
38
  throw new Error('Invalid token: expected a Personal Access Token or API Key');
37
39
  }
38
- config.set(`${getServer()}.pat`, token);
40
+ storeToken(token, config);
39
41
  output.info(`Token saved! You may begin using the CLI!`);
40
42
  };
41
- //# sourceMappingURL=interact-for-login.js.map
43
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/lib/interactions/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACzC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAEhC,+DAA+D;IAC/D,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEtC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CACT,gIAAgI,IAAI,CAAC,MAAM,iCAAiC,CAC7K,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,+KAA+K,CAChL,CAAA;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,CACF,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;QAC3B,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAExB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IACxE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;IACH,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACzB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;AAC1D,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
- import { promptAutocomplete, withBackHint } from './util/prompt.js';
2
- import { withLoading } from './util/with-loading.js';
1
+ import { withLoading } from '../output/with-loading.js';
2
+ import { promptAutocomplete, withBackHint } from '../prompt.js';
3
3
  export const interactForResource = async ({ resourceName, fetchResources, toChoice, message = `Select a ${resourceName}:`, }) => {
4
4
  const resources = await withLoading(`Fetching ${resourceName.replace(/_/g, ' ')}s...`, fetchResources);
5
5
  return await promptAutocomplete({
@@ -12,4 +12,4 @@ export const interactForResource = async ({ resourceName, fetchResources, toChoi
12
12
  }),
13
13
  });
14
14
  };
15
- //# sourceMappingURL=interact-for-resource.js.map
15
+ //# sourceMappingURL=resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/lib/interactions/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAQhE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAY,EAClD,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,OAAO,GAAG,YAAY,YAAY,GAAG,GAMtC,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,YAAY,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EACjD,cAAc,CACf,CAAA;IACD,OAAO,MAAM,kBAAkB,CAAC;QAC9B,mEAAmE;QACnE,6CAA6C;QAC7C,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;QAC9B,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;QACnD,CAAC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { randomBytes } from 'node:crypto';
2
- import { getConfigStore } from './config/index.js';
3
- import { assertEnvVarUnset, endpointEnvVar, getEndpointFromEnv, getTokenFromEnv, tokenEnvVar, } from './env.js';
4
- import { getServer } from './get-server.js';
5
- import { getOutput } from './output/get-output.js';
6
- import { promptAutocomplete, promptText } from './util/prompt.js';
2
+ import { assertMutable, selectFakeServer, selectServer, } from '../auth/operations.js';
3
+ import { getConfigStore } from '../config/index.js';
4
+ import { resolveAuth } from '../context.js';
5
+ import { getOutput } from '../output/get-output.js';
6
+ import { promptAutocomplete, promptText } from '../prompt.js';
7
7
  export async function interactForServerSelection() {
8
- assertEnvVarUnset(endpointEnvVar, getEndpointFromEnv(), 'select a server');
8
+ const config = getConfigStore();
9
+ assertMutable(resolveAuth(config), 'server', 'select a server');
9
10
  const servers = [
10
11
  'http://localhost:3020',
11
12
  'https://connect.getseam.com',
@@ -16,7 +17,6 @@ export async function interactForServerSelection() {
16
17
  message: 'Select a server:',
17
18
  choices: servers.map((server) => ({ label: server, value: server })),
18
19
  });
19
- const config = getConfigStore();
20
20
  const output = getOutput();
21
21
  if (server === servers[2]) {
22
22
  let userUrlSeed = await promptText({
@@ -25,15 +25,12 @@ export async function interactForServerSelection() {
25
25
  if (userUrlSeed.trim().length === 0) {
26
26
  userUrlSeed = randomBytes(5).toString('hex');
27
27
  }
28
- assertEnvVarUnset(tokenEnvVar, getTokenFromEnv(), 'log in');
29
- config.set('server', `https://${userUrlSeed}.fakeseamconnect.seam.vc`);
30
- config.set(`${getServer()}.pat`, `seam_apikey1_token`);
28
+ selectFakeServer({ urlSeed: userUrlSeed, config });
31
29
  output.info(`PAT set to use fakeseamconnect with "seam_apikey1_token"`);
32
30
  }
33
31
  else {
34
- config.set('server', server);
32
+ selectServer(server, config);
35
33
  }
36
- config.delete('current_workspace_id');
37
34
  output.info(`Server set to ${server}`);
38
35
  }
39
- //# sourceMappingURL=interact-for-server-selection.js.map
36
+ //# sourceMappingURL=server-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-selection.js","sourceRoot":"","sources":["../../src/lib/interactions/server-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE9D,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IAE/D,MAAM,OAAO,GAAG;QACd,uBAAuB;QACvB,6BAA6B;QAC7B,iCAAiC;KAClC,CAAA;IAED,qDAAqD;IACrD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;QACtC,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;KACrE,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,MAAM,UAAU,CAAC;YACjC,OAAO,EACL,sFAAsF;SACzF,CAAC,CAAA;QAEF,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QACD,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QAClD,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACzE,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;AACxC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { promptText, withBackHint } from './util/prompt.js';
1
+ import { promptText, withBackHint } from '../prompt.js';
2
2
  export const interactForTimestamp = async () => {
3
3
  const now = new Date().toISOString();
4
4
  const timestamp = await promptText({
@@ -16,4 +16,4 @@ export const interactForTimestamp = async () => {
16
16
  });
17
17
  return new Date(timestamp).toISOString();
18
18
  };
19
- //# sourceMappingURL=interact-for-timestamp.js.map
19
+ //# sourceMappingURL=timestamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/lib/interactions/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAExD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;IAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC;QACjC,OAAO,EAAE,YAAY,CAAC,oBAAoB,CAAC;QAC3C,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,GAAG;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,SAAS,CAAA;YACnD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC5C,OAAO,iCAAiC,GAAG,EAAE,CAAA;YAC/C,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;AAC1C,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
- import { getConfigStore } from './config/index.js';
2
- import { getOutput } from './output/get-output.js';
3
- import { promptSelect } from './util/prompt.js';
1
+ import { setUseRemoteApiDefs } from '../auth/operations.js';
2
+ import { getOutput } from '../output/get-output.js';
3
+ import { promptSelect } from '../prompt.js';
4
4
  export async function interactForUseRemoteApiDefs() {
5
5
  const useRemoteApiDefs = await promptSelect({
6
6
  message: 'Always use remote API Definitions?',
@@ -15,8 +15,7 @@ export async function interactForUseRemoteApiDefs() {
15
15
  },
16
16
  ],
17
17
  });
18
- const config = getConfigStore();
19
- config.set('use_remote_api_defs', useRemoteApiDefs);
18
+ setUseRemoteApiDefs(useRemoteApiDefs);
20
19
  getOutput().info(`Use remote API Definitions: ${useRemoteApiDefs}`);
21
20
  }
22
- //# sourceMappingURL=interact-for-use-remote-api-defs.js.map
21
+ //# sourceMappingURL=use-remote-api-defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-remote-api-defs.js","sourceRoot":"","sources":["../../src/lib/interactions/use-remote-api-defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC;QAC1C,OAAO,EAAE,oCAAoC;QAC7C,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD;gBACE,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,KAAK;aACb;SACF;KACF,CAAC,CAAA;IAEF,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;IACrC,SAAS,EAAE,CAAC,IAAI,CAAC,+BAA+B,gBAAgB,EAAE,CAAC,CAAA;AACrE,CAAC"}
@@ -1,5 +1,5 @@
1
- import { getSeam } from './get-seam.js';
2
- import { interactForResource } from './interact-for-resource.js';
1
+ import { getSeam } from '../http/client.js';
2
+ import { interactForResource } from './resource.js';
3
3
  export const interactForUserIdentity = async () => {
4
4
  const seam = await getSeam();
5
5
  return interactForResource({
@@ -12,4 +12,4 @@ export const interactForUserIdentity = async () => {
12
12
  }),
13
13
  });
14
14
  };
15
- //# sourceMappingURL=interact-for-user-identity.js.map
15
+ //# sourceMappingURL=user-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-identity.js","sourceRoot":"","sources":["../../src/lib/interactions/user-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,IAAI,EAAE;IAChD,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;IAE5B,OAAO,mBAAmB,CAAC;QACzB,YAAY,EAAE,eAAe;QAC7B,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;QAChD,QAAQ,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAC3B,KAAK,EAAE,GAAG,YAAY,CAAC,aAAa,KAAK,YAAY,CAAC,SAAS,KAAK,YAAY,CAAC,iBAAiB,EAAE;YACpG,KAAK,EAAE,YAAY,CAAC,gBAAgB;YACpC,WAAW,EAAE,YAAY,CAAC,gBAAgB;SAC3C,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}