@newpeak/barista-cli 0.2.295 → 0.2.298

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.
Files changed (90) hide show
  1. package/dist/commands/liberica/teams/index.d.ts.map +1 -1
  2. package/dist/commands/liberica/teams/index.js +6 -0
  3. package/dist/commands/liberica/teams/index.js.map +1 -1
  4. package/dist/commands/liberica/teams/members/index.d.ts +3 -0
  5. package/dist/commands/liberica/teams/members/index.d.ts.map +1 -0
  6. package/dist/commands/liberica/teams/members/index.js +9 -0
  7. package/dist/commands/liberica/teams/members/index.js.map +1 -0
  8. package/dist/commands/liberica/teams/members/suggest.d.ts +3 -0
  9. package/dist/commands/liberica/teams/members/suggest.d.ts.map +1 -0
  10. package/dist/commands/liberica/teams/members/suggest.js +57 -0
  11. package/dist/commands/liberica/teams/members/suggest.js.map +1 -0
  12. package/dist/commands/liberica/teams/mentions/count.d.ts +3 -0
  13. package/dist/commands/liberica/teams/mentions/count.d.ts.map +1 -0
  14. package/dist/commands/liberica/teams/mentions/count.js +55 -0
  15. package/dist/commands/liberica/teams/mentions/count.js.map +1 -0
  16. package/dist/commands/liberica/teams/mentions/index.d.ts +3 -0
  17. package/dist/commands/liberica/teams/mentions/index.d.ts.map +1 -0
  18. package/dist/commands/liberica/teams/mentions/index.js +17 -0
  19. package/dist/commands/liberica/teams/mentions/index.js.map +1 -0
  20. package/dist/commands/liberica/teams/mentions/list.d.ts +3 -0
  21. package/dist/commands/liberica/teams/mentions/list.d.ts.map +1 -0
  22. package/dist/commands/liberica/teams/mentions/list.js +97 -0
  23. package/dist/commands/liberica/teams/mentions/list.js.map +1 -0
  24. package/dist/commands/liberica/teams/mentions/notify-setting.d.ts +3 -0
  25. package/dist/commands/liberica/teams/mentions/notify-setting.d.ts.map +1 -0
  26. package/dist/commands/liberica/teams/mentions/notify-setting.js +119 -0
  27. package/dist/commands/liberica/teams/mentions/notify-setting.js.map +1 -0
  28. package/dist/commands/liberica/teams/mentions/read.d.ts +3 -0
  29. package/dist/commands/liberica/teams/mentions/read.d.ts.map +1 -0
  30. package/dist/commands/liberica/teams/mentions/read.js +144 -0
  31. package/dist/commands/liberica/teams/mentions/read.js.map +1 -0
  32. package/dist/commands/liberica/teams/mentions/reply.d.ts +3 -0
  33. package/dist/commands/liberica/teams/mentions/reply.d.ts.map +1 -0
  34. package/dist/commands/liberica/teams/mentions/reply.js +96 -0
  35. package/dist/commands/liberica/teams/mentions/reply.js.map +1 -0
  36. package/dist/commands/liberica/teams/topics/common.d.ts +44 -0
  37. package/dist/commands/liberica/teams/topics/common.d.ts.map +1 -0
  38. package/dist/commands/liberica/teams/topics/common.js +135 -0
  39. package/dist/commands/liberica/teams/topics/common.js.map +1 -0
  40. package/dist/commands/liberica/teams/topics/follow.d.ts +3 -0
  41. package/dist/commands/liberica/teams/topics/follow.d.ts.map +1 -0
  42. package/dist/commands/liberica/teams/topics/follow.js +50 -0
  43. package/dist/commands/liberica/teams/topics/follow.js.map +1 -0
  44. package/dist/commands/liberica/teams/topics/followed.d.ts +3 -0
  45. package/dist/commands/liberica/teams/topics/followed.d.ts.map +1 -0
  46. package/dist/commands/liberica/teams/topics/followed.js +44 -0
  47. package/dist/commands/liberica/teams/topics/followed.js.map +1 -0
  48. package/dist/commands/liberica/teams/topics/get.d.ts +3 -0
  49. package/dist/commands/liberica/teams/topics/get.d.ts.map +1 -0
  50. package/dist/commands/liberica/teams/topics/get.js +51 -0
  51. package/dist/commands/liberica/teams/topics/get.js.map +1 -0
  52. package/dist/commands/liberica/teams/topics/index.d.ts +3 -0
  53. package/dist/commands/liberica/teams/topics/index.d.ts.map +1 -0
  54. package/dist/commands/liberica/teams/topics/index.js +23 -0
  55. package/dist/commands/liberica/teams/topics/index.js.map +1 -0
  56. package/dist/commands/liberica/teams/topics/list.d.ts +3 -0
  57. package/dist/commands/liberica/teams/topics/list.d.ts.map +1 -0
  58. package/dist/commands/liberica/teams/topics/list.js +58 -0
  59. package/dist/commands/liberica/teams/topics/list.js.map +1 -0
  60. package/dist/commands/liberica/teams/topics/refs.d.ts +3 -0
  61. package/dist/commands/liberica/teams/topics/refs.d.ts.map +1 -0
  62. package/dist/commands/liberica/teams/topics/refs.js +47 -0
  63. package/dist/commands/liberica/teams/topics/refs.js.map +1 -0
  64. package/dist/commands/liberica/teams/topics/stats.d.ts +3 -0
  65. package/dist/commands/liberica/teams/topics/stats.d.ts.map +1 -0
  66. package/dist/commands/liberica/teams/topics/stats.js +36 -0
  67. package/dist/commands/liberica/teams/topics/stats.js.map +1 -0
  68. package/dist/commands/liberica/teams/topics/suggest.d.ts +3 -0
  69. package/dist/commands/liberica/teams/topics/suggest.d.ts.map +1 -0
  70. package/dist/commands/liberica/teams/topics/suggest.js +57 -0
  71. package/dist/commands/liberica/teams/topics/suggest.js.map +1 -0
  72. package/dist/commands/liberica/teams/topics/unfollow.d.ts +3 -0
  73. package/dist/commands/liberica/teams/topics/unfollow.d.ts.map +1 -0
  74. package/dist/commands/liberica/teams/topics/unfollow.js +50 -0
  75. package/dist/commands/liberica/teams/topics/unfollow.js.map +1 -0
  76. package/dist/core/api/client.d.ts +67 -0
  77. package/dist/core/api/client.d.ts.map +1 -1
  78. package/dist/core/api/client.js +415 -0
  79. package/dist/core/api/client.js.map +1 -1
  80. package/dist/types/team-mention.d.ts +67 -0
  81. package/dist/types/team-mention.d.ts.map +1 -0
  82. package/dist/types/team-mention.js +10 -0
  83. package/dist/types/team-mention.js.map +1 -0
  84. package/dist/types/team-topic.d.ts +98 -0
  85. package/dist/types/team-topic.d.ts.map +1 -0
  86. package/dist/types/team-topic.js +10 -0
  87. package/dist/types/team-topic.js.map +1 -0
  88. package/package.json +1 -1
  89. package/skills/barista-cli/data/commands.json +81 -1
  90. package/skills/barista-cli/data/commands.yaml +56 -1
@@ -0,0 +1,144 @@
1
+ import { Command, Option } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+ import { shouldUseJson } from '../../../../utils/output.js';
6
+ const ALL_PAGE_SIZE = 100;
7
+ async function collectUnreadMentionIds(environment, tenant) {
8
+ const ids = [];
9
+ const seen = new Set();
10
+ let pageNo = 1;
11
+ for (;;) {
12
+ const response = await apiClient.listTeamMentions(environment, tenant, {
13
+ pageNo,
14
+ pageSize: ALL_PAGE_SIZE,
15
+ readState: 'UNREAD',
16
+ });
17
+ if (!response.success) {
18
+ return { ids, error: response.error };
19
+ }
20
+ const rows = response.data?.rows || [];
21
+ const before = ids.length;
22
+ for (const row of rows) {
23
+ if (row.mentionId && !seen.has(row.mentionId)) {
24
+ seen.add(row.mentionId);
25
+ ids.push(row.mentionId);
26
+ }
27
+ }
28
+ const totalRows = response.data?.totalRows ?? 0;
29
+ const added = ids.length - before;
30
+ if (rows.length === 0 || added === 0 || ids.length >= totalRows) {
31
+ return { ids, unreadCount: response.data?.unreadCount };
32
+ }
33
+ pageNo += 1;
34
+ }
35
+ }
36
+ export function createTeamMentionReadCommand() {
37
+ const command = new Command('read');
38
+ command
39
+ .description('Mark mentions as read (explicit ids or --all unread)')
40
+ .argument('[mention-ids...]', 'Mention IDs to mark as read')
41
+ .option('--all', 'Mark all unread mentions as read')
42
+ .option('--dry-run', 'Preview without making the write API call')
43
+ .addOption(new Option('--env <string>').hideHelp())
44
+ .addOption(new Option('--tenant <string>').hideHelp())
45
+ .option('--json', 'Output as JSON');
46
+ command.action(async (mentionIds, options) => {
47
+ const context = configManager.getCurrentContext();
48
+ const environment = context.environment;
49
+ const tenant = context.tenant;
50
+ const outputJson = shouldUseJson(options);
51
+ const all = options.all === true;
52
+ const dryRun = options.dryRun === true;
53
+ function fail(code, message) {
54
+ if (outputJson) {
55
+ console.log(JSON.stringify({ success: false, error: { code, message } }, null, 2));
56
+ }
57
+ else {
58
+ console.error(chalk.red(`\nāœ— ${message}\n`));
59
+ }
60
+ process.exit(1);
61
+ }
62
+ if (!all && mentionIds.length === 0) {
63
+ fail('MISSING_ARGUMENT', 'Provide at least one mention id or use --all');
64
+ }
65
+ try {
66
+ let ids = mentionIds;
67
+ if (all) {
68
+ const collected = await collectUnreadMentionIds(environment, tenant);
69
+ if (collected.error) {
70
+ if (outputJson) {
71
+ console.log(JSON.stringify({ success: false, error: collected.error }, null, 2));
72
+ }
73
+ else {
74
+ console.error(chalk.red(`\nāœ— Failed to list unread mentions: ${collected.error.message}\n`));
75
+ }
76
+ process.exit(1);
77
+ }
78
+ ids = collected.ids;
79
+ }
80
+ if (dryRun) {
81
+ const data = { mentionIds: ids, markedCount: ids.length };
82
+ if (outputJson) {
83
+ console.log(JSON.stringify({ success: true, dryRun: true, data }, null, 2));
84
+ }
85
+ else {
86
+ console.log(chalk.bold('\nšŸ” Dry-Run Mode: No changes will be made\n'));
87
+ console.log(` Mentions to mark read: ${ids.length}`);
88
+ ids.forEach((id) => console.log(` ${chalk.gray('-')} ${id}`));
89
+ console.log();
90
+ }
91
+ return;
92
+ }
93
+ if (ids.length === 0) {
94
+ const data = { unreadCount: 0, markedCount: 0 };
95
+ if (outputJson) {
96
+ console.log(JSON.stringify({ success: true, data }, null, 2));
97
+ }
98
+ else {
99
+ console.log(chalk.yellow('\n⚠ No unread mentions to mark as read\n'));
100
+ }
101
+ return;
102
+ }
103
+ const response = await apiClient.markTeamMentionsRead(environment, tenant, ids);
104
+ if (!response.success) {
105
+ if (outputJson) {
106
+ console.log(JSON.stringify({ success: false, error: response.error }, null, 2));
107
+ }
108
+ else {
109
+ console.error(chalk.red(`\nāœ— Failed to mark mentions read: ${response.error?.message || 'Unknown error'}`));
110
+ if (response.error?.code) {
111
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
112
+ }
113
+ console.error();
114
+ }
115
+ process.exit(1);
116
+ }
117
+ const data = {
118
+ unreadCount: response.data?.unreadCount ?? 0,
119
+ markedCount: ids.length,
120
+ };
121
+ if (outputJson) {
122
+ console.log(JSON.stringify({ success: true, data }, null, 2));
123
+ }
124
+ else {
125
+ console.log(chalk.green(`\nāœ“ Marked ${data.markedCount} mention(s) as read`));
126
+ console.log(chalk.gray(` Remaining unread: ${data.unreadCount}\n`));
127
+ }
128
+ }
129
+ catch (error) {
130
+ if (outputJson) {
131
+ console.log(JSON.stringify({
132
+ success: false,
133
+ error: { message: error instanceof Error ? error.message : 'Unknown error' },
134
+ }));
135
+ }
136
+ else {
137
+ console.error(chalk.red(`\nāœ— Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
138
+ }
139
+ process.exit(1);
140
+ }
141
+ });
142
+ return command;
143
+ }
144
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/mentions/read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamMentionReplyCommand(): Command;
3
+ //# sourceMappingURL=reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/mentions/reply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAQ5C,wBAAgB,6BAA6B,IAAI,OAAO,CA+FvD"}
@@ -0,0 +1,96 @@
1
+ import { Command, Option } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { readFileSync } from 'fs';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ export function createTeamMentionReplyCommand() {
8
+ const command = new Command('reply');
9
+ command
10
+ .description('Reply to a mention (creates a reply_of mention)')
11
+ .argument('<mention-id>', 'Mention ID to reply to')
12
+ .option('--content <string>', 'Reply content')
13
+ .option('--content-file <path>', 'Read reply content from a UTF-8 file')
14
+ .option('--dry-run', 'Preview without making the write API call')
15
+ .addOption(new Option('--env <string>').hideHelp())
16
+ .addOption(new Option('--tenant <string>').hideHelp())
17
+ .option('--json', 'Output as JSON');
18
+ command.action(async (mentionId, options) => {
19
+ const context = configManager.getCurrentContext();
20
+ const environment = context.environment;
21
+ const tenant = context.tenant;
22
+ const outputJson = shouldUseJson(options);
23
+ const dryRun = options.dryRun === true;
24
+ function fail(code, message) {
25
+ if (outputJson) {
26
+ console.log(JSON.stringify({ success: false, error: { code, message } }, null, 2));
27
+ }
28
+ else {
29
+ console.error(chalk.red(`\nāœ— ${message}\n`));
30
+ }
31
+ process.exit(1);
32
+ }
33
+ const content = options.contentFile
34
+ ? readFileSync(options.contentFile, 'utf-8')
35
+ : options.content;
36
+ if (!content || content.trim() === '') {
37
+ fail('MISSING_CONTENT', 'Reply content is required. Use --content or --content-file');
38
+ }
39
+ try {
40
+ if (dryRun) {
41
+ const data = { mentionId, content };
42
+ if (outputJson) {
43
+ console.log(JSON.stringify({ success: true, dryRun: true, data }, null, 2));
44
+ }
45
+ else {
46
+ console.log(chalk.bold('\nšŸ” Dry-Run Mode: No changes will be made\n'));
47
+ console.log(` ${chalk.gray('Mention ID:')} ${mentionId}`);
48
+ console.log(` ${chalk.gray('Content:')} ${content}`);
49
+ console.log();
50
+ }
51
+ return;
52
+ }
53
+ const response = await apiClient.replyTeamMention(environment, tenant, {
54
+ mentionId,
55
+ content,
56
+ });
57
+ if (!response.success) {
58
+ if (outputJson) {
59
+ console.log(JSON.stringify({ success: false, error: response.error }, null, 2));
60
+ }
61
+ else {
62
+ console.error(chalk.red(`\nāœ— Failed to reply mention: ${response.error?.message || 'Unknown error'}`));
63
+ if (response.error?.code) {
64
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
65
+ }
66
+ console.error();
67
+ }
68
+ process.exit(1);
69
+ }
70
+ if (outputJson) {
71
+ console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
72
+ }
73
+ else {
74
+ console.log(chalk.green('\nāœ“ Reply mention created'));
75
+ if (response.data?.replyMentionId) {
76
+ console.log(` ${chalk.gray('Reply Mention ID:')} ${response.data.replyMentionId}`);
77
+ }
78
+ console.log();
79
+ }
80
+ }
81
+ catch (error) {
82
+ if (outputJson) {
83
+ console.log(JSON.stringify({
84
+ success: false,
85
+ error: { message: error instanceof Error ? error.message : 'Unknown error' },
86
+ }));
87
+ }
88
+ else {
89
+ console.error(chalk.red(`\nāœ— Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
90
+ }
91
+ process.exit(1);
92
+ }
93
+ });
94
+ return command;
95
+ }
96
+ //# sourceMappingURL=reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/mentions/reply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { Environment } from '../../../../types/index.js';
2
+ import type { TeamTopicListRow, TeamTopicPageResult, TeamTopicRefRow } from '../../../../types/team-topic.js';
3
+ export interface TopicCommandContext {
4
+ environment: Environment;
5
+ tenant: string;
6
+ }
7
+ export declare function getTopicContext(): TopicCommandContext;
8
+ export declare function failCommand(outputJson: boolean, code: string, message: string): never;
9
+ export declare function printApiError(outputJson: boolean, error: {
10
+ code?: string;
11
+ message?: string;
12
+ } | undefined, prefix: string): never;
13
+ export declare function printCatchError(outputJson: boolean, error: unknown): never;
14
+ /**
15
+ * `--update-from 2026-10-20` → `2026-10-20T00:00:00Z`(UTC 起);
16
+ * `--update-to 2026-10-21` → `2026-10-21T23:59:59Z`(UTC 止)。
17
+ * å·²åø¦ę—¶é—“ēš„ ISO-8601 å­—ē¬¦äø²åŽŸę ·é€ä¼ ć€‚
18
+ */
19
+ export declare function normalizeInstant(value: string | undefined, endOfDay?: boolean): string | undefined;
20
+ export declare function topicItems(data: {
21
+ items?: TeamTopicListRow[];
22
+ rows?: TeamTopicListRow[];
23
+ } | undefined): TeamTopicListRow[];
24
+ export declare function refItems(data: {
25
+ items?: TeamTopicRefRow[];
26
+ rows?: TeamTopicRefRow[];
27
+ } | undefined): TeamTopicRefRow[];
28
+ /**
29
+ * åŽē«Æ PageResult ēš„ę•°ē»„å­—ę®µäø¤ē§éƒ½å‡ŗēŽ°čæ‡ļ¼ˆ`items` / `rows`)。
30
+ * JSON č¾“å‡ŗē»Ÿäø€č”„é½ `items`ļ¼ˆåŒę—¶äæē•™ `rows`ļ¼‰ļ¼Œę–¹ä¾æč„šęœ¬ęŒ‰ `data.items` ę¶ˆč“¹ć€‚
31
+ */
32
+ export declare function withItems<T>(data: TeamTopicPageResult<T> | undefined): TeamTopicPageResult<T> | undefined;
33
+ export declare function refTitle(row: TeamTopicRefRow): string;
34
+ export declare function refTime(row: TeamTopicRefRow): string;
35
+ export declare function renderTopicRows(rows: TeamTopicListRow[], footer?: {
36
+ totalRows?: number;
37
+ pageNo?: number;
38
+ size?: number;
39
+ }): void;
40
+ export declare function renderRefRows(rows: TeamTopicRefRow[], footer?: {
41
+ totalRows?: number;
42
+ pageNo?: number;
43
+ }): void;
44
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/topics/common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,IAAI,mBAAmB,CAMrD;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAOrF;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACtD,MAAM,EAAE,MAAM,GACb,KAAK,CAWP;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAS1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,UAAQ,GAAG,MAAM,GAAG,SAAS,CAMhG;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAAE,GAAG,SAAS,GAAG,gBAAgB,EAAE,CAE1H;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,EAAE,CAAA;CAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAErH;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,GACvC,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,CAGpC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAErD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EAAE,EACxB,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,IAAI,CAkCN;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,eAAe,EAAE,EACvB,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,IAAI,CA8BN"}
@@ -0,0 +1,135 @@
1
+ import chalk from 'chalk';
2
+ import Table from 'cli-table3';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ export function getTopicContext() {
5
+ const context = configManager.getCurrentContext();
6
+ return {
7
+ environment: context.environment,
8
+ tenant: context.tenant,
9
+ };
10
+ }
11
+ export function failCommand(outputJson, code, message) {
12
+ if (outputJson) {
13
+ console.log(JSON.stringify({ success: false, error: { code, message } }, null, 2));
14
+ }
15
+ else {
16
+ console.error(chalk.red(`\nāœ— ${message}\n`));
17
+ }
18
+ process.exit(1);
19
+ }
20
+ export function printApiError(outputJson, error, prefix) {
21
+ if (outputJson) {
22
+ console.log(JSON.stringify({ success: false, error }, null, 2));
23
+ }
24
+ else {
25
+ console.error(chalk.red(`\nāœ— ${prefix}: ${error?.message || 'Unknown error'}`));
26
+ if (error?.code) {
27
+ console.error(chalk.gray(` Error code: ${error.code}`));
28
+ }
29
+ console.error();
30
+ }
31
+ process.exit(1);
32
+ }
33
+ export function printCatchError(outputJson, error) {
34
+ if (error instanceof Error && error.message === 'process.exit')
35
+ throw error;
36
+ const message = error instanceof Error ? error.message : 'Unknown error';
37
+ if (outputJson) {
38
+ console.log(JSON.stringify({ success: false, error: { message } }));
39
+ }
40
+ else {
41
+ console.error(chalk.red(`\nāœ— Error: ${message}\n`));
42
+ }
43
+ process.exit(1);
44
+ }
45
+ /**
46
+ * `--update-from 2026-10-20` → `2026-10-20T00:00:00Z`(UTC 起);
47
+ * `--update-to 2026-10-21` → `2026-10-21T23:59:59Z`(UTC 止)。
48
+ * å·²åø¦ę—¶é—“ēš„ ISO-8601 å­—ē¬¦äø²åŽŸę ·é€ä¼ ć€‚
49
+ */
50
+ export function normalizeInstant(value, endOfDay = false) {
51
+ if (!value)
52
+ return undefined;
53
+ if (/^\d{4}-\d{2}-\d{2}$/.test(value)) {
54
+ return `${value}T${endOfDay ? '23:59:59' : '00:00:00'}Z`;
55
+ }
56
+ return value;
57
+ }
58
+ export function topicItems(data) {
59
+ return data?.items || data?.rows || [];
60
+ }
61
+ export function refItems(data) {
62
+ return data?.items || data?.rows || [];
63
+ }
64
+ /**
65
+ * åŽē«Æ PageResult ēš„ę•°ē»„å­—ę®µäø¤ē§éƒ½å‡ŗēŽ°čæ‡ļ¼ˆ`items` / `rows`)。
66
+ * JSON č¾“å‡ŗē»Ÿäø€č”„é½ `items`ļ¼ˆåŒę—¶äæē•™ `rows`ļ¼‰ļ¼Œę–¹ä¾æč„šęœ¬ęŒ‰ `data.items` ę¶ˆč“¹ć€‚
67
+ */
68
+ export function withItems(data) {
69
+ if (!data)
70
+ return data;
71
+ return { ...data, items: data.items || data.rows || [] };
72
+ }
73
+ export function refTitle(row) {
74
+ return row.bizLabel || row.title || row.bizTitle || row.bizNo || '';
75
+ }
76
+ export function refTime(row) {
77
+ return row.gmtUpdateTimeWrapper || row.gmtUpdateTime || row.updateTime || '';
78
+ }
79
+ export function renderTopicRows(rows, footer) {
80
+ if (rows.length === 0) {
81
+ console.log(chalk.yellow('\n⚠ No topics found\n'));
82
+ return;
83
+ }
84
+ const table = new Table({
85
+ head: ['TopicId', 'Topic', 'Refs', 'BizTypes', 'Followed', 'Updated'],
86
+ style: { head: ['cyan'] },
87
+ colWidths: [22, 34, 7, 28, 10, 20],
88
+ wordWrap: true,
89
+ });
90
+ for (const row of rows) {
91
+ table.push([
92
+ row.topicId || '',
93
+ row.topicName || '',
94
+ String(row.refCount ?? 0),
95
+ (row.bizTypes || []).join(','),
96
+ row.followed ? '是' : '否',
97
+ row.gmtUpdateTimeWrapper || row.lastUpdateTime || '',
98
+ ]);
99
+ }
100
+ console.log();
101
+ console.log(table.toString());
102
+ if (footer) {
103
+ console.log(chalk.gray(`Page ${footer.pageNo ?? 1} (${footer.totalRows ?? rows.length} total)`));
104
+ }
105
+ console.log();
106
+ }
107
+ export function renderRefRows(rows, footer) {
108
+ if (rows.length === 0) {
109
+ console.log(chalk.yellow('\n⚠ No references found\n'));
110
+ return;
111
+ }
112
+ const table = new Table({
113
+ head: ['BizType', 'BizId', 'No', 'Title', 'Owner', 'Updated'],
114
+ style: { head: ['cyan'] },
115
+ colWidths: [12, 22, 18, 42, 16, 20],
116
+ wordWrap: true,
117
+ });
118
+ for (const row of rows) {
119
+ table.push([
120
+ row.bizTypeName || row.bizType || '',
121
+ row.bizId || '',
122
+ row.bizNo || '',
123
+ refTitle(row),
124
+ row.ownerName || '',
125
+ refTime(row),
126
+ ]);
127
+ }
128
+ console.log();
129
+ console.log(table.toString());
130
+ if (footer) {
131
+ console.log(chalk.gray(`Page ${footer.pageNo ?? 1} (${footer.totalRows ?? rows.length} total)`));
132
+ }
133
+ console.log();
134
+ }
135
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/topics/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamTopicFollowCommand(): Command;
3
+ //# sourceMappingURL=follow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/topics/follow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAM5C,wBAAgB,4BAA4B,IAAI,OAAO,CA6CtD"}
@@ -0,0 +1,50 @@
1
+ import { Command, Option } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { apiClient } from '../../../../core/api/client.js';
4
+ import { shouldUseJson } from '../../../../utils/output.js';
5
+ import { getTopicContext, printApiError, printCatchError } from './common.js';
6
+ export function createTeamTopicFollowCommand() {
7
+ const command = new Command('follow');
8
+ command
9
+ .description('Follow a topic (idempotent)')
10
+ .argument('<topic-id>', 'Topic ID (19-digit Snowflake, passed as string)')
11
+ .option('--dry-run', 'Preview without making the write API call')
12
+ .addOption(new Option('--env <string>').hideHelp())
13
+ .addOption(new Option('--tenant <string>').hideHelp())
14
+ .option('--json', 'Output as JSON');
15
+ command.action(async (topicId, options) => {
16
+ const { environment, tenant } = getTopicContext();
17
+ const outputJson = shouldUseJson(options);
18
+ const dryRun = options.dryRun === true;
19
+ try {
20
+ if (dryRun) {
21
+ const data = { topicId, followed: true };
22
+ if (outputJson) {
23
+ console.log(JSON.stringify({ success: true, dryRun: true, data }, null, 2));
24
+ }
25
+ else {
26
+ console.log(chalk.bold('\nšŸ” Dry-Run Mode: No changes will be made\n'));
27
+ console.log(` ${chalk.gray('Topic ID:')} ${topicId}`);
28
+ console.log();
29
+ }
30
+ return;
31
+ }
32
+ const response = await apiClient.followTeamTopic(environment, tenant, topicId);
33
+ if (!response.success) {
34
+ printApiError(outputJson, response.error, 'Failed to follow topic');
35
+ }
36
+ const data = { topicId, followed: true };
37
+ if (outputJson) {
38
+ console.log(JSON.stringify({ success: true, data }, null, 2));
39
+ }
40
+ else {
41
+ console.log(chalk.green(`\nāœ“ Followed topic ${topicId}\n`));
42
+ }
43
+ }
44
+ catch (error) {
45
+ printCatchError(outputJson, error);
46
+ }
47
+ });
48
+ return command;
49
+ }
50
+ //# sourceMappingURL=follow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/topics/follow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,UAAU,4BAA4B;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO;SACJ,WAAW,CAAC,6BAA6B,CAAC;SAC1C,QAAQ,CAAC,YAAY,EAAE,iDAAiD,CAAC;SACzE,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;SAChE,SAAS,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;SAClD,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC;SACrD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAgC,EAAE,EAAE;QACzE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;QAEvC,IAAI,CAAC;YACH,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzC,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/E,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACzC,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamTopicFollowedCommand(): Command;
3
+ //# sourceMappingURL=followed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"followed.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/topics/followed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAY5C,wBAAgB,8BAA8B,IAAI,OAAO,CA2CxD"}
@@ -0,0 +1,44 @@
1
+ import { Command, Option } from 'commander';
2
+ import { apiClient } from '../../../../core/api/client.js';
3
+ import { shouldUseJson } from '../../../../utils/output.js';
4
+ import { getTopicContext, printApiError, printCatchError, renderTopicRows, topicItems, withItems, } from './common.js';
5
+ export function createTeamTopicFollowedCommand() {
6
+ const command = new Command('followed');
7
+ command
8
+ .description('List topics followed by the current user (ęˆ‘å…³ę³Øēš„)')
9
+ .option('--page <number>', 'Page number', '1')
10
+ .option('--size <number>', 'Page size', '20')
11
+ .addOption(new Option('--env <string>').hideHelp())
12
+ .addOption(new Option('--tenant <string>').hideHelp())
13
+ .option('--json', 'Output as JSON');
14
+ command.action(async (options) => {
15
+ const { environment, tenant } = getTopicContext();
16
+ const outputJson = shouldUseJson(options);
17
+ const page = parseInt(options.page, 10) || 1;
18
+ const size = parseInt(options.size, 10) || 20;
19
+ try {
20
+ const response = await apiClient.listMyFollowedTeamTopics(environment, tenant, {
21
+ pageNo: page,
22
+ pageSize: size,
23
+ });
24
+ if (!response.success) {
25
+ printApiError(outputJson, response.error, 'Failed to list followed topics');
26
+ }
27
+ const data = response.data;
28
+ if (outputJson) {
29
+ console.log(JSON.stringify({ success: true, data: withItems(data) }, null, 2));
30
+ return;
31
+ }
32
+ renderTopicRows(topicItems(data), {
33
+ totalRows: data?.totalRows,
34
+ pageNo: data?.pageNo ?? page,
35
+ size,
36
+ });
37
+ }
38
+ catch (error) {
39
+ printCatchError(outputJson, error);
40
+ }
41
+ });
42
+ return command;
43
+ }
44
+ //# sourceMappingURL=followed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"followed.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/topics/followed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,8BAA8B;IAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO;SACJ,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,GAAG,CAAC;SAC7C,MAAM,CAAC,iBAAiB,EAAE,WAAW,EAAE,IAAI,CAAC;SAC5C,SAAS,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;SAClD,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC;SACrD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QACxD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE;gBAC7E,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAChC,SAAS,EAAE,IAAI,EAAE,SAAS;gBAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI;gBAC5B,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamTopicGetCommand(): Command;
3
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/topics/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAY5C,wBAAgB,yBAAyB,IAAI,OAAO,CAmDnD"}