@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.
Files changed (107) hide show
  1. package/README.md +60 -0
  2. package/dist/chunk-KTKHJORN.js +1 -0
  3. package/dist/chunk-MRONTCXQ.js +879 -0
  4. package/dist/chunk-RNWXATAC.js +32 -0
  5. package/dist/core/index.cjs +32 -0
  6. package/dist/core/index.d.cts +57 -0
  7. package/dist/core/index.d.ts +57 -0
  8. package/dist/core/index.js +1 -0
  9. package/dist/index.cjs +32 -0
  10. package/dist/index.d.cts +4 -0
  11. package/dist/index.d.ts +4 -0
  12. package/dist/index.js +1 -0
  13. package/dist/module-Bv5zhYt2.d.cts +166 -0
  14. package/dist/module-Bv5zhYt2.d.ts +166 -0
  15. package/dist/modules/auth/index.cjs +183 -0
  16. package/dist/modules/auth/index.d.cts +7 -0
  17. package/dist/modules/auth/index.d.ts +7 -0
  18. package/dist/modules/auth/index.js +160 -0
  19. package/dist/modules/billing/index.cjs +105 -0
  20. package/dist/modules/billing/index.d.cts +7 -0
  21. package/dist/modules/billing/index.d.ts +7 -0
  22. package/dist/modules/billing/index.js +105 -0
  23. package/dist/modules/channels/index.cjs +70 -0
  24. package/dist/modules/channels/index.d.cts +7 -0
  25. package/dist/modules/channels/index.d.ts +7 -0
  26. package/dist/modules/channels/index.js +70 -0
  27. package/dist/modules/conversations/index.cjs +37 -0
  28. package/dist/modules/conversations/index.d.cts +7 -0
  29. package/dist/modules/conversations/index.d.ts +7 -0
  30. package/dist/modules/conversations/index.js +37 -0
  31. package/dist/modules/devportal/index.cjs +133 -0
  32. package/dist/modules/devportal/index.d.cts +7 -0
  33. package/dist/modules/devportal/index.d.ts +7 -0
  34. package/dist/modules/devportal/index.js +133 -0
  35. package/dist/modules/export/index.cjs +37 -0
  36. package/dist/modules/export/index.d.cts +7 -0
  37. package/dist/modules/export/index.d.ts +7 -0
  38. package/dist/modules/export/index.js +37 -0
  39. package/dist/modules/files/index.cjs +49 -0
  40. package/dist/modules/files/index.d.cts +7 -0
  41. package/dist/modules/files/index.d.ts +7 -0
  42. package/dist/modules/files/index.js +49 -0
  43. package/dist/modules/groups/index.cjs +67 -0
  44. package/dist/modules/groups/index.d.cts +7 -0
  45. package/dist/modules/groups/index.d.ts +7 -0
  46. package/dist/modules/groups/index.js +67 -0
  47. package/dist/modules/health/index.cjs +1 -0
  48. package/dist/modules/health/index.d.cts +7 -0
  49. package/dist/modules/health/index.d.ts +7 -0
  50. package/dist/modules/health/index.js +1 -0
  51. package/dist/modules/integrations/index.cjs +44 -0
  52. package/dist/modules/integrations/index.d.cts +7 -0
  53. package/dist/modules/integrations/index.d.ts +7 -0
  54. package/dist/modules/integrations/index.js +44 -0
  55. package/dist/modules/notifications/index.cjs +26 -0
  56. package/dist/modules/notifications/index.d.cts +7 -0
  57. package/dist/modules/notifications/index.d.ts +7 -0
  58. package/dist/modules/notifications/index.js +26 -0
  59. package/dist/modules/organizations/index.cjs +53 -0
  60. package/dist/modules/organizations/index.d.cts +7 -0
  61. package/dist/modules/organizations/index.d.ts +7 -0
  62. package/dist/modules/organizations/index.js +53 -0
  63. package/dist/modules/products/index.cjs +102 -0
  64. package/dist/modules/products/index.d.cts +7 -0
  65. package/dist/modules/products/index.d.ts +7 -0
  66. package/dist/modules/products/index.js +102 -0
  67. package/dist/modules/rbac/index.cjs +63 -0
  68. package/dist/modules/rbac/index.d.cts +7 -0
  69. package/dist/modules/rbac/index.d.ts +7 -0
  70. package/dist/modules/rbac/index.js +63 -0
  71. package/dist/modules/sandbox/index.cjs +33 -0
  72. package/dist/modules/sandbox/index.d.cts +7 -0
  73. package/dist/modules/sandbox/index.d.ts +7 -0
  74. package/dist/modules/sandbox/index.js +1 -0
  75. package/dist/modules/scheduler/index.cjs +32 -0
  76. package/dist/modules/scheduler/index.d.cts +7 -0
  77. package/dist/modules/scheduler/index.d.ts +7 -0
  78. package/dist/modules/scheduler/index.js +32 -0
  79. package/dist/modules/security/index.cjs +69 -0
  80. package/dist/modules/security/index.d.cts +7 -0
  81. package/dist/modules/security/index.d.ts +7 -0
  82. package/dist/modules/security/index.js +69 -0
  83. package/dist/modules/store/index.cjs +63 -0
  84. package/dist/modules/store/index.d.cts +7 -0
  85. package/dist/modules/store/index.d.ts +7 -0
  86. package/dist/modules/store/index.js +63 -0
  87. package/dist/modules/support/index.cjs +45 -0
  88. package/dist/modules/support/index.d.cts +7 -0
  89. package/dist/modules/support/index.d.ts +7 -0
  90. package/dist/modules/support/index.js +45 -0
  91. package/dist/modules/tags/index.cjs +54 -0
  92. package/dist/modules/tags/index.d.cts +7 -0
  93. package/dist/modules/tags/index.d.ts +7 -0
  94. package/dist/modules/tags/index.js +54 -0
  95. package/dist/modules/tours/index.cjs +48 -0
  96. package/dist/modules/tours/index.d.cts +7 -0
  97. package/dist/modules/tours/index.d.ts +7 -0
  98. package/dist/modules/tours/index.js +48 -0
  99. package/dist/modules/vibecontrols/index.cjs +844 -0
  100. package/dist/modules/vibecontrols/index.d.cts +7 -0
  101. package/dist/modules/vibecontrols/index.d.ts +7 -0
  102. package/dist/modules/vibecontrols/index.js +2 -0
  103. package/dist/modules/workspaces/index.cjs +90 -0
  104. package/dist/modules/workspaces/index.d.cts +7 -0
  105. package/dist/modules/workspaces/index.d.ts +7 -0
  106. package/dist/modules/workspaces/index.js +77 -0
  107. 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,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const devportalModule: CliModule;
6
+
7
+ export { devportalModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const devportalModule: CliModule;
6
+
7
+ export { devportalModule as default };
@@ -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,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const exportModule: CliModule;
6
+
7
+ export { exportModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const exportModule: CliModule;
6
+
7
+ export { exportModule as default };
@@ -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,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const filesModule: CliModule;
6
+
7
+ export { filesModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const filesModule: CliModule;
6
+
7
+ export { filesModule as default };
@@ -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;
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const groupsModule: CliModule;
6
+
7
+ export { groupsModule as default };