@burdenoff/cli-sdk 2026.1102.2 → 2026.1102.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/adaptercloud/index.cjs +6 -3
- package/dist/modules/adaptercloud/index.js +6 -3
- package/dist/modules/atheletebridge/index.cjs +33 -19
- package/dist/modules/atheletebridge/index.js +32 -18
- package/dist/modules/buildmyiq/index.cjs +64 -67
- package/dist/modules/buildmyiq/index.js +60 -63
- package/dist/modules/comradecircle/index.cjs +23 -15
- package/dist/modules/comradecircle/index.js +19 -11
- package/dist/modules/coolandlovely/index.cjs +27 -14
- package/dist/modules/coolandlovely/index.js +29 -16
- package/dist/modules/ecoimpacthub/index.cjs +19 -9
- package/dist/modules/ecoimpacthub/index.js +19 -9
- package/dist/modules/eventfullymanaged/index.cjs +77 -77
- package/dist/modules/eventfullymanaged/index.js +78 -78
- package/dist/modules/govcitizenhub/index.cjs +7 -4
- package/dist/modules/govcitizenhub/index.js +7 -4
- package/dist/modules/intelwatchtower/index.cjs +24 -12
- package/dist/modules/intelwatchtower/index.js +24 -12
- package/dist/modules/labsofscience/index.cjs +8 -4
- package/dist/modules/labsofscience/index.js +8 -4
- package/dist/modules/manufacturedops/index.cjs +35 -22
- package/dist/modules/manufacturedops/index.js +34 -21
- package/dist/modules/planmagnet/index.cjs +21 -21
- package/dist/modules/planmagnet/index.js +32 -32
- package/dist/modules/proserviceworld/index.cjs +17 -12
- package/dist/modules/proserviceworld/index.js +17 -12
- package/dist/modules/subscriberbot/index.cjs +43 -19
- package/dist/modules/subscriberbot/index.js +46 -22
- package/dist/modules/technospam/index.cjs +17 -8
- package/dist/modules/technospam/index.js +17 -8
- package/dist/modules/theculturepost/index.cjs +27 -22
- package/dist/modules/theculturepost/index.js +31 -26
- package/dist/modules/theglobalfuel/index.cjs +65 -60
- package/dist/modules/theglobalfuel/index.js +65 -60
- package/package.json +1 -1
|
@@ -38,8 +38,11 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d as d$1}from'../../chunk-O6UC
|
|
|
38
38
|
`,L=`
|
|
39
39
|
query ComradecircleListChannels($circleId: ID!) {
|
|
40
40
|
comListChannels(circleId: $circleId) {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
items {
|
|
42
|
+
id circleId name slug description type visibility position isArchived createdAt
|
|
43
|
+
updatedAt workspaceId
|
|
44
|
+
}
|
|
45
|
+
pageInfo { cursor hasMore }
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
`,O=`
|
|
@@ -129,7 +132,8 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d as d$1}from'../../chunk-O6UC
|
|
|
129
132
|
`,x=`
|
|
130
133
|
query ComradecircleListComments($postId: ID!) {
|
|
131
134
|
comListComments(postId: $postId) {
|
|
132
|
-
id postId parentId authorId body isHidden createdAt updatedAt workspaceId
|
|
135
|
+
items { id postId parentId authorId body isHidden createdAt updatedAt workspaceId }
|
|
136
|
+
pageInfo { cursor hasMore }
|
|
133
137
|
}
|
|
134
138
|
}
|
|
135
139
|
`,k=`
|
|
@@ -189,23 +193,26 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d as d$1}from'../../chunk-O6UC
|
|
|
189
193
|
`,G=`
|
|
190
194
|
query ComradecirclePoll($id: ID!) {
|
|
191
195
|
comPoll(id: $id) {
|
|
192
|
-
id circleId question status isAnonymous allowMultiple closesAt
|
|
193
|
-
|
|
194
|
-
options { id pollId label position voteCount }
|
|
196
|
+
id circleId question status isAnonymous allowMultiple closesAt createdAt updatedAt
|
|
197
|
+
workspaceId
|
|
198
|
+
options { items { id pollId label position voteCount } pageInfo { cursor hasMore } }
|
|
195
199
|
}
|
|
196
200
|
}
|
|
197
201
|
`,J=`
|
|
198
202
|
query ComradecircleListPolls($circleId: ID!, $status: ComPollStatus) {
|
|
199
203
|
comListPolls(circleId: $circleId, status: $status) {
|
|
200
|
-
|
|
201
|
-
|
|
204
|
+
items {
|
|
205
|
+
id circleId question status isAnonymous allowMultiple closesAt createdAt
|
|
206
|
+
options { items { id label position voteCount } pageInfo { cursor hasMore } }
|
|
207
|
+
}
|
|
208
|
+
pageInfo { cursor hasMore }
|
|
202
209
|
}
|
|
203
210
|
}
|
|
204
211
|
`,Y=`
|
|
205
212
|
mutation ComradecircleCreatePoll($input: ComCreatePollInput!) {
|
|
206
213
|
comCreatePoll(input: $input) {
|
|
207
214
|
id circleId question status isAnonymous allowMultiple closesAt createdAt
|
|
208
|
-
options { id label position voteCount }
|
|
215
|
+
options { items { id label position voteCount } pageInfo { cursor hasMore } }
|
|
209
216
|
}
|
|
210
217
|
}
|
|
211
218
|
`,z=`
|
|
@@ -255,7 +262,8 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d as d$1}from'../../chunk-O6UC
|
|
|
255
262
|
`,et=`
|
|
256
263
|
query ComradecircleMyFollows($targetType: ComFollowTargetType) {
|
|
257
264
|
comMyFollows(targetType: $targetType) {
|
|
258
|
-
id followerId targetId targetType muted createdAt updatedAt workspaceId
|
|
265
|
+
items { id followerId targetId targetType muted createdAt updatedAt workspaceId }
|
|
266
|
+
pageInfo { cursor hasMore }
|
|
259
267
|
}
|
|
260
268
|
}
|
|
261
269
|
`,ot=`
|
|
@@ -278,4 +286,4 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d as d$1}from'../../chunk-O6UC
|
|
|
278
286
|
query ComradecircleHealth {
|
|
279
287
|
comHealth
|
|
280
288
|
}
|
|
281
|
-
`;function d(m){let i=Number.parseInt(m,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${m}"`);return i}function l(m){return m.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function st(m){let i$1=m.command("circles").description("Comradecircle circles");i$1.command("list").description("List circles").option("--status <s>","ACTIVE|ARCHIVED|SUSPENDED").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(b,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,visibility:t.visibility?t.visibility.toUpperCase():void 0});i(t,e.comListCircles.items,{headers:["ID","Name","Slug","Status","Visibility","Members"],rows:e.comListCircles.items.map(o=>[r(o.id,12),o.name,o.slug,o.status,o.visibility,String(o.memberCount??0)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a circle by id").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(h,{id:t});if(!o$1.comCircle)throw new o(`Circle ${t} not found`);i(e,o$1.comCircle);}catch(o){h$1(o);}}),i$1.command("create").description("Create a circle").requiredOption("--name <name>","Circle name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET","PUBLIC").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,visibility:(t.visibility??"PUBLIC").toUpperCase()};t.description&&(e.description=t.description),t.topic&&(e.topic=t.topic),t.tags&&(e.tags=l(t.tags)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await b$1(v,{input:e});k$1(`Circle created: ${o.comCreateCircle.name}`),i(t,o.comCreateCircle);}catch(e){h$1(e);}}),i$1.command("update").description("Update a circle").argument("<id>","Circle ID").option("--name <name>","Circle name").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.name&&(o$1.name=e.name),e.description!==void 0&&(o$1.description=e.description),e.topic!==void 0&&(o$1.topic=e.topic),e.visibility&&(o$1.visibility=e.visibility.toUpperCase()),e.tags&&(o$1.tags=l(e.tags)),e.avatarFileId&&(o$1.avatarFileId=e.avatarFileId),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(P,{id:t,input:o$1});k$1("Circle updated"),i(e,g.comUpdateCircle);}catch(o){h$1(o);}}),i$1.command("archive").description("Archive a circle").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(w,{id:t});k$1(`Circle archived: ${o.comArchiveCircle}`),i(e,{archived:o.comArchiveCircle});}catch(o){h$1(o);}});}function at(m){let i$1=m.command("channels").description("Comradecircle channels");i$1.command("list").description("List channels in a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(L,{circleId:t.circle});i(t,e.comListChannels,{headers:["ID","Name","Slug","Type","Visibility","Position"],rows:e.comListChannels.map(o=>[r(o.id,12),o.name,o.slug,o.type,o.visibility,String(o.position??0)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a channel").requiredOption("--circle <id>","Circle ID").requiredOption("--name <name>","Channel name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT","TEXT").option("--visibility <v>","CIRCLE|PRIVATE","CIRCLE").option("--position <n>","Position",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,name:t.name,slug:t.slug,type:(t.type??"TEXT").toUpperCase(),visibility:(t.visibility??"CIRCLE").toUpperCase()};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let o=await b$1(O,{input:e});k$1(`Channel created: ${o.comCreateChannel.name}`),i(t,o.comCreateChannel);}catch(e){h$1(e);}}),i$1.command("update").description("Update a channel").argument("<id>","Channel ID").option("--name <name>","Channel name").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT").option("--visibility <v>","CIRCLE|PRIVATE").option("--position <n>","Position",d).option("--archived <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.name&&(o$1.name=e.name),e.description!==void 0&&(o$1.description=e.description),e.type&&(o$1.type=e.type.toUpperCase()),e.visibility&&(o$1.visibility=e.visibility.toUpperCase()),e.position!==void 0&&(o$1.position=e.position),e.archived!==void 0&&(o$1.isArchived=e.archived),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(A,{id:t,input:o$1});k$1("Channel updated"),i(e,g.comUpdateChannel);}catch(o){h$1(o);}});}function ct(m){let i$1=m.command("memberships").description("Comradecircle circle memberships");i$1.command("list").description("List memberships").option("--circle <id>","Filter by circle ID").option("--status <s>","ACTIVE|PENDING|LEFT|BANNED").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(R,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListMemberships.items,{headers:["ID","Circle","Member","Role","Status"],rows:e.comListMemberships.items.map(o=>[r(o.id,12),r(o.circleId,12),r(o.memberId,12),o.role,o.status])});}catch(e){h$1(e);}}),i$1.command("join").description("Join a circle as the calling member").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(T,{circleId:t.circle});k$1(`Joined circle ${e.comJoinCircle.circleId}`),i(t,e.comJoinCircle);}catch(e){h$1(e);}}),i$1.command("leave").description("Leave a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1($,{circleId:t.circle});k$1(`Left circle: ${e.comLeaveCircle}`),i(t,{left:e.comLeaveCircle});}catch(e){h$1(e);}}),i$1.command("set-role").description("Set a member role").argument("<membershipId>","Membership ID").requiredOption("--role <r>","OWNER|ADMIN|MODERATOR|MEMBER").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(D,{membershipId:t,role:e.role.toUpperCase()});k$1(`Role set to ${o.comSetMemberRole.role}`),i(e,o.comSetMemberRole);}catch(o){h$1(o);}});}function mt(m){let i$1=m.command("posts").description("Comradecircle posts");i$1.command("list").description("List posts").option("--channel <id>","Filter by channel ID").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(U,{channelId:t.channel,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPosts.items,{headers:["ID","Channel","Author","Status","Pinned","Comments","Reactions"],rows:e.comListPosts.items.map(o=>[r(o.id,12),r(o.channelId,12),r(o.authorId,12),o.status,o.isPinned?"yes":"no",String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a post by id").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(S,{id:t});if(!o$1.comPost)throw new o(`Post ${t} not found`);i(e,o$1.comPost);}catch(o){h$1(o);}}),i$1.command("create").description("Create a post").requiredOption("--channel <id>","Channel ID").requiredOption("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED","PUBLISHED").option("--tags <csv>","Comma-separated tags").option("--attachments <csv>","Comma-separated attachment file IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={channelId:t.channel,body:t.body,status:(t.status??"PUBLISHED").toUpperCase()};t.tags&&(e.tags=l(t.tags)),t.attachments&&(e.attachmentFileIds=l(t.attachments));let o=await b$1(M,{input:e});k$1(`Post created: ${o.comCreatePost.id}`),i(t,o.comCreatePost);}catch(e){h$1(e);}}),i$1.command("update").description("Update a post").argument("<id>","Post ID").option("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--pinned <bool>","true|false",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.body&&(o$1.body=e.body),e.status&&(o$1.status=e.status.toUpperCase()),e.pinned!==void 0&&(o$1.isPinned=e.pinned),e.tags&&(o$1.tags=l(e.tags)),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(N,{id:t,input:o$1});k$1("Post updated"),i(e,g.comUpdatePost);}catch(o){h$1(o);}}),i$1.command("remove").description("Remove a post").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(_,{id:t});k$1(`Post removed: ${o.comRemovePost}`),i(e,{removed:o.comRemovePost});}catch(o){h$1(o);}}),i$1.command("react").description("Toggle a reaction on a post").argument("<postId>","Post ID").requiredOption("--type <t>","LIKE|LOVE|CELEBRATE|INSIGHTFUL|SUPPORT|LAUGH").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(F,{postId:t,type:e.type.toUpperCase()});k$1(`Reaction toggled on post ${o.comReactToPost.id}`),i(e,o.comReactToPost);}catch(o){h$1(o);}});}function dt(m){let i$1=m.command("comments").description("Comradecircle post comments");i$1.command("list").description("List comments on a post").requiredOption("--post <id>","Post ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(x,{postId:t.post});i(t,e.comListComments,{headers:["ID","Author","Body","Parent","Hidden"],rows:e.comListComments.map(o=>[r(o.id,12),r(o.authorId,12),r(o.body,40),o.parentId?r(o.parentId,12):"-",o.isHidden?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("add").description("Add a comment to a post").requiredOption("--post <id>","Post ID").requiredOption("--body <text>","Comment body").option("--parent <id>","Parent comment ID (for replies)").option("-f, --format <format>","Output format").action(async t=>{try{let e={postId:t.post,body:t.body};t.parent&&(e.parentId=t.parent);let o=await b$1(k,{input:e});k$1(`Comment added: ${o.comAddComment.id}`),i(t,o.comAddComment);}catch(e){h$1(e);}});}function pt(m){let i$1=m.command("events").description("Comradecircle events");i$1.command("list").description("List events").option("--circle <id>","Filter by circle ID").option("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListEvents.items,{headers:["ID","Title","Mode","Status","Starts","RSVPs"],rows:e.comListEvents.items.map(o=>[r(o.id,12),o.title,o.mode,o.status,q$1(o.startsAt),String(o.rsvpCount??0)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(q,{id:t});if(!o$1.comEvent)throw new o(`Event ${t} not found`);i(e,o$1.comEvent);}catch(o){h$1(o);}}),i$1.command("create").description("Create an event").requiredOption("--circle <id>","Circle ID").requiredOption("--title <t>","Event title").requiredOption("--starts-at <iso>","Start time (ISO date)").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID","ONLINE").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",d).option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,title:t.title,startsAt:t.startsAt,mode:(t.mode??"ONLINE").toUpperCase()};t.description&&(e.description=t.description),t.location&&(e.location=t.location),t.joinUrl&&(e.joinUrl=t.joinUrl),t.capacity!==void 0&&(e.capacity=t.capacity),t.endsAt&&(e.endsAt=t.endsAt),t.tags&&(e.tags=l(t.tags));let o=await b$1(H,{input:e});k$1(`Event created: ${o.comCreateEvent.title}`),i(t,o.comCreateEvent);}catch(e){h$1(e);}}),i$1.command("update").description("Update an event").argument("<id>","Event ID").option("--title <t>","Event title").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",d).option("--starts-at <iso>","Start time (ISO date)").option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.title&&(o$1.title=e.title),e.description!==void 0&&(o$1.description=e.description),e.mode&&(o$1.mode=e.mode.toUpperCase()),e.location!==void 0&&(o$1.location=e.location),e.joinUrl!==void 0&&(o$1.joinUrl=e.joinUrl),e.capacity!==void 0&&(o$1.capacity=e.capacity),e.startsAt&&(o$1.startsAt=e.startsAt),e.endsAt&&(o$1.endsAt=e.endsAt),e.tags&&(o$1.tags=l(e.tags)),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(B,{id:t,input:o$1});k$1("Event updated"),i(e,g.comUpdateEvent);}catch(o){h$1(o);}}),i$1.command("transition").description("Advance an event through its lifecycle").argument("<id>","Event ID").requiredOption("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(j,{id:t,status:e.status.toUpperCase()});k$1(`Event transitioned to ${o.comTransitionEvent.status}`),i(e,o.comTransitionEvent);}catch(o){h$1(o);}}),i$1.command("rsvp").description("RSVP to an event as the calling member").argument("<eventId>","Event ID").requiredOption("--status <s>","GOING|INTERESTED|NOT_GOING|WAITLISTED").option("--note <s>","RSVP note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(W,{eventId:t,status:e.status.toUpperCase(),note:e.note});k$1(`RSVP saved: ${o.comRsvpEvent.status}`),i(e,o.comRsvpEvent);}catch(o){h$1(o);}});}function lt(m){let i$1=m.command("polls").description("Comradecircle polls");i$1.command("list").description("List polls in a circle").requiredOption("--circle <id>","Circle ID").option("--status <s>","OPEN|CLOSED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(J,{circleId:t.circle,status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPolls,{headers:["ID","Question","Status","Anonymous","Multiple"],rows:e.comListPolls.map(o=>[r(o.id,12),r(o.question,40),o.status,o.isAnonymous?"yes":"no",o.allowMultiple?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a poll by id").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(G,{id:t});if(!o$1.comPoll)throw new o(`Poll ${t} not found`);i(e,o$1.comPoll);}catch(o){h$1(o);}}),i$1.command("create").description("Create a poll").requiredOption("--circle <id>","Circle ID").requiredOption("--question <q>","Poll question").requiredOption("--options <csv>","Comma-separated option labels").option("--allow-multiple","Allow multiple selections").option("--anonymous","Anonymous voting").option("--closes-at <iso>","Close time (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e=l(t.options);if(e.length===0)throw new o("--options must contain at least one option");let o$1={circleId:t.circle,question:t.question,options:e,allowMultiple:t.allowMultiple??!1,isAnonymous:t.anonymous??!1};t.closesAt&&(o$1.closesAt=t.closesAt);let g=await b$1(Y,{input:o$1});k$1(`Poll created: ${g.comCreatePoll.id}`),i(t,g.comCreatePoll);}catch(e){h$1(e);}}),i$1.command("close").description("Close a poll").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(z,{id:t});k$1(`Poll closed: ${o.comClosePoll.status}`),i(e,o.comClosePoll);}catch(o){h$1(o);}}),i$1.command("vote").description("Cast a vote for a poll option").argument("<pollId>","Poll ID").requiredOption("--option <id>","Option ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(X,{pollId:t,optionId:e.option});k$1(`Voted: ${o.comVotePoll.label} (${o.comVotePoll.voteCount})`),i(e,o.comVotePoll);}catch(o){h$1(o);}});}function ut(m){let i$1=m.command("profiles").description("Comradecircle member profiles");i$1.command("list").description("List member profiles").option("--discoverable <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Q,{discoverable:t.discoverable,pagination:{limit:t.limit,offset:t.offset}});i(t,e.comListProfiles.items,{headers:["ID","Member","Display Name","Headline","Presence","Discoverable"],rows:e.comListProfiles.items.map(o=>[r(o.id,12),r(o.memberId,12),o.displayName,r(o.headline??"-",30),o.presence??"-",o.discoverable?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a member profile by member id").argument("<memberId>","Member ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(K,{memberId:t});if(!o$1.comProfile)throw new o(`Profile for member ${t} not found`);i(e,o$1.comProfile);}catch(o){h$1(o);}}),i$1.command("upsert").description("Create or update the calling member's profile").requiredOption("--display-name <name>","Display name").option("--headline <s>","Headline").option("--bio <s>","Bio").option("--presence <p>","ONLINE|AWAY|BUSY|OFFLINE").option("--discoverable <bool>","true|false",t=>t==="true").option("--interests <csv>","Comma-separated interests").option("--skills <csv>","Comma-separated skills").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={displayName:t.displayName};t.headline&&(e.headline=t.headline),t.bio&&(e.bio=t.bio),t.presence&&(e.presence=t.presence.toUpperCase()),t.discoverable!==void 0&&(e.discoverable=t.discoverable),t.interests&&(e.interests=l(t.interests)),t.skills&&(e.skills=l(t.skills)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await b$1(Z,{input:e});k$1(`Profile saved: ${o.comUpsertProfile.displayName}`),i(t,o.comUpsertProfile);}catch(e){h$1(e);}});}function ft(m){let i$1=m.command("feed").description("Comradecircle home feed & follows");i$1.command("home").description("The calling member's unified home feed").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(tt,{pagination:{limit:t.limit,offset:t.offset}});i(t,e.comMyFeed.items,{headers:["ID","Channel","Author","Status","Comments","Reactions"],rows:e.comMyFeed.items.map(o=>[r(o.id,12),r(o.channelId,12),r(o.authorId,12),o.status,String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){h$1(e);}}),i$1.command("follows").description("List the calling member's follows").option("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(et,{targetType:t.targetType?t.targetType.toUpperCase():void 0});i(t,e.comMyFollows,{headers:["ID","Target","Target Type","Muted"],rows:e.comMyFollows.map(o=>[r(o.id,12),r(o.targetId,12),o.targetType,o.muted?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("follow").description("Follow a target (circle, channel, or member)").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await b$1(ot,{input:e});k$1(`Following ${o.comFollow.targetType} ${o.comFollow.targetId}`),i(t,o.comFollow);}catch(e){h$1(e);}}),i$1.command("unfollow").description("Unfollow a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await b$1(it,{input:e});k$1(`Unfollowed: ${o.comUnfollow}`),i(t,{unfollowed:o.comUnfollow});}catch(e){h$1(e);}}),i$1.command("mute").description("Mute or unmute a follow").argument("<id>","Follow ID").requiredOption("--muted <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(nt,{id:t,muted:e.muted});k$1(`Follow ${o.comMuteFollow.muted?"muted":"unmuted"}`),i(e,o.comMuteFollow);}catch(o){h$1(o);}});}function gt(m){m.command("health").description("Comradecircle service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d$1(rt);k$1(t.comHealth),i(i$1,{health:t.comHealth});}catch(t){h$1(t);}});}var Ct={id:"comradecircle",version:"1.0.0",displayName:"Comradecircle",dependsOn:["auth","workspaces"],register(m,i){a(i);let t=m.command("comradecircle").description("Comradecircle community circles");st(t),at(t),ct(t),mt(t),dt(t),pt(t),lt(t),ut(t),ft(t),gt(t);}},me=Ct;export{me as default};
|
|
289
|
+
`;function d(m){let i=Number.parseInt(m,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${m}"`);return i}function l(m){return m.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function st(m){let i$1=m.command("circles").description("Comradecircle circles");i$1.command("list").description("List circles").option("--status <s>","ACTIVE|ARCHIVED|SUSPENDED").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(b,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,visibility:t.visibility?t.visibility.toUpperCase():void 0});i(t,e.comListCircles.items,{headers:["ID","Name","Slug","Status","Visibility","Members"],rows:e.comListCircles.items.map(o=>[r(o.id,12),o.name,o.slug,o.status,o.visibility,String(o.memberCount??0)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a circle by id").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(h,{id:t});if(!o$1.comCircle)throw new o(`Circle ${t} not found`);i(e,o$1.comCircle);}catch(o){h$1(o);}}),i$1.command("create").description("Create a circle").requiredOption("--name <name>","Circle name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET","PUBLIC").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,visibility:(t.visibility??"PUBLIC").toUpperCase()};t.description&&(e.description=t.description),t.topic&&(e.topic=t.topic),t.tags&&(e.tags=l(t.tags)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await b$1(v,{input:e});k$1(`Circle created: ${o.comCreateCircle.name}`),i(t,o.comCreateCircle);}catch(e){h$1(e);}}),i$1.command("update").description("Update a circle").argument("<id>","Circle ID").option("--name <name>","Circle name").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.name&&(o$1.name=e.name),e.description!==void 0&&(o$1.description=e.description),e.topic!==void 0&&(o$1.topic=e.topic),e.visibility&&(o$1.visibility=e.visibility.toUpperCase()),e.tags&&(o$1.tags=l(e.tags)),e.avatarFileId&&(o$1.avatarFileId=e.avatarFileId),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(P,{id:t,input:o$1});k$1("Circle updated"),i(e,g.comUpdateCircle);}catch(o){h$1(o);}}),i$1.command("archive").description("Archive a circle").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(w,{id:t});k$1(`Circle archived: ${o.comArchiveCircle}`),i(e,{archived:o.comArchiveCircle});}catch(o){h$1(o);}});}function at(m){let i$1=m.command("channels").description("Comradecircle channels");i$1.command("list").description("List channels in a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(L,{circleId:t.circle});i(t,e.comListChannels.items,{headers:["ID","Name","Slug","Type","Visibility","Position"],rows:e.comListChannels.items.map(o=>[r(o.id,12),o.name,o.slug,o.type,o.visibility,String(o.position??0)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a channel").requiredOption("--circle <id>","Circle ID").requiredOption("--name <name>","Channel name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT","TEXT").option("--visibility <v>","CIRCLE|PRIVATE","CIRCLE").option("--position <n>","Position",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,name:t.name,slug:t.slug,type:(t.type??"TEXT").toUpperCase(),visibility:(t.visibility??"CIRCLE").toUpperCase()};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let o=await b$1(O,{input:e});k$1(`Channel created: ${o.comCreateChannel.name}`),i(t,o.comCreateChannel);}catch(e){h$1(e);}}),i$1.command("update").description("Update a channel").argument("<id>","Channel ID").option("--name <name>","Channel name").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT").option("--visibility <v>","CIRCLE|PRIVATE").option("--position <n>","Position",d).option("--archived <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.name&&(o$1.name=e.name),e.description!==void 0&&(o$1.description=e.description),e.type&&(o$1.type=e.type.toUpperCase()),e.visibility&&(o$1.visibility=e.visibility.toUpperCase()),e.position!==void 0&&(o$1.position=e.position),e.archived!==void 0&&(o$1.isArchived=e.archived),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(A,{id:t,input:o$1});k$1("Channel updated"),i(e,g.comUpdateChannel);}catch(o){h$1(o);}});}function ct(m){let i$1=m.command("memberships").description("Comradecircle circle memberships");i$1.command("list").description("List memberships").option("--circle <id>","Filter by circle ID").option("--status <s>","ACTIVE|PENDING|LEFT|BANNED").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(R,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListMemberships.items,{headers:["ID","Circle","Member","Role","Status"],rows:e.comListMemberships.items.map(o=>[r(o.id,12),r(o.circleId,12),r(o.memberId,12),o.role,o.status])});}catch(e){h$1(e);}}),i$1.command("join").description("Join a circle as the calling member").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(T,{circleId:t.circle});k$1(`Joined circle ${e.comJoinCircle.circleId}`),i(t,e.comJoinCircle);}catch(e){h$1(e);}}),i$1.command("leave").description("Leave a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1($,{circleId:t.circle});k$1(`Left circle: ${e.comLeaveCircle}`),i(t,{left:e.comLeaveCircle});}catch(e){h$1(e);}}),i$1.command("set-role").description("Set a member role").argument("<membershipId>","Membership ID").requiredOption("--role <r>","OWNER|ADMIN|MODERATOR|MEMBER").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(D,{membershipId:t,role:e.role.toUpperCase()});k$1(`Role set to ${o.comSetMemberRole.role}`),i(e,o.comSetMemberRole);}catch(o){h$1(o);}});}function mt(m){let i$1=m.command("posts").description("Comradecircle posts");i$1.command("list").description("List posts").option("--channel <id>","Filter by channel ID").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(U,{channelId:t.channel,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPosts.items,{headers:["ID","Channel","Author","Status","Pinned","Comments","Reactions"],rows:e.comListPosts.items.map(o=>[r(o.id,12),r(o.channelId,12),r(o.authorId,12),o.status,o.isPinned?"yes":"no",String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a post by id").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(S,{id:t});if(!o$1.comPost)throw new o(`Post ${t} not found`);i(e,o$1.comPost);}catch(o){h$1(o);}}),i$1.command("create").description("Create a post").requiredOption("--channel <id>","Channel ID").requiredOption("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED","PUBLISHED").option("--tags <csv>","Comma-separated tags").option("--attachments <csv>","Comma-separated attachment file IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={channelId:t.channel,body:t.body,status:(t.status??"PUBLISHED").toUpperCase()};t.tags&&(e.tags=l(t.tags)),t.attachments&&(e.attachmentFileIds=l(t.attachments));let o=await b$1(M,{input:e});k$1(`Post created: ${o.comCreatePost.id}`),i(t,o.comCreatePost);}catch(e){h$1(e);}}),i$1.command("update").description("Update a post").argument("<id>","Post ID").option("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--pinned <bool>","true|false",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.body&&(o$1.body=e.body),e.status&&(o$1.status=e.status.toUpperCase()),e.pinned!==void 0&&(o$1.isPinned=e.pinned),e.tags&&(o$1.tags=l(e.tags)),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(N,{id:t,input:o$1});k$1("Post updated"),i(e,g.comUpdatePost);}catch(o){h$1(o);}}),i$1.command("remove").description("Remove a post").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(_,{id:t});k$1(`Post removed: ${o.comRemovePost}`),i(e,{removed:o.comRemovePost});}catch(o){h$1(o);}}),i$1.command("react").description("Toggle a reaction on a post").argument("<postId>","Post ID").requiredOption("--type <t>","LIKE|LOVE|CELEBRATE|INSIGHTFUL|SUPPORT|LAUGH").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(F,{postId:t,type:e.type.toUpperCase()});k$1(`Reaction toggled on post ${o.comReactToPost.id}`),i(e,o.comReactToPost);}catch(o){h$1(o);}});}function dt(m){let i$1=m.command("comments").description("Comradecircle post comments");i$1.command("list").description("List comments on a post").requiredOption("--post <id>","Post ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(x,{postId:t.post});i(t,e.comListComments.items,{headers:["ID","Author","Body","Parent","Hidden"],rows:e.comListComments.items.map(o=>[r(o.id,12),r(o.authorId,12),r(o.body,40),o.parentId?r(o.parentId,12):"-",o.isHidden?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("add").description("Add a comment to a post").requiredOption("--post <id>","Post ID").requiredOption("--body <text>","Comment body").option("--parent <id>","Parent comment ID (for replies)").option("-f, --format <format>","Output format").action(async t=>{try{let e={postId:t.post,body:t.body};t.parent&&(e.parentId=t.parent);let o=await b$1(k,{input:e});k$1(`Comment added: ${o.comAddComment.id}`),i(t,o.comAddComment);}catch(e){h$1(e);}});}function pt(m){let i$1=m.command("events").description("Comradecircle events");i$1.command("list").description("List events").option("--circle <id>","Filter by circle ID").option("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListEvents.items,{headers:["ID","Title","Mode","Status","Starts","RSVPs"],rows:e.comListEvents.items.map(o=>[r(o.id,12),o.title,o.mode,o.status,q$1(o.startsAt),String(o.rsvpCount??0)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(q,{id:t});if(!o$1.comEvent)throw new o(`Event ${t} not found`);i(e,o$1.comEvent);}catch(o){h$1(o);}}),i$1.command("create").description("Create an event").requiredOption("--circle <id>","Circle ID").requiredOption("--title <t>","Event title").requiredOption("--starts-at <iso>","Start time (ISO date)").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID","ONLINE").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",d).option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,title:t.title,startsAt:t.startsAt,mode:(t.mode??"ONLINE").toUpperCase()};t.description&&(e.description=t.description),t.location&&(e.location=t.location),t.joinUrl&&(e.joinUrl=t.joinUrl),t.capacity!==void 0&&(e.capacity=t.capacity),t.endsAt&&(e.endsAt=t.endsAt),t.tags&&(e.tags=l(t.tags));let o=await b$1(H,{input:e});k$1(`Event created: ${o.comCreateEvent.title}`),i(t,o.comCreateEvent);}catch(e){h$1(e);}}),i$1.command("update").description("Update an event").argument("<id>","Event ID").option("--title <t>","Event title").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",d).option("--starts-at <iso>","Start time (ISO date)").option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1={};if(e.title&&(o$1.title=e.title),e.description!==void 0&&(o$1.description=e.description),e.mode&&(o$1.mode=e.mode.toUpperCase()),e.location!==void 0&&(o$1.location=e.location),e.joinUrl!==void 0&&(o$1.joinUrl=e.joinUrl),e.capacity!==void 0&&(o$1.capacity=e.capacity),e.startsAt&&(o$1.startsAt=e.startsAt),e.endsAt&&(o$1.endsAt=e.endsAt),e.tags&&(o$1.tags=l(e.tags)),!Object.keys(o$1).length)throw new o("No updates specified");let g=await b$1(B,{id:t,input:o$1});k$1("Event updated"),i(e,g.comUpdateEvent);}catch(o){h$1(o);}}),i$1.command("transition").description("Advance an event through its lifecycle").argument("<id>","Event ID").requiredOption("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(j,{id:t,status:e.status.toUpperCase()});k$1(`Event transitioned to ${o.comTransitionEvent.status}`),i(e,o.comTransitionEvent);}catch(o){h$1(o);}}),i$1.command("rsvp").description("RSVP to an event as the calling member").argument("<eventId>","Event ID").requiredOption("--status <s>","GOING|INTERESTED|NOT_GOING|WAITLISTED").option("--note <s>","RSVP note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(W,{eventId:t,status:e.status.toUpperCase(),note:e.note});k$1(`RSVP saved: ${o.comRsvpEvent.status}`),i(e,o.comRsvpEvent);}catch(o){h$1(o);}});}function lt(m){let i$1=m.command("polls").description("Comradecircle polls");i$1.command("list").description("List polls in a circle").requiredOption("--circle <id>","Circle ID").option("--status <s>","OPEN|CLOSED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(J,{circleId:t.circle,status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPolls.items,{headers:["ID","Question","Status","Anonymous","Multiple"],rows:e.comListPolls.items.map(o=>[r(o.id,12),r(o.question,40),o.status,o.isAnonymous?"yes":"no",o.allowMultiple?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a poll by id").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(G,{id:t});if(!o$1.comPoll)throw new o(`Poll ${t} not found`);i(e,o$1.comPoll);}catch(o){h$1(o);}}),i$1.command("create").description("Create a poll").requiredOption("--circle <id>","Circle ID").requiredOption("--question <q>","Poll question").requiredOption("--options <csv>","Comma-separated option labels").option("--allow-multiple","Allow multiple selections").option("--anonymous","Anonymous voting").option("--closes-at <iso>","Close time (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e=l(t.options);if(e.length===0)throw new o("--options must contain at least one option");let o$1={circleId:t.circle,question:t.question,options:e,allowMultiple:t.allowMultiple??!1,isAnonymous:t.anonymous??!1};t.closesAt&&(o$1.closesAt=t.closesAt);let g=await b$1(Y,{input:o$1});k$1(`Poll created: ${g.comCreatePoll.id}`),i(t,g.comCreatePoll);}catch(e){h$1(e);}}),i$1.command("close").description("Close a poll").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(z,{id:t});k$1(`Poll closed: ${o.comClosePoll.status}`),i(e,o.comClosePoll);}catch(o){h$1(o);}}),i$1.command("vote").description("Cast a vote for a poll option").argument("<pollId>","Poll ID").requiredOption("--option <id>","Option ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(X,{pollId:t,optionId:e.option});k$1(`Voted: ${o.comVotePoll.label} (${o.comVotePoll.voteCount})`),i(e,o.comVotePoll);}catch(o){h$1(o);}});}function ut(m){let i$1=m.command("profiles").description("Comradecircle member profiles");i$1.command("list").description("List member profiles").option("--discoverable <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Q,{discoverable:t.discoverable,pagination:{limit:t.limit,offset:t.offset}});i(t,e.comListProfiles.items,{headers:["ID","Member","Display Name","Headline","Presence","Discoverable"],rows:e.comListProfiles.items.map(o=>[r(o.id,12),r(o.memberId,12),o.displayName,r(o.headline??"-",30),o.presence??"-",o.discoverable?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a member profile by member id").argument("<memberId>","Member ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o$1=await b$1(K,{memberId:t});if(!o$1.comProfile)throw new o(`Profile for member ${t} not found`);i(e,o$1.comProfile);}catch(o){h$1(o);}}),i$1.command("upsert").description("Create or update the calling member's profile").requiredOption("--display-name <name>","Display name").option("--headline <s>","Headline").option("--bio <s>","Bio").option("--presence <p>","ONLINE|AWAY|BUSY|OFFLINE").option("--discoverable <bool>","true|false",t=>t==="true").option("--interests <csv>","Comma-separated interests").option("--skills <csv>","Comma-separated skills").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={displayName:t.displayName};t.headline&&(e.headline=t.headline),t.bio&&(e.bio=t.bio),t.presence&&(e.presence=t.presence.toUpperCase()),t.discoverable!==void 0&&(e.discoverable=t.discoverable),t.interests&&(e.interests=l(t.interests)),t.skills&&(e.skills=l(t.skills)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await b$1(Z,{input:e});k$1(`Profile saved: ${o.comUpsertProfile.displayName}`),i(t,o.comUpsertProfile);}catch(e){h$1(e);}});}function ft(m){let i$1=m.command("feed").description("Comradecircle home feed & follows");i$1.command("home").description("The calling member's unified home feed").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(tt,{pagination:{limit:t.limit,offset:t.offset}});i(t,e.comMyFeed.items,{headers:["ID","Channel","Author","Status","Comments","Reactions"],rows:e.comMyFeed.items.map(o=>[r(o.id,12),r(o.channelId,12),r(o.authorId,12),o.status,String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){h$1(e);}}),i$1.command("follows").description("List the calling member's follows").option("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(et,{targetType:t.targetType?t.targetType.toUpperCase():void 0});i(t,e.comMyFollows.items,{headers:["ID","Target","Target Type","Muted"],rows:e.comMyFollows.items.map(o=>[r(o.id,12),r(o.targetId,12),o.targetType,o.muted?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("follow").description("Follow a target (circle, channel, or member)").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await b$1(ot,{input:e});k$1(`Following ${o.comFollow.targetType} ${o.comFollow.targetId}`),i(t,o.comFollow);}catch(e){h$1(e);}}),i$1.command("unfollow").description("Unfollow a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await b$1(it,{input:e});k$1(`Unfollowed: ${o.comUnfollow}`),i(t,{unfollowed:o.comUnfollow});}catch(e){h$1(e);}}),i$1.command("mute").description("Mute or unmute a follow").argument("<id>","Follow ID").requiredOption("--muted <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await b$1(nt,{id:t,muted:e.muted});k$1(`Follow ${o.comMuteFollow.muted?"muted":"unmuted"}`),i(e,o.comMuteFollow);}catch(o){h$1(o);}});}function gt(m){m.command("health").description("Comradecircle service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d$1(rt);k$1(t.comHealth),i(i$1,{health:t.comHealth});}catch(t){h$1(t);}});}var Ct={id:"comradecircle",version:"1.0.0",displayName:"Comradecircle",dependsOn:["auth","workspaces"],register(m,i){a(i);let t=m.command("comradecircle").description("Comradecircle community circles");st(t),at(t),ct(t),mt(t),dt(t),pt(t),lt(t),ut(t),ft(t),gt(t);}},me=Ct;export{me as default};
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
`,$=`
|
|
49
49
|
query CooListCollections($brandId: ID, $status: CooCollectionStatus) {
|
|
50
50
|
cooListCollections(brandId: $brandId, status: $status) {
|
|
51
|
-
id name description season status brandId tags publishAt endAt createdAt
|
|
51
|
+
items { id name description season status brandId tags publishAt endAt createdAt }
|
|
52
|
+
pageInfo { cursor hasMore }
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
`,P=`
|
|
@@ -126,8 +127,11 @@
|
|
|
126
127
|
`,G=`
|
|
127
128
|
query CooListCollaborations($brandId: ID, $creatorId: ID, $status: CooCollaborationStatus) {
|
|
128
129
|
cooListCollaborations(brandId: $brandId, creatorId: $creatorId, status: $status) {
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
items {
|
|
131
|
+
id title status role brandId creatorId compensation currency startDate endDate
|
|
132
|
+
createdAt
|
|
133
|
+
}
|
|
134
|
+
pageInfo { cursor hasMore }
|
|
131
135
|
}
|
|
132
136
|
}
|
|
133
137
|
`,z=`
|
|
@@ -146,9 +150,11 @@
|
|
|
146
150
|
`,H=`
|
|
147
151
|
query CooGetLook($id: ID!) {
|
|
148
152
|
cooLook(id: $id) {
|
|
149
|
-
id title caption occasion visibility isFeatured likeCount saveCount
|
|
150
|
-
|
|
151
|
-
|
|
153
|
+
id title caption occasion visibility isFeatured likeCount saveCount authorId
|
|
154
|
+
collaborationId
|
|
155
|
+
image { id }
|
|
156
|
+
tags publishedAt
|
|
157
|
+
items { items { id styleItemId position styling } pageInfo { cursor hasMore } }
|
|
152
158
|
createdAt updatedAt workspaceId
|
|
153
159
|
}
|
|
154
160
|
}
|
|
@@ -175,8 +181,9 @@
|
|
|
175
181
|
`,V=`
|
|
176
182
|
mutation CooCreateLook($input: CooCreateLookInput!) {
|
|
177
183
|
cooCreateLook(input: $input) {
|
|
178
|
-
id title caption occasion visibility isFeatured authorId collaborationId
|
|
179
|
-
|
|
184
|
+
id title caption occasion visibility isFeatured authorId collaborationId tags
|
|
185
|
+
items { items { id styleItemId position styling } pageInfo { cursor hasMore } }
|
|
186
|
+
createdAt
|
|
180
187
|
}
|
|
181
188
|
}
|
|
182
189
|
`,Y=`
|
|
@@ -204,15 +211,18 @@
|
|
|
204
211
|
`,Z=`
|
|
205
212
|
query CooGetLookbook($id: ID!) {
|
|
206
213
|
cooLookbook(id: $id) {
|
|
207
|
-
id name description visibility ownerId profileId
|
|
208
|
-
|
|
214
|
+
id name description visibility ownerId profileId
|
|
215
|
+
cover { id }
|
|
216
|
+
tags
|
|
217
|
+
entries { items { id lookId styleItemId note position } pageInfo { cursor hasMore } }
|
|
209
218
|
createdAt updatedAt workspaceId
|
|
210
219
|
}
|
|
211
220
|
}
|
|
212
221
|
`,tt=`
|
|
213
222
|
query CooListLookbooks($ownerId: ID) {
|
|
214
223
|
cooListLookbooks(ownerId: $ownerId) {
|
|
215
|
-
id name description visibility ownerId profileId tags createdAt
|
|
224
|
+
items { id name description visibility ownerId profileId tags createdAt }
|
|
225
|
+
pageInfo { cursor hasMore }
|
|
216
226
|
}
|
|
217
227
|
}
|
|
218
228
|
`,ot=`
|
|
@@ -234,8 +244,11 @@
|
|
|
234
244
|
`,rt=`
|
|
235
245
|
query CooListWardrobeItems($category: CooStyleCategory, $source: CooWardrobeSource) {
|
|
236
246
|
cooListWardrobeItems(category: $category, source: $source) {
|
|
237
|
-
|
|
238
|
-
|
|
247
|
+
items {
|
|
248
|
+
id name brandName category colour size source styleItemId timesWorn lastWornAt tags
|
|
249
|
+
createdAt
|
|
250
|
+
}
|
|
251
|
+
pageInfo { cursor hasMore }
|
|
239
252
|
}
|
|
240
253
|
}
|
|
241
254
|
`,it=`
|
|
@@ -279,4 +292,4 @@
|
|
|
279
292
|
query CooHealth {
|
|
280
293
|
cooHealth
|
|
281
294
|
}
|
|
282
|
-
`;function k(r,n){try{return JSON.parse(n)}catch{throw new d(`--${r} must be valid JSON`)}}function g(r){let n=Number.parseInt(r,10);if(Number.isNaN(n))throw new d(`Expected an integer but got "${r}"`);return n}function I(r){let n=Number.parseFloat(r);if(Number.isNaN(n))throw new d(`Expected a number but got "${r}"`);return n}function l(r){return r.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function pt(r){let n=r.command("brands").description("Coolandlovely brand storefronts");n.command("list").description("List brand storefronts").option("--status <s>","Filter by brand status").option("--featured","Only featured brands").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(v,{status:t.status?t.status.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,o.cooListBrands.items,{headers:["ID","Name","Handle","Status","Featured"],rows:o.cooListBrands.items.map(e=>[p(e.id,12),e.name,e.handle,e.status,e.isFeatured?"yes":"no"])});}catch(o){i(o);}}),n.command("get").description("Get a brand by id").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(A,{id:t});if(!e.cooBrand)throw new d(`Brand ${t} not found`);s(o,e.cooBrand);}catch(e){i(e);}}),n.command("create").description("Create a brand storefront").requiredOption("--name <name>","Brand name").requiredOption("--handle <handle>","Unique storefront handle").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID (wspace-files-svc)").option("--cover-file <id>","Cover File ID (wspace-files-svc)").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,handle:t.handle};t.tagline&&(o.tagline=t.tagline),t.bio&&(o.bio=t.bio),t.websiteUrl&&(o.websiteUrl=t.websiteUrl),t.logoFile&&(o.logoFileId=t.logoFile),t.coverFile&&(o.coverFileId=t.coverFile),t.aesthetics&&(o.aesthetics=l(t.aesthetics)),t.tags&&(o.tags=l(t.tags));let e=await a(T,{input:o});c(`Brand created: ${e.cooCreateBrand.name}`),s(t,e.cooCreateBrand);}catch(o){i(o);}}),n.command("update").description("Update a brand storefront").argument("<id>","Brand ID").option("--name <name>","Brand name").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID").option("--cover-file <id>","Cover File ID").option("--featured <bool>","true|false",t=>t==="true").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.tagline!==void 0&&(e.tagline=o.tagline),o.bio!==void 0&&(e.bio=o.bio),o.websiteUrl!==void 0&&(e.websiteUrl=o.websiteUrl),o.logoFile&&(e.logoFileId=o.logoFile),o.coverFile&&(e.coverFileId=o.coverFile),o.featured!==void 0&&(e.isFeatured=o.featured),o.aesthetics&&(e.aesthetics=l(o.aesthetics)),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(x,{id:t,input:e});c("Brand updated"),s(o,m.cooUpdateBrand);}catch(e){i(e);}}),n.command("transition").description("Advance a brand through its publish lifecycle").argument("<id>","Brand ID").requiredOption("--status <s>","DRAFT|PENDING_REVIEW|PUBLISHED|SUSPENDED|ARCHIVED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(S,{id:t,status:o.status.toUpperCase()});c(`Brand status set to ${e.cooTransitionBrand.status}`),s(o,e.cooTransitionBrand);}catch(e){i(e);}}),n.command("archive").description("Archive a brand storefront").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(R,{id:t});c(`Brand archived: ${e.cooArchiveBrand}`),s(o,{archived:e.cooArchiveBrand});}catch(e){i(e);}});}function mt(r){let n=r.command("collections").description("Coolandlovely seasonal collections");n.command("list").description("List collections").option("--brand <id>","Filter by brand ID").option("--status <s>","Filter by collection status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a($,{brandId:t.brand,status:t.status?t.status.toUpperCase():void 0});s(t,o.cooListCollections,{headers:["ID","Name","Season","Status","Brand"],rows:o.cooListCollections.map(e=>[p(e.id,12),e.name,e.season,e.status,p(e.brandId,12)])});}catch(o){i(o);}}),n.command("get").description("Get a collection by id").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(D,{id:t});if(!e.cooCollection)throw new d(`Collection ${t} not found`);s(o,e.cooCollection);}catch(e){i(e);}}),n.command("create").description("Create a collection").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.description&&(o.description=t.description),t.season&&(o.season=t.season.toUpperCase()),t.coverFile&&(o.coverFileId=t.coverFile),t.publishAt&&(o.publishAt=t.publishAt),t.endAt&&(o.endAt=t.endAt),t.tags&&(o.tags=l(t.tags));let e=await a(P,{input:o});c(`Collection created: ${e.cooCreateCollection.name}`),s(t,e.cooCreateCollection);}catch(o){i(o);}}),n.command("update").description("Update a collection").argument("<id>","Collection ID").option("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.description!==void 0&&(e.description=o.description),o.season&&(e.season=o.season.toUpperCase()),o.coverFile&&(e.coverFileId=o.coverFile),o.publishAt&&(e.publishAt=o.publishAt),o.endAt&&(e.endAt=o.endAt),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(_,{id:t,input:e});c("Collection updated"),s(o,m.cooUpdateCollection);}catch(e){i(e);}}),n.command("publish").description("Publish a collection (go live)").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(N,{id:t});c(`Collection published: ${e.cooPublishCollection.status}`),s(o,e.cooPublishCollection);}catch(e){i(e);}});}function gt(r){let n=r.command("style-items").description("Coolandlovely style items (catalog products)");n.command("list").description("List style items").option("--brand <id>","Filter by brand ID").option("--collection <id>","Filter by collection ID").option("--category <c>","Filter by category").option("--status <s>","Filter by status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(U,{brandId:t.brand,collectionId:t.collection,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,o.cooListStyleItems.items,{headers:["ID","Name","Category","Status","Price"],rows:o.cooListStyleItems.items.map(e=>[p(e.id,12),e.name,e.category,e.status,`${e.price} ${e.currency}`])});}catch(o){i(o);}}),n.command("get").description("Get a style item by id").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(F,{id:t});if(!e.cooStyleItem)throw new d(`Style item ${t} not found`);s(o,e.cooStyleItem);}catch(e){i(e);}}),n.command("create").description("Create a style item").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.category&&(o.category=t.category.toUpperCase()),t.collection&&(o.collectionId=t.collection),t.description&&(o.description=t.description),t.sku&&(o.sku=t.sku),t.price!==void 0&&(o.price=t.price),t.currency&&(o.currency=t.currency),t.imageFile&&(o.imageFileId=t.imageFile),t.colours&&(o.colours=l(t.colours)),t.sizes&&(o.sizes=l(t.sizes)),t.materials&&(o.materials=l(t.materials)),t.tags&&(o.tags=l(t.tags));let e=await a(B,{input:o});c(`Style item created: ${e.cooCreateStyleItem.name}`),s(t,e.cooCreateStyleItem);}catch(o){i(o);}}),n.command("update").description("Update a style item").argument("<id>","Style item ID").option("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.category&&(e.category=o.category.toUpperCase()),o.collection&&(e.collectionId=o.collection),o.description!==void 0&&(e.description=o.description),o.sku!==void 0&&(e.sku=o.sku),o.price!==void 0&&(e.price=o.price),o.currency&&(e.currency=o.currency),o.imageFile&&(e.imageFileId=o.imageFile),o.colours&&(e.colours=l(o.colours)),o.sizes&&(e.sizes=l(o.sizes)),o.materials&&(e.materials=l(o.materials)),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(W,{id:t,input:e});c("Style item updated"),s(o,m.cooUpdateStyleItem);}catch(e){i(e);}}),n.command("archive").description("Archive (retire) a style item").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(q,{id:t});c(`Style item archived: ${e.cooArchiveStyleItem}`),s(o,{archived:e.cooArchiveStyleItem});}catch(e){i(e);}});}function ft(r){let n=r.command("collaborations").description("Coolandlovely brand \u2194 creator collaborations");n.command("list").description("List collaborations").option("--brand <id>","Filter by brand ID").option("--creator <id>","Filter by creator ID").option("--status <s>","Filter by status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(G,{brandId:t.brand,creatorId:t.creator,status:t.status?t.status.toUpperCase():void 0});s(t,o.cooListCollaborations,{headers:["ID","Title","Status","Role","Brand","Creator"],rows:o.cooListCollaborations.map(e=>[p(e.id,12),e.title,e.status,e.role,p(e.brandId,12),p(e.creatorId,12)])});}catch(o){i(o);}}),n.command("get").description("Get a collaboration by id").argument("<id>","Collaboration ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(M,{id:t});if(!e.cooCollaboration)throw new d(`Collaboration ${t} not found`);s(o,e.cooCollaboration);}catch(e){i(e);}}),n.command("create").description("Create a collaboration").requiredOption("--brand <id>","Brand ID").requiredOption("--creator <id>","Creator user ID").requiredOption("--title <title>","Collaboration title").option("--brief <s>","Brief").option("--collection <id>","Collection ID").option("--role <r>","CREATOR|STYLIST|PHOTOGRAPHER|BRAND").option("--compensation <n>","Compensation",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO 8601)").option("--end-date <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,creatorId:t.creator,title:t.title};t.brief&&(o.brief=t.brief),t.collection&&(o.collectionId=t.collection),t.role&&(o.role=t.role.toUpperCase()),t.compensation!==void 0&&(o.compensation=t.compensation),t.currency&&(o.currency=t.currency),t.startDate&&(o.startDate=t.startDate),t.endDate&&(o.endDate=t.endDate),t.tags&&(o.tags=l(t.tags));let e=await a(z,{input:o});c(`Collaboration created: ${e.cooCreateCollaboration.title}`),s(t,e.cooCreateCollaboration);}catch(o){i(o);}}),n.command("transition").description("Advance a collaboration through its lifecycle").argument("<id>","Collaboration ID").requiredOption("--status <s>","PROPOSED|ACCEPTED|DECLINED|IN_PROGRESS|PUBLISHED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(K,{id:t,status:o.status.toUpperCase()});c(`Collaboration status set to ${e.cooTransitionCollaboration.status}`),s(o,e.cooTransitionCollaboration);}catch(e){i(e);}});}function Ct(r){let n=r.command("looks").description("Coolandlovely styled looks");n.command("list").description("List looks").option("--author <id>","Filter by author ID").option("--occasion <o>","Filter by occasion").option("--featured","Only featured looks").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(j,{authorId:t.author,occasion:t.occasion?t.occasion.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,o.cooListLooks.items,{headers:["ID","Title","Occasion","Visibility","Likes","Featured"],rows:o.cooListLooks.items.map(e=>[p(e.id,12),e.title,e.occasion,e.visibility,String(e.likeCount??0),e.isFeatured?"yes":"no"])});}catch(o){i(o);}}),n.command("get").description("Get a look by id").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(H,{id:t});if(!e.cooLook)throw new d(`Look ${t} not found`);s(o,e.cooLook);}catch(e){i(e);}}),n.command("create").description("Create a look").requiredOption("--title <title>","Look title").option("--caption <s>","Caption").option("--collaboration <id>","Collaboration ID").option("--image-file <id>","Image File ID").option("--occasion <o>","EVERYDAY|WORK|EVENING|PARTY|WEDDING_GUEST|VACATION|ACTIVE|OTHER").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--items <json>","Look items JSON array: [{ styleItemId, position?, styling? }]").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={title:t.title};if(t.caption&&(o.caption=t.caption),t.collaboration&&(o.collaborationId=t.collaboration),t.imageFile&&(o.imageFileId=t.imageFile),t.occasion&&(o.occasion=t.occasion.toUpperCase()),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.items){let m=k("items",t.items);if(!Array.isArray(m))throw new d("--items must be a JSON array");o.items=m;}t.tags&&(o.tags=l(t.tags));let e=await a(V,{input:o});c(`Look created: ${e.cooCreateLook.title}`),s(t,e.cooCreateLook);}catch(o){i(o);}}),n.command("update").description("Update a look").argument("<id>","Look ID").option("--title <title>","Look title").option("--caption <s>","Caption").option("--image-file <id>","Image File ID").option("--occasion <o>","Occasion").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.title&&(e.title=o.title),o.caption!==void 0&&(e.caption=o.caption),o.imageFile&&(e.imageFileId=o.imageFile),o.occasion&&(e.occasion=o.occasion.toUpperCase()),o.visibility&&(e.visibility=o.visibility.toUpperCase()),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(Y,{id:t,input:e});c("Look updated"),s(o,m.cooUpdateLook);}catch(e){i(e);}}),n.command("publish").description("Publish a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(J,{id:t});c(`Look published: ${e.cooPublishLook.title}`),s(o,e.cooPublishLook);}catch(e){i(e);}}),n.command("like").description("Like a published look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(Q,{id:t});c(`Look liked (likes: ${e.cooLikeLook.likeCount??0})`),s(o,e.cooLikeLook);}catch(e){i(e);}}),n.command("delete").description("Delete a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(X,{id:t});c(`Look deleted: ${e.cooDeleteLook}`),s(o,{deleted:e.cooDeleteLook});}catch(e){i(e);}});}function yt(r){let n=r.command("lookbooks").description("Coolandlovely curated lookbooks");n.command("list").description("List lookbooks").option("--owner <id>","Filter by owner ID").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(tt,{ownerId:t.owner});s(t,o.cooListLookbooks,{headers:["ID","Name","Visibility","Owner"],rows:o.cooListLookbooks.map(e=>[p(e.id,12),e.name,e.visibility,p(e.ownerId,12)])});}catch(o){i(o);}}),n.command("get").description("Get a lookbook by id").argument("<id>","Lookbook ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(Z,{id:t});if(!e.cooLookbook)throw new d(`Lookbook ${t} not found`);s(o,e.cooLookbook);}catch(e){i(e);}}),n.command("create").description("Create a lookbook").requiredOption("--name <name>","Lookbook name").option("--description <s>","Description").option("--cover-file <id>","Cover File ID").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.description&&(o.description=t.description),t.coverFile&&(o.coverFileId=t.coverFile),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.tags&&(o.tags=l(t.tags));let e=await a(ot,{input:o});c(`Lookbook created: ${e.cooCreateLookbook.name}`),s(t,e.cooCreateLookbook);}catch(o){i(o);}}),n.command("add-entry").description("Add an entry (look or style item) to a lookbook").requiredOption("--lookbook <id>","Lookbook ID").option("--look <id>","Look ID to add").option("--style-item <id>","Style item ID to add").option("--note <s>","Note").option("--position <n>","Position",g).option("-f, --format <format>","Output format").action(async t=>{try{let o={lookbookId:t.lookbook};t.look&&(o.lookId=t.look),t.styleItem&&(o.styleItemId=t.styleItem),t.note&&(o.note=t.note),t.position!==void 0&&(o.position=t.position);let e=await a(et,{input:o});c(`Lookbook entry added: ${e.cooAddLookbookEntry.id}`),s(t,e.cooAddLookbookEntry);}catch(o){i(o);}}),n.command("remove-entry").description("Remove an entry from a lookbook").argument("<id>","Lookbook entry ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(nt,{id:t});c(`Lookbook entry removed: ${e.cooRemoveLookbookEntry}`),s(o,{removed:e.cooRemoveLookbookEntry});}catch(e){i(e);}});}function bt(r){let n=r.command("wardrobe").description("Coolandlovely digital wardrobe (the shopper's own pieces)");n.command("list").description("List wardrobe items").option("--category <c>","Filter by category").option("--source <s>","Filter by source").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(rt,{category:t.category?t.category.toUpperCase():void 0,source:t.source?t.source.toUpperCase():void 0});s(t,o.cooListWardrobeItems,{headers:["ID","Name","Category","Source","Times Worn"],rows:o.cooListWardrobeItems.map(e=>[p(e.id,12),e.name,e.category,e.source,String(e.timesWorn??0)])});}catch(o){i(o);}}),n.command("create").description("Add an item to the wardrobe").requiredOption("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--style-item <id>","Linked style item ID").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.brandName&&(o.brandName=t.brandName),t.category&&(o.category=t.category.toUpperCase()),t.colour&&(o.colour=t.colour),t.size&&(o.size=t.size),t.source&&(o.source=t.source.toUpperCase()),t.styleItem&&(o.styleItemId=t.styleItem),t.imageFile&&(o.imageFileId=t.imageFile),t.notes&&(o.notes=t.notes),t.tags&&(o.tags=l(t.tags));let e=await a(it,{input:o});c(`Wardrobe item added: ${e.cooCreateWardrobeItem.name}`),s(t,e.cooCreateWardrobeItem);}catch(o){i(o);}}),n.command("update").description("Update a wardrobe item").argument("<id>","Wardrobe item ID").option("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.brandName!==void 0&&(e.brandName=o.brandName),o.category&&(e.category=o.category.toUpperCase()),o.colour!==void 0&&(e.colour=o.colour),o.size!==void 0&&(e.size=o.size),o.source&&(e.source=o.source.toUpperCase()),o.imageFile&&(e.imageFileId=o.imageFile),o.notes!==void 0&&(e.notes=o.notes),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(st,{id:t,input:e});c("Wardrobe item updated"),s(o,m.cooUpdateWardrobeItem);}catch(e){i(e);}}),n.command("wear").description("Log that the shopper wore a wardrobe piece").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(at,{id:t});c(`Wear logged (times worn: ${e.cooLogWardrobeWear.timesWorn??0})`),s(o,e.cooLogWardrobeWear);}catch(e){i(e);}}),n.command("remove").description("Remove a wardrobe item").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(ct,{id:t});c(`Wardrobe item removed: ${e.cooRemoveWardrobeItem}`),s(o,{removed:e.cooRemoveWardrobeItem});}catch(e){i(e);}});}function It(r){let n=r.command("profile").description("Coolandlovely shopper style profile (self-scoped)");n.command("get").description("Show the calling shopper's own style profile").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(dt);if(!o.cooMyStyleProfile)throw new d("No style profile yet. Run `profile upsert` to create one.");s(t,o.cooMyStyleProfile);}catch(o){i(o);}}),n.command("upsert").description("Create or update the calling shopper style profile").option("--display-name <s>","Display name").option("--bio <s>","Bio").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--favourite-brands <csv>","Comma-separated favourite brands").option("--palette <csv>","Comma-separated colour palette").option("--style-preferences <csv>","Comma-separated style preferences").option("--sizes <json>",'Sizes JSON (e.g. {"tops":"M","shoes":"8"})').option("-f, --format <format>","Output format").action(async t=>{try{let o={};t.displayName&&(o.displayName=t.displayName),t.bio!==void 0&&(o.bio=t.bio),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.favouriteBrands&&(o.favouriteBrands=l(t.favouriteBrands)),t.palette&&(o.palette=l(t.palette)),t.stylePreferences&&(o.stylePreferences=l(t.stylePreferences)),t.sizes&&(o.sizes=k("sizes",t.sizes));let e=await a(lt,{input:o});c("Style profile saved"),s(t,e.cooUpsertStyleProfile);}catch(o){i(o);}});}function kt(r){r.command("health").description("Coolandlovely service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await w(ut);c(t.cooHealth),s(n,{health:t.cooHealth});}catch(t){i(t);}});}var $t={id:"coolandlovely",version:"1.0.0",displayName:"Coolandlovely",dependsOn:["auth","workspaces"],register(r,n){O(n);let t=r.command("coolandlovely").description("Coolandlovely fashion & lifestyle platform");pt(t),mt(t),gt(t),ft(t),Ct(t),yt(t),bt(t),It(t),kt(t);}},ve=$t;module.exports=ve;
|
|
295
|
+
`;function k(r,n){try{return JSON.parse(n)}catch{throw new d(`--${r} must be valid JSON`)}}function g(r){let n=Number.parseInt(r,10);if(Number.isNaN(n))throw new d(`Expected an integer but got "${r}"`);return n}function I(r){let n=Number.parseFloat(r);if(Number.isNaN(n))throw new d(`Expected a number but got "${r}"`);return n}function l(r){return r.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function pt(r){let n=r.command("brands").description("Coolandlovely brand storefronts");n.command("list").description("List brand storefronts").option("--status <s>","Filter by brand status").option("--featured","Only featured brands").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(v,{status:t.status?t.status.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,o.cooListBrands.items,{headers:["ID","Name","Handle","Status","Featured"],rows:o.cooListBrands.items.map(e=>[p(e.id,12),e.name,e.handle,e.status,e.isFeatured?"yes":"no"])});}catch(o){i(o);}}),n.command("get").description("Get a brand by id").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(A,{id:t});if(!e.cooBrand)throw new d(`Brand ${t} not found`);s(o,e.cooBrand);}catch(e){i(e);}}),n.command("create").description("Create a brand storefront").requiredOption("--name <name>","Brand name").requiredOption("--handle <handle>","Unique storefront handle").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID (wspace-files-svc)").option("--cover-file <id>","Cover File ID (wspace-files-svc)").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,handle:t.handle};t.tagline&&(o.tagline=t.tagline),t.bio&&(o.bio=t.bio),t.websiteUrl&&(o.websiteUrl=t.websiteUrl),t.logoFile&&(o.logoFileId=t.logoFile),t.coverFile&&(o.coverFileId=t.coverFile),t.aesthetics&&(o.aesthetics=l(t.aesthetics)),t.tags&&(o.tags=l(t.tags));let e=await a(T,{input:o});c(`Brand created: ${e.cooCreateBrand.name}`),s(t,e.cooCreateBrand);}catch(o){i(o);}}),n.command("update").description("Update a brand storefront").argument("<id>","Brand ID").option("--name <name>","Brand name").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID").option("--cover-file <id>","Cover File ID").option("--featured <bool>","true|false",t=>t==="true").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.tagline!==void 0&&(e.tagline=o.tagline),o.bio!==void 0&&(e.bio=o.bio),o.websiteUrl!==void 0&&(e.websiteUrl=o.websiteUrl),o.logoFile&&(e.logoFileId=o.logoFile),o.coverFile&&(e.coverFileId=o.coverFile),o.featured!==void 0&&(e.isFeatured=o.featured),o.aesthetics&&(e.aesthetics=l(o.aesthetics)),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(x,{id:t,input:e});c("Brand updated"),s(o,m.cooUpdateBrand);}catch(e){i(e);}}),n.command("transition").description("Advance a brand through its publish lifecycle").argument("<id>","Brand ID").requiredOption("--status <s>","DRAFT|PENDING_REVIEW|PUBLISHED|SUSPENDED|ARCHIVED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(S,{id:t,status:o.status.toUpperCase()});c(`Brand status set to ${e.cooTransitionBrand.status}`),s(o,e.cooTransitionBrand);}catch(e){i(e);}}),n.command("archive").description("Archive a brand storefront").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(R,{id:t});c(`Brand archived: ${e.cooArchiveBrand}`),s(o,{archived:e.cooArchiveBrand});}catch(e){i(e);}});}function mt(r){let n=r.command("collections").description("Coolandlovely seasonal collections");n.command("list").description("List collections").option("--brand <id>","Filter by brand ID").option("--status <s>","Filter by collection status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a($,{brandId:t.brand,status:t.status?t.status.toUpperCase():void 0});s(t,o.cooListCollections.items,{headers:["ID","Name","Season","Status","Brand"],rows:o.cooListCollections.items.map(e=>[p(e.id,12),e.name,e.season,e.status,p(e.brandId,12)])});}catch(o){i(o);}}),n.command("get").description("Get a collection by id").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(D,{id:t});if(!e.cooCollection)throw new d(`Collection ${t} not found`);s(o,e.cooCollection);}catch(e){i(e);}}),n.command("create").description("Create a collection").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.description&&(o.description=t.description),t.season&&(o.season=t.season.toUpperCase()),t.coverFile&&(o.coverFileId=t.coverFile),t.publishAt&&(o.publishAt=t.publishAt),t.endAt&&(o.endAt=t.endAt),t.tags&&(o.tags=l(t.tags));let e=await a(P,{input:o});c(`Collection created: ${e.cooCreateCollection.name}`),s(t,e.cooCreateCollection);}catch(o){i(o);}}),n.command("update").description("Update a collection").argument("<id>","Collection ID").option("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.description!==void 0&&(e.description=o.description),o.season&&(e.season=o.season.toUpperCase()),o.coverFile&&(e.coverFileId=o.coverFile),o.publishAt&&(e.publishAt=o.publishAt),o.endAt&&(e.endAt=o.endAt),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(_,{id:t,input:e});c("Collection updated"),s(o,m.cooUpdateCollection);}catch(e){i(e);}}),n.command("publish").description("Publish a collection (go live)").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(N,{id:t});c(`Collection published: ${e.cooPublishCollection.status}`),s(o,e.cooPublishCollection);}catch(e){i(e);}});}function gt(r){let n=r.command("style-items").description("Coolandlovely style items (catalog products)");n.command("list").description("List style items").option("--brand <id>","Filter by brand ID").option("--collection <id>","Filter by collection ID").option("--category <c>","Filter by category").option("--status <s>","Filter by status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(U,{brandId:t.brand,collectionId:t.collection,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,o.cooListStyleItems.items,{headers:["ID","Name","Category","Status","Price"],rows:o.cooListStyleItems.items.map(e=>[p(e.id,12),e.name,e.category,e.status,`${e.price} ${e.currency}`])});}catch(o){i(o);}}),n.command("get").description("Get a style item by id").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(F,{id:t});if(!e.cooStyleItem)throw new d(`Style item ${t} not found`);s(o,e.cooStyleItem);}catch(e){i(e);}}),n.command("create").description("Create a style item").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.category&&(o.category=t.category.toUpperCase()),t.collection&&(o.collectionId=t.collection),t.description&&(o.description=t.description),t.sku&&(o.sku=t.sku),t.price!==void 0&&(o.price=t.price),t.currency&&(o.currency=t.currency),t.imageFile&&(o.imageFileId=t.imageFile),t.colours&&(o.colours=l(t.colours)),t.sizes&&(o.sizes=l(t.sizes)),t.materials&&(o.materials=l(t.materials)),t.tags&&(o.tags=l(t.tags));let e=await a(B,{input:o});c(`Style item created: ${e.cooCreateStyleItem.name}`),s(t,e.cooCreateStyleItem);}catch(o){i(o);}}),n.command("update").description("Update a style item").argument("<id>","Style item ID").option("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.category&&(e.category=o.category.toUpperCase()),o.collection&&(e.collectionId=o.collection),o.description!==void 0&&(e.description=o.description),o.sku!==void 0&&(e.sku=o.sku),o.price!==void 0&&(e.price=o.price),o.currency&&(e.currency=o.currency),o.imageFile&&(e.imageFileId=o.imageFile),o.colours&&(e.colours=l(o.colours)),o.sizes&&(e.sizes=l(o.sizes)),o.materials&&(e.materials=l(o.materials)),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(W,{id:t,input:e});c("Style item updated"),s(o,m.cooUpdateStyleItem);}catch(e){i(e);}}),n.command("archive").description("Archive (retire) a style item").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(q,{id:t});c(`Style item archived: ${e.cooArchiveStyleItem}`),s(o,{archived:e.cooArchiveStyleItem});}catch(e){i(e);}});}function ft(r){let n=r.command("collaborations").description("Coolandlovely brand \u2194 creator collaborations");n.command("list").description("List collaborations").option("--brand <id>","Filter by brand ID").option("--creator <id>","Filter by creator ID").option("--status <s>","Filter by status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(G,{brandId:t.brand,creatorId:t.creator,status:t.status?t.status.toUpperCase():void 0});s(t,o.cooListCollaborations.items,{headers:["ID","Title","Status","Role","Brand","Creator"],rows:o.cooListCollaborations.items.map(e=>[p(e.id,12),e.title,e.status,e.role,p(e.brandId,12),p(e.creatorId,12)])});}catch(o){i(o);}}),n.command("get").description("Get a collaboration by id").argument("<id>","Collaboration ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(M,{id:t});if(!e.cooCollaboration)throw new d(`Collaboration ${t} not found`);s(o,e.cooCollaboration);}catch(e){i(e);}}),n.command("create").description("Create a collaboration").requiredOption("--brand <id>","Brand ID").requiredOption("--creator <id>","Creator user ID").requiredOption("--title <title>","Collaboration title").option("--brief <s>","Brief").option("--collection <id>","Collection ID").option("--role <r>","CREATOR|STYLIST|PHOTOGRAPHER|BRAND").option("--compensation <n>","Compensation",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO 8601)").option("--end-date <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,creatorId:t.creator,title:t.title};t.brief&&(o.brief=t.brief),t.collection&&(o.collectionId=t.collection),t.role&&(o.role=t.role.toUpperCase()),t.compensation!==void 0&&(o.compensation=t.compensation),t.currency&&(o.currency=t.currency),t.startDate&&(o.startDate=t.startDate),t.endDate&&(o.endDate=t.endDate),t.tags&&(o.tags=l(t.tags));let e=await a(z,{input:o});c(`Collaboration created: ${e.cooCreateCollaboration.title}`),s(t,e.cooCreateCollaboration);}catch(o){i(o);}}),n.command("transition").description("Advance a collaboration through its lifecycle").argument("<id>","Collaboration ID").requiredOption("--status <s>","PROPOSED|ACCEPTED|DECLINED|IN_PROGRESS|PUBLISHED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(K,{id:t,status:o.status.toUpperCase()});c(`Collaboration status set to ${e.cooTransitionCollaboration.status}`),s(o,e.cooTransitionCollaboration);}catch(e){i(e);}});}function Ct(r){let n=r.command("looks").description("Coolandlovely styled looks");n.command("list").description("List looks").option("--author <id>","Filter by author ID").option("--occasion <o>","Filter by occasion").option("--featured","Only featured looks").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(j,{authorId:t.author,occasion:t.occasion?t.occasion.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,o.cooListLooks.items,{headers:["ID","Title","Occasion","Visibility","Likes","Featured"],rows:o.cooListLooks.items.map(e=>[p(e.id,12),e.title,e.occasion,e.visibility,String(e.likeCount??0),e.isFeatured?"yes":"no"])});}catch(o){i(o);}}),n.command("get").description("Get a look by id").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(H,{id:t});if(!e.cooLook)throw new d(`Look ${t} not found`);s(o,e.cooLook);}catch(e){i(e);}}),n.command("create").description("Create a look").requiredOption("--title <title>","Look title").option("--caption <s>","Caption").option("--collaboration <id>","Collaboration ID").option("--image-file <id>","Image File ID").option("--occasion <o>","EVERYDAY|WORK|EVENING|PARTY|WEDDING_GUEST|VACATION|ACTIVE|OTHER").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--items <json>","Look items JSON array: [{ styleItemId, position?, styling? }]").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={title:t.title};if(t.caption&&(o.caption=t.caption),t.collaboration&&(o.collaborationId=t.collaboration),t.imageFile&&(o.imageFileId=t.imageFile),t.occasion&&(o.occasion=t.occasion.toUpperCase()),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.items){let m=k("items",t.items);if(!Array.isArray(m))throw new d("--items must be a JSON array");o.items=m;}t.tags&&(o.tags=l(t.tags));let e=await a(V,{input:o});c(`Look created: ${e.cooCreateLook.title}`),s(t,e.cooCreateLook);}catch(o){i(o);}}),n.command("update").description("Update a look").argument("<id>","Look ID").option("--title <title>","Look title").option("--caption <s>","Caption").option("--image-file <id>","Image File ID").option("--occasion <o>","Occasion").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.title&&(e.title=o.title),o.caption!==void 0&&(e.caption=o.caption),o.imageFile&&(e.imageFileId=o.imageFile),o.occasion&&(e.occasion=o.occasion.toUpperCase()),o.visibility&&(e.visibility=o.visibility.toUpperCase()),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(Y,{id:t,input:e});c("Look updated"),s(o,m.cooUpdateLook);}catch(e){i(e);}}),n.command("publish").description("Publish a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(J,{id:t});c(`Look published: ${e.cooPublishLook.title}`),s(o,e.cooPublishLook);}catch(e){i(e);}}),n.command("like").description("Like a published look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(Q,{id:t});c(`Look liked (likes: ${e.cooLikeLook.likeCount??0})`),s(o,e.cooLikeLook);}catch(e){i(e);}}),n.command("delete").description("Delete a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(X,{id:t});c(`Look deleted: ${e.cooDeleteLook}`),s(o,{deleted:e.cooDeleteLook});}catch(e){i(e);}});}function yt(r){let n=r.command("lookbooks").description("Coolandlovely curated lookbooks");n.command("list").description("List lookbooks").option("--owner <id>","Filter by owner ID").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(tt,{ownerId:t.owner});s(t,o.cooListLookbooks.items,{headers:["ID","Name","Visibility","Owner"],rows:o.cooListLookbooks.items.map(e=>[p(e.id,12),e.name,e.visibility,p(e.ownerId,12)])});}catch(o){i(o);}}),n.command("get").description("Get a lookbook by id").argument("<id>","Lookbook ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(Z,{id:t});if(!e.cooLookbook)throw new d(`Lookbook ${t} not found`);s(o,e.cooLookbook);}catch(e){i(e);}}),n.command("create").description("Create a lookbook").requiredOption("--name <name>","Lookbook name").option("--description <s>","Description").option("--cover-file <id>","Cover File ID").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.description&&(o.description=t.description),t.coverFile&&(o.coverFileId=t.coverFile),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.tags&&(o.tags=l(t.tags));let e=await a(ot,{input:o});c(`Lookbook created: ${e.cooCreateLookbook.name}`),s(t,e.cooCreateLookbook);}catch(o){i(o);}}),n.command("add-entry").description("Add an entry (look or style item) to a lookbook").requiredOption("--lookbook <id>","Lookbook ID").option("--look <id>","Look ID to add").option("--style-item <id>","Style item ID to add").option("--note <s>","Note").option("--position <n>","Position",g).option("-f, --format <format>","Output format").action(async t=>{try{let o={lookbookId:t.lookbook};t.look&&(o.lookId=t.look),t.styleItem&&(o.styleItemId=t.styleItem),t.note&&(o.note=t.note),t.position!==void 0&&(o.position=t.position);let e=await a(et,{input:o});c(`Lookbook entry added: ${e.cooAddLookbookEntry.id}`),s(t,e.cooAddLookbookEntry);}catch(o){i(o);}}),n.command("remove-entry").description("Remove an entry from a lookbook").argument("<id>","Lookbook entry ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(nt,{id:t});c(`Lookbook entry removed: ${e.cooRemoveLookbookEntry}`),s(o,{removed:e.cooRemoveLookbookEntry});}catch(e){i(e);}});}function bt(r){let n=r.command("wardrobe").description("Coolandlovely digital wardrobe (the shopper's own pieces)");n.command("list").description("List wardrobe items").option("--category <c>","Filter by category").option("--source <s>","Filter by source").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(rt,{category:t.category?t.category.toUpperCase():void 0,source:t.source?t.source.toUpperCase():void 0});s(t,o.cooListWardrobeItems.items,{headers:["ID","Name","Category","Source","Times Worn"],rows:o.cooListWardrobeItems.items.map(e=>[p(e.id,12),e.name,e.category,e.source,String(e.timesWorn??0)])});}catch(o){i(o);}}),n.command("create").description("Add an item to the wardrobe").requiredOption("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--style-item <id>","Linked style item ID").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.brandName&&(o.brandName=t.brandName),t.category&&(o.category=t.category.toUpperCase()),t.colour&&(o.colour=t.colour),t.size&&(o.size=t.size),t.source&&(o.source=t.source.toUpperCase()),t.styleItem&&(o.styleItemId=t.styleItem),t.imageFile&&(o.imageFileId=t.imageFile),t.notes&&(o.notes=t.notes),t.tags&&(o.tags=l(t.tags));let e=await a(it,{input:o});c(`Wardrobe item added: ${e.cooCreateWardrobeItem.name}`),s(t,e.cooCreateWardrobeItem);}catch(o){i(o);}}),n.command("update").description("Update a wardrobe item").argument("<id>","Wardrobe item ID").option("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e={};if(o.name&&(e.name=o.name),o.brandName!==void 0&&(e.brandName=o.brandName),o.category&&(e.category=o.category.toUpperCase()),o.colour!==void 0&&(e.colour=o.colour),o.size!==void 0&&(e.size=o.size),o.source&&(e.source=o.source.toUpperCase()),o.imageFile&&(e.imageFileId=o.imageFile),o.notes!==void 0&&(e.notes=o.notes),o.tags&&(e.tags=l(o.tags)),!Object.keys(e).length)throw new d("No updates specified");let m=await a(st,{id:t,input:e});c("Wardrobe item updated"),s(o,m.cooUpdateWardrobeItem);}catch(e){i(e);}}),n.command("wear").description("Log that the shopper wore a wardrobe piece").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(at,{id:t});c(`Wear logged (times worn: ${e.cooLogWardrobeWear.timesWorn??0})`),s(o,e.cooLogWardrobeWear);}catch(e){i(e);}}),n.command("remove").description("Remove a wardrobe item").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await a(ct,{id:t});c(`Wardrobe item removed: ${e.cooRemoveWardrobeItem}`),s(o,{removed:e.cooRemoveWardrobeItem});}catch(e){i(e);}});}function It(r){let n=r.command("profile").description("Coolandlovely shopper style profile (self-scoped)");n.command("get").description("Show the calling shopper's own style profile").option("-f, --format <format>","Output format").action(async t=>{try{let o=await a(dt);if(!o.cooMyStyleProfile)throw new d("No style profile yet. Run `profile upsert` to create one.");s(t,o.cooMyStyleProfile);}catch(o){i(o);}}),n.command("upsert").description("Create or update the calling shopper style profile").option("--display-name <s>","Display name").option("--bio <s>","Bio").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--favourite-brands <csv>","Comma-separated favourite brands").option("--palette <csv>","Comma-separated colour palette").option("--style-preferences <csv>","Comma-separated style preferences").option("--sizes <json>",'Sizes JSON (e.g. {"tops":"M","shoes":"8"})').option("-f, --format <format>","Output format").action(async t=>{try{let o={};t.displayName&&(o.displayName=t.displayName),t.bio!==void 0&&(o.bio=t.bio),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.favouriteBrands&&(o.favouriteBrands=l(t.favouriteBrands)),t.palette&&(o.palette=l(t.palette)),t.stylePreferences&&(o.stylePreferences=l(t.stylePreferences)),t.sizes&&(o.sizes=k("sizes",t.sizes));let e=await a(lt,{input:o});c("Style profile saved"),s(t,e.cooUpsertStyleProfile);}catch(o){i(o);}});}function kt(r){r.command("health").description("Coolandlovely service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await w(ut);c(t.cooHealth),s(n,{health:t.cooHealth});}catch(t){i(t);}});}var $t={id:"coolandlovely",version:"1.0.0",displayName:"Coolandlovely",dependsOn:["auth","workspaces"],register(r,n){O(n);let t=r.command("coolandlovely").description("Coolandlovely fashion & lifestyle platform");pt(t),mt(t),gt(t),ft(t),Ct(t),yt(t),bt(t),It(t),kt(t);}},ve=$t;module.exports=ve;
|