@burdenoff/cli-sdk 2026.1102.1 → 2026.1102.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-O6UCQ5IT.js +1 -0
- package/dist/{chunk-AYNNSLCL.js → chunk-ZGT7IIOP.js} +409 -418
- package/dist/modules/adaptercloud/index.cjs +9 -6
- package/dist/modules/adaptercloud/index.js +7 -4
- 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 +35 -21
- package/dist/modules/atheletebridge/index.js +33 -19
- 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.cjs +64 -67
- package/dist/modules/buildmyiq/index.js +60 -63
- 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 +24 -16
- package/dist/modules/comradecircle/index.js +20 -12
- package/dist/modules/conversations/index.cjs +7 -7
- package/dist/modules/conversations/index.js +2 -2
- package/dist/modules/coolandlovely/index.cjs +28 -15
- package/dist/modules/coolandlovely/index.js +30 -17
- 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 +23 -13
- package/dist/modules/ecoimpacthub/index.js +20 -10
- package/dist/modules/eventfullymanaged/index.cjs +74 -74
- package/dist/modules/eventfullymanaged/index.js +78 -78
- 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 +10 -7
- package/dist/modules/govcitizenhub/index.js +8 -5
- 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 +28 -16
- package/dist/modules/intelwatchtower/index.js +25 -13
- package/dist/modules/kadaikodi/index.cjs +2 -2
- package/dist/modules/kadaikodi/index.js +2 -2
- package/dist/modules/labsofscience/index.cjs +10 -6
- package/dist/modules/labsofscience/index.js +9 -5
- package/dist/modules/manufacturedops/index.cjs +35 -22
- package/dist/modules/manufacturedops/index.js +35 -22
- 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.cjs +21 -21
- package/dist/modules/planmagnet/index.js +32 -32
- package/dist/modules/products/index.cjs +4 -4
- package/dist/modules/products/index.js +2 -2
- package/dist/modules/proserviceworld/index.cjs +18 -13
- package/dist/modules/proserviceworld/index.js +18 -13
- 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 +43 -19
- package/dist/modules/subscriberbot/index.js +47 -23
- 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 +18 -9
- package/dist/modules/technospam/index.js +18 -9
- package/dist/modules/theculturepost/index.cjs +27 -22
- package/dist/modules/theculturepost/index.js +32 -27
- package/dist/modules/theglobalfuel/index.cjs +65 -60
- package/dist/modules/theglobalfuel/index.js +65 -60
- 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,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,l){super(o),this.name="CliUserError",this.exitCode=l?.exitCode??1,this.hint=l?.hint;}};var g=class extends Error{cause;constructor(o,l){super(o),this.name="CliInternalError",this.cause=l;}};var C=null;function E(i){C=i;}function
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,l){super(o),this.name="CliUserError",this.exitCode=l?.exitCode??1,this.hint=l?.hint;}};var g=class extends Error{cause;constructor(o,l){super(o),this.name="CliInternalError",this.cause=l;}};var C=null;function E(i){C=i;}function h(){if(!C)throw new g("vibecontrols module helpers used before setHelpersContext was called");return C}async function s(i,o){return h().gql.global.request(i,o)}function a(i){let o=i instanceof Error?i.message:String(i);throw new d(o)}function u(i,o,l){h().output.formatAndOutput(i,o,l);}function p(i){h().output.printSuccess(i);}function w(i){return h().output.formatStatus(i)}function f(i,o){return h().output.truncate(i,o)}var x=`
|
|
2
2
|
query ListProducts($filter: PlatformProductFilterInput, $limit: Int, $offset: Int) {
|
|
3
3
|
platformProducts(filter: $filter, limit: $limit, offset: $offset) {
|
|
4
4
|
items { id name slug status logoUrl appUrl }
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
mutation DeletePlatformProduct($id: ID!) {
|
|
28
28
|
deletePlatformProduct(id: $id)
|
|
29
29
|
}
|
|
30
|
-
`,
|
|
30
|
+
`,S=`
|
|
31
31
|
query ListShortcuts($filter: KeyboardShortcutFilterInput, $limit: Int) {
|
|
32
32
|
keyboardShortcuts(filter: $filter, limit: $limit) {
|
|
33
33
|
items { id label shortcutKey category eventName isEnabled productId }
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
`,
|
|
36
|
+
`,O=`
|
|
37
37
|
mutation CreateKeyboardShortcut($input: CreateKeyboardShortcutInput!) {
|
|
38
38
|
createKeyboardShortcut(input: $input) {
|
|
39
39
|
id label shortcutKey isEnabled
|
|
@@ -99,4 +99,4 @@
|
|
|
99
99
|
evaluations { key flagType value variant reason }
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
`;function W(i){let o=i.command("products").description("Platform products, shortcuts, content-pages, feature-flags");o.command("list").description("List platform products").option("--search <q>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.search&&(e.search=t.search),t.status&&(e.status=t.status.toUpperCase());let n=await s(x,{filter:Object.keys(e).length?e:void 0,limit:t.limit,offset:0});u(t,n.platformProducts.items,{headers:["ID","Name","Slug","Status"],rows:n.platformProducts.items.map(r=>[f(r.id,12),r.name,r.slug??"-",w(r.status)])});}catch(e){a(e);}}),o.command("get").description("Get a product").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await s(I,{id:t});if(!n.platformProduct)throw new d(`Product ${t} not found`);u(e,n.platformProduct);}catch(n){a(n);}}),o.command("create").description("Create a platform product").requiredOption("--name <s>").requiredOption("--slug <s>").option("--description <s>").option("--status <s>","DRAFT|ACTIVE|ARCHIVED","DRAFT").option("--app-url <url>").option("--logo-url <url>").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,slug:t.slug,description:t.description,status:(t.status??"DRAFT").toUpperCase(),appUrl:t.appUrl,logoUrl:t.logoUrl},n=await s(v,{input:e});p(`Product created: ${n.createPlatformProduct.name}`),u(t,n.createPlatformProduct);}catch(e){a(e);}}),o.command("update").description("Update a product").argument("<id>").option("--name <s>").option("--description <s>").option("--status <s>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.status&&(n.status=e.status.toUpperCase()),!Object.keys(n).length)throw new d("No updates specified");let r=await s(P,{id:t,input:n});p("Product updated"),u(e,r.updatePlatformProduct);}catch(n){a(n);}}),o.command("delete").description("Delete a product").argument("<id>").action(async t=>{try{await s(A,{id:t}),p("Product deleted");}catch(e){a(e);}});let l=o.command("shortcuts").description("Keyboard shortcuts");l.command("list").description("List shortcuts").option("--product <id>").option("--category <c>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.product&&(e.productId=t.product),t.category&&(e.category=t.category);let n=await s(
|
|
102
|
+
`;function W(i){let o=i.command("products").description("Platform products, shortcuts, content-pages, feature-flags");o.command("list").description("List platform products").option("--search <q>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.search&&(e.search=t.search),t.status&&(e.status=t.status.toUpperCase());let n=await s(x,{filter:Object.keys(e).length?e:void 0,limit:t.limit,offset:0});u(t,n.platformProducts.items,{headers:["ID","Name","Slug","Status"],rows:n.platformProducts.items.map(r=>[f(r.id,12),r.name,r.slug??"-",w(r.status)])});}catch(e){a(e);}}),o.command("get").description("Get a product").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await s(I,{id:t});if(!n.platformProduct)throw new d(`Product ${t} not found`);u(e,n.platformProduct);}catch(n){a(n);}}),o.command("create").description("Create a platform product").requiredOption("--name <s>").requiredOption("--slug <s>").option("--description <s>").option("--status <s>","DRAFT|ACTIVE|ARCHIVED","DRAFT").option("--app-url <url>").option("--logo-url <url>").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,slug:t.slug,description:t.description,status:(t.status??"DRAFT").toUpperCase(),appUrl:t.appUrl,logoUrl:t.logoUrl},n=await s(v,{input:e});p(`Product created: ${n.createPlatformProduct.name}`),u(t,n.createPlatformProduct);}catch(e){a(e);}}),o.command("update").description("Update a product").argument("<id>").option("--name <s>").option("--description <s>").option("--status <s>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.status&&(n.status=e.status.toUpperCase()),!Object.keys(n).length)throw new d("No updates specified");let r=await s(P,{id:t,input:n});p("Product updated"),u(e,r.updatePlatformProduct);}catch(n){a(n);}}),o.command("delete").description("Delete a product").argument("<id>").action(async t=>{try{await s(A,{id:t}),p("Product deleted");}catch(e){a(e);}});let l=o.command("shortcuts").description("Keyboard shortcuts");l.command("list").description("List shortcuts").option("--product <id>").option("--category <c>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.product&&(e.productId=t.product),t.category&&(e.category=t.category);let n=await s(S,{filter:Object.keys(e).length?e:void 0,limit:t.limit});u(t,n.keyboardShortcuts.items,{headers:["ID","Label","Key","Category","Event","Enabled"],rows:n.keyboardShortcuts.items.map(r=>[f(r.id,12),r.label,r.shortcutKey,r.category??"-",r.eventName??"-",String(!!r.isEnabled)])});}catch(e){a(e);}}),l.command("create").description("Create a shortcut").requiredOption("--label <s>").requiredOption("--key <s>",'Shortcut key sequence (e.g. "g h")').requiredOption("--event <name>","Event emitted when shortcut fires").requiredOption("--product <id>","Owning product id").option("--category <c>","Navigation|Editing|...").option("--enabled").option("-f, --format <format>").action(async t=>{try{let e={label:t.label,shortcutKey:t.key,eventName:t.event,productId:t.product,category:t.category,isEnabled:t.enabled!==!1},n=await s(O,{input:e});p("Shortcut created"),u(t,n.createKeyboardShortcut);}catch(e){a(e);}}),l.command("update").description("Update a shortcut").argument("<id>").option("--label <s>").option("--key <s>").option("--enabled <bool>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.label&&(n.label=e.label),e.key&&(n.shortcutKey=e.key),e.enabled!==void 0&&(n.isEnabled=e.enabled==="true"),!Object.keys(n).length)throw new d("No updates specified");let r=await s(R,{id:t,input:n});p("Shortcut updated"),u(e,r.updateKeyboardShortcut);}catch(n){a(n);}}),l.command("delete").description("Delete a shortcut").argument("<id>").action(async t=>{try{await s($,{id:t}),p("Shortcut deleted");}catch(e){a(e);}});let y=o.command("content-pages").description("Content pages (legal, marketing)");y.command("list").description("List content pages for a product").requiredOption("--product <id>").option("--published").option("--visibility <v>","PUBLIC|PRIVATE").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.published!==void 0&&(e.isPublished=t.published),t.visibility&&(e.visibility=t.visibility.toUpperCase());let n=await s(D,{productId:t.product,filter:Object.keys(e).length?e:void 0,limit:t.limit});u(t,n.contentPages.items,{headers:["ID","Slug","Title","Visibility","Published"],rows:n.contentPages.items.map(r=>[f(r.id,12),r.slug,f(r.title,40),r.visibility??"-",String(!!r.isPublished)])});}catch(e){a(e);}}),y.command("create").description("Create a content page").requiredOption("--product <id>").requiredOption("--slug <s>").requiredOption("--title <s>").requiredOption("--content <s>").option("--visibility <v>","PUBLIC|PRIVATE","PUBLIC").option("--published").option("-f, --format <format>").action(async t=>{try{let e={productId:t.product,slug:t.slug,title:t.title,content:t.content,visibility:(t.visibility??"PUBLIC").toUpperCase(),isPublished:!!t.published},n=await s(F,{input:e});p("Content page created"),u(t,n.createContentPage);}catch(e){a(e);}}),y.command("update").description("Update a content page").argument("<id>").option("--title <s>").option("--content <s>").option("--visibility <v>").option("--published <bool>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.content!==void 0&&(n.content=e.content),e.visibility&&(n.visibility=e.visibility.toUpperCase()),e.published!==void 0&&(n.isPublished=e.published==="true"),!Object.keys(n).length)throw new d("No updates specified");let r=await s(L,{id:t,input:n});p("Content page updated"),u(e,r.updateContentPage);}catch(n){a(n);}}),y.command("delete").description("Delete a content page").argument("<id>").action(async t=>{try{await s(_,{id:t}),p("Content page deleted");}catch(e){a(e);}});let m=o.command("feature-flags").description("Feature flag administration (highest SRE/ops value)");m.command("list").description("List feature flags").option("--product <id>").option("--status <s>").option("--category <c>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.product&&(e.productId=t.product),t.status&&(e.status=t.status.toUpperCase()),t.category&&(e.category=t.category);let n=await s(U,{filter:Object.keys(e).length?e:void 0,limit:t.limit});u(t,n.featureFlags.items,{headers:["ID","Key","Type","Status","Default"],rows:n.featureFlags.items.map(r=>[f(r.id,12),r.key,r.flagType??"-",w(r.status),String(r.defaultValue)])});}catch(e){a(e);}}),m.command("create").description("Create a feature flag").requiredOption("--key <s>","Stable key (e.g. enable-beta-ui)").requiredOption("--name <s>","Human label").requiredOption("--product <id>","Owning product id").option("--type <t>","BOOLEAN|STRING|NUMBER|JSON","BOOLEAN").option("--default <s>","Default value (parsed as JSON)").option("--description <s>").option("--category <c>").option("--previewable").option("--tags <s>","Comma-separated tags").option("-f, --format <format>").action(async t=>{try{let e={key:t.key,name:t.name,productId:t.product,flagType:(t.type??"BOOLEAN").toUpperCase(),defaultValue:t.default?JSON.parse(t.default):!1,description:t.description,category:t.category,previewable:!!t.previewable,tags:t.tags?t.tags.split(","):void 0},n=await s(q,{input:e});p(`Feature flag created: ${n.createFeatureFlag.key}`),u(t,n.createFeatureFlag);}catch(e){a(e);}}),m.command("update").description("Update a feature flag").argument("<id>").option("--name <s>").option("--default <s>","Default value (parsed as JSON)").option("--status <s>","ACTIVE|ARCHIVED").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.default!==void 0&&(n.defaultValue=JSON.parse(e.default)),e.status&&(n.status=e.status.toUpperCase()),!Object.keys(n).length)throw new d("No updates specified");let r=await s(N,{id:t,input:n});p("Feature flag updated"),u(e,r.updateFeatureFlag);}catch(n){a(n);}}),m.command("delete").description("Delete a feature flag").argument("<id>").action(async t=>{try{await s(G,{id:t}),p("Feature flag deleted");}catch(e){a(e);}}),m.command("evaluate").description("Evaluate flags in a workspace context").requiredOption("--workspace <id>").requiredOption("--keys <s>","Comma-separated flag keys").option("-f, --format <format>").action(async t=>{try{let e={workspaceId:t.workspace,keys:t.keys.split(",")},n=await s(j,{input:e});u(t,n.evaluateFeatureFlags.evaluations);}catch(e){a(e);}});}var et={id:"products",version:"1.0.0",displayName:"Platform Products",dependsOn:["auth"],register(i,o){E(o),W(i);}},de=et;module.exports=de;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,c,h as h$1,
|
|
1
|
+
import {a,c,i,r,p,h as h$1,k as k$1}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var b=`
|
|
2
2
|
query ListProducts($filter: PlatformProductFilterInput, $limit: Int, $offset: Int) {
|
|
3
3
|
platformProducts(filter: $filter, limit: $limit, offset: $offset) {
|
|
4
4
|
items { id name slug status logoUrl appUrl }
|
|
@@ -99,4 +99,4 @@ import {a,c,h as h$1,p,n,g,i}from'../../chunk-W4JZR7RJ.js';import {o}from'../../
|
|
|
99
99
|
evaluations { key flagType value variant reason }
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
`;function N(m){let d=m.command("products").description("Platform products, shortcuts, content-pages, feature-flags");d.command("list").description("List platform products").option("--search <q>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.search&&(e.search=t.search),t.status&&(e.status=t.status.toUpperCase());let i=await c(b,{filter:Object.keys(e).length?e:void 0,limit:t.limit,offset:0});
|
|
102
|
+
`;function N(m){let d=m.command("products").description("Platform products, shortcuts, content-pages, feature-flags");d.command("list").description("List platform products").option("--search <q>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.search&&(e.search=t.search),t.status&&(e.status=t.status.toUpperCase());let i$1=await c(b,{filter:Object.keys(e).length?e:void 0,limit:t.limit,offset:0});i(t,i$1.platformProducts.items,{headers:["ID","Name","Slug","Status"],rows:i$1.platformProducts.items.map(a=>[r(a.id,12),a.name,a.slug??"-",p(a.status)])});}catch(e){h$1(e);}}),d.command("get").description("Get a product").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let i$1=await c(h,{id:t});if(!i$1.platformProduct)throw new o(`Product ${t} not found`);i(e,i$1.platformProduct);}catch(i){h$1(i);}}),d.command("create").description("Create a platform product").requiredOption("--name <s>").requiredOption("--slug <s>").option("--description <s>").option("--status <s>","DRAFT|ACTIVE|ARCHIVED","DRAFT").option("--app-url <url>").option("--logo-url <url>").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,slug:t.slug,description:t.description,status:(t.status??"DRAFT").toUpperCase(),appUrl:t.appUrl,logoUrl:t.logoUrl},i$1=await c(T,{input:e});k$1(`Product created: ${i$1.createPlatformProduct.name}`),i(t,i$1.createPlatformProduct);}catch(e){h$1(e);}}),d.command("update").description("Update a product").argument("<id>").option("--name <s>").option("--description <s>").option("--status <s>").option("-f, --format <format>").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.description!==void 0&&(i$1.description=e.description),e.status&&(i$1.status=e.status.toUpperCase()),!Object.keys(i$1).length)throw new o("No updates specified");let a=await c(C,{id:t,input:i$1});k$1("Product updated"),i(e,a.updatePlatformProduct);}catch(i){h$1(i);}}),d.command("delete").description("Delete a product").argument("<id>").action(async t=>{try{await c(F,{id:t}),k$1("Product deleted");}catch(e){h$1(e);}});let l=d.command("shortcuts").description("Keyboard shortcuts");l.command("list").description("List shortcuts").option("--product <id>").option("--category <c>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.product&&(e.productId=t.product),t.category&&(e.category=t.category);let i$1=await c(U,{filter:Object.keys(e).length?e:void 0,limit:t.limit});i(t,i$1.keyboardShortcuts.items,{headers:["ID","Label","Key","Category","Event","Enabled"],rows:i$1.keyboardShortcuts.items.map(a=>[r(a.id,12),a.label,a.shortcutKey,a.category??"-",a.eventName??"-",String(!!a.isEnabled)])});}catch(e){h$1(e);}}),l.command("create").description("Create a shortcut").requiredOption("--label <s>").requiredOption("--key <s>",'Shortcut key sequence (e.g. "g h")').requiredOption("--event <name>","Event emitted when shortcut fires").requiredOption("--product <id>","Owning product id").option("--category <c>","Navigation|Editing|...").option("--enabled").option("-f, --format <format>").action(async t=>{try{let e={label:t.label,shortcutKey:t.key,eventName:t.event,productId:t.product,category:t.category,isEnabled:t.enabled!==!1},i$1=await c(w,{input:e});k$1("Shortcut created"),i(t,i$1.createKeyboardShortcut);}catch(e){h$1(e);}}),l.command("update").description("Update a shortcut").argument("<id>").option("--label <s>").option("--key <s>").option("--enabled <bool>").option("-f, --format <format>").action(async(t,e)=>{try{let i$1={};if(e.label&&(i$1.label=e.label),e.key&&(i$1.shortcutKey=e.key),e.enabled!==void 0&&(i$1.isEnabled=e.enabled==="true"),!Object.keys(i$1).length)throw new o("No updates specified");let a=await c(R,{id:t,input:i$1});k$1("Shortcut updated"),i(e,a.updateKeyboardShortcut);}catch(i){h$1(i);}}),l.command("delete").description("Delete a shortcut").argument("<id>").action(async t=>{try{await c(I,{id:t}),k$1("Shortcut deleted");}catch(e){h$1(e);}});let g=d.command("content-pages").description("Content pages (legal, marketing)");g.command("list").description("List content pages for a product").requiredOption("--product <id>").option("--published").option("--visibility <v>","PUBLIC|PRIVATE").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.published!==void 0&&(e.isPublished=t.published),t.visibility&&(e.visibility=t.visibility.toUpperCase());let i$1=await c(S,{productId:t.product,filter:Object.keys(e).length?e:void 0,limit:t.limit});i(t,i$1.contentPages.items,{headers:["ID","Slug","Title","Visibility","Published"],rows:i$1.contentPages.items.map(a=>[r(a.id,12),a.slug,r(a.title,40),a.visibility??"-",String(!!a.isPublished)])});}catch(e){h$1(e);}}),g.command("create").description("Create a content page").requiredOption("--product <id>").requiredOption("--slug <s>").requiredOption("--title <s>").requiredOption("--content <s>").option("--visibility <v>","PUBLIC|PRIVATE","PUBLIC").option("--published").option("-f, --format <format>").action(async t=>{try{let e={productId:t.product,slug:t.slug,title:t.title,content:t.content,visibility:(t.visibility??"PUBLIC").toUpperCase(),isPublished:!!t.published},i$1=await c(O,{input:e});k$1("Content page created"),i(t,i$1.createContentPage);}catch(e){h$1(e);}}),g.command("update").description("Update a content page").argument("<id>").option("--title <s>").option("--content <s>").option("--visibility <v>").option("--published <bool>").option("-f, --format <format>").action(async(t,e)=>{try{let i$1={};if(e.title&&(i$1.title=e.title),e.content!==void 0&&(i$1.content=e.content),e.visibility&&(i$1.visibility=e.visibility.toUpperCase()),e.published!==void 0&&(i$1.isPublished=e.published==="true"),!Object.keys(i$1).length)throw new o("No updates specified");let a=await c(A,{id:t,input:i$1});k$1("Content page updated"),i(e,a.updateContentPage);}catch(i){h$1(i);}}),g.command("delete").description("Delete a content page").argument("<id>").action(async t=>{try{await c(k,{id:t}),k$1("Content page deleted");}catch(e){h$1(e);}});let p$1=d.command("feature-flags").description("Feature flag administration (highest SRE/ops value)");p$1.command("list").description("List feature flags").option("--product <id>").option("--status <s>").option("--category <c>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.product&&(e.productId=t.product),t.status&&(e.status=t.status.toUpperCase()),t.category&&(e.category=t.category);let i$1=await c($,{filter:Object.keys(e).length?e:void 0,limit:t.limit});i(t,i$1.featureFlags.items,{headers:["ID","Key","Type","Status","Default"],rows:i$1.featureFlags.items.map(a=>[r(a.id,12),a.key,a.flagType??"-",p(a.status),String(a.defaultValue)])});}catch(e){h$1(e);}}),p$1.command("create").description("Create a feature flag").requiredOption("--key <s>","Stable key (e.g. enable-beta-ui)").requiredOption("--name <s>","Human label").requiredOption("--product <id>","Owning product id").option("--type <t>","BOOLEAN|STRING|NUMBER|JSON","BOOLEAN").option("--default <s>","Default value (parsed as JSON)").option("--description <s>").option("--category <c>").option("--previewable").option("--tags <s>","Comma-separated tags").option("-f, --format <format>").action(async t=>{try{let e={key:t.key,name:t.name,productId:t.product,flagType:(t.type??"BOOLEAN").toUpperCase(),defaultValue:t.default?JSON.parse(t.default):!1,description:t.description,category:t.category,previewable:!!t.previewable,tags:t.tags?t.tags.split(","):void 0},i$1=await c(v,{input:e});k$1(`Feature flag created: ${i$1.createFeatureFlag.key}`),i(t,i$1.createFeatureFlag);}catch(e){h$1(e);}}),p$1.command("update").description("Update a feature flag").argument("<id>").option("--name <s>").option("--default <s>","Default value (parsed as JSON)").option("--status <s>","ACTIVE|ARCHIVED").option("-f, --format <format>").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.default!==void 0&&(i$1.defaultValue=JSON.parse(e.default)),e.status&&(i$1.status=e.status.toUpperCase()),!Object.keys(i$1).length)throw new o("No updates specified");let a=await c(D,{id:t,input:i$1});k$1("Feature flag updated"),i(e,a.updateFeatureFlag);}catch(i){h$1(i);}}),p$1.command("delete").description("Delete a feature flag").argument("<id>").action(async t=>{try{await c(_,{id:t}),k$1("Feature flag deleted");}catch(e){h$1(e);}}),p$1.command("evaluate").description("Evaluate flags in a workspace context").requiredOption("--workspace <id>").requiredOption("--keys <s>","Comma-separated flag keys").option("-f, --format <format>").action(async t=>{try{let e={workspaceId:t.workspace,keys:t.keys.split(",")},i$1=await c(L,{input:e});i(t,i$1.evaluateFeatureFlags.evaluations);}catch(e){h$1(e);}});}var q={id:"products",version:"1.0.0",displayName:"Platform Products",dependsOn:["auth"],register(m,d){a(d),N(m);}},J=q;export{J 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 u=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},y=class extends u{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},w=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var h=null;function v(i){h=i;}function I(){if(!h)throw new w("vibecontrols module helpers used before setHelpersContext was called");return h}function wt(){let i=I();if(!i.auth.isAuthenticated())throw new y("Authentication required.",{hint:`Run \`${i.productName} auth login\` to authenticate.`})}async function a(i,r){return wt(),I().gql.workspace.request(i,r)}async function A(i,r){return I().gql.workspaceAuthOnly.request(i,r)}function o(i){let r=i instanceof Error?i.message:String(i);throw new u(r)}function s(i,r,t){I().output.formatAndOutput(i,r,t);}function d(i){I().output.printSuccess(i);}function b(i){return I().output.formatDate(i)}function g(i,r){return I().output.truncate(i,r)}var x=`
|
|
2
2
|
query PswClient($id: ID!) {
|
|
3
3
|
pswClient(id: $id) {
|
|
4
4
|
id name type status industry contactName contactEmail contactPhone
|
|
@@ -163,31 +163,36 @@
|
|
|
163
163
|
$subjectType: String
|
|
164
164
|
$pagination: PaginationInput
|
|
165
165
|
) {
|
|
166
|
-
pswListComplianceChecks(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
resolvedAt details evidenceFileId createdAt updatedAt workspaceId
|
|
166
|
+
pswListComplianceChecks(status: $status, subjectId: $subjectId, subjectType: $subjectType, pagination: $pagination) {
|
|
167
|
+
items {
|
|
168
|
+
id type status title subjectId subjectType reviewerId dueDate resolvedAt details
|
|
169
|
+
evidenceFileId createdAt updatedAt workspaceId
|
|
170
|
+
}
|
|
171
|
+
pageInfo { cursor hasMore }
|
|
172
|
+
totalCount
|
|
174
173
|
}
|
|
175
174
|
}
|
|
176
175
|
`,B=`
|
|
177
176
|
query PswListConflictChecks($clientId: ID, $pagination: PaginationInput) {
|
|
178
177
|
pswListConflictChecks(clientId: $clientId, pagination: $pagination) {
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
items {
|
|
179
|
+
id clientId matterId status searchedParties findings waiverReason clearedById
|
|
180
|
+
resolvedAt createdAt updatedAt workspaceId
|
|
181
|
+
}
|
|
182
|
+
pageInfo { cursor hasMore }
|
|
183
|
+
totalCount
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
`,K=`
|
|
184
187
|
query PswListPracticeAreas($pagination: PaginationInput) {
|
|
185
188
|
pswListPracticeAreas(pagination: $pagination) {
|
|
186
|
-
id name code description isActive createdAt updatedAt workspaceId
|
|
189
|
+
items { id name code description isActive createdAt updatedAt workspaceId }
|
|
190
|
+
pageInfo { cursor hasMore }
|
|
191
|
+
totalCount
|
|
187
192
|
}
|
|
188
193
|
}
|
|
189
194
|
`,J=`
|
|
190
195
|
query PswHealth {
|
|
191
196
|
pswHealth
|
|
192
197
|
}
|
|
193
|
-
`;function Y(i,r){try{return JSON.parse(r)}catch{throw new p(`--${i} must be valid JSON`)}}function u(i){let r=Number.parseInt(i,10);if(Number.isNaN(r))throw new p(`Expected an integer but got "${i}"`);return r}function f(i){let r=Number.parseFloat(i);if(Number.isNaN(r))throw new p(`Expected a number but got "${i}"`);return r}function C(i){return i.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function m(i){let r={};return i.limit!==void 0&&(r.limit=i.limit),i.offset!==void 0&&(r.offset=i.offset),i.cursor!==void 0&&(r.cursor=i.cursor),Object.keys(r).length?r:void 0}function Q(i){let r=i.command("clients").description("ProServiceWorld clients");r.command("list").description("List clients").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(P,{status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListClients.items,{headers:["ID","Name","Type","Status","Industry","Contact"],rows:e.pswListClients.items.map(n=>[g(n.id,12),n.name,n.type,n.status,n.industry??"-",n.contactName??"-"])});}catch(e){o(e);}}),r.command("get").description("Get a client by id").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(x,{id:t});if(!n.pswClient)throw new p(`Client ${t} not found`);s(e,n.pswClient);}catch(n){o(n);}}),r.command("create").description("Create a client").requiredOption("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.industry&&(e.industry=t.industry),t.contactName&&(e.contactName=t.contactName),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.address&&(e.address=t.address),t.notes&&(e.notes=t.notes),t.relationshipOwner&&(e.relationshipOwnerId=t.relationshipOwner),t.tags&&(e.tags=C(t.tags));let n=await a(D,{input:e});d(`Client created: ${n.pswCreateClient.name}`),s(t,n.pswCreateClient);}catch(e){o(e);}}),r.command("update").description("Update a client").argument("<id>","Client ID").option("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.industry!==void 0&&(n.industry=e.industry),e.contactName!==void 0&&(n.contactName=e.contactName),e.contactEmail!==void 0&&(n.contactEmail=e.contactEmail),e.contactPhone!==void 0&&(n.contactPhone=e.contactPhone),e.address!==void 0&&(n.address=e.address),e.notes!==void 0&&(n.notes=e.notes),e.relationshipOwner&&(n.relationshipOwnerId=e.relationshipOwner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let E=await a(O,{id:t,input:n});d("Client updated"),s(e,E.pswUpdateClient);}catch(n){o(n);}}),r.command("archive").description("Archive a client").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(S,{id:t});d(n.pswArchiveClient?`Client ${t} archived`:`Client ${t} not archived`),s(e,{archived:n.pswArchiveClient});}catch(n){o(n);}});}function X(i){let r=i.command("engagements").description("ProServiceWorld engagements");r.command("list").description("List engagements").option("--client <id>","Filter by client ID").option("--status <s>","Engagement status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(R,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListEngagements.items,{headers:["ID","Name","Status","Fee","Amount","Currency"],rows:e.pswListEngagements.items.map(n=>[g(n.id,12),n.name,n.status,n.feeArrangement??"-",n.feeAmount!=null?String(n.feeAmount):"-",n.currency??"-"])});}catch(e){o(e);}}),r.command("get").description("Get an engagement by id").argument("<id>","Engagement ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t});if(!n.pswEngagement)throw new p(`Engagement ${t} not found`);s(e,n.pswEngagement);}catch(n){o(n);}}),r.command("create").description("Create an engagement").requiredOption("--client <id>","Client ID").requiredOption("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",f).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,name:t.name};t.description&&(e.description=t.description),t.feeArrangement&&(e.feeArrangement=t.feeArrangement.toUpperCase()),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.responsiblePartner&&(e.responsiblePartnerId=t.responsiblePartner),t.tags&&(e.tags=C(t.tags));let n=await a($,{input:e});d(`Engagement created: ${n.pswCreateEngagement.name}`),s(t,n.pswCreateEngagement);}catch(e){o(e);}}),r.command("update").description("Update an engagement").argument("<id>","Engagement ID").option("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",f).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.feeArrangement&&(n.feeArrangement=e.feeArrangement.toUpperCase()),e.feeAmount!==void 0&&(n.feeAmount=e.feeAmount),e.currency&&(n.currency=e.currency),e.startDate&&(n.startDate=e.startDate),e.endDate&&(n.endDate=e.endDate),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.responsiblePartner&&(n.responsiblePartnerId=e.responsiblePartner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let E=await a(N,{id:t,input:n});d("Engagement updated"),s(e,E.pswUpdateEngagement);}catch(n){o(n);}}),r.command("transition").description("Advance an engagement through its delivery lifecycle").argument("<id>","Engagement ID").requiredOption("--status <s>","PROPOSAL|ACCEPTED|IN_PROGRESS|REVIEW|DELIVERED|INVOICED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t,status:e.status.toUpperCase()});d(`Engagement transitioned to ${n.pswTransitionEngagement.status}`),s(e,n.pswTransitionEngagement);}catch(n){o(n);}});}function Z(i){let r=i.command("matters").description("ProServiceWorld matters");r.command("list").description("List matters").option("--client <id>","Filter by client ID").option("--engagement <id>","Filter by engagement ID").option("--status <s>","OPEN|ON_HOLD|CLOSED|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(q,{clientId:t.client,engagementId:t.engagement,status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListMatters.items,{headers:["ID","Title","Reference","Status","Priority","Privileged"],rows:e.pswListMatters.items.map(n=>[g(n.id,12),n.title,n.reference??"-",n.status,n.priority,n.isPrivileged?"yes":"no"])});}catch(e){o(e);}}),r.command("get").description("Get a matter by id").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});if(!n.pswMatter)throw new p(`Matter ${t} not found`);s(e,n.pswMatter);}catch(n){o(n);}}),r.command("create").description("Create a matter").requiredOption("--client <id>","Client ID").requiredOption("--title <t>","Matter title").option("--reference <r>","External reference").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged","Mark as privileged").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,title:t.title};t.reference&&(e.reference=t.reference),t.description&&(e.description=t.description),t.engagement&&(e.engagementId=t.engagement),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.leadPractitioner&&(e.leadPractitionerId=t.leadPractitioner),t.priority&&(e.priority=t.priority.toUpperCase()),t.privileged&&(e.isPrivileged=!0),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=C(t.tags));let n=await a(U,{input:e});d(`Matter created: ${n.pswCreateMatter.title}`),s(t,n.pswCreateMatter);}catch(e){o(e);}}),r.command("update").description("Update a matter").argument("<id>","Matter ID").option("--title <t>","Matter title").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged <bool>","true|false",t=>t==="true").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.description!==void 0&&(n.description=e.description),e.engagement&&(n.engagementId=e.engagement),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.leadPractitioner&&(n.leadPractitionerId=e.leadPractitioner),e.priority&&(n.priority=e.priority.toUpperCase()),e.privileged!==void 0&&(n.isPrivileged=e.privileged),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let E=await a(G,{id:t,input:n});d("Matter updated"),s(e,E.pswUpdateMatter);}catch(n){o(n);}}),r.command("close").description("Close a matter").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(W,{id:t});d(`Matter closed: ${n.pswCloseMatter.status}`),s(e,n.pswCloseMatter);}catch(n){o(n);}});}function tt(i){let r=i.command("invoices").description("ProServiceWorld invoices");r.command("list").description("List invoices").option("--client <id>","Filter by client ID").option("--status <s>","DRAFT|SENT|PAID|OVERDUE|CANCELLED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(j,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListInvoices.items,{headers:["ID","Number","Status","Total","Currency"],rows:e.pswListInvoices.items.map(n=>[g(n.id,12),n.number,n.status,n.total!=null?String(n.total):"-",n.currency??"-"])});}catch(e){o(e);}}),r.command("create").description("Create an invoice").requiredOption("--client <id>","Client ID").requiredOption("--number <n>","Invoice number").option("--engagement <id>","Engagement ID").option("--currency <c>","Currency code").option("--issue-date <iso>","Issue date (ISO)").option("--due-date <iso>","Due date (ISO)").option("--subtotal <n>","Subtotal",f).option("--tax-amount <n>","Tax amount",f).option("--total <n>","Total",f).option("--line-items <json>","Line items JSON").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,number:t.number};t.engagement&&(e.engagementId=t.engagement),t.currency&&(e.currency=t.currency),t.issueDate&&(e.issueDate=t.issueDate),t.dueDate&&(e.dueDate=t.dueDate),t.subtotal!==void 0&&(e.subtotal=t.subtotal),t.taxAmount!==void 0&&(e.taxAmount=t.taxAmount),t.total!==void 0&&(e.total=t.total),t.lineItems&&(e.lineItems=Y("line-items",t.lineItems)),t.notes&&(e.notes=t.notes);let n=await a(F,{input:e});d(`Invoice created: ${n.pswCreateInvoice.number}`),s(t,n.pswCreateInvoice);}catch(e){o(e);}}),r.command("mark-paid").description("Mark an invoice as paid").argument("<id>","Invoice ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});d(`Invoice ${n.pswMarkInvoicePaid.number} marked ${n.pswMarkInvoicePaid.status}`),s(e,n.pswMarkInvoicePaid);}catch(n){o(n);}});}function et(i){i.command("time-entries").description("ProServiceWorld time entries").command("log").description("Log a time entry").requiredOption("--date <iso>","Entry date (ISO)").requiredOption("--minutes <n>","Minutes worked",u).option("--matter <id>","Matter ID").option("--engagement <id>","Engagement ID").option("--rate <n>","Hourly rate",f).option("--narrative <s>","Narrative").option("--non-billable","Mark entry as non-billable").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.matter&&!t.engagement)throw new p("Provide --matter or --engagement to log time against");let e={date:t.date,minutes:t.minutes,billable:!t.nonBillable};t.matter&&(e.matterId=t.matter),t.engagement&&(e.engagementId=t.engagement),t.rate!==void 0&&(e.rate=t.rate),t.narrative&&(e.narrative=t.narrative);let n=await a(H,{input:e});d(`Time entry logged: ${n.pswLogTimeEntry.minutes} minutes`),s(t,n.pswLogTimeEntry);}catch(e){o(e);}});}function nt(i){i.command("compliance").description("ProServiceWorld compliance checks").command("list").description("List compliance checks").option("--status <s>","PENDING|IN_REVIEW|PASSED|FAILED|WAIVED").option("--subject <id>","Filter by subject ID").option("--subject-type <t>","Filter by subject type").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(z,{status:t.status?t.status.toUpperCase():void 0,subjectId:t.subject,subjectType:t.subjectType,pagination:m(t)});s(t,e.pswListComplianceChecks,{headers:["ID","Title","Type","Status","Subject","Due"],rows:e.pswListComplianceChecks.map(n=>[g(n.id,12),n.title,n.type,n.status,g(n.subjectId,12),b(n.dueDate)])});}catch(e){o(e);}});}function rt(i){i.command("conflicts").description("ProServiceWorld conflict-of-interest checks").command("list").description("List conflict checks").option("--client <id>","Filter by client ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{clientId:t.client,pagination:m(t)});s(t,e.pswListConflictChecks,{headers:["ID","Client","Matter","Status","Parties"],rows:e.pswListConflictChecks.map(n=>[g(n.id,12),g(n.clientId,12),n.matterId?g(n.matterId,12):"-",n.status,String(n.searchedParties.length)])});}catch(e){o(e);}});}function it(i){i.command("practice-areas").description("ProServiceWorld practice areas").command("list").description("List practice areas").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{pagination:m(t)});s(t,e.pswListPracticeAreas,{headers:["ID","Name","Code","Active"],rows:e.pswListPracticeAreas.map(n=>[g(n.id,12),n.name,n.code??"-",n.isActive?"yes":"no"])});}catch(e){o(e);}});}function ot(i){i.command("health").description("ProServiceWorld service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await A(J);d(t.pswHealth),s(r,{health:t.pswHealth});}catch(t){o(t);}});}var It={id:"proserviceworld",version:"1.0.0",displayName:"ProServiceWorld",dependsOn:["auth","workspaces"],register(i,r){v(r);let t=i.command("proserviceworld").description("ProServiceWorld professional-services automation");Q(t),X(t),Z(t),tt(t),et(t),nt(t),rt(t),it(t),ot(t);}},dn=It;module.exports=dn;
|
|
198
|
+
`;function Y(i,r){try{return JSON.parse(r)}catch{throw new u(`--${i} must be valid JSON`)}}function p(i){let r=Number.parseInt(i,10);if(Number.isNaN(r))throw new u(`Expected an integer but got "${i}"`);return r}function f(i){let r=Number.parseFloat(i);if(Number.isNaN(r))throw new u(`Expected a number but got "${i}"`);return r}function C(i){return i.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function m(i){let r={};return i.limit!==void 0&&(r.limit=i.limit),i.offset!==void 0&&(r.offset=i.offset),i.cursor!==void 0&&(r.cursor=i.cursor),Object.keys(r).length?r:void 0}function Q(i){let r=i.command("clients").description("ProServiceWorld clients");r.command("list").description("List clients").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(P,{status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListClients.items,{headers:["ID","Name","Type","Status","Industry","Contact"],rows:e.pswListClients.items.map(n=>[g(n.id,12),n.name,n.type,n.status,n.industry??"-",n.contactName??"-"])});}catch(e){o(e);}}),r.command("get").description("Get a client by id").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(x,{id:t});if(!n.pswClient)throw new u(`Client ${t} not found`);s(e,n.pswClient);}catch(n){o(n);}}),r.command("create").description("Create a client").requiredOption("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.industry&&(e.industry=t.industry),t.contactName&&(e.contactName=t.contactName),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.address&&(e.address=t.address),t.notes&&(e.notes=t.notes),t.relationshipOwner&&(e.relationshipOwnerId=t.relationshipOwner),t.tags&&(e.tags=C(t.tags));let n=await a(D,{input:e});d(`Client created: ${n.pswCreateClient.name}`),s(t,n.pswCreateClient);}catch(e){o(e);}}),r.command("update").description("Update a client").argument("<id>","Client ID").option("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.industry!==void 0&&(n.industry=e.industry),e.contactName!==void 0&&(n.contactName=e.contactName),e.contactEmail!==void 0&&(n.contactEmail=e.contactEmail),e.contactPhone!==void 0&&(n.contactPhone=e.contactPhone),e.address!==void 0&&(n.address=e.address),e.notes!==void 0&&(n.notes=e.notes),e.relationshipOwner&&(n.relationshipOwnerId=e.relationshipOwner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let E=await a(O,{id:t,input:n});d("Client updated"),s(e,E.pswUpdateClient);}catch(n){o(n);}}),r.command("archive").description("Archive a client").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(S,{id:t});d(n.pswArchiveClient?`Client ${t} archived`:`Client ${t} not archived`),s(e,{archived:n.pswArchiveClient});}catch(n){o(n);}});}function X(i){let r=i.command("engagements").description("ProServiceWorld engagements");r.command("list").description("List engagements").option("--client <id>","Filter by client ID").option("--status <s>","Engagement status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(R,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListEngagements.items,{headers:["ID","Name","Status","Fee","Amount","Currency"],rows:e.pswListEngagements.items.map(n=>[g(n.id,12),n.name,n.status,n.feeArrangement??"-",n.feeAmount!=null?String(n.feeAmount):"-",n.currency??"-"])});}catch(e){o(e);}}),r.command("get").description("Get an engagement by id").argument("<id>","Engagement ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t});if(!n.pswEngagement)throw new u(`Engagement ${t} not found`);s(e,n.pswEngagement);}catch(n){o(n);}}),r.command("create").description("Create an engagement").requiredOption("--client <id>","Client ID").requiredOption("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",f).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,name:t.name};t.description&&(e.description=t.description),t.feeArrangement&&(e.feeArrangement=t.feeArrangement.toUpperCase()),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.responsiblePartner&&(e.responsiblePartnerId=t.responsiblePartner),t.tags&&(e.tags=C(t.tags));let n=await a($,{input:e});d(`Engagement created: ${n.pswCreateEngagement.name}`),s(t,n.pswCreateEngagement);}catch(e){o(e);}}),r.command("update").description("Update an engagement").argument("<id>","Engagement ID").option("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",f).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.feeArrangement&&(n.feeArrangement=e.feeArrangement.toUpperCase()),e.feeAmount!==void 0&&(n.feeAmount=e.feeAmount),e.currency&&(n.currency=e.currency),e.startDate&&(n.startDate=e.startDate),e.endDate&&(n.endDate=e.endDate),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.responsiblePartner&&(n.responsiblePartnerId=e.responsiblePartner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let E=await a(N,{id:t,input:n});d("Engagement updated"),s(e,E.pswUpdateEngagement);}catch(n){o(n);}}),r.command("transition").description("Advance an engagement through its delivery lifecycle").argument("<id>","Engagement ID").requiredOption("--status <s>","PROPOSAL|ACCEPTED|IN_PROGRESS|REVIEW|DELIVERED|INVOICED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t,status:e.status.toUpperCase()});d(`Engagement transitioned to ${n.pswTransitionEngagement.status}`),s(e,n.pswTransitionEngagement);}catch(n){o(n);}});}function Z(i){let r=i.command("matters").description("ProServiceWorld matters");r.command("list").description("List matters").option("--client <id>","Filter by client ID").option("--engagement <id>","Filter by engagement ID").option("--status <s>","OPEN|ON_HOLD|CLOSED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(q,{clientId:t.client,engagementId:t.engagement,status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListMatters.items,{headers:["ID","Title","Reference","Status","Priority","Privileged"],rows:e.pswListMatters.items.map(n=>[g(n.id,12),n.title,n.reference??"-",n.status,n.priority,n.isPrivileged?"yes":"no"])});}catch(e){o(e);}}),r.command("get").description("Get a matter by id").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});if(!n.pswMatter)throw new u(`Matter ${t} not found`);s(e,n.pswMatter);}catch(n){o(n);}}),r.command("create").description("Create a matter").requiredOption("--client <id>","Client ID").requiredOption("--title <t>","Matter title").option("--reference <r>","External reference").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged","Mark as privileged").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,title:t.title};t.reference&&(e.reference=t.reference),t.description&&(e.description=t.description),t.engagement&&(e.engagementId=t.engagement),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.leadPractitioner&&(e.leadPractitionerId=t.leadPractitioner),t.priority&&(e.priority=t.priority.toUpperCase()),t.privileged&&(e.isPrivileged=!0),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=C(t.tags));let n=await a(U,{input:e});d(`Matter created: ${n.pswCreateMatter.title}`),s(t,n.pswCreateMatter);}catch(e){o(e);}}),r.command("update").description("Update a matter").argument("<id>","Matter ID").option("--title <t>","Matter title").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged <bool>","true|false",t=>t==="true").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.description!==void 0&&(n.description=e.description),e.engagement&&(n.engagementId=e.engagement),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.leadPractitioner&&(n.leadPractitionerId=e.leadPractitioner),e.priority&&(n.priority=e.priority.toUpperCase()),e.privileged!==void 0&&(n.isPrivileged=e.privileged),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let E=await a(G,{id:t,input:n});d("Matter updated"),s(e,E.pswUpdateMatter);}catch(n){o(n);}}),r.command("close").description("Close a matter").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(W,{id:t});d(`Matter closed: ${n.pswCloseMatter.status}`),s(e,n.pswCloseMatter);}catch(n){o(n);}});}function tt(i){let r=i.command("invoices").description("ProServiceWorld invoices");r.command("list").description("List invoices").option("--client <id>","Filter by client ID").option("--status <s>","DRAFT|SENT|PAID|OVERDUE|CANCELLED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(j,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:m(t)});s(t,e.pswListInvoices.items,{headers:["ID","Number","Status","Total","Currency"],rows:e.pswListInvoices.items.map(n=>[g(n.id,12),n.number,n.status,n.total!=null?String(n.total):"-",n.currency??"-"])});}catch(e){o(e);}}),r.command("create").description("Create an invoice").requiredOption("--client <id>","Client ID").requiredOption("--number <n>","Invoice number").option("--engagement <id>","Engagement ID").option("--currency <c>","Currency code").option("--issue-date <iso>","Issue date (ISO)").option("--due-date <iso>","Due date (ISO)").option("--subtotal <n>","Subtotal",f).option("--tax-amount <n>","Tax amount",f).option("--total <n>","Total",f).option("--line-items <json>","Line items JSON").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,number:t.number};t.engagement&&(e.engagementId=t.engagement),t.currency&&(e.currency=t.currency),t.issueDate&&(e.issueDate=t.issueDate),t.dueDate&&(e.dueDate=t.dueDate),t.subtotal!==void 0&&(e.subtotal=t.subtotal),t.taxAmount!==void 0&&(e.taxAmount=t.taxAmount),t.total!==void 0&&(e.total=t.total),t.lineItems&&(e.lineItems=Y("line-items",t.lineItems)),t.notes&&(e.notes=t.notes);let n=await a(F,{input:e});d(`Invoice created: ${n.pswCreateInvoice.number}`),s(t,n.pswCreateInvoice);}catch(e){o(e);}}),r.command("mark-paid").description("Mark an invoice as paid").argument("<id>","Invoice ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});d(`Invoice ${n.pswMarkInvoicePaid.number} marked ${n.pswMarkInvoicePaid.status}`),s(e,n.pswMarkInvoicePaid);}catch(n){o(n);}});}function et(i){i.command("time-entries").description("ProServiceWorld time entries").command("log").description("Log a time entry").requiredOption("--date <iso>","Entry date (ISO)").requiredOption("--minutes <n>","Minutes worked",p).option("--matter <id>","Matter ID").option("--engagement <id>","Engagement ID").option("--rate <n>","Hourly rate",f).option("--narrative <s>","Narrative").option("--non-billable","Mark entry as non-billable").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.matter&&!t.engagement)throw new u("Provide --matter or --engagement to log time against");let e={date:t.date,minutes:t.minutes,billable:!t.nonBillable};t.matter&&(e.matterId=t.matter),t.engagement&&(e.engagementId=t.engagement),t.rate!==void 0&&(e.rate=t.rate),t.narrative&&(e.narrative=t.narrative);let n=await a(H,{input:e});d(`Time entry logged: ${n.pswLogTimeEntry.minutes} minutes`),s(t,n.pswLogTimeEntry);}catch(e){o(e);}});}function nt(i){i.command("compliance").description("ProServiceWorld compliance checks").command("list").description("List compliance checks").option("--status <s>","PENDING|IN_REVIEW|PASSED|FAILED|WAIVED").option("--subject <id>","Filter by subject ID").option("--subject-type <t>","Filter by subject type").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(z,{status:t.status?t.status.toUpperCase():void 0,subjectId:t.subject,subjectType:t.subjectType,pagination:m(t)});s(t,e.pswListComplianceChecks.items,{headers:["ID","Title","Type","Status","Subject","Due"],rows:e.pswListComplianceChecks.items.map(n=>[g(n.id,12),n.title,n.type,n.status,g(n.subjectId,12),b(n.dueDate)])});}catch(e){o(e);}});}function rt(i){i.command("conflicts").description("ProServiceWorld conflict-of-interest checks").command("list").description("List conflict checks").option("--client <id>","Filter by client ID").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{clientId:t.client,pagination:m(t)});s(t,e.pswListConflictChecks.items,{headers:["ID","Client","Matter","Status","Parties"],rows:e.pswListConflictChecks.items.map(n=>[g(n.id,12),g(n.clientId,12),n.matterId?g(n.matterId,12):"-",n.status,String(n.searchedParties.length)])});}catch(e){o(e);}});}function it(i){i.command("practice-areas").description("ProServiceWorld practice areas").command("list").description("List practice areas").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{pagination:m(t)});s(t,e.pswListPracticeAreas.items,{headers:["ID","Name","Code","Active"],rows:e.pswListPracticeAreas.items.map(n=>[g(n.id,12),n.name,n.code??"-",n.isActive?"yes":"no"])});}catch(e){o(e);}});}function ot(i){i.command("health").description("ProServiceWorld service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await A(J);d(t.pswHealth),s(r,{health:t.pswHealth});}catch(t){o(t);}});}var It={id:"proserviceworld",version:"1.0.0",displayName:"ProServiceWorld",dependsOn:["auth","workspaces"],register(i,r){v(r);let t=i.command("proserviceworld").description("ProServiceWorld professional-services automation");Q(t),X(t),Z(t),tt(t),et(t),nt(t),rt(t),it(t),ot(t);}},dn=It;module.exports=dn;
|
|
@@ -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 P=`
|
|
2
2
|
query PswClient($id: ID!) {
|
|
3
3
|
pswClient(id: $id) {
|
|
4
4
|
id name type status industry contactName contactEmail contactPhone
|
|
@@ -163,31 +163,36 @@ import {a,b as b$1,h as h$1,p,g,i,o as o$1,d}from'../../chunk-W4JZR7RJ.js';impor
|
|
|
163
163
|
$subjectType: String
|
|
164
164
|
$pagination: PaginationInput
|
|
165
165
|
) {
|
|
166
|
-
pswListComplianceChecks(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
resolvedAt details evidenceFileId createdAt updatedAt workspaceId
|
|
166
|
+
pswListComplianceChecks(status: $status, subjectId: $subjectId, subjectType: $subjectType, pagination: $pagination) {
|
|
167
|
+
items {
|
|
168
|
+
id type status title subjectId subjectType reviewerId dueDate resolvedAt details
|
|
169
|
+
evidenceFileId createdAt updatedAt workspaceId
|
|
170
|
+
}
|
|
171
|
+
pageInfo { cursor hasMore }
|
|
172
|
+
totalCount
|
|
174
173
|
}
|
|
175
174
|
}
|
|
176
175
|
`,V=`
|
|
177
176
|
query PswListConflictChecks($clientId: ID, $pagination: PaginationInput) {
|
|
178
177
|
pswListConflictChecks(clientId: $clientId, pagination: $pagination) {
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
items {
|
|
179
|
+
id clientId matterId status searchedParties findings waiverReason clearedById
|
|
180
|
+
resolvedAt createdAt updatedAt workspaceId
|
|
181
|
+
}
|
|
182
|
+
pageInfo { cursor hasMore }
|
|
183
|
+
totalCount
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
`,W=`
|
|
184
187
|
query PswListPracticeAreas($pagination: PaginationInput) {
|
|
185
188
|
pswListPracticeAreas(pagination: $pagination) {
|
|
186
|
-
id name code description isActive createdAt updatedAt workspaceId
|
|
189
|
+
items { id name code description isActive createdAt updatedAt workspaceId }
|
|
190
|
+
pageInfo { cursor hasMore }
|
|
191
|
+
totalCount
|
|
187
192
|
}
|
|
188
193
|
}
|
|
189
194
|
`,F=`
|
|
190
195
|
query PswHealth {
|
|
191
196
|
pswHealth
|
|
192
197
|
}
|
|
193
|
-
`;function q(r,i){try{return JSON.parse(i)}catch{throw new o(`--${r} must be valid JSON`)}}function c(r){let i=Number.parseInt(r,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${r}"`);return i}function I(r){let i=Number.parseFloat(r);if(Number.isNaN(i))throw new o(`Expected a number but got "${r}"`);return i}function C(r){return r.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function u(r){let i={};return r.limit!==void 0&&(i.limit=r.limit),r.offset!==void 0&&(i.offset=r.offset),r.cursor!==void 0&&(i.cursor=r.cursor),Object.keys(i).length?i:void 0}function z(r){let i$1=r.command("clients").description("ProServiceWorld clients");i$1.command("list").description("List clients").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(D,{status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});h$1(t,e.pswListClients.items,{headers:["ID","Name","Type","Status","Industry","Contact"],rows:e.pswListClients.items.map(n=>[p(n.id,12),n.name,n.type,n.status,n.industry??"-",n.contactName??"-"])});}catch(e){g(e);}}),i$1.command("get").description("Get a client by id").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(P,{id:t});if(!n.pswClient)throw new o(`Client ${t} not found`);h$1(e,n.pswClient);}catch(n){g(n);}}),i$1.command("create").description("Create a client").requiredOption("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.industry&&(e.industry=t.industry),t.contactName&&(e.contactName=t.contactName),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.address&&(e.address=t.address),t.notes&&(e.notes=t.notes),t.relationshipOwner&&(e.relationshipOwnerId=t.relationshipOwner),t.tags&&(e.tags=C(t.tags));let n=await b$1(h,{input:e});i(`Client created: ${n.pswCreateClient.name}`),h$1(t,n.pswCreateClient);}catch(e){g(e);}}),i$1.command("update").description("Update a client").argument("<id>","Client ID").option("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.industry!==void 0&&(n.industry=e.industry),e.contactName!==void 0&&(n.contactName=e.contactName),e.contactEmail!==void 0&&(n.contactEmail=e.contactEmail),e.contactPhone!==void 0&&(n.contactPhone=e.contactPhone),e.address!==void 0&&(n.address=e.address),e.notes!==void 0&&(n.notes=e.notes),e.relationshipOwner&&(n.relationshipOwnerId=e.relationshipOwner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let w=await b$1(b,{id:t,input:n});i("Client updated"),h$1(e,w.pswUpdateClient);}catch(n){g(n);}}),i$1.command("archive").description("Archive a client").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(T,{id:t});i(n.pswArchiveClient?`Client ${t} archived`:`Client ${t} not archived`),h$1(e,{archived:n.pswArchiveClient});}catch(n){g(n);}});}function K(r){let i$1=r.command("engagements").description("ProServiceWorld engagements");i$1.command("list").description("List engagements").option("--client <id>","Filter by client ID").option("--status <s>","Engagement status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(v,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});h$1(t,e.pswListEngagements.items,{headers:["ID","Name","Status","Fee","Amount","Currency"],rows:e.pswListEngagements.items.map(n=>[p(n.id,12),n.name,n.status,n.feeArrangement??"-",n.feeAmount!=null?String(n.feeAmount):"-",n.currency??"-"])});}catch(e){g(e);}}),i$1.command("get").description("Get an engagement by id").argument("<id>","Engagement ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(O,{id:t});if(!n.pswEngagement)throw new o(`Engagement ${t} not found`);h$1(e,n.pswEngagement);}catch(n){g(n);}}),i$1.command("create").description("Create an engagement").requiredOption("--client <id>","Client ID").requiredOption("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,name:t.name};t.description&&(e.description=t.description),t.feeArrangement&&(e.feeArrangement=t.feeArrangement.toUpperCase()),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.responsiblePartner&&(e.responsiblePartnerId=t.responsiblePartner),t.tags&&(e.tags=C(t.tags));let n=await b$1(L,{input:e});i(`Engagement created: ${n.pswCreateEngagement.name}`),h$1(t,n.pswCreateEngagement);}catch(e){g(e);}}),i$1.command("update").description("Update an engagement").argument("<id>","Engagement ID").option("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.feeArrangement&&(n.feeArrangement=e.feeArrangement.toUpperCase()),e.feeAmount!==void 0&&(n.feeAmount=e.feeAmount),e.currency&&(n.currency=e.currency),e.startDate&&(n.startDate=e.startDate),e.endDate&&(n.endDate=e.endDate),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.responsiblePartner&&(n.responsiblePartnerId=e.responsiblePartner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let w=await b$1(N,{id:t,input:n});i("Engagement updated"),h$1(e,w.pswUpdateEngagement);}catch(n){g(n);}}),i$1.command("transition").description("Advance an engagement through its delivery lifecycle").argument("<id>","Engagement ID").requiredOption("--status <s>","PROPOSAL|ACCEPTED|IN_PROGRESS|REVIEW|DELIVERED|INVOICED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(M,{id:t,status:e.status.toUpperCase()});i(`Engagement transitioned to ${n.pswTransitionEngagement.status}`),h$1(e,n.pswTransitionEngagement);}catch(n){g(n);}});}function B(r){let i$1=r.command("matters").description("ProServiceWorld matters");i$1.command("list").description("List matters").option("--client <id>","Filter by client ID").option("--engagement <id>","Filter by engagement ID").option("--status <s>","OPEN|ON_HOLD|CLOSED|ARCHIVED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(S,{clientId:t.client,engagementId:t.engagement,status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});h$1(t,e.pswListMatters.items,{headers:["ID","Title","Reference","Status","Priority","Privileged"],rows:e.pswListMatters.items.map(n=>[p(n.id,12),n.title,n.reference??"-",n.status,n.priority,n.isPrivileged?"yes":"no"])});}catch(e){g(e);}}),i$1.command("get").description("Get a matter by id").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(R,{id:t});if(!n.pswMatter)throw new o(`Matter ${t} not found`);h$1(e,n.pswMatter);}catch(n){g(n);}}),i$1.command("create").description("Create a matter").requiredOption("--client <id>","Client ID").requiredOption("--title <t>","Matter title").option("--reference <r>","External reference").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged","Mark as privileged").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,title:t.title};t.reference&&(e.reference=t.reference),t.description&&(e.description=t.description),t.engagement&&(e.engagementId=t.engagement),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.leadPractitioner&&(e.leadPractitionerId=t.leadPractitioner),t.priority&&(e.priority=t.priority.toUpperCase()),t.privileged&&(e.isPrivileged=!0),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=C(t.tags));let n=await b$1($,{input:e});i(`Matter created: ${n.pswCreateMatter.title}`),h$1(t,n.pswCreateMatter);}catch(e){g(e);}}),i$1.command("update").description("Update a matter").argument("<id>","Matter ID").option("--title <t>","Matter title").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged <bool>","true|false",t=>t==="true").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.description!==void 0&&(n.description=e.description),e.engagement&&(n.engagementId=e.engagement),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.leadPractitioner&&(n.leadPractitionerId=e.leadPractitioner),e.priority&&(n.priority=e.priority.toUpperCase()),e.privileged!==void 0&&(n.isPrivileged=e.privileged),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let w=await b$1(k,{id:t,input:n});i("Matter updated"),h$1(e,w.pswUpdateMatter);}catch(n){g(n);}}),i$1.command("close").description("Close a matter").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(_,{id:t});i(`Matter closed: ${n.pswCloseMatter.status}`),h$1(e,n.pswCloseMatter);}catch(n){g(n);}});}function J(r){let i$1=r.command("invoices").description("ProServiceWorld invoices");i$1.command("list").description("List invoices").option("--client <id>","Filter by client ID").option("--status <s>","DRAFT|SENT|PAID|OVERDUE|CANCELLED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(U,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});h$1(t,e.pswListInvoices.items,{headers:["ID","Number","Status","Total","Currency"],rows:e.pswListInvoices.items.map(n=>[p(n.id,12),n.number,n.status,n.total!=null?String(n.total):"-",n.currency??"-"])});}catch(e){g(e);}}),i$1.command("create").description("Create an invoice").requiredOption("--client <id>","Client ID").requiredOption("--number <n>","Invoice number").option("--engagement <id>","Engagement ID").option("--currency <c>","Currency code").option("--issue-date <iso>","Issue date (ISO)").option("--due-date <iso>","Due date (ISO)").option("--subtotal <n>","Subtotal",I).option("--tax-amount <n>","Tax amount",I).option("--total <n>","Total",I).option("--line-items <json>","Line items JSON").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,number:t.number};t.engagement&&(e.engagementId=t.engagement),t.currency&&(e.currency=t.currency),t.issueDate&&(e.issueDate=t.issueDate),t.dueDate&&(e.dueDate=t.dueDate),t.subtotal!==void 0&&(e.subtotal=t.subtotal),t.taxAmount!==void 0&&(e.taxAmount=t.taxAmount),t.total!==void 0&&(e.total=t.total),t.lineItems&&(e.lineItems=q("line-items",t.lineItems)),t.notes&&(e.notes=t.notes);let n=await b$1(G,{input:e});i(`Invoice created: ${n.pswCreateInvoice.number}`),h$1(t,n.pswCreateInvoice);}catch(e){g(e);}}),i$1.command("mark-paid").description("Mark an invoice as paid").argument("<id>","Invoice ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(x,{id:t});i(`Invoice ${n.pswMarkInvoicePaid.number} marked ${n.pswMarkInvoicePaid.status}`),h$1(e,n.pswMarkInvoicePaid);}catch(n){g(n);}});}function Y(r){r.command("time-entries").description("ProServiceWorld time entries").command("log").description("Log a time entry").requiredOption("--date <iso>","Entry date (ISO)").requiredOption("--minutes <n>","Minutes worked",c).option("--matter <id>","Matter ID").option("--engagement <id>","Engagement ID").option("--rate <n>","Hourly rate",I).option("--narrative <s>","Narrative").option("--non-billable","Mark entry as non-billable").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.matter&&!t.engagement)throw new o("Provide --matter or --engagement to log time against");let e={date:t.date,minutes:t.minutes,billable:!t.nonBillable};t.matter&&(e.matterId=t.matter),t.engagement&&(e.engagementId=t.engagement),t.rate!==void 0&&(e.rate=t.rate),t.narrative&&(e.narrative=t.narrative);let n=await b$1(H,{input:e});i(`Time entry logged: ${n.pswLogTimeEntry.minutes} minutes`),h$1(t,n.pswLogTimeEntry);}catch(e){g(e);}});}function X(r){r.command("compliance").description("ProServiceWorld compliance checks").command("list").description("List compliance checks").option("--status <s>","PENDING|IN_REVIEW|PASSED|FAILED|WAIVED").option("--subject <id>","Filter by subject ID").option("--subject-type <t>","Filter by subject type").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(j,{status:t.status?t.status.toUpperCase():void 0,subjectId:t.subject,subjectType:t.subjectType,pagination:u(t)});h$1(t,e.pswListComplianceChecks,{headers:["ID","Title","Type","Status","Subject","Due"],rows:e.pswListComplianceChecks.map(n=>[p(n.id,12),n.title,n.type,n.status,p(n.subjectId,12),o$1(n.dueDate)])});}catch(e){g(e);}});}function Z(r){r.command("conflicts").description("ProServiceWorld conflict-of-interest checks").command("list").description("List conflict checks").option("--client <id>","Filter by client ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{clientId:t.client,pagination:u(t)});h$1(t,e.pswListConflictChecks,{headers:["ID","Client","Matter","Status","Parties"],rows:e.pswListConflictChecks.map(n=>[p(n.id,12),p(n.clientId,12),n.matterId?p(n.matterId,12):"-",n.status,String(n.searchedParties.length)])});}catch(e){g(e);}});}function Q(r){r.command("practice-areas").description("ProServiceWorld practice areas").command("list").description("List practice areas").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(W,{pagination:u(t)});h$1(t,e.pswListPracticeAreas,{headers:["ID","Name","Code","Active"],rows:e.pswListPracticeAreas.map(n=>[p(n.id,12),n.name,n.code??"-",n.isActive?"yes":"no"])});}catch(e){g(e);}});}function tt(r){r.command("health").description("ProServiceWorld service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(F);i(t.pswHealth),h$1(i$1,{health:t.pswHealth});}catch(t){g(t);}});}var et={id:"proserviceworld",version:"1.0.0",displayName:"ProServiceWorld",dependsOn:["auth","workspaces"],register(r,i){a(i);let t=r.command("proserviceworld").description("ProServiceWorld professional-services automation");z(t),K(t),B(t),J(t),Y(t),X(t),Z(t),Q(t),tt(t);}},Ft=et;export{Ft as default};
|
|
198
|
+
`;function q(r,i){try{return JSON.parse(i)}catch{throw new o(`--${r} must be valid JSON`)}}function c(r){let i=Number.parseInt(r,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${r}"`);return i}function I(r){let i=Number.parseFloat(r);if(Number.isNaN(i))throw new o(`Expected a number but got "${r}"`);return i}function C(r){return r.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function u(r){let i={};return r.limit!==void 0&&(i.limit=r.limit),r.offset!==void 0&&(i.offset=r.offset),r.cursor!==void 0&&(i.cursor=r.cursor),Object.keys(i).length?i:void 0}function z(r$1){let i$1=r$1.command("clients").description("ProServiceWorld clients");i$1.command("list").description("List clients").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(D,{status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});i(t,e.pswListClients.items,{headers:["ID","Name","Type","Status","Industry","Contact"],rows:e.pswListClients.items.map(n=>[r(n.id,12),n.name,n.type,n.status,n.industry??"-",n.contactName??"-"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a client by id").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(P,{id:t});if(!n.pswClient)throw new o(`Client ${t} not found`);i(e,n.pswClient);}catch(n){h$1(n);}}),i$1.command("create").description("Create a client").requiredOption("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.industry&&(e.industry=t.industry),t.contactName&&(e.contactName=t.contactName),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.address&&(e.address=t.address),t.notes&&(e.notes=t.notes),t.relationshipOwner&&(e.relationshipOwnerId=t.relationshipOwner),t.tags&&(e.tags=C(t.tags));let n=await b$1(h,{input:e});k$1(`Client created: ${n.pswCreateClient.name}`),i(t,n.pswCreateClient);}catch(e){h$1(e);}}),i$1.command("update").description("Update a client").argument("<id>","Client ID").option("--name <name>","Client name").option("--type <t>","INDIVIDUAL|ORGANIZATION").option("--status <s>","PROSPECT|ACTIVE|INACTIVE|ARCHIVED").option("--industry <i>","Industry").option("--contact-name <n>","Primary contact name").option("--contact-email <e>","Primary contact email").option("--contact-phone <p>","Primary contact phone").option("--address <a>","Address").option("--notes <n>","Notes").option("--relationship-owner <id>","Relationship owner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.industry!==void 0&&(n.industry=e.industry),e.contactName!==void 0&&(n.contactName=e.contactName),e.contactEmail!==void 0&&(n.contactEmail=e.contactEmail),e.contactPhone!==void 0&&(n.contactPhone=e.contactPhone),e.address!==void 0&&(n.address=e.address),e.notes!==void 0&&(n.notes=e.notes),e.relationshipOwner&&(n.relationshipOwnerId=e.relationshipOwner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let w=await b$1(b,{id:t,input:n});k$1("Client updated"),i(e,w.pswUpdateClient);}catch(n){h$1(n);}}),i$1.command("archive").description("Archive a client").argument("<id>","Client ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(T,{id:t});k$1(n.pswArchiveClient?`Client ${t} archived`:`Client ${t} not archived`),i(e,{archived:n.pswArchiveClient});}catch(n){h$1(n);}});}function K(r$1){let i$1=r$1.command("engagements").description("ProServiceWorld engagements");i$1.command("list").description("List engagements").option("--client <id>","Filter by client ID").option("--status <s>","Engagement status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(v,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});i(t,e.pswListEngagements.items,{headers:["ID","Name","Status","Fee","Amount","Currency"],rows:e.pswListEngagements.items.map(n=>[r(n.id,12),n.name,n.status,n.feeArrangement??"-",n.feeAmount!=null?String(n.feeAmount):"-",n.currency??"-"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an engagement by id").argument("<id>","Engagement ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(O,{id:t});if(!n.pswEngagement)throw new o(`Engagement ${t} not found`);i(e,n.pswEngagement);}catch(n){h$1(n);}}),i$1.command("create").description("Create an engagement").requiredOption("--client <id>","Client ID").requiredOption("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,name:t.name};t.description&&(e.description=t.description),t.feeArrangement&&(e.feeArrangement=t.feeArrangement.toUpperCase()),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.responsiblePartner&&(e.responsiblePartnerId=t.responsiblePartner),t.tags&&(e.tags=C(t.tags));let n=await b$1(L,{input:e});k$1(`Engagement created: ${n.pswCreateEngagement.name}`),i(t,n.pswCreateEngagement);}catch(e){h$1(e);}}),i$1.command("update").description("Update an engagement").argument("<id>","Engagement ID").option("--name <name>","Engagement name").option("--description <s>","Description").option("--fee-arrangement <f>","FIXED|HOURLY|RETAINER|VALUE_BASED").option("--fee-amount <n>","Fee amount",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--practice-area <id>","Practice area ID").option("--responsible-partner <id>","Responsible partner user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.feeArrangement&&(n.feeArrangement=e.feeArrangement.toUpperCase()),e.feeAmount!==void 0&&(n.feeAmount=e.feeAmount),e.currency&&(n.currency=e.currency),e.startDate&&(n.startDate=e.startDate),e.endDate&&(n.endDate=e.endDate),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.responsiblePartner&&(n.responsiblePartnerId=e.responsiblePartner),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let w=await b$1(N,{id:t,input:n});k$1("Engagement updated"),i(e,w.pswUpdateEngagement);}catch(n){h$1(n);}}),i$1.command("transition").description("Advance an engagement through its delivery lifecycle").argument("<id>","Engagement ID").requiredOption("--status <s>","PROPOSAL|ACCEPTED|IN_PROGRESS|REVIEW|DELIVERED|INVOICED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(M,{id:t,status:e.status.toUpperCase()});k$1(`Engagement transitioned to ${n.pswTransitionEngagement.status}`),i(e,n.pswTransitionEngagement);}catch(n){h$1(n);}});}function B(r$1){let i$1=r$1.command("matters").description("ProServiceWorld matters");i$1.command("list").description("List matters").option("--client <id>","Filter by client ID").option("--engagement <id>","Filter by engagement ID").option("--status <s>","OPEN|ON_HOLD|CLOSED|ARCHIVED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(S,{clientId:t.client,engagementId:t.engagement,status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});i(t,e.pswListMatters.items,{headers:["ID","Title","Reference","Status","Priority","Privileged"],rows:e.pswListMatters.items.map(n=>[r(n.id,12),n.title,n.reference??"-",n.status,n.priority,n.isPrivileged?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a matter by id").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(R,{id:t});if(!n.pswMatter)throw new o(`Matter ${t} not found`);i(e,n.pswMatter);}catch(n){h$1(n);}}),i$1.command("create").description("Create a matter").requiredOption("--client <id>","Client ID").requiredOption("--title <t>","Matter title").option("--reference <r>","External reference").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged","Mark as privileged").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,title:t.title};t.reference&&(e.reference=t.reference),t.description&&(e.description=t.description),t.engagement&&(e.engagementId=t.engagement),t.practiceArea&&(e.practiceAreaId=t.practiceArea),t.leadPractitioner&&(e.leadPractitionerId=t.leadPractitioner),t.priority&&(e.priority=t.priority.toUpperCase()),t.privileged&&(e.isPrivileged=!0),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=C(t.tags));let n=await b$1($,{input:e});k$1(`Matter created: ${n.pswCreateMatter.title}`),i(t,n.pswCreateMatter);}catch(e){h$1(e);}}),i$1.command("update").description("Update a matter").argument("<id>","Matter ID").option("--title <t>","Matter title").option("--description <s>","Description").option("--engagement <id>","Engagement ID").option("--practice-area <id>","Practice area ID").option("--lead-practitioner <id>","Lead practitioner user ID").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--privileged <bool>","true|false",t=>t==="true").option("--due-date <iso>","Due date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.description!==void 0&&(n.description=e.description),e.engagement&&(n.engagementId=e.engagement),e.practiceArea&&(n.practiceAreaId=e.practiceArea),e.leadPractitioner&&(n.leadPractitionerId=e.leadPractitioner),e.priority&&(n.priority=e.priority.toUpperCase()),e.privileged!==void 0&&(n.isPrivileged=e.privileged),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=C(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let w=await b$1(k,{id:t,input:n});k$1("Matter updated"),i(e,w.pswUpdateMatter);}catch(n){h$1(n);}}),i$1.command("close").description("Close a matter").argument("<id>","Matter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(_,{id:t});k$1(`Matter closed: ${n.pswCloseMatter.status}`),i(e,n.pswCloseMatter);}catch(n){h$1(n);}});}function J(r$1){let i$1=r$1.command("invoices").description("ProServiceWorld invoices");i$1.command("list").description("List invoices").option("--client <id>","Filter by client ID").option("--status <s>","DRAFT|SENT|PAID|OVERDUE|CANCELLED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(U,{clientId:t.client,status:t.status?t.status.toUpperCase():void 0,pagination:u(t)});i(t,e.pswListInvoices.items,{headers:["ID","Number","Status","Total","Currency"],rows:e.pswListInvoices.items.map(n=>[r(n.id,12),n.number,n.status,n.total!=null?String(n.total):"-",n.currency??"-"])});}catch(e){h$1(e);}}),i$1.command("create").description("Create an invoice").requiredOption("--client <id>","Client ID").requiredOption("--number <n>","Invoice number").option("--engagement <id>","Engagement ID").option("--currency <c>","Currency code").option("--issue-date <iso>","Issue date (ISO)").option("--due-date <iso>","Due date (ISO)").option("--subtotal <n>","Subtotal",I).option("--tax-amount <n>","Tax amount",I).option("--total <n>","Total",I).option("--line-items <json>","Line items JSON").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={clientId:t.client,number:t.number};t.engagement&&(e.engagementId=t.engagement),t.currency&&(e.currency=t.currency),t.issueDate&&(e.issueDate=t.issueDate),t.dueDate&&(e.dueDate=t.dueDate),t.subtotal!==void 0&&(e.subtotal=t.subtotal),t.taxAmount!==void 0&&(e.taxAmount=t.taxAmount),t.total!==void 0&&(e.total=t.total),t.lineItems&&(e.lineItems=q("line-items",t.lineItems)),t.notes&&(e.notes=t.notes);let n=await b$1(G,{input:e});k$1(`Invoice created: ${n.pswCreateInvoice.number}`),i(t,n.pswCreateInvoice);}catch(e){h$1(e);}}),i$1.command("mark-paid").description("Mark an invoice as paid").argument("<id>","Invoice ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(x,{id:t});k$1(`Invoice ${n.pswMarkInvoicePaid.number} marked ${n.pswMarkInvoicePaid.status}`),i(e,n.pswMarkInvoicePaid);}catch(n){h$1(n);}});}function Y(r){r.command("time-entries").description("ProServiceWorld time entries").command("log").description("Log a time entry").requiredOption("--date <iso>","Entry date (ISO)").requiredOption("--minutes <n>","Minutes worked",c).option("--matter <id>","Matter ID").option("--engagement <id>","Engagement ID").option("--rate <n>","Hourly rate",I).option("--narrative <s>","Narrative").option("--non-billable","Mark entry as non-billable").option("-f, --format <format>","Output format").action(async t=>{try{if(!t.matter&&!t.engagement)throw new o("Provide --matter or --engagement to log time against");let e={date:t.date,minutes:t.minutes,billable:!t.nonBillable};t.matter&&(e.matterId=t.matter),t.engagement&&(e.engagementId=t.engagement),t.rate!==void 0&&(e.rate=t.rate),t.narrative&&(e.narrative=t.narrative);let n=await b$1(H,{input:e});k$1(`Time entry logged: ${n.pswLogTimeEntry.minutes} minutes`),i(t,n.pswLogTimeEntry);}catch(e){h$1(e);}});}function X(r$1){r$1.command("compliance").description("ProServiceWorld compliance checks").command("list").description("List compliance checks").option("--status <s>","PENDING|IN_REVIEW|PASSED|FAILED|WAIVED").option("--subject <id>","Filter by subject ID").option("--subject-type <t>","Filter by subject type").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(j,{status:t.status?t.status.toUpperCase():void 0,subjectId:t.subject,subjectType:t.subjectType,pagination:u(t)});i(t,e.pswListComplianceChecks.items,{headers:["ID","Title","Type","Status","Subject","Due"],rows:e.pswListComplianceChecks.items.map(n=>[r(n.id,12),n.title,n.type,n.status,r(n.subjectId,12),q$1(n.dueDate)])});}catch(e){h$1(e);}});}function Z(r$1){r$1.command("conflicts").description("ProServiceWorld conflict-of-interest checks").command("list").description("List conflict checks").option("--client <id>","Filter by client ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{clientId:t.client,pagination:u(t)});i(t,e.pswListConflictChecks.items,{headers:["ID","Client","Matter","Status","Parties"],rows:e.pswListConflictChecks.items.map(n=>[r(n.id,12),r(n.clientId,12),n.matterId?r(n.matterId,12):"-",n.status,String(n.searchedParties.length)])});}catch(e){h$1(e);}});}function Q(r$1){r$1.command("practice-areas").description("ProServiceWorld practice areas").command("list").description("List practice areas").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(W,{pagination:u(t)});i(t,e.pswListPracticeAreas.items,{headers:["ID","Name","Code","Active"],rows:e.pswListPracticeAreas.items.map(n=>[r(n.id,12),n.name,n.code??"-",n.isActive?"yes":"no"])});}catch(e){h$1(e);}});}function tt(r){r.command("health").description("ProServiceWorld service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(F);k$1(t.pswHealth),i(i$1,{health:t.pswHealth});}catch(t){h$1(t);}});}var et={id:"proserviceworld",version:"1.0.0",displayName:"ProServiceWorld",dependsOn:["auth","workspaces"],register(r,i){a(i);let t=r.command("proserviceworld").description("ProServiceWorld professional-services automation");z(t),K(t),B(t),J(t),Y(t),X(t),Z(t),Q(t),tt(t);}},Ft=et;export{Ft as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,h as h$1,p,
|
|
1
|
+
import {a,i,r,h as h$1,k,p,u,b,c}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var h=`
|
|
2
2
|
query ListRoles($filter: RoleFilterInput, $pagination: PaginationInput, $scopeId: String!) {
|
|
3
3
|
roles(filter: $filter, pagination: $pagination, scopeId: $scopeId) {
|
|
4
4
|
id
|
|
@@ -73,4 +73,4 @@ import {a,h as h$1,p,g,i,n,s,b,c}from'../../chunk-W4JZR7RJ.js';import {o}from'..
|
|
|
73
73
|
overrideType
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
`;function d(c$1,n,a){return c$1==="workspace"?b(n,a):c(n,a)}function f(c){let n=
|
|
76
|
+
`;function d(c$1,n,a){return c$1==="workspace"?b(n,a):c(n,a)}function f(c){let n=u().auth.read();if(c==="workspace"){if(!n?.workspaceId)throw new o("No workspace set. Run `vibecontrols workspace set <id>` or pass --scope <workspaceId>.");return n.workspaceId}if(!n?.organizationId)throw new o("No organization context. Run `auth login` to bind a tenant or pass --scope <tenantId>.");return n.organizationId}function v(c){let n=c.command("rbac").description("Role-based access control"),a=n.command("roles").description("Manage roles");a.command("list").description("List roles").option("--layer <layer>","workspace or global","workspace").option("--scope <scopeId>","Override scope id (workspace or tenant)").option("--include-system","Include system roles",false).option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>","Output format").action(async e=>{try{let o=e.layer==="global"?"global":"workspace",t=e.scope??f(o),r$1={};e.includeSystem&&(r$1.includeSystem=!0);let i$1=await d(o,h,{filter:Object.keys(r$1).length?r$1:void 0,pagination:{limit:e.limit,offset:0},scopeId:t});i(e,i$1.roles,{headers:["ID","Name","Scope","Priority","System"],rows:i$1.roles.map(p=>[r(p.id,12),p.name,r(p.scopeId,12),String(p.priority),String(p.isSystem)])});}catch(o){h$1(o);}}),a.command("get").description("Get role by id").argument("<id>").option("--layer <layer>","workspace or global","workspace").option("-f, --format <format>").action(async(e,o$1)=>{try{let t=o$1.layer==="global"?"global":"workspace",r=await d(t,L,{id:e});if(!r.role)throw new o(`Role ${e} not found`);i(o$1,r.role);}catch(t){h$1(t);}}),a.command("create").description("Create a role").requiredOption("--name <name>","Role name").option("--description <text>").option("--parent <id>","Parent role id").option("--priority <n>","Priority",e=>parseInt(e,10)).option("--layer <layer>","workspace or global","workspace").option("--scope <scopeId>","Override scope id").option("--scope-type <type>","wspace|entity (global only)").option("-f, --format <format>").action(async e=>{try{let o=e.layer==="global"?"global":"workspace",t=e.scope??f(o),r={name:e.name,description:e.description,parentId:e.parent,priority:e.priority,scopeId:t};o==="global"&&e.scopeType&&(r.scopeType=e.scopeType);let i$1=await d(o,C,{input:r});k(`Role created: ${i$1.createRole.name}`),i(e,i$1.createRole);}catch(o){h$1(o);}}),a.command("update").description("Update a role").argument("<id>").option("--name <name>").option("--description <text>").option("--priority <n>","",e=>parseInt(e,10)).option("--parent <id>").option("--layer <layer>","workspace or global","workspace").option("-f, --format <format>").action(async(e,o$1)=>{try{let t=o$1.layer==="global"?"global":"workspace",r={};if(o$1.name&&(r.name=o$1.name),o$1.description!==void 0&&(r.description=o$1.description),o$1.priority!==void 0&&(r.priority=o$1.priority),o$1.parent&&(r.parentId=o$1.parent),!Object.keys(r).length)throw new o("No updates specified");let i$1=await d(t,P,{id:e,input:r});k("Role updated"),i(o$1,i$1.updateRole);}catch(t){h$1(t);}}),a.command("delete").description("Delete a role").argument("<id>").option("--reassign <roleId>","Reassign actors to this role").option("--layer <layer>","workspace or global","workspace").action(async(e,o)=>{try{let t=o.layer==="global"?"global":"workspace";await d(t,S,{id:e,reassignToRoleId:o.reassign}),k("Role deleted");}catch(t){h$1(t);}}),n.command("policies").description("Manage policy references").command("list").description("List policy references").option("--layer <layer>","workspace or global","workspace").option("--resource-type <s>","Filter by resource type").option("--action <s>","Filter by action").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let o=e.layer==="global"?"global":"workspace",t={};e.resourceType&&(t.resourceType=e.resourceType),e.action&&(t.action=e.action);let r$1=await d(o,O,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});i(e,r$1.policyReferences,{headers:["ID","Name","Resource","Action","Active","Priority"],rows:r$1.policyReferences.map(i=>[r(i.id,12),i.name,i.resourceType??"-",i.action??"-",String(i.isActive),String(i.priority??"-")])});}catch(o){h$1(o);}}),n.command("check").description("Check whether an actor has permission for an action on a resource").argument("<actorId>","Actor id (user/app/service/super_admin)").argument("<action>","Action like read/write/delete").argument("<resourceType>","Resource type like project/task").option("--actor-type <type>","USER|BOT|GROUP|INTEGRATION|DELEGATED_AGENT","USER").option("--resource-id <id>","Specific resource id (optional)").option("--scope <scopeId>","Scope id (workspaceId or tenantId)").option("--layer <layer>","workspace or global","workspace").option("-f, --format <format>").action(async(e,o,t,r)=>{try{let i$1=r.layer==="global"?"global":"workspace",p$1=r.scope??f(i$1),x={actorId:e,actorType:(r.actorType??"USER").toUpperCase(),action:o,resourceType:t,resourceId:r.resourceId,scopeId:p$1},m=await d(i$1,$,{input:x});i(r,m.checkPermission,{headers:["Allowed","Decision","Role","Level","Override"],rows:[[p(m.checkPermission.allowed?"ACTIVE":"ERROR"),m.checkPermission.decisionPath,m.checkPermission.roleName??"-",m.checkPermission.roleLevel??"-",m.checkPermission.overrideType??"-"]]});}catch(i){h$1(i);}});}var _={id:"rbac",version:"1.0.0",displayName:"RBAC",dependsOn:["auth"],register(c,n){a(n),v(c);}},q=_;export{q as default};
|