@orizm/cli 2.2.6 → 3.0.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 (320) hide show
  1. package/README.md +111 -4
  2. package/dist/array-update-CMFUoQEe.mjs +41 -0
  3. package/dist/array-update-CMFUoQEe.mjs.map +1 -0
  4. package/dist/array-update-Dch4e9tI.cjs +58 -0
  5. package/dist/array-update-Dch4e9tI.cjs.map +1 -0
  6. package/dist/auth-BGW072BP.mjs +18 -0
  7. package/dist/auth-BGW072BP.mjs.map +1 -0
  8. package/dist/auth-CNbONZuf.cjs +18 -0
  9. package/dist/auth-CNbONZuf.cjs.map +1 -0
  10. package/dist/bucket-6d3VNt1D.mjs +17 -0
  11. package/dist/bucket-6d3VNt1D.mjs.map +1 -0
  12. package/dist/bucket-DjbHz9_A.cjs +17 -0
  13. package/dist/bucket-DjbHz9_A.cjs.map +1 -0
  14. package/dist/cli/main.cjs +231 -0
  15. package/dist/cli/main.cjs.map +1 -0
  16. package/dist/cli/main.d.cts +1 -0
  17. package/dist/cli/main.d.mts +1 -0
  18. package/dist/cli/main.mjs +196 -0
  19. package/dist/cli/main.mjs.map +1 -0
  20. package/dist/cms-BJnovGYT.mjs +172 -0
  21. package/dist/cms-BJnovGYT.mjs.map +1 -0
  22. package/dist/cms-Cnx-lDGu.cjs +172 -0
  23. package/dist/cms-Cnx-lDGu.cjs.map +1 -0
  24. package/dist/codegen-BF5b-u46.cjs +17 -0
  25. package/dist/codegen-BF5b-u46.cjs.map +1 -0
  26. package/dist/codegen-DZOB4ttR.mjs +17 -0
  27. package/dist/codegen-DZOB4ttR.mjs.map +1 -0
  28. package/dist/config/index.cjs +49 -96
  29. package/dist/config/index.cjs.map +1 -1
  30. package/dist/config/index.d.cts +1 -53
  31. package/dist/config/{index.d.ts → index.d.mts} +29 -27
  32. package/dist/config/index.d.mts.map +1 -0
  33. package/dist/config/index.mjs +59 -0
  34. package/dist/config/index.mjs.map +1 -0
  35. package/dist/config-loader-BEgS869e.mjs +65 -0
  36. package/dist/config-loader-BEgS869e.mjs.map +1 -0
  37. package/dist/config-loader-D8x32gEU.cjs +78 -0
  38. package/dist/config-loader-D8x32gEU.cjs.map +1 -0
  39. package/dist/confirm-delete-B9o73U7B.cjs +19 -0
  40. package/dist/confirm-delete-B9o73U7B.cjs.map +1 -0
  41. package/dist/confirm-delete-CsWkW69-.mjs +14 -0
  42. package/dist/confirm-delete-CsWkW69-.mjs.map +1 -0
  43. package/dist/consumer-BBsH8b1j.cjs +18 -0
  44. package/dist/consumer-BBsH8b1j.cjs.map +1 -0
  45. package/dist/consumer-DqyRfpsl.mjs +18 -0
  46. package/dist/consumer-DqyRfpsl.mjs.map +1 -0
  47. package/dist/consumer-OF6Z_eTP.cjs +95 -0
  48. package/dist/consumer-OF6Z_eTP.cjs.map +1 -0
  49. package/dist/consumer-pU2HyiyA.mjs +95 -0
  50. package/dist/consumer-pU2HyiyA.mjs.map +1 -0
  51. package/dist/content-BsoRmjis.mjs +20 -0
  52. package/dist/content-BsoRmjis.mjs.map +1 -0
  53. package/dist/content-Y-2Y0cyn.cjs +20 -0
  54. package/dist/content-Y-2Y0cyn.cjs.map +1 -0
  55. package/dist/create--1NYduI_.cjs +58 -0
  56. package/dist/create--1NYduI_.cjs.map +1 -0
  57. package/dist/create-B-PAOor6.mjs +66 -0
  58. package/dist/create-B-PAOor6.mjs.map +1 -0
  59. package/dist/create-BNYWcyuQ.cjs +66 -0
  60. package/dist/create-BNYWcyuQ.cjs.map +1 -0
  61. package/dist/create-B_gsZCL-.cjs +54 -0
  62. package/dist/create-B_gsZCL-.cjs.map +1 -0
  63. package/dist/create-BqlxdhcR.mjs +81 -0
  64. package/dist/create-BqlxdhcR.mjs.map +1 -0
  65. package/dist/create-CC814ixh.mjs +66 -0
  66. package/dist/create-CC814ixh.mjs.map +1 -0
  67. package/dist/create-CkFBiEDH.mjs +58 -0
  68. package/dist/create-CkFBiEDH.mjs.map +1 -0
  69. package/dist/create-CykRHseR.cjs +81 -0
  70. package/dist/create-CykRHseR.cjs.map +1 -0
  71. package/dist/create-RLyp_dl6.mjs +54 -0
  72. package/dist/create-RLyp_dl6.mjs.map +1 -0
  73. package/dist/create-Z-z3LXNW.cjs +66 -0
  74. package/dist/create-Z-z3LXNW.cjs.map +1 -0
  75. package/dist/delete-8yZ3j0vX.cjs +59 -0
  76. package/dist/delete-8yZ3j0vX.cjs.map +1 -0
  77. package/dist/delete-BOUObrDw.mjs +48 -0
  78. package/dist/delete-BOUObrDw.mjs.map +1 -0
  79. package/dist/delete-BSLIXrAh.mjs +59 -0
  80. package/dist/delete-BSLIXrAh.mjs.map +1 -0
  81. package/dist/delete-BenBNL2p.mjs +56 -0
  82. package/dist/delete-BenBNL2p.mjs.map +1 -0
  83. package/dist/delete-Bx2oNROv.cjs +56 -0
  84. package/dist/delete-Bx2oNROv.cjs.map +1 -0
  85. package/dist/delete-CCTiCYIL.cjs +51 -0
  86. package/dist/delete-CCTiCYIL.cjs.map +1 -0
  87. package/dist/delete-CGW0VMK6.cjs +56 -0
  88. package/dist/delete-CGW0VMK6.cjs.map +1 -0
  89. package/dist/delete-CIYY59v_.cjs +48 -0
  90. package/dist/delete-CIYY59v_.cjs.map +1 -0
  91. package/dist/delete-CSSd0gmt.mjs +56 -0
  92. package/dist/delete-CSSd0gmt.mjs.map +1 -0
  93. package/dist/delete-CSs5Czlo.mjs +59 -0
  94. package/dist/delete-CSs5Czlo.mjs.map +1 -0
  95. package/dist/delete-CrOVRvMo.cjs +56 -0
  96. package/dist/delete-CrOVRvMo.cjs.map +1 -0
  97. package/dist/delete-DehKYCXh.mjs +56 -0
  98. package/dist/delete-DehKYCXh.mjs.map +1 -0
  99. package/dist/delete-DhSU-Lx2.mjs +51 -0
  100. package/dist/delete-DhSU-Lx2.mjs.map +1 -0
  101. package/dist/delete-DozSxZQ7.cjs +59 -0
  102. package/dist/delete-DozSxZQ7.cjs.map +1 -0
  103. package/dist/detail-8CXNIhKw.cjs +16 -0
  104. package/dist/detail-8CXNIhKw.cjs.map +1 -0
  105. package/dist/detail-DN5jCQ4N.mjs +10 -0
  106. package/dist/detail-DN5jCQ4N.mjs.map +1 -0
  107. package/dist/download-oFGzg30E.mjs +68 -0
  108. package/dist/download-oFGzg30E.mjs.map +1 -0
  109. package/dist/download-ogGbb3FU.cjs +68 -0
  110. package/dist/download-ogGbb3FU.cjs.map +1 -0
  111. package/dist/erd-lKC5NB2l.cjs +124 -0
  112. package/dist/erd-lKC5NB2l.cjs.map +1 -0
  113. package/dist/erd-zDoF6I_y.mjs +123 -0
  114. package/dist/erd-zDoF6I_y.mjs.map +1 -0
  115. package/dist/get-BBOKSXkh.cjs +48 -0
  116. package/dist/get-BBOKSXkh.cjs.map +1 -0
  117. package/dist/get-BHniACk5.cjs +57 -0
  118. package/dist/get-BHniACk5.cjs.map +1 -0
  119. package/dist/get-BtmzDaVn.mjs +47 -0
  120. package/dist/get-BtmzDaVn.mjs.map +1 -0
  121. package/dist/get-CVV3h6HR.cjs +47 -0
  122. package/dist/get-CVV3h6HR.cjs.map +1 -0
  123. package/dist/get-CgEgETQa.mjs +52 -0
  124. package/dist/get-CgEgETQa.mjs.map +1 -0
  125. package/dist/get-DB80UNSR.mjs +47 -0
  126. package/dist/get-DB80UNSR.mjs.map +1 -0
  127. package/dist/get-DBxhbN1G.mjs +57 -0
  128. package/dist/get-DBxhbN1G.mjs.map +1 -0
  129. package/dist/get-DDB89cOs.mjs +48 -0
  130. package/dist/get-DDB89cOs.mjs.map +1 -0
  131. package/dist/get-DPGx1zU4.mjs +56 -0
  132. package/dist/get-DPGx1zU4.mjs.map +1 -0
  133. package/dist/get-IOU__2RP.cjs +52 -0
  134. package/dist/get-IOU__2RP.cjs.map +1 -0
  135. package/dist/get-KdWfYINc.cjs +47 -0
  136. package/dist/get-KdWfYINc.cjs.map +1 -0
  137. package/dist/get-jwXRlIBJ.cjs +57 -0
  138. package/dist/get-jwXRlIBJ.cjs.map +1 -0
  139. package/dist/group-roles-BEEzLxPX.mjs +36 -0
  140. package/dist/group-roles-BEEzLxPX.mjs.map +1 -0
  141. package/dist/group-roles-Bl_mEodO.cjs +59 -0
  142. package/dist/group-roles-Bl_mEodO.cjs.map +1 -0
  143. package/dist/invite-DsOCKGTJ.mjs +66 -0
  144. package/dist/invite-DsOCKGTJ.mjs.map +1 -0
  145. package/dist/invite-Dts9uNQL.cjs +66 -0
  146. package/dist/invite-Dts9uNQL.cjs.map +1 -0
  147. package/dist/key-BogfSiz_.mjs +17 -0
  148. package/dist/key-BogfSiz_.mjs.map +1 -0
  149. package/dist/key-Czwiu2pW.cjs +17 -0
  150. package/dist/key-Czwiu2pW.cjs.map +1 -0
  151. package/dist/link-BluFyxEL.mjs +42 -0
  152. package/dist/link-BluFyxEL.mjs.map +1 -0
  153. package/dist/link-DYu1Vjlw.cjs +42 -0
  154. package/dist/link-DYu1Vjlw.cjs.map +1 -0
  155. package/dist/list-2BpPj4Z0.cjs +40 -0
  156. package/dist/list-2BpPj4Z0.cjs.map +1 -0
  157. package/dist/list-57TUfNFd.mjs +48 -0
  158. package/dist/list-57TUfNFd.mjs.map +1 -0
  159. package/dist/list-60NcDr0q.cjs +81 -0
  160. package/dist/list-60NcDr0q.cjs.map +1 -0
  161. package/dist/list-BRh59EqI.cjs +35 -0
  162. package/dist/list-BRh59EqI.cjs.map +1 -0
  163. package/dist/list-BwfpuhmJ.cjs +37 -0
  164. package/dist/list-BwfpuhmJ.cjs.map +1 -0
  165. package/dist/list-CJuefq_I.cjs +82 -0
  166. package/dist/list-CJuefq_I.cjs.map +1 -0
  167. package/dist/list-CYE9Exi3.cjs +72 -0
  168. package/dist/list-CYE9Exi3.cjs.map +1 -0
  169. package/dist/list-CbvEh7eA.mjs +35 -0
  170. package/dist/list-CbvEh7eA.mjs.map +1 -0
  171. package/dist/list-CfIeReBx.mjs +82 -0
  172. package/dist/list-CfIeReBx.mjs.map +1 -0
  173. package/dist/list-CxHDoXjv.mjs +81 -0
  174. package/dist/list-CxHDoXjv.mjs.map +1 -0
  175. package/dist/list-D0-QrWmn.cjs +51 -0
  176. package/dist/list-D0-QrWmn.cjs.map +1 -0
  177. package/dist/list-D24J_Qbm.mjs +49 -0
  178. package/dist/list-D24J_Qbm.mjs.map +1 -0
  179. package/dist/list-D5PSDMWw.mjs +51 -0
  180. package/dist/list-D5PSDMWw.mjs.map +1 -0
  181. package/dist/list-DRKF2uKW.cjs +95 -0
  182. package/dist/list-DRKF2uKW.cjs.map +1 -0
  183. package/dist/list-DdJ05juK.mjs +72 -0
  184. package/dist/list-DdJ05juK.mjs.map +1 -0
  185. package/dist/list-DlJssPwy.cjs +48 -0
  186. package/dist/list-DlJssPwy.cjs.map +1 -0
  187. package/dist/list-V3W6hvOa.cjs +49 -0
  188. package/dist/list-V3W6hvOa.cjs.map +1 -0
  189. package/dist/list-rAn3uOA7.mjs +37 -0
  190. package/dist/list-rAn3uOA7.mjs.map +1 -0
  191. package/dist/list-syVDGkVR.mjs +40 -0
  192. package/dist/list-syVDGkVR.mjs.map +1 -0
  193. package/dist/list-yQZLzkC7.mjs +95 -0
  194. package/dist/list-yQZLzkC7.mjs.map +1 -0
  195. package/dist/login-2XcHd4wn.cjs +212 -0
  196. package/dist/login-2XcHd4wn.cjs.map +1 -0
  197. package/dist/login-FE_dbWMo.mjs +211 -0
  198. package/dist/login-FE_dbWMo.mjs.map +1 -0
  199. package/dist/logout-BDbWrGBm.mjs +35 -0
  200. package/dist/logout-BDbWrGBm.mjs.map +1 -0
  201. package/dist/logout-DC5TMJ5_.cjs +35 -0
  202. package/dist/logout-DC5TMJ5_.cjs.map +1 -0
  203. package/dist/management-BaN1Nynl.mjs +19 -0
  204. package/dist/management-BaN1Nynl.mjs.map +1 -0
  205. package/dist/management-DHXxdCra.cjs +19 -0
  206. package/dist/management-DHXxdCra.cjs.map +1 -0
  207. package/dist/mask-B1qD73jb.mjs +22 -0
  208. package/dist/mask-B1qD73jb.mjs.map +1 -0
  209. package/dist/mask-CqYLib9p.cjs +40 -0
  210. package/dist/mask-CqYLib9p.cjs.map +1 -0
  211. package/dist/oauth-client-CdD0evAV.cjs +170 -0
  212. package/dist/oauth-client-CdD0evAV.cjs.map +1 -0
  213. package/dist/oauth-client-QHuDa4fW.mjs +139 -0
  214. package/dist/oauth-client-QHuDa4fW.mjs.map +1 -0
  215. package/dist/object-BfUf8Y6w.mjs +20 -0
  216. package/dist/object-BfUf8Y6w.mjs.map +1 -0
  217. package/dist/object-DT7UEW9G.cjs +20 -0
  218. package/dist/object-DT7UEW9G.cjs.map +1 -0
  219. package/dist/org-C4cVovOM.cjs +14 -0
  220. package/dist/org-C4cVovOM.cjs.map +1 -0
  221. package/dist/org-CPhTRTks.mjs +14 -0
  222. package/dist/org-CPhTRTks.mjs.map +1 -0
  223. package/dist/org-context-Bewx2NEW.cjs +30 -0
  224. package/dist/org-context-Bewx2NEW.cjs.map +1 -0
  225. package/dist/org-context-D0dwWC2M.mjs +25 -0
  226. package/dist/org-context-D0dwWC2M.mjs.map +1 -0
  227. package/dist/parse-BeO2IwfI.cjs +229 -0
  228. package/dist/parse-BeO2IwfI.cjs.map +1 -0
  229. package/dist/parse-CA5fBB3x.mjs +150 -0
  230. package/dist/parse-CA5fBB3x.mjs.map +1 -0
  231. package/dist/project-CNr9xMny.cjs +20 -0
  232. package/dist/project-CNr9xMny.cjs.map +1 -0
  233. package/dist/project-DFoHcXi5.mjs +20 -0
  234. package/dist/project-DFoHcXi5.mjs.map +1 -0
  235. package/dist/project-name-CEoM-OL4.cjs +18 -0
  236. package/dist/project-name-CEoM-OL4.cjs.map +1 -0
  237. package/dist/project-name-DNMejnzZ.mjs +12 -0
  238. package/dist/project-name-DNMejnzZ.mjs.map +1 -0
  239. package/dist/project-user-9D7Ey_Fu.mjs +20 -0
  240. package/dist/project-user-9D7Ey_Fu.mjs.map +1 -0
  241. package/dist/project-user-DTPFjyfZ.cjs +20 -0
  242. package/dist/project-user-DTPFjyfZ.cjs.map +1 -0
  243. package/dist/push-0u6PDz4E.cjs +166 -0
  244. package/dist/push-0u6PDz4E.cjs.map +1 -0
  245. package/dist/push-D7co0keA.mjs +166 -0
  246. package/dist/push-D7co0keA.mjs.map +1 -0
  247. package/dist/run-codegen-Ceeosw5x.cjs +272 -0
  248. package/dist/run-codegen-Ceeosw5x.cjs.map +1 -0
  249. package/dist/run-codegen-DgaFaIQ1.mjs +190 -0
  250. package/dist/run-codegen-DgaFaIQ1.mjs.map +1 -0
  251. package/dist/run-with-context-CVhmzAFZ.mjs +876 -0
  252. package/dist/run-with-context-CVhmzAFZ.mjs.map +1 -0
  253. package/dist/run-with-context-DJNnEigg.cjs +943 -0
  254. package/dist/run-with-context-DJNnEigg.cjs.map +1 -0
  255. package/dist/schema-DDzrgjkT.mjs +20 -0
  256. package/dist/schema-DDzrgjkT.mjs.map +1 -0
  257. package/dist/schema-DdhyEh81.cjs +20 -0
  258. package/dist/schema-DdhyEh81.cjs.map +1 -0
  259. package/dist/shared-CZZimGxc.mjs +35 -0
  260. package/dist/shared-CZZimGxc.mjs.map +1 -0
  261. package/dist/shared-DHRPzzKl.cjs +59 -0
  262. package/dist/shared-DHRPzzKl.cjs.map +1 -0
  263. package/dist/status-Dq_NJE71.cjs +49 -0
  264. package/dist/status-Dq_NJE71.cjs.map +1 -0
  265. package/dist/status-fWqXzV0P.mjs +49 -0
  266. package/dist/status-fWqXzV0P.mjs.map +1 -0
  267. package/dist/table-C74eOSh8.cjs +27 -0
  268. package/dist/table-C74eOSh8.cjs.map +1 -0
  269. package/dist/table-MHEfbnWO.mjs +20 -0
  270. package/dist/table-MHEfbnWO.mjs.map +1 -0
  271. package/dist/table-event-C16cp9nq.mjs +72 -0
  272. package/dist/table-event-C16cp9nq.mjs.map +1 -0
  273. package/dist/table-event-D7PPuS7E.cjs +101 -0
  274. package/dist/table-event-D7PPuS7E.cjs.map +1 -0
  275. package/dist/token-store--9GYVL7N.cjs +139 -0
  276. package/dist/token-store--9GYVL7N.cjs.map +1 -0
  277. package/dist/token-store-reCGF86F.mjs +124 -0
  278. package/dist/token-store-reCGF86F.mjs.map +1 -0
  279. package/dist/update-8e3u4jKa.mjs +109 -0
  280. package/dist/update-8e3u4jKa.mjs.map +1 -0
  281. package/dist/update-CDLviRuu.cjs +73 -0
  282. package/dist/update-CDLviRuu.cjs.map +1 -0
  283. package/dist/update-CSiOfiPL.mjs +117 -0
  284. package/dist/update-CSiOfiPL.mjs.map +1 -0
  285. package/dist/update-CjbcI8Qc.mjs +61 -0
  286. package/dist/update-CjbcI8Qc.mjs.map +1 -0
  287. package/dist/update-Cktd0zXA.cjs +109 -0
  288. package/dist/update-Cktd0zXA.cjs.map +1 -0
  289. package/dist/update-D-X32BVW.cjs +117 -0
  290. package/dist/update-D-X32BVW.cjs.map +1 -0
  291. package/dist/update-DfYV_TQb.mjs +171 -0
  292. package/dist/update-DfYV_TQb.mjs.map +1 -0
  293. package/dist/update-OWC5K8Ne.cjs +61 -0
  294. package/dist/update-OWC5K8Ne.cjs.map +1 -0
  295. package/dist/update-ap5Qv1Yl.cjs +171 -0
  296. package/dist/update-ap5Qv1Yl.cjs.map +1 -0
  297. package/dist/update-yscrx6WQ.mjs +73 -0
  298. package/dist/update-yscrx6WQ.mjs.map +1 -0
  299. package/dist/upload-C43ZXxyb.cjs +95 -0
  300. package/dist/upload-C43ZXxyb.cjs.map +1 -0
  301. package/dist/upload-DGgJ1TQk.mjs +94 -0
  302. package/dist/upload-DGgJ1TQk.mjs.map +1 -0
  303. package/dist/validate-BpxZ8LTl.cjs +31 -0
  304. package/dist/validate-BpxZ8LTl.cjs.map +1 -0
  305. package/dist/validate-Ca0CRo16.mjs +31 -0
  306. package/dist/validate-Ca0CRo16.mjs.map +1 -0
  307. package/dist/webhook-3zs6Ulxd.mjs +20 -0
  308. package/dist/webhook-3zs6Ulxd.mjs.map +1 -0
  309. package/dist/webhook-BsygMMf-.cjs +20 -0
  310. package/dist/webhook-BsygMMf-.cjs.map +1 -0
  311. package/package.json +29 -18
  312. package/bin/index.js +0 -3
  313. package/dist/cli.cjs +0 -1978
  314. package/dist/cli.cjs.map +0 -1
  315. package/dist/cli.d.cts +0 -2
  316. package/dist/cli.d.ts +0 -2
  317. package/dist/cli.js +0 -1954
  318. package/dist/cli.js.map +0 -1
  319. package/dist/config/index.js +0 -81
  320. package/dist/config/index.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ import { t as defineCommand } from "./cli/main.mjs";
2
+ import { r as contextArgs } from "./shared-CZZimGxc.mjs";
3
+ import { a as apiErrorFailure, n as runWithContext, u as toResult } from "./run-with-context-CVhmzAFZ.mjs";
4
+ import { t as renderDetail } from "./detail-DN5jCQ4N.mjs";
5
+ import { a as parseHttpUrl, i as parseHeaders, t as collectRepeatableFlag } from "./parse-CA5fBB3x.mjs";
6
+ import { i as parseTableEvents, n as formatTableEvents } from "./table-event-C16cp9nq.mjs";
7
+ import { formatCustomHeaders } from "./get-DPGx1zU4.mjs";
8
+ import { Result } from "@praha/byethrow";
9
+
10
+ //#region src/cli/commands/webhook/create.ts
11
+ async function webhookCreateHandler(ctx, options) {
12
+ const created = toResult(await ctx.client.POST("/projects/{projectName}/webhooks", {
13
+ params: { path: { projectName: ctx.projectName } },
14
+ body: {
15
+ name: options.name,
16
+ url: options.url,
17
+ ...options.tableEvents !== void 0 ? { tableEvents: options.tableEvents } : {},
18
+ ...options.customHeaders !== void 0 ? { customHeaders: options.customHeaders } : {}
19
+ }
20
+ }));
21
+ if (Result.isFailure(created)) return apiErrorFailure(created.error);
22
+ const value = created.value;
23
+ return Result.succeed({
24
+ json: value,
25
+ text: () => renderDetail([
26
+ ["ID", String(value.id)],
27
+ ["Name", value.name],
28
+ ["URL", value.url],
29
+ ["Table events", formatTableEvents(value.tableEvents)],
30
+ ["Custom headers", formatCustomHeaders(value.customHeaders)]
31
+ ])
32
+ });
33
+ }
34
+ const createArgs = {
35
+ ...contextArgs,
36
+ name: {
37
+ type: "string",
38
+ required: true,
39
+ description: "Webhook name"
40
+ },
41
+ url: {
42
+ type: "string",
43
+ required: true,
44
+ description: "URL to notify"
45
+ },
46
+ "table-event": {
47
+ type: "string",
48
+ description: "Subscription as <table>:<event> (content.create, content.update, content.delete); repeatable"
49
+ },
50
+ header: {
51
+ type: "string",
52
+ description: "Custom header as <key>:<value>; repeatable"
53
+ }
54
+ };
55
+ var create_default = defineCommand({
56
+ meta: {
57
+ name: "create",
58
+ description: "Create a webhook"
59
+ },
60
+ args: createArgs,
61
+ run: async ({ args, rawArgs }) => {
62
+ if (typeof args.name !== "string" || args.name === "") return Result.fail({ message: "Missing --name." });
63
+ const url = parseHttpUrl("url", args.url);
64
+ if (Result.isFailure(url)) return url;
65
+ const tableEvents = parseTableEvents("table-event", collectRepeatableFlag(rawArgs, "table-event"));
66
+ if (Result.isFailure(tableEvents)) return tableEvents;
67
+ const customHeaders = parseHeaders("header", collectRepeatableFlag(rawArgs, "header"));
68
+ if (Result.isFailure(customHeaders)) return customHeaders;
69
+ const name = args.name;
70
+ return runWithContext(args, (ctx) => webhookCreateHandler(ctx, {
71
+ name,
72
+ url: url.value,
73
+ tableEvents: tableEvents.value,
74
+ customHeaders: customHeaders.value
75
+ }));
76
+ }
77
+ });
78
+
79
+ //#endregion
80
+ export { create_default as default };
81
+ //# sourceMappingURL=create-BqlxdhcR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-BqlxdhcR.mjs","names":[],"sources":["../src/cli/commands/webhook/create.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../define-command.js\";\nimport { contextArgs } from \"../shared.js\";\nimport { runWithContext, type CommandContext } from \"../run-with-context.js\";\nimport { apiErrorFailure } from \"../api-errors.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { renderDetail } from \"../../ui/detail.js\";\nimport { collectRepeatableFlag, parseHeaders, parseHttpUrl } from \"../parse.js\";\nimport { formatCustomHeaders } from \"./get.js\";\nimport {\n formatTableEvents,\n parseTableEvents,\n type TableEvent,\n} from \"./table-event.js\";\n\nexport async function webhookCreateHandler(\n ctx: CommandContext,\n options: {\n name: string;\n url: string;\n tableEvents?: TableEvent[];\n customHeaders?: { key: string; value: string }[];\n },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const created = toResult(\n await ctx.client.POST(\"/projects/{projectName}/webhooks\", {\n params: { path: { projectName: ctx.projectName } },\n body: {\n name: options.name,\n url: options.url,\n ...(options.tableEvents !== undefined\n ? { tableEvents: options.tableEvents }\n : {}),\n ...(options.customHeaders !== undefined\n ? { customHeaders: options.customHeaders }\n : {}),\n },\n }),\n );\n if (Result.isFailure(created)) return apiErrorFailure(created.error);\n\n const value = created.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderDetail([\n [\"ID\", String(value.id)],\n [\"Name\", value.name],\n [\"URL\", value.url],\n [\"Table events\", formatTableEvents(value.tableEvents)],\n [\"Custom headers\", formatCustomHeaders(value.customHeaders)],\n ]),\n });\n}\n\nconst createArgs = {\n ...contextArgs,\n name: {\n type: \"string\",\n required: true,\n description: \"Webhook name\",\n },\n url: {\n type: \"string\",\n required: true,\n description: \"URL to notify\",\n },\n \"table-event\": {\n type: \"string\",\n description:\n \"Subscription as <table>:<event> (content.create, content.update, content.delete); repeatable\",\n },\n header: {\n type: \"string\",\n description: \"Custom header as <key>:<value>; repeatable\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"create\",\n description: \"Create a webhook\",\n },\n args: createArgs,\n run: async ({ args, rawArgs }) => {\n if (typeof args.name !== \"string\" || args.name === \"\") {\n return Result.fail({ message: \"Missing --name.\" });\n }\n const url = parseHttpUrl(\"url\", args.url);\n if (Result.isFailure(url)) return url;\n const tableEvents = parseTableEvents(\n \"table-event\",\n collectRepeatableFlag(rawArgs, \"table-event\"),\n );\n if (Result.isFailure(tableEvents)) return tableEvents;\n const customHeaders = parseHeaders(\n \"header\",\n collectRepeatableFlag(rawArgs, \"header\"),\n );\n if (Result.isFailure(customHeaders)) return customHeaders;\n\n const name = args.name;\n return runWithContext(args, (ctx) =>\n webhookCreateHandler(ctx, {\n name,\n url: url.value,\n tableEvents: tableEvents.value,\n customHeaders: customHeaders.value,\n }),\n );\n },\n});\n"],"mappings":";;;;;;;;;;AAoBA,eAAsB,qBACpB,KACA,SAMmE;CACnE,MAAM,UAAU,SACd,MAAM,IAAI,OAAO,KAAK,oCAAoC;EACxD,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE;EACjD,MAAM;GACJ,MAAM,QAAQ;GACd,KAAK,QAAQ;GACb,GAAI,QAAQ,gBAAgB,SACxB,EAAE,aAAa,QAAQ,YAAY,IACnC,CAAC;GACL,GAAI,QAAQ,kBAAkB,SAC1B,EAAE,eAAe,QAAQ,cAAc,IACvC,CAAC;EACP;CACF,CAAC,CACH;CACA,IAAI,OAAO,UAAU,OAAO,GAAG,OAAO,gBAAgB,QAAQ,KAAK;CAEnE,MAAM,QAAQ,QAAQ;CACtB,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,aAAa;GACX,CAAC,MAAM,OAAO,MAAM,EAAE,CAAC;GACvB,CAAC,QAAQ,MAAM,IAAI;GACnB,CAAC,OAAO,MAAM,GAAG;GACjB,CAAC,gBAAgB,kBAAkB,MAAM,WAAW,CAAC;GACrD,CAAC,kBAAkB,oBAAoB,MAAM,aAAa,CAAC;EAC7D,CAAC;CACL,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAG;CACH,MAAM;EACJ,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,KAAK;EACH,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,eAAe;EACb,MAAM;EACN,aACE;CACJ;CACA,QAAQ;EACN,MAAM;EACN,aAAa;CACf;AACF;AAEA,qBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,KAAK,OAAO,EAAE,MAAM,cAAc;EAChC,IAAI,OAAO,KAAK,SAAS,YAAY,KAAK,SAAS,IACjD,OAAO,OAAO,KAAK,EAAE,SAAS,kBAAkB,CAAC;EAEnD,MAAM,MAAM,aAAa,OAAO,KAAK,GAAG;EACxC,IAAI,OAAO,UAAU,GAAG,GAAG,OAAO;EAClC,MAAM,cAAc,iBAClB,eACA,sBAAsB,SAAS,aAAa,CAC9C;EACA,IAAI,OAAO,UAAU,WAAW,GAAG,OAAO;EAC1C,MAAM,gBAAgB,aACpB,UACA,sBAAsB,SAAS,QAAQ,CACzC;EACA,IAAI,OAAO,UAAU,aAAa,GAAG,OAAO;EAE5C,MAAM,OAAO,KAAK;EAClB,OAAO,eAAe,OAAO,QAC3B,qBAAqB,KAAK;GACxB;GACA,KAAK,IAAI;GACT,aAAa,YAAY;GACzB,eAAe,cAAc;EAC/B,CAAC,CACH;CACF;AACF,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { t as defineCommand } from "./cli/main.mjs";
2
+ import { r as contextArgs } from "./shared-CZZimGxc.mjs";
3
+ import { a as apiErrorFailure, n as runWithContext, u as toResult } from "./run-with-context-CVhmzAFZ.mjs";
4
+ import { t as renderDetail } from "./detail-DN5jCQ4N.mjs";
5
+ import { r as showKeyArg, t as maskConsumerKey } from "./mask-B1qD73jb.mjs";
6
+ import { Result } from "@praha/byethrow";
7
+
8
+ //#region src/cli/commands/key/consumer/create.ts
9
+ async function keyConsumerCreateHandler(ctx, options) {
10
+ const created = toResult(await ctx.client.POST("/projects/{projectName}/consumer-keys", {
11
+ params: { path: { projectName: ctx.projectName } },
12
+ body: {
13
+ description: options.description,
14
+ canReadDrafts: options.canReadDrafts
15
+ }
16
+ }));
17
+ if (Result.isFailure(created)) return apiErrorFailure(created.error);
18
+ const value = options.showKey ? created.value : {
19
+ ...created.value,
20
+ key: maskConsumerKey(created.value.key)
21
+ };
22
+ return Result.succeed({
23
+ json: value,
24
+ text: () => renderDetail([
25
+ ["ID", String(value.id)],
26
+ ["Key", value.key],
27
+ ["Description", value.description],
28
+ ["Can read drafts", String(value.canReadDrafts)],
29
+ ["Created at", value.createdAt]
30
+ ])
31
+ });
32
+ }
33
+ const createArgs = {
34
+ ...contextArgs,
35
+ ...showKeyArg,
36
+ description: {
37
+ type: "string",
38
+ required: true,
39
+ description: "What this key is used for"
40
+ },
41
+ "can-read-drafts": {
42
+ type: "boolean",
43
+ description: "Allow this key to read draft contents",
44
+ default: false
45
+ }
46
+ };
47
+ var create_default = defineCommand({
48
+ meta: {
49
+ name: "create",
50
+ description: "Create a new consumer key"
51
+ },
52
+ args: createArgs,
53
+ run: ({ args }) => {
54
+ if (typeof args.description !== "string" || args.description === "") return Promise.resolve(Result.fail({ message: "Missing --description." }));
55
+ const description = args.description;
56
+ return runWithContext(args, (ctx) => keyConsumerCreateHandler(ctx, {
57
+ description,
58
+ canReadDrafts: args["can-read-drafts"] === true,
59
+ showKey: args["show-key"] === true
60
+ }));
61
+ }
62
+ });
63
+
64
+ //#endregion
65
+ export { create_default as default };
66
+ //# sourceMappingURL=create-CC814ixh.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-CC814ixh.mjs","names":[],"sources":["../src/cli/commands/key/consumer/create.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../../define-command.js\";\nimport { contextArgs } from \"../../shared.js\";\nimport { runWithContext, type CommandContext } from \"../../run-with-context.js\";\nimport { apiErrorFailure } from \"../../api-errors.js\";\nimport { toResult } from \"../../../api/errors.js\";\nimport { renderDetail } from \"../../../ui/detail.js\";\nimport { maskConsumerKey, showKeyArg } from \"../mask.js\";\n\nexport async function keyConsumerCreateHandler(\n ctx: CommandContext,\n options: { description: string; canReadDrafts: boolean; showKey: boolean },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const created = toResult(\n await ctx.client.POST(\"/projects/{projectName}/consumer-keys\", {\n params: { path: { projectName: ctx.projectName } },\n body: {\n description: options.description,\n canReadDrafts: options.canReadDrafts,\n },\n }),\n );\n if (Result.isFailure(created)) return apiErrorFailure(created.error);\n\n const value = options.showKey\n ? created.value\n : { ...created.value, key: maskConsumerKey(created.value.key) };\n return Result.succeed({\n json: value,\n text: () =>\n renderDetail([\n [\"ID\", String(value.id)],\n [\"Key\", value.key],\n [\"Description\", value.description],\n [\"Can read drafts\", String(value.canReadDrafts)],\n [\"Created at\", value.createdAt],\n ]),\n });\n}\n\nconst createArgs = {\n ...contextArgs,\n ...showKeyArg,\n description: {\n type: \"string\",\n required: true,\n description: \"What this key is used for\",\n },\n \"can-read-drafts\": {\n type: \"boolean\",\n description: \"Allow this key to read draft contents\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"create\",\n description: \"Create a new consumer key\",\n },\n args: createArgs,\n run: ({ args }) => {\n if (typeof args.description !== \"string\" || args.description === \"\") {\n return Promise.resolve(\n Result.fail({ message: \"Missing --description.\" }),\n );\n }\n const description = args.description;\n return runWithContext(args, (ctx) =>\n keyConsumerCreateHandler(ctx, {\n description,\n canReadDrafts: args[\"can-read-drafts\"] === true,\n showKey: args[\"show-key\"] === true,\n }),\n );\n },\n});\n"],"mappings":";;;;;;;;AAcA,eAAsB,yBACpB,KACA,SACmE;CACnE,MAAM,UAAU,SACd,MAAM,IAAI,OAAO,KAAK,yCAAyC;EAC7D,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE;EACjD,MAAM;GACJ,aAAa,QAAQ;GACrB,eAAe,QAAQ;EACzB;CACF,CAAC,CACH;CACA,IAAI,OAAO,UAAU,OAAO,GAAG,OAAO,gBAAgB,QAAQ,KAAK;CAEnE,MAAM,QAAQ,QAAQ,UAClB,QAAQ,QACR;EAAE,GAAG,QAAQ;EAAO,KAAK,gBAAgB,QAAQ,MAAM,GAAG;CAAE;CAChE,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,aAAa;GACX,CAAC,MAAM,OAAO,MAAM,EAAE,CAAC;GACvB,CAAC,OAAO,MAAM,GAAG;GACjB,CAAC,eAAe,MAAM,WAAW;GACjC,CAAC,mBAAmB,OAAO,MAAM,aAAa,CAAC;GAC/C,CAAC,cAAc,MAAM,SAAS;EAChC,CAAC;CACL,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAG;CACH,GAAG;CACH,aAAa;EACX,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,mBAAmB;EACjB,MAAM;EACN,aAAa;EACb,SAAS;CACX;AACF;AAEA,qBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WAAW;EACjB,IAAI,OAAO,KAAK,gBAAgB,YAAY,KAAK,gBAAgB,IAC/D,OAAO,QAAQ,QACb,OAAO,KAAK,EAAE,SAAS,yBAAyB,CAAC,CACnD;EAEF,MAAM,cAAc,KAAK;EACzB,OAAO,eAAe,OAAO,QAC3B,yBAAyB,KAAK;GAC5B;GACA,eAAe,KAAK,uBAAuB;GAC3C,SAAS,KAAK,gBAAgB;EAChC,CAAC,CACH;CACF;AACF,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { t as defineCommand } from "./cli/main.mjs";
2
+ import { r as contextArgs } from "./shared-CZZimGxc.mjs";
3
+ import { a as apiErrorFailure, n as runWithContext, u as toResult } from "./run-with-context-CVhmzAFZ.mjs";
4
+ import { t as renderDetail } from "./detail-DN5jCQ4N.mjs";
5
+ import { n as maskManagementKey, r as showKeyArg } from "./mask-B1qD73jb.mjs";
6
+ import { n as formatGroupRoles } from "./group-roles-BEEzLxPX.mjs";
7
+ import { Result } from "@praha/byethrow";
8
+
9
+ //#region src/cli/commands/key/management/create.ts
10
+ async function keyManagementCreateHandler(ctx, options) {
11
+ const created = toResult(await ctx.client.POST("/projects/{projectName}/management-keys", {
12
+ params: { path: { projectName: ctx.projectName } },
13
+ body: { description: options.description }
14
+ }));
15
+ if (Result.isFailure(created)) return apiErrorFailure(created.error);
16
+ const value = options.showKey ? created.value : {
17
+ ...created.value,
18
+ key: maskManagementKey(created.value.key)
19
+ };
20
+ return Result.succeed({
21
+ json: value,
22
+ text: () => renderDetail([
23
+ ["ID", String(value.id)],
24
+ ["Key", value.key],
25
+ ["Description", value.description],
26
+ ["Group roles", formatGroupRoles(value.groupRoles)],
27
+ ["Created at", value.createdAt]
28
+ ])
29
+ });
30
+ }
31
+ const createArgs = {
32
+ ...contextArgs,
33
+ ...showKeyArg,
34
+ description: {
35
+ type: "string",
36
+ required: true,
37
+ description: "What this key is used for"
38
+ }
39
+ };
40
+ var create_default = defineCommand({
41
+ meta: {
42
+ name: "create",
43
+ description: "Create a new management key"
44
+ },
45
+ args: createArgs,
46
+ run: ({ args }) => {
47
+ if (typeof args.description !== "string" || args.description === "") return Promise.resolve(Result.fail({ message: "Missing --description." }));
48
+ const description = args.description;
49
+ return runWithContext(args, (ctx) => keyManagementCreateHandler(ctx, {
50
+ description,
51
+ showKey: args["show-key"] === true
52
+ }));
53
+ }
54
+ });
55
+
56
+ //#endregion
57
+ export { create_default as default };
58
+ //# sourceMappingURL=create-CkFBiEDH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-CkFBiEDH.mjs","names":[],"sources":["../src/cli/commands/key/management/create.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../../define-command.js\";\nimport { contextArgs } from \"../../shared.js\";\nimport { runWithContext, type CommandContext } from \"../../run-with-context.js\";\nimport { apiErrorFailure } from \"../../api-errors.js\";\nimport { toResult } from \"../../../api/errors.js\";\nimport { renderDetail } from \"../../../ui/detail.js\";\nimport { formatGroupRoles } from \"../../group-roles.js\";\nimport { maskManagementKey, showKeyArg } from \"../mask.js\";\n\nexport async function keyManagementCreateHandler(\n ctx: CommandContext,\n options: { description: string; showKey: boolean },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const created = toResult(\n await ctx.client.POST(\"/projects/{projectName}/management-keys\", {\n params: { path: { projectName: ctx.projectName } },\n body: { description: options.description },\n }),\n );\n if (Result.isFailure(created)) return apiErrorFailure(created.error);\n\n const value = options.showKey\n ? created.value\n : { ...created.value, key: maskManagementKey(created.value.key) };\n return Result.succeed({\n json: value,\n text: () =>\n renderDetail([\n [\"ID\", String(value.id)],\n [\"Key\", value.key],\n [\"Description\", value.description],\n [\"Group roles\", formatGroupRoles(value.groupRoles)],\n [\"Created at\", value.createdAt],\n ]),\n });\n}\n\nconst createArgs = {\n ...contextArgs,\n ...showKeyArg,\n description: {\n type: \"string\",\n required: true,\n description: \"What this key is used for\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"create\",\n description: \"Create a new management key\",\n },\n args: createArgs,\n run: ({ args }) => {\n if (typeof args.description !== \"string\" || args.description === \"\") {\n return Promise.resolve(\n Result.fail({ message: \"Missing --description.\" }),\n );\n }\n const description = args.description;\n return runWithContext(args, (ctx) =>\n keyManagementCreateHandler(ctx, {\n description,\n showKey: args[\"show-key\"] === true,\n }),\n );\n },\n});\n"],"mappings":";;;;;;;;;AAeA,eAAsB,2BACpB,KACA,SACmE;CACnE,MAAM,UAAU,SACd,MAAM,IAAI,OAAO,KAAK,2CAA2C;EAC/D,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE;EACjD,MAAM,EAAE,aAAa,QAAQ,YAAY;CAC3C,CAAC,CACH;CACA,IAAI,OAAO,UAAU,OAAO,GAAG,OAAO,gBAAgB,QAAQ,KAAK;CAEnE,MAAM,QAAQ,QAAQ,UAClB,QAAQ,QACR;EAAE,GAAG,QAAQ;EAAO,KAAK,kBAAkB,QAAQ,MAAM,GAAG;CAAE;CAClE,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,aAAa;GACX,CAAC,MAAM,OAAO,MAAM,EAAE,CAAC;GACvB,CAAC,OAAO,MAAM,GAAG;GACjB,CAAC,eAAe,MAAM,WAAW;GACjC,CAAC,eAAe,iBAAiB,MAAM,UAAU,CAAC;GAClD,CAAC,cAAc,MAAM,SAAS;EAChC,CAAC;CACL,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAG;CACH,GAAG;CACH,aAAa;EACX,MAAM;EACN,UAAU;EACV,aAAa;CACf;AACF;AAEA,qBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WAAW;EACjB,IAAI,OAAO,KAAK,gBAAgB,YAAY,KAAK,gBAAgB,IAC/D,OAAO,QAAQ,QACb,OAAO,KAAK,EAAE,SAAS,yBAAyB,CAAC,CACnD;EAEF,MAAM,cAAc,KAAK;EACzB,OAAO,eAAe,OAAO,QAC3B,2BAA2B,KAAK;GAC9B;GACA,SAAS,KAAK,gBAAgB;EAChC,CAAC,CACH;CACF;AACF,CAAC"}
@@ -0,0 +1,81 @@
1
+ const require_cli_main = require('./cli/main.cjs');
2
+ const require_shared = require('./shared-DHRPzzKl.cjs');
3
+ const require_run_with_context = require('./run-with-context-DJNnEigg.cjs');
4
+ const require_detail = require('./detail-8CXNIhKw.cjs');
5
+ const require_parse = require('./parse-BeO2IwfI.cjs');
6
+ const require_table_event = require('./table-event-D7PPuS7E.cjs');
7
+ const require_get = require('./get-BHniACk5.cjs');
8
+ let _praha_byethrow = require("@praha/byethrow");
9
+
10
+ //#region src/cli/commands/webhook/create.ts
11
+ async function webhookCreateHandler(ctx, options) {
12
+ const created = require_run_with_context.toResult(await ctx.client.POST("/projects/{projectName}/webhooks", {
13
+ params: { path: { projectName: ctx.projectName } },
14
+ body: {
15
+ name: options.name,
16
+ url: options.url,
17
+ ...options.tableEvents !== void 0 ? { tableEvents: options.tableEvents } : {},
18
+ ...options.customHeaders !== void 0 ? { customHeaders: options.customHeaders } : {}
19
+ }
20
+ }));
21
+ if (_praha_byethrow.Result.isFailure(created)) return require_run_with_context.apiErrorFailure(created.error);
22
+ const value = created.value;
23
+ return _praha_byethrow.Result.succeed({
24
+ json: value,
25
+ text: () => require_detail.renderDetail([
26
+ ["ID", String(value.id)],
27
+ ["Name", value.name],
28
+ ["URL", value.url],
29
+ ["Table events", require_table_event.formatTableEvents(value.tableEvents)],
30
+ ["Custom headers", require_get.formatCustomHeaders(value.customHeaders)]
31
+ ])
32
+ });
33
+ }
34
+ const createArgs = {
35
+ ...require_shared.contextArgs,
36
+ name: {
37
+ type: "string",
38
+ required: true,
39
+ description: "Webhook name"
40
+ },
41
+ url: {
42
+ type: "string",
43
+ required: true,
44
+ description: "URL to notify"
45
+ },
46
+ "table-event": {
47
+ type: "string",
48
+ description: "Subscription as <table>:<event> (content.create, content.update, content.delete); repeatable"
49
+ },
50
+ header: {
51
+ type: "string",
52
+ description: "Custom header as <key>:<value>; repeatable"
53
+ }
54
+ };
55
+ var create_default = require_cli_main.defineCommand({
56
+ meta: {
57
+ name: "create",
58
+ description: "Create a webhook"
59
+ },
60
+ args: createArgs,
61
+ run: async ({ args, rawArgs }) => {
62
+ if (typeof args.name !== "string" || args.name === "") return _praha_byethrow.Result.fail({ message: "Missing --name." });
63
+ const url = require_parse.parseHttpUrl("url", args.url);
64
+ if (_praha_byethrow.Result.isFailure(url)) return url;
65
+ const tableEvents = require_table_event.parseTableEvents("table-event", require_parse.collectRepeatableFlag(rawArgs, "table-event"));
66
+ if (_praha_byethrow.Result.isFailure(tableEvents)) return tableEvents;
67
+ const customHeaders = require_parse.parseHeaders("header", require_parse.collectRepeatableFlag(rawArgs, "header"));
68
+ if (_praha_byethrow.Result.isFailure(customHeaders)) return customHeaders;
69
+ const name = args.name;
70
+ return require_run_with_context.runWithContext(args, (ctx) => webhookCreateHandler(ctx, {
71
+ name,
72
+ url: url.value,
73
+ tableEvents: tableEvents.value,
74
+ customHeaders: customHeaders.value
75
+ }));
76
+ }
77
+ });
78
+
79
+ //#endregion
80
+ exports.default = create_default;
81
+ //# sourceMappingURL=create-CykRHseR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-CykRHseR.cjs","names":["toResult","Result","apiErrorFailure","renderDetail","formatTableEvents","formatCustomHeaders","contextArgs","defineCommand","parseHttpUrl","parseTableEvents","collectRepeatableFlag","parseHeaders","runWithContext"],"sources":["../src/cli/commands/webhook/create.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../define-command.js\";\nimport { contextArgs } from \"../shared.js\";\nimport { runWithContext, type CommandContext } from \"../run-with-context.js\";\nimport { apiErrorFailure } from \"../api-errors.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { renderDetail } from \"../../ui/detail.js\";\nimport { collectRepeatableFlag, parseHeaders, parseHttpUrl } from \"../parse.js\";\nimport { formatCustomHeaders } from \"./get.js\";\nimport {\n formatTableEvents,\n parseTableEvents,\n type TableEvent,\n} from \"./table-event.js\";\n\nexport async function webhookCreateHandler(\n ctx: CommandContext,\n options: {\n name: string;\n url: string;\n tableEvents?: TableEvent[];\n customHeaders?: { key: string; value: string }[];\n },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const created = toResult(\n await ctx.client.POST(\"/projects/{projectName}/webhooks\", {\n params: { path: { projectName: ctx.projectName } },\n body: {\n name: options.name,\n url: options.url,\n ...(options.tableEvents !== undefined\n ? { tableEvents: options.tableEvents }\n : {}),\n ...(options.customHeaders !== undefined\n ? { customHeaders: options.customHeaders }\n : {}),\n },\n }),\n );\n if (Result.isFailure(created)) return apiErrorFailure(created.error);\n\n const value = created.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderDetail([\n [\"ID\", String(value.id)],\n [\"Name\", value.name],\n [\"URL\", value.url],\n [\"Table events\", formatTableEvents(value.tableEvents)],\n [\"Custom headers\", formatCustomHeaders(value.customHeaders)],\n ]),\n });\n}\n\nconst createArgs = {\n ...contextArgs,\n name: {\n type: \"string\",\n required: true,\n description: \"Webhook name\",\n },\n url: {\n type: \"string\",\n required: true,\n description: \"URL to notify\",\n },\n \"table-event\": {\n type: \"string\",\n description:\n \"Subscription as <table>:<event> (content.create, content.update, content.delete); repeatable\",\n },\n header: {\n type: \"string\",\n description: \"Custom header as <key>:<value>; repeatable\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"create\",\n description: \"Create a webhook\",\n },\n args: createArgs,\n run: async ({ args, rawArgs }) => {\n if (typeof args.name !== \"string\" || args.name === \"\") {\n return Result.fail({ message: \"Missing --name.\" });\n }\n const url = parseHttpUrl(\"url\", args.url);\n if (Result.isFailure(url)) return url;\n const tableEvents = parseTableEvents(\n \"table-event\",\n collectRepeatableFlag(rawArgs, \"table-event\"),\n );\n if (Result.isFailure(tableEvents)) return tableEvents;\n const customHeaders = parseHeaders(\n \"header\",\n collectRepeatableFlag(rawArgs, \"header\"),\n );\n if (Result.isFailure(customHeaders)) return customHeaders;\n\n const name = args.name;\n return runWithContext(args, (ctx) =>\n webhookCreateHandler(ctx, {\n name,\n url: url.value,\n tableEvents: tableEvents.value,\n customHeaders: customHeaders.value,\n }),\n );\n },\n});\n"],"mappings":";;;;;;;;;;AAoBA,eAAsB,qBACpB,KACA,SAMmE;CACnE,MAAM,UAAUA,kCACd,MAAM,IAAI,OAAO,KAAK,oCAAoC;EACxD,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE;EACjD,MAAM;GACJ,MAAM,QAAQ;GACd,KAAK,QAAQ;GACb,GAAI,QAAQ,gBAAgB,SACxB,EAAE,aAAa,QAAQ,YAAY,IACnC,CAAC;GACL,GAAI,QAAQ,kBAAkB,SAC1B,EAAE,eAAe,QAAQ,cAAc,IACvC,CAAC;EACP;CACF,CAAC,CACH;CACA,IAAIC,uBAAO,UAAU,OAAO,GAAG,OAAOC,yCAAgB,QAAQ,KAAK;CAEnE,MAAM,QAAQ,QAAQ;CACtB,OAAOD,uBAAO,QAAQ;EACpB,MAAM;EACN,YACEE,4BAAa;GACX,CAAC,MAAM,OAAO,MAAM,EAAE,CAAC;GACvB,CAAC,QAAQ,MAAM,IAAI;GACnB,CAAC,OAAO,MAAM,GAAG;GACjB,CAAC,gBAAgBC,sCAAkB,MAAM,WAAW,CAAC;GACrD,CAAC,kBAAkBC,gCAAoB,MAAM,aAAa,CAAC;EAC7D,CAAC;CACL,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAGC;CACH,MAAM;EACJ,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,KAAK;EACH,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,eAAe;EACb,MAAM;EACN,aACE;CACJ;CACA,QAAQ;EACN,MAAM;EACN,aAAa;CACf;AACF;AAEA,qBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,KAAK,OAAO,EAAE,MAAM,cAAc;EAChC,IAAI,OAAO,KAAK,SAAS,YAAY,KAAK,SAAS,IACjD,OAAON,uBAAO,KAAK,EAAE,SAAS,kBAAkB,CAAC;EAEnD,MAAM,MAAMO,2BAAa,OAAO,KAAK,GAAG;EACxC,IAAIP,uBAAO,UAAU,GAAG,GAAG,OAAO;EAClC,MAAM,cAAcQ,qCAClB,eACAC,oCAAsB,SAAS,aAAa,CAC9C;EACA,IAAIT,uBAAO,UAAU,WAAW,GAAG,OAAO;EAC1C,MAAM,gBAAgBU,2BACpB,UACAD,oCAAsB,SAAS,QAAQ,CACzC;EACA,IAAIT,uBAAO,UAAU,aAAa,GAAG,OAAO;EAE5C,MAAM,OAAO,KAAK;EAClB,OAAOW,wCAAe,OAAO,QAC3B,qBAAqB,KAAK;GACxB;GACA,KAAK,IAAI;GACT,aAAa,YAAY;GACzB,eAAe,cAAc;EAC/B,CAAC,CACH;CACF;AACF,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { t as defineCommand } from "./cli/main.mjs";
2
+ import { r as contextArgs } from "./shared-CZZimGxc.mjs";
3
+ import { a as apiErrorFailure, n as runWithContext, u as toResult } from "./run-with-context-CVhmzAFZ.mjs";
4
+ import { r as parseDataOption } from "./parse-CA5fBB3x.mjs";
5
+ import { Result } from "@praha/byethrow";
6
+
7
+ //#region src/cli/commands/content/create.ts
8
+ async function contentCreateHandler(ctx, options) {
9
+ const created = toResult(await ctx.client.POST("/projects/{projectName}/tables/{tableName}", {
10
+ params: { path: {
11
+ projectName: ctx.projectName,
12
+ tableName: options.table
13
+ } },
14
+ body: options.data
15
+ }));
16
+ if (Result.isFailure(created)) return apiErrorFailure(created.error);
17
+ const value = created.value;
18
+ return Result.succeed({
19
+ json: value,
20
+ text: () => JSON.stringify(value, null, 2)
21
+ });
22
+ }
23
+ const createArgs = {
24
+ ...contextArgs,
25
+ table: {
26
+ type: "positional",
27
+ required: true,
28
+ description: "Table name"
29
+ },
30
+ data: {
31
+ type: "string",
32
+ required: true,
33
+ description: "Content fields as a JSON object string or @path/to/file.json"
34
+ }
35
+ };
36
+ var create_default = defineCommand({
37
+ meta: {
38
+ name: "create",
39
+ description: "Create a content"
40
+ },
41
+ args: createArgs,
42
+ run: async ({ args }) => {
43
+ const data = await parseDataOption(args.data);
44
+ if (Result.isFailure(data)) return data;
45
+ return runWithContext(args, (ctx) => contentCreateHandler(ctx, {
46
+ table: args.table,
47
+ data: data.value
48
+ }));
49
+ }
50
+ });
51
+
52
+ //#endregion
53
+ export { create_default as default };
54
+ //# sourceMappingURL=create-RLyp_dl6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-RLyp_dl6.mjs","names":[],"sources":["../src/cli/commands/content/create.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../define-command.js\";\nimport { contextArgs } from \"../shared.js\";\nimport { runWithContext, type CommandContext } from \"../run-with-context.js\";\nimport { apiErrorFailure } from \"../api-errors.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { parseDataOption } from \"../parse.js\";\n\nexport async function contentCreateHandler(\n ctx: CommandContext,\n options: { table: string; data: Record<string, unknown> },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const created = toResult(\n await ctx.client.POST(\"/projects/{projectName}/tables/{tableName}\", {\n params: {\n path: { projectName: ctx.projectName, tableName: options.table },\n },\n body: options.data,\n }),\n );\n if (Result.isFailure(created)) return apiErrorFailure(created.error);\n\n const value = created.value;\n return Result.succeed({\n json: value,\n text: () => JSON.stringify(value, null, 2),\n });\n}\n\nconst createArgs = {\n ...contextArgs,\n table: {\n type: \"positional\",\n required: true,\n description: \"Table name\",\n },\n data: {\n type: \"string\",\n required: true,\n description: \"Content fields as a JSON object string or @path/to/file.json\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"create\",\n description: \"Create a content\",\n },\n args: createArgs,\n run: async ({ args }) => {\n const data = await parseDataOption(args.data);\n if (Result.isFailure(data)) return data;\n\n return runWithContext(args, (ctx) =>\n contentCreateHandler(ctx, { table: args.table, data: data.value }),\n );\n },\n});\n"],"mappings":";;;;;;;AAaA,eAAsB,qBACpB,KACA,SACmE;CACnE,MAAM,UAAU,SACd,MAAM,IAAI,OAAO,KAAK,8CAA8C;EAClE,QAAQ,EACN,MAAM;GAAE,aAAa,IAAI;GAAa,WAAW,QAAQ;EAAM,EACjE;EACA,MAAM,QAAQ;CAChB,CAAC,CACH;CACA,IAAI,OAAO,UAAU,OAAO,GAAG,OAAO,gBAAgB,QAAQ,KAAK;CAEnE,MAAM,QAAQ,QAAQ;CACtB,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YAAY,KAAK,UAAU,OAAO,MAAM,CAAC;CAC3C,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAG;CACH,OAAO;EACL,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,MAAM;EACJ,MAAM;EACN,UAAU;EACV,aAAa;CACf;AACF;AAEA,qBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,KAAK,OAAO,EAAE,WAAW;EACvB,MAAM,OAAO,MAAM,gBAAgB,KAAK,IAAI;EAC5C,IAAI,OAAO,UAAU,IAAI,GAAG,OAAO;EAEnC,OAAO,eAAe,OAAO,QAC3B,qBAAqB,KAAK;GAAE,OAAO,KAAK;GAAO,MAAM,KAAK;EAAM,CAAC,CACnE;CACF;AACF,CAAC"}
@@ -0,0 +1,66 @@
1
+ const require_cli_main = require('./cli/main.cjs');
2
+ const require_shared = require('./shared-DHRPzzKl.cjs');
3
+ const require_run_with_context = require('./run-with-context-DJNnEigg.cjs');
4
+ const require_detail = require('./detail-8CXNIhKw.cjs');
5
+ const require_org_context = require('./org-context-Bewx2NEW.cjs');
6
+ let _praha_byethrow = require("@praha/byethrow");
7
+
8
+ //#region src/cli/commands/project/create.ts
9
+ async function projectCreateHandler(ctx, options) {
10
+ const organizationId = await require_org_context.resolveOrganizationIdFromArgs({
11
+ client: ctx.client,
12
+ flag: options.organization,
13
+ cwd: options.cwd
14
+ });
15
+ if (_praha_byethrow.Result.isFailure(organizationId)) return organizationId;
16
+ const created = require_run_with_context.toResult(await ctx.client.POST("/projects", {
17
+ params: { query: { organizationId: organizationId.value } },
18
+ body: {
19
+ name: options.name,
20
+ displayName: options.displayName ?? options.name
21
+ }
22
+ }));
23
+ if (_praha_byethrow.Result.isFailure(created)) return require_run_with_context.apiErrorFailure(created.error);
24
+ const value = created.value;
25
+ return _praha_byethrow.Result.succeed({
26
+ json: value,
27
+ text: () => require_detail.renderDetail([
28
+ ["Created", value.name],
29
+ ["Display name", value.displayName],
30
+ ["ID", String(value.id)],
31
+ ["Organization ID", String(value.organizationId)]
32
+ ])
33
+ });
34
+ }
35
+ const createArgs = {
36
+ ...require_shared.globalArgs,
37
+ name: {
38
+ type: "positional",
39
+ required: true,
40
+ description: "New project name (globally unique)"
41
+ },
42
+ organization: {
43
+ type: "string",
44
+ description: "Organization to create the project in (defaults to linked)"
45
+ },
46
+ "display-name": {
47
+ type: "string",
48
+ description: "Display name (defaults to the project name)"
49
+ }
50
+ };
51
+ var create_default = require_cli_main.defineCommand({
52
+ meta: {
53
+ name: "create",
54
+ description: "Create a new project"
55
+ },
56
+ args: createArgs,
57
+ run: ({ args }) => require_run_with_context.runWithAuth((ctx) => projectCreateHandler(ctx, {
58
+ name: args.name,
59
+ displayName: typeof args["display-name"] === "string" ? args["display-name"] : void 0,
60
+ organization: typeof args.organization === "string" ? args.organization : void 0
61
+ }))
62
+ });
63
+
64
+ //#endregion
65
+ exports.default = create_default;
66
+ //# sourceMappingURL=create-Z-z3LXNW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-Z-z3LXNW.cjs","names":["resolveOrganizationIdFromArgs","Result","toResult","apiErrorFailure","renderDetail","globalArgs","defineCommand","runWithAuth"],"sources":["../src/cli/commands/project/create.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../define-command.js\";\nimport { globalArgs } from \"../shared.js\";\nimport { runWithAuth, type AuthContext } from \"../run-with-context.js\";\nimport { resolveOrganizationIdFromArgs } from \"../org-context.js\";\nimport { apiErrorFailure } from \"../api-errors.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { renderDetail } from \"../../ui/detail.js\";\n\nexport async function projectCreateHandler(\n ctx: AuthContext,\n options: {\n name: string;\n displayName?: string;\n organization?: string;\n cwd?: string;\n },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const organizationId = await resolveOrganizationIdFromArgs({\n client: ctx.client,\n flag: options.organization,\n cwd: options.cwd,\n });\n if (Result.isFailure(organizationId)) return organizationId;\n\n const created = toResult(\n await ctx.client.POST(\"/projects\", {\n params: { query: { organizationId: organizationId.value } },\n body: {\n name: options.name,\n displayName: options.displayName ?? options.name,\n },\n }),\n );\n if (Result.isFailure(created)) return apiErrorFailure(created.error);\n\n const value = created.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderDetail([\n [\"Created\", value.name],\n [\"Display name\", value.displayName],\n [\"ID\", String(value.id)],\n [\"Organization ID\", String(value.organizationId)],\n ]),\n });\n}\n\nconst createArgs = {\n ...globalArgs,\n name: {\n type: \"positional\",\n required: true,\n description: \"New project name (globally unique)\",\n },\n organization: {\n type: \"string\",\n description: \"Organization to create the project in (defaults to linked)\",\n },\n \"display-name\": {\n type: \"string\",\n description: \"Display name (defaults to the project name)\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"create\",\n description: \"Create a new project\",\n },\n args: createArgs,\n run: ({ args }) =>\n runWithAuth((ctx) =>\n projectCreateHandler(ctx, {\n name: args.name,\n displayName:\n typeof args[\"display-name\"] === \"string\"\n ? args[\"display-name\"]\n : undefined,\n organization:\n typeof args.organization === \"string\" ? args.organization : undefined,\n }),\n ),\n});\n"],"mappings":";;;;;;;;AAcA,eAAsB,qBACpB,KACA,SAMmE;CACnE,MAAM,iBAAiB,MAAMA,kDAA8B;EACzD,QAAQ,IAAI;EACZ,MAAM,QAAQ;EACd,KAAK,QAAQ;CACf,CAAC;CACD,IAAIC,uBAAO,UAAU,cAAc,GAAG,OAAO;CAE7C,MAAM,UAAUC,kCACd,MAAM,IAAI,OAAO,KAAK,aAAa;EACjC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,eAAe,MAAM,EAAE;EAC1D,MAAM;GACJ,MAAM,QAAQ;GACd,aAAa,QAAQ,eAAe,QAAQ;EAC9C;CACF,CAAC,CACH;CACA,IAAID,uBAAO,UAAU,OAAO,GAAG,OAAOE,yCAAgB,QAAQ,KAAK;CAEnE,MAAM,QAAQ,QAAQ;CACtB,OAAOF,uBAAO,QAAQ;EACpB,MAAM;EACN,YACEG,4BAAa;GACX,CAAC,WAAW,MAAM,IAAI;GACtB,CAAC,gBAAgB,MAAM,WAAW;GAClC,CAAC,MAAM,OAAO,MAAM,EAAE,CAAC;GACvB,CAAC,mBAAmB,OAAO,MAAM,cAAc,CAAC;EAClD,CAAC;CACL,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAGC;CACH,MAAM;EACJ,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,cAAc;EACZ,MAAM;EACN,aAAa;CACf;CACA,gBAAgB;EACd,MAAM;EACN,aAAa;CACf;AACF;AAEA,qBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,sCAAa,QACX,qBAAqB,KAAK;EACxB,MAAM,KAAK;EACX,aACE,OAAO,KAAK,oBAAoB,WAC5B,KAAK,kBACL;EACN,cACE,OAAO,KAAK,iBAAiB,WAAW,KAAK,eAAe;CAChE,CAAC,CACH;AACJ,CAAC"}
@@ -0,0 +1,59 @@
1
+ const require_cli_main = require('./cli/main.cjs');
2
+ const require_shared = require('./shared-DHRPzzKl.cjs');
3
+ const require_run_with_context = require('./run-with-context-DJNnEigg.cjs');
4
+ const require_confirm_delete = require('./confirm-delete-B9o73U7B.cjs');
5
+ let _praha_byethrow = require("@praha/byethrow");
6
+
7
+ //#region src/cli/commands/content/delete.ts
8
+ async function contentDeleteHandler(ctx, options) {
9
+ const confirmed = await require_confirm_delete.confirmDeletion(`content ${options.contentId} in table ${options.table}`, options.yes);
10
+ if (_praha_byethrow.Result.isFailure(confirmed)) return confirmed;
11
+ const deleted = require_run_with_context.toResult(await ctx.client.DELETE("/projects/{projectName}/tables/{tableName}/{contentId}", { params: { path: {
12
+ projectName: ctx.projectName,
13
+ tableName: options.table,
14
+ contentId: options.contentId
15
+ } } }));
16
+ if (_praha_byethrow.Result.isFailure(deleted)) return require_run_with_context.apiErrorFailure(deleted.error);
17
+ return _praha_byethrow.Result.succeed({
18
+ json: {
19
+ deleted: true,
20
+ table: options.table,
21
+ contentId: options.contentId
22
+ },
23
+ text: () => `Deleted content ${options.contentId} from table ${options.table}.`
24
+ });
25
+ }
26
+ const deleteArgs = {
27
+ ...require_shared.contextArgs,
28
+ table: {
29
+ type: "positional",
30
+ required: true,
31
+ description: "Table name"
32
+ },
33
+ id: {
34
+ type: "positional",
35
+ required: true,
36
+ description: "Content ID"
37
+ },
38
+ yes: {
39
+ type: "boolean",
40
+ description: "Skip the confirmation prompt",
41
+ default: false
42
+ }
43
+ };
44
+ var delete_default = require_cli_main.defineCommand({
45
+ meta: {
46
+ name: "delete",
47
+ description: "Delete a content"
48
+ },
49
+ args: deleteArgs,
50
+ run: ({ args }) => require_run_with_context.runWithContext(args, (ctx) => contentDeleteHandler(ctx, {
51
+ table: args.table,
52
+ contentId: args.id,
53
+ yes: args.yes === true
54
+ }))
55
+ });
56
+
57
+ //#endregion
58
+ exports.default = delete_default;
59
+ //# sourceMappingURL=delete-8yZ3j0vX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-8yZ3j0vX.cjs","names":["confirmDeletion","Result","toResult","apiErrorFailure","contextArgs","defineCommand","runWithContext"],"sources":["../src/cli/commands/content/delete.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../define-command.js\";\nimport { contextArgs } from \"../shared.js\";\nimport { runWithContext, type CommandContext } from \"../run-with-context.js\";\nimport { apiErrorFailure } from \"../api-errors.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { confirmDeletion } from \"../confirm-delete.js\";\n\nexport async function contentDeleteHandler(\n ctx: CommandContext,\n options: { table: string; contentId: string; yes: boolean },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const confirmed = await confirmDeletion(\n `content ${options.contentId} in table ${options.table}`,\n options.yes,\n );\n if (Result.isFailure(confirmed)) return confirmed;\n\n const deleted = toResult(\n await ctx.client.DELETE(\n \"/projects/{projectName}/tables/{tableName}/{contentId}\",\n {\n params: {\n path: {\n projectName: ctx.projectName,\n tableName: options.table,\n contentId: options.contentId,\n },\n },\n },\n ),\n );\n if (Result.isFailure(deleted)) return apiErrorFailure(deleted.error);\n\n return Result.succeed({\n json: { deleted: true, table: options.table, contentId: options.contentId },\n text: () =>\n `Deleted content ${options.contentId} from table ${options.table}.`,\n });\n}\n\nconst deleteArgs = {\n ...contextArgs,\n table: {\n type: \"positional\",\n required: true,\n description: \"Table name\",\n },\n id: {\n type: \"positional\",\n required: true,\n description: \"Content ID\",\n },\n yes: {\n type: \"boolean\",\n description: \"Skip the confirmation prompt\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"delete\",\n description: \"Delete a content\",\n },\n args: deleteArgs,\n run: ({ args }) =>\n runWithContext(args, (ctx) =>\n contentDeleteHandler(ctx, {\n table: args.table,\n contentId: args.id,\n yes: args.yes === true,\n }),\n ),\n});\n"],"mappings":";;;;;;;AAaA,eAAsB,qBACpB,KACA,SACmE;CACnE,MAAM,YAAY,MAAMA,uCACtB,WAAW,QAAQ,UAAU,YAAY,QAAQ,SACjD,QAAQ,GACV;CACA,IAAIC,uBAAO,UAAU,SAAS,GAAG,OAAO;CAExC,MAAM,UAAUC,kCACd,MAAM,IAAI,OAAO,OACf,0DACA,EACE,QAAQ,EACN,MAAM;EACJ,aAAa,IAAI;EACjB,WAAW,QAAQ;EACnB,WAAW,QAAQ;CACrB,EACF,EACF,CACF,CACF;CACA,IAAID,uBAAO,UAAU,OAAO,GAAG,OAAOE,yCAAgB,QAAQ,KAAK;CAEnE,OAAOF,uBAAO,QAAQ;EACpB,MAAM;GAAE,SAAS;GAAM,OAAO,QAAQ;GAAO,WAAW,QAAQ;EAAU;EAC1E,YACE,mBAAmB,QAAQ,UAAU,cAAc,QAAQ,MAAM;CACrE,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAGG;CACH,OAAO;EACL,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,IAAI;EACF,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,KAAK;EACH,MAAM;EACN,aAAa;EACb,SAAS;CACX;AACF;AAEA,qBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,wCAAe,OAAO,QACpB,qBAAqB,KAAK;EACxB,OAAO,KAAK;EACZ,WAAW,KAAK;EAChB,KAAK,KAAK,QAAQ;CACpB,CAAC,CACH;AACJ,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { a as notice, t as defineCommand } from "./cli/main.mjs";
2
+ import { r as contextArgs } from "./shared-CZZimGxc.mjs";
3
+ import { a as apiErrorFailure, n as runWithContext, s as promptText, u as toResult } from "./run-with-context-CVhmzAFZ.mjs";
4
+ import { t as projectNameOverride } from "./project-name-DNMejnzZ.mjs";
5
+ import { Result } from "@praha/byethrow";
6
+
7
+ //#region src/cli/commands/project/delete.ts
8
+ async function projectDeleteHandler(ctx, options) {
9
+ if (!options.yes) {
10
+ if (process.stdin.isTTY !== true) return Result.fail({ message: "Refusing to delete without confirmation in a non-interactive shell. Re-run with --yes." });
11
+ notice(`This permanently deletes project "${ctx.projectName}" and all of its content.`);
12
+ if (await promptText(`Type the project name to confirm deletion:`) !== ctx.projectName) return Result.fail({ message: "Project name did not match. Aborted." });
13
+ }
14
+ const deleted = toResult(await ctx.client.DELETE("/projects/{projectName}", { params: { path: { projectName: ctx.projectName } } }));
15
+ if (Result.isFailure(deleted)) return apiErrorFailure(deleted.error);
16
+ return Result.succeed({
17
+ json: {
18
+ deleted: true,
19
+ projectName: ctx.projectName
20
+ },
21
+ text: () => `Deleted project ${ctx.projectName}.`
22
+ });
23
+ }
24
+ const deleteArgs = {
25
+ ...contextArgs,
26
+ name: {
27
+ type: "positional",
28
+ required: false,
29
+ description: "Project name (defaults to the current project context)"
30
+ },
31
+ yes: {
32
+ type: "boolean",
33
+ description: "Skip the type-to-confirm prompt",
34
+ default: false
35
+ }
36
+ };
37
+ var delete_default = defineCommand({
38
+ meta: {
39
+ name: "delete",
40
+ description: "Delete a project and all of its content"
41
+ },
42
+ args: deleteArgs,
43
+ run: ({ args }) => runWithContext(projectNameOverride(args), (ctx) => projectDeleteHandler(ctx, { yes: args.yes === true }))
44
+ });
45
+
46
+ //#endregion
47
+ export { delete_default as default };
48
+ //# sourceMappingURL=delete-BOUObrDw.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-BOUObrDw.mjs","names":[],"sources":["../src/cli/commands/project/delete.ts"],"sourcesContent":["import type { ArgsDef } from \"citty\";\nimport { Result } from \"@praha/byethrow\";\nimport {\n defineCommand,\n type CommandFailure,\n type CommandOutput,\n} from \"../define-command.js\";\nimport { contextArgs } from \"../shared.js\";\nimport { runWithContext, type CommandContext } from \"../run-with-context.js\";\nimport { apiErrorFailure } from \"../api-errors.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { notice } from \"../../ui/output.js\";\nimport { promptText } from \"../../ui/prompt.js\";\nimport { projectNameOverride } from \"./project-name.js\";\n\nexport async function projectDeleteHandler(\n ctx: CommandContext,\n options: { yes: boolean },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n if (!options.yes) {\n if (process.stdin.isTTY !== true) {\n return Result.fail({\n message:\n \"Refusing to delete without confirmation in a non-interactive shell. Re-run with --yes.\",\n });\n }\n\n notice(\n `This permanently deletes project \"${ctx.projectName}\" and all of its content.`,\n );\n const typed = await promptText(\n `Type the project name to confirm deletion:`,\n );\n if (typed !== ctx.projectName) {\n return Result.fail({\n message: \"Project name did not match. Aborted.\",\n });\n }\n }\n\n const deleted = toResult(\n await ctx.client.DELETE(\"/projects/{projectName}\", {\n params: { path: { projectName: ctx.projectName } },\n }),\n );\n if (Result.isFailure(deleted)) return apiErrorFailure(deleted.error);\n\n return Result.succeed({\n json: { deleted: true, projectName: ctx.projectName },\n text: () => `Deleted project ${ctx.projectName}.`,\n });\n}\n\nconst deleteArgs = {\n ...contextArgs,\n name: {\n type: \"positional\",\n required: false,\n description: \"Project name (defaults to the current project context)\",\n },\n yes: {\n type: \"boolean\",\n description: \"Skip the type-to-confirm prompt\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"delete\",\n description: \"Delete a project and all of its content\",\n },\n args: deleteArgs,\n run: ({ args }) =>\n runWithContext(projectNameOverride(args), (ctx) =>\n projectDeleteHandler(ctx, { yes: args.yes === true }),\n ),\n});\n"],"mappings":";;;;;;;AAeA,eAAsB,qBACpB,KACA,SACmE;CACnE,IAAI,CAAC,QAAQ,KAAK;EAChB,IAAI,QAAQ,MAAM,UAAU,MAC1B,OAAO,OAAO,KAAK,EACjB,SACE,yFACJ,CAAC;EAGH,OACE,qCAAqC,IAAI,YAAY,0BACvD;EAIA,IAAI,MAHgB,WAClB,4CACF,MACc,IAAI,aAChB,OAAO,OAAO,KAAK,EACjB,SAAS,uCACX,CAAC;CAEL;CAEA,MAAM,UAAU,SACd,MAAM,IAAI,OAAO,OAAO,2BAA2B,EACjD,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE,EACnD,CAAC,CACH;CACA,IAAI,OAAO,UAAU,OAAO,GAAG,OAAO,gBAAgB,QAAQ,KAAK;CAEnE,OAAO,OAAO,QAAQ;EACpB,MAAM;GAAE,SAAS;GAAM,aAAa,IAAI;EAAY;EACpD,YAAY,mBAAmB,IAAI,YAAY;CACjD,CAAC;AACH;AAEA,MAAM,aAAa;CACjB,GAAG;CACH,MAAM;EACJ,MAAM;EACN,UAAU;EACV,aAAa;CACf;CACA,KAAK;EACH,MAAM;EACN,aAAa;EACb,SAAS;CACX;AACF;AAEA,qBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACN,eAAe,oBAAoB,IAAI,IAAI,QACzC,qBAAqB,KAAK,EAAE,KAAK,KAAK,QAAQ,KAAK,CAAC,CACtD;AACJ,CAAC"}