@burdenoff/cli-sdk 2026.504.1
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 +60 -0
- package/dist/chunk-KTKHJORN.js +1 -0
- package/dist/chunk-MRONTCXQ.js +879 -0
- package/dist/chunk-RNWXATAC.js +32 -0
- package/dist/core/index.cjs +32 -0
- package/dist/core/index.d.cts +57 -0
- package/dist/core/index.d.ts +57 -0
- package/dist/core/index.js +1 -0
- package/dist/index.cjs +32 -0
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -0
- package/dist/module-Bv5zhYt2.d.cts +166 -0
- package/dist/module-Bv5zhYt2.d.ts +166 -0
- package/dist/modules/auth/index.cjs +183 -0
- package/dist/modules/auth/index.d.cts +7 -0
- package/dist/modules/auth/index.d.ts +7 -0
- package/dist/modules/auth/index.js +160 -0
- package/dist/modules/billing/index.cjs +105 -0
- package/dist/modules/billing/index.d.cts +7 -0
- package/dist/modules/billing/index.d.ts +7 -0
- package/dist/modules/billing/index.js +105 -0
- package/dist/modules/channels/index.cjs +70 -0
- package/dist/modules/channels/index.d.cts +7 -0
- package/dist/modules/channels/index.d.ts +7 -0
- package/dist/modules/channels/index.js +70 -0
- package/dist/modules/conversations/index.cjs +37 -0
- package/dist/modules/conversations/index.d.cts +7 -0
- package/dist/modules/conversations/index.d.ts +7 -0
- package/dist/modules/conversations/index.js +37 -0
- package/dist/modules/devportal/index.cjs +133 -0
- package/dist/modules/devportal/index.d.cts +7 -0
- package/dist/modules/devportal/index.d.ts +7 -0
- package/dist/modules/devportal/index.js +133 -0
- package/dist/modules/export/index.cjs +37 -0
- package/dist/modules/export/index.d.cts +7 -0
- package/dist/modules/export/index.d.ts +7 -0
- package/dist/modules/export/index.js +37 -0
- package/dist/modules/files/index.cjs +49 -0
- package/dist/modules/files/index.d.cts +7 -0
- package/dist/modules/files/index.d.ts +7 -0
- package/dist/modules/files/index.js +49 -0
- package/dist/modules/groups/index.cjs +67 -0
- package/dist/modules/groups/index.d.cts +7 -0
- package/dist/modules/groups/index.d.ts +7 -0
- package/dist/modules/groups/index.js +67 -0
- package/dist/modules/health/index.cjs +1 -0
- package/dist/modules/health/index.d.cts +7 -0
- package/dist/modules/health/index.d.ts +7 -0
- package/dist/modules/health/index.js +1 -0
- package/dist/modules/integrations/index.cjs +44 -0
- package/dist/modules/integrations/index.d.cts +7 -0
- package/dist/modules/integrations/index.d.ts +7 -0
- package/dist/modules/integrations/index.js +44 -0
- package/dist/modules/notifications/index.cjs +26 -0
- package/dist/modules/notifications/index.d.cts +7 -0
- package/dist/modules/notifications/index.d.ts +7 -0
- package/dist/modules/notifications/index.js +26 -0
- package/dist/modules/organizations/index.cjs +53 -0
- package/dist/modules/organizations/index.d.cts +7 -0
- package/dist/modules/organizations/index.d.ts +7 -0
- package/dist/modules/organizations/index.js +53 -0
- package/dist/modules/products/index.cjs +102 -0
- package/dist/modules/products/index.d.cts +7 -0
- package/dist/modules/products/index.d.ts +7 -0
- package/dist/modules/products/index.js +102 -0
- package/dist/modules/rbac/index.cjs +63 -0
- package/dist/modules/rbac/index.d.cts +7 -0
- package/dist/modules/rbac/index.d.ts +7 -0
- package/dist/modules/rbac/index.js +63 -0
- package/dist/modules/sandbox/index.cjs +33 -0
- package/dist/modules/sandbox/index.d.cts +7 -0
- package/dist/modules/sandbox/index.d.ts +7 -0
- package/dist/modules/sandbox/index.js +1 -0
- package/dist/modules/scheduler/index.cjs +32 -0
- package/dist/modules/scheduler/index.d.cts +7 -0
- package/dist/modules/scheduler/index.d.ts +7 -0
- package/dist/modules/scheduler/index.js +32 -0
- package/dist/modules/security/index.cjs +69 -0
- package/dist/modules/security/index.d.cts +7 -0
- package/dist/modules/security/index.d.ts +7 -0
- package/dist/modules/security/index.js +69 -0
- package/dist/modules/store/index.cjs +63 -0
- package/dist/modules/store/index.d.cts +7 -0
- package/dist/modules/store/index.d.ts +7 -0
- package/dist/modules/store/index.js +63 -0
- package/dist/modules/support/index.cjs +45 -0
- package/dist/modules/support/index.d.cts +7 -0
- package/dist/modules/support/index.d.ts +7 -0
- package/dist/modules/support/index.js +45 -0
- package/dist/modules/tags/index.cjs +54 -0
- package/dist/modules/tags/index.d.cts +7 -0
- package/dist/modules/tags/index.d.ts +7 -0
- package/dist/modules/tags/index.js +54 -0
- package/dist/modules/tours/index.cjs +48 -0
- package/dist/modules/tours/index.d.cts +7 -0
- package/dist/modules/tours/index.d.ts +7 -0
- package/dist/modules/tours/index.js +48 -0
- package/dist/modules/vibecontrols/index.cjs +844 -0
- package/dist/modules/vibecontrols/index.d.cts +7 -0
- package/dist/modules/vibecontrols/index.d.ts +7 -0
- package/dist/modules/vibecontrols/index.js +2 -0
- package/dist/modules/workspaces/index.cjs +90 -0
- package/dist/modules/workspaces/index.d.cts +7 -0
- package/dist/modules/workspaces/index.d.ts +7 -0
- package/dist/modules/workspaces/index.js +77 -0
- package/package.json +104 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(a,d){super(a),this.name="CliUserError",this.exitCode=d?.exitCode??1,this.hint=d?.hint;}};var f=class extends Error{cause;constructor(a,d){super(a),this.name="CliInternalError",this.cause=d;}};var k=null;function b(s){k=s;}function I(){if(!k)throw new f("vibecontrols module helpers used before setHelpersContext was called");return k}async function r(s,a){return I().gql.global.request(s,a)}function i(s){let a=s instanceof Error?s.message:String(s);throw new l(a)}function c(s,a,d){I().output.formatAndOutput(s,a,d);}function u(s){I().output.printSuccess(s);}function w(s){return I().output.formatStatus(s)}function m(s,a){return I().output.truncate(s,a)}var v=`
|
|
2
|
+
query ListOrganizations($filter: OrganizationFilterInput, $limit: Int, $offset: Int) {
|
|
3
|
+
organizations(filter: $filter, limit: $limit, offset: $offset) {
|
|
4
|
+
items { id name slug status }
|
|
5
|
+
total hasMore limit offset
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,O=`
|
|
9
|
+
query GetOrganization($id: ID!) {
|
|
10
|
+
organization(id: $id) {
|
|
11
|
+
id name description status
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
`,S=`
|
|
15
|
+
mutation CreateOrganization($input: CreateOrganizationInput!) {
|
|
16
|
+
createOrganization(input: $input) {
|
|
17
|
+
id name slug status
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`,R=`
|
|
21
|
+
mutation UpdateOrganization($id: ID!, $input: UpdateOrganizationInput!) {
|
|
22
|
+
updateOrganization(id: $id, input: $input) {
|
|
23
|
+
id name updatedAt
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`,D=`
|
|
27
|
+
mutation DeleteOrganization($id: ID!) {
|
|
28
|
+
deleteOrganization(id: $id) { success }
|
|
29
|
+
}
|
|
30
|
+
`,$=`
|
|
31
|
+
query ListApplications($organizationId: ID, $status: AppStatus, $limit: Int) {
|
|
32
|
+
applications(organizationId: $organizationId, status: $status, limit: $limit) {
|
|
33
|
+
edges { node { id name status installCount averageRating } }
|
|
34
|
+
totalCount
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`,P=`
|
|
38
|
+
query GetApplication($id: ID!) {
|
|
39
|
+
application(id: $id) {
|
|
40
|
+
id name status reviewStatus publishedAt installCount
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`,N=`
|
|
44
|
+
mutation CreateApplication($input: CreateApplicationInput!) {
|
|
45
|
+
createApplication(input: $input) {
|
|
46
|
+
id name status appId
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`,L=`
|
|
50
|
+
mutation UpdateApplication($id: ID!, $input: UpdateApplicationInput!) {
|
|
51
|
+
updateApplication(id: $id, input: $input) {
|
|
52
|
+
id description updatedAt
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
`,_=`
|
|
56
|
+
mutation SubmitApplicationForReview($id: ID!, $notes: String) {
|
|
57
|
+
submitApplicationForReview(id: $id, notes: $notes) {
|
|
58
|
+
id status reviewStatus submittedAt
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`,q=`
|
|
62
|
+
mutation PublishApplication($id: ID!) {
|
|
63
|
+
publishApplication(id: $id) {
|
|
64
|
+
id status publishedAt
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
`,z=`
|
|
68
|
+
mutation DeleteApplication($id: ID!) {
|
|
69
|
+
deleteApplication(id: $id)
|
|
70
|
+
}
|
|
71
|
+
`,W=`
|
|
72
|
+
query ApplicationVersions($applicationId: ID!) {
|
|
73
|
+
application(id: $applicationId) {
|
|
74
|
+
id
|
|
75
|
+
versions {
|
|
76
|
+
id version status isLatest isStable releaseNotes
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
`,G=`
|
|
81
|
+
mutation CreateApplicationVersion($applicationId: ID!, $input: CreateApplicationVersionInput!) {
|
|
82
|
+
createApplicationVersion(applicationId: $applicationId, input: $input) {
|
|
83
|
+
id version status publishedAt
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`,U=`
|
|
87
|
+
query ListDevportalWebhooks($applicationId: ID!) {
|
|
88
|
+
webhooks(applicationId: $applicationId) {
|
|
89
|
+
id name url events isActive status failureCount
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
`,F=`
|
|
93
|
+
mutation CreateDevportalWebhook($input: CreateWebhookInput!) {
|
|
94
|
+
createWebhook(input: $input) {
|
|
95
|
+
id name url status
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
`,V=`
|
|
99
|
+
mutation DeleteDevportalWebhook($id: ID!) {
|
|
100
|
+
deleteWebhook(id: $id) { success }
|
|
101
|
+
}
|
|
102
|
+
`,j=`
|
|
103
|
+
query ApplicationAnalytics($applicationId: ID!, $period: String!, $startDate: DateTime, $endDate: DateTime) {
|
|
104
|
+
applicationAnalytics(applicationId: $applicationId, period: $period, startDate: $startDate, endDate: $endDate) {
|
|
105
|
+
date period activeUsers apiCalls avgResponseTime sessions
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
`,M=`
|
|
109
|
+
query OrganizationRevenue($organizationId: ID!, $period: String) {
|
|
110
|
+
developerOrgRevenueSummary(organizationId: $organizationId, period: $period) {
|
|
111
|
+
totalEarnings currency netEarnings
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
`,B=`
|
|
115
|
+
query AdminReviews($status: String) {
|
|
116
|
+
adminReviews(status: $status) {
|
|
117
|
+
edges { node { id applicationId reviewStatus reviewNotes } }
|
|
118
|
+
totalCount
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
`,H=`
|
|
122
|
+
mutation ApproveApplication($id: ID!, $notes: String) {
|
|
123
|
+
approveApplication(id: $id, notes: $notes) {
|
|
124
|
+
id status reviewStatus publishedAt
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
`,Y=`
|
|
128
|
+
mutation RejectApplication($id: ID!, $notes: String!) {
|
|
129
|
+
rejectApplication(id: $id, notes: $notes) {
|
|
130
|
+
id status reviewStatus reviewNotes
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
`;function K(s){let a=s.command("devportal").description("Developer portal: orgs, apps, webhooks, revenue"),d=a.command("orgs").description("Publisher organizations");d.command("list").description("List devportal organizations").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await r(v,{limit:t.limit,offset:0})).organizations.items;c(t,n,{headers:["ID","Name","Slug","Status"],rows:n.map(o=>[m(o.id,12),o.name,o.slug??"-",w(o.status)])});}catch(e){i(e);}}),d.command("get").description("Get an organization").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(O,{id:t});if(!n.organization)throw new l(`Organization ${t} not found`);c(e,n.organization);}catch(n){i(n);}}),d.command("create").description("Create a publisher organization").requiredOption("--name <s>").requiredOption("--slug <s>","Unique slug (required by schema)").option("--description <s>").option("--tier <t>","INDIVIDUAL|ORGANIZATION|ENTERPRISE","ORGANIZATION").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,slug:t.slug,description:t.description,tier:(t.tier??"ORGANIZATION").toUpperCase()},n=await r(S,{input:e});u(`Organization created: ${n.createOrganization.name}`),c(t,n.createOrganization);}catch(e){i(e);}}),d.command("update").description("Update an organization").argument("<id>").option("--name <s>").option("--description <s>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),!Object.keys(n).length)throw new l("No updates specified");let o=await r(R,{id:t,input:n});u("Organization updated"),c(e,o.updateOrganization);}catch(n){i(n);}}),d.command("delete").description("Delete an organization").argument("<id>").action(async t=>{try{await r(D,{id:t}),u("Organization deleted");}catch(e){i(e);}});let g=a.command("apps").description("Applications");g.command("list").description("List applications").option("--organization <id>").option("--status <s>","DRAFT|REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await r($,{organizationId:t.organization,status:t.status?.toUpperCase(),limit:t.limit})).applications.edges.map(o=>o.node);c(t,n,{headers:["ID","Name","Status","Installs","Rating"],rows:n.map(o=>[m(o.id,12),o.name,w(o.status),String(o.installCount??0),String(o.averageRating??"-")])});}catch(e){i(e);}}),g.command("get").description("Get an application").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(P,{id:t});if(!n.application)throw new l(`Application ${t} not found`);c(e,n.application);}catch(n){i(n);}}),g.command("create").description("Create an application").requiredOption("--name <s>").requiredOption("--organization <id>").option("--type <t>","API_INTEGRATION|WEB_APP|MOBILE_APP","API_INTEGRATION").option("--description <s>").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,developerOrganizationId:t.organization,appType:(t.type??"API_INTEGRATION").toUpperCase(),description:t.description},n=await r(N,{input:e});u(`Application created: ${n.createApplication.name}`),c(t,n.createApplication);}catch(e){i(e);}}),g.command("update").description("Update an application").argument("<id>").option("--description <s>").option("--pricing <p>","FREE|PAID_ONETIME|SUBSCRIPTION").option("--docs-url <url>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.description!==void 0&&(n.description=e.description),e.pricing&&(n.pricingType=e.pricing.toUpperCase()),e.docsUrl&&(n.documentationUrl=e.docsUrl),!Object.keys(n).length)throw new l("No updates specified");let o=await r(L,{id:t,input:n});u("Application updated"),c(e,o.updateApplication);}catch(n){i(n);}}),g.command("submit-review").description("Submit an application for review").argument("<id>").option("--notes <s>").action(async(t,e)=>{try{await r(_,{id:t,notes:e.notes}),u("Submitted for review");}catch(n){i(n);}}),g.command("publish").description("Publish an application").argument("<id>").action(async t=>{try{await r(q,{id:t}),u("Application published");}catch(e){i(e);}}),g.command("delete").description("Delete an application").argument("<id>").action(async t=>{try{await r(z,{id:t}),u("Application deleted");}catch(e){i(e);}});let y=g.command("versions").description("Application versions");y.command("list").description("List versions for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,e)=>{try{let o=(await r(W,{applicationId:t})).application?.versions??[];c(e,o,{headers:["ID","Version","Status","Latest","Stable"],rows:o.map(A=>[m(A.id,12),A.version,w(A.status),String(!!A.isLatest),String(!!A.isStable)])});}catch(n){i(n);}}),y.command("create").description("Create an application version").requiredOption("--application <id>").requiredOption("--version <v>").option("--notes <s>").option("--package <url>","Package URL").option("-f, --format <format>").action(async t=>{try{let e={version:t.version,releaseNotes:t.notes,packageUrl:t.package},n=await r(G,{applicationId:t.application,input:e});u(`Version created: ${n.createApplicationVersion.version}`),c(t,n.createApplicationVersion);}catch(e){i(e);}});let h=g.command("webhooks").description("Application webhooks");h.command("list").description("List webhooks for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(U,{applicationId:t});c(e,n.webhooks,{headers:["ID","Name","URL","Active","Failures"],rows:n.webhooks.map(o=>[m(o.id,12),o.name,m(o.url,40),String(!!o.isActive),String(o.failureCount??0)])});}catch(n){i(n);}}),h.command("add").description("Add a webhook to an application").requiredOption("--application <id>").requiredOption("--name <s>").requiredOption("--url <url>").requiredOption("--events <s>","Comma-separated event names").option("--max-retries <n>","",t=>parseInt(t,10),5).option("-f, --format <format>").action(async t=>{try{let e={applicationId:t.application,name:t.name,url:t.url,events:t.events.split(","),retryEnabled:!0,maxRetries:t.maxRetries},n=await r(F,{input:e});u("Webhook created"),c(t,n.createWebhook);}catch(e){i(e);}}),h.command("remove").description("Remove a webhook").argument("<id>").action(async t=>{try{await r(V,{id:t}),u("Webhook removed");}catch(e){i(e);}}),g.command("analytics").description("Application analytics for a period").requiredOption("--application <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|CUSTOM","LAST_30_DAYS").option("--from <iso>").option("--to <iso>").option("-f, --format <format>").action(async t=>{try{let e=await r(j,{applicationId:t.application,period:(t.period??"LAST_30_DAYS").toUpperCase(),startDate:t.from,endDate:t.to});c(t,e.applicationAnalytics);}catch(e){i(e);}}),a.command("revenue").description("Revenue for an organization").requiredOption("--organization <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|YTD","LAST_30_DAYS").option("-f, --format <format>").action(async t=>{try{let e=await r(M,{organizationId:t.organization,period:(t.period??"LAST_30_DAYS").toUpperCase()});c(t,e.organizationRevenue);}catch(e){i(e);}});let C=a.command("admin").description("Admin operations").command("reviews").description("Application review queue");C.command("list").description("List applications pending review").option("--status <s>","PENDING|APPROVED|REJECTED","PENDING").option("-f, --format <format>").action(async t=>{try{let e=await r(B,{status:(t.status??"PENDING").toUpperCase()});c(t,e.adminReviews.edges.map(n=>n.node));}catch(e){i(e);}}),C.command("approve").description("Approve an application").argument("<applicationId>").option("--notes <s>").action(async(t,e)=>{try{await r(H,{id:t,notes:e.notes}),u("Application approved");}catch(n){i(n);}}),C.command("reject").description("Reject an application").argument("<applicationId>").requiredOption("--notes <s>","Reason for rejection").action(async(t,e)=>{try{await r(Y,{id:t,notes:e.notes}),u("Application rejected");}catch(n){i(n);}});}var ct={id:"devportal",version:"1.0.0",displayName:"Developer Portal",dependsOn:["auth"],register(s,a){b(a),K(s);}},Ce=ct;module.exports=Ce;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import {a,c,g,o,m,f,h as h$1}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var N=`
|
|
2
|
+
query ListOrganizations($filter: OrganizationFilterInput, $limit: Int, $offset: Int) {
|
|
3
|
+
organizations(filter: $filter, limit: $limit, offset: $offset) {
|
|
4
|
+
items { id name slug status }
|
|
5
|
+
total hasMore limit offset
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,w=`
|
|
9
|
+
query GetOrganization($id: ID!) {
|
|
10
|
+
organization(id: $id) {
|
|
11
|
+
id name description status
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
`,C=`
|
|
15
|
+
mutation CreateOrganization($input: CreateOrganizationInput!) {
|
|
16
|
+
createOrganization(input: $input) {
|
|
17
|
+
id name slug status
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`,v=`
|
|
21
|
+
mutation UpdateOrganization($id: ID!, $input: UpdateOrganizationInput!) {
|
|
22
|
+
updateOrganization(id: $id, input: $input) {
|
|
23
|
+
id name updatedAt
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`,P=`
|
|
27
|
+
mutation DeleteOrganization($id: ID!) {
|
|
28
|
+
deleteOrganization(id: $id) { success }
|
|
29
|
+
}
|
|
30
|
+
`,S=`
|
|
31
|
+
query ListApplications($organizationId: ID, $status: AppStatus, $limit: Int) {
|
|
32
|
+
applications(organizationId: $organizationId, status: $status, limit: $limit) {
|
|
33
|
+
edges { node { id name status installCount averageRating } }
|
|
34
|
+
totalCount
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`,y=`
|
|
38
|
+
query GetApplication($id: ID!) {
|
|
39
|
+
application(id: $id) {
|
|
40
|
+
id name status reviewStatus publishedAt installCount
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`,$=`
|
|
44
|
+
mutation CreateApplication($input: CreateApplicationInput!) {
|
|
45
|
+
createApplication(input: $input) {
|
|
46
|
+
id name status appId
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`,D=`
|
|
50
|
+
mutation UpdateApplication($id: ID!, $input: UpdateApplicationInput!) {
|
|
51
|
+
updateApplication(id: $id, input: $input) {
|
|
52
|
+
id description updatedAt
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
`,h=`
|
|
56
|
+
mutation SubmitApplicationForReview($id: ID!, $notes: String) {
|
|
57
|
+
submitApplicationForReview(id: $id, notes: $notes) {
|
|
58
|
+
id status reviewStatus submittedAt
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`,_=`
|
|
62
|
+
mutation PublishApplication($id: ID!) {
|
|
63
|
+
publishApplication(id: $id) {
|
|
64
|
+
id status publishedAt
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
`,L=`
|
|
68
|
+
mutation DeleteApplication($id: ID!) {
|
|
69
|
+
deleteApplication(id: $id)
|
|
70
|
+
}
|
|
71
|
+
`,b=`
|
|
72
|
+
query ApplicationVersions($applicationId: ID!) {
|
|
73
|
+
application(id: $applicationId) {
|
|
74
|
+
id
|
|
75
|
+
versions {
|
|
76
|
+
id version status isLatest isStable releaseNotes
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
`,z=`
|
|
81
|
+
mutation CreateApplicationVersion($applicationId: ID!, $input: CreateApplicationVersionInput!) {
|
|
82
|
+
createApplicationVersion(applicationId: $applicationId, input: $input) {
|
|
83
|
+
id version status publishedAt
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`,k=`
|
|
87
|
+
query ListDevportalWebhooks($applicationId: ID!) {
|
|
88
|
+
webhooks(applicationId: $applicationId) {
|
|
89
|
+
id name url events isActive status failureCount
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
`,U=`
|
|
93
|
+
mutation CreateDevportalWebhook($input: CreateWebhookInput!) {
|
|
94
|
+
createWebhook(input: $input) {
|
|
95
|
+
id name url status
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
`,x=`
|
|
99
|
+
mutation DeleteDevportalWebhook($id: ID!) {
|
|
100
|
+
deleteWebhook(id: $id) { success }
|
|
101
|
+
}
|
|
102
|
+
`,G=`
|
|
103
|
+
query ApplicationAnalytics($applicationId: ID!, $period: String!, $startDate: DateTime, $endDate: DateTime) {
|
|
104
|
+
applicationAnalytics(applicationId: $applicationId, period: $period, startDate: $startDate, endDate: $endDate) {
|
|
105
|
+
date period activeUsers apiCalls avgResponseTime sessions
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
`,V=`
|
|
109
|
+
query OrganizationRevenue($organizationId: ID!, $period: String) {
|
|
110
|
+
developerOrgRevenueSummary(organizationId: $organizationId, period: $period) {
|
|
111
|
+
totalEarnings currency netEarnings
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
`,q=`
|
|
115
|
+
query AdminReviews($status: String) {
|
|
116
|
+
adminReviews(status: $status) {
|
|
117
|
+
edges { node { id applicationId reviewStatus reviewNotes } }
|
|
118
|
+
totalCount
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
`,W=`
|
|
122
|
+
mutation ApproveApplication($id: ID!, $notes: String) {
|
|
123
|
+
approveApplication(id: $id, notes: $notes) {
|
|
124
|
+
id status reviewStatus publishedAt
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
`,B=`
|
|
128
|
+
mutation RejectApplication($id: ID!, $notes: String!) {
|
|
129
|
+
rejectApplication(id: $id, notes: $notes) {
|
|
130
|
+
id status reviewStatus reviewNotes
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
`;function Z(A){let c$1=A.command("devportal").description("Developer portal: orgs, apps, webhooks, revenue"),m$1=c$1.command("orgs").description("Publisher organizations");m$1.command("list").description("List devportal organizations").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await c(N,{limit:t.limit,offset:0})).organizations.items;g(t,n,{headers:["ID","Name","Slug","Status"],rows:n.map(o$1=>[o(o$1.id,12),o$1.name,o$1.slug??"-",m(o$1.status)])});}catch(i){f(i);}}),m$1.command("get").description("Get an organization").argument("<id>").option("-f, --format <format>").action(async(t,i)=>{try{let n=await c(w,{id:t});if(!n.organization)throw new o$1(`Organization ${t} not found`);g(i,n.organization);}catch(n){f(n);}}),m$1.command("create").description("Create a publisher organization").requiredOption("--name <s>").requiredOption("--slug <s>","Unique slug (required by schema)").option("--description <s>").option("--tier <t>","INDIVIDUAL|ORGANIZATION|ENTERPRISE","ORGANIZATION").option("-f, --format <format>").action(async t=>{try{let i={name:t.name,slug:t.slug,description:t.description,tier:(t.tier??"ORGANIZATION").toUpperCase()},n=await c(C,{input:i});h$1(`Organization created: ${n.createOrganization.name}`),g(t,n.createOrganization);}catch(i){f(i);}}),m$1.command("update").description("Update an organization").argument("<id>").option("--name <s>").option("--description <s>").option("-f, --format <format>").action(async(t,i)=>{try{let n={};if(i.name&&(n.name=i.name),i.description!==void 0&&(n.description=i.description),!Object.keys(n).length)throw new o$1("No updates specified");let o=await c(v,{id:t,input:n});h$1("Organization updated"),g(i,o.updateOrganization);}catch(n){f(n);}}),m$1.command("delete").description("Delete an organization").argument("<id>").action(async t=>{try{await c(P,{id:t}),h$1("Organization deleted");}catch(i){f(i);}});let p=c$1.command("apps").description("Applications");p.command("list").description("List applications").option("--organization <id>").option("--status <s>","DRAFT|REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await c(S,{organizationId:t.organization,status:t.status?.toUpperCase(),limit:t.limit})).applications.edges.map(o=>o.node);g(t,n,{headers:["ID","Name","Status","Installs","Rating"],rows:n.map(o$1=>[o(o$1.id,12),o$1.name,m(o$1.status),String(o$1.installCount??0),String(o$1.averageRating??"-")])});}catch(i){f(i);}}),p.command("get").description("Get an application").argument("<id>").option("-f, --format <format>").action(async(t,i)=>{try{let n=await c(y,{id:t});if(!n.application)throw new o$1(`Application ${t} not found`);g(i,n.application);}catch(n){f(n);}}),p.command("create").description("Create an application").requiredOption("--name <s>").requiredOption("--organization <id>").option("--type <t>","API_INTEGRATION|WEB_APP|MOBILE_APP","API_INTEGRATION").option("--description <s>").option("-f, --format <format>").action(async t=>{try{let i={name:t.name,developerOrganizationId:t.organization,appType:(t.type??"API_INTEGRATION").toUpperCase(),description:t.description},n=await c($,{input:i});h$1(`Application created: ${n.createApplication.name}`),g(t,n.createApplication);}catch(i){f(i);}}),p.command("update").description("Update an application").argument("<id>").option("--description <s>").option("--pricing <p>","FREE|PAID_ONETIME|SUBSCRIPTION").option("--docs-url <url>").option("-f, --format <format>").action(async(t,i)=>{try{let n={};if(i.description!==void 0&&(n.description=i.description),i.pricing&&(n.pricingType=i.pricing.toUpperCase()),i.docsUrl&&(n.documentationUrl=i.docsUrl),!Object.keys(n).length)throw new o$1("No updates specified");let o=await c(D,{id:t,input:n});h$1("Application updated"),g(i,o.updateApplication);}catch(n){f(n);}}),p.command("submit-review").description("Submit an application for review").argument("<id>").option("--notes <s>").action(async(t,i)=>{try{await c(h,{id:t,notes:i.notes}),h$1("Submitted for review");}catch(n){f(n);}}),p.command("publish").description("Publish an application").argument("<id>").action(async t=>{try{await c(_,{id:t}),h$1("Application published");}catch(i){f(i);}}),p.command("delete").description("Delete an application").argument("<id>").action(async t=>{try{await c(L,{id:t}),h$1("Application deleted");}catch(i){f(i);}});let f$1=p.command("versions").description("Application versions");f$1.command("list").description("List versions for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,i)=>{try{let o$1=(await c(b,{applicationId:t})).application?.versions??[];g(i,o$1,{headers:["ID","Version","Status","Latest","Stable"],rows:o$1.map(l=>[o(l.id,12),l.version,m(l.status),String(!!l.isLatest),String(!!l.isStable)])});}catch(n){f(n);}}),f$1.command("create").description("Create an application version").requiredOption("--application <id>").requiredOption("--version <v>").option("--notes <s>").option("--package <url>","Package URL").option("-f, --format <format>").action(async t=>{try{let i={version:t.version,releaseNotes:t.notes,packageUrl:t.package},n=await c(z,{applicationId:t.application,input:i});h$1(`Version created: ${n.createApplicationVersion.version}`),g(t,n.createApplicationVersion);}catch(i){f(i);}});let I=p.command("webhooks").description("Application webhooks");I.command("list").description("List webhooks for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,i)=>{try{let n=await c(k,{applicationId:t});g(i,n.webhooks,{headers:["ID","Name","URL","Active","Failures"],rows:n.webhooks.map(o$1=>[o(o$1.id,12),o$1.name,o(o$1.url,40),String(!!o$1.isActive),String(o$1.failureCount??0)])});}catch(n){f(n);}}),I.command("add").description("Add a webhook to an application").requiredOption("--application <id>").requiredOption("--name <s>").requiredOption("--url <url>").requiredOption("--events <s>","Comma-separated event names").option("--max-retries <n>","",t=>parseInt(t,10),5).option("-f, --format <format>").action(async t=>{try{let i={applicationId:t.application,name:t.name,url:t.url,events:t.events.split(","),retryEnabled:!0,maxRetries:t.maxRetries},n=await c(U,{input:i});h$1("Webhook created"),g(t,n.createWebhook);}catch(i){f(i);}}),I.command("remove").description("Remove a webhook").argument("<id>").action(async t=>{try{await c(x,{id:t}),h$1("Webhook removed");}catch(i){f(i);}}),p.command("analytics").description("Application analytics for a period").requiredOption("--application <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|CUSTOM","LAST_30_DAYS").option("--from <iso>").option("--to <iso>").option("-f, --format <format>").action(async t=>{try{let i=await c(G,{applicationId:t.application,period:(t.period??"LAST_30_DAYS").toUpperCase(),startDate:t.from,endDate:t.to});g(t,i.applicationAnalytics);}catch(i){f(i);}}),c$1.command("revenue").description("Revenue for an organization").requiredOption("--organization <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|YTD","LAST_30_DAYS").option("-f, --format <format>").action(async t=>{try{let i=await c(V,{organizationId:t.organization,period:(t.period??"LAST_30_DAYS").toUpperCase()});g(t,i.organizationRevenue);}catch(i){f(i);}});let O=c$1.command("admin").description("Admin operations").command("reviews").description("Application review queue");O.command("list").description("List applications pending review").option("--status <s>","PENDING|APPROVED|REJECTED","PENDING").option("-f, --format <format>").action(async t=>{try{let i=await c(q,{status:(t.status??"PENDING").toUpperCase()});g(t,i.adminReviews.edges.map(n=>n.node));}catch(i){f(i);}}),O.command("approve").description("Approve an application").argument("<applicationId>").option("--notes <s>").action(async(t,i)=>{try{await c(W,{id:t,notes:i.notes}),h$1("Application approved");}catch(n){f(n);}}),O.command("reject").description("Reject an application").argument("<applicationId>").requiredOption("--notes <s>","Reason for rejection").action(async(t,i)=>{try{await c(B,{id:t,notes:i.notes}),h$1("Application rejected");}catch(n){f(n);}});}var M={id:"devportal",version:"1.0.0",displayName:"Developer Portal",dependsOn:["auth"],register(A,c){a(c),Z(A);}},it=M;export{it as default};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var promises=require('fs/promises');var s=class extends Error{exitCode;hint;constructor(r,c){super(r),this.name="CliUserError",this.exitCode=c?.exitCode??1,this.hint=c?.hint;}},f=class extends s{constructor(r,c){super(r,{exitCode:2,hint:c?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},p=class extends Error{cause;constructor(r,c){super(r),this.name="CliInternalError",this.cause=c;}};var w=null;function T(e){w=e;}function u(){if(!w)throw new p("vibecontrols module helpers used before setHelpersContext was called");return w}function V(){let e=u();if(!e.auth.isAuthenticated())throw new f(`Authentication required. Run \`${e.productName} auth login\`.`)}async function l(e,r){return V(),u().gql.workspace.request(e,r)}function d(e){let r=e instanceof Error?e.message:String(e);throw new s(r)}function m(e,r,c){u().output.formatAndOutput(e,r,c);}function h(e){u().output.printSuccess(e);}function I(e){u().output.printInfo(e);}function v(e){return u().output.formatStatus(e)}function A(e){return u().output.formatDate(e)}function S(e,r){return u().output.truncate(e,r)}function O(){return u()}var $=`
|
|
2
|
+
query ListExportJobs($context: ContextInput!, $filter: ExportJobFilterInput, $pagination: ExportPaginationInput) {
|
|
3
|
+
listExportJobs(context: $context, filter: $filter, pagination: $pagination) {
|
|
4
|
+
edges { node {
|
|
5
|
+
id name status progress totalEntities processedEntities
|
|
6
|
+
startedAt completedAt downloadUrl downloadExpiresAt
|
|
7
|
+
} }
|
|
8
|
+
pageInfo { totalCount hasNextPage }
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
`,C=`
|
|
12
|
+
query GetExportJob($context: ContextInput, $id: ID!) {
|
|
13
|
+
getExportJob(context: $context, id: $id) {
|
|
14
|
+
id name status progress
|
|
15
|
+
downloadUrl downloadExpiresAt totalSizeBytes
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`,R=`
|
|
19
|
+
mutation CreateExportJob($context: ContextInput!, $input: CreateExportJobInput!) {
|
|
20
|
+
createExportJob(context: $context, input: $input) {
|
|
21
|
+
id status progress entityTypes
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`,P=`
|
|
25
|
+
query ListExportTemplates($context: ContextInput!, $pagination: ExportPaginationInput) {
|
|
26
|
+
listExportTemplates(context: $context, pagination: $pagination) {
|
|
27
|
+
edges { node { id name entityTypes format includeMedia includeMetadata } }
|
|
28
|
+
pageInfo { totalCount }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
`,D=`
|
|
32
|
+
query GetExportTemplate($context: ContextInput, $id: ID!) {
|
|
33
|
+
getExportTemplate(context: $context, id: $id) {
|
|
34
|
+
id name entityTypes format
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`;function x(){let e=O().auth.read();if(!e?.workspaceId)throw new s("No workspace set. Run: vibecontrols workspace set <id>");return {workspaceId:e.workspaceId}}function q(e){let r=e.command("export").description("Workspace data export jobs"),c=r.command("jobs").description("Export job lifecycle");c.command("list").description("List export jobs").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let o={};t.status&&(o.status=t.status.toUpperCase());let g=(await l($,{context:x(),filter:Object.keys(o).length?o:void 0,pagination:{first:t.limit}})).listExportJobs.edges.map(a=>a.node);m(t,g,{headers:["ID","Name","Status","Progress","Started"],rows:g.map(a=>[S(a.id,12),a.name??"-",v(a.status),`${a.processedEntities??0}/${a.totalEntities??"-"}`,A(a.startedAt)])});}catch(o){d(o);}}),c.command("get").description("Get an export job").argument("<id>").option("-f, --format <format>").action(async(t,o)=>{try{let n=await l(C,{context:x(),id:t});if(!n.getExportJob)throw new s(`Export job ${t} not found`);m(o,n.getExportJob);}catch(n){d(n);}}),c.command("create").description("Create an export job").requiredOption("--name <s>").requiredOption("--types <t>","Comma-separated entity types").option("--format <fmt>","JSON|CSV|ZIP","JSON").option("--include-media","Include media files",false).option("--include-metadata","Include metadata",true).option("--from <iso>","Date range start").option("--to <iso>","Date range end").option("-f, --format-output <format>").action(async t=>{try{let o={name:t.name,entityTypes:t.types.split(","),format:(t.format??"JSON").toUpperCase(),includeMedia:!!t.includeMedia,includeMetadata:t.includeMetadata!==!1,dateRangeStart:t.from,dateRangeEnd:t.to},n=await l(R,{context:x(),input:o});h(`Export job created: ${n.createExportJob.id}`),m({format:t.formatOutput},n.createExportJob);}catch(o){d(o);}}),r.command("download").description("Download a completed export job to a local path").argument("<jobId>").requiredOption("--to <path>","Local file path to write").action(async(t,o)=>{try{let n=await l(C,{context:x(),id:t});if(!n.getExportJob)throw new s(`Export job ${t} not found`);let g=n.getExportJob.downloadUrl;if(!g)throw new s(`Job ${t} has no downloadUrl yet (status=${n.getExportJob.status??"UNKNOWN"}).`);I(`Downloading from ${g}`);let a=await fetch(g);if(!a.ok)throw new s(`Download failed: ${a.status} ${a.statusText}`);let y=Buffer.from(await a.arrayBuffer());await promises.writeFile(o.to,y),h(`Saved ${y.length} bytes to ${o.to}`);}catch(n){d(n);}});let k=r.command("templates").description("Export templates");k.command("list").description("List export templates").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let o=await l(P,{context:x(),pagination:{first:t.limit}});m(t,o.listExportTemplates.edges.map(n=>n.node));}catch(o){d(o);}}),k.command("get").description("Get an export template").argument("<id>").option("-f, --format <format>").action(async(t,o)=>{try{let n=await l(D,{context:x(),id:t});if(!n.getExportTemplate)throw new s(`Template ${t} not found`);m(o,n.getExportTemplate);}catch(n){d(n);}});}var X={id:"export",version:"1.0.0",displayName:"Export",dependsOn:["auth","workspaces"],register(e,r){T(r),q(e);}},st=X;module.exports=st;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {a,b,g,o,m as m$1,n,f,h as h$1,j,r}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';import {writeFile}from'fs/promises';var I=`
|
|
2
|
+
query ListExportJobs($context: ContextInput!, $filter: ExportJobFilterInput, $pagination: ExportPaginationInput) {
|
|
3
|
+
listExportJobs(context: $context, filter: $filter, pagination: $pagination) {
|
|
4
|
+
edges { node {
|
|
5
|
+
id name status progress totalEntities processedEntities
|
|
6
|
+
startedAt completedAt downloadUrl downloadExpiresAt
|
|
7
|
+
} }
|
|
8
|
+
pageInfo { totalCount hasNextPage }
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
`,x=`
|
|
12
|
+
query GetExportJob($context: ContextInput, $id: ID!) {
|
|
13
|
+
getExportJob(context: $context, id: $id) {
|
|
14
|
+
id name status progress
|
|
15
|
+
downloadUrl downloadExpiresAt totalSizeBytes
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`,O=`
|
|
19
|
+
mutation CreateExportJob($context: ContextInput!, $input: CreateExportJobInput!) {
|
|
20
|
+
createExportJob(context: $context, input: $input) {
|
|
21
|
+
id status progress entityTypes
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`,h=`
|
|
25
|
+
query ListExportTemplates($context: ContextInput!, $pagination: ExportPaginationInput) {
|
|
26
|
+
listExportTemplates(context: $context, pagination: $pagination) {
|
|
27
|
+
edges { node { id name entityTypes format includeMedia includeMetadata } }
|
|
28
|
+
pageInfo { totalCount }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
`,P=`
|
|
32
|
+
query GetExportTemplate($context: ContextInput, $id: ID!) {
|
|
33
|
+
getExportTemplate(context: $context, id: $id) {
|
|
34
|
+
id name entityTypes format
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`;function m(){let s=r().auth.read();if(!s?.workspaceId)throw new o$1("No workspace set. Run: vibecontrols workspace set <id>");return {workspaceId:s.workspaceId}}function _(s){let c=s.command("export").description("Workspace data export jobs"),l=c.command("jobs").description("Export job lifecycle");l.command("list").description("List export jobs").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.status&&(e.status=t.status.toUpperCase());let p=(await b(I,{context:m(),filter:Object.keys(e).length?e:void 0,pagination:{first:t.limit}})).listExportJobs.edges.map(n=>n.node);g(t,p,{headers:["ID","Name","Status","Progress","Started"],rows:p.map(n$1=>[o(n$1.id,12),n$1.name??"-",m$1(n$1.status),`${n$1.processedEntities??0}/${n$1.totalEntities??"-"}`,n(n$1.startedAt)])});}catch(e){f(e);}}),l.command("get").description("Get an export job").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(x,{context:m(),id:t});if(!o.getExportJob)throw new o$1(`Export job ${t} not found`);g(e,o.getExportJob);}catch(o){f(o);}}),l.command("create").description("Create an export job").requiredOption("--name <s>").requiredOption("--types <t>","Comma-separated entity types").option("--format <fmt>","JSON|CSV|ZIP","JSON").option("--include-media","Include media files",false).option("--include-metadata","Include metadata",true).option("--from <iso>","Date range start").option("--to <iso>","Date range end").option("-f, --format-output <format>").action(async t=>{try{let e={name:t.name,entityTypes:t.types.split(","),format:(t.format??"JSON").toUpperCase(),includeMedia:!!t.includeMedia,includeMetadata:t.includeMetadata!==!1,dateRangeStart:t.from,dateRangeEnd:t.to},o=await b(O,{context:m(),input:e});h$1(`Export job created: ${o.createExportJob.id}`),g({format:t.formatOutput},o.createExportJob);}catch(e){f(e);}}),c.command("download").description("Download a completed export job to a local path").argument("<jobId>").requiredOption("--to <path>","Local file path to write").action(async(t,e)=>{try{let o=await b(x,{context:m(),id:t});if(!o.getExportJob)throw new o$1(`Export job ${t} not found`);let p=o.getExportJob.downloadUrl;if(!p)throw new o$1(`Job ${t} has no downloadUrl yet (status=${o.getExportJob.status??"UNKNOWN"}).`);j(`Downloading from ${p}`);let n=await fetch(p);if(!n.ok)throw new o$1(`Download failed: ${n.status} ${n.statusText}`);let g=Buffer.from(await n.arrayBuffer());await writeFile(e.to,g),h$1(`Saved ${g.length} bytes to ${e.to}`);}catch(o){f(o);}});let f$1=c.command("templates").description("Export templates");f$1.command("list").description("List export templates").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e=await b(h,{context:m(),pagination:{first:t.limit}});g(t,e.listExportTemplates.edges.map(o=>o.node));}catch(e){f(e);}}),f$1.command("get").description("Get an export template").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(P,{context:m(),id:t});if(!o.getExportTemplate)throw new o$1(`Template ${t} not found`);g(e,o.getExportTemplate);}catch(o){f(o);}});}var R={id:"export",version:"1.0.0",displayName:"Export",dependsOn:["auth","workspaces"],register(s,c){a(c),_(s);}},G=R;export{G as default};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var fs=require('fs'),path=require('path'),crypto=require('crypto');var u=class extends Error{exitCode;hint;constructor(n,a){super(n),this.name="CliUserError",this.exitCode=a?.exitCode??1,this.hint=a?.hint;}},f=class extends u{constructor(n,a){super(n,{exitCode:2,hint:a?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},p=class extends Error{cause;constructor(n,a){super(n),this.name="CliInternalError",this.cause=a;}};var C=null;function E(e){C=e;}function g(){if(!C)throw new p("vibecontrols module helpers used before setHelpersContext was called");return C}function B(){let e=g();if(!e.auth.isAuthenticated())throw new f(`Authentication required. Run \`${e.productName} auth login\`.`)}async function d(e,n){return B(),g().gql.workspace.request(e,n)}function m(e){let n=e instanceof Error?e.message:String(e);throw new u(n)}function h(e,n,a){g().output.formatAndOutput(e,n,a);}function w(e){g().output.printSuccess(e);}function x(e){g().output.printInfo(e);}function y(e,n){return g().output.truncate(e,n)}var v=`
|
|
2
|
+
query BrowseFolderRoot($pagination: PaginationInput) {
|
|
3
|
+
getFilesInFolder(pagination: $pagination) {
|
|
4
|
+
files { id name size mimeType extension createdAt }
|
|
5
|
+
total hasMore
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,A=`
|
|
9
|
+
query BrowseFolderById($folderId: ID!, $pagination: PaginationInput) {
|
|
10
|
+
getFolder(id: $folderId) {
|
|
11
|
+
id name path
|
|
12
|
+
}
|
|
13
|
+
getFilesInFolder(folderId: $folderId, pagination: $pagination) {
|
|
14
|
+
files { id name size mimeType extension createdAt }
|
|
15
|
+
total hasMore
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`,S=`
|
|
19
|
+
mutation InitiateUpload($input: InitiateUploadInput!) {
|
|
20
|
+
initiateUpload(input: $input) {
|
|
21
|
+
session { id fileName fileSize s3Bucket s3Key }
|
|
22
|
+
uploadUrl
|
|
23
|
+
presignedUrls { partNumber url expiresAt }
|
|
24
|
+
multipartUploadId
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
`,O=`
|
|
28
|
+
mutation CompleteUpload($input: CompleteUploadInput!) {
|
|
29
|
+
completeUpload(input: $input) {
|
|
30
|
+
file { id name size s3Bucket s3Key downloadUrl }
|
|
31
|
+
fileId
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`,R=`
|
|
35
|
+
mutation CreateShare($input: FileCreateShareInput!) {
|
|
36
|
+
createShare(input: $input) {
|
|
37
|
+
id token shareType accessLevel expiresAt requiresPassword
|
|
38
|
+
downloadCount maxDownloads createdAt
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
`,$=`
|
|
42
|
+
mutation RevokeShare($id: ID!) {
|
|
43
|
+
revokeShare(id: $id) {
|
|
44
|
+
id revokedAt revokedBy
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
`;function D(e){let n=e.command("files").description("Workspace file management");n.command("browse").description("Browse a folder (defaults to root)").argument("[folderId]").option("--limit <n>","Page size",r=>parseInt(r,10),100).option("-f, --format <format>").action(async(r,t)=>{try{let s={limit:t.limit,offset:0};if(r){let o=await d(A,{folderId:r,pagination:s});if(t.format){h(t,{folder:o.getFolder,files:o.getFilesInFolder.files});return}o.getFolder&&x(`Folder: ${o.getFolder.name}`);for(let c of o.getFilesInFolder.files){let k=c.size?`${c.size}b`:"-";console.log(` \u{1F4C4} ${y(c.id,12)} ${c.name} ${k} ${c.mimeType??"-"}`);}console.log(`
|
|
48
|
+
${o.getFilesInFolder.total} files`);return}let l=await d(v,{pagination:s});if(t.format){h(t,{files:l.getFilesInFolder.files});return}for(let o of l.getFilesInFolder.files){let c=o.size?`${o.size}b`:"-";console.log(` \u{1F4C4} ${y(o.id,12)} ${o.name} ${c} ${o.mimeType??"-"}`);}console.log(`
|
|
49
|
+
${l.getFilesInFolder.total} files`);}catch(s){m(s);}}),n.command("upload").description("Upload a local file (initiates a multipart session)").argument("<path>","Local file path").option("--folder <folderId>","Target folder id").option("--visibility <v>","PRIVATE|WORKSPACE|PUBLIC","WORKSPACE").option("-f, --format <format>").action(async(r,t)=>{try{let s=fs.statSync(r),l=path.basename(r),o=path.extname(r).slice(1)||void 0,c=fs.readFileSync(r),k=crypto.createHash("sha256").update(c).digest("hex"),L={fileName:l,fileSize:s.size,mimeType:"application/octet-stream",extension:o,folderId:t.folder,sha256Hash:k,visibility:(t.visibility??"WORKSPACE").toUpperCase()},b=await d(S,{input:L});x("Upload session created. PUT the local bytes to the returned URL(s)."),h(t,b.initiateUpload),x(`After uploading, complete with: vibecontrols files upload-complete --session ${b.initiateUpload.session.id}`);}catch(s){m(s);}}),n.command("upload-complete").description("Complete an in-flight upload session").requiredOption("--session <id>","Session id from `files upload`").option("--folder <folderId>").option("--description <s>").option("-f, --format <format>").action(async r=>{try{let t=await d(O,{input:{sessionId:r.session,folderId:r.folder,description:r.description}});w(`Upload complete: ${t.completeUpload.fileId}`),h(r,t.completeUpload.file);}catch(t){m(t);}});let a=n.command("share").description("Manage file shares");a.command("create").description("Create a share link for a file").argument("<fileId>").option("--access <a>","VIEW|DOWNLOAD","DOWNLOAD").option("--expires <iso>","Expiry timestamp").option("--password <p>").option("--max-downloads <n>","",r=>parseInt(r,10)).option("-f, --format <format>").action(async(r,t)=>{try{let s={fileId:r,shareType:"PUBLIC_LINK",accessLevel:(t.access??"DOWNLOAD").toUpperCase(),expiresAt:t.expires,password:t.password,maxDownloads:t.maxDownloads},l=await d(R,{input:s});w("Share created"),h(t,l.createShare);}catch(s){m(s);}}),a.command("revoke").description("Revoke a share by id").argument("<shareId>").action(async r=>{try{await d($,{id:r}),w("Share revoked");}catch(t){m(t);}});}var X={id:"files",version:"1.0.0",displayName:"Files",dependsOn:["auth","workspaces"],register(e,n){E(n),D(e);}},pt=X;module.exports=pt;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {a,b,g,j,o,f,h}from'../../chunk-KTKHJORN.js';import'../../chunk-RNWXATAC.js';import {statSync,readFileSync}from'fs';import {basename,extname}from'path';import {createHash}from'crypto';var E=`
|
|
2
|
+
query BrowseFolderRoot($pagination: PaginationInput) {
|
|
3
|
+
getFilesInFolder(pagination: $pagination) {
|
|
4
|
+
files { id name size mimeType extension createdAt }
|
|
5
|
+
total hasMore
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,C=`
|
|
9
|
+
query BrowseFolderById($folderId: ID!, $pagination: PaginationInput) {
|
|
10
|
+
getFolder(id: $folderId) {
|
|
11
|
+
id name path
|
|
12
|
+
}
|
|
13
|
+
getFilesInFolder(folderId: $folderId, pagination: $pagination) {
|
|
14
|
+
files { id name size mimeType extension createdAt }
|
|
15
|
+
total hasMore
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`,R=`
|
|
19
|
+
mutation InitiateUpload($input: InitiateUploadInput!) {
|
|
20
|
+
initiateUpload(input: $input) {
|
|
21
|
+
session { id fileName fileSize s3Bucket s3Key }
|
|
22
|
+
uploadUrl
|
|
23
|
+
presignedUrls { partNumber url expiresAt }
|
|
24
|
+
multipartUploadId
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
`,O=`
|
|
28
|
+
mutation CompleteUpload($input: CompleteUploadInput!) {
|
|
29
|
+
completeUpload(input: $input) {
|
|
30
|
+
file { id name size s3Bucket s3Key downloadUrl }
|
|
31
|
+
fileId
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`,U=`
|
|
35
|
+
mutation CreateShare($input: FileCreateShareInput!) {
|
|
36
|
+
createShare(input: $input) {
|
|
37
|
+
id token shareType accessLevel expiresAt requiresPassword
|
|
38
|
+
downloadCount maxDownloads createdAt
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
`,w=`
|
|
42
|
+
mutation RevokeShare($id: ID!) {
|
|
43
|
+
revokeShare(id: $id) {
|
|
44
|
+
id revokedAt revokedBy
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
`;function x(c){let a=c.command("files").description("Workspace file management");a.command("browse").description("Browse a folder (defaults to root)").argument("[folderId]").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let i={limit:e.limit,offset:0};if(t){let o$1=await b(C,{folderId:t,pagination:i});if(e.format){g(e,{folder:o$1.getFolder,files:o$1.getFilesInFolder.files});return}o$1.getFolder&&j(`Folder: ${o$1.getFolder.name}`);for(let n of o$1.getFilesInFolder.files){let f=n.size?`${n.size}b`:"-";console.log(` \u{1F4C4} ${o(n.id,12)} ${n.name} ${f} ${n.mimeType??"-"}`);}console.log(`
|
|
48
|
+
${o$1.getFilesInFolder.total} files`);return}let s=await b(E,{pagination:i});if(e.format){g(e,{files:s.getFilesInFolder.files});return}for(let o$1 of s.getFilesInFolder.files){let n=o$1.size?`${o$1.size}b`:"-";console.log(` \u{1F4C4} ${o(o$1.id,12)} ${o$1.name} ${n} ${o$1.mimeType??"-"}`);}console.log(`
|
|
49
|
+
${s.getFilesInFolder.total} files`);}catch(i){f(i);}}),a.command("upload").description("Upload a local file (initiates a multipart session)").argument("<path>","Local file path").option("--folder <folderId>","Target folder id").option("--visibility <v>","PRIVATE|WORKSPACE|PUBLIC","WORKSPACE").option("-f, --format <format>").action(async(t,e)=>{try{let i=statSync(t),s=basename(t),o=extname(t).slice(1)||void 0,n=readFileSync(t),f=createHash("sha256").update(n).digest("hex"),A={fileName:s,fileSize:i.size,mimeType:"application/octet-stream",extension:o,folderId:e.folder,sha256Hash:f,visibility:(e.visibility??"WORKSPACE").toUpperCase()},I=await b(R,{input:A});j("Upload session created. PUT the local bytes to the returned URL(s)."),g(e,I.initiateUpload),j(`After uploading, complete with: vibecontrols files upload-complete --session ${I.initiateUpload.session.id}`);}catch(i){f(i);}}),a.command("upload-complete").description("Complete an in-flight upload session").requiredOption("--session <id>","Session id from `files upload`").option("--folder <folderId>").option("--description <s>").option("-f, --format <format>").action(async t=>{try{let e=await b(O,{input:{sessionId:t.session,folderId:t.folder,description:t.description}});h(`Upload complete: ${e.completeUpload.fileId}`),g(t,e.completeUpload.file);}catch(e){f(e);}});let g$1=a.command("share").description("Manage file shares");g$1.command("create").description("Create a share link for a file").argument("<fileId>").option("--access <a>","VIEW|DOWNLOAD","DOWNLOAD").option("--expires <iso>","Expiry timestamp").option("--password <p>").option("--max-downloads <n>","",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let i={fileId:t,shareType:"PUBLIC_LINK",accessLevel:(e.access??"DOWNLOAD").toUpperCase(),expiresAt:e.expires,password:e.password,maxDownloads:e.maxDownloads},s=await b(U,{input:i});h("Share created"),g(e,s.createShare);}catch(i){f(i);}}),g$1.command("revoke").description("Revoke a share by id").argument("<shareId>").action(async t=>{try{await b(w,{id:t}),h("Share revoked");}catch(e){f(e);}});}var v={id:"files",version:"1.0.0",displayName:"Files",dependsOn:["auth","workspaces"],register(c,a$1){a(a$1),x(c);}},q=v;export{q as default};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(o,a){super(o),this.name="CliUserError",this.exitCode=a?.exitCode??1,this.hint=a?.hint;}},y=class extends p{constructor(o,a){super(o,{exitCode:2,hint:a?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},g=class extends Error{cause;constructor(o,a){super(o),this.name="CliInternalError",this.cause=a;}};var C=null;function k(n){C=n;}function f(){if(!C)throw new g("vibecontrols module helpers used before setHelpersContext was called");return C}function z(){let n=f();if(!n.auth.isAuthenticated())throw new y(`Authentication required. Run \`${n.productName} auth login\`.`)}async function u(n,o){return z(),f().gql.workspace.request(n,o)}function c(n){let o=n instanceof Error?n.message:String(n);throw new p(o)}function l(n,o,a){f().output.formatAndOutput(n,o,a);}function m(n){f().output.printSuccess(n);}function w(n){return f().output.formatStatus(n)}function T(n){return f().output.formatDate(n)}function h(n,o){return f().output.truncate(n,o)}var I=`
|
|
2
|
+
query ListGroups($filter: GroupFilter, $first: Int, $after: String, $sort: GroupSort) {
|
|
3
|
+
groups(filter: $filter, first: $first, after: $after, sort: $sort) {
|
|
4
|
+
edges { node { id name groupType visibility status memberCount createdAt } }
|
|
5
|
+
pageInfo { hasNextPage endCursor }
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,E=`
|
|
9
|
+
query GetGroup($id: ID!) {
|
|
10
|
+
group(id: $id) {
|
|
11
|
+
id name description groupType visibility status scope membershipType memberCount createdAt updatedAt
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
`,A=`
|
|
15
|
+
mutation CreateGroup($input: CreateGroupInput!) {
|
|
16
|
+
createGroup(input: $input) {
|
|
17
|
+
id name groupType visibility status
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`,v=`
|
|
21
|
+
mutation UpdateGroup($id: ID!, $input: UpdateGroupInput!) {
|
|
22
|
+
updateGroup(id: $id, input: $input) {
|
|
23
|
+
id name description visibility status updatedAt
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`,S=`
|
|
27
|
+
mutation DeleteGroup($id: ID!) {
|
|
28
|
+
deleteGroup(id: $id)
|
|
29
|
+
}
|
|
30
|
+
`,R=`
|
|
31
|
+
mutation ArchiveGroup($id: ID!) {
|
|
32
|
+
archiveGroup(id: $id) { id status }
|
|
33
|
+
}
|
|
34
|
+
`,O=`
|
|
35
|
+
query ListGroupMembers($groupId: ID!, $first: Int, $after: String) {
|
|
36
|
+
groupMembers(groupId: $groupId, first: $first, after: $after) {
|
|
37
|
+
edges { node { id entityId entityType role invitationStatus joinedAt } }
|
|
38
|
+
pageInfo { hasNextPage endCursor }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
`,G=`
|
|
42
|
+
mutation AddGroupMembers($groupId: ID!, $members: [AddMemberInput!]!) {
|
|
43
|
+
addGroupMembers(groupId: $groupId, members: $members) {
|
|
44
|
+
added { id entityId entityType role invitationStatus }
|
|
45
|
+
skipped
|
|
46
|
+
failed
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`,$=`
|
|
50
|
+
mutation RemoveGroupMembers($groupId: ID!, $membershipIds: [ID!]!) {
|
|
51
|
+
removeGroupMembers(groupId: $groupId, membershipIds: $membershipIds) {
|
|
52
|
+
removed
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
`,P=`
|
|
56
|
+
query GroupAuditLogs($groupId: ID!, $first: Int, $after: String) {
|
|
57
|
+
groupAuditLogs(groupId: $groupId, first: $first, after: $after) {
|
|
58
|
+
id action actorId summary createdAt
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`,D=`
|
|
62
|
+
query EntityGroups($entityId: ID!, $entityType: GroupEntityType!, $first: Int) {
|
|
63
|
+
entityGroups(entityId: $entityId, entityType: $entityType, first: $first) {
|
|
64
|
+
edges { node { id name groupType visibility memberCount } }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
`;function L(n){let o=n.command("groups").description("Group management");o.command("list").description("List groups").option("--type <t>","Filter by groupType").option("--status <s>","Filter by status").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t={};e.type&&(t.groupType=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase());let d=(await u(I,{filter:Object.keys(t).length?t:void 0,first:e.limit})).groups.edges.map(i=>i.node);l(e,d,{headers:["ID","Name","Type","Visibility","Status","Members"],rows:d.map(i=>[h(i.id,12),i.name,i.groupType??"-",i.visibility??"-",w(i.status),String(i.memberCount??0)])});}catch(t){c(t);}}),o.command("get").description("Get a group by id").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(E,{id:e});if(!r.group)throw new p(`Group ${e} not found`);l(t,r.group);}catch(r){c(r);}}),o.command("create").description("Create a group").requiredOption("--name <name>").option("--description <s>").option("--type <t>","AUDIENCE|BETA_PROGRAM|CHANNEL_GROUP|CUSTOM|DYNAMIC_AUDIENCE|FEATURE_FLAG_GROUP|PROJECT_GROUP|RESOURCE_COLLECTION|SECURITY_GROUP|TEAM","TEAM").option("--visibility <v>","PUBLIC|PRIVATE|HIDDEN","PRIVATE").option("--scope <s>","WORKSPACE|ORGANIZATION","WORKSPACE").option("--membership <m>","STATIC|DYNAMIC|HYBRID","STATIC").option("-f, --format <format>").action(async e=>{try{let t={name:e.name,description:e.description,groupType:(e.type??"TEAM").toUpperCase(),visibility:(e.visibility??"PRIVATE").toUpperCase(),scope:(e.scope??"WORKSPACE").toUpperCase(),membershipType:(e.membership??"STATIC").toUpperCase()},r=await u(A,{input:t});m(`Group created: ${r.createGroup.name}`),l(e,r.createGroup);}catch(t){c(t);}}),o.command("update").description("Update a group").argument("<id>").option("--name <s>").option("--description <s>").option("--visibility <v>").option("--status <s>").option("-f, --format <format>").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.description!==void 0&&(r.description=t.description),t.visibility&&(r.visibility=t.visibility.toUpperCase()),t.status&&(r.status=t.status.toUpperCase()),!Object.keys(r).length)throw new p("No updates specified");let d=await u(v,{id:e,input:r});m("Group updated"),l(t,d.updateGroup);}catch(r){c(r);}}),o.command("delete").description("Delete a group (use --archive for soft delete)").argument("<id>").option("--archive","Archive instead of hard delete",false).action(async(e,t)=>{try{t.archive?(await u(R,{id:e}),m("Group archived")):(await u(S,{id:e}),m("Group deleted"));}catch(r){c(r);}});let a=o.command("members").description("Group membership");a.command("list").description("List members of a group").argument("<groupId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let d=(await u(O,{groupId:e,first:t.limit})).groupMembers.edges.map(i=>i.node);l(t,d,{headers:["MembershipID","Entity","Type","Role","Status","Joined"],rows:d.map(i=>[h(i.id,12),h(i.entityId,12),i.entityType??"-",i.role??"-",w(i.invitationStatus),T(i.joinedAt)])});}catch(r){c(r);}}),a.command("add").description("Add a member to a group").requiredOption("--group <id>").requiredOption("--entity <id>").option("--entity-type <t>","USER|GROUP|BOT|INTEGRATION","USER").option("--role <r>","MEMBER|OWNER|ADMIN","MEMBER").option("-f, --format <format>").action(async e=>{try{let t={entityId:e.entity,entityType:(e.entityType??"USER").toUpperCase(),role:(e.role??"MEMBER").toUpperCase()},r=await u(G,{groupId:e.group,members:[t]});m(`Added ${r.addGroupMembers.added} member(s)`),l(e,r.addGroupMembers.memberships);}catch(t){c(t);}}),a.command("remove").description("Remove members by membership id").requiredOption("--group <id>").requiredOption("--membership <ids>","Comma-separated membership ids").action(async e=>{try{let t=e.membership.split(",").filter(Boolean);await u($,{groupId:e.group,membershipIds:t}),m(`Removed ${t.length} membership(s)`);}catch(t){c(t);}}),o.command("hierarchy").description("Show entity-group hierarchy for a user/entity").argument("<entityId>").option("--type <t>","USER|GROUP","USER").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(D,{entityId:e,entityType:(t.type??"USER").toUpperCase(),first:t.limit});l(t,r.entityGroups.edges.map(d=>d.node));}catch(r){c(r);}}),o.command("activity").description("Audit log for a group").argument("<groupId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(P,{groupId:e,first:t.limit});l(t,r.groupAuditLogs);}catch(r){c(r);}});}var J={id:"groups",version:"1.0.0",displayName:"Groups",dependsOn:["auth","workspaces"],register(n,o){k(o),L(n);}},it=J;module.exports=it;
|