polyv-live-cli 1.2.17 → 1.2.21

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 (240) hide show
  1. package/dist/commands/ai.commands.d.ts +12 -0
  2. package/dist/commands/ai.commands.d.ts.map +1 -0
  3. package/dist/commands/ai.commands.js +126 -0
  4. package/dist/commands/ai.commands.js.map +1 -0
  5. package/dist/commands/card-push.commands.d.ts +15 -0
  6. package/dist/commands/card-push.commands.d.ts.map +1 -0
  7. package/dist/commands/card-push.commands.js +257 -0
  8. package/dist/commands/card-push.commands.js.map +1 -0
  9. package/dist/commands/chat.commands.d.ts.map +1 -1
  10. package/dist/commands/chat.commands.js +152 -0
  11. package/dist/commands/chat.commands.js.map +1 -1
  12. package/dist/commands/checkin.commands.d.ts +4 -0
  13. package/dist/commands/checkin.commands.d.ts.map +1 -0
  14. package/dist/commands/checkin.commands.js +228 -0
  15. package/dist/commands/checkin.commands.js.map +1 -0
  16. package/dist/commands/donate.commands.d.ts +5 -0
  17. package/dist/commands/donate.commands.d.ts.map +1 -0
  18. package/dist/commands/donate.commands.js +177 -0
  19. package/dist/commands/donate.commands.js.map +1 -0
  20. package/dist/commands/index.d.ts +1 -0
  21. package/dist/commands/index.d.ts.map +1 -1
  22. package/dist/commands/index.js +3 -1
  23. package/dist/commands/index.js.map +1 -1
  24. package/dist/commands/lottery.commands.d.ts +5 -0
  25. package/dist/commands/lottery.commands.d.ts.map +1 -0
  26. package/dist/commands/lottery.commands.js +330 -0
  27. package/dist/commands/lottery.commands.js.map +1 -0
  28. package/dist/commands/platform-label.commands.d.ts +11 -0
  29. package/dist/commands/platform-label.commands.d.ts.map +1 -0
  30. package/dist/commands/platform-label.commands.js +173 -0
  31. package/dist/commands/platform-label.commands.js.map +1 -0
  32. package/dist/commands/platform.commands.d.ts +13 -0
  33. package/dist/commands/platform.commands.d.ts.map +1 -0
  34. package/dist/commands/platform.commands.js +366 -0
  35. package/dist/commands/platform.commands.js.map +1 -0
  36. package/dist/commands/promotion.commands.d.ts +12 -0
  37. package/dist/commands/promotion.commands.d.ts.map +1 -0
  38. package/dist/commands/promotion.commands.js +98 -0
  39. package/dist/commands/promotion.commands.js.map +1 -0
  40. package/dist/commands/qa.commands.d.ts +4 -0
  41. package/dist/commands/qa.commands.d.ts.map +1 -0
  42. package/dist/commands/qa.commands.js +159 -0
  43. package/dist/commands/qa.commands.js.map +1 -0
  44. package/dist/commands/questionnaire.commands.d.ts +4 -0
  45. package/dist/commands/questionnaire.commands.d.ts.map +1 -0
  46. package/dist/commands/questionnaire.commands.js +187 -0
  47. package/dist/commands/questionnaire.commands.js.map +1 -0
  48. package/dist/commands/transmit.commands.d.ts +12 -0
  49. package/dist/commands/transmit.commands.d.ts.map +1 -0
  50. package/dist/commands/transmit.commands.js +98 -0
  51. package/dist/commands/transmit.commands.js.map +1 -0
  52. package/dist/commands/viewer.commands.d.ts +5 -0
  53. package/dist/commands/viewer.commands.d.ts.map +1 -0
  54. package/dist/commands/viewer.commands.js +257 -0
  55. package/dist/commands/viewer.commands.js.map +1 -0
  56. package/dist/commands/watch-condition.commands.d.ts +5 -0
  57. package/dist/commands/watch-condition.commands.d.ts.map +1 -0
  58. package/dist/commands/watch-condition.commands.js +158 -0
  59. package/dist/commands/watch-condition.commands.js.map +1 -0
  60. package/dist/commands/whitelist.commands.d.ts +5 -0
  61. package/dist/commands/whitelist.commands.d.ts.map +1 -0
  62. package/dist/commands/whitelist.commands.js +216 -0
  63. package/dist/commands/whitelist.commands.js.map +1 -0
  64. package/dist/handlers/ai-digital-human.handler.d.ts +18 -0
  65. package/dist/handlers/ai-digital-human.handler.d.ts.map +1 -0
  66. package/dist/handlers/ai-digital-human.handler.js +134 -0
  67. package/dist/handlers/ai-digital-human.handler.js.map +1 -0
  68. package/dist/handlers/card-push.handler.d.ts +25 -0
  69. package/dist/handlers/card-push.handler.d.ts.map +1 -0
  70. package/dist/handlers/card-push.handler.js +287 -0
  71. package/dist/handlers/card-push.handler.js.map +1 -0
  72. package/dist/handlers/chat.handler.d.ts +17 -1
  73. package/dist/handlers/chat.handler.d.ts.map +1 -1
  74. package/dist/handlers/chat.handler.js +272 -0
  75. package/dist/handlers/chat.handler.js.map +1 -1
  76. package/dist/handlers/checkin.handler.d.ts +22 -0
  77. package/dist/handlers/checkin.handler.d.ts.map +1 -0
  78. package/dist/handlers/checkin.handler.js +261 -0
  79. package/dist/handlers/checkin.handler.js.map +1 -0
  80. package/dist/handlers/donate.handler.d.ts +18 -0
  81. package/dist/handlers/donate.handler.d.ts.map +1 -0
  82. package/dist/handlers/donate.handler.js +221 -0
  83. package/dist/handlers/donate.handler.js.map +1 -0
  84. package/dist/handlers/lottery.handler.d.ts +29 -0
  85. package/dist/handlers/lottery.handler.d.ts.map +1 -0
  86. package/dist/handlers/lottery.handler.js +386 -0
  87. package/dist/handlers/lottery.handler.js.map +1 -0
  88. package/dist/handlers/platform-label.handler.d.ts +18 -0
  89. package/dist/handlers/platform-label.handler.d.ts.map +1 -0
  90. package/dist/handlers/platform-label.handler.js +113 -0
  91. package/dist/handlers/platform-label.handler.js.map +1 -0
  92. package/dist/handlers/platform.handler.d.ts +24 -0
  93. package/dist/handlers/platform.handler.d.ts.map +1 -0
  94. package/dist/handlers/platform.handler.js +302 -0
  95. package/dist/handlers/platform.handler.js.map +1 -0
  96. package/dist/handlers/promotion.handler.d.ts +16 -0
  97. package/dist/handlers/promotion.handler.d.ts.map +1 -0
  98. package/dist/handlers/promotion.handler.js +103 -0
  99. package/dist/handlers/promotion.handler.js.map +1 -0
  100. package/dist/handlers/qa-questionnaire.handler.d.ts +27 -0
  101. package/dist/handlers/qa-questionnaire.handler.d.ts.map +1 -0
  102. package/dist/handlers/qa-questionnaire.handler.js +386 -0
  103. package/dist/handlers/qa-questionnaire.handler.js.map +1 -0
  104. package/dist/handlers/transmit.handler.d.ts +15 -0
  105. package/dist/handlers/transmit.handler.d.ts.map +1 -0
  106. package/dist/handlers/transmit.handler.js +86 -0
  107. package/dist/handlers/transmit.handler.js.map +1 -0
  108. package/dist/handlers/viewer.handler.d.ts +23 -0
  109. package/dist/handlers/viewer.handler.d.ts.map +1 -0
  110. package/dist/handlers/viewer.handler.js +322 -0
  111. package/dist/handlers/viewer.handler.js.map +1 -0
  112. package/dist/handlers/watch-condition.handler.d.ts +18 -0
  113. package/dist/handlers/watch-condition.handler.d.ts.map +1 -0
  114. package/dist/handlers/watch-condition.handler.js +178 -0
  115. package/dist/handlers/watch-condition.handler.js.map +1 -0
  116. package/dist/handlers/whitelist.handler.d.ts +20 -0
  117. package/dist/handlers/whitelist.handler.d.ts.map +1 -0
  118. package/dist/handlers/whitelist.handler.js +241 -0
  119. package/dist/handlers/whitelist.handler.js.map +1 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +30 -4
  122. package/dist/index.js.map +1 -1
  123. package/dist/services/ai-digital-human-service.d.ts +10 -0
  124. package/dist/services/ai-digital-human-service.d.ts.map +1 -0
  125. package/dist/services/ai-digital-human-service.js +64 -0
  126. package/dist/services/ai-digital-human-service.js.map +1 -0
  127. package/dist/services/card-push-service.d.ts +16 -0
  128. package/dist/services/card-push-service.d.ts.map +1 -0
  129. package/dist/services/card-push-service.js +153 -0
  130. package/dist/services/card-push-service.js.map +1 -0
  131. package/dist/services/chat.service.sdk.d.ts +39 -1
  132. package/dist/services/chat.service.sdk.d.ts.map +1 -1
  133. package/dist/services/chat.service.sdk.js +60 -0
  134. package/dist/services/chat.service.sdk.js.map +1 -1
  135. package/dist/services/checkin-service.d.ts +14 -0
  136. package/dist/services/checkin-service.d.ts.map +1 -0
  137. package/dist/services/checkin-service.js +89 -0
  138. package/dist/services/checkin-service.js.map +1 -0
  139. package/dist/services/donate-service.d.ts +12 -0
  140. package/dist/services/donate-service.d.ts.map +1 -0
  141. package/dist/services/donate-service.js +59 -0
  142. package/dist/services/donate-service.js.map +1 -0
  143. package/dist/services/lottery-service.d.ts +17 -0
  144. package/dist/services/lottery-service.d.ts.map +1 -0
  145. package/dist/services/lottery-service.js +84 -0
  146. package/dist/services/lottery-service.js.map +1 -0
  147. package/dist/services/platform-label-service.d.ts +21 -0
  148. package/dist/services/platform-label-service.d.ts.map +1 -0
  149. package/dist/services/platform-label-service.js +56 -0
  150. package/dist/services/platform-label-service.js.map +1 -0
  151. package/dist/services/platform-service.d.ts +47 -0
  152. package/dist/services/platform-service.d.ts.map +1 -0
  153. package/dist/services/platform-service.js +144 -0
  154. package/dist/services/platform-service.js.map +1 -0
  155. package/dist/services/promotion-service.d.ts +12 -0
  156. package/dist/services/promotion-service.d.ts.map +1 -0
  157. package/dist/services/promotion-service.js +54 -0
  158. package/dist/services/promotion-service.js.map +1 -0
  159. package/dist/services/qa-questionnaire-service.d.ts +15 -0
  160. package/dist/services/qa-questionnaire-service.d.ts.map +1 -0
  161. package/dist/services/qa-questionnaire-service.js +102 -0
  162. package/dist/services/qa-questionnaire-service.js.map +1 -0
  163. package/dist/services/stream.service.sdk.d.ts.map +1 -1
  164. package/dist/services/stream.service.sdk.js +8 -12
  165. package/dist/services/stream.service.sdk.js.map +1 -1
  166. package/dist/services/transmit-service.d.ts +9 -0
  167. package/dist/services/transmit-service.d.ts.map +1 -0
  168. package/dist/services/transmit-service.js +45 -0
  169. package/dist/services/transmit-service.js.map +1 -0
  170. package/dist/services/viewer-service.d.ts +29 -0
  171. package/dist/services/viewer-service.d.ts.map +1 -0
  172. package/dist/services/viewer-service.js +106 -0
  173. package/dist/services/viewer-service.js.map +1 -0
  174. package/dist/services/watch-condition-service.d.ts +16 -0
  175. package/dist/services/watch-condition-service.d.ts.map +1 -0
  176. package/dist/services/watch-condition-service.js +38 -0
  177. package/dist/services/watch-condition-service.js.map +1 -0
  178. package/dist/services/whitelist-service.d.ts +50 -0
  179. package/dist/services/whitelist-service.d.ts.map +1 -0
  180. package/dist/services/whitelist-service.js +56 -0
  181. package/dist/services/whitelist-service.js.map +1 -0
  182. package/dist/types/ai-digital-human.d.ts +49 -0
  183. package/dist/types/ai-digital-human.d.ts.map +1 -0
  184. package/dist/types/ai-digital-human.js +3 -0
  185. package/dist/types/ai-digital-human.js.map +1 -0
  186. package/dist/types/card-push.d.ts +151 -0
  187. package/dist/types/card-push.d.ts.map +1 -0
  188. package/dist/types/card-push.js +3 -0
  189. package/dist/types/card-push.js.map +1 -0
  190. package/dist/types/chat.d.ts +35 -0
  191. package/dist/types/chat.d.ts.map +1 -1
  192. package/dist/types/checkin.d.ts +57 -0
  193. package/dist/types/checkin.d.ts.map +1 -0
  194. package/dist/types/checkin.js +3 -0
  195. package/dist/types/checkin.js.map +1 -0
  196. package/dist/types/donate.d.ts +92 -0
  197. package/dist/types/donate.d.ts.map +1 -0
  198. package/dist/types/donate.js +3 -0
  199. package/dist/types/donate.js.map +1 -0
  200. package/dist/types/index.d.ts +2 -0
  201. package/dist/types/index.d.ts.map +1 -1
  202. package/dist/types/index.js +2 -0
  203. package/dist/types/index.js.map +1 -1
  204. package/dist/types/lottery.d.ts +110 -0
  205. package/dist/types/lottery.d.ts.map +1 -0
  206. package/dist/types/lottery.js +3 -0
  207. package/dist/types/lottery.js.map +1 -0
  208. package/dist/types/platform-label.d.ts +29 -0
  209. package/dist/types/platform-label.d.ts.map +1 -0
  210. package/dist/types/platform-label.js +3 -0
  211. package/dist/types/platform-label.js.map +1 -0
  212. package/dist/types/platform.d.ts +44 -0
  213. package/dist/types/platform.d.ts.map +1 -0
  214. package/dist/types/platform.js +11 -0
  215. package/dist/types/platform.js.map +1 -0
  216. package/dist/types/promotion.d.ts +31 -0
  217. package/dist/types/promotion.d.ts.map +1 -0
  218. package/dist/types/promotion.js +3 -0
  219. package/dist/types/promotion.js.map +1 -0
  220. package/dist/types/qa.d.ts +90 -0
  221. package/dist/types/qa.d.ts.map +1 -0
  222. package/dist/types/qa.js +3 -0
  223. package/dist/types/qa.js.map +1 -0
  224. package/dist/types/transmit.d.ts +40 -0
  225. package/dist/types/transmit.d.ts.map +1 -0
  226. package/dist/types/transmit.js +3 -0
  227. package/dist/types/transmit.js.map +1 -0
  228. package/dist/types/viewer.d.ts +36 -0
  229. package/dist/types/viewer.d.ts.map +1 -0
  230. package/dist/types/viewer.js +3 -0
  231. package/dist/types/viewer.js.map +1 -0
  232. package/dist/types/watch-condition.d.ts +49 -0
  233. package/dist/types/watch-condition.d.ts.map +1 -0
  234. package/dist/types/watch-condition.js +18 -0
  235. package/dist/types/watch-condition.js.map +1 -0
  236. package/dist/types/whitelist.d.ts +36 -0
  237. package/dist/types/whitelist.d.ts.map +1 -0
  238. package/dist/types/whitelist.js +3 -0
  239. package/dist/types/whitelist.js.map +1 -0
  240. package/package.json +4 -4
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateOutputFormat = validateOutputFormat;
4
+ exports.registerLotteryCommands = registerLotteryCommands;
5
+ const lottery_handler_1 = require("../handlers/lottery.handler");
6
+ const manager_1 = require("../config/manager");
7
+ const auth_adapter_1 = require("../config/auth-adapter");
8
+ const errors_1 = require("../utils/errors");
9
+ function validateOutputFormat(value) {
10
+ if (!['table', 'json'].includes(value)) {
11
+ throw new Error('Output format must be either "table" or "json"');
12
+ }
13
+ return value;
14
+ }
15
+ function registerLotteryCommands(program) {
16
+ const lotteryCmd = program.command('lottery');
17
+ lotteryCmd.description('Manage live streaming lottery interactions');
18
+ const createCmd = lotteryCmd
19
+ .command('create')
20
+ .description('Create a lottery activity')
21
+ .requiredOption('-c, --channel-id <id>', 'channel ID')
22
+ .requiredOption('--name <name>', 'lottery activity name')
23
+ .requiredOption('--type <type>', 'lottery condition type (none|invite|duration|comment|question)')
24
+ .requiredOption('--amount <number>', 'number of winners', parseInt)
25
+ .requiredOption('--prize-name <name>', 'prize name')
26
+ .option('--receive-info <json>', 'receive info JSON string')
27
+ .option('--duration <seconds>', 'duration in seconds (for invite/duration types)', parseInt)
28
+ .option('--invite-num <number>', 'number of invites required (for invite type)', parseInt)
29
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
30
+ .action(async (options) => {
31
+ try {
32
+ const parentOptions = program.opts();
33
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
34
+ const lotteryHandler = new lottery_handler_1.LotteryHandler(authConfig, serviceConfig);
35
+ await lotteryHandler.createLottery({
36
+ channelId: options.channelId,
37
+ name: options.name,
38
+ type: options.type,
39
+ amount: options.amount,
40
+ prizeName: options.prizeName,
41
+ receiveInfo: options.receiveInfo,
42
+ duration: options.duration,
43
+ inviteNum: options.inviteNum,
44
+ output: options.output,
45
+ });
46
+ }
47
+ catch (error) {
48
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
49
+ process.exit(1);
50
+ }
51
+ });
52
+ createCmd.addHelpText('after', `
53
+ Examples:
54
+ # Create unconditional lottery
55
+ $ polyv-live-cli lottery create -c "3151318" --name "New Year Lottery" --type none --amount 3 --prize-name "Gift Pack"
56
+
57
+ # Create invite lottery
58
+ $ polyv-live-cli lottery create -c "3151318" --name "Invite Lottery" --type invite --amount 5 --prize-name "Coupon" --duration 30 --invite-num 3
59
+
60
+ # Create duration lottery
61
+ $ polyv-live-cli lottery create -c "3151318" --name "Watch Duration Lottery" --type duration --amount 2 --prize-name "Member Card" --duration 10
62
+
63
+ Output Formats:
64
+ table - Formatted table output (default)
65
+ json - JSON format for programmatic use
66
+ `);
67
+ const listCmd = lotteryCmd
68
+ .command('list')
69
+ .description('List lottery activities')
70
+ .requiredOption('-c, --channel-id <id>', 'channel ID')
71
+ .option('--page <number>', 'page number', parseInt)
72
+ .option('--size <number>', 'page size', parseInt)
73
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
74
+ .action(async (options) => {
75
+ try {
76
+ const parentOptions = program.opts();
77
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
78
+ const lotteryHandler = new lottery_handler_1.LotteryHandler(authConfig, serviceConfig);
79
+ await lotteryHandler.listLottery({
80
+ channelId: options.channelId,
81
+ page: options.page,
82
+ size: options.size,
83
+ output: options.output,
84
+ });
85
+ }
86
+ catch (error) {
87
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
88
+ process.exit(1);
89
+ }
90
+ });
91
+ listCmd.addHelpText('after', `
92
+ Examples:
93
+ # List all lottery activities
94
+ $ polyv-live-cli lottery list -c "3151318"
95
+
96
+ # List with pagination
97
+ $ polyv-live-cli lottery list -c "3151318" --page 1 --size 20
98
+
99
+ # JSON output
100
+ $ polyv-live-cli lottery list -c "3151318" -o json
101
+
102
+ Output Formats:
103
+ table - Formatted table output (default)
104
+ json - JSON format for programmatic use
105
+ `);
106
+ const getCmd = lotteryCmd
107
+ .command('get')
108
+ .description('Get lottery activity details')
109
+ .requiredOption('-c, --channel-id <id>', 'channel ID')
110
+ .requiredOption('--id <id>', 'lottery activity ID')
111
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
112
+ .action(async (options) => {
113
+ try {
114
+ const parentOptions = program.opts();
115
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
116
+ const lotteryHandler = new lottery_handler_1.LotteryHandler(authConfig, serviceConfig);
117
+ await lotteryHandler.getLottery({
118
+ channelId: options.channelId,
119
+ id: options.id,
120
+ output: options.output,
121
+ });
122
+ }
123
+ catch (error) {
124
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
125
+ process.exit(1);
126
+ }
127
+ });
128
+ getCmd.addHelpText('after', `
129
+ Examples:
130
+ # Get lottery activity details
131
+ $ polyv-live-cli lottery get -c "3151318" --id 20521
132
+
133
+ # JSON output
134
+ $ polyv-live-cli lottery get -c "3151318" --id 20521 -o json
135
+
136
+ Output Formats:
137
+ table - Formatted table output (default)
138
+ json - JSON format for programmatic use
139
+ `);
140
+ const updateCmd = lotteryCmd
141
+ .command('update')
142
+ .description('Update lottery activity')
143
+ .requiredOption('-c, --channel-id <id>', 'channel ID')
144
+ .requiredOption('--id <id>', 'lottery activity ID')
145
+ .option('--name <name>', 'new lottery activity name')
146
+ .option('--amount <number>', 'new number of winners', parseInt)
147
+ .option('--prize-name <name>', 'new prize name')
148
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
149
+ .action(async (options) => {
150
+ try {
151
+ const parentOptions = program.opts();
152
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
153
+ const lotteryHandler = new lottery_handler_1.LotteryHandler(authConfig, serviceConfig);
154
+ await lotteryHandler.updateLottery({
155
+ channelId: options.channelId,
156
+ id: options.id,
157
+ name: options.name,
158
+ amount: options.amount,
159
+ prizeName: options.prizeName,
160
+ output: options.output,
161
+ });
162
+ }
163
+ catch (error) {
164
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
165
+ process.exit(1);
166
+ }
167
+ });
168
+ updateCmd.addHelpText('after', `
169
+ Examples:
170
+ # Update lottery activity
171
+ $ polyv-live-cli lottery update -c "3151318" --id 20521 --amount 5
172
+
173
+ # Update with new name and prize
174
+ $ polyv-live-cli lottery update -c "3151318" --id 20521 --name "Updated Lottery" --prize-name "New Prize"
175
+
176
+ Output Formats:
177
+ table - Formatted table output (default)
178
+ json - JSON format for programmatic use
179
+ `);
180
+ const deleteCmd = lotteryCmd
181
+ .command('delete')
182
+ .description('Delete lottery activity')
183
+ .requiredOption('-c, --channel-id <id>', 'channel ID')
184
+ .requiredOption('--id <id>', 'lottery activity ID')
185
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
186
+ .action(async (options) => {
187
+ try {
188
+ const parentOptions = program.opts();
189
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
190
+ const lotteryHandler = new lottery_handler_1.LotteryHandler(authConfig, serviceConfig);
191
+ await lotteryHandler.deleteLottery({
192
+ channelId: options.channelId,
193
+ id: options.id,
194
+ output: options.output,
195
+ });
196
+ }
197
+ catch (error) {
198
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
199
+ process.exit(1);
200
+ }
201
+ });
202
+ deleteCmd.addHelpText('after', `
203
+ Examples:
204
+ # Delete lottery activity
205
+ $ polyv-live-cli lottery delete -c "3151318" --id 20521
206
+
207
+ Output Formats:
208
+ table - Formatted table output (default)
209
+ json - JSON format for programmatic use
210
+ `);
211
+ const winnersCmd = lotteryCmd
212
+ .command('winners')
213
+ .description('Get winner list for a lottery')
214
+ .requiredOption('-c, --channel-id <id>', 'channel ID')
215
+ .requiredOption('--lottery-id <id>', 'lottery ID')
216
+ .option('--page <number>', 'page number', parseInt)
217
+ .option('--limit <number>', 'items per page', parseInt)
218
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
219
+ .action(async (options) => {
220
+ try {
221
+ const parentOptions = program.opts();
222
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
223
+ const lotteryHandler = new lottery_handler_1.LotteryHandler(authConfig, serviceConfig);
224
+ await lotteryHandler.getWinners({
225
+ channelId: options.channelId,
226
+ lotteryId: options.lotteryId,
227
+ page: options.page,
228
+ limit: options.limit,
229
+ output: options.output,
230
+ });
231
+ }
232
+ catch (error) {
233
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
234
+ process.exit(1);
235
+ }
236
+ });
237
+ winnersCmd.addHelpText('after', `
238
+ Examples:
239
+ # Get winner list
240
+ $ polyv-live-cli lottery winners -c "3151318" --lottery-id "fv3mao43u6"
241
+
242
+ # Get with pagination
243
+ $ polyv-live-cli lottery winners -c "3151318" --lottery-id "fv3mao43u6" --page 1 --limit 20
244
+
245
+ Output Formats:
246
+ table - Formatted table output (default)
247
+ json - JSON format for programmatic use
248
+ `);
249
+ const recordsCmd = lotteryCmd
250
+ .command('records')
251
+ .description('Get lottery records (legacy V3 API)')
252
+ .requiredOption('-c, --channel-id <id>', 'channel ID')
253
+ .option('--start-time <timestamp>', 'start time (timestamp in milliseconds)', parseInt)
254
+ .option('--end-time <timestamp>', 'end time (timestamp in milliseconds)', parseInt)
255
+ .option('--session-id <id>', 'session ID filter')
256
+ .option('--page <number>', 'page number', parseInt)
257
+ .option('--limit <number>', 'items per page', parseInt)
258
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
259
+ .action(async (options) => {
260
+ try {
261
+ const parentOptions = program.opts();
262
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
263
+ const lotteryHandler = new lottery_handler_1.LotteryHandler(authConfig, serviceConfig);
264
+ await lotteryHandler.getRecords({
265
+ channelId: options.channelId,
266
+ startTime: options.startTime,
267
+ endTime: options.endTime,
268
+ sessionId: options.sessionId,
269
+ page: options.page,
270
+ limit: options.limit,
271
+ output: options.output,
272
+ });
273
+ }
274
+ catch (error) {
275
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
276
+ process.exit(1);
277
+ }
278
+ });
279
+ recordsCmd.addHelpText('after', `
280
+ Examples:
281
+ # Get lottery records
282
+ $ polyv-live-cli lottery records -c "3151318"
283
+
284
+ # Get records with time range
285
+ $ polyv-live-cli lottery records -c "3151318" --start-time 1615772426000 --end-time 1615773566000
286
+
287
+ # Get records by session ID
288
+ $ polyv-live-cli lottery records -c "3151318" --session-id "fwly13xczv"
289
+
290
+ Output Formats:
291
+ table - Formatted table output (default)
292
+ json - JSON format for programmatic use
293
+ `);
294
+ }
295
+ async function loadAuthAndServiceConfig(parentOptions) {
296
+ const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
297
+ if (!authResult) {
298
+ throw new Error(auth_adapter_1.authAdapter.getStatusMessage(parentOptions));
299
+ }
300
+ let configResult;
301
+ try {
302
+ configResult = await manager_1.configManager.load({
303
+ cliOptions: parentOptions,
304
+ });
305
+ }
306
+ catch (error) {
307
+ if (error instanceof Error && error.message.includes('Auth configuration is incomplete')) {
308
+ configResult = {
309
+ config: {
310
+ baseUrl: 'https://api.polyv.net',
311
+ timeout: 30000,
312
+ debug: false
313
+ }
314
+ };
315
+ }
316
+ else {
317
+ throw error;
318
+ }
319
+ }
320
+ const serviceConfig = {
321
+ baseUrl: configResult.config.baseUrl,
322
+ timeout: configResult.config.timeout,
323
+ debug: configResult.config.debug,
324
+ };
325
+ return {
326
+ authConfig: authResult.config,
327
+ serviceConfig,
328
+ };
329
+ }
330
+ //# sourceMappingURL=lottery.commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lottery.commands.js","sourceRoot":"","sources":["../../src/commands/lottery.commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Command } from 'commander';
2
+ import { AuthConfig } from '../types/auth';
3
+ import { PlatformLabelServiceConfig } from '../types/platform-label';
4
+ export declare function loadAuthAndServiceConfig(parentOptions: Record<string, unknown>): Promise<{
5
+ authConfig: AuthConfig;
6
+ serviceConfig: PlatformLabelServiceConfig;
7
+ isVerbose: boolean;
8
+ }>;
9
+ export declare function validateOutputFormat(value: string): 'table' | 'json';
10
+ export declare function registerPlatformLabelCommands(program: Command): void;
11
+ //# sourceMappingURL=platform-label.commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-label.commands.d.ts","sourceRoot":"","sources":["../../src/commands/platform-label.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AASrE,wBAAsB,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC9F,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,0BAA0B,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAgDD;AAQD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAKpE;AAMD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyJpE"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadAuthAndServiceConfig = loadAuthAndServiceConfig;
4
+ exports.validateOutputFormat = validateOutputFormat;
5
+ exports.registerPlatformLabelCommands = registerPlatformLabelCommands;
6
+ const platform_label_handler_1 = require("../handlers/platform-label.handler");
7
+ const manager_1 = require("../config/manager");
8
+ const auth_adapter_1 = require("../config/auth-adapter");
9
+ const errors_1 = require("../utils/errors");
10
+ const DEFAULT_TIMEOUT_MS = 30000;
11
+ async function loadAuthAndServiceConfig(parentOptions) {
12
+ const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
13
+ if (!authResult) {
14
+ throw new Error(auth_adapter_1.authAdapter.getStatusMessage(parentOptions));
15
+ }
16
+ let configResult;
17
+ try {
18
+ configResult = await manager_1.configManager.load({
19
+ cliOptions: parentOptions,
20
+ });
21
+ }
22
+ catch (error) {
23
+ if (error instanceof Error && error.message.includes('Auth configuration is incomplete')) {
24
+ configResult = {
25
+ config: {
26
+ baseUrl: 'https://api.polyv.net',
27
+ timeout: DEFAULT_TIMEOUT_MS,
28
+ debug: false,
29
+ },
30
+ };
31
+ }
32
+ else {
33
+ throw error;
34
+ }
35
+ }
36
+ const serviceConfig = {
37
+ baseUrl: configResult.config.baseUrl,
38
+ timeout: configResult.config.timeout,
39
+ debug: configResult.config.debug,
40
+ };
41
+ const isVerbose = !!parentOptions['verbose'];
42
+ if (isVerbose) {
43
+ console.log(`🔐 Authentication Source: ${authResult.source}`);
44
+ if (authResult.accountName) {
45
+ console.log(`👤 Account: ${authResult.accountName}`);
46
+ }
47
+ console.log('');
48
+ }
49
+ return {
50
+ authConfig: authResult.config,
51
+ serviceConfig,
52
+ isVerbose,
53
+ };
54
+ }
55
+ function validateOutputFormat(value) {
56
+ if (!['table', 'json'].includes(value)) {
57
+ throw new Error('Invalid output format. Must be "table" or "json"');
58
+ }
59
+ return value;
60
+ }
61
+ function registerPlatformLabelCommands(program) {
62
+ const platformCmd = program.commands.find((cmd) => cmd.name() === 'platform');
63
+ if (!platformCmd) {
64
+ throw new Error('Platform command not found. Platform label commands must be registered after platform commands.');
65
+ }
66
+ const labelCmd = platformCmd.command('label');
67
+ labelCmd.description('Label management (标签管理)');
68
+ const listCmd = labelCmd
69
+ .command('list')
70
+ .description('List viewer labels (获取标签列表)')
71
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
72
+ .action(async (options) => {
73
+ try {
74
+ const parentOptions = program.opts();
75
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
76
+ const handler = new platform_label_handler_1.PlatformLabelHandler(authConfig, serviceConfig);
77
+ await handler.listLabels({
78
+ output: options.output,
79
+ });
80
+ }
81
+ catch (error) {
82
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
83
+ process.exit(1);
84
+ }
85
+ });
86
+ listCmd.addHelpText('after', `
87
+ Examples:
88
+ $ polyv-live-cli platform label list
89
+ $ polyv-live-cli platform label list -o json
90
+
91
+ Output Formats:
92
+ table - Formatted table output (default)
93
+ json - JSON format for programmatic use
94
+ `);
95
+ const createCmd = labelCmd
96
+ .command('create')
97
+ .description('Create a viewer label (创建标签)')
98
+ .requiredOption('--name <labelName>', 'label name (标签名称)')
99
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
100
+ .action(async (options) => {
101
+ try {
102
+ const parentOptions = program.opts();
103
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
104
+ const handler = new platform_label_handler_1.PlatformLabelHandler(authConfig, serviceConfig);
105
+ await handler.createLabel({
106
+ labelName: options.name,
107
+ output: options.output,
108
+ });
109
+ }
110
+ catch (error) {
111
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
112
+ process.exit(1);
113
+ }
114
+ });
115
+ createCmd.addHelpText('after', `
116
+ Examples:
117
+ $ polyv-live-cli platform label create --name "VIP用户"
118
+ $ polyv-live-cli platform label create --name "Staff" -o json
119
+ `);
120
+ const updateCmd = labelCmd
121
+ .command('update')
122
+ .description('Update a viewer label (更新标签)')
123
+ .requiredOption('--id <labelId>', 'label ID (标签ID)', (value) => parseInt(value, 10))
124
+ .requiredOption('--name <labelName>', 'label name (标签名称)')
125
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
126
+ .action(async (options) => {
127
+ try {
128
+ const parentOptions = program.opts();
129
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
130
+ const handler = new platform_label_handler_1.PlatformLabelHandler(authConfig, serviceConfig);
131
+ await handler.updateLabel({
132
+ labelId: options.id,
133
+ labelName: options.name,
134
+ output: options.output,
135
+ });
136
+ }
137
+ catch (error) {
138
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
139
+ process.exit(1);
140
+ }
141
+ });
142
+ updateCmd.addHelpText('after', `
143
+ Examples:
144
+ $ polyv-live-cli platform label update --id 1 --name "VIP会员"
145
+ $ polyv-live-cli platform label update --id 2 --name "New Name" -o json
146
+ `);
147
+ const deleteCmd = labelCmd
148
+ .command('delete')
149
+ .description('Delete a viewer label (删除标签)')
150
+ .requiredOption('--id <labelId>', 'label ID (标签ID)', (value) => parseInt(value, 10))
151
+ .option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
152
+ .action(async (options) => {
153
+ try {
154
+ const parentOptions = program.opts();
155
+ const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
156
+ const handler = new platform_label_handler_1.PlatformLabelHandler(authConfig, serviceConfig);
157
+ await handler.deleteLabel({
158
+ labelId: options.id,
159
+ output: options.output,
160
+ });
161
+ }
162
+ catch (error) {
163
+ (0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
164
+ process.exit(1);
165
+ }
166
+ });
167
+ deleteCmd.addHelpText('after', `
168
+ Examples:
169
+ $ polyv-live-cli platform label delete --id 1
170
+ $ polyv-live-cli platform label delete --id 2 -o json
171
+ `);
172
+ }
173
+ //# sourceMappingURL=platform-label.commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-label.commands.js","sourceRoot":"","sources":["../../src/commands/platform-label.commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Command } from 'commander';
2
+ import { AuthConfig } from '../types/auth';
3
+ import { PlatformServiceConfig } from '../types/platform';
4
+ export declare function loadAuthAndServiceConfig(parentOptions: Record<string, unknown>): Promise<{
5
+ authConfig: AuthConfig;
6
+ serviceConfig: PlatformServiceConfig;
7
+ isVerbose: boolean;
8
+ }>;
9
+ export declare function validateEnabledValue(value: string): 'Y' | 'N';
10
+ export declare function validateOutputFormat(value: string): 'table' | 'json';
11
+ export declare function validateUrlFormat(value: string): string;
12
+ export declare function registerPlatformCommands(program: Command): void;
13
+ //# sourceMappingURL=platform.commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.commands.d.ts","sourceRoot":"","sources":["../../src/commands/platform.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAQL,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAS3B,wBAAsB,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC9F,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,qBAAqB,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAgDD;AAQD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,CAK7D;AAQD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAKpE;AAQD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD;AAMD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0X/D"}