@burdenoff/cli-sdk 2026.529.1 → 2026.627.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 (41) hide show
  1. package/dist/chunk-WXDQ3S5J.js +1 -0
  2. package/dist/modules/auth/index.js +4 -4
  3. package/dist/modules/billing/index.js +2 -2
  4. package/dist/modules/channels/index.js +2 -2
  5. package/dist/modules/conversations/index.js +2 -2
  6. package/dist/modules/crewfoundry/index.cjs +196 -0
  7. package/dist/modules/crewfoundry/index.d.cts +7 -0
  8. package/dist/modules/crewfoundry/index.d.ts +7 -0
  9. package/dist/modules/crewfoundry/index.js +196 -0
  10. package/dist/modules/devportal/index.js +2 -2
  11. package/dist/modules/export/index.js +2 -2
  12. package/dist/modules/files/index.js +4 -4
  13. package/dist/modules/ggnomad/index.cjs +140 -0
  14. package/dist/modules/ggnomad/index.d.cts +7 -0
  15. package/dist/modules/ggnomad/index.d.ts +7 -0
  16. package/dist/modules/ggnomad/index.js +140 -0
  17. package/dist/modules/groups/index.js +2 -2
  18. package/dist/modules/housingvista/index.cjs +137 -0
  19. package/dist/modules/housingvista/index.d.cts +7 -0
  20. package/dist/modules/housingvista/index.d.ts +7 -0
  21. package/dist/modules/housingvista/index.js +137 -0
  22. package/dist/modules/integrations/index.js +2 -2
  23. package/dist/modules/kadaikodi/index.cjs +226 -0
  24. package/dist/modules/kadaikodi/index.d.cts +7 -0
  25. package/dist/modules/kadaikodi/index.d.ts +7 -0
  26. package/dist/modules/kadaikodi/index.js +226 -0
  27. package/dist/modules/notifications/index.js +2 -2
  28. package/dist/modules/organizations/index.js +2 -2
  29. package/dist/modules/products/index.js +2 -2
  30. package/dist/modules/rbac/index.js +2 -2
  31. package/dist/modules/sandbox/index.js +1 -1
  32. package/dist/modules/scheduler/index.js +2 -2
  33. package/dist/modules/security/index.js +2 -2
  34. package/dist/modules/store/index.js +2 -2
  35. package/dist/modules/support/index.js +2 -2
  36. package/dist/modules/tags/index.js +2 -2
  37. package/dist/modules/tours/index.js +2 -2
  38. package/dist/modules/vibecontrols/index.js +4 -4
  39. package/dist/modules/workspaces/index.js +2 -2
  40. package/package.json +1 -1
  41. package/dist/chunk-LZQBJDKZ.js +0 -1
@@ -0,0 +1,196 @@
1
+ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-WXDQ3S5J.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var S=`
2
+ id firstName lastName email phone position department location type status
3
+ salary performanceScore managerId avatar startDate workspaceId
4
+ `,R=`
5
+ id firstName lastName email phone position experience currentCompany skills
6
+ source status rating resumeUrl notes appliedDate workspaceId
7
+ `,N=`
8
+ id title department description type experienceLevel location requirements
9
+ benefits salaryMin salaryMax applicants status postedDate deadline workspaceId
10
+ `,L=`
11
+ id employeeId employeeName department type reason startDate endDate days
12
+ status approverName workspaceId
13
+ `,v=`
14
+ id title content author authorRole category priority isPinned tags viewCount
15
+ createdAt workspaceId
16
+ `,q=`
17
+ id title message type category read actionUrl createdAt workspaceId
18
+ `,$=`
19
+ id name contactPerson email phone industry status projects revenue since workspaceId
20
+ `,x=`
21
+ id title description category level instructor duration modules enrolled
22
+ completed rating skills status thumbnail workspaceId
23
+ `,M=`
24
+ id name headId headName employeeCount budget location status workspaceId
25
+ `,B=`
26
+ id candidateId candidateName position type interviewerName date time status
27
+ rating feedback workspaceId
28
+ `,U=`
29
+ id number clientName amount status issueDate dueDate items workspaceId
30
+ `,F=`
31
+ id title description level duration courses enrolled completionRate workspaceId
32
+ `,W=`
33
+ id title description category provider price priceType deliveryTime rating
34
+ reviews skills status workspaceId
35
+ `,j=`
36
+ id employeeId employeeName department period grossPay deductions netPay
37
+ status paymentMethod payDate workspaceId
38
+ `,J=`
39
+ id name description status priority progress budget spent startDate endDate
40
+ managerId managerName teamId teamName tasks completedTasks workspaceId
41
+ `,V=`
42
+ id name description department leadId leadName memberCount members
43
+ projectCount status createdAt workspaceId
44
+ `,G=`
45
+ id employeeId employeeName date clockIn clockOut totalHours overtime project
46
+ status workspaceId
47
+ `,Y=`
48
+ id name category contactPerson email phone contractValue rating status workspaceId
49
+ `,h=`
50
+ query CrewfoundryBootstrap {
51
+ crewfoundryBootstrap {
52
+ employees { ${S} }
53
+ candidates { ${R} }
54
+ jobPostings { ${N} }
55
+ leaveRequests { ${L} }
56
+ announcements { ${v} }
57
+ notifications { ${q} }
58
+ clients { ${$} }
59
+ courses { ${x} }
60
+ departments { ${M} }
61
+ interviews { ${B} }
62
+ invoices { ${U} }
63
+ learningPaths { ${F} }
64
+ marketplaceServices { ${W} }
65
+ payrollRecords { ${j} }
66
+ projects { ${J} }
67
+ teams { ${V} }
68
+ timeEntries { ${G} }
69
+ vendors { ${Y} }
70
+ }
71
+ }
72
+ `,D=`
73
+ query CrewfoundryListEmployees {
74
+ crewfoundryBootstrap { employees { ${S} } }
75
+ }
76
+ `,T=`
77
+ query CrewfoundryListCandidates {
78
+ crewfoundryBootstrap { candidates { ${R} } }
79
+ }
80
+ `,_=`
81
+ query CrewfoundryListJobPostings {
82
+ crewfoundryBootstrap { jobPostings { ${N} } }
83
+ }
84
+ `,A=`
85
+ query CrewfoundryListLeaveRequests {
86
+ crewfoundryBootstrap { leaveRequests { ${L} } }
87
+ }
88
+ `,b=`
89
+ query CrewfoundryListAnnouncements {
90
+ crewfoundryBootstrap { announcements { ${v} } }
91
+ }
92
+ `,H=`
93
+ query CrewfoundryListNotifications {
94
+ crewfoundryBootstrap { notifications { ${q} } }
95
+ }
96
+ `,K=`
97
+ query CrewfoundryListClients {
98
+ crewfoundryBootstrap { clients { ${$} } }
99
+ }
100
+ `,Q=`
101
+ query CrewfoundryListCourses {
102
+ crewfoundryBootstrap { courses { ${x} } }
103
+ }
104
+ `,z=`
105
+ query CrewfoundryListDepartments {
106
+ crewfoundryBootstrap { departments { ${M} } }
107
+ }
108
+ `,X=`
109
+ query CrewfoundryListInterviews {
110
+ crewfoundryBootstrap { interviews { ${B} } }
111
+ }
112
+ `,Z=`
113
+ query CrewfoundryListInvoices {
114
+ crewfoundryBootstrap { invoices { ${U} } }
115
+ }
116
+ `,tt=`
117
+ query CrewfoundryListLearningPaths {
118
+ crewfoundryBootstrap { learningPaths { ${F} } }
119
+ }
120
+ `,et=`
121
+ query CrewfoundryListMarketplaceServices {
122
+ crewfoundryBootstrap { marketplaceServices { ${W} } }
123
+ }
124
+ `,nt=`
125
+ query CrewfoundryListPayrollRecords {
126
+ crewfoundryBootstrap { payrollRecords { ${j} } }
127
+ }
128
+ `,rt=`
129
+ query CrewfoundryListProjects {
130
+ crewfoundryBootstrap { projects { ${J} } }
131
+ }
132
+ `,ot=`
133
+ query CrewfoundryListTeams {
134
+ crewfoundryBootstrap { teams { ${V} } }
135
+ }
136
+ `,at=`
137
+ query CrewfoundryListTimeEntries {
138
+ crewfoundryBootstrap { timeEntries { ${G} } }
139
+ }
140
+ `,it=`
141
+ query CrewfoundryListVendors {
142
+ crewfoundryBootstrap { vendors { ${Y} } }
143
+ }
144
+ `,st=`
145
+ mutation CrewfoundryCreateEmployee($input: CreateCrewEmployeeInput!) {
146
+ createCrewEmployee(input: $input) { ${S} }
147
+ }
148
+ `,pt=`
149
+ mutation CrewfoundryUpdateEmployee($id: ID!, $input: UpdateCrewEmployeeInput!) {
150
+ updateCrewEmployee(id: $id, input: $input) { ${S} }
151
+ }
152
+ `,mt=`
153
+ mutation CrewfoundryRemoveEmployee($id: ID!) {
154
+ removeCrewEmployee(id: $id)
155
+ }
156
+ `,dt=`
157
+ mutation CrewfoundryCreateCandidate($input: CreateCrewCandidateInput!) {
158
+ createCrewCandidate(input: $input) { ${R} }
159
+ }
160
+ `,ct=`
161
+ mutation CrewfoundryUpdateCandidate($id: ID!, $input: UpdateCrewCandidateInput!) {
162
+ updateCrewCandidate(id: $id, input: $input) { ${R} }
163
+ }
164
+ `,ut=`
165
+ mutation CrewfoundryCreateJobPosting($input: CreateCrewJobPostingInput!) {
166
+ createCrewJobPosting(input: $input) { ${N} }
167
+ }
168
+ `,lt=`
169
+ mutation CrewfoundryUpdateJobPosting($id: ID!, $input: UpdateCrewJobPostingInput!) {
170
+ updateCrewJobPosting(id: $id, input: $input) { ${N} }
171
+ }
172
+ `,ft=`
173
+ mutation CrewfoundryCreateLeaveRequest($input: CreateCrewLeaveRequestInput!) {
174
+ createCrewLeaveRequest(input: $input) { ${L} }
175
+ }
176
+ `,yt=`
177
+ mutation CrewfoundryUpdateLeaveRequest($id: ID!, $input: UpdateCrewLeaveRequestInput!) {
178
+ updateCrewLeaveRequest(id: $id, input: $input) { ${L} }
179
+ }
180
+ `,gt=`
181
+ mutation CrewfoundryCreateAnnouncement($input: CreateCrewAnnouncementInput!) {
182
+ createCrewAnnouncement(input: $input) { ${v} }
183
+ }
184
+ `,wt=`
185
+ mutation CrewfoundryMarkNotificationRead($id: ID!) {
186
+ markCrewNotificationRead(id: $id)
187
+ }
188
+ `,Ct=`
189
+ mutation CrewfoundryMarkAllNotificationsRead {
190
+ markAllCrewNotificationsRead
191
+ }
192
+ `,Et=`
193
+ query CrewfoundryHealth {
194
+ _empty
195
+ }
196
+ `;function y(m){let a=Number.parseInt(m,10);if(Number.isNaN(a))throw new o$1(`Expected an integer but got "${m}"`);return a}function f(m){let a=Number.parseFloat(m);if(Number.isNaN(a))throw new o$1(`Expected a number but got "${m}"`);return a}function C(m){return m.split(",").map(a=>a.trim()).filter(a=>a.length>0)}function It(m){let a=m.command("employees").description("Crewfoundry employees");a.command("list").description("List employees").option("--department <d>","Filter by department").option("--status <s>","Filter by status").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await b$1(D)).crewfoundryBootstrap.employees;n.department&&(t=t.filter(r=>r.department===n.department)),n.status&&(t=t.filter(r=>r.status===n.status)),h$1(n,t,{headers:["ID","Name","Email","Department","Position","Status"],rows:t.map(r=>[p(r.id,12),`${r.firstName} ${r.lastName}`,r.email,r.department,r.position,r.status])});}catch(e){g(e);}}),a.command("get").description("Get an employee by id").argument("<id>","Employee ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let r=(await b$1(D)).crewfoundryBootstrap.employees.find(l=>l.id===n);if(!r)throw new o$1(`Employee ${n} not found`);h$1(e,r);}catch(t){g(t);}}),a.command("create").description("Create an employee").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").requiredOption("--email <s>","Email").requiredOption("--phone <s>","Phone").requiredOption("--position <s>","Position").requiredOption("--department <s>","Department").requiredOption("--location <s>","Location").requiredOption("--salary <n>","Salary",f).option("--type <s>","Employment type (e.g. full-time)","full-time").option("--status <s>","Status","active").option("--performance-score <n>","Performance score",f,0).option("--manager-id <id>","Manager ID").option("--avatar <url>","Avatar URL").option("--start-date <iso>","Start date (ISO)").option("-f, --format <format>","Output format").action(async n=>{try{let e={firstName:n.firstName,lastName:n.lastName,email:n.email,phone:n.phone,position:n.position,department:n.department,location:n.location,salary:n.salary,type:n.type??"full-time",status:n.status??"active",performanceScore:n.performanceScore??0,startDate:n.startDate??new Date().toISOString()};n.managerId&&(e.managerId=n.managerId),n.avatar&&(e.avatar=n.avatar);let t=await b$1(st,{input:e});i(`Employee created: ${t.createCrewEmployee.firstName} ${t.createCrewEmployee.lastName}`),h$1(n,t.createCrewEmployee);}catch(e){g(e);}}),a.command("update").description("Update an employee").argument("<id>","Employee ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <s>","Email").option("--phone <s>","Phone").option("--position <s>","Position").option("--department <s>","Department").option("--location <s>","Location").option("--salary <n>","Salary",f).option("--type <s>","Employment type").option("--status <s>","Status").option("--performance-score <n>","Performance score",f).option("--manager-id <id>","Manager ID").option("--avatar <url>","Avatar URL").option("--start-date <iso>","Start date (ISO)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email&&(t.email=e.email),e.phone&&(t.phone=e.phone),e.position&&(t.position=e.position),e.department&&(t.department=e.department),e.location&&(t.location=e.location),e.salary!==void 0&&(t.salary=e.salary),e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.performanceScore!==void 0&&(t.performanceScore=e.performanceScore),e.managerId&&(t.managerId=e.managerId),e.avatar&&(t.avatar=e.avatar),e.startDate&&(t.startDate=e.startDate),!Object.keys(t).length)throw new o$1("No updates specified");let r=await b$1(pt,{id:n,input:t});i("Employee updated"),h$1(e,r.updateCrewEmployee);}catch(t){g(t);}}),a.command("remove").description("Remove an employee").argument("<id>","Employee ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await b$1(mt,{id:n});if(!t.removeCrewEmployee)throw new o$1(`Employee ${n} could not be removed`);i(`Employee ${n} removed`),h$1(e,{removed:t.removeCrewEmployee});}catch(t){g(t);}});}function St(m){let a=m.command("candidates").description("Crewfoundry recruiting candidates");a.command("list").description("List candidates").option("--status <s>","Filter by status").option("--position <p>","Filter by position").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await b$1(T)).crewfoundryBootstrap.candidates;n.status&&(t=t.filter(r=>r.status===n.status)),n.position&&(t=t.filter(r=>r.position===n.position)),h$1(n,t,{headers:["ID","Name","Position","Source","Status","Rating"],rows:t.map(r=>[p(r.id,12),`${r.firstName} ${r.lastName}`,r.position,r.source,r.status,String(r.rating)])});}catch(e){g(e);}}),a.command("get").description("Get a candidate by id").argument("<id>","Candidate ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let r=(await b$1(T)).crewfoundryBootstrap.candidates.find(l=>l.id===n);if(!r)throw new o$1(`Candidate ${n} not found`);h$1(e,r);}catch(t){g(t);}}),a.command("create").description("Create a candidate").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").requiredOption("--email <s>","Email").requiredOption("--phone <s>","Phone").requiredOption("--position <s>","Position").requiredOption("--source <s>","Source").option("--experience <n>","Years of experience",y,0).option("--rating <n>","Rating",f,0).option("--status <s>","Status","new").option("--current-company <s>","Current company").option("--skills <csv>","Comma-separated skills").option("--resume-url <url>","Resume URL").option("--notes <s>","Notes").option("--applied-date <iso>","Applied date (ISO)").option("-f, --format <format>","Output format").action(async n=>{try{let e={firstName:n.firstName,lastName:n.lastName,email:n.email,phone:n.phone,position:n.position,source:n.source,experience:n.experience??0,rating:n.rating??0,status:n.status??"new",skills:n.skills?C(n.skills):[],appliedDate:n.appliedDate??new Date().toISOString()};n.currentCompany&&(e.currentCompany=n.currentCompany),n.resumeUrl&&(e.resumeUrl=n.resumeUrl),n.notes&&(e.notes=n.notes);let t=await b$1(dt,{input:e});i(`Candidate created: ${t.createCrewCandidate.firstName} ${t.createCrewCandidate.lastName}`),h$1(n,t.createCrewCandidate);}catch(e){g(e);}}),a.command("update").description("Update a candidate").argument("<id>","Candidate ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <s>","Email").option("--phone <s>","Phone").option("--position <s>","Position").option("--source <s>","Source").option("--experience <n>","Years of experience",y).option("--rating <n>","Rating",f).option("--status <s>","Status").option("--current-company <s>","Current company").option("--skills <csv>","Comma-separated skills").option("--resume-url <url>","Resume URL").option("--notes <s>","Notes").option("--applied-date <iso>","Applied date (ISO)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email&&(t.email=e.email),e.phone&&(t.phone=e.phone),e.position&&(t.position=e.position),e.source&&(t.source=e.source),e.experience!==void 0&&(t.experience=e.experience),e.rating!==void 0&&(t.rating=e.rating),e.status&&(t.status=e.status),e.currentCompany&&(t.currentCompany=e.currentCompany),e.skills&&(t.skills=C(e.skills)),e.resumeUrl&&(t.resumeUrl=e.resumeUrl),e.notes&&(t.notes=e.notes),e.appliedDate&&(t.appliedDate=e.appliedDate),!Object.keys(t).length)throw new o$1("No updates specified");let r=await b$1(ct,{id:n,input:t});i("Candidate updated"),h$1(e,r.updateCrewCandidate);}catch(t){g(t);}});}function Rt(m){let a=m.command("job-postings").description("Crewfoundry job postings");a.command("list").description("List job postings").option("--department <d>","Filter by department").option("--status <s>","Filter by status").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await b$1(_)).crewfoundryBootstrap.jobPostings;n.department&&(t=t.filter(r=>r.department===n.department)),n.status&&(t=t.filter(r=>r.status===n.status)),h$1(n,t,{headers:["ID","Title","Department","Type","Applicants","Status"],rows:t.map(r=>[p(r.id,12),r.title,r.department,r.type,String(r.applicants),r.status])});}catch(e){g(e);}}),a.command("get").description("Get a job posting by id").argument("<id>","Job posting ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let r=(await b$1(_)).crewfoundryBootstrap.jobPostings.find(l=>l.id===n);if(!r)throw new o$1(`Job posting ${n} not found`);h$1(e,r);}catch(t){g(t);}}),a.command("create").description("Create a job posting").requiredOption("--title <s>","Title").requiredOption("--department <s>","Department").requiredOption("--description <s>","Description").requiredOption("--experience-level <s>","Experience level").requiredOption("--location <s>","Location").requiredOption("--type <s>","Employment type (e.g. full-time)").option("--applicants <n>","Applicant count",y,0).option("--salary-min <n>","Minimum salary",f,0).option("--salary-max <n>","Maximum salary",f,0).option("--status <s>","Status","open").option("--requirements <csv>","Comma-separated requirements").option("--benefits <csv>","Comma-separated benefits").option("--posted-date <iso>","Posted date (ISO)").option("--deadline <iso>","Deadline (ISO)").option("-f, --format <format>","Output format").action(async n=>{try{let e={title:n.title,department:n.department,description:n.description,experienceLevel:n.experienceLevel,location:n.location,type:n.type,applicants:n.applicants??0,salaryMin:n.salaryMin??0,salaryMax:n.salaryMax??0,status:n.status??"open",requirements:n.requirements?C(n.requirements):[],benefits:n.benefits?C(n.benefits):[],postedDate:n.postedDate??new Date().toISOString()};n.deadline&&(e.deadline=n.deadline);let t=await b$1(ut,{input:e});i(`Job posting created: ${t.createCrewJobPosting.title}`),h$1(n,t.createCrewJobPosting);}catch(e){g(e);}}),a.command("update").description("Update a job posting").argument("<id>","Job posting ID").option("--title <s>","Title").option("--department <s>","Department").option("--description <s>","Description").option("--experience-level <s>","Experience level").option("--location <s>","Location").option("--type <s>","Employment type").option("--applicants <n>","Applicant count",y).option("--salary-min <n>","Minimum salary",f).option("--salary-max <n>","Maximum salary",f).option("--status <s>","Status").option("--requirements <csv>","Comma-separated requirements").option("--benefits <csv>","Comma-separated benefits").option("--posted-date <iso>","Posted date (ISO)").option("--deadline <iso>","Deadline (ISO)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.title&&(t.title=e.title),e.department&&(t.department=e.department),e.description&&(t.description=e.description),e.experienceLevel&&(t.experienceLevel=e.experienceLevel),e.location&&(t.location=e.location),e.type&&(t.type=e.type),e.applicants!==void 0&&(t.applicants=e.applicants),e.salaryMin!==void 0&&(t.salaryMin=e.salaryMin),e.salaryMax!==void 0&&(t.salaryMax=e.salaryMax),e.status&&(t.status=e.status),e.requirements&&(t.requirements=C(e.requirements)),e.benefits&&(t.benefits=C(e.benefits)),e.postedDate&&(t.postedDate=e.postedDate),e.deadline&&(t.deadline=e.deadline),!Object.keys(t).length)throw new o$1("No updates specified");let r=await b$1(lt,{id:n,input:t});i("Job posting updated"),h$1(e,r.updateCrewJobPosting);}catch(t){g(t);}});}function Nt(m){let a=m.command("leave-requests").description("Crewfoundry leave requests");a.command("list").description("List leave requests").option("--employee <id>","Filter by employee ID").option("--status <s>","Filter by status").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await b$1(A)).crewfoundryBootstrap.leaveRequests;n.employee&&(t=t.filter(r=>r.employeeId===n.employee)),n.status&&(t=t.filter(r=>r.status===n.status)),h$1(n,t,{headers:["ID","Employee","Type","Days","Status"],rows:t.map(r=>[p(r.id,12),r.employeeName,r.type,String(r.days),r.status])});}catch(e){g(e);}}),a.command("get").description("Get a leave request by id").argument("<id>","Leave request ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let r=(await b$1(A)).crewfoundryBootstrap.leaveRequests.find(l=>l.id===n);if(!r)throw new o$1(`Leave request ${n} not found`);h$1(e,r);}catch(t){g(t);}}),a.command("create").description("Create a leave request").requiredOption("--employee-id <id>","Employee ID").requiredOption("--employee-name <s>","Employee name").requiredOption("--department <s>","Department").requiredOption("--type <s>","Leave type").requiredOption("--reason <s>","Reason").requiredOption("--start-date <iso>","Start date (ISO)").requiredOption("--end-date <iso>","End date (ISO)").option("--days <n>","Number of days",y,1).option("--status <s>","Status","pending").option("--approver-name <s>","Approver name").option("-f, --format <format>","Output format").action(async n=>{try{let e={employeeId:n.employeeId,employeeName:n.employeeName,department:n.department,type:n.type,reason:n.reason,startDate:n.startDate,endDate:n.endDate,days:n.days??1,status:n.status??"pending"};n.approverName&&(e.approverName=n.approverName);let t=await b$1(ft,{input:e});i(`Leave request created for ${t.createCrewLeaveRequest.employeeName}`),h$1(n,t.createCrewLeaveRequest);}catch(e){g(e);}}),a.command("update").description("Update a leave request").argument("<id>","Leave request ID").option("--employee-id <id>","Employee ID").option("--employee-name <s>","Employee name").option("--department <s>","Department").option("--type <s>","Leave type").option("--reason <s>","Reason").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--days <n>","Number of days",y).option("--status <s>","Status").option("--approver-name <s>","Approver name").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.employeeId&&(t.employeeId=e.employeeId),e.employeeName&&(t.employeeName=e.employeeName),e.department&&(t.department=e.department),e.type&&(t.type=e.type),e.reason&&(t.reason=e.reason),e.startDate&&(t.startDate=e.startDate),e.endDate&&(t.endDate=e.endDate),e.days!==void 0&&(t.days=e.days),e.status&&(t.status=e.status),e.approverName&&(t.approverName=e.approverName),!Object.keys(t).length)throw new o$1("No updates specified");let r=await b$1(yt,{id:n,input:t});i("Leave request updated"),h$1(e,r.updateCrewLeaveRequest);}catch(t){g(t);}});}function Lt(m){let a=m.command("announcements").description("Crewfoundry announcements");a.command("list").description("List announcements").option("--category <c>","Filter by category").option("--pinned-only","Only pinned announcements").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await b$1(b)).crewfoundryBootstrap.announcements;n.category&&(t=t.filter(r=>r.category===n.category)),n.pinnedOnly&&(t=t.filter(r=>r.isPinned)),h$1(n,t,{headers:["ID","Title","Author","Category","Priority","Pinned"],rows:t.map(r=>[p(r.id,12),r.title,r.author,r.category,r.priority,r.isPinned?"yes":"no"])});}catch(e){g(e);}}),a.command("get").description("Get an announcement by id").argument("<id>","Announcement ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let r=(await b$1(b)).crewfoundryBootstrap.announcements.find(l=>l.id===n);if(!r)throw new o$1(`Announcement ${n} not found`);h$1(e,r);}catch(t){g(t);}}),a.command("create").description("Create an announcement").requiredOption("--title <s>","Title").requiredOption("--content <s>","Content").requiredOption("--author <s>","Author").requiredOption("--author-role <s>","Author role").requiredOption("--category <s>","Category").requiredOption("--priority <s>","Priority").option("--pinned","Pin the announcement").option("--view-count <n>","Initial view count",y,0).option("--tags <csv>","Comma-separated tags").option("--created-at <iso>","Created at (ISO)").option("-f, --format <format>","Output format").action(async n=>{try{let e={title:n.title,content:n.content,author:n.author,authorRole:n.authorRole,category:n.category,priority:n.priority,isPinned:n.pinned??!1,viewCount:n.viewCount??0,tags:n.tags?C(n.tags):[],createdAt:n.createdAt??new Date().toISOString()},t=await b$1(gt,{input:e});i(`Announcement created: ${t.createCrewAnnouncement.title}`),h$1(n,t.createCrewAnnouncement);}catch(e){g(e);}});}function Ot(m){let a=m.command("notifications").description("Crewfoundry notifications");a.command("list").description("List notifications").option("--category <c>","Filter by category").option("--unread-only","Only unread notifications").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await b$1(H)).crewfoundryBootstrap.notifications;n.category&&(t=t.filter(r=>r.category===n.category)),n.unreadOnly&&(t=t.filter(r=>!r.read)),h$1(n,t,{headers:["ID","Title","Type","Category","Read"],rows:t.map(r=>[p(r.id,12),r.title,r.type,r.category,r.read?"yes":"no"])});}catch(e){g(e);}}),a.command("mark-read").description("Mark a notification as read").argument("<id>","Notification ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await b$1(wt,{id:n});if(!t.markCrewNotificationRead)throw new o$1(`Notification ${n} could not be marked read`);i(`Notification ${n} marked read`),h$1(e,{read:t.markCrewNotificationRead});}catch(t){g(t);}}),a.command("mark-all-read").description("Mark all notifications as read").option("-f, --format <format>","Output format").action(async n=>{try{let e=await b$1(Ct);i("All notifications marked read"),h$1(n,{read:e.markAllCrewNotificationsRead});}catch(e){g(e);}});}function o(m){return m==null?"-":String(m)}function vt(m){let a=m.command("directory").description("Crewfoundry read-only collections (clients, projects, teams, finance, learning)"),n=async(e,t,r,l)=>{try{let k=(await b$1(e)).crewfoundryBootstrap[t];h$1(r,k,{headers:l.headers,rows:k.map(l.row)});}catch(I){g(I);}};a.command("clients").description("List clients").option("-f, --format <format>","Output format").action(e=>n(K,"clients",e,{headers:["ID","Name","Industry","Status","Projects","Revenue"],row:t=>[p(t.id,12),o(t.name),o(t.industry),o(t.status),o(t.projects),o(t.revenue)]})),a.command("courses").description("List training courses").option("-f, --format <format>","Output format").action(e=>n(Q,"courses",e,{headers:["ID","Title","Category","Level","Enrolled","Status"],row:t=>[p(t.id,12),o(t.title),o(t.category),o(t.level),o(t.enrolled),o(t.status)]})),a.command("departments").description("List departments").option("-f, --format <format>","Output format").action(e=>n(z,"departments",e,{headers:["ID","Name","Head","Employees","Budget","Status"],row:t=>[p(t.id,12),o(t.name),o(t.headName),o(t.employeeCount),o(t.budget),o(t.status)]})),a.command("interviews").description("List interviews").option("-f, --format <format>","Output format").action(e=>n(X,"interviews",e,{headers:["ID","Candidate","Position","Type","Status","Interviewer"],row:t=>[p(t.id,12),o(t.candidateName),o(t.position),o(t.type),o(t.status),o(t.interviewerName)]})),a.command("invoices").description("List invoices").option("-f, --format <format>","Output format").action(e=>n(Z,"invoices",e,{headers:["ID","Number","Client","Amount","Status"],row:t=>[p(t.id,12),o(t.number),o(t.clientName),o(t.amount),o(t.status)]})),a.command("learning-paths").description("List learning paths").option("-f, --format <format>","Output format").action(e=>n(tt,"learningPaths",e,{headers:["ID","Title","Level","Enrolled","Completion %"],row:t=>[p(t.id,12),o(t.title),o(t.level),o(t.enrolled),o(t.completionRate)]})),a.command("marketplace-services").description("List marketplace services").option("-f, --format <format>","Output format").action(e=>n(et,"marketplaceServices",e,{headers:["ID","Title","Category","Provider","Price","Rating"],row:t=>[p(t.id,12),o(t.title),o(t.category),o(t.provider),o(t.price),o(t.rating)]})),a.command("payroll").description("List payroll records").option("-f, --format <format>","Output format").action(e=>n(nt,"payrollRecords",e,{headers:["ID","Employee","Period","Gross","Net","Status"],row:t=>[p(t.id,12),o(t.employeeName),o(t.period),o(t.grossPay),o(t.netPay),o(t.status)]})),a.command("projects").description("List projects").option("-f, --format <format>","Output format").action(e=>n(rt,"projects",e,{headers:["ID","Name","Status","Priority","Progress","Budget"],row:t=>[p(t.id,12),o(t.name),o(t.status),o(t.priority),o(t.progress),o(t.budget)]})),a.command("teams").description("List teams").option("-f, --format <format>","Output format").action(e=>n(ot,"teams",e,{headers:["ID","Name","Department","Lead","Members","Status"],row:t=>[p(t.id,12),o(t.name),o(t.department),o(t.leadName),o(t.memberCount),o(t.status)]})),a.command("time-entries").description("List time entries").option("-f, --format <format>","Output format").action(e=>n(at,"timeEntries",e,{headers:["ID","Employee","Date","Hours","Overtime","Status"],row:t=>[p(t.id,12),o(t.employeeName),o(t.date),o(t.totalHours),o(t.overtime),o(t.status)]})),a.command("vendors").description("List vendors").option("-f, --format <format>","Output format").action(e=>n(it,"vendors",e,{headers:["ID","Name","Category","Contract Value","Rating","Status"],row:t=>[p(t.id,12),o(t.name),o(t.category),o(t.contractValue),o(t.rating),o(t.status)]}));}function ht(m){let a=m.command("analytics").description("Crewfoundry analytics & bootstrap");a.command("bootstrap").description("Fetch the full Crewfoundry workspace snapshot (all collections)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await b$1(h);h$1(n,e.crewfoundryBootstrap);}catch(e){g(e);}}),a.command("summary").description("Per-collection counts derived from the bootstrap snapshot").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await b$1(h)).crewfoundryBootstrap,r={employees:t.employees.length,candidates:t.candidates.length,jobPostings:t.jobPostings.length,leaveRequests:t.leaveRequests.length,announcements:t.announcements.length,notifications:t.notifications.length,clients:t.clients.length,courses:t.courses.length,departments:t.departments.length,interviews:t.interviews.length,invoices:t.invoices.length,learningPaths:t.learningPaths.length,marketplaceServices:t.marketplaceServices.length,payrollRecords:t.payrollRecords.length,projects:t.projects.length,teams:t.teams.length,timeEntries:t.timeEntries.length,vendors:t.vendors.length};h$1(n,r,{headers:["Collection","Count"],rows:Object.entries(r).map(([l,I])=>[l,String(I)])});}catch(e){g(e);}}),m.command("health").description("Crewfoundry service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=(await d(Et))._empty??"ok";i(`crewfoundry: ${t}`),h$1(n,{health:t});}catch(e){g(e);}});}var Dt={id:"crewfoundry",version:"1.0.0",displayName:"Crewfoundry",dependsOn:["auth","workspaces"],register(m,a$1){a(a$1);let n=m.command("crewfoundry").description("Crewfoundry workforce & HR operations");It(n),St(n),Rt(n),Nt(n),Lt(n),Ot(n),vt(n),ht(n);}},fe=Dt;export{fe as default};
@@ -1,4 +1,4 @@
1
- import {a,c,g,o,m,f,h as h$1}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var N=`
1
+ import {a,c,h as h$1,p,n,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'../../chunk-TCBALVP4.js';var N=`
2
2
  query ListOrganizations($filter: OrganizationFilterInput, $limit: Int, $offset: Int) {
3
3
  organizations(filter: $filter, limit: $limit, offset: $offset) {
4
4
  items { id name slug status }
@@ -130,4 +130,4 @@ import {a,c,g,o,m,f,h as h$1}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from
130
130
  id status reviewStatus reviewNotes
131
131
  }
132
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};
133
+ `;function Z(A){let c$1=A.command("devportal").description("Developer portal: orgs, apps, webhooks, revenue"),m=c$1.command("orgs").description("Publisher organizations");m.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$1=(await c(N,{limit:t.limit,offset:0})).organizations.items;h$1(t,n$1,{headers:["ID","Name","Slug","Status"],rows:n$1.map(o=>[p(o.id,12),o.name,o.slug??"-",n(o.status)])});}catch(i){g(i);}}),m.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(`Organization ${t} not found`);h$1(i,n.organization);}catch(n){g(n);}}),m.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$1={name:t.name,slug:t.slug,description:t.description,tier:(t.tier??"ORGANIZATION").toUpperCase()},n=await c(C,{input:i$1});i(`Organization created: ${n.createOrganization.name}`),h$1(t,n.createOrganization);}catch(i){g(i);}}),m.command("update").description("Update an organization").argument("<id>").option("--name <s>").option("--description <s>").option("-f, --format <format>").action(async(t,i$1)=>{try{let n={};if(i$1.name&&(n.name=i$1.name),i$1.description!==void 0&&(n.description=i$1.description),!Object.keys(n).length)throw new o("No updates specified");let o$1=await c(v,{id:t,input:n});i("Organization updated"),h$1(i$1,o$1.updateOrganization);}catch(n){g(n);}}),m.command("delete").description("Delete an organization").argument("<id>").action(async t=>{try{await c(P,{id:t}),i("Organization deleted");}catch(i){g(i);}});let p$1=c$1.command("apps").description("Applications");p$1.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$1=(await c(S,{organizationId:t.organization,status:t.status?.toUpperCase(),limit:t.limit})).applications.edges.map(o=>o.node);h$1(t,n$1,{headers:["ID","Name","Status","Installs","Rating"],rows:n$1.map(o=>[p(o.id,12),o.name,n(o.status),String(o.installCount??0),String(o.averageRating??"-")])});}catch(i){g(i);}}),p$1.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(`Application ${t} not found`);h$1(i,n.application);}catch(n){g(n);}}),p$1.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$1={name:t.name,developerOrganizationId:t.organization,appType:(t.type??"API_INTEGRATION").toUpperCase(),description:t.description},n=await c($,{input:i$1});i(`Application created: ${n.createApplication.name}`),h$1(t,n.createApplication);}catch(i){g(i);}}),p$1.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$1)=>{try{let n={};if(i$1.description!==void 0&&(n.description=i$1.description),i$1.pricing&&(n.pricingType=i$1.pricing.toUpperCase()),i$1.docsUrl&&(n.documentationUrl=i$1.docsUrl),!Object.keys(n).length)throw new o("No updates specified");let o$1=await c(D,{id:t,input:n});i("Application updated"),h$1(i$1,o$1.updateApplication);}catch(n){g(n);}}),p$1.command("submit-review").description("Submit an application for review").argument("<id>").option("--notes <s>").action(async(t,i$1)=>{try{await c(h,{id:t,notes:i$1.notes}),i("Submitted for review");}catch(n){g(n);}}),p$1.command("publish").description("Publish an application").argument("<id>").action(async t=>{try{await c(_,{id:t}),i("Application published");}catch(i){g(i);}}),p$1.command("delete").description("Delete an application").argument("<id>").action(async t=>{try{await c(L,{id:t}),i("Application deleted");}catch(i){g(i);}});let f=p$1.command("versions").description("Application versions");f.command("list").description("List versions for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,i)=>{try{let o=(await c(b,{applicationId:t})).application?.versions??[];h$1(i,o,{headers:["ID","Version","Status","Latest","Stable"],rows:o.map(l=>[p(l.id,12),l.version,n(l.status),String(!!l.isLatest),String(!!l.isStable)])});}catch(n){g(n);}}),f.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$1={version:t.version,releaseNotes:t.notes,packageUrl:t.package},n=await c(z,{applicationId:t.application,input:i$1});i(`Version created: ${n.createApplicationVersion.version}`),h$1(t,n.createApplicationVersion);}catch(i){g(i);}});let I=p$1.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});h$1(i,n.webhooks,{headers:["ID","Name","URL","Active","Failures"],rows:n.webhooks.map(o=>[p(o.id,12),o.name,p(o.url,40),String(!!o.isActive),String(o.failureCount??0)])});}catch(n){g(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$1={applicationId:t.application,name:t.name,url:t.url,events:t.events.split(","),retryEnabled:!0,maxRetries:t.maxRetries},n=await c(U,{input:i$1});i("Webhook created"),h$1(t,n.createWebhook);}catch(i){g(i);}}),I.command("remove").description("Remove a webhook").argument("<id>").action(async t=>{try{await c(x,{id:t}),i("Webhook removed");}catch(i){g(i);}}),p$1.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});h$1(t,i.applicationAnalytics);}catch(i){g(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()});h$1(t,i.organizationRevenue);}catch(i){g(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()});h$1(t,i.adminReviews.edges.map(n=>n.node));}catch(i){g(i);}}),O.command("approve").description("Approve an application").argument("<applicationId>").option("--notes <s>").action(async(t,i$1)=>{try{await c(W,{id:t,notes:i$1.notes}),i("Application approved");}catch(n){g(n);}}),O.command("reject").description("Reject an application").argument("<applicationId>").requiredOption("--notes <s>","Reason for rejection").action(async(t,i$1)=>{try{await c(B,{id:t,notes:i$1.notes}),i("Application rejected");}catch(n){g(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};
@@ -1,4 +1,4 @@
1
- import {a,b,g,o,m,n,f,h as h$1,j,r}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';import {writeFile}from'fs/promises';var J=`
1
+ import {a,b,h as h$1,p,n,o,g,i as i$1,k,s}from'../../chunk-WXDQ3S5J.js';import {o as o$1}from'../../chunk-TCBALVP4.js';import {writeFile}from'fs/promises';var J=`
2
2
  query ListExportJobs($context: ContextInput!, $filter: ExportJobFilterInput, $pagination: ExportPaginationInput) {
3
3
  listExportJobs(context: $context, filter: $filter, pagination: $pagination) {
4
4
  edges { node {
@@ -92,4 +92,4 @@ import {a,b,g,o,m,n,f,h as h$1,j,r}from'../../chunk-LZQBJDKZ.js';import {o as o$
92
92
  downloadUrl downloadExpiresAt
93
93
  }
94
94
  }
95
- `;function i(){let l=r().auth.read();if(!l?.workspaceId)throw new o$1("No workspace set. Run: vibecontrols workspace set <id>");return {workspaceId:l.workspaceId}}function X(l){let m$1=l.command("export").description("Workspace data export jobs"),u=m$1.command("jobs").description("Export job lifecycle");u.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 n$1=(await b(J,{context:i(),filter:Object.keys(e).length?e:void 0,pagination:{first:t.limit}})).listExportJobs.edges.map(p=>p.node);g(t,n$1,{headers:["ID","Name","Status","Progress","Started"],rows:n$1.map(p=>[o(p.id,12),p.name??"-",m(p.status),`${p.processedEntities??0}/${p.totalEntities??"-"}`,n(p.startedAt)])});}catch(e){f(e);}}),u.command("get").description("Get an export job").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(E,{context:i(),id:t});if(!o.getExportJob)throw new o$1(`Export job ${t} not found`);g(e,o.getExportJob);}catch(o){f(o);}}),u.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:i(),input:e});h$1(`Export job created: ${o.createExportJob.id}`),g({format:t.formatOutput},o.createExportJob);}catch(e){f(e);}}),u.command("cancel").description("Cancel a running export job").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(R,{context:i(),id:t});h$1(`Export job cancelled: ${o.cancelExportJob.id}`),g(e,o.cancelExportJob);}catch(o){f(o);}}),u.command("delete").description("Delete an export job").argument("<id>").action(async t=>{try{if(!(await b(A,{context:i(),id:t})).deleteExportJob)throw new o$1(`Failed to delete export job ${t}`);h$1(`Export job deleted: ${t}`);}catch(e){f(e);}}),u.command("retry").description("Retry a failed export job").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(M,{context:i(),id:t});h$1(`Export job retry queued: ${o.retryExportJob.id}`),g(e,o.retryExportJob);}catch(o){f(o);}}),m$1.command("entities").description("List entity types available for export").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let o=(await b(L,{context:i(),pagination:{first:t.limit}})).getAvailableExportEntities.edges.map(n=>n.node);g(t,o,{headers:["Type","Display","Enabled","DateRange","Media","Size"],rows:o.map(n=>[n.entityType,n.displayName,n.enabled?"yes":"no",n.supportsDateRange?"yes":"no",n.supportsMediaExport?"yes":"no",n.estimatedSize??"-"])});}catch(e){f(e);}}),m$1.command("part").description("Get an export part by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(S,{context:i(),id:t});if(!o.getExportPart)throw new o$1(`Export part ${t} not found`);g(e,o.getExportPart);}catch(o){f(o);}}),m$1.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(E,{context:i(),id:t});if(!o.getExportJob)throw new o$1(`Export job ${t} not found`);let n=o.getExportJob.downloadUrl;if(!n)throw new o$1(`Job ${t} has no downloadUrl yet (status=${o.getExportJob.status??"UNKNOWN"}).`);j(`Downloading from ${n}`);let p=await fetch(n);if(!p.ok)throw new o$1(`Download failed: ${p.status} ${p.statusText}`);let f=Buffer.from(await p.arrayBuffer());await writeFile(e.to,f),h$1(`Saved ${f.length} bytes to ${e.to}`);}catch(o){f(o);}});let x=m$1.command("templates").description("Export templates");x.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(P,{context:i(),pagination:{first:t.limit}});g(t,e.listExportTemplates.edges.map(o=>o.node));}catch(e){f(e);}}),x.command("get").description("Get an export template").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(_,{context:i(),id:t});if(!o.getExportTemplate)throw new o$1(`Template ${t} not found`);g(e,o.getExportTemplate);}catch(o){f(o);}}),x.command("create").description("Create an export template").requiredOption("--name <s>").requiredOption("--types <t>","Comma-separated entity types").option("--description <s>").option("--format <fmt>","JSON|CSV","JSON").option("--include-media","Include media files",false).option("--include-metadata","Include metadata",true).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};t.description&&(e.description=t.description);let o=await b(N,{context:i(),input:e});h$1(`Template created: ${o.createExportTemplate.id}`),g({format:t.formatOutput},o.createExportTemplate);}catch(e){f(e);}}),x.command("update").description("Update an export template").argument("<id>").option("--name <s>").option("--description <s>").option("--types <t>","Comma-separated entity types").option("--format <fmt>","JSON|CSV").option("--include-media <bool>","true|false").option("--include-metadata <bool>","true|false").option("--default <bool>","Set isDefault: true|false").option("-f, --format-output <format>").action(async(t,e)=>{try{let o={};e.name&&(o.name=e.name),e.description&&(o.description=e.description),e.types&&(o.entityTypes=e.types.split(",")),e.format&&(o.format=e.format.toUpperCase()),e.includeMedia!==void 0&&(o.includeMedia=e.includeMedia==="true"),e.includeMetadata!==void 0&&(o.includeMetadata=e.includeMetadata==="true"),e.default!==void 0&&(o.isDefault=e.default==="true");let n=await b(h,{context:i(),id:t,input:o});h$1(`Template updated: ${n.updateExportTemplate.id}`),g({format:e.formatOutput},n.updateExportTemplate);}catch(o){f(o);}}),x.command("delete").description("Delete an export template").argument("<id>").action(async t=>{try{if(!(await b(D,{context:i(),id:t})).deleteExportTemplate)throw new o$1(`Failed to delete template ${t}`);h$1(`Template deleted: ${t}`);}catch(e){f(e);}});}var U={id:"export",version:"1.0.0",displayName:"Export",dependsOn:["auth","workspaces"],register(l,m){a(m),X(l);}},W=U;export{W as default};
95
+ `;function i(){let l=s().auth.read();if(!l?.workspaceId)throw new o$1("No workspace set. Run: vibecontrols workspace set <id>");return {workspaceId:l.workspaceId}}function X(l){let m=l.command("export").description("Workspace data export jobs"),u=m.command("jobs").description("Export job lifecycle");u.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 n$1=(await b(J,{context:i(),filter:Object.keys(e).length?e:void 0,pagination:{first:t.limit}})).listExportJobs.edges.map(p=>p.node);h$1(t,n$1,{headers:["ID","Name","Status","Progress","Started"],rows:n$1.map(p$1=>[p(p$1.id,12),p$1.name??"-",n(p$1.status),`${p$1.processedEntities??0}/${p$1.totalEntities??"-"}`,o(p$1.startedAt)])});}catch(e){g(e);}}),u.command("get").description("Get an export job").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(E,{context:i(),id:t});if(!o.getExportJob)throw new o$1(`Export job ${t} not found`);h$1(e,o.getExportJob);}catch(o){g(o);}}),u.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:i(),input:e});i$1(`Export job created: ${o.createExportJob.id}`),h$1({format:t.formatOutput},o.createExportJob);}catch(e){g(e);}}),u.command("cancel").description("Cancel a running export job").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(R,{context:i(),id:t});i$1(`Export job cancelled: ${o.cancelExportJob.id}`),h$1(e,o.cancelExportJob);}catch(o){g(o);}}),u.command("delete").description("Delete an export job").argument("<id>").action(async t=>{try{if(!(await b(A,{context:i(),id:t})).deleteExportJob)throw new o$1(`Failed to delete export job ${t}`);i$1(`Export job deleted: ${t}`);}catch(e){g(e);}}),u.command("retry").description("Retry a failed export job").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(M,{context:i(),id:t});i$1(`Export job retry queued: ${o.retryExportJob.id}`),h$1(e,o.retryExportJob);}catch(o){g(o);}}),m.command("entities").description("List entity types available for export").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let o=(await b(L,{context:i(),pagination:{first:t.limit}})).getAvailableExportEntities.edges.map(n=>n.node);h$1(t,o,{headers:["Type","Display","Enabled","DateRange","Media","Size"],rows:o.map(n=>[n.entityType,n.displayName,n.enabled?"yes":"no",n.supportsDateRange?"yes":"no",n.supportsMediaExport?"yes":"no",n.estimatedSize??"-"])});}catch(e){g(e);}}),m.command("part").description("Get an export part by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(S,{context:i(),id:t});if(!o.getExportPart)throw new o$1(`Export part ${t} not found`);h$1(e,o.getExportPart);}catch(o){g(o);}}),m.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(E,{context:i(),id:t});if(!o.getExportJob)throw new o$1(`Export job ${t} not found`);let n=o.getExportJob.downloadUrl;if(!n)throw new o$1(`Job ${t} has no downloadUrl yet (status=${o.getExportJob.status??"UNKNOWN"}).`);k(`Downloading from ${n}`);let p=await fetch(n);if(!p.ok)throw new o$1(`Download failed: ${p.status} ${p.statusText}`);let f=Buffer.from(await p.arrayBuffer());await writeFile(e.to,f),i$1(`Saved ${f.length} bytes to ${e.to}`);}catch(o){g(o);}});let x=m.command("templates").description("Export templates");x.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(P,{context:i(),pagination:{first:t.limit}});h$1(t,e.listExportTemplates.edges.map(o=>o.node));}catch(e){g(e);}}),x.command("get").description("Get an export template").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(_,{context:i(),id:t});if(!o.getExportTemplate)throw new o$1(`Template ${t} not found`);h$1(e,o.getExportTemplate);}catch(o){g(o);}}),x.command("create").description("Create an export template").requiredOption("--name <s>").requiredOption("--types <t>","Comma-separated entity types").option("--description <s>").option("--format <fmt>","JSON|CSV","JSON").option("--include-media","Include media files",false).option("--include-metadata","Include metadata",true).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};t.description&&(e.description=t.description);let o=await b(N,{context:i(),input:e});i$1(`Template created: ${o.createExportTemplate.id}`),h$1({format:t.formatOutput},o.createExportTemplate);}catch(e){g(e);}}),x.command("update").description("Update an export template").argument("<id>").option("--name <s>").option("--description <s>").option("--types <t>","Comma-separated entity types").option("--format <fmt>","JSON|CSV").option("--include-media <bool>","true|false").option("--include-metadata <bool>","true|false").option("--default <bool>","Set isDefault: true|false").option("-f, --format-output <format>").action(async(t,e)=>{try{let o={};e.name&&(o.name=e.name),e.description&&(o.description=e.description),e.types&&(o.entityTypes=e.types.split(",")),e.format&&(o.format=e.format.toUpperCase()),e.includeMedia!==void 0&&(o.includeMedia=e.includeMedia==="true"),e.includeMetadata!==void 0&&(o.includeMetadata=e.includeMetadata==="true"),e.default!==void 0&&(o.isDefault=e.default==="true");let n=await b(h,{context:i(),id:t,input:o});i$1(`Template updated: ${n.updateExportTemplate.id}`),h$1({format:e.formatOutput},n.updateExportTemplate);}catch(o){g(o);}}),x.command("delete").description("Delete an export template").argument("<id>").action(async t=>{try{if(!(await b(D,{context:i(),id:t})).deleteExportTemplate)throw new o$1(`Failed to delete template ${t}`);i$1(`Template deleted: ${t}`);}catch(e){g(e);}});}var U={id:"export",version:"1.0.0",displayName:"Export",dependsOn:["auth","workspaces"],register(l,m){a(m),X(l);}},W=U;export{W as default};
@@ -1,4 +1,4 @@
1
- import {a,b,g,j,o,f,h as h$1}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';import {statSync,readFileSync}from'fs';import {basename,extname}from'path';import {createHash}from'crypto';var h=`
1
+ import {a,b,h as h$1,k,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'../../chunk-TCBALVP4.js';import {statSync,readFileSync}from'fs';import {basename,extname}from'path';import {createHash}from'crypto';var h=`
2
2
  query BrowseFolderRoot($pagination: PaginationInput) {
3
3
  getFilesInFolder(pagination: $pagination) {
4
4
  files { id name size mimeType extension createdAt }
@@ -59,6 +59,6 @@ import {a,b,g,j,o,f,h as h$1}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from
59
59
  query GetFileDownloadUrl($id: ID!, $expiresIn: Int) {
60
60
  getFileDownloadUrl(id: $id, expiresIn: $expiresIn)
61
61
  }
62
- `;function D(c){let s=c.command("files").description("Workspace file management");s.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 o$1={limit:e.limit,offset:0};if(t){let i=await b(x,{folderId:t,pagination:o$1});if(e.format){g(e,{folder:i.getFolder,files:i.getFilesInFolder.files});return}i.getFolder&&j(`Folder: ${i.getFolder.name}`);for(let n of i.getFilesInFolder.files){let f=n.size?`${n.size}b`:"-";console.log(` \u{1F4C4} ${o(n.id,12)} ${n.name} ${f} ${n.mimeType??"-"}`);}console.log(`
63
- ${i.getFilesInFolder.total} files`);return}let d=await b(h,{pagination:o$1});if(e.format){g(e,{files:d.getFilesInFolder.files});return}for(let i of d.getFilesInFolder.files){let n=i.size?`${i.size}b`:"-";console.log(` \u{1F4C4} ${o(i.id,12)} ${i.name} ${n} ${i.mimeType??"-"}`);}console.log(`
64
- ${d.getFilesInFolder.total} files`);}catch(o){f(o);}}),s.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 o=statSync(t),d=basename(t),i=extname(t).slice(1)||void 0,n=readFileSync(t),f=createHash("sha256").update(n).digest("hex"),L={fileName:d,fileSize:o.size,mimeType:"application/octet-stream",extension:i,folderId:e.folder,sha256Hash:f,visibility:(e.visibility??"WORKSPACE").toUpperCase()},I=await b(E,{input:L});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(o){f(o);}}),s.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(R,{input:{sessionId:t.session,folderId:t.folder,description:t.description}});h$1(`Upload complete: ${e.completeUpload.fileId}`),g(t,e.completeUpload.file);}catch(e){f(e);}}),s.command("get").description("Get a file by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(C,{id:t});if(!o.getFile)throw new o$1(`File ${t} not found`);g(e,o.getFile);}catch(o){f(o);}}),s.command("download").description("Get a pre-signed download URL for a file").argument("<id>").option("--expires <seconds>","URL expiry in seconds",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(A,{id:t,expiresIn:e.expires});if(e.format){g(e,{url:o.getFileDownloadUrl});return}h$1("Download URL:"),console.log(o.getFileDownloadUrl);}catch(o){f(o);}});let u=s.command("share").description("Manage file shares");u.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 o={fileId:t,shareType:"PUBLIC_LINK",accessLevel:(e.access??"DOWNLOAD").toUpperCase(),expiresAt:e.expires,password:e.password,maxDownloads:e.maxDownloads},d=await b($,{input:o});h$1("Share created"),g(e,d.createShare);}catch(o){f(o);}}),u.command("revoke").description("Revoke a share by id").argument("<shareId>").action(async t=>{try{await b(O,{id:t}),h$1("Share revoked");}catch(e){f(e);}});}var B={id:"files",version:"1.0.0",displayName:"Files",dependsOn:["auth","workspaces"],register(c,s){a(s),D(c);}},V=B;export{V as default};
62
+ `;function D(c){let s=c.command("files").description("Workspace file management");s.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 o={limit:e.limit,offset:0};if(t){let i=await b(x,{folderId:t,pagination:o});if(e.format){h$1(e,{folder:i.getFolder,files:i.getFilesInFolder.files});return}i.getFolder&&k(`Folder: ${i.getFolder.name}`);for(let n of i.getFilesInFolder.files){let f=n.size?`${n.size}b`:"-";console.log(` \u{1F4C4} ${p(n.id,12)} ${n.name} ${f} ${n.mimeType??"-"}`);}console.log(`
63
+ ${i.getFilesInFolder.total} files`);return}let d=await b(h,{pagination:o});if(e.format){h$1(e,{files:d.getFilesInFolder.files});return}for(let i of d.getFilesInFolder.files){let n=i.size?`${i.size}b`:"-";console.log(` \u{1F4C4} ${p(i.id,12)} ${i.name} ${n} ${i.mimeType??"-"}`);}console.log(`
64
+ ${d.getFilesInFolder.total} files`);}catch(o){g(o);}}),s.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 o=statSync(t),d=basename(t),i=extname(t).slice(1)||void 0,n=readFileSync(t),f=createHash("sha256").update(n).digest("hex"),L={fileName:d,fileSize:o.size,mimeType:"application/octet-stream",extension:i,folderId:e.folder,sha256Hash:f,visibility:(e.visibility??"WORKSPACE").toUpperCase()},I=await b(E,{input:L});k("Upload session created. PUT the local bytes to the returned URL(s)."),h$1(e,I.initiateUpload),k(`After uploading, complete with: vibecontrols files upload-complete --session ${I.initiateUpload.session.id}`);}catch(o){g(o);}}),s.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(R,{input:{sessionId:t.session,folderId:t.folder,description:t.description}});i(`Upload complete: ${e.completeUpload.fileId}`),h$1(t,e.completeUpload.file);}catch(e){g(e);}}),s.command("get").description("Get a file by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o$1=await b(C,{id:t});if(!o$1.getFile)throw new o(`File ${t} not found`);h$1(e,o$1.getFile);}catch(o){g(o);}}),s.command("download").description("Get a pre-signed download URL for a file").argument("<id>").option("--expires <seconds>","URL expiry in seconds",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let o=await b(A,{id:t,expiresIn:e.expires});if(e.format){h$1(e,{url:o.getFileDownloadUrl});return}i("Download URL:"),console.log(o.getFileDownloadUrl);}catch(o){g(o);}});let u=s.command("share").description("Manage file shares");u.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 o={fileId:t,shareType:"PUBLIC_LINK",accessLevel:(e.access??"DOWNLOAD").toUpperCase(),expiresAt:e.expires,password:e.password,maxDownloads:e.maxDownloads},d=await b($,{input:o});i("Share created"),h$1(e,d.createShare);}catch(o){g(o);}}),u.command("revoke").description("Revoke a share by id").argument("<shareId>").action(async t=>{try{await b(O,{id:t}),i("Share revoked");}catch(e){g(e);}});}var B={id:"files",version:"1.0.0",displayName:"Files",dependsOn:["auth","workspaces"],register(c,s){a(s),D(c);}},V=B;export{V as default};
@@ -0,0 +1,140 @@
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},f=class extends p{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},l=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var C=null;function x(o){C=o;}function y(){if(!C)throw new l("vibecontrols module helpers used before setHelpersContext was called");return C}function dt(){let o=y();if(!o.auth.isAuthenticated())throw new f(`Authentication required. Run \`${o.productName} auth login\`.`)}async function i(o,r){return dt(),y().gql.workspace.request(o,r)}function s(o){let r=o instanceof Error?o.message:String(o);throw new p(r)}function a(o,r,t){y().output.formatAndOutput(o,r,t);}function m(o){y().output.printSuccess(o);}function h(o){return y().output.formatDate(o)}function d(o,r){return y().output.truncate(o,r)}var I=`
2
+ query GgnomadGetProvider($id: ID!) {
3
+ ggnomadProvider(id: $id) {
4
+ id name type description status website contactEmail contactPhone
5
+ listingCount rating reviewCount totalRevenue createdAt updatedAt workspaceId
6
+ }
7
+ }
8
+ `,b=`
9
+ query GgnomadListProviders($pagination: GgnomadPaginationInput) {
10
+ ggnomadProviders(pagination: $pagination) {
11
+ id name type status rating reviewCount listingCount totalRevenue createdAt
12
+ }
13
+ }
14
+ `,E=`
15
+ mutation GgnomadCreateProvider($input: CreateGgnomadProviderInput!) {
16
+ createGgnomadProvider(input: $input) {
17
+ id name type description status website contactEmail contactPhone
18
+ listingCount rating reviewCount totalRevenue createdAt workspaceId
19
+ }
20
+ }
21
+ `,A=`
22
+ query GgnomadGetProperty($id: ID!) {
23
+ ggnomadProperty(id: $id) {
24
+ id name type description status address amenities bathrooms bedrooms
25
+ checkInTime checkOutTime currency images maxGuests pricePerNight
26
+ providerId rating reviewCount createdAt updatedAt workspaceId
27
+ }
28
+ }
29
+ `,O=`
30
+ query GgnomadListProperties($pagination: GgnomadPaginationInput) {
31
+ ggnomadProperties(pagination: $pagination) {
32
+ id name type status currency pricePerNight maxGuests bedrooms bathrooms
33
+ rating reviewCount providerId createdAt
34
+ }
35
+ }
36
+ `,P=`
37
+ mutation GgnomadCreateProperty($input: CreateGgnomadPropertyInput!) {
38
+ createGgnomadProperty(input: $input) {
39
+ id name type description status address amenities bathrooms bedrooms
40
+ checkInTime checkOutTime currency images maxGuests pricePerNight
41
+ providerId rating reviewCount createdAt workspaceId
42
+ }
43
+ }
44
+ `,S=`
45
+ query GgnomadGetActivity($id: ID!) {
46
+ ggnomadActivity(id: $id) {
47
+ id name category description difficulty duration currency price
48
+ images includes location maxParticipants requirements safetyInfo
49
+ providerId rating reviewCount status createdAt updatedAt workspaceId
50
+ }
51
+ }
52
+ `,R=`
53
+ query GgnomadListActivities($pagination: GgnomadPaginationInput) {
54
+ ggnomadActivities(pagination: $pagination) {
55
+ id name category difficulty duration currency price maxParticipants
56
+ rating reviewCount status providerId createdAt
57
+ }
58
+ }
59
+ `,G=`
60
+ query GgnomadGetEvent($id: ID!) {
61
+ ggnomadEvent(id: $id) {
62
+ id name category description currency price images performers venue
63
+ startsAt endsAt providerId rating reviewCount status createdAt
64
+ updatedAt workspaceId
65
+ }
66
+ }
67
+ `,$=`
68
+ query GgnomadListEvents($pagination: GgnomadPaginationInput) {
69
+ ggnomadEvents(pagination: $pagination) {
70
+ id name category currency price startsAt endsAt rating reviewCount
71
+ status providerId createdAt
72
+ }
73
+ }
74
+ `,D=`
75
+ query GgnomadGetTour($id: ID!) {
76
+ ggnomadTour(id: $id) {
77
+ id name type description difficulty duration currency price images
78
+ highlights languages location guideName maxGroupSize providerId
79
+ rating reviewCount status createdAt updatedAt workspaceId
80
+ }
81
+ }
82
+ `,N=`
83
+ query GgnomadListTours($pagination: GgnomadPaginationInput) {
84
+ ggnomadTours(pagination: $pagination) {
85
+ id name type difficulty duration currency price maxGroupSize rating
86
+ reviewCount status providerId createdAt
87
+ }
88
+ }
89
+ `,q=`
90
+ query GgnomadListTrips($pagination: GgnomadPaginationInput) {
91
+ ggnomadTrips(pagination: $pagination) {
92
+ id name transportMode class carrier currency price passengers
93
+ origin destination departureAt arrivalAt isRoundTrip ecoFriendly
94
+ returnDepartureAt returnArrivalAt status createdAt updatedAt workspaceId
95
+ }
96
+ }
97
+ `,L=`
98
+ query GgnomadListBookings($pagination: GgnomadPaginationInput) {
99
+ ggnomadBookings(pagination: $pagination) {
100
+ id referenceCode bookingType itemId itemName guestName guests
101
+ totalPrice currency status paymentStatus checkIn checkOut eventDate
102
+ createdAt
103
+ }
104
+ }
105
+ `,_=`
106
+ mutation GgnomadCreateBooking($input: CreateGgnomadBookingInput!) {
107
+ createGgnomadBooking(input: $input) {
108
+ id referenceCode bookingType itemId itemName guestName guestEmail
109
+ guestPhone guests totalPrice currency status paymentStatus paymentMethod
110
+ checkIn checkOut eventDate specialRequests createdAt workspaceId
111
+ }
112
+ }
113
+ `,F=`
114
+ mutation GgnomadCancelBooking($id: ID!, $reason: String) {
115
+ cancelGgnomadBooking(id: $id, reason: $reason) {
116
+ id referenceCode bookingType status paymentStatus totalPrice updatedAt
117
+ }
118
+ }
119
+ `,W=`
120
+ query GgnomadListFavorites($pagination: GgnomadFavoritesPaginationInput) {
121
+ ggnomadFavorites(pagination: $pagination)
122
+ }
123
+ `,B=`
124
+ mutation GgnomadToggleFavorite($input: ToggleGgnomadFavoriteInput!) {
125
+ toggleGgnomadFavorite(input: $input)
126
+ }
127
+ `,V=`
128
+ query GgnomadAnalytics {
129
+ ggnomadAnalytics {
130
+ totalUsers totalBookings totalRevenue conversionRate
131
+ revenueByCategory topDestinations monthlyTrends
132
+ }
133
+ }
134
+ `,M=`
135
+ query GgnomadOverviewStats {
136
+ ggnomadOverviewStats {
137
+ users listings bookings monthlyRevenue
138
+ }
139
+ }
140
+ `;function U(o,r){try{return JSON.parse(r)}catch{throw new p(`--${o} must be valid JSON`)}}function c(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new p(`Expected an integer but got "${o}"`);return r}function k(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new p(`Expected a number but got "${o}"`);return r}function j(o){let r=o.command("providers").description("GGNomad providers");r.command("list").description("List providers").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(b,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadProviders,{headers:["ID","Name","Type","Status","Rating","Listings"],rows:n.ggnomadProviders.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.rating??0} (${e.reviewCount??0})`,String(e.listingCount??0)])});}catch(n){s(n);}}),r.command("get").description("Get a provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(I,{id:t});if(!e.ggnomadProvider)throw new p(`Provider ${t} not found`);a(n,e.ggnomadProvider);}catch(e){s(e);}}),r.command("create").description("Create a provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--website <url>","Website URL").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type};t.description&&(n.description=t.description),t.website&&(n.website=t.website),t.contactEmail&&(n.contactEmail=t.contactEmail),t.contactPhone&&(n.contactPhone=t.contactPhone);let e=await i(E,{input:n});m(`Provider created: ${e.createGgnomadProvider.name}`),a(t,e.createGgnomadProvider);}catch(n){s(n);}});}function z(o){let r=o.command("properties").description("GGNomad stay properties");r.command("list").description("List properties").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(O,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadProperties,{headers:["ID","Name","Type","Status","Price/Night","Guests","Rating"],rows:n.ggnomadProperties.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.pricePerNight??0} ${e.currency??""}`.trim(),String(e.maxGuests??0),`${e.rating??0} (${e.reviewCount??0})`])});}catch(n){s(n);}}),r.command("get").description("Get a property by id").argument("<id>","Property ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(A,{id:t});if(!e.ggnomadProperty)throw new p(`Property ${t} not found`);a(n,e.ggnomadProperty);}catch(e){s(e);}}),r.command("create").description("Create a property").requiredOption("--name <name>","Property name").requiredOption("--type <t>","Property type").requiredOption("--address <json>","Address JSON").requiredOption("--max-guests <n>","Maximum guests",c).requiredOption("--price-per-night <n>","Price per night",k).requiredOption("--amenities <csv>","Comma-separated amenities").requiredOption("--images <csv>","Comma-separated image URLs").option("--provider <id>","Provider ID").option("--description <s>","Description").option("--bedrooms <n>","Bedrooms",c).option("--bathrooms <n>","Bathrooms",c).option("--check-in-time <s>","Check-in time").option("--check-out-time <s>","Check-out time").option("--currency <c>","Currency code").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,address:U("address",t.address),maxGuests:t.maxGuests,pricePerNight:t.pricePerNight,amenities:t.amenities.split(",").map(w=>w.trim()),images:t.images.split(",").map(w=>w.trim())};t.provider&&(n.providerId=t.provider),t.description&&(n.description=t.description),t.bedrooms!==void 0&&(n.bedrooms=t.bedrooms),t.bathrooms!==void 0&&(n.bathrooms=t.bathrooms),t.checkInTime&&(n.checkInTime=t.checkInTime),t.checkOutTime&&(n.checkOutTime=t.checkOutTime),t.currency&&(n.currency=t.currency);let e=await i(P,{input:n});m(`Property created: ${e.createGgnomadProperty.name}`),a(t,e.createGgnomadProperty);}catch(n){s(n);}});}function Y(o){let r=o.command("activities").description("GGNomad activities");r.command("list").description("List activities").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(R,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadActivities,{headers:["ID","Name","Category","Difficulty","Duration","Price","Status"],rows:n.ggnomadActivities.map(e=>[d(e.id,12),e.name,e.category,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an activity by id").argument("<id>","Activity ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(S,{id:t});if(!e.ggnomadActivity)throw new p(`Activity ${t} not found`);a(n,e.ggnomadActivity);}catch(e){s(e);}});}function H(o){let r=o.command("events").description("GGNomad events");r.command("list").description("List events").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i($,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadEvents,{headers:["ID","Name","Category","Price","Starts","Status"],rows:n.ggnomadEvents.map(e=>[d(e.id,12),e.name,e.category,`${e.price??0} ${e.currency??""}`.trim(),h(e.startsAt),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(G,{id:t});if(!e.ggnomadEvent)throw new p(`Event ${t} not found`);a(n,e.ggnomadEvent);}catch(e){s(e);}});}function K(o){let r=o.command("tours").description("GGNomad tours");r.command("list").description("List tours").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(N,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadTours,{headers:["ID","Name","Type","Difficulty","Duration","Price","Status"],rows:n.ggnomadTours.map(e=>[d(e.id,12),e.name,e.type,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get a tour by id").argument("<id>","Tour ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(D,{id:t});if(!e.ggnomadTour)throw new p(`Tour ${t} not found`);a(n,e.ggnomadTour);}catch(e){s(e);}});}function J(o){o.command("trips").description("GGNomad transport trips").command("list").description("List trips").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(q,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadTrips,{headers:["ID","Name","Mode","Price","Departs","Eco","Status"],rows:n.ggnomadTrips.map(e=>[d(e.id,12),e.name,e.transportMode,`${e.price??0} ${e.currency??""}`.trim(),h(e.departureAt),e.ecoFriendly?"yes":"no",e.status])});}catch(n){s(n);}});}function Q(o){let r=o.command("bookings").description("GGNomad bookings");r.command("list").description("List bookings").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(L,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadBookings,{headers:["ID","Ref","Type","Item","Guest","Total","Status","Payment"],rows:n.ggnomadBookings.map(e=>[d(e.id,12),e.referenceCode,e.bookingType,d(e.itemName,20),d(e.guestName,16),`${e.totalPrice} ${e.currency??""}`.trim(),e.status,e.paymentStatus])});}catch(n){s(n);}}),r.command("create").description("Create a booking").requiredOption("--type <t>","Booking type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").requiredOption("--item-id <id>","Item ID being booked").requiredOption("--item-name <name>","Item name").requiredOption("--guest-name <name>","Guest name").requiredOption("--guests <n>","Number of guests",c).requiredOption("--total-price <n>","Total price",k).option("--guest-email <email>","Guest email").option("--guest-phone <phone>","Guest phone").option("--currency <c>","Currency code").option("--check-in <iso>","Check-in (ISO date)").option("--check-out <iso>","Check-out (ISO date)").option("--event-date <iso>","Event date (ISO date)").option("--payment-method <m>","Payment method").option("--special-requests <s>","Special requests").option("-f, --format <format>","Output format").action(async t=>{try{let n={bookingType:t.type.toUpperCase(),itemId:t.itemId,itemName:t.itemName,guestName:t.guestName,guests:t.guests,totalPrice:t.totalPrice};t.guestEmail&&(n.guestEmail=t.guestEmail),t.guestPhone&&(n.guestPhone=t.guestPhone),t.currency&&(n.currency=t.currency),t.checkIn&&(n.checkIn=t.checkIn),t.checkOut&&(n.checkOut=t.checkOut),t.eventDate&&(n.eventDate=t.eventDate),t.paymentMethod&&(n.paymentMethod=t.paymentMethod),t.specialRequests&&(n.specialRequests=t.specialRequests);let e=await i(_,{input:n});m(`Booking created: ${e.createGgnomadBooking.referenceCode}`),a(t,e.createGgnomadBooking);}catch(n){s(n);}}),r.command("cancel").description("Cancel a booking").argument("<id>","Booking ID").option("--reason <s>","Cancellation reason").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(F,{id:t,reason:n.reason});m(`Booking cancelled: ${e.cancelGgnomadBooking.referenceCode}`),a(n,e.cancelGgnomadBooking);}catch(e){s(e);}});}function X(o){let r=o.command("favorites").description("GGNomad favorites");r.command("list").description("List favorites").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(W,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadFavorites);}catch(n){s(n);}}),r.command("toggle").description("Toggle a favorite on a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","Target type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").option("-f, --format <format>","Output format").action(async t=>{try{let n={targetId:t.targetId,targetType:t.targetType.toUpperCase()},e=await i(B,{input:n});m(e.toggleGgnomadFavorite?"Added to favorites":"Removed from favorites"),a(t,{favorited:e.toggleGgnomadFavorite});}catch(n){s(n);}});}function Z(o){let r=o.command("analytics").description("GGNomad analytics & overview");r.command("summary").description("Platform analytics (users, bookings, revenue, conversion, trends)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(V);a(t,n.ggnomadAnalytics);}catch(n){s(n);}}),r.command("overview").description("Overview stats (users, listings, bookings, monthly revenue)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(M);a(t,n.ggnomadOverviewStats);}catch(n){s(n);}});}var mt={id:"ggnomad",version:"1.0.0",displayName:"GGNomad",dependsOn:["auth","workspaces"],register(o,r){x(r);let t=o.command("ggnomad").description("GGNomad travel & experiences marketplace");j(t),z(t),Y(t),H(t),K(t),J(t),Q(t),X(t),Z(t);}},sn=mt;module.exports=sn;
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const ggnomadModule: CliModule;
6
+
7
+ export { ggnomadModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const ggnomadModule: CliModule;
6
+
7
+ export { ggnomadModule as default };