@klevar/portal-cli 0.1.16 → 0.1.18
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/commands/_exemptions.d.ts +30 -0
- package/dist/commands/_exemptions.js +35 -0
- package/dist/commands/_exemptions.js.map +1 -1
- package/dist/commands/index.d.ts +86 -0
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/recurring.d.ts +86 -0
- package/dist/commands/recurring.js +108 -0
- package/dist/commands/recurring.js.map +1 -0
- package/dist/lib/legacy-runner.js +9 -1
- package/package.json +1 -1
|
@@ -28,4 +28,34 @@ export declare const CLI_EXEMPTIONS: readonly [{
|
|
|
28
28
|
readonly reason: "Inbound webhook consumer called by Klevar Docs, not by operators or clients.";
|
|
29
29
|
readonly owner: "Klevar Docs";
|
|
30
30
|
readonly trackedAs: "Phase 17 inbound-webhook exemption";
|
|
31
|
+
}, {
|
|
32
|
+
readonly method: "GET";
|
|
33
|
+
readonly path: "/api/portal/projects/:projectId/recurring-checkpoints";
|
|
34
|
+
readonly reason: "Client-facing recurrence list used by the portal UI; admin CLI uses recurring.list.";
|
|
35
|
+
readonly owner: "Klevar Portal";
|
|
36
|
+
readonly trackedAs: "Phase 18 recurring portal-ui exemption";
|
|
37
|
+
}, {
|
|
38
|
+
readonly method: "POST";
|
|
39
|
+
readonly path: "/api/portal/projects/:projectId/recurring-checkpoints";
|
|
40
|
+
readonly reason: "Client-facing proposal submission used by the portal UI; admin CLI accepts proposals.";
|
|
41
|
+
readonly owner: "Klevar Portal";
|
|
42
|
+
readonly trackedAs: "Phase 18 recurring portal-ui exemption";
|
|
43
|
+
}, {
|
|
44
|
+
readonly method: "POST";
|
|
45
|
+
readonly path: "/api/portal/recurring-checkpoints/:id/accept";
|
|
46
|
+
readonly reason: "Client-facing acceptance action used by the portal UI.";
|
|
47
|
+
readonly owner: "Klevar Portal";
|
|
48
|
+
readonly trackedAs: "Phase 18 recurring portal-ui exemption";
|
|
49
|
+
}, {
|
|
50
|
+
readonly method: "POST";
|
|
51
|
+
readonly path: "/api/portal/recurring-checkpoints/:id/reject";
|
|
52
|
+
readonly reason: "Client-facing rejection action used by the portal UI.";
|
|
53
|
+
readonly owner: "Klevar Portal";
|
|
54
|
+
readonly trackedAs: "Phase 18 recurring portal-ui exemption";
|
|
55
|
+
}, {
|
|
56
|
+
readonly method: "GET";
|
|
57
|
+
readonly path: "/api/portal/recurring-checkpoints/:id/occurrences";
|
|
58
|
+
readonly reason: "Client-facing occurrence history used by the portal UI.";
|
|
59
|
+
readonly owner: "Klevar Portal";
|
|
60
|
+
readonly trackedAs: "Phase 18 recurring portal-ui exemption";
|
|
31
61
|
}];
|
|
@@ -33,6 +33,41 @@ export const CLI_EXEMPTIONS = [
|
|
|
33
33
|
reason: 'Inbound webhook consumer called by Klevar Docs, not by operators or clients.',
|
|
34
34
|
owner: 'Klevar Docs',
|
|
35
35
|
trackedAs: 'Phase 17 inbound-webhook exemption',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
method: 'GET',
|
|
39
|
+
path: '/api/portal/projects/:projectId/recurring-checkpoints',
|
|
40
|
+
reason: 'Client-facing recurrence list used by the portal UI; admin CLI uses recurring.list.',
|
|
41
|
+
owner: 'Klevar Portal',
|
|
42
|
+
trackedAs: 'Phase 18 recurring portal-ui exemption',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
method: 'POST',
|
|
46
|
+
path: '/api/portal/projects/:projectId/recurring-checkpoints',
|
|
47
|
+
reason: 'Client-facing proposal submission used by the portal UI; admin CLI accepts proposals.',
|
|
48
|
+
owner: 'Klevar Portal',
|
|
49
|
+
trackedAs: 'Phase 18 recurring portal-ui exemption',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
method: 'POST',
|
|
53
|
+
path: '/api/portal/recurring-checkpoints/:id/accept',
|
|
54
|
+
reason: 'Client-facing acceptance action used by the portal UI.',
|
|
55
|
+
owner: 'Klevar Portal',
|
|
56
|
+
trackedAs: 'Phase 18 recurring portal-ui exemption',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
method: 'POST',
|
|
60
|
+
path: '/api/portal/recurring-checkpoints/:id/reject',
|
|
61
|
+
reason: 'Client-facing rejection action used by the portal UI.',
|
|
62
|
+
owner: 'Klevar Portal',
|
|
63
|
+
trackedAs: 'Phase 18 recurring portal-ui exemption',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
method: 'GET',
|
|
67
|
+
path: '/api/portal/recurring-checkpoints/:id/occurrences',
|
|
68
|
+
reason: 'Client-facing occurrence history used by the portal UI.',
|
|
69
|
+
owner: 'Klevar Portal',
|
|
70
|
+
trackedAs: 'Phase 18 recurring portal-ui exemption',
|
|
36
71
|
}
|
|
37
72
|
];
|
|
38
73
|
//# sourceMappingURL=_exemptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_exemptions.js","sourceRoot":"","sources":["../../commands/_exemptions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,uEAAuE;QAC/E,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,yCAAyC;KACrD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,uEAAuE;QAC/E,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,yCAAyC;KACrD;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,0GAA0G;QAClH,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,yCAAyC;KACrD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,yGAAyG;QACjH,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,qCAAqC;KACjD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,qCAAqC;QAC3C,MAAM,EAAE,8EAA8E;QACtF,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,oCAAoC;KAChD;CACO,CAAC"}
|
|
1
|
+
{"version":3,"file":"_exemptions.js","sourceRoot":"","sources":["../../commands/_exemptions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,uEAAuE;QAC/E,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,yCAAyC;KACrD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,uEAAuE;QAC/E,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,yCAAyC;KACrD;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,0GAA0G;QAClH,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,yCAAyC;KACrD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,yGAAyG;QACjH,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,qCAAqC;KACjD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,qCAAqC;QAC3C,MAAM,EAAE,8EAA8E;QACtF,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,oCAAoC;KAChD;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,uDAAuD;QAC7D,MAAM,EAAE,qFAAqF;QAC7F,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,wCAAwC;KACpD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,uDAAuD;QAC7D,MAAM,EAAE,uFAAuF;QAC/F,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,wCAAwC;KACpD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,8CAA8C;QACpD,MAAM,EAAE,wDAAwD;QAChE,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,wCAAwC;KACpD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,8CAA8C;QACpD,MAAM,EAAE,uDAAuD;QAC/D,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,wCAAwC;KACpD;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,mDAAmD;QACzD,MAAM,EAAE,yDAAyD;QACjE,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,wCAAwC;KACpD;CACO,CAAC"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -600,6 +600,92 @@ export declare const COMMAND_GROUPS: {
|
|
|
600
600
|
supportsFiles: true;
|
|
601
601
|
};
|
|
602
602
|
};
|
|
603
|
+
recurring: {
|
|
604
|
+
'recurring.list': {
|
|
605
|
+
method: "GET";
|
|
606
|
+
path: string;
|
|
607
|
+
auth: "apiKey";
|
|
608
|
+
description: string;
|
|
609
|
+
};
|
|
610
|
+
'recurring.create': {
|
|
611
|
+
method: "POST";
|
|
612
|
+
path: string;
|
|
613
|
+
auth: "apiKey";
|
|
614
|
+
description: string;
|
|
615
|
+
body: string[];
|
|
616
|
+
};
|
|
617
|
+
'recurring.get': {
|
|
618
|
+
method: "GET";
|
|
619
|
+
path: string;
|
|
620
|
+
auth: "apiKey";
|
|
621
|
+
description: string;
|
|
622
|
+
};
|
|
623
|
+
'recurring.update': {
|
|
624
|
+
method: "PATCH";
|
|
625
|
+
path: string;
|
|
626
|
+
auth: "apiKey";
|
|
627
|
+
description: string;
|
|
628
|
+
body: string[];
|
|
629
|
+
};
|
|
630
|
+
'recurring.pause': {
|
|
631
|
+
method: "POST";
|
|
632
|
+
path: string;
|
|
633
|
+
auth: "apiKey";
|
|
634
|
+
description: string;
|
|
635
|
+
body: string[];
|
|
636
|
+
};
|
|
637
|
+
'recurring.resume': {
|
|
638
|
+
method: "POST";
|
|
639
|
+
path: string;
|
|
640
|
+
auth: "apiKey";
|
|
641
|
+
description: string;
|
|
642
|
+
};
|
|
643
|
+
'recurring.end': {
|
|
644
|
+
method: "POST";
|
|
645
|
+
path: string;
|
|
646
|
+
auth: "apiKey";
|
|
647
|
+
description: string;
|
|
648
|
+
body: string[];
|
|
649
|
+
};
|
|
650
|
+
'recurring.delete': {
|
|
651
|
+
method: "DELETE";
|
|
652
|
+
path: string;
|
|
653
|
+
auth: "apiKey";
|
|
654
|
+
description: string;
|
|
655
|
+
};
|
|
656
|
+
'recurring.accept': {
|
|
657
|
+
method: "POST";
|
|
658
|
+
path: string;
|
|
659
|
+
auth: "apiKey";
|
|
660
|
+
description: string;
|
|
661
|
+
};
|
|
662
|
+
'recurring.reject': {
|
|
663
|
+
method: "POST";
|
|
664
|
+
path: string;
|
|
665
|
+
auth: "apiKey";
|
|
666
|
+
description: string;
|
|
667
|
+
body: string[];
|
|
668
|
+
};
|
|
669
|
+
'recurring.trigger': {
|
|
670
|
+
method: "POST";
|
|
671
|
+
path: string;
|
|
672
|
+
auth: "apiKey";
|
|
673
|
+
description: string;
|
|
674
|
+
};
|
|
675
|
+
'recurring.skip-next': {
|
|
676
|
+
method: "POST";
|
|
677
|
+
path: string;
|
|
678
|
+
auth: "apiKey";
|
|
679
|
+
description: string;
|
|
680
|
+
body: string[];
|
|
681
|
+
};
|
|
682
|
+
'recurring.occurrences': {
|
|
683
|
+
method: "GET";
|
|
684
|
+
path: string;
|
|
685
|
+
auth: "apiKey";
|
|
686
|
+
description: string;
|
|
687
|
+
};
|
|
688
|
+
};
|
|
603
689
|
metrics: {
|
|
604
690
|
'metrics.push': {
|
|
605
691
|
method: "POST";
|
package/dist/commands/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { onboardingCommands } from './onboarding.js';
|
|
|
6
6
|
import { noteCommands } from './notes.js';
|
|
7
7
|
import { portalCommands } from './portal.js';
|
|
8
8
|
import { projectCommands } from './projects.js';
|
|
9
|
+
import { recurringCommands } from './recurring.js';
|
|
9
10
|
import { systemCommands } from './system.js';
|
|
10
11
|
import { taskCommands } from './tasks.js';
|
|
11
12
|
import { usageCommands } from './usage.js';
|
|
@@ -20,6 +21,7 @@ export const COMMAND_GROUPS = {
|
|
|
20
21
|
updates: updateCommands,
|
|
21
22
|
onboarding: onboardingCommands,
|
|
22
23
|
notes: noteCommands,
|
|
24
|
+
recurring: recurringCommands,
|
|
23
25
|
metrics: metricCommands,
|
|
24
26
|
docs: docsCommands,
|
|
25
27
|
portal: portalCommands,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,kBAAkB;IAC9B,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc;CACgB,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAA+B,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,kBAAkB;IAC9B,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc;CACgB,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAA+B,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export declare const recurringCommands: {
|
|
2
|
+
'recurring.list': {
|
|
3
|
+
method: "GET";
|
|
4
|
+
path: string;
|
|
5
|
+
auth: "apiKey";
|
|
6
|
+
description: string;
|
|
7
|
+
};
|
|
8
|
+
'recurring.create': {
|
|
9
|
+
method: "POST";
|
|
10
|
+
path: string;
|
|
11
|
+
auth: "apiKey";
|
|
12
|
+
description: string;
|
|
13
|
+
body: string[];
|
|
14
|
+
};
|
|
15
|
+
'recurring.get': {
|
|
16
|
+
method: "GET";
|
|
17
|
+
path: string;
|
|
18
|
+
auth: "apiKey";
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
'recurring.update': {
|
|
22
|
+
method: "PATCH";
|
|
23
|
+
path: string;
|
|
24
|
+
auth: "apiKey";
|
|
25
|
+
description: string;
|
|
26
|
+
body: string[];
|
|
27
|
+
};
|
|
28
|
+
'recurring.pause': {
|
|
29
|
+
method: "POST";
|
|
30
|
+
path: string;
|
|
31
|
+
auth: "apiKey";
|
|
32
|
+
description: string;
|
|
33
|
+
body: string[];
|
|
34
|
+
};
|
|
35
|
+
'recurring.resume': {
|
|
36
|
+
method: "POST";
|
|
37
|
+
path: string;
|
|
38
|
+
auth: "apiKey";
|
|
39
|
+
description: string;
|
|
40
|
+
};
|
|
41
|
+
'recurring.end': {
|
|
42
|
+
method: "POST";
|
|
43
|
+
path: string;
|
|
44
|
+
auth: "apiKey";
|
|
45
|
+
description: string;
|
|
46
|
+
body: string[];
|
|
47
|
+
};
|
|
48
|
+
'recurring.delete': {
|
|
49
|
+
method: "DELETE";
|
|
50
|
+
path: string;
|
|
51
|
+
auth: "apiKey";
|
|
52
|
+
description: string;
|
|
53
|
+
};
|
|
54
|
+
'recurring.accept': {
|
|
55
|
+
method: "POST";
|
|
56
|
+
path: string;
|
|
57
|
+
auth: "apiKey";
|
|
58
|
+
description: string;
|
|
59
|
+
};
|
|
60
|
+
'recurring.reject': {
|
|
61
|
+
method: "POST";
|
|
62
|
+
path: string;
|
|
63
|
+
auth: "apiKey";
|
|
64
|
+
description: string;
|
|
65
|
+
body: string[];
|
|
66
|
+
};
|
|
67
|
+
'recurring.trigger': {
|
|
68
|
+
method: "POST";
|
|
69
|
+
path: string;
|
|
70
|
+
auth: "apiKey";
|
|
71
|
+
description: string;
|
|
72
|
+
};
|
|
73
|
+
'recurring.skip-next': {
|
|
74
|
+
method: "POST";
|
|
75
|
+
path: string;
|
|
76
|
+
auth: "apiKey";
|
|
77
|
+
description: string;
|
|
78
|
+
body: string[];
|
|
79
|
+
};
|
|
80
|
+
'recurring.occurrences': {
|
|
81
|
+
method: "GET";
|
|
82
|
+
path: string;
|
|
83
|
+
auth: "apiKey";
|
|
84
|
+
description: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
const recurringBody = [
|
|
2
|
+
'title',
|
|
3
|
+
'description',
|
|
4
|
+
'agendaTemplate',
|
|
5
|
+
'cadence',
|
|
6
|
+
'cadenceType',
|
|
7
|
+
'intervalDays',
|
|
8
|
+
'cadenceIntervalDays',
|
|
9
|
+
'dayOfWeek',
|
|
10
|
+
'dayOfMonth',
|
|
11
|
+
'startDate',
|
|
12
|
+
'endDate',
|
|
13
|
+
'maxOccurrences',
|
|
14
|
+
'visibility',
|
|
15
|
+
'outputType',
|
|
16
|
+
'notificationMode',
|
|
17
|
+
'owner',
|
|
18
|
+
'requiresClientAcceptance',
|
|
19
|
+
'requiresAdminAcceptance',
|
|
20
|
+
'clientId',
|
|
21
|
+
];
|
|
22
|
+
export const recurringCommands = {
|
|
23
|
+
'recurring.list': {
|
|
24
|
+
method: 'GET',
|
|
25
|
+
path: '/api/admin/projects/:projectId/recurring-checkpoints',
|
|
26
|
+
auth: 'apiKey',
|
|
27
|
+
description: 'List recurring checkpoints for a project',
|
|
28
|
+
},
|
|
29
|
+
'recurring.create': {
|
|
30
|
+
method: 'POST',
|
|
31
|
+
path: '/api/admin/projects/:projectId/recurring-checkpoints',
|
|
32
|
+
auth: 'apiKey',
|
|
33
|
+
description: 'Create recurrence; cadence weekly|biweekly|monthly|quarterly|custom_days; visibility internal_only|client_visible; outputType task|project_update_draft|project_update|email_reminder',
|
|
34
|
+
body: recurringBody,
|
|
35
|
+
},
|
|
36
|
+
'recurring.get': {
|
|
37
|
+
method: 'GET',
|
|
38
|
+
path: '/api/admin/recurring-checkpoints/:id',
|
|
39
|
+
auth: 'apiKey',
|
|
40
|
+
description: 'Get a recurring checkpoint',
|
|
41
|
+
},
|
|
42
|
+
'recurring.update': {
|
|
43
|
+
method: 'PATCH',
|
|
44
|
+
path: '/api/admin/recurring-checkpoints/:id',
|
|
45
|
+
auth: 'apiKey',
|
|
46
|
+
description: 'Update a recurring checkpoint',
|
|
47
|
+
body: recurringBody,
|
|
48
|
+
},
|
|
49
|
+
'recurring.pause': {
|
|
50
|
+
method: 'POST',
|
|
51
|
+
path: '/api/admin/recurring-checkpoints/:id/pause',
|
|
52
|
+
auth: 'apiKey',
|
|
53
|
+
description: 'Pause a recurring checkpoint',
|
|
54
|
+
body: ['reason'],
|
|
55
|
+
},
|
|
56
|
+
'recurring.resume': {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
path: '/api/admin/recurring-checkpoints/:id/resume',
|
|
59
|
+
auth: 'apiKey',
|
|
60
|
+
description: 'Resume a recurring checkpoint',
|
|
61
|
+
},
|
|
62
|
+
'recurring.end': {
|
|
63
|
+
method: 'POST',
|
|
64
|
+
path: '/api/admin/recurring-checkpoints/:id/end',
|
|
65
|
+
auth: 'apiKey',
|
|
66
|
+
description: 'End a recurring checkpoint',
|
|
67
|
+
body: ['reason'],
|
|
68
|
+
},
|
|
69
|
+
'recurring.delete': {
|
|
70
|
+
method: 'DELETE',
|
|
71
|
+
path: '/api/admin/recurring-checkpoints/:id',
|
|
72
|
+
auth: 'apiKey',
|
|
73
|
+
description: 'Delete a recurring checkpoint with no occurrences',
|
|
74
|
+
},
|
|
75
|
+
'recurring.accept': {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
path: '/api/admin/recurring-checkpoints/:id/accept',
|
|
78
|
+
auth: 'apiKey',
|
|
79
|
+
description: 'Accept a client recurrence proposal',
|
|
80
|
+
},
|
|
81
|
+
'recurring.reject': {
|
|
82
|
+
method: 'POST',
|
|
83
|
+
path: '/api/admin/recurring-checkpoints/:id/reject',
|
|
84
|
+
auth: 'apiKey',
|
|
85
|
+
description: 'Reject a recurrence proposal',
|
|
86
|
+
body: ['reason'],
|
|
87
|
+
},
|
|
88
|
+
'recurring.trigger': {
|
|
89
|
+
method: 'POST',
|
|
90
|
+
path: '/api/admin/recurring-checkpoints/:id/trigger',
|
|
91
|
+
auth: 'apiKey',
|
|
92
|
+
description: 'Generate one occurrence now',
|
|
93
|
+
},
|
|
94
|
+
'recurring.skip-next': {
|
|
95
|
+
method: 'POST',
|
|
96
|
+
path: '/api/admin/recurring-checkpoints/:id/skip-next',
|
|
97
|
+
auth: 'apiKey',
|
|
98
|
+
description: 'Skip the next scheduled occurrence',
|
|
99
|
+
body: ['reason'],
|
|
100
|
+
},
|
|
101
|
+
'recurring.occurrences': {
|
|
102
|
+
method: 'GET',
|
|
103
|
+
path: '/api/admin/recurring-checkpoints/:id/occurrences',
|
|
104
|
+
auth: 'apiKey',
|
|
105
|
+
description: 'List generated/skipped/failed occurrences',
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=recurring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recurring.js","sourceRoot":"","sources":["../../commands/recurring.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG;IACpB,OAAO;IACP,aAAa;IACb,gBAAgB;IAChB,SAAS;IACT,aAAa;IACb,cAAc;IACd,qBAAqB;IACrB,WAAW;IACX,YAAY;IACZ,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,OAAO;IACP,0BAA0B;IAC1B,yBAAyB;IACzB,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gBAAgB,EAAE;QAChB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,sDAAsD;QAC5D,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0CAA0C;KACxD;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,sDAAsD;QAC5D,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uLAAuL;QACpM,IAAI,EAAE,aAAa;KACpB;IACD,eAAe,EAAE;QACf,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,sCAAsC;QAC5C,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4BAA4B;KAC1C;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,sCAAsC;QAC5C,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,aAAa;KACpB;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,4CAA4C;QAClD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,+BAA+B;KAC7C;IACD,eAAe,EAAE;QACf,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,sCAAsC;QAC5C,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mDAAmD;KACjE;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,qCAAqC;KACnD;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD,mBAAmB,EAAE;QACnB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,8CAA8C;QACpD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6BAA6B;KAC3C;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD,uBAAuB,EAAE;QACvB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kDAAkD;QACxD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,2CAA2C;KACzD;CACqB,CAAC"}
|
|
@@ -301,7 +301,7 @@ function interpolatePath(template, id) {
|
|
|
301
301
|
|
|
302
302
|
const HELP_ENUMS = {
|
|
303
303
|
priority: 'low|normal|high|urgent',
|
|
304
|
-
submittedBy: 'client|admin|va',
|
|
304
|
+
submittedBy: 'client|admin|va|system',
|
|
305
305
|
phase: 'current|next|future',
|
|
306
306
|
billableStatus: 'included|goodwill|non_billable|out_of_scope|separate_quote',
|
|
307
307
|
approvalStatus: 'pending|approved|rejected',
|
|
@@ -317,6 +317,13 @@ const HELP_ENUMS = {
|
|
|
317
317
|
notifyOnReset: 'true|false',
|
|
318
318
|
notifyClient: 'true|false',
|
|
319
319
|
notifyAdmin: 'true|false',
|
|
320
|
+
cadence: 'weekly|biweekly|monthly|quarterly|custom_days',
|
|
321
|
+
cadenceType: 'weekly|biweekly|monthly|quarterly|custom_days',
|
|
322
|
+
outputType: 'task|project_update_draft|project_update|email_reminder',
|
|
323
|
+
notificationMode: 'silent|admin_only|client_on_acceptance|client_each_occurrence|client_digest_only',
|
|
324
|
+
owner: 'admin|client|shared',
|
|
325
|
+
requiresClientAcceptance: 'true|false',
|
|
326
|
+
requiresAdminAcceptance: 'true|false',
|
|
320
327
|
};
|
|
321
328
|
|
|
322
329
|
function helpFlag(commandKey, field) {
|
|
@@ -324,6 +331,7 @@ function helpFlag(commandKey, field) {
|
|
|
324
331
|
if (field === 'visibility') {
|
|
325
332
|
if (commandKey.startsWith('projects.')) hint = 'client_visible|internal_only';
|
|
326
333
|
else if (commandKey.startsWith('capacity.')) hint = 'internal_only|client_visible_summary|client_visible_detail';
|
|
334
|
+
else if (commandKey.startsWith('recurring.')) hint = 'internal_only|client_visible';
|
|
327
335
|
else hint = 'client|internal';
|
|
328
336
|
}
|
|
329
337
|
if (field === 'status') {
|