@klevar/portal-cli 0.1.6 → 0.1.8
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/README.md +3 -0
- package/dist/commands/clients.d.ts +1 -0
- package/dist/commands/clients.js +1 -1
- package/dist/commands/clients.js.map +1 -1
- package/dist/commands/index.d.ts +8 -0
- package/dist/commands/portal.d.ts +6 -0
- package/dist/commands/portal.js +1 -0
- package/dist/commands/portal.js.map +1 -1
- package/dist/commands/projects.d.ts +1 -0
- package/dist/commands/projects.js +1 -1
- package/dist/commands/projects.js.map +1 -1
- package/dist/lib/legacy-runner.js +17 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,8 +41,11 @@ npx @klevar/portal-cli clients create --name "Stefan" --email "stefan@example.de
|
|
|
41
41
|
npx @klevar/portal-cli projects create <clientId> --name "Idealo" --externalRef "idealo:ksh.de"
|
|
42
42
|
npx @klevar/portal-cli metrics push --external_ref "idealo:ksh.de" --source_ref "run:33" --snapshot_date "2026-04-12" --metrics '{"score":88}'
|
|
43
43
|
npx @klevar/portal-cli portal me --portal-token "<client-token>"
|
|
44
|
+
npx @klevar/portal-cli portal tasks <projectId> --portal-token "<client-token>"
|
|
44
45
|
```
|
|
45
46
|
|
|
47
|
+
`portal my-tasks` lists requests submitted by the client across projects. `portal tasks <projectId>` lists the tasks shown on that project detail page, including admin-created project tasks that are visible in the client portal.
|
|
48
|
+
|
|
46
49
|
## Capacity And Usage
|
|
47
50
|
|
|
48
51
|
Capacity commands manage included allowances for a project or client. They are not timesheets.
|
package/dist/commands/clients.js
CHANGED
|
@@ -12,6 +12,6 @@ export const clientCommands = {
|
|
|
12
12
|
'token.rotate': { method: 'POST', path: '/api/admin/clients/:id/rotate-token', auth: 'apiKey', description: 'Rotate portal token' },
|
|
13
13
|
'clients.docs-sync': { method: 'POST', path: '/api/admin/clients/:id/docs-sync', auth: 'apiKey', description: 'Sync client to Docs' },
|
|
14
14
|
'clients.docs-invoices': { method: 'GET', path: '/api/admin/clients/:id/docs/invoices', auth: 'apiKey', description: 'List client invoices' },
|
|
15
|
-
'clients.docs-documents': { method: 'GET', path: '/api/admin/clients/:id/docs/documents', auth: 'apiKey', description: 'List client documents' },
|
|
15
|
+
'clients.docs-documents': { method: 'GET', path: '/api/admin/clients/:id/docs/documents', auth: 'apiKey', description: 'List client documents', queryParams: ['includeTest', 'include-test', 'include_test', 'environment', 'documentEnvironment', 'document_environment'] },
|
|
16
16
|
};
|
|
17
17
|
//# sourceMappingURL=clients.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../commands/clients.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACnH,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;IAC9J,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;IAC5N,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAC7G,gBAAgB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE;IACnQ,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC/H,eAAe,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACvK,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,SAAS,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACtK,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE;IACrK,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IAC3I,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACnI,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACrI,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC7I,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../commands/clients.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACnH,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;IAC9J,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;IAC5N,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAC7G,gBAAgB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE;IACnQ,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC/H,eAAe,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACvK,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,SAAS,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;IACtK,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE;IACrK,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IAC3I,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACnI,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACrI,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC7I,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,WAAW,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,EAAE;CACtP,CAAC"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -154,6 +154,7 @@ export declare const COMMAND_GROUPS: {
|
|
|
154
154
|
path: string;
|
|
155
155
|
auth: "apiKey";
|
|
156
156
|
description: string;
|
|
157
|
+
queryParams: string[];
|
|
157
158
|
};
|
|
158
159
|
};
|
|
159
160
|
projects: {
|
|
@@ -207,6 +208,7 @@ export declare const COMMAND_GROUPS: {
|
|
|
207
208
|
path: string;
|
|
208
209
|
auth: "apiKey";
|
|
209
210
|
description: string;
|
|
211
|
+
queryParams: string[];
|
|
210
212
|
};
|
|
211
213
|
'milestones.list': {
|
|
212
214
|
method: "CUSTOM";
|
|
@@ -612,6 +614,12 @@ export declare const COMMAND_GROUPS: {
|
|
|
612
614
|
auth: "portalToken";
|
|
613
615
|
description: string;
|
|
614
616
|
};
|
|
617
|
+
'portal.tasks': {
|
|
618
|
+
method: "GET";
|
|
619
|
+
path: string;
|
|
620
|
+
auth: "portalToken";
|
|
621
|
+
description: string;
|
|
622
|
+
};
|
|
615
623
|
'portal.tasks.create': {
|
|
616
624
|
method: "POST";
|
|
617
625
|
path: string;
|
|
@@ -61,6 +61,12 @@ export declare const portalCommands: {
|
|
|
61
61
|
auth: "portalToken";
|
|
62
62
|
description: string;
|
|
63
63
|
};
|
|
64
|
+
'portal.tasks': {
|
|
65
|
+
method: "GET";
|
|
66
|
+
path: string;
|
|
67
|
+
auth: "portalToken";
|
|
68
|
+
description: string;
|
|
69
|
+
};
|
|
64
70
|
'portal.tasks.create': {
|
|
65
71
|
method: "POST";
|
|
66
72
|
path: string;
|
package/dist/commands/portal.js
CHANGED
|
@@ -9,6 +9,7 @@ export const portalCommands = {
|
|
|
9
9
|
'portal.comments.create': { method: 'POST', path: '/api/portal/projects/:id/updates/:updateId/comments', auth: 'portalToken', description: 'Create portal update comment', body: ['content'] },
|
|
10
10
|
'portal.search': { method: 'GET', path: '/api/portal/search', auth: 'portalToken', description: 'Search portal content', queryParams: ['q'] },
|
|
11
11
|
'portal.my-tasks': { method: 'GET', path: '/api/portal/tasks/mine', auth: 'portalToken', description: 'List my portal tasks' },
|
|
12
|
+
'portal.tasks': { method: 'GET', path: '/api/portal/projects/:id/tasks', auth: 'portalToken', description: 'List portal project tasks' },
|
|
12
13
|
'portal.tasks.create': { method: 'POST', path: '/api/portal/projects/:id/tasks', auth: 'portalToken', description: 'Create portal task', body: ['title', 'description', 'priority'] },
|
|
13
14
|
'portal.tasks.delete': { method: 'DELETE', path: '/api/portal/projects/:id/tasks/:taskId', auth: 'portalToken', description: 'Delete portal task' },
|
|
14
15
|
'portal.tasks.list': { method: 'GET', path: '/api/portal/projects/:id/tasks', auth: 'portalToken', description: 'List portal tasks' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../commands/portal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../commands/portal.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export const projectCommands = {
|
|
|
6
6
|
'projects.update': { method: 'PATCH', path: '/api/admin/projects/:id', auth: 'apiKey', description: 'Update a project', body: ['name', 'status', 'visibility', 'description', 'startDate', 'targetDate', 'valueEur', 'externalRef', 'metricsConfig', 'itemsConfig'] },
|
|
7
7
|
'projects.delete': { method: 'DELETE', path: '/api/admin/projects/:id', auth: 'apiKey', description: 'Delete a project' },
|
|
8
8
|
'projects.docs-invoices': { method: 'GET', path: '/api/admin/projects/:id/docs/invoices', auth: 'apiKey', description: 'List project invoices' },
|
|
9
|
-
'projects.docs-documents': { method: 'GET', path: '/api/admin/projects/:id/docs/documents', auth: 'apiKey', description: 'List project documents' },
|
|
9
|
+
'projects.docs-documents': { method: 'GET', path: '/api/admin/projects/:id/docs/documents', auth: 'apiKey', description: 'List project documents', queryParams: ['includeTest', 'include-test', 'include_test', 'environment', 'documentEnvironment', 'document_environment'] },
|
|
10
10
|
'milestones.list': { method: 'CUSTOM', path: '', auth: 'apiKey', description: 'List project milestones' },
|
|
11
11
|
'milestones.add': { method: 'CUSTOM', path: '', auth: 'apiKey', description: 'Add a project milestone', body: ['name'] },
|
|
12
12
|
'milestones.done': { method: 'CUSTOM', path: '', auth: 'apiKey', description: 'Mark a project milestone done' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../commands/projects.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;IACrJ,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAChI,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE;IAC5Q,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;IAChH,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE;IACrQ,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACzH,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAChJ,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../commands/projects.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;IACrJ,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAChI,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE;IAC5Q,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;IAChH,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE;IACrQ,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACzH,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAChJ,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE,WAAW,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,EAAE;IAC/Q,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;IACzG,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IACxH,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;IAC/G,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;IACvH,mBAAmB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;CACxF,CAAC"}
|
|
@@ -65,6 +65,7 @@ let PORTAL_TOKEN =
|
|
|
65
65
|
process.env.PORTAL_PORTAL_TOKEN ||
|
|
66
66
|
envFile.PORTAL_TOKEN ||
|
|
67
67
|
envFile.PORTAL_PORTAL_TOKEN;
|
|
68
|
+
let OUTPUT_JSON = false;
|
|
68
69
|
|
|
69
70
|
function requireApiKey() {
|
|
70
71
|
if (!API_KEY) {
|
|
@@ -309,6 +310,10 @@ function helpFlag(commandKey, field) {
|
|
|
309
310
|
// ── Output Formatting ───────────────────────────────────────────
|
|
310
311
|
|
|
311
312
|
function formatOutput(data, commandKey) {
|
|
313
|
+
if (OUTPUT_JSON) {
|
|
314
|
+
console.log(JSON.stringify(data, null, 2));
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
312
317
|
if (!data) { console.log('Done.'); return; }
|
|
313
318
|
|
|
314
319
|
// Special formatting for known responses
|
|
@@ -580,7 +585,16 @@ function formatOutput(data, commandKey) {
|
|
|
580
585
|
// Create responses — formatted instead of raw JSON
|
|
581
586
|
if (data.client) {
|
|
582
587
|
const c = data.client;
|
|
583
|
-
|
|
588
|
+
if (commandKey === 'clients.go-live') {
|
|
589
|
+
console.log(`Client go-live completed: ${c.name} [${c.status}] [${c.id}]`);
|
|
590
|
+
console.log(' Client notifications enabled.');
|
|
591
|
+
} else if (commandKey === 'clients.mute') {
|
|
592
|
+
console.log(`Client notifications muted: ${c.name} [${c.status}] [${c.id}]`);
|
|
593
|
+
} else if (commandKey === 'clients.update') {
|
|
594
|
+
console.log(`Client updated: ${c.name} [${c.status}] [${c.id}]`);
|
|
595
|
+
} else {
|
|
596
|
+
console.log(`Client created: ${c.name} [${c.status}] [${c.id}]`);
|
|
597
|
+
}
|
|
584
598
|
if (c.portalSlug) console.log(` Portal: /c/${c.portalSlug}?token=${c.portalToken}`);
|
|
585
599
|
return;
|
|
586
600
|
}
|
|
@@ -672,7 +686,7 @@ if (!resource || resource === 'help' || resource === '--help') {
|
|
|
672
686
|
// Resolve command key — handle single-word commands (e.g. "search <term>")
|
|
673
687
|
let commandKey = action ? `${resource}.${action}` : resource;
|
|
674
688
|
let cmd = COMMANDS[commandKey];
|
|
675
|
-
if (
|
|
689
|
+
if (action && rest[0]) {
|
|
676
690
|
const nestedKey = `${resource}.${action}.${rest[0]}`;
|
|
677
691
|
if (COMMANDS[nestedKey]) {
|
|
678
692
|
commandKey = nestedKey;
|
|
@@ -701,6 +715,7 @@ if (flags['portal-token']) process.env.PORTAL_TOKEN = flags['portal-token'];
|
|
|
701
715
|
if (flags['api-url']) BASE_URL = flags['api-url'];
|
|
702
716
|
if (flags['api-key']) API_KEY = flags['api-key'];
|
|
703
717
|
if (flags['portal-token']) PORTAL_TOKEN = flags['portal-token'];
|
|
718
|
+
OUTPUT_JSON = flags.json === 'true';
|
|
704
719
|
const id = positional[0];
|
|
705
720
|
|
|
706
721
|
// Interpolate path
|