@orizm/cli 2.2.7 → 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.
- package/README.md +111 -4
- package/dist/array-update-CMFUoQEe.mjs +41 -0
- package/dist/array-update-CMFUoQEe.mjs.map +1 -0
- package/dist/array-update-Dch4e9tI.cjs +58 -0
- package/dist/array-update-Dch4e9tI.cjs.map +1 -0
- package/dist/auth-BGW072BP.mjs +18 -0
- package/dist/auth-BGW072BP.mjs.map +1 -0
- package/dist/auth-CNbONZuf.cjs +18 -0
- package/dist/auth-CNbONZuf.cjs.map +1 -0
- package/dist/bucket-6d3VNt1D.mjs +17 -0
- package/dist/bucket-6d3VNt1D.mjs.map +1 -0
- package/dist/bucket-DjbHz9_A.cjs +17 -0
- package/dist/bucket-DjbHz9_A.cjs.map +1 -0
- package/dist/cli/main.cjs +231 -0
- package/dist/cli/main.cjs.map +1 -0
- package/dist/cli/main.d.cts +1 -0
- package/dist/cli/main.d.mts +1 -0
- package/dist/cli/main.mjs +196 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cms-BJnovGYT.mjs +172 -0
- package/dist/cms-BJnovGYT.mjs.map +1 -0
- package/dist/cms-Cnx-lDGu.cjs +172 -0
- package/dist/cms-Cnx-lDGu.cjs.map +1 -0
- package/dist/codegen-BF5b-u46.cjs +17 -0
- package/dist/codegen-BF5b-u46.cjs.map +1 -0
- package/dist/codegen-DZOB4ttR.mjs +17 -0
- package/dist/codegen-DZOB4ttR.mjs.map +1 -0
- package/dist/config/index.cjs +49 -96
- package/dist/config/index.cjs.map +1 -1
- package/dist/config/index.d.cts +1 -53
- package/dist/config/{index.d.ts → index.d.mts} +29 -27
- package/dist/config/index.d.mts.map +1 -0
- package/dist/config/index.mjs +59 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/config-loader-BEgS869e.mjs +65 -0
- package/dist/config-loader-BEgS869e.mjs.map +1 -0
- package/dist/config-loader-D8x32gEU.cjs +78 -0
- package/dist/config-loader-D8x32gEU.cjs.map +1 -0
- package/dist/confirm-delete-B9o73U7B.cjs +19 -0
- package/dist/confirm-delete-B9o73U7B.cjs.map +1 -0
- package/dist/confirm-delete-CsWkW69-.mjs +14 -0
- package/dist/confirm-delete-CsWkW69-.mjs.map +1 -0
- package/dist/consumer-BBsH8b1j.cjs +18 -0
- package/dist/consumer-BBsH8b1j.cjs.map +1 -0
- package/dist/consumer-DqyRfpsl.mjs +18 -0
- package/dist/consumer-DqyRfpsl.mjs.map +1 -0
- package/dist/consumer-OF6Z_eTP.cjs +95 -0
- package/dist/consumer-OF6Z_eTP.cjs.map +1 -0
- package/dist/consumer-pU2HyiyA.mjs +95 -0
- package/dist/consumer-pU2HyiyA.mjs.map +1 -0
- package/dist/content-BsoRmjis.mjs +20 -0
- package/dist/content-BsoRmjis.mjs.map +1 -0
- package/dist/content-Y-2Y0cyn.cjs +20 -0
- package/dist/content-Y-2Y0cyn.cjs.map +1 -0
- package/dist/create--1NYduI_.cjs +58 -0
- package/dist/create--1NYduI_.cjs.map +1 -0
- package/dist/create-B-PAOor6.mjs +66 -0
- package/dist/create-B-PAOor6.mjs.map +1 -0
- package/dist/create-BNYWcyuQ.cjs +66 -0
- package/dist/create-BNYWcyuQ.cjs.map +1 -0
- package/dist/create-B_gsZCL-.cjs +54 -0
- package/dist/create-B_gsZCL-.cjs.map +1 -0
- package/dist/create-BqlxdhcR.mjs +81 -0
- package/dist/create-BqlxdhcR.mjs.map +1 -0
- package/dist/create-CC814ixh.mjs +66 -0
- package/dist/create-CC814ixh.mjs.map +1 -0
- package/dist/create-CkFBiEDH.mjs +58 -0
- package/dist/create-CkFBiEDH.mjs.map +1 -0
- package/dist/create-CykRHseR.cjs +81 -0
- package/dist/create-CykRHseR.cjs.map +1 -0
- package/dist/create-RLyp_dl6.mjs +54 -0
- package/dist/create-RLyp_dl6.mjs.map +1 -0
- package/dist/create-Z-z3LXNW.cjs +66 -0
- package/dist/create-Z-z3LXNW.cjs.map +1 -0
- package/dist/delete-8yZ3j0vX.cjs +59 -0
- package/dist/delete-8yZ3j0vX.cjs.map +1 -0
- package/dist/delete-BOUObrDw.mjs +48 -0
- package/dist/delete-BOUObrDw.mjs.map +1 -0
- package/dist/delete-BSLIXrAh.mjs +59 -0
- package/dist/delete-BSLIXrAh.mjs.map +1 -0
- package/dist/delete-BenBNL2p.mjs +56 -0
- package/dist/delete-BenBNL2p.mjs.map +1 -0
- package/dist/delete-Bx2oNROv.cjs +56 -0
- package/dist/delete-Bx2oNROv.cjs.map +1 -0
- package/dist/delete-CCTiCYIL.cjs +51 -0
- package/dist/delete-CCTiCYIL.cjs.map +1 -0
- package/dist/delete-CGW0VMK6.cjs +56 -0
- package/dist/delete-CGW0VMK6.cjs.map +1 -0
- package/dist/delete-CIYY59v_.cjs +48 -0
- package/dist/delete-CIYY59v_.cjs.map +1 -0
- package/dist/delete-CSSd0gmt.mjs +56 -0
- package/dist/delete-CSSd0gmt.mjs.map +1 -0
- package/dist/delete-CSs5Czlo.mjs +59 -0
- package/dist/delete-CSs5Czlo.mjs.map +1 -0
- package/dist/delete-CrOVRvMo.cjs +56 -0
- package/dist/delete-CrOVRvMo.cjs.map +1 -0
- package/dist/delete-DehKYCXh.mjs +56 -0
- package/dist/delete-DehKYCXh.mjs.map +1 -0
- package/dist/delete-DhSU-Lx2.mjs +51 -0
- package/dist/delete-DhSU-Lx2.mjs.map +1 -0
- package/dist/delete-DozSxZQ7.cjs +59 -0
- package/dist/delete-DozSxZQ7.cjs.map +1 -0
- package/dist/detail-8CXNIhKw.cjs +16 -0
- package/dist/detail-8CXNIhKw.cjs.map +1 -0
- package/dist/detail-DN5jCQ4N.mjs +10 -0
- package/dist/detail-DN5jCQ4N.mjs.map +1 -0
- package/dist/download-oFGzg30E.mjs +68 -0
- package/dist/download-oFGzg30E.mjs.map +1 -0
- package/dist/download-ogGbb3FU.cjs +68 -0
- package/dist/download-ogGbb3FU.cjs.map +1 -0
- package/dist/erd-lKC5NB2l.cjs +124 -0
- package/dist/erd-lKC5NB2l.cjs.map +1 -0
- package/dist/erd-zDoF6I_y.mjs +123 -0
- package/dist/erd-zDoF6I_y.mjs.map +1 -0
- package/dist/get-BBOKSXkh.cjs +48 -0
- package/dist/get-BBOKSXkh.cjs.map +1 -0
- package/dist/get-BHniACk5.cjs +57 -0
- package/dist/get-BHniACk5.cjs.map +1 -0
- package/dist/get-BtmzDaVn.mjs +47 -0
- package/dist/get-BtmzDaVn.mjs.map +1 -0
- package/dist/get-CVV3h6HR.cjs +47 -0
- package/dist/get-CVV3h6HR.cjs.map +1 -0
- package/dist/get-CgEgETQa.mjs +52 -0
- package/dist/get-CgEgETQa.mjs.map +1 -0
- package/dist/get-DB80UNSR.mjs +47 -0
- package/dist/get-DB80UNSR.mjs.map +1 -0
- package/dist/get-DBxhbN1G.mjs +57 -0
- package/dist/get-DBxhbN1G.mjs.map +1 -0
- package/dist/get-DDB89cOs.mjs +48 -0
- package/dist/get-DDB89cOs.mjs.map +1 -0
- package/dist/get-DPGx1zU4.mjs +56 -0
- package/dist/get-DPGx1zU4.mjs.map +1 -0
- package/dist/get-IOU__2RP.cjs +52 -0
- package/dist/get-IOU__2RP.cjs.map +1 -0
- package/dist/get-KdWfYINc.cjs +47 -0
- package/dist/get-KdWfYINc.cjs.map +1 -0
- package/dist/get-jwXRlIBJ.cjs +57 -0
- package/dist/get-jwXRlIBJ.cjs.map +1 -0
- package/dist/group-roles-BEEzLxPX.mjs +36 -0
- package/dist/group-roles-BEEzLxPX.mjs.map +1 -0
- package/dist/group-roles-Bl_mEodO.cjs +59 -0
- package/dist/group-roles-Bl_mEodO.cjs.map +1 -0
- package/dist/invite-DsOCKGTJ.mjs +66 -0
- package/dist/invite-DsOCKGTJ.mjs.map +1 -0
- package/dist/invite-Dts9uNQL.cjs +66 -0
- package/dist/invite-Dts9uNQL.cjs.map +1 -0
- package/dist/key-BogfSiz_.mjs +17 -0
- package/dist/key-BogfSiz_.mjs.map +1 -0
- package/dist/key-Czwiu2pW.cjs +17 -0
- package/dist/key-Czwiu2pW.cjs.map +1 -0
- package/dist/link-BluFyxEL.mjs +42 -0
- package/dist/link-BluFyxEL.mjs.map +1 -0
- package/dist/link-DYu1Vjlw.cjs +42 -0
- package/dist/link-DYu1Vjlw.cjs.map +1 -0
- package/dist/list-2BpPj4Z0.cjs +40 -0
- package/dist/list-2BpPj4Z0.cjs.map +1 -0
- package/dist/list-57TUfNFd.mjs +48 -0
- package/dist/list-57TUfNFd.mjs.map +1 -0
- package/dist/list-60NcDr0q.cjs +81 -0
- package/dist/list-60NcDr0q.cjs.map +1 -0
- package/dist/list-BRh59EqI.cjs +35 -0
- package/dist/list-BRh59EqI.cjs.map +1 -0
- package/dist/list-BwfpuhmJ.cjs +37 -0
- package/dist/list-BwfpuhmJ.cjs.map +1 -0
- package/dist/list-CJuefq_I.cjs +82 -0
- package/dist/list-CJuefq_I.cjs.map +1 -0
- package/dist/list-CYE9Exi3.cjs +72 -0
- package/dist/list-CYE9Exi3.cjs.map +1 -0
- package/dist/list-CbvEh7eA.mjs +35 -0
- package/dist/list-CbvEh7eA.mjs.map +1 -0
- package/dist/list-CfIeReBx.mjs +82 -0
- package/dist/list-CfIeReBx.mjs.map +1 -0
- package/dist/list-CxHDoXjv.mjs +81 -0
- package/dist/list-CxHDoXjv.mjs.map +1 -0
- package/dist/list-D0-QrWmn.cjs +51 -0
- package/dist/list-D0-QrWmn.cjs.map +1 -0
- package/dist/list-D24J_Qbm.mjs +49 -0
- package/dist/list-D24J_Qbm.mjs.map +1 -0
- package/dist/list-D5PSDMWw.mjs +51 -0
- package/dist/list-D5PSDMWw.mjs.map +1 -0
- package/dist/list-DRKF2uKW.cjs +95 -0
- package/dist/list-DRKF2uKW.cjs.map +1 -0
- package/dist/list-DdJ05juK.mjs +72 -0
- package/dist/list-DdJ05juK.mjs.map +1 -0
- package/dist/list-DlJssPwy.cjs +48 -0
- package/dist/list-DlJssPwy.cjs.map +1 -0
- package/dist/list-V3W6hvOa.cjs +49 -0
- package/dist/list-V3W6hvOa.cjs.map +1 -0
- package/dist/list-rAn3uOA7.mjs +37 -0
- package/dist/list-rAn3uOA7.mjs.map +1 -0
- package/dist/list-syVDGkVR.mjs +40 -0
- package/dist/list-syVDGkVR.mjs.map +1 -0
- package/dist/list-yQZLzkC7.mjs +95 -0
- package/dist/list-yQZLzkC7.mjs.map +1 -0
- package/dist/login-2XcHd4wn.cjs +212 -0
- package/dist/login-2XcHd4wn.cjs.map +1 -0
- package/dist/login-FE_dbWMo.mjs +211 -0
- package/dist/login-FE_dbWMo.mjs.map +1 -0
- package/dist/logout-BDbWrGBm.mjs +35 -0
- package/dist/logout-BDbWrGBm.mjs.map +1 -0
- package/dist/logout-DC5TMJ5_.cjs +35 -0
- package/dist/logout-DC5TMJ5_.cjs.map +1 -0
- package/dist/management-BaN1Nynl.mjs +19 -0
- package/dist/management-BaN1Nynl.mjs.map +1 -0
- package/dist/management-DHXxdCra.cjs +19 -0
- package/dist/management-DHXxdCra.cjs.map +1 -0
- package/dist/mask-B1qD73jb.mjs +22 -0
- package/dist/mask-B1qD73jb.mjs.map +1 -0
- package/dist/mask-CqYLib9p.cjs +40 -0
- package/dist/mask-CqYLib9p.cjs.map +1 -0
- package/dist/oauth-client-CdD0evAV.cjs +170 -0
- package/dist/oauth-client-CdD0evAV.cjs.map +1 -0
- package/dist/oauth-client-QHuDa4fW.mjs +139 -0
- package/dist/oauth-client-QHuDa4fW.mjs.map +1 -0
- package/dist/object-BfUf8Y6w.mjs +20 -0
- package/dist/object-BfUf8Y6w.mjs.map +1 -0
- package/dist/object-DT7UEW9G.cjs +20 -0
- package/dist/object-DT7UEW9G.cjs.map +1 -0
- package/dist/org-C4cVovOM.cjs +14 -0
- package/dist/org-C4cVovOM.cjs.map +1 -0
- package/dist/org-CPhTRTks.mjs +14 -0
- package/dist/org-CPhTRTks.mjs.map +1 -0
- package/dist/org-context-Bewx2NEW.cjs +30 -0
- package/dist/org-context-Bewx2NEW.cjs.map +1 -0
- package/dist/org-context-D0dwWC2M.mjs +25 -0
- package/dist/org-context-D0dwWC2M.mjs.map +1 -0
- package/dist/parse-BeO2IwfI.cjs +229 -0
- package/dist/parse-BeO2IwfI.cjs.map +1 -0
- package/dist/parse-CA5fBB3x.mjs +150 -0
- package/dist/parse-CA5fBB3x.mjs.map +1 -0
- package/dist/project-CNr9xMny.cjs +20 -0
- package/dist/project-CNr9xMny.cjs.map +1 -0
- package/dist/project-DFoHcXi5.mjs +20 -0
- package/dist/project-DFoHcXi5.mjs.map +1 -0
- package/dist/project-name-CEoM-OL4.cjs +18 -0
- package/dist/project-name-CEoM-OL4.cjs.map +1 -0
- package/dist/project-name-DNMejnzZ.mjs +12 -0
- package/dist/project-name-DNMejnzZ.mjs.map +1 -0
- package/dist/project-user-9D7Ey_Fu.mjs +20 -0
- package/dist/project-user-9D7Ey_Fu.mjs.map +1 -0
- package/dist/project-user-DTPFjyfZ.cjs +20 -0
- package/dist/project-user-DTPFjyfZ.cjs.map +1 -0
- package/dist/push-0u6PDz4E.cjs +166 -0
- package/dist/push-0u6PDz4E.cjs.map +1 -0
- package/dist/push-D7co0keA.mjs +166 -0
- package/dist/push-D7co0keA.mjs.map +1 -0
- package/dist/run-codegen-Ceeosw5x.cjs +272 -0
- package/dist/run-codegen-Ceeosw5x.cjs.map +1 -0
- package/dist/run-codegen-DgaFaIQ1.mjs +190 -0
- package/dist/run-codegen-DgaFaIQ1.mjs.map +1 -0
- package/dist/run-with-context-CVhmzAFZ.mjs +876 -0
- package/dist/run-with-context-CVhmzAFZ.mjs.map +1 -0
- package/dist/run-with-context-DJNnEigg.cjs +943 -0
- package/dist/run-with-context-DJNnEigg.cjs.map +1 -0
- package/dist/schema-DDzrgjkT.mjs +20 -0
- package/dist/schema-DDzrgjkT.mjs.map +1 -0
- package/dist/schema-DdhyEh81.cjs +20 -0
- package/dist/schema-DdhyEh81.cjs.map +1 -0
- package/dist/shared-CZZimGxc.mjs +35 -0
- package/dist/shared-CZZimGxc.mjs.map +1 -0
- package/dist/shared-DHRPzzKl.cjs +59 -0
- package/dist/shared-DHRPzzKl.cjs.map +1 -0
- package/dist/status-Dq_NJE71.cjs +49 -0
- package/dist/status-Dq_NJE71.cjs.map +1 -0
- package/dist/status-fWqXzV0P.mjs +49 -0
- package/dist/status-fWqXzV0P.mjs.map +1 -0
- package/dist/table-C74eOSh8.cjs +27 -0
- package/dist/table-C74eOSh8.cjs.map +1 -0
- package/dist/table-MHEfbnWO.mjs +20 -0
- package/dist/table-MHEfbnWO.mjs.map +1 -0
- package/dist/table-event-C16cp9nq.mjs +72 -0
- package/dist/table-event-C16cp9nq.mjs.map +1 -0
- package/dist/table-event-D7PPuS7E.cjs +101 -0
- package/dist/table-event-D7PPuS7E.cjs.map +1 -0
- package/dist/token-store--9GYVL7N.cjs +139 -0
- package/dist/token-store--9GYVL7N.cjs.map +1 -0
- package/dist/token-store-reCGF86F.mjs +124 -0
- package/dist/token-store-reCGF86F.mjs.map +1 -0
- package/dist/update-8e3u4jKa.mjs +109 -0
- package/dist/update-8e3u4jKa.mjs.map +1 -0
- package/dist/update-CDLviRuu.cjs +73 -0
- package/dist/update-CDLviRuu.cjs.map +1 -0
- package/dist/update-CSiOfiPL.mjs +117 -0
- package/dist/update-CSiOfiPL.mjs.map +1 -0
- package/dist/update-CjbcI8Qc.mjs +61 -0
- package/dist/update-CjbcI8Qc.mjs.map +1 -0
- package/dist/update-Cktd0zXA.cjs +109 -0
- package/dist/update-Cktd0zXA.cjs.map +1 -0
- package/dist/update-D-X32BVW.cjs +117 -0
- package/dist/update-D-X32BVW.cjs.map +1 -0
- package/dist/update-DfYV_TQb.mjs +171 -0
- package/dist/update-DfYV_TQb.mjs.map +1 -0
- package/dist/update-OWC5K8Ne.cjs +61 -0
- package/dist/update-OWC5K8Ne.cjs.map +1 -0
- package/dist/update-ap5Qv1Yl.cjs +171 -0
- package/dist/update-ap5Qv1Yl.cjs.map +1 -0
- package/dist/update-yscrx6WQ.mjs +73 -0
- package/dist/update-yscrx6WQ.mjs.map +1 -0
- package/dist/upload-C43ZXxyb.cjs +95 -0
- package/dist/upload-C43ZXxyb.cjs.map +1 -0
- package/dist/upload-DGgJ1TQk.mjs +94 -0
- package/dist/upload-DGgJ1TQk.mjs.map +1 -0
- package/dist/validate-BpxZ8LTl.cjs +31 -0
- package/dist/validate-BpxZ8LTl.cjs.map +1 -0
- package/dist/validate-Ca0CRo16.mjs +31 -0
- package/dist/validate-Ca0CRo16.mjs.map +1 -0
- package/dist/webhook-3zs6Ulxd.mjs +20 -0
- package/dist/webhook-3zs6Ulxd.mjs.map +1 -0
- package/dist/webhook-BsygMMf-.cjs +20 -0
- package/dist/webhook-BsygMMf-.cjs.map +1 -0
- package/package.json +27 -16
- package/bin/index.js +0 -3
- package/dist/cli.cjs +0 -1978
- package/dist/cli.cjs.map +0 -1
- package/dist/cli.d.cts +0 -2
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +0 -1954
- package/dist/cli.js.map +0 -1
- package/dist/config/index.js +0 -81
- package/dist/config/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-D0-QrWmn.cjs","names":["resolveOrganizationIdFromArgs","Result","toResult","apiErrorFailure","renderTable","getOutputState","globalArgs","defineCommand","runWithAuth"],"sources":["../src/cli/commands/project/list.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 { getOutputState } from \"../../ui/output.js\";\nimport { renderTable } from \"../../ui/table.js\";\n\nexport async function projectListHandler(\n ctx: AuthContext,\n options: { organization?: string; cwd?: string },\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 projects = toResult(\n await ctx.client.GET(\"/projects\", {\n params: { query: { organizationId: organizationId.value } },\n }),\n );\n if (Result.isFailure(projects)) return apiErrorFailure(projects.error);\n\n return Result.succeed({\n json: projects.value,\n text: () =>\n renderTable(\n [\"NAME\", \"DISPLAY NAME\", \"ID\", \"VERSION\"],\n projects.value.map((project) => ({\n cells: [\n project.name,\n project.displayName,\n String(project.id),\n String(project.definitionVersion),\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...globalArgs,\n organization: {\n type: \"string\",\n description: \"Organization name (defaults to the linked organization)\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List projects in an organization\",\n },\n args: listArgs,\n run: ({ args }) =>\n runWithAuth((ctx) =>\n projectListHandler(ctx, {\n organization:\n typeof args.organization === \"string\" ? args.organization : undefined,\n }),\n ),\n});\n"],"mappings":";;;;;;;;AAeA,eAAsB,mBACpB,KACA,SACmE;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,WAAWC,kCACf,MAAM,IAAI,OAAO,IAAI,aAAa,EAChC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,eAAe,MAAM,EAAE,EAC5D,CAAC,CACH;CACA,IAAID,uBAAO,UAAU,QAAQ,GAAG,OAAOE,yCAAgB,SAAS,KAAK;CAErE,OAAOF,uBAAO,QAAQ;EACpB,MAAM,SAAS;EACf,YACEG,0BACE;GAAC;GAAQ;GAAgB;GAAM;EAAS,GACxC,SAAS,MAAM,KAAK,aAAa,EAC/B,OAAO;GACL,QAAQ;GACR,QAAQ;GACR,OAAO,QAAQ,EAAE;GACjB,OAAO,QAAQ,iBAAiB;EAClC,EACF,EAAE,GACFC,gCAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW;CACf,GAAGC;CACH,cAAc;EACZ,MAAM;EACN,aAAa;CACf;AACF;AAEA,mBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,sCAAa,QACX,mBAAmB,KAAK,EACtB,cACE,OAAO,KAAK,iBAAiB,WAAW,KAAK,eAAe,OAChE,CAAC,CACH;AACJ,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { r as getOutputState, 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 renderTable } from "./table-MHEfbnWO.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/list.ts
|
|
10
|
+
async function keyManagementListHandler(ctx, options) {
|
|
11
|
+
const keys = toResult(await ctx.client.GET("/projects/{projectName}/management-keys", { params: { path: { projectName: ctx.projectName } } }));
|
|
12
|
+
if (Result.isFailure(keys)) return apiErrorFailure(keys.error);
|
|
13
|
+
const value = keys.value.map((item) => options.showKey ? item : {
|
|
14
|
+
...item,
|
|
15
|
+
key: maskManagementKey(item.key)
|
|
16
|
+
});
|
|
17
|
+
return Result.succeed({
|
|
18
|
+
json: value,
|
|
19
|
+
text: () => renderTable([
|
|
20
|
+
"ID",
|
|
21
|
+
"KEY",
|
|
22
|
+
"DESCRIPTION",
|
|
23
|
+
"GROUP ROLES",
|
|
24
|
+
"CREATED AT"
|
|
25
|
+
], value.map((item) => ({ cells: [
|
|
26
|
+
String(item.id),
|
|
27
|
+
item.key,
|
|
28
|
+
item.description,
|
|
29
|
+
formatGroupRoles(item.groupRoles),
|
|
30
|
+
item.createdAt
|
|
31
|
+
] })), getOutputState().color)
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const listArgs = {
|
|
35
|
+
...contextArgs,
|
|
36
|
+
...showKeyArg
|
|
37
|
+
};
|
|
38
|
+
var list_default = defineCommand({
|
|
39
|
+
meta: {
|
|
40
|
+
name: "list",
|
|
41
|
+
description: "List management keys"
|
|
42
|
+
},
|
|
43
|
+
args: listArgs,
|
|
44
|
+
run: ({ args }) => runWithContext(args, (ctx) => keyManagementListHandler(ctx, { showKey: args["show-key"] === true }))
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { list_default as default };
|
|
49
|
+
//# sourceMappingURL=list-D24J_Qbm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-D24J_Qbm.mjs","names":[],"sources":["../src/cli/commands/key/management/list.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 { getOutputState } from \"../../../ui/output.js\";\nimport { renderTable } from \"../../../ui/table.js\";\nimport { formatGroupRoles } from \"../../group-roles.js\";\nimport { maskManagementKey, showKeyArg } from \"../mask.js\";\n\nexport async function keyManagementListHandler(\n ctx: CommandContext,\n options: { showKey: boolean },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const keys = toResult(\n await ctx.client.GET(\"/projects/{projectName}/management-keys\", {\n params: { path: { projectName: ctx.projectName } },\n }),\n );\n if (Result.isFailure(keys)) return apiErrorFailure(keys.error);\n\n // --json でもマスクを効かせるため、表示用データ自体を書き換える\n const value = keys.value.map((item) =>\n options.showKey ? item : { ...item, key: maskManagementKey(item.key) },\n );\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"ID\", \"KEY\", \"DESCRIPTION\", \"GROUP ROLES\", \"CREATED AT\"],\n value.map((item) => ({\n cells: [\n String(item.id),\n item.key,\n item.description,\n formatGroupRoles(item.groupRoles),\n item.createdAt,\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...contextArgs,\n ...showKeyArg,\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List management keys\",\n },\n args: listArgs,\n run: ({ args }) =>\n runWithContext(args, (ctx) =>\n keyManagementListHandler(ctx, { showKey: args[\"show-key\"] === true }),\n ),\n});\n"],"mappings":";;;;;;;;;AAgBA,eAAsB,yBACpB,KACA,SACmE;CACnE,MAAM,OAAO,SACX,MAAM,IAAI,OAAO,IAAI,2CAA2C,EAC9D,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE,EACnD,CAAC,CACH;CACA,IAAI,OAAO,UAAU,IAAI,GAAG,OAAO,gBAAgB,KAAK,KAAK;CAG7D,MAAM,QAAQ,KAAK,MAAM,KAAK,SAC5B,QAAQ,UAAU,OAAO;EAAE,GAAG;EAAM,KAAK,kBAAkB,KAAK,GAAG;CAAE,CACvE;CACA,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,YACE;GAAC;GAAM;GAAO;GAAe;GAAe;EAAY,GACxD,MAAM,KAAK,UAAU,EACnB,OAAO;GACL,OAAO,KAAK,EAAE;GACd,KAAK;GACL,KAAK;GACL,iBAAiB,KAAK,UAAU;GAChC,KAAK;EACP,EACF,EAAE,GACF,eAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW;CACf,GAAG;CACH,GAAG;AACL;AAEA,mBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACN,eAAe,OAAO,QACpB,yBAAyB,KAAK,EAAE,SAAS,KAAK,gBAAgB,KAAK,CAAC,CACtE;AACJ,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { r as getOutputState, t as defineCommand } from "./cli/main.mjs";
|
|
2
|
+
import { i as globalArgs } from "./shared-CZZimGxc.mjs";
|
|
3
|
+
import { a as apiErrorFailure, t as runWithAuth, u as toResult } from "./run-with-context-CVhmzAFZ.mjs";
|
|
4
|
+
import { t as renderTable } from "./table-MHEfbnWO.mjs";
|
|
5
|
+
import { t as resolveOrganizationIdFromArgs } from "./org-context-D0dwWC2M.mjs";
|
|
6
|
+
import { Result } from "@praha/byethrow";
|
|
7
|
+
|
|
8
|
+
//#region src/cli/commands/project/list.ts
|
|
9
|
+
async function projectListHandler(ctx, options) {
|
|
10
|
+
const organizationId = await resolveOrganizationIdFromArgs({
|
|
11
|
+
client: ctx.client,
|
|
12
|
+
flag: options.organization,
|
|
13
|
+
cwd: options.cwd
|
|
14
|
+
});
|
|
15
|
+
if (Result.isFailure(organizationId)) return organizationId;
|
|
16
|
+
const projects = toResult(await ctx.client.GET("/projects", { params: { query: { organizationId: organizationId.value } } }));
|
|
17
|
+
if (Result.isFailure(projects)) return apiErrorFailure(projects.error);
|
|
18
|
+
return Result.succeed({
|
|
19
|
+
json: projects.value,
|
|
20
|
+
text: () => renderTable([
|
|
21
|
+
"NAME",
|
|
22
|
+
"DISPLAY NAME",
|
|
23
|
+
"ID",
|
|
24
|
+
"VERSION"
|
|
25
|
+
], projects.value.map((project) => ({ cells: [
|
|
26
|
+
project.name,
|
|
27
|
+
project.displayName,
|
|
28
|
+
String(project.id),
|
|
29
|
+
String(project.definitionVersion)
|
|
30
|
+
] })), getOutputState().color)
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const listArgs = {
|
|
34
|
+
...globalArgs,
|
|
35
|
+
organization: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Organization name (defaults to the linked organization)"
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var list_default = defineCommand({
|
|
41
|
+
meta: {
|
|
42
|
+
name: "list",
|
|
43
|
+
description: "List projects in an organization"
|
|
44
|
+
},
|
|
45
|
+
args: listArgs,
|
|
46
|
+
run: ({ args }) => runWithAuth((ctx) => projectListHandler(ctx, { organization: typeof args.organization === "string" ? args.organization : void 0 }))
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
//#endregion
|
|
50
|
+
export { list_default as default };
|
|
51
|
+
//# sourceMappingURL=list-D5PSDMWw.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-D5PSDMWw.mjs","names":[],"sources":["../src/cli/commands/project/list.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 { getOutputState } from \"../../ui/output.js\";\nimport { renderTable } from \"../../ui/table.js\";\n\nexport async function projectListHandler(\n ctx: AuthContext,\n options: { organization?: string; cwd?: string },\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 projects = toResult(\n await ctx.client.GET(\"/projects\", {\n params: { query: { organizationId: organizationId.value } },\n }),\n );\n if (Result.isFailure(projects)) return apiErrorFailure(projects.error);\n\n return Result.succeed({\n json: projects.value,\n text: () =>\n renderTable(\n [\"NAME\", \"DISPLAY NAME\", \"ID\", \"VERSION\"],\n projects.value.map((project) => ({\n cells: [\n project.name,\n project.displayName,\n String(project.id),\n String(project.definitionVersion),\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...globalArgs,\n organization: {\n type: \"string\",\n description: \"Organization name (defaults to the linked organization)\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List projects in an organization\",\n },\n args: listArgs,\n run: ({ args }) =>\n runWithAuth((ctx) =>\n projectListHandler(ctx, {\n organization:\n typeof args.organization === \"string\" ? args.organization : undefined,\n }),\n ),\n});\n"],"mappings":";;;;;;;;AAeA,eAAsB,mBACpB,KACA,SACmE;CACnE,MAAM,iBAAiB,MAAM,8BAA8B;EACzD,QAAQ,IAAI;EACZ,MAAM,QAAQ;EACd,KAAK,QAAQ;CACf,CAAC;CACD,IAAI,OAAO,UAAU,cAAc,GAAG,OAAO;CAE7C,MAAM,WAAW,SACf,MAAM,IAAI,OAAO,IAAI,aAAa,EAChC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,eAAe,MAAM,EAAE,EAC5D,CAAC,CACH;CACA,IAAI,OAAO,UAAU,QAAQ,GAAG,OAAO,gBAAgB,SAAS,KAAK;CAErE,OAAO,OAAO,QAAQ;EACpB,MAAM,SAAS;EACf,YACE,YACE;GAAC;GAAQ;GAAgB;GAAM;EAAS,GACxC,SAAS,MAAM,KAAK,aAAa,EAC/B,OAAO;GACL,QAAQ;GACR,QAAQ;GACR,OAAO,QAAQ,EAAE;GACjB,OAAO,QAAQ,iBAAiB;EAClC,EACF,EAAE,GACF,eAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW;CACf,GAAG;CACH,cAAc;EACZ,MAAM;EACN,aAAa;CACf;AACF;AAEA,mBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACN,aAAa,QACX,mBAAmB,KAAK,EACtB,cACE,OAAO,KAAK,iBAAiB,WAAW,KAAK,eAAe,OAChE,CAAC,CACH;AACJ,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
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_table = require('./table-C74eOSh8.cjs');
|
|
5
|
+
const require_parse = require('./parse-BeO2IwfI.cjs');
|
|
6
|
+
let _praha_byethrow = require("@praha/byethrow");
|
|
7
|
+
|
|
8
|
+
//#region src/cli/commands/schema/list.ts
|
|
9
|
+
async function schemaListHandler(ctx, options) {
|
|
10
|
+
const definitions = require_run_with_context.toResult(await ctx.client.GET("/projects/{projectName}/definitions", { params: {
|
|
11
|
+
path: { projectName: ctx.projectName },
|
|
12
|
+
query: {
|
|
13
|
+
limit: options.limit,
|
|
14
|
+
offset: options.offset,
|
|
15
|
+
...options.status !== void 0 ? { status: options.status } : {}
|
|
16
|
+
}
|
|
17
|
+
} }));
|
|
18
|
+
if (_praha_byethrow.Result.isFailure(definitions)) return require_run_with_context.apiErrorFailure(definitions.error);
|
|
19
|
+
const value = definitions.value;
|
|
20
|
+
return _praha_byethrow.Result.succeed({
|
|
21
|
+
json: value,
|
|
22
|
+
text: () => require_table.renderTable([
|
|
23
|
+
"ID",
|
|
24
|
+
"STATUS",
|
|
25
|
+
"VERSION",
|
|
26
|
+
"CREATED AT"
|
|
27
|
+
], value.definitions.map((definition) => ({ cells: [
|
|
28
|
+
String(definition.id),
|
|
29
|
+
definition.status,
|
|
30
|
+
String(definition.definitionVersion),
|
|
31
|
+
definition.createdAt
|
|
32
|
+
] })), require_cli_main.getOutputState().color)
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const VALID_STATUSES = [
|
|
36
|
+
"pending",
|
|
37
|
+
"failed",
|
|
38
|
+
"success"
|
|
39
|
+
];
|
|
40
|
+
function parseStatusFilter(value) {
|
|
41
|
+
if (value === void 0) return _praha_byethrow.Result.succeed(void 0);
|
|
42
|
+
const raw = Array.isArray(value) ? value : [value];
|
|
43
|
+
const statuses = [];
|
|
44
|
+
for (const item of raw) {
|
|
45
|
+
const matched = VALID_STATUSES.find((status) => status === item);
|
|
46
|
+
if (matched === void 0) return _praha_byethrow.Result.fail({ message: `Invalid --status value: ${String(item)}. Valid values: ${VALID_STATUSES.join(", ")}.` });
|
|
47
|
+
statuses.push(matched);
|
|
48
|
+
}
|
|
49
|
+
return _praha_byethrow.Result.succeed(statuses);
|
|
50
|
+
}
|
|
51
|
+
const listArgs = {
|
|
52
|
+
...require_shared.contextArgs,
|
|
53
|
+
status: {
|
|
54
|
+
type: "string",
|
|
55
|
+
description: "Filter by status (pending, failed, success); repeatable"
|
|
56
|
+
},
|
|
57
|
+
limit: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "Max number of definitions to return (50, 100, or 200)",
|
|
60
|
+
default: "50"
|
|
61
|
+
},
|
|
62
|
+
offset: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Pagination offset",
|
|
65
|
+
default: "0"
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var list_default = require_cli_main.defineCommand({
|
|
69
|
+
meta: {
|
|
70
|
+
name: "list",
|
|
71
|
+
description: "List schema definition versions"
|
|
72
|
+
},
|
|
73
|
+
args: listArgs,
|
|
74
|
+
run: async ({ args, rawArgs }) => {
|
|
75
|
+
const status = parseStatusFilter(require_parse.collectRepeatableFlag(rawArgs, "status"));
|
|
76
|
+
if (_praha_byethrow.Result.isFailure(status)) return status;
|
|
77
|
+
const limit = require_parse.parseIntegerChoice("limit", args.limit, [
|
|
78
|
+
50,
|
|
79
|
+
100,
|
|
80
|
+
200
|
|
81
|
+
]);
|
|
82
|
+
if (_praha_byethrow.Result.isFailure(limit)) return limit;
|
|
83
|
+
const offset = require_parse.parseNonNegativeInteger("offset", args.offset);
|
|
84
|
+
if (_praha_byethrow.Result.isFailure(offset)) return offset;
|
|
85
|
+
return require_run_with_context.runWithContext(args, (ctx) => schemaListHandler(ctx, {
|
|
86
|
+
status: status.value,
|
|
87
|
+
limit: limit.value,
|
|
88
|
+
offset: offset.value
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
//#endregion
|
|
94
|
+
exports.default = list_default;
|
|
95
|
+
//# sourceMappingURL=list-DRKF2uKW.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-DRKF2uKW.cjs","names":["toResult","Result","apiErrorFailure","renderTable","getOutputState","contextArgs","defineCommand","collectRepeatableFlag","parseIntegerChoice","parseNonNegativeInteger","runWithContext"],"sources":["../src/cli/commands/schema/list.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 {\n collectRepeatableFlag,\n parseIntegerChoice,\n parseNonNegativeInteger,\n} from \"../parse.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { getOutputState } from \"../../ui/output.js\";\nimport { renderTable } from \"../../ui/table.js\";\n\ntype DefinitionStatus = \"pending\" | \"failed\" | \"success\";\n\nexport async function schemaListHandler(\n ctx: CommandContext,\n options: { status?: DefinitionStatus[]; limit: number; offset: number },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const definitions = toResult(\n await ctx.client.GET(\"/projects/{projectName}/definitions\", {\n params: {\n path: { projectName: ctx.projectName },\n query: {\n limit: options.limit,\n offset: options.offset,\n ...(options.status !== undefined ? { status: options.status } : {}),\n },\n },\n }),\n );\n if (Result.isFailure(definitions)) return apiErrorFailure(definitions.error);\n\n const value = definitions.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"ID\", \"STATUS\", \"VERSION\", \"CREATED AT\"],\n value.definitions.map((definition) => ({\n cells: [\n String(definition.id),\n definition.status,\n String(definition.definitionVersion),\n definition.createdAt,\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst VALID_STATUSES: DefinitionStatus[] = [\"pending\", \"failed\", \"success\"];\n\n// 不正値を黙って読み替えるとフィルタなしの全件取得など別の意味のクエリになるため、\n// normalize ではなく validate してエラーで弾く。\nexport function parseStatusFilter(\n value: unknown,\n): Result.Result<DefinitionStatus[] | undefined, CommandFailure> {\n if (value === undefined) return Result.succeed(undefined);\n\n const raw = Array.isArray(value) ? value : [value];\n const statuses: DefinitionStatus[] = [];\n for (const item of raw) {\n const matched = VALID_STATUSES.find((status) => status === item);\n if (matched === undefined) {\n return Result.fail({\n message: `Invalid --status value: ${String(item)}. Valid values: ${VALID_STATUSES.join(\", \")}.`,\n });\n }\n statuses.push(matched);\n }\n return Result.succeed(statuses);\n}\n\nconst listArgs = {\n ...contextArgs,\n status: {\n type: \"string\",\n description: \"Filter by status (pending, failed, success); repeatable\",\n },\n limit: {\n type: \"string\",\n description: \"Max number of definitions to return (50, 100, or 200)\",\n default: \"50\",\n },\n offset: {\n type: \"string\",\n description: \"Pagination offset\",\n default: \"0\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List schema definition versions\",\n },\n args: listArgs,\n run: async ({ args, rawArgs }) => {\n const status = parseStatusFilter(collectRepeatableFlag(rawArgs, \"status\"));\n if (Result.isFailure(status)) return status;\n const limit = parseIntegerChoice(\"limit\", args.limit, [50, 100, 200]);\n if (Result.isFailure(limit)) return limit;\n const offset = parseNonNegativeInteger(\"offset\", args.offset);\n if (Result.isFailure(offset)) return offset;\n\n return runWithContext(args, (ctx) =>\n schemaListHandler(ctx, {\n status: status.value,\n limit: limit.value,\n offset: offset.value,\n }),\n );\n },\n});\n"],"mappings":";;;;;;;;AAqBA,eAAsB,kBACpB,KACA,SACmE;CACnE,MAAM,cAAcA,kCAClB,MAAM,IAAI,OAAO,IAAI,uCAAuC,EAC1D,QAAQ;EACN,MAAM,EAAE,aAAa,IAAI,YAAY;EACrC,OAAO;GACL,OAAO,QAAQ;GACf,QAAQ,QAAQ;GAChB,GAAI,QAAQ,WAAW,SAAY,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;EACnE;CACF,EACF,CAAC,CACH;CACA,IAAIC,uBAAO,UAAU,WAAW,GAAG,OAAOC,yCAAgB,YAAY,KAAK;CAE3E,MAAM,QAAQ,YAAY;CAC1B,OAAOD,uBAAO,QAAQ;EACpB,MAAM;EACN,YACEE,0BACE;GAAC;GAAM;GAAU;GAAW;EAAY,GACxC,MAAM,YAAY,KAAK,gBAAgB,EACrC,OAAO;GACL,OAAO,WAAW,EAAE;GACpB,WAAW;GACX,OAAO,WAAW,iBAAiB;GACnC,WAAW;EACb,EACF,EAAE,GACFC,gCAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,iBAAqC;CAAC;CAAW;CAAU;AAAS;AAI1E,SAAgB,kBACd,OAC+D;CAC/D,IAAI,UAAU,QAAW,OAAOH,uBAAO,QAAQ,MAAS;CAExD,MAAM,MAAM,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;CACjD,MAAM,WAA+B,CAAC;CACtC,KAAK,MAAM,QAAQ,KAAK;EACtB,MAAM,UAAU,eAAe,MAAM,WAAW,WAAW,IAAI;EAC/D,IAAI,YAAY,QACd,OAAOA,uBAAO,KAAK,EACjB,SAAS,2BAA2B,OAAO,IAAI,EAAE,kBAAkB,eAAe,KAAK,IAAI,EAAE,GAC/F,CAAC;EAEH,SAAS,KAAK,OAAO;CACvB;CACA,OAAOA,uBAAO,QAAQ,QAAQ;AAChC;AAEA,MAAM,WAAW;CACf,GAAGI;CACH,QAAQ;EACN,MAAM;EACN,aAAa;CACf;CACA,OAAO;EACL,MAAM;EACN,aAAa;EACb,SAAS;CACX;CACA,QAAQ;EACN,MAAM;EACN,aAAa;EACb,SAAS;CACX;AACF;AAEA,mBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,KAAK,OAAO,EAAE,MAAM,cAAc;EAChC,MAAM,SAAS,kBAAkBC,oCAAsB,SAAS,QAAQ,CAAC;EACzE,IAAIN,uBAAO,UAAU,MAAM,GAAG,OAAO;EACrC,MAAM,QAAQO,iCAAmB,SAAS,KAAK,OAAO;GAAC;GAAI;GAAK;EAAG,CAAC;EACpE,IAAIP,uBAAO,UAAU,KAAK,GAAG,OAAO;EACpC,MAAM,SAASQ,sCAAwB,UAAU,KAAK,MAAM;EAC5D,IAAIR,uBAAO,UAAU,MAAM,GAAG,OAAO;EAErC,OAAOS,wCAAe,OAAO,QAC3B,kBAAkB,KAAK;GACrB,QAAQ,OAAO;GACf,OAAO,MAAM;GACb,QAAQ,OAAO;EACjB,CAAC,CACH;CACF;AACF,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { r as getOutputState, 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 renderTable } from "./table-MHEfbnWO.mjs";
|
|
5
|
+
import { l as parseNonNegativeInteger, o as parseIntegerChoice } from "./parse-CA5fBB3x.mjs";
|
|
6
|
+
import { n as formatGroupRoles } from "./group-roles-BEEzLxPX.mjs";
|
|
7
|
+
import { Result } from "@praha/byethrow";
|
|
8
|
+
|
|
9
|
+
//#region src/cli/commands/project-user/list.ts
|
|
10
|
+
async function projectUserListHandler(ctx, options) {
|
|
11
|
+
const users = toResult(await ctx.client.GET("/projects/{projectName}/users", { params: {
|
|
12
|
+
path: { projectName: ctx.projectName },
|
|
13
|
+
query: {
|
|
14
|
+
limit: options.limit,
|
|
15
|
+
offset: options.offset
|
|
16
|
+
}
|
|
17
|
+
} }));
|
|
18
|
+
if (Result.isFailure(users)) return apiErrorFailure(users.error);
|
|
19
|
+
const value = users.value;
|
|
20
|
+
return Result.succeed({
|
|
21
|
+
json: value,
|
|
22
|
+
text: () => renderTable([
|
|
23
|
+
"ID",
|
|
24
|
+
"NAME",
|
|
25
|
+
"EMAIL",
|
|
26
|
+
"GROUP ROLES"
|
|
27
|
+
], value.projectUsers.map((user) => ({ cells: [
|
|
28
|
+
user.id,
|
|
29
|
+
user.name,
|
|
30
|
+
user.email,
|
|
31
|
+
formatGroupRoles(user.groupRoles)
|
|
32
|
+
] })), getOutputState().color)
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const listArgs = {
|
|
36
|
+
...contextArgs,
|
|
37
|
+
limit: {
|
|
38
|
+
type: "string",
|
|
39
|
+
description: "Max number of users to return (50, 100, or 200)",
|
|
40
|
+
default: "50"
|
|
41
|
+
},
|
|
42
|
+
offset: {
|
|
43
|
+
type: "string",
|
|
44
|
+
description: "Pagination offset",
|
|
45
|
+
default: "0"
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var list_default = defineCommand({
|
|
49
|
+
meta: {
|
|
50
|
+
name: "list",
|
|
51
|
+
description: "List project users"
|
|
52
|
+
},
|
|
53
|
+
args: listArgs,
|
|
54
|
+
run: async ({ args }) => {
|
|
55
|
+
const limit = parseIntegerChoice("limit", args.limit, [
|
|
56
|
+
50,
|
|
57
|
+
100,
|
|
58
|
+
200
|
|
59
|
+
]);
|
|
60
|
+
if (Result.isFailure(limit)) return limit;
|
|
61
|
+
const offset = parseNonNegativeInteger("offset", args.offset);
|
|
62
|
+
if (Result.isFailure(offset)) return offset;
|
|
63
|
+
return runWithContext(args, (ctx) => projectUserListHandler(ctx, {
|
|
64
|
+
limit: limit.value,
|
|
65
|
+
offset: offset.value
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
export { list_default as default };
|
|
72
|
+
//# sourceMappingURL=list-DdJ05juK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-DdJ05juK.mjs","names":[],"sources":["../src/cli/commands/project-user/list.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 { getOutputState } from \"../../ui/output.js\";\nimport { renderTable } from \"../../ui/table.js\";\nimport { parseIntegerChoice, parseNonNegativeInteger } from \"../parse.js\";\nimport { formatGroupRoles } from \"../group-roles.js\";\n\nexport async function projectUserListHandler(\n ctx: CommandContext,\n options: { limit: number; offset: number },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const users = toResult(\n await ctx.client.GET(\"/projects/{projectName}/users\", {\n params: {\n path: { projectName: ctx.projectName },\n query: { limit: options.limit, offset: options.offset },\n },\n }),\n );\n if (Result.isFailure(users)) return apiErrorFailure(users.error);\n\n const value = users.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"ID\", \"NAME\", \"EMAIL\", \"GROUP ROLES\"],\n value.projectUsers.map((user) => ({\n cells: [\n user.id,\n user.name,\n user.email,\n formatGroupRoles(user.groupRoles),\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...contextArgs,\n limit: {\n type: \"string\",\n description: \"Max number of users to return (50, 100, or 200)\",\n default: \"50\",\n },\n offset: {\n type: \"string\",\n description: \"Pagination offset\",\n default: \"0\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List project users\",\n },\n args: listArgs,\n run: async ({ args }) => {\n const limit = parseIntegerChoice(\"limit\", args.limit, [50, 100, 200]);\n if (Result.isFailure(limit)) return limit;\n const offset = parseNonNegativeInteger(\"offset\", args.offset);\n if (Result.isFailure(offset)) return offset;\n\n return runWithContext(args, (ctx) =>\n projectUserListHandler(ctx, {\n limit: limit.value,\n offset: offset.value,\n }),\n );\n },\n});\n"],"mappings":";;;;;;;;;AAgBA,eAAsB,uBACpB,KACA,SACmE;CACnE,MAAM,QAAQ,SACZ,MAAM,IAAI,OAAO,IAAI,iCAAiC,EACpD,QAAQ;EACN,MAAM,EAAE,aAAa,IAAI,YAAY;EACrC,OAAO;GAAE,OAAO,QAAQ;GAAO,QAAQ,QAAQ;EAAO;CACxD,EACF,CAAC,CACH;CACA,IAAI,OAAO,UAAU,KAAK,GAAG,OAAO,gBAAgB,MAAM,KAAK;CAE/D,MAAM,QAAQ,MAAM;CACpB,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,YACE;GAAC;GAAM;GAAQ;GAAS;EAAa,GACrC,MAAM,aAAa,KAAK,UAAU,EAChC,OAAO;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,iBAAiB,KAAK,UAAU;EAClC,EACF,EAAE,GACF,eAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW;CACf,GAAG;CACH,OAAO;EACL,MAAM;EACN,aAAa;EACb,SAAS;CACX;CACA,QAAQ;EACN,MAAM;EACN,aAAa;EACb,SAAS;CACX;AACF;AAEA,mBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,KAAK,OAAO,EAAE,WAAW;EACvB,MAAM,QAAQ,mBAAmB,SAAS,KAAK,OAAO;GAAC;GAAI;GAAK;EAAG,CAAC;EACpE,IAAI,OAAO,UAAU,KAAK,GAAG,OAAO;EACpC,MAAM,SAAS,wBAAwB,UAAU,KAAK,MAAM;EAC5D,IAAI,OAAO,UAAU,MAAM,GAAG,OAAO;EAErC,OAAO,eAAe,OAAO,QAC3B,uBAAuB,KAAK;GAC1B,OAAO,MAAM;GACb,QAAQ,OAAO;EACjB,CAAC,CACH;CACF;AACF,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
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_table = require('./table-C74eOSh8.cjs');
|
|
5
|
+
const require_mask = require('./mask-CqYLib9p.cjs');
|
|
6
|
+
let _praha_byethrow = require("@praha/byethrow");
|
|
7
|
+
|
|
8
|
+
//#region src/cli/commands/key/consumer/list.ts
|
|
9
|
+
async function keyConsumerListHandler(ctx, options) {
|
|
10
|
+
const keys = require_run_with_context.toResult(await ctx.client.GET("/projects/{projectName}/consumer-keys", { params: { path: { projectName: ctx.projectName } } }));
|
|
11
|
+
if (_praha_byethrow.Result.isFailure(keys)) return require_run_with_context.apiErrorFailure(keys.error);
|
|
12
|
+
const value = keys.value.map((item) => options.showKey ? item : {
|
|
13
|
+
...item,
|
|
14
|
+
key: require_mask.maskConsumerKey(item.key)
|
|
15
|
+
});
|
|
16
|
+
return _praha_byethrow.Result.succeed({
|
|
17
|
+
json: value,
|
|
18
|
+
text: () => require_table.renderTable([
|
|
19
|
+
"ID",
|
|
20
|
+
"KEY",
|
|
21
|
+
"DESCRIPTION",
|
|
22
|
+
"CAN READ DRAFTS",
|
|
23
|
+
"CREATED AT"
|
|
24
|
+
], value.map((item) => ({ cells: [
|
|
25
|
+
String(item.id),
|
|
26
|
+
item.key,
|
|
27
|
+
item.description,
|
|
28
|
+
String(item.canReadDrafts),
|
|
29
|
+
item.createdAt
|
|
30
|
+
] })), require_cli_main.getOutputState().color)
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const listArgs = {
|
|
34
|
+
...require_shared.contextArgs,
|
|
35
|
+
...require_mask.showKeyArg
|
|
36
|
+
};
|
|
37
|
+
var list_default = require_cli_main.defineCommand({
|
|
38
|
+
meta: {
|
|
39
|
+
name: "list",
|
|
40
|
+
description: "List consumer keys"
|
|
41
|
+
},
|
|
42
|
+
args: listArgs,
|
|
43
|
+
run: ({ args }) => require_run_with_context.runWithContext(args, (ctx) => keyConsumerListHandler(ctx, { showKey: args["show-key"] === true }))
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
exports.default = list_default;
|
|
48
|
+
//# sourceMappingURL=list-DlJssPwy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-DlJssPwy.cjs","names":["toResult","Result","apiErrorFailure","maskConsumerKey","renderTable","getOutputState","contextArgs","showKeyArg","defineCommand","runWithContext"],"sources":["../src/cli/commands/key/consumer/list.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 { getOutputState } from \"../../../ui/output.js\";\nimport { renderTable } from \"../../../ui/table.js\";\nimport { maskConsumerKey, showKeyArg } from \"../mask.js\";\n\nexport async function keyConsumerListHandler(\n ctx: CommandContext,\n options: { showKey: boolean },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const keys = toResult(\n await ctx.client.GET(\"/projects/{projectName}/consumer-keys\", {\n params: { path: { projectName: ctx.projectName } },\n }),\n );\n if (Result.isFailure(keys)) return apiErrorFailure(keys.error);\n\n // --json でもマスクを効かせるため、表示用データ自体を書き換える\n const value = keys.value.map((item) =>\n options.showKey ? item : { ...item, key: maskConsumerKey(item.key) },\n );\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"ID\", \"KEY\", \"DESCRIPTION\", \"CAN READ DRAFTS\", \"CREATED AT\"],\n value.map((item) => ({\n cells: [\n String(item.id),\n item.key,\n item.description,\n String(item.canReadDrafts),\n item.createdAt,\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...contextArgs,\n ...showKeyArg,\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List consumer keys\",\n },\n args: listArgs,\n run: ({ args }) =>\n runWithContext(args, (ctx) =>\n keyConsumerListHandler(ctx, { showKey: args[\"show-key\"] === true }),\n ),\n});\n"],"mappings":";;;;;;;;AAeA,eAAsB,uBACpB,KACA,SACmE;CACnE,MAAM,OAAOA,kCACX,MAAM,IAAI,OAAO,IAAI,yCAAyC,EAC5D,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE,EACnD,CAAC,CACH;CACA,IAAIC,uBAAO,UAAU,IAAI,GAAG,OAAOC,yCAAgB,KAAK,KAAK;CAG7D,MAAM,QAAQ,KAAK,MAAM,KAAK,SAC5B,QAAQ,UAAU,OAAO;EAAE,GAAG;EAAM,KAAKC,6BAAgB,KAAK,GAAG;CAAE,CACrE;CACA,OAAOF,uBAAO,QAAQ;EACpB,MAAM;EACN,YACEG,0BACE;GAAC;GAAM;GAAO;GAAe;GAAmB;EAAY,GAC5D,MAAM,KAAK,UAAU,EACnB,OAAO;GACL,OAAO,KAAK,EAAE;GACd,KAAK;GACL,KAAK;GACL,OAAO,KAAK,aAAa;GACzB,KAAK;EACP,EACF,EAAE,GACFC,gCAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW;CACf,GAAGC;CACH,GAAGC;AACL;AAEA,mBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,wCAAe,OAAO,QACpB,uBAAuB,KAAK,EAAE,SAAS,KAAK,gBAAgB,KAAK,CAAC,CACpE;AACJ,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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_table = require('./table-C74eOSh8.cjs');
|
|
5
|
+
const require_mask = require('./mask-CqYLib9p.cjs');
|
|
6
|
+
const require_group_roles = require('./group-roles-Bl_mEodO.cjs');
|
|
7
|
+
let _praha_byethrow = require("@praha/byethrow");
|
|
8
|
+
|
|
9
|
+
//#region src/cli/commands/key/management/list.ts
|
|
10
|
+
async function keyManagementListHandler(ctx, options) {
|
|
11
|
+
const keys = require_run_with_context.toResult(await ctx.client.GET("/projects/{projectName}/management-keys", { params: { path: { projectName: ctx.projectName } } }));
|
|
12
|
+
if (_praha_byethrow.Result.isFailure(keys)) return require_run_with_context.apiErrorFailure(keys.error);
|
|
13
|
+
const value = keys.value.map((item) => options.showKey ? item : {
|
|
14
|
+
...item,
|
|
15
|
+
key: require_mask.maskManagementKey(item.key)
|
|
16
|
+
});
|
|
17
|
+
return _praha_byethrow.Result.succeed({
|
|
18
|
+
json: value,
|
|
19
|
+
text: () => require_table.renderTable([
|
|
20
|
+
"ID",
|
|
21
|
+
"KEY",
|
|
22
|
+
"DESCRIPTION",
|
|
23
|
+
"GROUP ROLES",
|
|
24
|
+
"CREATED AT"
|
|
25
|
+
], value.map((item) => ({ cells: [
|
|
26
|
+
String(item.id),
|
|
27
|
+
item.key,
|
|
28
|
+
item.description,
|
|
29
|
+
require_group_roles.formatGroupRoles(item.groupRoles),
|
|
30
|
+
item.createdAt
|
|
31
|
+
] })), require_cli_main.getOutputState().color)
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const listArgs = {
|
|
35
|
+
...require_shared.contextArgs,
|
|
36
|
+
...require_mask.showKeyArg
|
|
37
|
+
};
|
|
38
|
+
var list_default = require_cli_main.defineCommand({
|
|
39
|
+
meta: {
|
|
40
|
+
name: "list",
|
|
41
|
+
description: "List management keys"
|
|
42
|
+
},
|
|
43
|
+
args: listArgs,
|
|
44
|
+
run: ({ args }) => require_run_with_context.runWithContext(args, (ctx) => keyManagementListHandler(ctx, { showKey: args["show-key"] === true }))
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.default = list_default;
|
|
49
|
+
//# sourceMappingURL=list-V3W6hvOa.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-V3W6hvOa.cjs","names":["toResult","Result","apiErrorFailure","maskManagementKey","renderTable","formatGroupRoles","getOutputState","contextArgs","showKeyArg","defineCommand","runWithContext"],"sources":["../src/cli/commands/key/management/list.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 { getOutputState } from \"../../../ui/output.js\";\nimport { renderTable } from \"../../../ui/table.js\";\nimport { formatGroupRoles } from \"../../group-roles.js\";\nimport { maskManagementKey, showKeyArg } from \"../mask.js\";\n\nexport async function keyManagementListHandler(\n ctx: CommandContext,\n options: { showKey: boolean },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const keys = toResult(\n await ctx.client.GET(\"/projects/{projectName}/management-keys\", {\n params: { path: { projectName: ctx.projectName } },\n }),\n );\n if (Result.isFailure(keys)) return apiErrorFailure(keys.error);\n\n // --json でもマスクを効かせるため、表示用データ自体を書き換える\n const value = keys.value.map((item) =>\n options.showKey ? item : { ...item, key: maskManagementKey(item.key) },\n );\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"ID\", \"KEY\", \"DESCRIPTION\", \"GROUP ROLES\", \"CREATED AT\"],\n value.map((item) => ({\n cells: [\n String(item.id),\n item.key,\n item.description,\n formatGroupRoles(item.groupRoles),\n item.createdAt,\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...contextArgs,\n ...showKeyArg,\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List management keys\",\n },\n args: listArgs,\n run: ({ args }) =>\n runWithContext(args, (ctx) =>\n keyManagementListHandler(ctx, { showKey: args[\"show-key\"] === true }),\n ),\n});\n"],"mappings":";;;;;;;;;AAgBA,eAAsB,yBACpB,KACA,SACmE;CACnE,MAAM,OAAOA,kCACX,MAAM,IAAI,OAAO,IAAI,2CAA2C,EAC9D,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE,EACnD,CAAC,CACH;CACA,IAAIC,uBAAO,UAAU,IAAI,GAAG,OAAOC,yCAAgB,KAAK,KAAK;CAG7D,MAAM,QAAQ,KAAK,MAAM,KAAK,SAC5B,QAAQ,UAAU,OAAO;EAAE,GAAG;EAAM,KAAKC,+BAAkB,KAAK,GAAG;CAAE,CACvE;CACA,OAAOF,uBAAO,QAAQ;EACpB,MAAM;EACN,YACEG,0BACE;GAAC;GAAM;GAAO;GAAe;GAAe;EAAY,GACxD,MAAM,KAAK,UAAU,EACnB,OAAO;GACL,OAAO,KAAK,EAAE;GACd,KAAK;GACL,KAAK;GACLC,qCAAiB,KAAK,UAAU;GAChC,KAAK;EACP,EACF,EAAE,GACFC,gCAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW;CACf,GAAGC;CACH,GAAGC;AACL;AAEA,mBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,wCAAe,OAAO,QACpB,yBAAyB,KAAK,EAAE,SAAS,KAAK,gBAAgB,KAAK,CAAC,CACtE;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { r as getOutputState, 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 renderTable } from "./table-MHEfbnWO.mjs";
|
|
5
|
+
import { Result } from "@praha/byethrow";
|
|
6
|
+
|
|
7
|
+
//#region src/cli/commands/bucket/list.ts
|
|
8
|
+
async function bucketListHandler(ctx) {
|
|
9
|
+
const buckets = toResult(await ctx.client.GET("/projects/{projectName}/buckets", { params: { path: { projectName: ctx.projectName } } }));
|
|
10
|
+
if (Result.isFailure(buckets)) return apiErrorFailure(buckets.error);
|
|
11
|
+
const value = buckets.value;
|
|
12
|
+
return Result.succeed({
|
|
13
|
+
json: value,
|
|
14
|
+
text: () => renderTable([
|
|
15
|
+
"NAME",
|
|
16
|
+
"ID",
|
|
17
|
+
"ACCESS CONTROL"
|
|
18
|
+
], value.map((bucket) => ({ cells: [
|
|
19
|
+
bucket.name,
|
|
20
|
+
String(bucket.id),
|
|
21
|
+
bucket.accessControl
|
|
22
|
+
] })), getOutputState().color)
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const listArgs = { ...contextArgs };
|
|
26
|
+
var list_default = defineCommand({
|
|
27
|
+
meta: {
|
|
28
|
+
name: "list",
|
|
29
|
+
description: "List buckets"
|
|
30
|
+
},
|
|
31
|
+
args: listArgs,
|
|
32
|
+
run: ({ args }) => runWithContext(args, (ctx) => bucketListHandler(ctx))
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { list_default as default };
|
|
37
|
+
//# sourceMappingURL=list-rAn3uOA7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-rAn3uOA7.mjs","names":[],"sources":["../src/cli/commands/bucket/list.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 { getOutputState } from \"../../ui/output.js\";\nimport { renderTable } from \"../../ui/table.js\";\n\nexport async function bucketListHandler(\n ctx: CommandContext,\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const buckets = toResult(\n await ctx.client.GET(\"/projects/{projectName}/buckets\", {\n params: { path: { projectName: ctx.projectName } },\n }),\n );\n if (Result.isFailure(buckets)) return apiErrorFailure(buckets.error);\n\n const value = buckets.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"NAME\", \"ID\", \"ACCESS CONTROL\"],\n value.map((bucket) => ({\n cells: [bucket.name, String(bucket.id), bucket.accessControl],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...contextArgs,\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List buckets\",\n },\n args: listArgs,\n run: ({ args }) => runWithContext(args, (ctx) => bucketListHandler(ctx)),\n});\n"],"mappings":";;;;;;;AAcA,eAAsB,kBACpB,KACmE;CACnE,MAAM,UAAU,SACd,MAAM,IAAI,OAAO,IAAI,mCAAmC,EACtD,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE,EACnD,CAAC,CACH;CACA,IAAI,OAAO,UAAU,OAAO,GAAG,OAAO,gBAAgB,QAAQ,KAAK;CAEnE,MAAM,QAAQ,QAAQ;CACtB,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,YACE;GAAC;GAAQ;GAAM;EAAgB,GAC/B,MAAM,KAAK,YAAY,EACrB,OAAO;GAAC,OAAO;GAAM,OAAO,OAAO,EAAE;GAAG,OAAO;EAAa,EAC9D,EAAE,GACF,eAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW,EACf,GAAG,YACL;AAEA,mBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WAAW,eAAe,OAAO,QAAQ,kBAAkB,GAAG,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { r as getOutputState, 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 renderTable } from "./table-MHEfbnWO.mjs";
|
|
5
|
+
import { n as formatTableEvents } from "./table-event-C16cp9nq.mjs";
|
|
6
|
+
import { Result } from "@praha/byethrow";
|
|
7
|
+
|
|
8
|
+
//#region src/cli/commands/webhook/list.ts
|
|
9
|
+
async function webhookListHandler(ctx) {
|
|
10
|
+
const webhooks = toResult(await ctx.client.GET("/projects/{projectName}/webhooks", { params: { path: { projectName: ctx.projectName } } }));
|
|
11
|
+
if (Result.isFailure(webhooks)) return apiErrorFailure(webhooks.error);
|
|
12
|
+
const value = webhooks.value;
|
|
13
|
+
return Result.succeed({
|
|
14
|
+
json: value,
|
|
15
|
+
text: () => renderTable([
|
|
16
|
+
"ID",
|
|
17
|
+
"NAME",
|
|
18
|
+
"URL",
|
|
19
|
+
"TABLE EVENTS"
|
|
20
|
+
], value.map((webhook) => ({ cells: [
|
|
21
|
+
String(webhook.id),
|
|
22
|
+
webhook.name,
|
|
23
|
+
webhook.url,
|
|
24
|
+
formatTableEvents(webhook.tableEvents)
|
|
25
|
+
] })), getOutputState().color)
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const listArgs = { ...contextArgs };
|
|
29
|
+
var list_default = defineCommand({
|
|
30
|
+
meta: {
|
|
31
|
+
name: "list",
|
|
32
|
+
description: "List webhooks"
|
|
33
|
+
},
|
|
34
|
+
args: listArgs,
|
|
35
|
+
run: ({ args }) => runWithContext(args, (ctx) => webhookListHandler(ctx))
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { list_default as default };
|
|
40
|
+
//# sourceMappingURL=list-syVDGkVR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-syVDGkVR.mjs","names":[],"sources":["../src/cli/commands/webhook/list.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 { getOutputState } from \"../../ui/output.js\";\nimport { renderTable } from \"../../ui/table.js\";\nimport { formatTableEvents } from \"./table-event.js\";\n\nexport async function webhookListHandler(\n ctx: CommandContext,\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const webhooks = toResult(\n await ctx.client.GET(\"/projects/{projectName}/webhooks\", {\n params: { path: { projectName: ctx.projectName } },\n }),\n );\n if (Result.isFailure(webhooks)) return apiErrorFailure(webhooks.error);\n\n const value = webhooks.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"ID\", \"NAME\", \"URL\", \"TABLE EVENTS\"],\n value.map((webhook) => ({\n cells: [\n String(webhook.id),\n webhook.name,\n webhook.url,\n formatTableEvents(webhook.tableEvents),\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst listArgs = {\n ...contextArgs,\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List webhooks\",\n },\n args: listArgs,\n run: ({ args }) => runWithContext(args, (ctx) => webhookListHandler(ctx)),\n});\n"],"mappings":";;;;;;;;AAeA,eAAsB,mBACpB,KACmE;CACnE,MAAM,WAAW,SACf,MAAM,IAAI,OAAO,IAAI,oCAAoC,EACvD,QAAQ,EAAE,MAAM,EAAE,aAAa,IAAI,YAAY,EAAE,EACnD,CAAC,CACH;CACA,IAAI,OAAO,UAAU,QAAQ,GAAG,OAAO,gBAAgB,SAAS,KAAK;CAErE,MAAM,QAAQ,SAAS;CACvB,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,YACE;GAAC;GAAM;GAAQ;GAAO;EAAc,GACpC,MAAM,KAAK,aAAa,EACtB,OAAO;GACL,OAAO,QAAQ,EAAE;GACjB,QAAQ;GACR,QAAQ;GACR,kBAAkB,QAAQ,WAAW;EACvC,EACF,EAAE,GACF,eAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,WAAW,EACf,GAAG,YACL;AAEA,mBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WAAW,eAAe,OAAO,QAAQ,mBAAmB,GAAG,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { r as getOutputState, 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 renderTable } from "./table-MHEfbnWO.mjs";
|
|
5
|
+
import { l as parseNonNegativeInteger, o as parseIntegerChoice, t as collectRepeatableFlag } from "./parse-CA5fBB3x.mjs";
|
|
6
|
+
import { Result } from "@praha/byethrow";
|
|
7
|
+
|
|
8
|
+
//#region src/cli/commands/schema/list.ts
|
|
9
|
+
async function schemaListHandler(ctx, options) {
|
|
10
|
+
const definitions = toResult(await ctx.client.GET("/projects/{projectName}/definitions", { params: {
|
|
11
|
+
path: { projectName: ctx.projectName },
|
|
12
|
+
query: {
|
|
13
|
+
limit: options.limit,
|
|
14
|
+
offset: options.offset,
|
|
15
|
+
...options.status !== void 0 ? { status: options.status } : {}
|
|
16
|
+
}
|
|
17
|
+
} }));
|
|
18
|
+
if (Result.isFailure(definitions)) return apiErrorFailure(definitions.error);
|
|
19
|
+
const value = definitions.value;
|
|
20
|
+
return Result.succeed({
|
|
21
|
+
json: value,
|
|
22
|
+
text: () => renderTable([
|
|
23
|
+
"ID",
|
|
24
|
+
"STATUS",
|
|
25
|
+
"VERSION",
|
|
26
|
+
"CREATED AT"
|
|
27
|
+
], value.definitions.map((definition) => ({ cells: [
|
|
28
|
+
String(definition.id),
|
|
29
|
+
definition.status,
|
|
30
|
+
String(definition.definitionVersion),
|
|
31
|
+
definition.createdAt
|
|
32
|
+
] })), getOutputState().color)
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const VALID_STATUSES = [
|
|
36
|
+
"pending",
|
|
37
|
+
"failed",
|
|
38
|
+
"success"
|
|
39
|
+
];
|
|
40
|
+
function parseStatusFilter(value) {
|
|
41
|
+
if (value === void 0) return Result.succeed(void 0);
|
|
42
|
+
const raw = Array.isArray(value) ? value : [value];
|
|
43
|
+
const statuses = [];
|
|
44
|
+
for (const item of raw) {
|
|
45
|
+
const matched = VALID_STATUSES.find((status) => status === item);
|
|
46
|
+
if (matched === void 0) return Result.fail({ message: `Invalid --status value: ${String(item)}. Valid values: ${VALID_STATUSES.join(", ")}.` });
|
|
47
|
+
statuses.push(matched);
|
|
48
|
+
}
|
|
49
|
+
return Result.succeed(statuses);
|
|
50
|
+
}
|
|
51
|
+
const listArgs = {
|
|
52
|
+
...contextArgs,
|
|
53
|
+
status: {
|
|
54
|
+
type: "string",
|
|
55
|
+
description: "Filter by status (pending, failed, success); repeatable"
|
|
56
|
+
},
|
|
57
|
+
limit: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "Max number of definitions to return (50, 100, or 200)",
|
|
60
|
+
default: "50"
|
|
61
|
+
},
|
|
62
|
+
offset: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Pagination offset",
|
|
65
|
+
default: "0"
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var list_default = defineCommand({
|
|
69
|
+
meta: {
|
|
70
|
+
name: "list",
|
|
71
|
+
description: "List schema definition versions"
|
|
72
|
+
},
|
|
73
|
+
args: listArgs,
|
|
74
|
+
run: async ({ args, rawArgs }) => {
|
|
75
|
+
const status = parseStatusFilter(collectRepeatableFlag(rawArgs, "status"));
|
|
76
|
+
if (Result.isFailure(status)) return status;
|
|
77
|
+
const limit = parseIntegerChoice("limit", args.limit, [
|
|
78
|
+
50,
|
|
79
|
+
100,
|
|
80
|
+
200
|
|
81
|
+
]);
|
|
82
|
+
if (Result.isFailure(limit)) return limit;
|
|
83
|
+
const offset = parseNonNegativeInteger("offset", args.offset);
|
|
84
|
+
if (Result.isFailure(offset)) return offset;
|
|
85
|
+
return runWithContext(args, (ctx) => schemaListHandler(ctx, {
|
|
86
|
+
status: status.value,
|
|
87
|
+
limit: limit.value,
|
|
88
|
+
offset: offset.value
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
//#endregion
|
|
94
|
+
export { list_default as default };
|
|
95
|
+
//# sourceMappingURL=list-yQZLzkC7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-yQZLzkC7.mjs","names":[],"sources":["../src/cli/commands/schema/list.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 {\n collectRepeatableFlag,\n parseIntegerChoice,\n parseNonNegativeInteger,\n} from \"../parse.js\";\nimport { toResult } from \"../../api/errors.js\";\nimport { getOutputState } from \"../../ui/output.js\";\nimport { renderTable } from \"../../ui/table.js\";\n\ntype DefinitionStatus = \"pending\" | \"failed\" | \"success\";\n\nexport async function schemaListHandler(\n ctx: CommandContext,\n options: { status?: DefinitionStatus[]; limit: number; offset: number },\n): Promise<Result.Result<CommandOutput | undefined, CommandFailure>> {\n const definitions = toResult(\n await ctx.client.GET(\"/projects/{projectName}/definitions\", {\n params: {\n path: { projectName: ctx.projectName },\n query: {\n limit: options.limit,\n offset: options.offset,\n ...(options.status !== undefined ? { status: options.status } : {}),\n },\n },\n }),\n );\n if (Result.isFailure(definitions)) return apiErrorFailure(definitions.error);\n\n const value = definitions.value;\n return Result.succeed({\n json: value,\n text: () =>\n renderTable(\n [\"ID\", \"STATUS\", \"VERSION\", \"CREATED AT\"],\n value.definitions.map((definition) => ({\n cells: [\n String(definition.id),\n definition.status,\n String(definition.definitionVersion),\n definition.createdAt,\n ],\n })),\n getOutputState().color,\n ),\n });\n}\n\nconst VALID_STATUSES: DefinitionStatus[] = [\"pending\", \"failed\", \"success\"];\n\n// 不正値を黙って読み替えるとフィルタなしの全件取得など別の意味のクエリになるため、\n// normalize ではなく validate してエラーで弾く。\nexport function parseStatusFilter(\n value: unknown,\n): Result.Result<DefinitionStatus[] | undefined, CommandFailure> {\n if (value === undefined) return Result.succeed(undefined);\n\n const raw = Array.isArray(value) ? value : [value];\n const statuses: DefinitionStatus[] = [];\n for (const item of raw) {\n const matched = VALID_STATUSES.find((status) => status === item);\n if (matched === undefined) {\n return Result.fail({\n message: `Invalid --status value: ${String(item)}. Valid values: ${VALID_STATUSES.join(\", \")}.`,\n });\n }\n statuses.push(matched);\n }\n return Result.succeed(statuses);\n}\n\nconst listArgs = {\n ...contextArgs,\n status: {\n type: \"string\",\n description: \"Filter by status (pending, failed, success); repeatable\",\n },\n limit: {\n type: \"string\",\n description: \"Max number of definitions to return (50, 100, or 200)\",\n default: \"50\",\n },\n offset: {\n type: \"string\",\n description: \"Pagination offset\",\n default: \"0\",\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"list\",\n description: \"List schema definition versions\",\n },\n args: listArgs,\n run: async ({ args, rawArgs }) => {\n const status = parseStatusFilter(collectRepeatableFlag(rawArgs, \"status\"));\n if (Result.isFailure(status)) return status;\n const limit = parseIntegerChoice(\"limit\", args.limit, [50, 100, 200]);\n if (Result.isFailure(limit)) return limit;\n const offset = parseNonNegativeInteger(\"offset\", args.offset);\n if (Result.isFailure(offset)) return offset;\n\n return runWithContext(args, (ctx) =>\n schemaListHandler(ctx, {\n status: status.value,\n limit: limit.value,\n offset: offset.value,\n }),\n );\n },\n});\n"],"mappings":";;;;;;;;AAqBA,eAAsB,kBACpB,KACA,SACmE;CACnE,MAAM,cAAc,SAClB,MAAM,IAAI,OAAO,IAAI,uCAAuC,EAC1D,QAAQ;EACN,MAAM,EAAE,aAAa,IAAI,YAAY;EACrC,OAAO;GACL,OAAO,QAAQ;GACf,QAAQ,QAAQ;GAChB,GAAI,QAAQ,WAAW,SAAY,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;EACnE;CACF,EACF,CAAC,CACH;CACA,IAAI,OAAO,UAAU,WAAW,GAAG,OAAO,gBAAgB,YAAY,KAAK;CAE3E,MAAM,QAAQ,YAAY;CAC1B,OAAO,OAAO,QAAQ;EACpB,MAAM;EACN,YACE,YACE;GAAC;GAAM;GAAU;GAAW;EAAY,GACxC,MAAM,YAAY,KAAK,gBAAgB,EACrC,OAAO;GACL,OAAO,WAAW,EAAE;GACpB,WAAW;GACX,OAAO,WAAW,iBAAiB;GACnC,WAAW;EACb,EACF,EAAE,GACF,eAAe,CAAC,CAAC,KACnB;CACJ,CAAC;AACH;AAEA,MAAM,iBAAqC;CAAC;CAAW;CAAU;AAAS;AAI1E,SAAgB,kBACd,OAC+D;CAC/D,IAAI,UAAU,QAAW,OAAO,OAAO,QAAQ,MAAS;CAExD,MAAM,MAAM,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;CACjD,MAAM,WAA+B,CAAC;CACtC,KAAK,MAAM,QAAQ,KAAK;EACtB,MAAM,UAAU,eAAe,MAAM,WAAW,WAAW,IAAI;EAC/D,IAAI,YAAY,QACd,OAAO,OAAO,KAAK,EACjB,SAAS,2BAA2B,OAAO,IAAI,EAAE,kBAAkB,eAAe,KAAK,IAAI,EAAE,GAC/F,CAAC;EAEH,SAAS,KAAK,OAAO;CACvB;CACA,OAAO,OAAO,QAAQ,QAAQ;AAChC;AAEA,MAAM,WAAW;CACf,GAAG;CACH,QAAQ;EACN,MAAM;EACN,aAAa;CACf;CACA,OAAO;EACL,MAAM;EACN,aAAa;EACb,SAAS;CACX;CACA,QAAQ;EACN,MAAM;EACN,aAAa;EACb,SAAS;CACX;AACF;AAEA,mBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,KAAK,OAAO,EAAE,MAAM,cAAc;EAChC,MAAM,SAAS,kBAAkB,sBAAsB,SAAS,QAAQ,CAAC;EACzE,IAAI,OAAO,UAAU,MAAM,GAAG,OAAO;EACrC,MAAM,QAAQ,mBAAmB,SAAS,KAAK,OAAO;GAAC;GAAI;GAAK;EAAG,CAAC;EACpE,IAAI,OAAO,UAAU,KAAK,GAAG,OAAO;EACpC,MAAM,SAAS,wBAAwB,UAAU,KAAK,MAAM;EAC5D,IAAI,OAAO,UAAU,MAAM,GAAG,OAAO;EAErC,OAAO,eAAe,OAAO,QAC3B,kBAAkB,KAAK;GACrB,QAAQ,OAAO;GACf,OAAO,MAAM;GACb,QAAQ,OAAO;EACjB,CAAC,CACH;CACF;AACF,CAAC"}
|