@burdenoff/cli-sdk 2026.1102.1 → 2026.1102.2
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/chunk-O6UCQ5IT.js +1 -0
- package/dist/{chunk-AYNNSLCL.js → chunk-ZGT7IIOP.js} +409 -418
- package/dist/modules/adaptercloud/index.cjs +4 -4
- package/dist/modules/adaptercloud/index.js +2 -2
- package/dist/modules/artistrybase/index.js +2 -2
- package/dist/modules/assethandler/index.cjs +2 -2
- package/dist/modules/assethandler/index.js +2 -2
- package/dist/modules/atheletebridge/index.cjs +8 -8
- package/dist/modules/atheletebridge/index.js +2 -2
- package/dist/modules/auth/index.cjs +37 -37
- package/dist/modules/auth/index.js +33 -29
- package/dist/modules/billing/index.cjs +1 -1
- package/dist/modules/billing/index.js +2 -2
- package/dist/modules/brainyrich/index.cjs +44 -28
- package/dist/modules/brainyrich/index.js +47 -31
- package/dist/modules/buildmyiq/index.js +2 -2
- package/dist/modules/channels/index.cjs +3 -3
- package/dist/modules/channels/index.js +2 -2
- package/dist/modules/collabkin/index.cjs +4 -4
- package/dist/modules/collabkin/index.js +2 -2
- package/dist/modules/comradecircle/index.cjs +6 -6
- package/dist/modules/comradecircle/index.js +2 -2
- package/dist/modules/conversations/index.cjs +7 -7
- package/dist/modules/conversations/index.js +2 -2
- package/dist/modules/coolandlovely/index.cjs +2 -2
- package/dist/modules/coolandlovely/index.js +2 -2
- package/dist/modules/cosmicintersection/index.cjs +6 -6
- package/dist/modules/cosmicintersection/index.js +2 -2
- package/dist/modules/crewfoundry/index.js +2 -2
- package/dist/modules/devportal/index.cjs +2 -2
- package/dist/modules/devportal/index.js +2 -2
- package/dist/modules/ecoimpacthub/index.cjs +5 -5
- package/dist/modules/ecoimpacthub/index.js +2 -2
- package/dist/modules/eventfullymanaged/index.cjs +12 -12
- package/dist/modules/eventfullymanaged/index.js +2 -2
- package/dist/modules/export/index.cjs +4 -4
- package/dist/modules/export/index.js +2 -2
- package/dist/modules/files/index.cjs +3 -3
- package/dist/modules/files/index.js +4 -4
- package/dist/modules/fluidgrids/index.cjs +16 -16
- package/dist/modules/fluidgrids/index.js +3 -3
- package/dist/modules/ggnomad/index.cjs +4 -4
- package/dist/modules/ggnomad/index.js +2 -2
- package/dist/modules/govcitizenhub/index.cjs +4 -4
- package/dist/modules/govcitizenhub/index.js +2 -2
- package/dist/modules/groups/index.cjs +4 -4
- package/dist/modules/groups/index.js +2 -2
- package/dist/modules/headshotmarketing/index.js +2 -2
- package/dist/modules/hookmovies/index.cjs +6 -6
- package/dist/modules/hookmovies/index.js +2 -2
- package/dist/modules/housingvista/index.cjs +3 -3
- package/dist/modules/housingvista/index.js +2 -2
- package/dist/modules/integrations/index.cjs +5 -5
- package/dist/modules/integrations/index.js +2 -2
- package/dist/modules/intelwatchtower/index.cjs +5 -5
- package/dist/modules/intelwatchtower/index.js +2 -2
- package/dist/modules/kadaikodi/index.cjs +2 -2
- package/dist/modules/kadaikodi/index.js +2 -2
- package/dist/modules/labsofscience/index.cjs +3 -3
- package/dist/modules/labsofscience/index.js +2 -2
- package/dist/modules/manufacturedops/index.cjs +2 -2
- package/dist/modules/manufacturedops/index.js +2 -2
- package/dist/modules/movethewheels/index.js +2 -2
- package/dist/modules/notifications/index.cjs +2 -2
- package/dist/modules/notifications/index.js +2 -2
- package/dist/modules/organizations/index.js +2 -2
- package/dist/modules/planmagnet/index.js +2 -2
- package/dist/modules/products/index.cjs +4 -4
- package/dist/modules/products/index.js +2 -2
- package/dist/modules/proserviceworld/index.cjs +2 -2
- package/dist/modules/proserviceworld/index.js +2 -2
- package/dist/modules/rbac/index.js +2 -2
- package/dist/modules/sandbox/index.cjs +17 -17
- package/dist/modules/sandbox/index.js +1 -1
- package/dist/modules/scheduler/index.cjs +2 -2
- package/dist/modules/scheduler/index.js +2 -2
- package/dist/modules/security/index.cjs +3 -3
- package/dist/modules/security/index.js +2 -2
- package/dist/modules/semanticfed/index.cjs +3 -3
- package/dist/modules/semanticfed/index.js +2 -2
- package/dist/modules/store/index.cjs +3 -3
- package/dist/modules/store/index.js +2 -2
- package/dist/modules/subscriberbot/index.cjs +1 -1
- package/dist/modules/subscriberbot/index.js +2 -2
- package/dist/modules/support/index.cjs +2 -2
- package/dist/modules/support/index.js +2 -2
- package/dist/modules/tags/index.js +2 -2
- package/dist/modules/technospam/index.cjs +2 -2
- package/dist/modules/technospam/index.js +2 -2
- package/dist/modules/theculturepost/index.js +2 -2
- package/dist/modules/theglobalfuel/index.cjs +2 -2
- package/dist/modules/theglobalfuel/index.js +2 -2
- package/dist/modules/timecampus/index.js +2 -2
- package/dist/modules/tours/index.cjs +2 -2
- package/dist/modules/tours/index.js +2 -2
- package/dist/modules/vibecontrols/index.cjs +563 -567
- package/dist/modules/vibecontrols/index.js +5 -4
- package/dist/modules/workspaces/index.cjs +4 -4
- package/dist/modules/workspaces/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-W4JZR7RJ.js +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(n,e){super(n),this.name="CliUserError",this.exitCode=e?.exitCode??1,this.hint=e?.hint;}},C=class extends p{constructor(n,e){super(n,{exitCode:2,hint:e?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},g=class extends Error{cause;constructor(n,e){super(n),this.name="CliInternalError",this.cause=e;}};var E=null;function T(o){E=o;}function y(){if(!E)throw new g("vibecontrols module helpers used before setHelpersContext was called");return E}function Te(){let o=y();if(!o.auth.isAuthenticated())throw new C("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function a(o,n){return Te(),y().gql.workspace.request(o,n)}async function b(o,n){return y().gql.workspaceAuthOnly.request(o,n)}function i(o){let n=o instanceof Error?o.message:String(o);throw new p(n)}function s(o,n,e){y().output.formatAndOutput(o,n,e);}function c(o){y().output.printSuccess(o);}function I(o){return y().output.formatDate(o)}function d(o,n){return y().output.truncate(o,n)}var
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(n,e){super(n),this.name="CliUserError",this.exitCode=e?.exitCode??1,this.hint=e?.hint;}},C=class extends p{constructor(n,e){super(n,{exitCode:2,hint:e?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},g=class extends Error{cause;constructor(n,e){super(n),this.name="CliInternalError",this.cause=e;}};var E=null;function T(o){E=o;}function y(){if(!E)throw new g("vibecontrols module helpers used before setHelpersContext was called");return E}function Te(){let o=y();if(!o.auth.isAuthenticated())throw new C("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function a(o,n){return Te(),y().gql.workspace.request(o,n)}async function b(o,n){return y().gql.workspaceAuthOnly.request(o,n)}function i(o){let n=o instanceof Error?o.message:String(o);throw new p(n)}function s(o,n,e){y().output.formatAndOutput(o,n,e);}function c(o){y().output.printSuccess(o);}function I(o){return y().output.formatDate(o)}function d(o,n){return y().output.truncate(o,n)}var x=`
|
|
2
2
|
query ColGetFamilyTree($id: ID!) {
|
|
3
3
|
colFamilyTree(id: $id) {
|
|
4
4
|
id name surname description status tags createdAt updatedAt workspaceId
|
|
5
5
|
coverFile { id }
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
`,
|
|
8
|
+
`,D=`
|
|
9
9
|
query ColListFamilyTrees($pagination: PaginationInput, $status: ColTreeStatus) {
|
|
10
10
|
colListFamilyTrees(pagination: $pagination, status: $status) {
|
|
11
11
|
items { id name surname status tags createdAt }
|
|
12
12
|
pageInfo { cursor hasMore }
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
`,
|
|
15
|
+
`,v=`
|
|
16
16
|
mutation ColCreateFamilyTree($input: ColCreateFamilyTreeInput!) {
|
|
17
17
|
colCreateFamilyTree(input: $input) {
|
|
18
18
|
id name surname description status tags createdAt
|
|
@@ -205,4 +205,4 @@
|
|
|
205
205
|
query ColHealth {
|
|
206
206
|
colHealth
|
|
207
207
|
}
|
|
208
|
-
`;function m(o){let n=Number.parseInt(o,10);if(Number.isNaN(n))throw new p(`Expected an integer but got "${o}"`);return n}function u(o){return o.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function oe(o){let n=o.command("trees").description("Collabkin family trees");n.command("list").description("List family trees").option("--status <s>","ACTIVE|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(v,{status:e.status?e.status.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListFamilyTrees.items,{headers:["ID","Name","Surname","Status","Tags"],rows:t.colListFamilyTrees.items.map(r=>[d(r.id,12),r.name,r.surname??"-",r.status,(r.tags??[]).join(", ")])});}catch(t){i(t);}}),n.command("get").description("Get a family tree by id").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(D,{id:e});if(!r.colFamilyTree)throw new p(`Family tree ${e} not found`);s(t,r.colFamilyTree);}catch(r){i(r);}}),n.command("create").description("Create a family tree").requiredOption("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name};e.surname&&(t.surname=e.surname),e.description&&(t.description=e.description),e.coverFile&&(t.coverFileId=e.coverFile),e.tags&&(t.tags=u(e.tags));let r=await a(x,{input:t});c(`Family tree created: ${r.colCreateFamilyTree.name}`),s(e,r.colCreateFamilyTree);}catch(t){i(t);}}),n.command("update").description("Update a family tree").argument("<id>","Family tree ID").option("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.surname!==void 0&&(r.surname=t.surname),t.description!==void 0&&(r.description=t.description),t.coverFile&&(r.coverFileId=t.coverFile),t.tags&&(r.tags=u(t.tags)),!Object.keys(r).length)throw new p("No updates specified");let h=await a(A,{id:e,input:r});c("Family tree updated"),s(t,h.colUpdateFamilyTree);}catch(r){i(r);}}),n.command("archive").description("Archive a family tree").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(O,{id:e});c(`Family tree archived: ${r.colArchiveFamilyTree}`),s(t,{archived:r.colArchiveFamilyTree});}catch(r){i(r);}});}function ie(o){let n=o.command("people").description("Collabkin people");n.command("list").description("List people in a tree").option("--tree <id>","Filter by family tree ID").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(R,{treeId:e.tree,lifeStatus:e.lifeStatus?e.lifeStatus.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListPeople.items,{headers:["ID","Given","Family","Gender","Life","Born"],rows:t.colListPeople.items.map(r=>[d(r.id,12),r.givenName,r.familyName??"-",r.gender,r.lifeStatus,I(r.birthDate)])});}catch(t){i(t);}}),n.command("get").description("Get a person by id").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(S,{id:e});if(!r.colPerson)throw new p(`Person ${e} not found`);s(t,r.colPerson);}catch(r){i(r);}}),n.command("create").description("Create a person").requiredOption("--tree <id>","Family tree ID").requiredOption("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,givenName:e.givenName};e.familyName&&(t.familyName=e.familyName),e.maidenName&&(t.maidenName=e.maidenName),e.nickname&&(t.nickname=e.nickname),e.gender&&(t.gender=e.gender.toUpperCase()),e.lifeStatus&&(t.lifeStatus=e.lifeStatus.toUpperCase()),e.birthDate&&(t.birthDate=e.birthDate),e.birthPlace&&(t.birthPlace=e.birthPlace),e.deathDate&&(t.deathDate=e.deathDate),e.bio&&(t.bio=e.bio),e.linkedUser&&(t.linkedUserId=e.linkedUser),e.photoFile&&(t.photoFileId=e.photoFile),e.tags&&(t.tags=u(e.tags));let r=await a(M,{input:t});c(`Person created: ${r.colCreatePerson.givenName}`),s(e,r.colCreatePerson);}catch(t){i(t);}}),n.command("update").description("Update a person").argument("<id>","Person ID").option("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.givenName&&(r.givenName=t.givenName),t.familyName!==void 0&&(r.familyName=t.familyName),t.maidenName!==void 0&&(r.maidenName=t.maidenName),t.nickname!==void 0&&(r.nickname=t.nickname),t.gender&&(r.gender=t.gender.toUpperCase()),t.lifeStatus&&(r.lifeStatus=t.lifeStatus.toUpperCase()),t.birthDate&&(r.birthDate=t.birthDate),t.birthPlace!==void 0&&(r.birthPlace=t.birthPlace),t.deathDate&&(r.deathDate=t.deathDate),t.bio!==void 0&&(r.bio=t.bio),t.linkedUser&&(r.linkedUserId=t.linkedUser),t.photoFile&&(r.photoFileId=t.photoFile),t.tags&&(r.tags=u(t.tags)),!Object.keys(r).length)throw new p("No updates specified");let h=await a(P,{id:e,input:r});c("Person updated"),s(t,h.colUpdatePerson);}catch(r){i(r);}}),n.command("remove").description("Delete a person").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a($,{id:e});c(`Person deleted: ${r.colDeletePerson}`),s(t,{deleted:r.colDeletePerson});}catch(r){i(r);}});}function se(o){let n=o.command("relationships").description("Collabkin relationships between people");n.command("list").description("List relationships in a tree (optionally for one person)").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(L,{treeId:e.tree,personId:e.person});s(e,t.colListRelationships,{headers:["ID","From","To","Type","Certainty"],rows:t.colListRelationships.map(r=>[d(r.id,12),d(r.fromPersonId,12),d(r.toPersonId,12),r.type,r.certainty])});}catch(t){i(t);}}),n.command("create").description("Create a relationship between two people").requiredOption("--tree <id>","Family tree ID").requiredOption("--from <id>","From person ID").requiredOption("--to <id>","To person ID").requiredOption("--type <t>","PARENT|CHILD|SPOUSE|PARTNER|SIBLING|GRANDPARENT|GRANDCHILD|GUARDIAN").option("--certainty <c>","CONFIRMED|PROBABLE|DISPUTED|UNVERIFIED").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,fromPersonId:e.from,toPersonId:e.to,type:e.type.toUpperCase()};e.certainty&&(t.certainty=e.certainty.toUpperCase()),e.startDate&&(t.startDate=e.startDate),e.endDate&&(t.endDate=e.endDate),e.notes&&(t.notes=e.notes);let r=await a(N,{input:t});c(`Relationship created: ${r.colCreateRelationship.type}`),s(e,r.colCreateRelationship);}catch(t){i(t);}}),n.command("remove").description("Delete a relationship").argument("<id>","Relationship ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(F,{id:e});c(`Relationship deleted: ${r.colDeleteRelationship}`),s(t,{deleted:r.colDeleteRelationship});}catch(r){i(r);}});}function ae(o){let n=o.command("events").description("Collabkin timeline events");n.command("timeline").description("Show the family timeline (dated events) for a tree").requiredOption("--tree <id>","Family tree ID").option("--person <id>","Filter by person ID").option("--type <t>","Filter by event type").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(_,{treeId:e.tree,personId:e.person,type:e.type?e.type.toUpperCase():void 0});s(e,t.colTimeline,{headers:["ID","Title","Type","Date","Place","Approx"],rows:t.colTimeline.map(r=>[d(r.id,12),r.title,r.type,I(r.date),r.place??"-",r.isApproximate?"yes":"no"])});}catch(t){i(t);}}),n.command("create").description("Create a timeline event").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Event title").requiredOption("--date <iso>","Event date (ISO)").option("--type <t>","BIRTH|DEATH|MARRIAGE|DIVORCE|EDUCATION|MILITARY|IMMIGRATION|RESIDENCE|MILESTONE|OTHER").option("--description <s>","Description").option("--place <s>","Place").option("--person <id>","Associated person ID").option("--approximate","Mark the date as approximate").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,title:e.title,date:e.date};e.type&&(t.type=e.type.toUpperCase()),e.description&&(t.description=e.description),e.place&&(t.place=e.place),e.person&&(t.personId=e.person),e.approximate&&(t.isApproximate=!0);let r=await a(U,{input:t});c(`Event created: ${r.colCreateEvent.title}`),s(e,r.colCreateEvent);}catch(t){i(t);}}),n.command("remove").description("Delete a timeline event").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(q,{id:e});c(`Event deleted: ${r.colDeleteEvent}`),s(t,{deleted:r.colDeleteEvent});}catch(r){i(r);}});}function ce(o){let n=o.command("memories").description("Collabkin memories (media)");n.command("list").description("List memories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(W,{treeId:e.tree,personId:e.person,kind:e.kind?e.kind.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListMemories.items,{headers:["ID","Title","Kind","Place","Taken","Visibility"],rows:t.colListMemories.items.map(r=>[d(r.id,12),r.title,r.kind,r.place??"-",I(r.takenAt),r.visibility])});}catch(t){i(t);}}),n.command("get").description("Get a memory by id").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(G,{id:e});if(!r.colMemory)throw new p(`Memory ${e} not found`);s(t,r.colMemory);}catch(r){i(r);}}),n.command("create").description("Create a memory").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,title:e.title};e.kind&&(t.kind=e.kind.toUpperCase()),e.description&&(t.description=e.description),e.place&&(t.place=e.place),e.takenAt&&(t.takenAt=e.takenAt),e.person&&(t.personId=e.person),e.file&&(t.fileId=e.file),e.visibility&&(t.visibility=e.visibility.toUpperCase()),e.tags&&(t.tags=u(e.tags));let r=await a(H,{input:t});c(`Memory created: ${r.colCreateMemory.title}`),s(e,r.colCreateMemory);}catch(t){i(t);}}),n.command("update").description("Update a memory").argument("<id>","Memory ID").option("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.title&&(r.title=t.title),t.kind&&(r.kind=t.kind.toUpperCase()),t.description!==void 0&&(r.description=t.description),t.place!==void 0&&(r.place=t.place),t.takenAt&&(r.takenAt=t.takenAt),t.person&&(r.personId=t.person),t.file&&(r.fileId=t.file),t.visibility&&(r.visibility=t.visibility.toUpperCase()),t.tags&&(r.tags=u(t.tags)),!Object.keys(r).length)throw new p("No updates specified");let h=await a(V,{id:e,input:r});c("Memory updated"),s(t,h.colUpdateMemory);}catch(r){i(r);}}),n.command("remove").description("Delete a memory").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(j,{id:e});c(`Memory deleted: ${r.colDeleteMemory}`),s(t,{deleted:r.colDeleteMemory});}catch(r){i(r);}});}function pe(o){let n=o.command("stories").description("Collabkin stories");n.command("list").description("List stories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(Y,{treeId:e.tree,personId:e.person,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListStories.items,{headers:["ID","Title","Format","Narrator","Visibility"],rows:t.colListStories.items.map(r=>[d(r.id,12),r.title,r.format,r.narrator??"-",r.visibility])});}catch(t){i(t);}}),n.command("get").description("Get a story by id").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(B,{id:e});if(!r.colStory)throw new p(`Story ${e} not found`);s(t,r.colStory);}catch(r){i(r);}}),n.command("create").description("Create a story").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Story title").option("--body <s>","Story body").option("--story-format <f>","WRITTEN|AUDIO|VIDEO").option("--narrator <s>","Narrator").option("--person <id>","Associated person ID").option("--recording-file <id>","Recording file ID").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,title:e.title};e.body&&(t.body=e.body),e.storyFormat&&(t.format=e.storyFormat.toUpperCase()),e.narrator&&(t.narrator=e.narrator),e.person&&(t.personId=e.person),e.recordingFile&&(t.recordingFileId=e.recordingFile),e.visibility&&(t.visibility=e.visibility.toUpperCase()),e.tags&&(t.tags=u(e.tags));let r=await a(z,{input:t});c(`Story created: ${r.colCreateStory.title}`),s(e,r.colCreateStory);}catch(t){i(t);}}),n.command("remove").description("Delete a story").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(K,{id:e});c(`Story deleted: ${r.colDeleteStory}`),s(t,{deleted:r.colDeleteStory});}catch(r){i(r);}});}function de(o){let n=o.command("comments").description("Collabkin comments on memories & stories");n.command("list").description("List comments for a memory or a story").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async e=>{try{if(!e.memory&&!e.story)throw new p("Specify --memory or --story");let t=await a(J,{memoryId:e.memory,storyId:e.story});s(e,t.colListComments,{headers:["ID","Body","Memory","Story"],rows:t.colListComments.map(r=>[d(r.id,12),d(r.body,40),r.memoryId?d(r.memoryId,12):"-",r.storyId?d(r.storyId,12):"-"])});}catch(t){i(t);}}),n.command("add").description("Add a comment to a memory or a story").requiredOption("--body <text>","Comment body").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async e=>{try{if(!e.memory&&!e.story)throw new p("Specify --memory or --story");let t={body:e.body};e.memory&&(t.memoryId=e.memory),e.story&&(t.storyId=e.story);let r=await a(Q,{input:t});c("Comment added"),s(e,r.colAddComment);}catch(t){i(t);}}),n.command("remove").description("Delete a comment").argument("<id>","Comment ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(X,{id:e});c(`Comment deleted: ${r.colDeleteComment}`),s(t,{deleted:r.colDeleteComment});}catch(r){i(r);}});}function le(o){let n=o.command("memberships").description("Collabkin family-tree memberships");n.command("list").description("List memberships for a tree").requiredOption("--tree <id>","Family tree ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(Z,{treeId:e.tree});s(e,t.colListMemberships,{headers:["ID","Member","Person","Role","Status"],rows:t.colListMemberships.map(r=>[d(r.id,12),d(r.memberUserId,12),r.personId?d(r.personId,12):"-",r.role,r.status])});}catch(t){i(t);}}),n.command("invite").description("Invite a member to a family tree").requiredOption("--tree <id>","Family tree ID").requiredOption("--member <id>","Member user ID").option("--person <id>","Linked person ID").option("--role <r>","OWNER|STEWARD|CONTRIBUTOR|VIEWER").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,memberUserId:e.member};e.person&&(t.personId=e.person),e.role&&(t.role=e.role.toUpperCase());let r=await a(ee,{input:t});c(`Member invited: ${r.colInviteMember.memberUserId}`),s(e,r.colInviteMember);}catch(t){i(t);}}),n.command("accept").description("Accept a membership invitation").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(te,{id:e});c(`Membership accepted: ${r.colAcceptMembership.status}`),s(t,r.colAcceptMembership);}catch(r){i(r);}}),n.command("remove").description("Remove a member from a family tree").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(re,{id:e});c(`Member removed: ${r.colRemoveMember}`),s(t,{removed:r.colRemoveMember});}catch(r){i(r);}});}function me(o){o.command("health").description("Collabkin service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await b(ne);c(e.colHealth),s(n,{health:e.colHealth});}catch(e){i(e);}});}var De={id:"collabkin",version:"1.0.0",displayName:"Collabkin",dependsOn:["auth","workspaces"],register(o,n){T(n);let e=o.command("collabkin").description("Collabkin collaborative family history");oe(e),ie(e),se(e),ae(e),ce(e),pe(e),de(e),le(e),me(e);}},Ir=De;module.exports=Ir;
|
|
208
|
+
`;function m(o){let n=Number.parseInt(o,10);if(Number.isNaN(n))throw new p(`Expected an integer but got "${o}"`);return n}function u(o){return o.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function oe(o){let n=o.command("trees").description("Collabkin family trees");n.command("list").description("List family trees").option("--status <s>","ACTIVE|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(D,{status:e.status?e.status.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListFamilyTrees.items,{headers:["ID","Name","Surname","Status","Tags"],rows:t.colListFamilyTrees.items.map(r=>[d(r.id,12),r.name,r.surname??"-",r.status,(r.tags??[]).join(", ")])});}catch(t){i(t);}}),n.command("get").description("Get a family tree by id").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(x,{id:e});if(!r.colFamilyTree)throw new p(`Family tree ${e} not found`);s(t,r.colFamilyTree);}catch(r){i(r);}}),n.command("create").description("Create a family tree").requiredOption("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name};e.surname&&(t.surname=e.surname),e.description&&(t.description=e.description),e.coverFile&&(t.coverFileId=e.coverFile),e.tags&&(t.tags=u(e.tags));let r=await a(v,{input:t});c(`Family tree created: ${r.colCreateFamilyTree.name}`),s(e,r.colCreateFamilyTree);}catch(t){i(t);}}),n.command("update").description("Update a family tree").argument("<id>","Family tree ID").option("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.surname!==void 0&&(r.surname=t.surname),t.description!==void 0&&(r.description=t.description),t.coverFile&&(r.coverFileId=t.coverFile),t.tags&&(r.tags=u(t.tags)),!Object.keys(r).length)throw new p("No updates specified");let h=await a(A,{id:e,input:r});c("Family tree updated"),s(t,h.colUpdateFamilyTree);}catch(r){i(r);}}),n.command("archive").description("Archive a family tree").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(O,{id:e});c(`Family tree archived: ${r.colArchiveFamilyTree}`),s(t,{archived:r.colArchiveFamilyTree});}catch(r){i(r);}});}function ie(o){let n=o.command("people").description("Collabkin people");n.command("list").description("List people in a tree").option("--tree <id>","Filter by family tree ID").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(R,{treeId:e.tree,lifeStatus:e.lifeStatus?e.lifeStatus.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListPeople.items,{headers:["ID","Given","Family","Gender","Life","Born"],rows:t.colListPeople.items.map(r=>[d(r.id,12),r.givenName,r.familyName??"-",r.gender,r.lifeStatus,I(r.birthDate)])});}catch(t){i(t);}}),n.command("get").description("Get a person by id").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(S,{id:e});if(!r.colPerson)throw new p(`Person ${e} not found`);s(t,r.colPerson);}catch(r){i(r);}}),n.command("create").description("Create a person").requiredOption("--tree <id>","Family tree ID").requiredOption("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,givenName:e.givenName};e.familyName&&(t.familyName=e.familyName),e.maidenName&&(t.maidenName=e.maidenName),e.nickname&&(t.nickname=e.nickname),e.gender&&(t.gender=e.gender.toUpperCase()),e.lifeStatus&&(t.lifeStatus=e.lifeStatus.toUpperCase()),e.birthDate&&(t.birthDate=e.birthDate),e.birthPlace&&(t.birthPlace=e.birthPlace),e.deathDate&&(t.deathDate=e.deathDate),e.bio&&(t.bio=e.bio),e.linkedUser&&(t.linkedUserId=e.linkedUser),e.photoFile&&(t.photoFileId=e.photoFile),e.tags&&(t.tags=u(e.tags));let r=await a(M,{input:t});c(`Person created: ${r.colCreatePerson.givenName}`),s(e,r.colCreatePerson);}catch(t){i(t);}}),n.command("update").description("Update a person").argument("<id>","Person ID").option("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.givenName&&(r.givenName=t.givenName),t.familyName!==void 0&&(r.familyName=t.familyName),t.maidenName!==void 0&&(r.maidenName=t.maidenName),t.nickname!==void 0&&(r.nickname=t.nickname),t.gender&&(r.gender=t.gender.toUpperCase()),t.lifeStatus&&(r.lifeStatus=t.lifeStatus.toUpperCase()),t.birthDate&&(r.birthDate=t.birthDate),t.birthPlace!==void 0&&(r.birthPlace=t.birthPlace),t.deathDate&&(r.deathDate=t.deathDate),t.bio!==void 0&&(r.bio=t.bio),t.linkedUser&&(r.linkedUserId=t.linkedUser),t.photoFile&&(r.photoFileId=t.photoFile),t.tags&&(r.tags=u(t.tags)),!Object.keys(r).length)throw new p("No updates specified");let h=await a(P,{id:e,input:r});c("Person updated"),s(t,h.colUpdatePerson);}catch(r){i(r);}}),n.command("remove").description("Delete a person").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a($,{id:e});c(`Person deleted: ${r.colDeletePerson}`),s(t,{deleted:r.colDeletePerson});}catch(r){i(r);}});}function se(o){let n=o.command("relationships").description("Collabkin relationships between people");n.command("list").description("List relationships in a tree (optionally for one person)").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(L,{treeId:e.tree,personId:e.person});s(e,t.colListRelationships,{headers:["ID","From","To","Type","Certainty"],rows:t.colListRelationships.map(r=>[d(r.id,12),d(r.fromPersonId,12),d(r.toPersonId,12),r.type,r.certainty])});}catch(t){i(t);}}),n.command("create").description("Create a relationship between two people").requiredOption("--tree <id>","Family tree ID").requiredOption("--from <id>","From person ID").requiredOption("--to <id>","To person ID").requiredOption("--type <t>","PARENT|CHILD|SPOUSE|PARTNER|SIBLING|GRANDPARENT|GRANDCHILD|GUARDIAN").option("--certainty <c>","CONFIRMED|PROBABLE|DISPUTED|UNVERIFIED").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,fromPersonId:e.from,toPersonId:e.to,type:e.type.toUpperCase()};e.certainty&&(t.certainty=e.certainty.toUpperCase()),e.startDate&&(t.startDate=e.startDate),e.endDate&&(t.endDate=e.endDate),e.notes&&(t.notes=e.notes);let r=await a(N,{input:t});c(`Relationship created: ${r.colCreateRelationship.type}`),s(e,r.colCreateRelationship);}catch(t){i(t);}}),n.command("remove").description("Delete a relationship").argument("<id>","Relationship ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(F,{id:e});c(`Relationship deleted: ${r.colDeleteRelationship}`),s(t,{deleted:r.colDeleteRelationship});}catch(r){i(r);}});}function ae(o){let n=o.command("events").description("Collabkin timeline events");n.command("timeline").description("Show the family timeline (dated events) for a tree").requiredOption("--tree <id>","Family tree ID").option("--person <id>","Filter by person ID").option("--type <t>","Filter by event type").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(_,{treeId:e.tree,personId:e.person,type:e.type?e.type.toUpperCase():void 0});s(e,t.colTimeline,{headers:["ID","Title","Type","Date","Place","Approx"],rows:t.colTimeline.map(r=>[d(r.id,12),r.title,r.type,I(r.date),r.place??"-",r.isApproximate?"yes":"no"])});}catch(t){i(t);}}),n.command("create").description("Create a timeline event").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Event title").requiredOption("--date <iso>","Event date (ISO)").option("--type <t>","BIRTH|DEATH|MARRIAGE|DIVORCE|EDUCATION|MILITARY|IMMIGRATION|RESIDENCE|MILESTONE|OTHER").option("--description <s>","Description").option("--place <s>","Place").option("--person <id>","Associated person ID").option("--approximate","Mark the date as approximate").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,title:e.title,date:e.date};e.type&&(t.type=e.type.toUpperCase()),e.description&&(t.description=e.description),e.place&&(t.place=e.place),e.person&&(t.personId=e.person),e.approximate&&(t.isApproximate=!0);let r=await a(U,{input:t});c(`Event created: ${r.colCreateEvent.title}`),s(e,r.colCreateEvent);}catch(t){i(t);}}),n.command("remove").description("Delete a timeline event").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(q,{id:e});c(`Event deleted: ${r.colDeleteEvent}`),s(t,{deleted:r.colDeleteEvent});}catch(r){i(r);}});}function ce(o){let n=o.command("memories").description("Collabkin memories (media)");n.command("list").description("List memories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(W,{treeId:e.tree,personId:e.person,kind:e.kind?e.kind.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListMemories.items,{headers:["ID","Title","Kind","Place","Taken","Visibility"],rows:t.colListMemories.items.map(r=>[d(r.id,12),r.title,r.kind,r.place??"-",I(r.takenAt),r.visibility])});}catch(t){i(t);}}),n.command("get").description("Get a memory by id").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(G,{id:e});if(!r.colMemory)throw new p(`Memory ${e} not found`);s(t,r.colMemory);}catch(r){i(r);}}),n.command("create").description("Create a memory").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,title:e.title};e.kind&&(t.kind=e.kind.toUpperCase()),e.description&&(t.description=e.description),e.place&&(t.place=e.place),e.takenAt&&(t.takenAt=e.takenAt),e.person&&(t.personId=e.person),e.file&&(t.fileId=e.file),e.visibility&&(t.visibility=e.visibility.toUpperCase()),e.tags&&(t.tags=u(e.tags));let r=await a(H,{input:t});c(`Memory created: ${r.colCreateMemory.title}`),s(e,r.colCreateMemory);}catch(t){i(t);}}),n.command("update").description("Update a memory").argument("<id>","Memory ID").option("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.title&&(r.title=t.title),t.kind&&(r.kind=t.kind.toUpperCase()),t.description!==void 0&&(r.description=t.description),t.place!==void 0&&(r.place=t.place),t.takenAt&&(r.takenAt=t.takenAt),t.person&&(r.personId=t.person),t.file&&(r.fileId=t.file),t.visibility&&(r.visibility=t.visibility.toUpperCase()),t.tags&&(r.tags=u(t.tags)),!Object.keys(r).length)throw new p("No updates specified");let h=await a(V,{id:e,input:r});c("Memory updated"),s(t,h.colUpdateMemory);}catch(r){i(r);}}),n.command("remove").description("Delete a memory").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(j,{id:e});c(`Memory deleted: ${r.colDeleteMemory}`),s(t,{deleted:r.colDeleteMemory});}catch(r){i(r);}});}function pe(o){let n=o.command("stories").description("Collabkin stories");n.command("list").description("List stories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(Y,{treeId:e.tree,personId:e.person,pagination:{limit:e.limit,offset:e.offset}});s(e,t.colListStories.items,{headers:["ID","Title","Format","Narrator","Visibility"],rows:t.colListStories.items.map(r=>[d(r.id,12),r.title,r.format,r.narrator??"-",r.visibility])});}catch(t){i(t);}}),n.command("get").description("Get a story by id").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(B,{id:e});if(!r.colStory)throw new p(`Story ${e} not found`);s(t,r.colStory);}catch(r){i(r);}}),n.command("create").description("Create a story").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Story title").option("--body <s>","Story body").option("--story-format <f>","WRITTEN|AUDIO|VIDEO").option("--narrator <s>","Narrator").option("--person <id>","Associated person ID").option("--recording-file <id>","Recording file ID").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,title:e.title};e.body&&(t.body=e.body),e.storyFormat&&(t.format=e.storyFormat.toUpperCase()),e.narrator&&(t.narrator=e.narrator),e.person&&(t.personId=e.person),e.recordingFile&&(t.recordingFileId=e.recordingFile),e.visibility&&(t.visibility=e.visibility.toUpperCase()),e.tags&&(t.tags=u(e.tags));let r=await a(z,{input:t});c(`Story created: ${r.colCreateStory.title}`),s(e,r.colCreateStory);}catch(t){i(t);}}),n.command("remove").description("Delete a story").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(K,{id:e});c(`Story deleted: ${r.colDeleteStory}`),s(t,{deleted:r.colDeleteStory});}catch(r){i(r);}});}function de(o){let n=o.command("comments").description("Collabkin comments on memories & stories");n.command("list").description("List comments for a memory or a story").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async e=>{try{if(!e.memory&&!e.story)throw new p("Specify --memory or --story");let t=await a(J,{memoryId:e.memory,storyId:e.story});s(e,t.colListComments,{headers:["ID","Body","Memory","Story"],rows:t.colListComments.map(r=>[d(r.id,12),d(r.body,40),r.memoryId?d(r.memoryId,12):"-",r.storyId?d(r.storyId,12):"-"])});}catch(t){i(t);}}),n.command("add").description("Add a comment to a memory or a story").requiredOption("--body <text>","Comment body").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async e=>{try{if(!e.memory&&!e.story)throw new p("Specify --memory or --story");let t={body:e.body};e.memory&&(t.memoryId=e.memory),e.story&&(t.storyId=e.story);let r=await a(Q,{input:t});c("Comment added"),s(e,r.colAddComment);}catch(t){i(t);}}),n.command("remove").description("Delete a comment").argument("<id>","Comment ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(X,{id:e});c(`Comment deleted: ${r.colDeleteComment}`),s(t,{deleted:r.colDeleteComment});}catch(r){i(r);}});}function le(o){let n=o.command("memberships").description("Collabkin family-tree memberships");n.command("list").description("List memberships for a tree").requiredOption("--tree <id>","Family tree ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(Z,{treeId:e.tree});s(e,t.colListMemberships,{headers:["ID","Member","Person","Role","Status"],rows:t.colListMemberships.map(r=>[d(r.id,12),d(r.memberUserId,12),r.personId?d(r.personId,12):"-",r.role,r.status])});}catch(t){i(t);}}),n.command("invite").description("Invite a member to a family tree").requiredOption("--tree <id>","Family tree ID").requiredOption("--member <id>","Member user ID").option("--person <id>","Linked person ID").option("--role <r>","OWNER|STEWARD|CONTRIBUTOR|VIEWER").option("-f, --format <format>","Output format").action(async e=>{try{let t={treeId:e.tree,memberUserId:e.member};e.person&&(t.personId=e.person),e.role&&(t.role=e.role.toUpperCase());let r=await a(ee,{input:t});c(`Member invited: ${r.colInviteMember.memberUserId}`),s(e,r.colInviteMember);}catch(t){i(t);}}),n.command("accept").description("Accept a membership invitation").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(te,{id:e});c(`Membership accepted: ${r.colAcceptMembership.status}`),s(t,r.colAcceptMembership);}catch(r){i(r);}}),n.command("remove").description("Remove a member from a family tree").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(re,{id:e});c(`Member removed: ${r.colRemoveMember}`),s(t,{removed:r.colRemoveMember});}catch(r){i(r);}});}function me(o){o.command("health").description("Collabkin service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await b(ne);c(e.colHealth),s(n,{health:e.colHealth});}catch(e){i(e);}});}var xe={id:"collabkin",version:"1.0.0",displayName:"Collabkin",dependsOn:["auth","workspaces"],register(o,n){T(n);let e=o.command("collabkin").description("Collabkin collaborative family history");oe(e),ie(e),se(e),ae(e),ce(e),pe(e),de(e),le(e),me(e);}},Ir=xe;module.exports=Ir;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h as h$1,
|
|
1
|
+
import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var D=`
|
|
2
2
|
query ColGetFamilyTree($id: ID!) {
|
|
3
3
|
colFamilyTree(id: $id) {
|
|
4
4
|
id name surname description status tags createdAt updatedAt workspaceId
|
|
@@ -205,4 +205,4 @@ import {a,b as b$1,h as h$1,p,g,i,o as o$1,d}from'../../chunk-W4JZR7RJ.js';impor
|
|
|
205
205
|
query ColHealth {
|
|
206
206
|
colHealth
|
|
207
207
|
}
|
|
208
|
-
`;function c(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function u(m){return m.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function Z(m){let r=m.command("trees").description("Collabkin family trees");r.command("list").description("List family trees").option("--status <s>","ACTIVE|ARCHIVED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.colListFamilyTrees.items,{headers:["ID","Name","Surname","Status","Tags"],rows:e.colListFamilyTrees.items.map(i=>[p(i.id,12),i.name,i.surname??"-",i.status,(i.tags??[]).join(", ")])});}catch(e){g(e);}}),r.command("get").description("Get a family tree by id").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(D,{id:t});if(!i.colFamilyTree)throw new o(`Family tree ${t} not found`);h$1(e,i.colFamilyTree);}catch(i){g(i);}}),r.command("create").description("Create a family tree").requiredOption("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.surname&&(e.surname=t.surname),t.description&&(e.description=t.description),t.coverFile&&(e.coverFileId=t.coverFile),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(b,{input:e});i(`Family tree created: ${i$1.colCreateFamilyTree.name}`),h$1(t,i$1.colCreateFamilyTree);}catch(e){g(e);}}),r.command("update").description("Update a family tree").argument("<id>","Family tree ID").option("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.surname!==void 0&&(i$1.surname=e.surname),e.description!==void 0&&(i$1.description=e.description),e.coverFile&&(i$1.coverFileId=e.coverFile),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(T,{id:t,input:i$1});i("Family tree updated"),h$1(e,I.colUpdateFamilyTree);}catch(i){g(i);}}),r.command("archive").description("Archive a family tree").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(R,{id:t});i(`Family tree archived: ${i$1.colArchiveFamilyTree}`),h$1(e,{archived:i$1.colArchiveFamilyTree});}catch(i){g(i);}});}function tt(m){let r=m.command("people").description("Collabkin people");r.command("list").description("List people in a tree").option("--tree <id>","Filter by family tree ID").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(M,{treeId:t.tree,lifeStatus:t.lifeStatus?t.lifeStatus.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.colListPeople.items,{headers:["ID","Given","Family","Gender","Life","Born"],rows:e.colListPeople.items.map(i=>[p(i.id,12),i.givenName,i.familyName??"-",i.gender,i.lifeStatus,o$1(i.birthDate)])});}catch(e){g(e);}}),r.command("get").description("Get a person by id").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(A,{id:t});if(!i.colPerson)throw new o(`Person ${t} not found`);h$1(e,i.colPerson);}catch(i){g(i);}}),r.command("create").description("Create a person").requiredOption("--tree <id>","Family tree ID").requiredOption("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,givenName:t.givenName};t.familyName&&(e.familyName=t.familyName),t.maidenName&&(e.maidenName=t.maidenName),t.nickname&&(e.nickname=t.nickname),t.gender&&(e.gender=t.gender.toUpperCase()),t.lifeStatus&&(e.lifeStatus=t.lifeStatus.toUpperCase()),t.birthDate&&(e.birthDate=t.birthDate),t.birthPlace&&(e.birthPlace=t.birthPlace),t.deathDate&&(e.deathDate=t.deathDate),t.bio&&(e.bio=t.bio),t.linkedUser&&(e.linkedUserId=t.linkedUser),t.photoFile&&(e.photoFileId=t.photoFile),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(O,{input:e});i(`Person created: ${i$1.colCreatePerson.givenName}`),h$1(t,i$1.colCreatePerson);}catch(e){g(e);}}),r.command("update").description("Update a person").argument("<id>","Person ID").option("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.givenName&&(i$1.givenName=e.givenName),e.familyName!==void 0&&(i$1.familyName=e.familyName),e.maidenName!==void 0&&(i$1.maidenName=e.maidenName),e.nickname!==void 0&&(i$1.nickname=e.nickname),e.gender&&(i$1.gender=e.gender.toUpperCase()),e.lifeStatus&&(i$1.lifeStatus=e.lifeStatus.toUpperCase()),e.birthDate&&(i$1.birthDate=e.birthDate),e.birthPlace!==void 0&&(i$1.birthPlace=e.birthPlace),e.deathDate&&(i$1.deathDate=e.deathDate),e.bio!==void 0&&(i$1.bio=e.bio),e.linkedUser&&(i$1.linkedUserId=e.linkedUser),e.photoFile&&(i$1.photoFileId=e.photoFile),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(S,{id:t,input:i$1});i("Person updated"),h$1(e,I.colUpdatePerson);}catch(i){g(i);}}),r.command("remove").description("Delete a person").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(v,{id:t});i(`Person deleted: ${i$1.colDeletePerson}`),h$1(e,{deleted:i$1.colDeletePerson});}catch(i){g(i);}});}function et(m){let r=m.command("relationships").description("Collabkin relationships between people");r.command("list").description("List relationships in a tree (optionally for one person)").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(k,{treeId:t.tree,personId:t.person});h$1(t,e.colListRelationships,{headers:["ID","From","To","Type","Certainty"],rows:e.colListRelationships.map(i=>[p(i.id,12),p(i.fromPersonId,12),p(i.toPersonId,12),i.type,i.certainty])});}catch(e){g(e);}}),r.command("create").description("Create a relationship between two people").requiredOption("--tree <id>","Family tree ID").requiredOption("--from <id>","From person ID").requiredOption("--to <id>","To person ID").requiredOption("--type <t>","PARENT|CHILD|SPOUSE|PARTNER|SIBLING|GRANDPARENT|GRANDCHILD|GUARDIAN").option("--certainty <c>","CONFIRMED|PROBABLE|DISPUTED|UNVERIFIED").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,fromPersonId:t.from,toPersonId:t.to,type:t.type.toUpperCase()};t.certainty&&(e.certainty=t.certainty.toUpperCase()),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate),t.notes&&(e.notes=t.notes);let i$1=await b$1(w,{input:e});i(`Relationship created: ${i$1.colCreateRelationship.type}`),h$1(t,i$1.colCreateRelationship);}catch(e){g(e);}}),r.command("remove").description("Delete a relationship").argument("<id>","Relationship ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(N,{id:t});i(`Relationship deleted: ${i$1.colDeleteRelationship}`),h$1(e,{deleted:i$1.colDeleteRelationship});}catch(i){g(i);}});}function it(m){let r=m.command("events").description("Collabkin timeline events");r.command("timeline").description("Show the family timeline (dated events) for a tree").requiredOption("--tree <id>","Family tree ID").option("--person <id>","Filter by person ID").option("--type <t>","Filter by event type").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(P,{treeId:t.tree,personId:t.person,type:t.type?t.type.toUpperCase():void 0});h$1(t,e.colTimeline,{headers:["ID","Title","Type","Date","Place","Approx"],rows:e.colTimeline.map(i=>[p(i.id,12),i.title,i.type,o$1(i.date),i.place??"-",i.isApproximate?"yes":"no"])});}catch(e){g(e);}}),r.command("create").description("Create a timeline event").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Event title").requiredOption("--date <iso>","Event date (ISO)").option("--type <t>","BIRTH|DEATH|MARRIAGE|DIVORCE|EDUCATION|MILITARY|IMMIGRATION|RESIDENCE|MILESTONE|OTHER").option("--description <s>","Description").option("--place <s>","Place").option("--person <id>","Associated person ID").option("--approximate","Mark the date as approximate").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,title:t.title,date:t.date};t.type&&(e.type=t.type.toUpperCase()),t.description&&(e.description=t.description),t.place&&(e.place=t.place),t.person&&(e.personId=t.person),t.approximate&&(e.isApproximate=!0);let i$1=await b$1(L,{input:e});i(`Event created: ${i$1.colCreateEvent.title}`),h$1(t,i$1.colCreateEvent);}catch(e){g(e);}}),r.command("remove").description("Delete a timeline event").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1($,{id:t});i(`Event deleted: ${i$1.colDeleteEvent}`),h$1(e,{deleted:i$1.colDeleteEvent});}catch(i){g(i);}});}function rt(m){let r=m.command("memories").description("Collabkin memories (media)");r.command("list").description("List memories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(U,{treeId:t.tree,personId:t.person,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.colListMemories.items,{headers:["ID","Title","Kind","Place","Taken","Visibility"],rows:e.colListMemories.items.map(i=>[p(i.id,12),i.title,i.kind,i.place??"-",o$1(i.takenAt),i.visibility])});}catch(e){g(e);}}),r.command("get").description("Get a memory by id").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(F,{id:t});if(!i.colMemory)throw new o(`Memory ${t} not found`);h$1(e,i.colMemory);}catch(i){g(i);}}),r.command("create").description("Create a memory").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,title:t.title};t.kind&&(e.kind=t.kind.toUpperCase()),t.description&&(e.description=t.description),t.place&&(e.place=t.place),t.takenAt&&(e.takenAt=t.takenAt),t.person&&(e.personId=t.person),t.file&&(e.fileId=t.file),t.visibility&&(e.visibility=t.visibility.toUpperCase()),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(x,{input:e});i(`Memory created: ${i$1.colCreateMemory.title}`),h$1(t,i$1.colCreateMemory);}catch(e){g(e);}}),r.command("update").description("Update a memory").argument("<id>","Memory ID").option("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.title&&(i$1.title=e.title),e.kind&&(i$1.kind=e.kind.toUpperCase()),e.description!==void 0&&(i$1.description=e.description),e.place!==void 0&&(i$1.place=e.place),e.takenAt&&(i$1.takenAt=e.takenAt),e.person&&(i$1.personId=e.person),e.file&&(i$1.fileId=e.file),e.visibility&&(i$1.visibility=e.visibility.toUpperCase()),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(_,{id:t,input:i$1});i("Memory updated"),h$1(e,I.colUpdateMemory);}catch(i){g(i);}}),r.command("remove").description("Delete a memory").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(H,{id:t});i(`Memory deleted: ${i$1.colDeleteMemory}`),h$1(e,{deleted:i$1.colDeleteMemory});}catch(i){g(i);}});}function ot(m){let r=m.command("stories").description("Collabkin stories");r.command("list").description("List stories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{treeId:t.tree,personId:t.person,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.colListStories.items,{headers:["ID","Title","Format","Narrator","Visibility"],rows:e.colListStories.items.map(i=>[p(i.id,12),i.title,i.format,i.narrator??"-",i.visibility])});}catch(e){g(e);}}),r.command("get").description("Get a story by id").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(q,{id:t});if(!i.colStory)throw new o(`Story ${t} not found`);h$1(e,i.colStory);}catch(i){g(i);}}),r.command("create").description("Create a story").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Story title").option("--body <s>","Story body").option("--story-format <f>","WRITTEN|AUDIO|VIDEO").option("--narrator <s>","Narrator").option("--person <id>","Associated person ID").option("--recording-file <id>","Recording file ID").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,title:t.title};t.body&&(e.body=t.body),t.storyFormat&&(e.format=t.storyFormat.toUpperCase()),t.narrator&&(e.narrator=t.narrator),t.person&&(e.personId=t.person),t.recordingFile&&(e.recordingFileId=t.recordingFile),t.visibility&&(e.visibility=t.visibility.toUpperCase()),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(V,{input:e});i(`Story created: ${i$1.colCreateStory.title}`),h$1(t,i$1.colCreateStory);}catch(e){g(e);}}),r.command("remove").description("Delete a story").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(Y,{id:t});i(`Story deleted: ${i$1.colDeleteStory}`),h$1(e,{deleted:i$1.colDeleteStory});}catch(i){g(i);}});}function nt(m){let r=m.command("comments").description("Collabkin comments on memories & stories");r.command("list").description("List comments for a memory or a story").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.memory&&!t.story)throw new o("Specify --memory or --story");let e=await b$1(W,{memoryId:t.memory,storyId:t.story});h$1(t,e.colListComments,{headers:["ID","Body","Memory","Story"],rows:e.colListComments.map(i=>[p(i.id,12),p(i.body,40),i.memoryId?p(i.memoryId,12):"-",i.storyId?p(i.storyId,12):"-"])});}catch(e){g(e);}}),r.command("add").description("Add a comment to a memory or a story").requiredOption("--body <text>","Comment body").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.memory&&!t.story)throw new o("Specify --memory or --story");let e={body:t.body};t.memory&&(e.memoryId=t.memory),t.story&&(e.storyId=t.story);let i$1=await b$1(B,{input:e});i("Comment added"),h$1(t,i$1.colAddComment);}catch(e){g(e);}}),r.command("remove").description("Delete a comment").argument("<id>","Comment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(K,{id:t});i(`Comment deleted: ${i$1.colDeleteComment}`),h$1(e,{deleted:i$1.colDeleteComment});}catch(i){g(i);}});}function at(m){let r=m.command("memberships").description("Collabkin family-tree memberships");r.command("list").description("List memberships for a tree").requiredOption("--tree <id>","Family tree ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(j,{treeId:t.tree});h$1(t,e.colListMemberships,{headers:["ID","Member","Person","Role","Status"],rows:e.colListMemberships.map(i=>[p(i.id,12),p(i.memberUserId,12),i.personId?p(i.personId,12):"-",i.role,i.status])});}catch(e){g(e);}}),r.command("invite").description("Invite a member to a family tree").requiredOption("--tree <id>","Family tree ID").requiredOption("--member <id>","Member user ID").option("--person <id>","Linked person ID").option("--role <r>","OWNER|STEWARD|CONTRIBUTOR|VIEWER").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,memberUserId:t.member};t.person&&(e.personId=t.person),t.role&&(e.role=t.role.toUpperCase());let i$1=await b$1(z,{input:e});i(`Member invited: ${i$1.colInviteMember.memberUserId}`),h$1(t,i$1.colInviteMember);}catch(e){g(e);}}),r.command("accept").description("Accept a membership invitation").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(J,{id:t});i(`Membership accepted: ${i$1.colAcceptMembership.status}`),h$1(e,i$1.colAcceptMembership);}catch(i){g(i);}}),r.command("remove").description("Remove a member from a family tree").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(Q,{id:t});i(`Member removed: ${i$1.colRemoveMember}`),h$1(e,{removed:i$1.colRemoveMember});}catch(i){g(i);}});}function st(m){m.command("health").description("Collabkin service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await d(X);i(t.colHealth),h$1(r,{health:t.colHealth});}catch(t){g(t);}});}var mt={id:"collabkin",version:"1.0.0",displayName:"Collabkin",dependsOn:["auth","workspaces"],register(m,r){a(r);let t=m.command("collabkin").description("Collabkin collaborative family history");Z(t),tt(t),et(t),it(t),rt(t),ot(t),nt(t),at(t),st(t);}},Qt=mt;export{Qt as default};
|
|
208
|
+
`;function c(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function u(m){return m.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function Z(m){let r$1=m.command("trees").description("Collabkin family trees");r$1.command("list").description("List family trees").option("--status <s>","ACTIVE|ARCHIVED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.colListFamilyTrees.items,{headers:["ID","Name","Surname","Status","Tags"],rows:e.colListFamilyTrees.items.map(i=>[r(i.id,12),i.name,i.surname??"-",i.status,(i.tags??[]).join(", ")])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a family tree by id").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(D,{id:t});if(!i$1.colFamilyTree)throw new o(`Family tree ${t} not found`);i(e,i$1.colFamilyTree);}catch(i){h$1(i);}}),r$1.command("create").description("Create a family tree").requiredOption("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.surname&&(e.surname=t.surname),t.description&&(e.description=t.description),t.coverFile&&(e.coverFileId=t.coverFile),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(b,{input:e});k$1(`Family tree created: ${i$1.colCreateFamilyTree.name}`),i(t,i$1.colCreateFamilyTree);}catch(e){h$1(e);}}),r$1.command("update").description("Update a family tree").argument("<id>","Family tree ID").option("--name <name>","Tree name").option("--surname <s>","Family surname").option("--description <s>","Description").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.surname!==void 0&&(i$1.surname=e.surname),e.description!==void 0&&(i$1.description=e.description),e.coverFile&&(i$1.coverFileId=e.coverFile),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(T,{id:t,input:i$1});k$1("Family tree updated"),i(e,I.colUpdateFamilyTree);}catch(i){h$1(i);}}),r$1.command("archive").description("Archive a family tree").argument("<id>","Family tree ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(R,{id:t});k$1(`Family tree archived: ${i$1.colArchiveFamilyTree}`),i(e,{archived:i$1.colArchiveFamilyTree});}catch(i){h$1(i);}});}function tt(m){let r$1=m.command("people").description("Collabkin people");r$1.command("list").description("List people in a tree").option("--tree <id>","Filter by family tree ID").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(M,{treeId:t.tree,lifeStatus:t.lifeStatus?t.lifeStatus.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.colListPeople.items,{headers:["ID","Given","Family","Gender","Life","Born"],rows:e.colListPeople.items.map(i=>[r(i.id,12),i.givenName,i.familyName??"-",i.gender,i.lifeStatus,q$1(i.birthDate)])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a person by id").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(A,{id:t});if(!i$1.colPerson)throw new o(`Person ${t} not found`);i(e,i$1.colPerson);}catch(i){h$1(i);}}),r$1.command("create").description("Create a person").requiredOption("--tree <id>","Family tree ID").requiredOption("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,givenName:t.givenName};t.familyName&&(e.familyName=t.familyName),t.maidenName&&(e.maidenName=t.maidenName),t.nickname&&(e.nickname=t.nickname),t.gender&&(e.gender=t.gender.toUpperCase()),t.lifeStatus&&(e.lifeStatus=t.lifeStatus.toUpperCase()),t.birthDate&&(e.birthDate=t.birthDate),t.birthPlace&&(e.birthPlace=t.birthPlace),t.deathDate&&(e.deathDate=t.deathDate),t.bio&&(e.bio=t.bio),t.linkedUser&&(e.linkedUserId=t.linkedUser),t.photoFile&&(e.photoFileId=t.photoFile),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(O,{input:e});k$1(`Person created: ${i$1.colCreatePerson.givenName}`),i(t,i$1.colCreatePerson);}catch(e){h$1(e);}}),r$1.command("update").description("Update a person").argument("<id>","Person ID").option("--given-name <name>","Given name").option("--family-name <name>","Family name").option("--maiden-name <name>","Maiden name").option("--nickname <name>","Nickname").option("--gender <g>","MALE|FEMALE|OTHER|UNKNOWN").option("--life-status <s>","LIVING|DECEASED|UNKNOWN").option("--birth-date <iso>","Birth date (ISO)").option("--birth-place <s>","Birth place").option("--death-date <iso>","Death date (ISO)").option("--bio <s>","Biography").option("--linked-user <id>","Linked user ID").option("--photo-file <id>","Photo file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.givenName&&(i$1.givenName=e.givenName),e.familyName!==void 0&&(i$1.familyName=e.familyName),e.maidenName!==void 0&&(i$1.maidenName=e.maidenName),e.nickname!==void 0&&(i$1.nickname=e.nickname),e.gender&&(i$1.gender=e.gender.toUpperCase()),e.lifeStatus&&(i$1.lifeStatus=e.lifeStatus.toUpperCase()),e.birthDate&&(i$1.birthDate=e.birthDate),e.birthPlace!==void 0&&(i$1.birthPlace=e.birthPlace),e.deathDate&&(i$1.deathDate=e.deathDate),e.bio!==void 0&&(i$1.bio=e.bio),e.linkedUser&&(i$1.linkedUserId=e.linkedUser),e.photoFile&&(i$1.photoFileId=e.photoFile),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(S,{id:t,input:i$1});k$1("Person updated"),i(e,I.colUpdatePerson);}catch(i){h$1(i);}}),r$1.command("remove").description("Delete a person").argument("<id>","Person ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(v,{id:t});k$1(`Person deleted: ${i$1.colDeletePerson}`),i(e,{deleted:i$1.colDeletePerson});}catch(i){h$1(i);}});}function et(m){let r$1=m.command("relationships").description("Collabkin relationships between people");r$1.command("list").description("List relationships in a tree (optionally for one person)").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(k,{treeId:t.tree,personId:t.person});i(t,e.colListRelationships,{headers:["ID","From","To","Type","Certainty"],rows:e.colListRelationships.map(i=>[r(i.id,12),r(i.fromPersonId,12),r(i.toPersonId,12),i.type,i.certainty])});}catch(e){h$1(e);}}),r$1.command("create").description("Create a relationship between two people").requiredOption("--tree <id>","Family tree ID").requiredOption("--from <id>","From person ID").requiredOption("--to <id>","To person ID").requiredOption("--type <t>","PARENT|CHILD|SPOUSE|PARTNER|SIBLING|GRANDPARENT|GRANDCHILD|GUARDIAN").option("--certainty <c>","CONFIRMED|PROBABLE|DISPUTED|UNVERIFIED").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,fromPersonId:t.from,toPersonId:t.to,type:t.type.toUpperCase()};t.certainty&&(e.certainty=t.certainty.toUpperCase()),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate),t.notes&&(e.notes=t.notes);let i$1=await b$1(w,{input:e});k$1(`Relationship created: ${i$1.colCreateRelationship.type}`),i(t,i$1.colCreateRelationship);}catch(e){h$1(e);}}),r$1.command("remove").description("Delete a relationship").argument("<id>","Relationship ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(N,{id:t});k$1(`Relationship deleted: ${i$1.colDeleteRelationship}`),i(e,{deleted:i$1.colDeleteRelationship});}catch(i){h$1(i);}});}function it(m){let r$1=m.command("events").description("Collabkin timeline events");r$1.command("timeline").description("Show the family timeline (dated events) for a tree").requiredOption("--tree <id>","Family tree ID").option("--person <id>","Filter by person ID").option("--type <t>","Filter by event type").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(P,{treeId:t.tree,personId:t.person,type:t.type?t.type.toUpperCase():void 0});i(t,e.colTimeline,{headers:["ID","Title","Type","Date","Place","Approx"],rows:e.colTimeline.map(i=>[r(i.id,12),i.title,i.type,q$1(i.date),i.place??"-",i.isApproximate?"yes":"no"])});}catch(e){h$1(e);}}),r$1.command("create").description("Create a timeline event").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Event title").requiredOption("--date <iso>","Event date (ISO)").option("--type <t>","BIRTH|DEATH|MARRIAGE|DIVORCE|EDUCATION|MILITARY|IMMIGRATION|RESIDENCE|MILESTONE|OTHER").option("--description <s>","Description").option("--place <s>","Place").option("--person <id>","Associated person ID").option("--approximate","Mark the date as approximate").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,title:t.title,date:t.date};t.type&&(e.type=t.type.toUpperCase()),t.description&&(e.description=t.description),t.place&&(e.place=t.place),t.person&&(e.personId=t.person),t.approximate&&(e.isApproximate=!0);let i$1=await b$1(L,{input:e});k$1(`Event created: ${i$1.colCreateEvent.title}`),i(t,i$1.colCreateEvent);}catch(e){h$1(e);}}),r$1.command("remove").description("Delete a timeline event").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1($,{id:t});k$1(`Event deleted: ${i$1.colDeleteEvent}`),i(e,{deleted:i$1.colDeleteEvent});}catch(i){h$1(i);}});}function rt(m){let r$1=m.command("memories").description("Collabkin memories (media)");r$1.command("list").description("List memories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(U,{treeId:t.tree,personId:t.person,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.colListMemories.items,{headers:["ID","Title","Kind","Place","Taken","Visibility"],rows:e.colListMemories.items.map(i=>[r(i.id,12),i.title,i.kind,i.place??"-",q$1(i.takenAt),i.visibility])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a memory by id").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(F,{id:t});if(!i$1.colMemory)throw new o(`Memory ${t} not found`);i(e,i$1.colMemory);}catch(i){h$1(i);}}),r$1.command("create").description("Create a memory").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,title:t.title};t.kind&&(e.kind=t.kind.toUpperCase()),t.description&&(e.description=t.description),t.place&&(e.place=t.place),t.takenAt&&(e.takenAt=t.takenAt),t.person&&(e.personId=t.person),t.file&&(e.fileId=t.file),t.visibility&&(e.visibility=t.visibility.toUpperCase()),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(x,{input:e});k$1(`Memory created: ${i$1.colCreateMemory.title}`),i(t,i$1.colCreateMemory);}catch(e){h$1(e);}}),r$1.command("update").description("Update a memory").argument("<id>","Memory ID").option("--title <t>","Memory title").option("--kind <k>","PHOTO|VIDEO|AUDIO|DOCUMENT|ARTIFACT").option("--description <s>","Description").option("--place <s>","Place").option("--taken-at <iso>","Taken at (ISO)").option("--person <id>","Associated person ID").option("--file <id>","File ID (media blob)").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.title&&(i$1.title=e.title),e.kind&&(i$1.kind=e.kind.toUpperCase()),e.description!==void 0&&(i$1.description=e.description),e.place!==void 0&&(i$1.place=e.place),e.takenAt&&(i$1.takenAt=e.takenAt),e.person&&(i$1.personId=e.person),e.file&&(i$1.fileId=e.file),e.visibility&&(i$1.visibility=e.visibility.toUpperCase()),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(_,{id:t,input:i$1});k$1("Memory updated"),i(e,I.colUpdateMemory);}catch(i){h$1(i);}}),r$1.command("remove").description("Delete a memory").argument("<id>","Memory ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(H,{id:t});k$1(`Memory deleted: ${i$1.colDeleteMemory}`),i(e,{deleted:i$1.colDeleteMemory});}catch(i){h$1(i);}});}function ot(m){let r$1=m.command("stories").description("Collabkin stories");r$1.command("list").description("List stories").option("--tree <id>","Filter by family tree ID").option("--person <id>","Filter by person ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{treeId:t.tree,personId:t.person,pagination:{limit:t.limit,offset:t.offset}});i(t,e.colListStories.items,{headers:["ID","Title","Format","Narrator","Visibility"],rows:e.colListStories.items.map(i=>[r(i.id,12),i.title,i.format,i.narrator??"-",i.visibility])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a story by id").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(q,{id:t});if(!i$1.colStory)throw new o(`Story ${t} not found`);i(e,i$1.colStory);}catch(i){h$1(i);}}),r$1.command("create").description("Create a story").requiredOption("--tree <id>","Family tree ID").requiredOption("--title <t>","Story title").option("--body <s>","Story body").option("--story-format <f>","WRITTEN|AUDIO|VIDEO").option("--narrator <s>","Narrator").option("--person <id>","Associated person ID").option("--recording-file <id>","Recording file ID").option("--visibility <v>","TREE|STEWARDS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,title:t.title};t.body&&(e.body=t.body),t.storyFormat&&(e.format=t.storyFormat.toUpperCase()),t.narrator&&(e.narrator=t.narrator),t.person&&(e.personId=t.person),t.recordingFile&&(e.recordingFileId=t.recordingFile),t.visibility&&(e.visibility=t.visibility.toUpperCase()),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(V,{input:e});k$1(`Story created: ${i$1.colCreateStory.title}`),i(t,i$1.colCreateStory);}catch(e){h$1(e);}}),r$1.command("remove").description("Delete a story").argument("<id>","Story ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(Y,{id:t});k$1(`Story deleted: ${i$1.colDeleteStory}`),i(e,{deleted:i$1.colDeleteStory});}catch(i){h$1(i);}});}function nt(m){let r$1=m.command("comments").description("Collabkin comments on memories & stories");r$1.command("list").description("List comments for a memory or a story").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.memory&&!t.story)throw new o("Specify --memory or --story");let e=await b$1(W,{memoryId:t.memory,storyId:t.story});i(t,e.colListComments,{headers:["ID","Body","Memory","Story"],rows:e.colListComments.map(i=>[r(i.id,12),r(i.body,40),i.memoryId?r(i.memoryId,12):"-",i.storyId?r(i.storyId,12):"-"])});}catch(e){h$1(e);}}),r$1.command("add").description("Add a comment to a memory or a story").requiredOption("--body <text>","Comment body").option("--memory <id>","Memory ID").option("--story <id>","Story ID").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.memory&&!t.story)throw new o("Specify --memory or --story");let e={body:t.body};t.memory&&(e.memoryId=t.memory),t.story&&(e.storyId=t.story);let i$1=await b$1(B,{input:e});k$1("Comment added"),i(t,i$1.colAddComment);}catch(e){h$1(e);}}),r$1.command("remove").description("Delete a comment").argument("<id>","Comment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(K,{id:t});k$1(`Comment deleted: ${i$1.colDeleteComment}`),i(e,{deleted:i$1.colDeleteComment});}catch(i){h$1(i);}});}function at(m){let r$1=m.command("memberships").description("Collabkin family-tree memberships");r$1.command("list").description("List memberships for a tree").requiredOption("--tree <id>","Family tree ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(j,{treeId:t.tree});i(t,e.colListMemberships,{headers:["ID","Member","Person","Role","Status"],rows:e.colListMemberships.map(i=>[r(i.id,12),r(i.memberUserId,12),i.personId?r(i.personId,12):"-",i.role,i.status])});}catch(e){h$1(e);}}),r$1.command("invite").description("Invite a member to a family tree").requiredOption("--tree <id>","Family tree ID").requiredOption("--member <id>","Member user ID").option("--person <id>","Linked person ID").option("--role <r>","OWNER|STEWARD|CONTRIBUTOR|VIEWER").option("-f, --format <format>","Output format").action(async t=>{try{let e={treeId:t.tree,memberUserId:t.member};t.person&&(e.personId=t.person),t.role&&(e.role=t.role.toUpperCase());let i$1=await b$1(z,{input:e});k$1(`Member invited: ${i$1.colInviteMember.memberUserId}`),i(t,i$1.colInviteMember);}catch(e){h$1(e);}}),r$1.command("accept").description("Accept a membership invitation").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(J,{id:t});k$1(`Membership accepted: ${i$1.colAcceptMembership.status}`),i(e,i$1.colAcceptMembership);}catch(i){h$1(i);}}),r$1.command("remove").description("Remove a member from a family tree").argument("<id>","Membership ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(Q,{id:t});k$1(`Member removed: ${i$1.colRemoveMember}`),i(e,{removed:i$1.colRemoveMember});}catch(i){h$1(i);}});}function st(m){m.command("health").description("Collabkin service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await d(X);k$1(t.colHealth),i(r,{health:t.colHealth});}catch(t){h$1(t);}});}var mt={id:"collabkin",version:"1.0.0",displayName:"Collabkin",dependsOn:["auth","workspaces"],register(m,r){a(r);let t=m.command("collabkin").description("Collabkin collaborative family history");Z(t),tt(t),et(t),it(t),rt(t),ot(t),nt(t),at(t),st(t);}},Qt=mt;export{Qt as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(n,t){super(n),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},h=class extends l{constructor(n,t){super(n,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},C=class extends Error{cause;constructor(n,t){super(n),this.name="CliInternalError",this.cause=t;}};var y=null;function T(s){y=s;}function I(){if(!y)throw new C("vibecontrols module helpers used before setHelpersContext was called");return y}function St(){let s=I();if(!s.auth.isAuthenticated())throw new h("Authentication required.",{hint:`Run \`${s.productName} auth login\` to authenticate.`})}async function a(s,n){return St(),I().gql.workspace.request(s,n)}async function w(s,n){return I().gql.workspaceAuthOnly.request(s,n)}function r(s){let n=s instanceof Error?s.message:String(s);throw new l(n)}function i(s,n,t){I().output.formatAndOutput(s,n,t);}function c(s){I().output.printSuccess(s);}function E(s){return I().output.formatDate(s)}function d(s,n){return I().output.truncate(s,n)}var A=`
|
|
2
2
|
query ComradecircleCircle($id: ID!) {
|
|
3
3
|
comCircle(id: $id) {
|
|
4
4
|
id name slug description topic status visibility tags memberCount
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
avatar { id }
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
`,
|
|
9
|
+
`,x=`
|
|
10
10
|
query ComradecircleListCircles(
|
|
11
11
|
$pagination: PaginationInput
|
|
12
12
|
$status: ComCircleStatus
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
pageInfo { cursor hasMore }
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
`,
|
|
22
|
+
`,k=`
|
|
23
23
|
mutation ComradecircleCreateCircle($input: ComCreateCircleInput!) {
|
|
24
24
|
comCreateCircle(input: $input) {
|
|
25
25
|
id name slug description topic status visibility tags memberCount createdAt
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
`,
|
|
28
|
+
`,O=`
|
|
29
29
|
mutation ComradecircleUpdateCircle($id: ID!, $input: ComUpdateCircleInput!) {
|
|
30
30
|
comUpdateCircle(id: $id, input: $input) {
|
|
31
31
|
id name slug description topic status visibility tags updatedAt
|
|
@@ -274,8 +274,8 @@
|
|
|
274
274
|
id followerId targetId targetType muted updatedAt
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
-
`,
|
|
277
|
+
`,lt=`
|
|
278
278
|
query ComradecircleHealth {
|
|
279
279
|
comHealth
|
|
280
280
|
}
|
|
281
|
-
`;function u(s){let n=Number.parseInt(s,10);if(Number.isNaN(n))throw new p(`Expected an integer but got "${s}"`);return n}function m(s){return s.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function lt(s){let n=s.command("circles").description("Comradecircle circles");n.command("list").description("List circles").option("--status <s>","ACTIVE|ARCHIVED|SUSPENDED").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(k,{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=>[d(o.id,12),o.name,o.slug,o.status,o.visibility,String(o.memberCount??0)])});}catch(e){r(e);}}),n.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=await a(A,{id:t});if(!o.comCircle)throw new p(`Circle ${t} not found`);i(e,o.comCircle);}catch(o){r(o);}}),n.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=m(t.tags)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(O,{input:e});c(`Circle created: ${o.comCreateCircle.name}`),i(t,o.comCreateCircle);}catch(e){r(e);}}),n.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={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.topic!==void 0&&(o.topic=e.topic),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.tags&&(o.tags=m(e.tags)),e.avatarFileId&&(o.avatarFileId=e.avatarFileId),!Object.keys(o).length)throw new p("No updates specified");let f=await a(x,{id:t,input:o});c("Circle updated"),i(e,f.comUpdateCircle);}catch(o){r(o);}}),n.command("archive").description("Archive a circle").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(P,{id:t});c(`Circle archived: ${o.comArchiveCircle}`),i(e,{archived:o.comArchiveCircle});}catch(o){r(o);}});}function ut(s){let n=s.command("channels").description("Comradecircle channels");n.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 a(L,{circleId:t.circle});i(t,e.comListChannels,{headers:["ID","Name","Slug","Type","Visibility","Position"],rows:e.comListChannels.map(o=>[d(o.id,12),o.name,o.slug,o.type,o.visibility,String(o.position??0)])});}catch(e){r(e);}}),n.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",u).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 a(R,{input:e});c(`Channel created: ${o.comCreateChannel.name}`),i(t,o.comCreateChannel);}catch(e){r(e);}}),n.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",u).option("--archived <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.type&&(o.type=e.type.toUpperCase()),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.position!==void 0&&(o.position=e.position),e.archived!==void 0&&(o.isArchived=e.archived),!Object.keys(o).length)throw new p("No updates specified");let f=await a(S,{id:t,input:o});c("Channel updated"),i(e,f.comUpdateChannel);}catch(o){r(o);}});}function mt(s){let n=s.command("memberships").description("Comradecircle circle memberships");n.command("list").description("List memberships").option("--circle <id>","Filter by circle ID").option("--status <s>","ACTIVE|PENDING|LEFT|BANNED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{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=>[d(o.id,12),d(o.circleId,12),d(o.memberId,12),o.role,o.status])});}catch(e){r(e);}}),n.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 a(D,{circleId:t.circle});c(`Joined circle ${e.comJoinCircle.circleId}`),i(t,e.comJoinCircle);}catch(e){r(e);}}),n.command("leave").description("Leave a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(N,{circleId:t.circle});c(`Left circle: ${e.comLeaveCircle}`),i(t,{left:e.comLeaveCircle});}catch(e){r(e);}}),n.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 a(U,{membershipId:t,role:e.role.toUpperCase()});c(`Role set to ${o.comSetMemberRole.role}`),i(e,o.comSetMemberRole);}catch(o){r(o);}});}function ft(s){let n=s.command("posts").description("Comradecircle posts");n.command("list").description("List posts").option("--channel <id>","Filter by channel ID").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{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=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,o.isPinned?"yes":"no",String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.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=await a(M,{id:t});if(!o.comPost)throw new p(`Post ${t} not found`);i(e,o.comPost);}catch(o){r(o);}}),n.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=m(t.tags)),t.attachments&&(e.attachmentFileIds=m(t.attachments));let o=await a(q,{input:e});c(`Post created: ${o.comCreatePost.id}`),i(t,o.comCreatePost);}catch(e){r(e);}}),n.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={};if(e.body&&(o.body=e.body),e.status&&(o.status=e.status.toUpperCase()),e.pinned!==void 0&&(o.isPinned=e.pinned),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new p("No updates specified");let f=await a(F,{id:t,input:o});c("Post updated"),i(e,f.comUpdatePost);}catch(o){r(o);}}),n.command("remove").description("Remove a post").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(V,{id:t});c(`Post removed: ${o.comRemovePost}`),i(e,{removed:o.comRemovePost});}catch(o){r(o);}}),n.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 a(H,{postId:t,type:e.type.toUpperCase()});c(`Reaction toggled on post ${o.comReactToPost.id}`),i(e,o.comReactToPost);}catch(o){r(o);}});}function gt(s){let n=s.command("comments").description("Comradecircle post comments");n.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 a(W,{postId:t.post});i(t,e.comListComments,{headers:["ID","Author","Body","Parent","Hidden"],rows:e.comListComments.map(o=>[d(o.id,12),d(o.authorId,12),d(o.body,40),o.parentId?d(o.parentId,12):"-",o.isHidden?"yes":"no"])});}catch(e){r(e);}}),n.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 a(j,{input:e});c(`Comment added: ${o.comAddComment.id}`),i(t,o.comAddComment);}catch(e){r(e);}});}function Ct(s){let n=s.command("events").description("Comradecircle events");n.command("list").description("List events").option("--circle <id>","Filter by circle ID").option("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{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=>[d(o.id,12),o.title,o.mode,o.status,E(o.startsAt),String(o.rsvpCount??0)])});}catch(e){r(e);}}),n.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=await a(G,{id:t});if(!o.comEvent)throw new p(`Event ${t} not found`);i(e,o.comEvent);}catch(o){r(o);}}),n.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",u).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=m(t.tags));let o=await a(J,{input:e});c(`Event created: ${o.comCreateEvent.title}`),i(t,o.comCreateEvent);}catch(e){r(e);}}),n.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",u).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={};if(e.title&&(o.title=e.title),e.description!==void 0&&(o.description=e.description),e.mode&&(o.mode=e.mode.toUpperCase()),e.location!==void 0&&(o.location=e.location),e.joinUrl!==void 0&&(o.joinUrl=e.joinUrl),e.capacity!==void 0&&(o.capacity=e.capacity),e.startsAt&&(o.startsAt=e.startsAt),e.endsAt&&(o.endsAt=e.endsAt),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new p("No updates specified");let f=await a(z,{id:t,input:o});c("Event updated"),i(e,f.comUpdateEvent);}catch(o){r(o);}}),n.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 a(Y,{id:t,status:e.status.toUpperCase()});c(`Event transitioned to ${o.comTransitionEvent.status}`),i(e,o.comTransitionEvent);}catch(o){r(o);}}),n.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 a(K,{eventId:t,status:e.status.toUpperCase(),note:e.note});c(`RSVP saved: ${o.comRsvpEvent.status}`),i(e,o.comRsvpEvent);}catch(o){r(o);}});}function It(s){let n=s.command("polls").description("Comradecircle polls");n.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 a(X,{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=>[d(o.id,12),d(o.question,40),o.status,o.isAnonymous?"yes":"no",o.allowMultiple?"yes":"no"])});}catch(e){r(e);}}),n.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=await a(Q,{id:t});if(!o.comPoll)throw new p(`Poll ${t} not found`);i(e,o.comPoll);}catch(o){r(o);}}),n.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=m(t.options);if(e.length===0)throw new p("--options must contain at least one option");let o={circleId:t.circle,question:t.question,options:e,allowMultiple:t.allowMultiple??!1,isAnonymous:t.anonymous??!1};t.closesAt&&(o.closesAt=t.closesAt);let f=await a(Z,{input:o});c(`Poll created: ${f.comCreatePoll.id}`),i(t,f.comCreatePoll);}catch(e){r(e);}}),n.command("close").description("Close a poll").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(tt,{id:t});c(`Poll closed: ${o.comClosePoll.status}`),i(e,o.comClosePoll);}catch(o){r(o);}}),n.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 a(et,{pollId:t,optionId:e.option});c(`Voted: ${o.comVotePoll.label} (${o.comVotePoll.voteCount})`),i(e,o.comVotePoll);}catch(o){r(o);}});}function ht(s){let n=s.command("profiles").description("Comradecircle member profiles");n.command("list").description("List member profiles").option("--discoverable <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{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=>[d(o.id,12),d(o.memberId,12),o.displayName,d(o.headline??"-",30),o.presence??"-",o.discoverable?"yes":"no"])});}catch(e){r(e);}}),n.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=await a(ot,{memberId:t});if(!o.comProfile)throw new p(`Profile for member ${t} not found`);i(e,o.comProfile);}catch(o){r(o);}}),n.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=m(t.interests)),t.skills&&(e.skills=m(t.skills)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(rt,{input:e});c(`Profile saved: ${o.comUpsertProfile.displayName}`),i(t,o.comUpsertProfile);}catch(e){r(e);}});}function yt(s){let n=s.command("feed").description("Comradecircle home feed & follows");n.command("home").description("The calling member's unified home feed").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(it,{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=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.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 a(st,{targetType:t.targetType?t.targetType.toUpperCase():void 0});i(t,e.comMyFollows,{headers:["ID","Target","Target Type","Muted"],rows:e.comMyFollows.map(o=>[d(o.id,12),d(o.targetId,12),o.targetType,o.muted?"yes":"no"])});}catch(e){r(e);}}),n.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 a(at,{input:e});c(`Following ${o.comFollow.targetType} ${o.comFollow.targetId}`),i(t,o.comFollow);}catch(e){r(e);}}),n.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 a(ct,{input:e});c(`Unfollowed: ${o.comUnfollow}`),i(t,{unfollowed:o.comUnfollow});}catch(e){r(e);}}),n.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 a(dt,{id:t,muted:e.muted});c(`Follow ${o.comMuteFollow.muted?"muted":"unmuted"}`),i(e,o.comMuteFollow);}catch(o){r(o);}});}function wt(s){s.command("health").description("Comradecircle service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await w(pt);c(t.comHealth),i(n,{health:t.comHealth});}catch(t){r(t);}});}var $t={id:"comradecircle",version:"1.0.0",displayName:"Comradecircle",dependsOn:["auth","workspaces"],register(s,n){T(n);let t=s.command("comradecircle").description("Comradecircle community circles");lt(t),ut(t),mt(t),ft(t),gt(t),Ct(t),It(t),ht(t),yt(t),wt(t);}},Lo=$t;module.exports=Lo;
|
|
281
|
+
`;function u(s){let n=Number.parseInt(s,10);if(Number.isNaN(n))throw new l(`Expected an integer but got "${s}"`);return n}function m(s){return s.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function pt(s){let n=s.command("circles").description("Comradecircle circles");n.command("list").description("List circles").option("--status <s>","ACTIVE|ARCHIVED|SUSPENDED").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(x,{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=>[d(o.id,12),o.name,o.slug,o.status,o.visibility,String(o.memberCount??0)])});}catch(e){r(e);}}),n.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=await a(A,{id:t});if(!o.comCircle)throw new l(`Circle ${t} not found`);i(e,o.comCircle);}catch(o){r(o);}}),n.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=m(t.tags)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(k,{input:e});c(`Circle created: ${o.comCreateCircle.name}`),i(t,o.comCreateCircle);}catch(e){r(e);}}),n.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={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.topic!==void 0&&(o.topic=e.topic),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.tags&&(o.tags=m(e.tags)),e.avatarFileId&&(o.avatarFileId=e.avatarFileId),!Object.keys(o).length)throw new l("No updates specified");let f=await a(O,{id:t,input:o});c("Circle updated"),i(e,f.comUpdateCircle);}catch(o){r(o);}}),n.command("archive").description("Archive a circle").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(P,{id:t});c(`Circle archived: ${o.comArchiveCircle}`),i(e,{archived:o.comArchiveCircle});}catch(o){r(o);}});}function ut(s){let n=s.command("channels").description("Comradecircle channels");n.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 a(L,{circleId:t.circle});i(t,e.comListChannels,{headers:["ID","Name","Slug","Type","Visibility","Position"],rows:e.comListChannels.map(o=>[d(o.id,12),o.name,o.slug,o.type,o.visibility,String(o.position??0)])});}catch(e){r(e);}}),n.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",u).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 a(R,{input:e});c(`Channel created: ${o.comCreateChannel.name}`),i(t,o.comCreateChannel);}catch(e){r(e);}}),n.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",u).option("--archived <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.type&&(o.type=e.type.toUpperCase()),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.position!==void 0&&(o.position=e.position),e.archived!==void 0&&(o.isArchived=e.archived),!Object.keys(o).length)throw new l("No updates specified");let f=await a(S,{id:t,input:o});c("Channel updated"),i(e,f.comUpdateChannel);}catch(o){r(o);}});}function mt(s){let n=s.command("memberships").description("Comradecircle circle memberships");n.command("list").description("List memberships").option("--circle <id>","Filter by circle ID").option("--status <s>","ACTIVE|PENDING|LEFT|BANNED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{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=>[d(o.id,12),d(o.circleId,12),d(o.memberId,12),o.role,o.status])});}catch(e){r(e);}}),n.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 a(D,{circleId:t.circle});c(`Joined circle ${e.comJoinCircle.circleId}`),i(t,e.comJoinCircle);}catch(e){r(e);}}),n.command("leave").description("Leave a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(N,{circleId:t.circle});c(`Left circle: ${e.comLeaveCircle}`),i(t,{left:e.comLeaveCircle});}catch(e){r(e);}}),n.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 a(U,{membershipId:t,role:e.role.toUpperCase()});c(`Role set to ${o.comSetMemberRole.role}`),i(e,o.comSetMemberRole);}catch(o){r(o);}});}function ft(s){let n=s.command("posts").description("Comradecircle posts");n.command("list").description("List posts").option("--channel <id>","Filter by channel ID").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{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=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,o.isPinned?"yes":"no",String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.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=await a(M,{id:t});if(!o.comPost)throw new l(`Post ${t} not found`);i(e,o.comPost);}catch(o){r(o);}}),n.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=m(t.tags)),t.attachments&&(e.attachmentFileIds=m(t.attachments));let o=await a(q,{input:e});c(`Post created: ${o.comCreatePost.id}`),i(t,o.comCreatePost);}catch(e){r(e);}}),n.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={};if(e.body&&(o.body=e.body),e.status&&(o.status=e.status.toUpperCase()),e.pinned!==void 0&&(o.isPinned=e.pinned),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new l("No updates specified");let f=await a(F,{id:t,input:o});c("Post updated"),i(e,f.comUpdatePost);}catch(o){r(o);}}),n.command("remove").description("Remove a post").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(V,{id:t});c(`Post removed: ${o.comRemovePost}`),i(e,{removed:o.comRemovePost});}catch(o){r(o);}}),n.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 a(H,{postId:t,type:e.type.toUpperCase()});c(`Reaction toggled on post ${o.comReactToPost.id}`),i(e,o.comReactToPost);}catch(o){r(o);}});}function gt(s){let n=s.command("comments").description("Comradecircle post comments");n.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 a(W,{postId:t.post});i(t,e.comListComments,{headers:["ID","Author","Body","Parent","Hidden"],rows:e.comListComments.map(o=>[d(o.id,12),d(o.authorId,12),d(o.body,40),o.parentId?d(o.parentId,12):"-",o.isHidden?"yes":"no"])});}catch(e){r(e);}}),n.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 a(j,{input:e});c(`Comment added: ${o.comAddComment.id}`),i(t,o.comAddComment);}catch(e){r(e);}});}function Ct(s){let n=s.command("events").description("Comradecircle events");n.command("list").description("List events").option("--circle <id>","Filter by circle ID").option("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{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=>[d(o.id,12),o.title,o.mode,o.status,E(o.startsAt),String(o.rsvpCount??0)])});}catch(e){r(e);}}),n.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=await a(G,{id:t});if(!o.comEvent)throw new l(`Event ${t} not found`);i(e,o.comEvent);}catch(o){r(o);}}),n.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",u).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=m(t.tags));let o=await a(J,{input:e});c(`Event created: ${o.comCreateEvent.title}`),i(t,o.comCreateEvent);}catch(e){r(e);}}),n.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",u).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={};if(e.title&&(o.title=e.title),e.description!==void 0&&(o.description=e.description),e.mode&&(o.mode=e.mode.toUpperCase()),e.location!==void 0&&(o.location=e.location),e.joinUrl!==void 0&&(o.joinUrl=e.joinUrl),e.capacity!==void 0&&(o.capacity=e.capacity),e.startsAt&&(o.startsAt=e.startsAt),e.endsAt&&(o.endsAt=e.endsAt),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new l("No updates specified");let f=await a(z,{id:t,input:o});c("Event updated"),i(e,f.comUpdateEvent);}catch(o){r(o);}}),n.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 a(Y,{id:t,status:e.status.toUpperCase()});c(`Event transitioned to ${o.comTransitionEvent.status}`),i(e,o.comTransitionEvent);}catch(o){r(o);}}),n.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 a(K,{eventId:t,status:e.status.toUpperCase(),note:e.note});c(`RSVP saved: ${o.comRsvpEvent.status}`),i(e,o.comRsvpEvent);}catch(o){r(o);}});}function It(s){let n=s.command("polls").description("Comradecircle polls");n.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 a(X,{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=>[d(o.id,12),d(o.question,40),o.status,o.isAnonymous?"yes":"no",o.allowMultiple?"yes":"no"])});}catch(e){r(e);}}),n.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=await a(Q,{id:t});if(!o.comPoll)throw new l(`Poll ${t} not found`);i(e,o.comPoll);}catch(o){r(o);}}),n.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=m(t.options);if(e.length===0)throw new l("--options must contain at least one option");let o={circleId:t.circle,question:t.question,options:e,allowMultiple:t.allowMultiple??!1,isAnonymous:t.anonymous??!1};t.closesAt&&(o.closesAt=t.closesAt);let f=await a(Z,{input:o});c(`Poll created: ${f.comCreatePoll.id}`),i(t,f.comCreatePoll);}catch(e){r(e);}}),n.command("close").description("Close a poll").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(tt,{id:t});c(`Poll closed: ${o.comClosePoll.status}`),i(e,o.comClosePoll);}catch(o){r(o);}}),n.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 a(et,{pollId:t,optionId:e.option});c(`Voted: ${o.comVotePoll.label} (${o.comVotePoll.voteCount})`),i(e,o.comVotePoll);}catch(o){r(o);}});}function ht(s){let n=s.command("profiles").description("Comradecircle member profiles");n.command("list").description("List member profiles").option("--discoverable <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{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=>[d(o.id,12),d(o.memberId,12),o.displayName,d(o.headline??"-",30),o.presence??"-",o.discoverable?"yes":"no"])});}catch(e){r(e);}}),n.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=await a(ot,{memberId:t});if(!o.comProfile)throw new l(`Profile for member ${t} not found`);i(e,o.comProfile);}catch(o){r(o);}}),n.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=m(t.interests)),t.skills&&(e.skills=m(t.skills)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(rt,{input:e});c(`Profile saved: ${o.comUpsertProfile.displayName}`),i(t,o.comUpsertProfile);}catch(e){r(e);}});}function yt(s){let n=s.command("feed").description("Comradecircle home feed & follows");n.command("home").description("The calling member's unified home feed").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(it,{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=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.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 a(st,{targetType:t.targetType?t.targetType.toUpperCase():void 0});i(t,e.comMyFollows,{headers:["ID","Target","Target Type","Muted"],rows:e.comMyFollows.map(o=>[d(o.id,12),d(o.targetId,12),o.targetType,o.muted?"yes":"no"])});}catch(e){r(e);}}),n.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 a(at,{input:e});c(`Following ${o.comFollow.targetType} ${o.comFollow.targetId}`),i(t,o.comFollow);}catch(e){r(e);}}),n.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 a(ct,{input:e});c(`Unfollowed: ${o.comUnfollow}`),i(t,{unfollowed:o.comUnfollow});}catch(e){r(e);}}),n.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 a(dt,{id:t,muted:e.muted});c(`Follow ${o.comMuteFollow.muted?"muted":"unmuted"}`),i(e,o.comMuteFollow);}catch(o){r(o);}});}function wt(s){s.command("health").description("Comradecircle service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await w(lt);c(t.comHealth),i(n,{health:t.comHealth});}catch(t){r(t);}});}var $t={id:"comradecircle",version:"1.0.0",displayName:"Comradecircle",dependsOn:["auth","workspaces"],register(s,n){T(n);let t=s.command("comradecircle").description("Comradecircle community circles");pt(t),ut(t),mt(t),ft(t),gt(t),Ct(t),It(t),ht(t),yt(t),wt(t);}},Lo=$t;module.exports=Lo;
|