polyv-live-cli 1.1.13 β 1.2.7
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 +1 -1
- package/dist/commands/account.commands.js +12 -12
- package/dist/commands/account.commands.js.map +1 -1
- package/dist/commands/channel.commands.js +31 -31
- package/dist/commands/coupon.commands.d.ts +8 -0
- package/dist/commands/coupon.commands.d.ts.map +1 -0
- package/dist/commands/coupon.commands.js +258 -0
- package/dist/commands/coupon.commands.js.map +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/product.commands.d.ts +10 -0
- package/dist/commands/product.commands.d.ts.map +1 -0
- package/dist/commands/product.commands.js +398 -0
- package/dist/commands/product.commands.js.map +1 -0
- package/dist/commands/setup.commands.d.ts +4 -0
- package/dist/commands/setup.commands.d.ts.map +1 -0
- package/dist/commands/setup.commands.js +132 -0
- package/dist/commands/setup.commands.js.map +1 -0
- package/dist/commands/stream.commands.d.ts.map +1 -1
- package/dist/commands/stream.commands.js +31 -39
- package/dist/commands/stream.commands.js.map +1 -1
- package/dist/commands/use.commands.js +7 -7
- package/dist/commands/use.commands.js.map +1 -1
- package/dist/config/account-config.js +1 -1
- package/dist/config/account-config.js.map +1 -1
- package/dist/config/account-encryption.js +2 -2
- package/dist/config/account-encryption.js.map +1 -1
- package/dist/config/auth-source-manager.js +2 -2
- package/dist/config/auth-source-manager.js.map +1 -1
- package/dist/config/config-io.js +4 -4
- package/dist/config/config-io.js.map +1 -1
- package/dist/config/config-manager.js +1 -1
- package/dist/config/config-manager.js.map +1 -1
- package/dist/config/config-recovery-manager.js +4 -4
- package/dist/config/config-recovery-manager.js.map +1 -1
- package/dist/config/config-version-manager.js +1 -1
- package/dist/config/config-version-manager.js.map +1 -1
- package/dist/config/file-permission-manager.js +2 -2
- package/dist/config/file-permission-manager.js.map +1 -1
- package/dist/config/layout-manager.js +1 -1
- package/dist/config/layout-manager.js.map +1 -1
- package/dist/config/secure-account-manager.js +1 -1
- package/dist/config/secure-account-manager.js.map +1 -1
- package/dist/config/session-state.js +5 -5
- package/dist/config/session-state.js.map +1 -1
- package/dist/config/theme-manager.js +1 -1
- package/dist/config/theme-manager.js.map +1 -1
- package/dist/config/validator.js +1 -1
- package/dist/config/validator.js.map +1 -1
- package/dist/handlers/channel.handler.d.ts.map +1 -1
- package/dist/handlers/channel.handler.js +2 -2
- package/dist/handlers/channel.handler.js.map +1 -1
- package/dist/handlers/coupon.handler.d.ts +54 -0
- package/dist/handlers/coupon.handler.d.ts.map +1 -0
- package/dist/handlers/coupon.handler.js +258 -0
- package/dist/handlers/coupon.handler.js.map +1 -0
- package/dist/handlers/product.handler.d.ts +28 -0
- package/dist/handlers/product.handler.d.ts.map +1 -0
- package/dist/handlers/product.handler.js +182 -0
- package/dist/handlers/product.handler.js.map +1 -0
- package/dist/handlers/setup.handler.d.ts +30 -0
- package/dist/handlers/setup.handler.d.ts.map +1 -0
- package/dist/handlers/setup.handler.js +160 -0
- package/dist/handlers/setup.handler.js.map +1 -0
- package/dist/handlers/stream.handler.d.ts +3 -2
- package/dist/handlers/stream.handler.d.ts.map +1 -1
- package/dist/handlers/stream.handler.js +3 -2
- package/dist/handlers/stream.handler.js.map +1 -1
- package/dist/handlers/use.handler.js +2 -2
- package/dist/handlers/use.handler.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/sdk/client.d.ts +8 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +37 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/index.d.ts +3 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +12 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/services/{channel.service.d.ts β channel.service.sdk.d.ts} +6 -8
- package/dist/services/channel.service.sdk.d.ts.map +1 -0
- package/dist/services/channel.service.sdk.js +265 -0
- package/dist/services/channel.service.sdk.js.map +1 -0
- package/dist/services/index.d.ts +4 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +7 -5
- package/dist/services/index.js.map +1 -1
- package/dist/services/product.service.sdk.d.ts +22 -0
- package/dist/services/product.service.sdk.d.ts.map +1 -0
- package/dist/services/product.service.sdk.js +242 -0
- package/dist/services/product.service.sdk.js.map +1 -0
- package/dist/services/{stream.service.d.ts β stream.service.sdk.d.ts} +4 -12
- package/dist/services/stream.service.sdk.d.ts.map +1 -0
- package/dist/services/stream.service.sdk.js +265 -0
- package/dist/services/stream.service.sdk.js.map +1 -0
- package/dist/setup/output-renderer.d.ts +39 -0
- package/dist/setup/output-renderer.d.ts.map +1 -0
- package/dist/setup/output-renderer.js +151 -0
- package/dist/setup/output-renderer.js.map +1 -0
- package/dist/setup/resource-handlers.d.ts +13 -0
- package/dist/setup/resource-handlers.d.ts.map +1 -0
- package/dist/setup/resource-handlers.js +136 -0
- package/dist/setup/resource-handlers.js.map +1 -0
- package/dist/setup/scene-config-loader.d.ts +52 -0
- package/dist/setup/scene-config-loader.d.ts.map +1 -0
- package/dist/setup/scene-config-loader.js +275 -0
- package/dist/setup/scene-config-loader.js.map +1 -0
- package/dist/setup/scene-executor.d.ts +44 -0
- package/dist/setup/scene-executor.d.ts.map +1 -0
- package/dist/setup/scene-executor.js +162 -0
- package/dist/setup/scene-executor.js.map +1 -0
- package/dist/setup/variable-resolver.d.ts +16 -0
- package/dist/setup/variable-resolver.d.ts.map +1 -0
- package/dist/setup/variable-resolver.js +176 -0
- package/dist/setup/variable-resolver.js.map +1 -0
- package/dist/setup-scenes/e-commerce.yaml +123 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/product.d.ts +135 -0
- package/dist/types/product.d.ts.map +1 -0
- package/dist/types/product.js +3 -0
- package/dist/types/product.js.map +1 -0
- package/dist/utils/auth-diagnostics.js +2 -2
- package/dist/utils/auth-diagnostics.js.map +1 -1
- package/dist/utils/data-manager.d.ts +3 -3
- package/dist/utils/data-manager.d.ts.map +1 -1
- package/dist/utils/data-manager.js.map +1 -1
- package/package.json +33 -32
- package/dist/services/channel.service.d.ts.map +0 -1
- package/dist/services/channel.service.js +0 -672
- package/dist/services/channel.service.js.map +0 -1
- package/dist/services/stream.service.d.ts.map +0 -1
- package/dist/services/stream.service.js +0 -489
- package/dist/services/stream.service.js.map +0 -1
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseInteger = parseInteger;
|
|
4
|
+
exports.validateSize = validateSize;
|
|
5
|
+
exports.validateOutputFormat = validateOutputFormat;
|
|
6
|
+
exports.validateProductType = validateProductType;
|
|
7
|
+
exports.validateProductStatus = validateProductStatus;
|
|
8
|
+
exports.validateLinkType = validateLinkType;
|
|
9
|
+
exports.validatePrice = validatePrice;
|
|
10
|
+
exports.registerProductCommands = registerProductCommands;
|
|
11
|
+
const product_handler_1 = require("../handlers/product.handler");
|
|
12
|
+
const manager_1 = require("../config/manager");
|
|
13
|
+
const auth_adapter_1 = require("../config/auth-adapter");
|
|
14
|
+
const errors_1 = require("../utils/errors");
|
|
15
|
+
async function loadAuthAndServiceConfig(parentOptions) {
|
|
16
|
+
const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
|
|
17
|
+
if (!authResult) {
|
|
18
|
+
throw new Error(auth_adapter_1.authAdapter.getStatusMessage(parentOptions));
|
|
19
|
+
}
|
|
20
|
+
let configResult;
|
|
21
|
+
try {
|
|
22
|
+
configResult = await manager_1.configManager.load({
|
|
23
|
+
cliOptions: parentOptions,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (error instanceof Error && error.message.includes('Auth configuration is incomplete')) {
|
|
28
|
+
configResult = {
|
|
29
|
+
config: {
|
|
30
|
+
baseUrl: 'https://api.polyv.net',
|
|
31
|
+
timeout: 30000,
|
|
32
|
+
debug: false
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const serviceConfig = {
|
|
41
|
+
baseUrl: configResult.config.baseUrl,
|
|
42
|
+
timeout: configResult.config.timeout,
|
|
43
|
+
debug: configResult.config.debug
|
|
44
|
+
};
|
|
45
|
+
const isVerbose = !!parentOptions.verbose;
|
|
46
|
+
if (isVerbose) {
|
|
47
|
+
console.log(`π Authentication Source: ${authResult.source}`);
|
|
48
|
+
if (authResult.accountName) {
|
|
49
|
+
console.log(`π€ Account: ${authResult.accountName}`);
|
|
50
|
+
}
|
|
51
|
+
console.log('');
|
|
52
|
+
}
|
|
53
|
+
const result = {
|
|
54
|
+
authConfig: authResult.config,
|
|
55
|
+
serviceConfig,
|
|
56
|
+
isVerbose,
|
|
57
|
+
};
|
|
58
|
+
if (authResult.source) {
|
|
59
|
+
result.authSource = authResult.source;
|
|
60
|
+
}
|
|
61
|
+
if (authResult.accountName) {
|
|
62
|
+
result.accountName = authResult.accountName;
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
function parseInteger(value) {
|
|
67
|
+
const parsed = parseInt(value, 10);
|
|
68
|
+
if (isNaN(parsed)) {
|
|
69
|
+
throw new Error(`"${value}" is not a valid integer`);
|
|
70
|
+
}
|
|
71
|
+
return parsed;
|
|
72
|
+
}
|
|
73
|
+
function validateSize(value) {
|
|
74
|
+
const parsed = parseInteger(value);
|
|
75
|
+
if (parsed < 1 || parsed > 100) {
|
|
76
|
+
throw new Error('Size must be between 1 and 100');
|
|
77
|
+
}
|
|
78
|
+
return parsed;
|
|
79
|
+
}
|
|
80
|
+
function validateOutputFormat(value) {
|
|
81
|
+
if (!['table', 'json'].includes(value)) {
|
|
82
|
+
throw new Error('Output format must be either "table" or "json"');
|
|
83
|
+
}
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
function validateProductType(value) {
|
|
87
|
+
const validTypes = ['normal', 'finance', 'position'];
|
|
88
|
+
if (!validTypes.includes(value)) {
|
|
89
|
+
throw new Error('Product type must be one of: normal, finance, position');
|
|
90
|
+
}
|
|
91
|
+
return value;
|
|
92
|
+
}
|
|
93
|
+
function validateProductStatus(value) {
|
|
94
|
+
const parsed = parseInt(value, 10);
|
|
95
|
+
if (parsed !== 1 && parsed !== 2) {
|
|
96
|
+
throw new Error('Product status must be 1 (δΈζΆ) or 2 (δΈζΆ)');
|
|
97
|
+
}
|
|
98
|
+
return parsed;
|
|
99
|
+
}
|
|
100
|
+
function validateLinkType(value) {
|
|
101
|
+
const parsed = parseInt(value, 10);
|
|
102
|
+
if (parsed !== 10 && parsed !== 11) {
|
|
103
|
+
throw new Error('Link type must be 10 (ιη¨ιΎζ₯) or 11 (ε€εΉ³ε°ιΎζ₯)');
|
|
104
|
+
}
|
|
105
|
+
return parsed;
|
|
106
|
+
}
|
|
107
|
+
function validatePrice(value) {
|
|
108
|
+
const parsed = parseFloat(value);
|
|
109
|
+
if (isNaN(parsed)) {
|
|
110
|
+
throw new Error(`"${value}" is not a valid price`);
|
|
111
|
+
}
|
|
112
|
+
if (parsed < 0) {
|
|
113
|
+
throw new Error('Price cannot be negative');
|
|
114
|
+
}
|
|
115
|
+
return parsed;
|
|
116
|
+
}
|
|
117
|
+
function registerProductCommands(program) {
|
|
118
|
+
const productCmd = program.command('product');
|
|
119
|
+
productCmd.description('Manage live streaming channel products');
|
|
120
|
+
const listCmd = productCmd
|
|
121
|
+
.command('list')
|
|
122
|
+
.description('List channel products with pagination')
|
|
123
|
+
.option('-P, --page <number>', 'page number (optional, minimum 1, default 1)', parseInteger, 1)
|
|
124
|
+
.option('-s, --size <number>', 'items per page (optional, 1-100, default 20)', validateSize, 20)
|
|
125
|
+
.option('-c, --channel-id <channelId>', 'filter by specific channel ID (optional)')
|
|
126
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
127
|
+
.action(async (options) => {
|
|
128
|
+
try {
|
|
129
|
+
const parentOptions = program.opts();
|
|
130
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
131
|
+
const productHandler = new product_handler_1.ProductHandler(authConfig, serviceConfig);
|
|
132
|
+
const listOptions = {
|
|
133
|
+
page: options.page,
|
|
134
|
+
size: options.size,
|
|
135
|
+
channelId: options.channelId,
|
|
136
|
+
output: options.output
|
|
137
|
+
};
|
|
138
|
+
await productHandler.listProducts(listOptions);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
if (error instanceof Error && error.message.includes('Authentication')) {
|
|
142
|
+
const diagnostics = auth_adapter_1.authAdapter.getDiagnostics(program.opts());
|
|
143
|
+
console.error('\nπ Authentication Diagnostics:');
|
|
144
|
+
diagnostics.availableSources.forEach(source => {
|
|
145
|
+
const status = source.appId && source.appSecret ? 'β
' : 'β';
|
|
146
|
+
console.error(` ${status} ${source.metadata.source}: ${source.type}`);
|
|
147
|
+
});
|
|
148
|
+
if (diagnostics.errors.length > 0) {
|
|
149
|
+
console.error('\nβ Errors:');
|
|
150
|
+
diagnostics.errors.forEach(error => console.error(` - ${error}`));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
listCmd.addHelpText('after', `
|
|
158
|
+
Examples:
|
|
159
|
+
$ polyv-live-cli product list
|
|
160
|
+
$ polyv-live-cli product list -P 2 -s 10
|
|
161
|
+
$ polyv-live-cli product list -c "3151318"
|
|
162
|
+
$ polyv-live-cli product list -o json
|
|
163
|
+
|
|
164
|
+
Alternative (full parameter names):
|
|
165
|
+
$ polyv-live-cli product list --page 2 --size 10 --output json
|
|
166
|
+
$ polyv-live-cli product list --channel-id "3151318"
|
|
167
|
+
|
|
168
|
+
Pagination:
|
|
169
|
+
--page, -P Page number (minimum 1, default 1)
|
|
170
|
+
--size, -s Items per page (1-100, default 20)
|
|
171
|
+
|
|
172
|
+
Filtering:
|
|
173
|
+
--channel-id, -c Show products only from specific channel
|
|
174
|
+
|
|
175
|
+
Output Formats:
|
|
176
|
+
table - Formatted table output (default)
|
|
177
|
+
json - JSON format for programmatic use
|
|
178
|
+
|
|
179
|
+
Notes:
|
|
180
|
+
- Products are displayed with ID, channel, name, type, status, price and dates
|
|
181
|
+
- Use --channel-id to filter products for a specific channel
|
|
182
|
+
- All product prices are shown in Chinese Yuan (Β₯)
|
|
183
|
+
- If both original price and real price exist, both are displayed
|
|
184
|
+
`);
|
|
185
|
+
const addCmd = productCmd
|
|
186
|
+
.command('add')
|
|
187
|
+
.description('Add a new product to channel')
|
|
188
|
+
.requiredOption('-c, --channel-id <channelId>', 'channel ID')
|
|
189
|
+
.requiredOption('-n, --name <name>', 'product name')
|
|
190
|
+
.requiredOption('--status <status>', 'product status: 1 (on-shelf) | 2 (off-shelf)', validateProductStatus)
|
|
191
|
+
.requiredOption('--link-type <type>', 'link type: 10 (universal) | 11 (multi-platform)', validateLinkType)
|
|
192
|
+
.option('-t, --product-type <type>', 'product type: normal | finance | position (default: normal)', validateProductType, 'normal')
|
|
193
|
+
.option('--cover <url>', 'product cover URL')
|
|
194
|
+
.option('-l, --link <url>', 'universal link (required when link-type=10)')
|
|
195
|
+
.option('--pc-link <url>', 'PC link')
|
|
196
|
+
.option('--mobile-link <url>', 'mobile web link')
|
|
197
|
+
.option('--wx-miniprogram-link <url>', 'WeChat miniprogram link')
|
|
198
|
+
.option('--wx-miniprogram-original-id <id>', 'WeChat miniprogram original ID')
|
|
199
|
+
.option('--mobile-app-link <url>', 'mobile app link')
|
|
200
|
+
.option('--android-link <url>', 'Android native link')
|
|
201
|
+
.option('--ios-link <url>', 'iOS native link')
|
|
202
|
+
.option('--params <json>', 'custom params as JSON string')
|
|
203
|
+
.option('--product-desc <desc>', 'product description')
|
|
204
|
+
.option('--features <json>', 'features/tags as JSON array string')
|
|
205
|
+
.option('--btn-show <text>', 'button text')
|
|
206
|
+
.option('--yield <value>', 'yield/rate for finance products')
|
|
207
|
+
.option('--price-type <type>', 'price type: AMOUNT | CUSTOM')
|
|
208
|
+
.option('--real-price <amount>', 'real price amount', validatePrice)
|
|
209
|
+
.option('--custom-price <text>', 'custom price text')
|
|
210
|
+
.option('--original-price-type <type>', 'original price type: AMOUNT | CUSTOM')
|
|
211
|
+
.option('--price <amount>', 'original price amount', validatePrice)
|
|
212
|
+
.option('--custom-original-price <text>', 'custom original price text')
|
|
213
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
214
|
+
.action(async (options) => {
|
|
215
|
+
try {
|
|
216
|
+
const parentOptions = program.opts();
|
|
217
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
218
|
+
const productHandler = new product_handler_1.ProductHandler(authConfig, serviceConfig);
|
|
219
|
+
const addOptions = {
|
|
220
|
+
channelId: options.channelId,
|
|
221
|
+
name: options.name,
|
|
222
|
+
status: options.status,
|
|
223
|
+
linkType: options.linkType,
|
|
224
|
+
productType: options.productType,
|
|
225
|
+
cover: options.cover,
|
|
226
|
+
link: options.link,
|
|
227
|
+
pcLink: options.pcLink,
|
|
228
|
+
mobileLink: options.mobileLink,
|
|
229
|
+
wxMiniprogramLink: options.wxMiniprogramLink,
|
|
230
|
+
wxMiniprogramOriginalId: options.wxMiniprogramOriginalId,
|
|
231
|
+
mobileAppLink: options.mobileAppLink,
|
|
232
|
+
androidLink: options.androidLink,
|
|
233
|
+
iosLink: options.iosLink,
|
|
234
|
+
params: options.params,
|
|
235
|
+
productDesc: options.productDesc,
|
|
236
|
+
features: options.features,
|
|
237
|
+
btnShow: options.btnShow,
|
|
238
|
+
yield: options.yield,
|
|
239
|
+
priceType: options.priceType,
|
|
240
|
+
realPrice: options.realPrice,
|
|
241
|
+
customPrice: options.customPrice,
|
|
242
|
+
originalPriceType: options.originalPriceType,
|
|
243
|
+
price: options.price,
|
|
244
|
+
customOrignalPrice: options.customOriginalPrice,
|
|
245
|
+
output: options.output
|
|
246
|
+
};
|
|
247
|
+
await productHandler.addProduct(addOptions);
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
251
|
+
process.exit(1);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
addCmd.addHelpText('after', `
|
|
255
|
+
Examples:
|
|
256
|
+
# Add a normal product
|
|
257
|
+
$ polyv-live-cli product add -c "3151318" -n "ζ΅θ―εε" --status 1 --link-type 10 \\
|
|
258
|
+
-l "https://example.com/product" --cover "https://example.com/cover.jpg" \\
|
|
259
|
+
--real-price 99.9 --price 199.9
|
|
260
|
+
|
|
261
|
+
# Add a finance product
|
|
262
|
+
$ polyv-live-cli product add -c "3151318" -n "ηθ΄’δΊ§ε" --status 1 --link-type 10 \\
|
|
263
|
+
-l "https://example.com/finance" --yield "5.5%" -t finance
|
|
264
|
+
|
|
265
|
+
Product Types:
|
|
266
|
+
normal - Regular product (default)
|
|
267
|
+
finance - Financial product
|
|
268
|
+
position - Job position
|
|
269
|
+
|
|
270
|
+
Status Values:
|
|
271
|
+
1 - On shelf (δΈζΆ)
|
|
272
|
+
2 - Off shelf (δΈζΆ)
|
|
273
|
+
|
|
274
|
+
Link Types:
|
|
275
|
+
10 - Universal link (requires --link)
|
|
276
|
+
11 - Multi-platform link (use --pc-link, --mobile-link, etc.)
|
|
277
|
+
|
|
278
|
+
Price Types:
|
|
279
|
+
AMOUNT - Numeric price (use --real-price, --price)
|
|
280
|
+
CUSTOM - Custom text price (use --custom-price)
|
|
281
|
+
`);
|
|
282
|
+
const updateCmd = productCmd
|
|
283
|
+
.command('update')
|
|
284
|
+
.description('Update an existing product')
|
|
285
|
+
.requiredOption('-c, --channel-id <channelId>', 'channel ID')
|
|
286
|
+
.requiredOption('-p, --product-id <productId>', 'product ID', parseInteger)
|
|
287
|
+
.option('-n, --name <name>', 'product name')
|
|
288
|
+
.option('--status <status>', 'product status: 1 | 2', validateProductStatus)
|
|
289
|
+
.option('--link-type <type>', 'link type: 10 | 11', validateLinkType)
|
|
290
|
+
.option('-t, --product-type <type>', 'product type: normal | finance | position', validateProductType)
|
|
291
|
+
.option('--cover <url>', 'product cover URL')
|
|
292
|
+
.option('-l, --link <url>', 'universal link')
|
|
293
|
+
.option('--pc-link <url>', 'PC link')
|
|
294
|
+
.option('--mobile-link <url>', 'mobile web link')
|
|
295
|
+
.option('--wx-miniprogram-link <url>', 'WeChat miniprogram link')
|
|
296
|
+
.option('--wx-miniprogram-original-id <id>', 'WeChat miniprogram original ID')
|
|
297
|
+
.option('--mobile-app-link <url>', 'mobile app link')
|
|
298
|
+
.option('--android-link <url>', 'Android native link')
|
|
299
|
+
.option('--ios-link <url>', 'iOS native link')
|
|
300
|
+
.option('--params <json>', 'custom params as JSON string')
|
|
301
|
+
.option('--product-desc <desc>', 'product description')
|
|
302
|
+
.option('--features <json>', 'features/tags as JSON array string')
|
|
303
|
+
.option('--btn-show <text>', 'button text')
|
|
304
|
+
.option('--yield <value>', 'yield/rate for finance products')
|
|
305
|
+
.option('--price-type <type>', 'price type: AMOUNT | CUSTOM')
|
|
306
|
+
.option('--real-price <amount>', 'real price amount', validatePrice)
|
|
307
|
+
.option('--custom-price <text>', 'custom price text')
|
|
308
|
+
.option('--original-price-type <type>', 'original price type: AMOUNT | CUSTOM')
|
|
309
|
+
.option('--price <amount>', 'original price amount', validatePrice)
|
|
310
|
+
.option('--custom-original-price <text>', 'custom original price text')
|
|
311
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
312
|
+
.action(async (options) => {
|
|
313
|
+
try {
|
|
314
|
+
const parentOptions = program.opts();
|
|
315
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
316
|
+
const productHandler = new product_handler_1.ProductHandler(authConfig, serviceConfig);
|
|
317
|
+
const updateOptions = {
|
|
318
|
+
channelId: options.channelId,
|
|
319
|
+
productId: options.productId,
|
|
320
|
+
name: options.name,
|
|
321
|
+
status: options.status,
|
|
322
|
+
linkType: options.linkType,
|
|
323
|
+
cover: options.cover,
|
|
324
|
+
link: options.link,
|
|
325
|
+
pcLink: options.pcLink,
|
|
326
|
+
mobileLink: options.mobileLink,
|
|
327
|
+
wxMiniprogramLink: options.wxMiniprogramLink,
|
|
328
|
+
wxMiniprogramOriginalId: options.wxMiniprogramOriginalId,
|
|
329
|
+
mobileAppLink: options.mobileAppLink,
|
|
330
|
+
androidLink: options.androidLink,
|
|
331
|
+
iosLink: options.iosLink,
|
|
332
|
+
params: options.params,
|
|
333
|
+
productDesc: options.productDesc,
|
|
334
|
+
features: options.features,
|
|
335
|
+
btnShow: options.btnShow,
|
|
336
|
+
yield: options.yield,
|
|
337
|
+
priceType: options.priceType,
|
|
338
|
+
realPrice: options.realPrice,
|
|
339
|
+
customPrice: options.customPrice,
|
|
340
|
+
originalPriceType: options.originalPriceType,
|
|
341
|
+
price: options.price,
|
|
342
|
+
customOrignalPrice: options.customOriginalPrice,
|
|
343
|
+
output: options.output
|
|
344
|
+
};
|
|
345
|
+
await productHandler.updateProduct(updateOptions);
|
|
346
|
+
}
|
|
347
|
+
catch (error) {
|
|
348
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
349
|
+
process.exit(1);
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
updateCmd.addHelpText('after', `
|
|
353
|
+
Examples:
|
|
354
|
+
# Update product name
|
|
355
|
+
$ polyv-live-cli product update -c "3151318" -p 12345 -n "ζ°εεε" --status 1 --link-type 10
|
|
356
|
+
|
|
357
|
+
# Change product status to off-shelf
|
|
358
|
+
$ polyv-live-cli product update -c "3151318" -p 12345 -n "εεε" --status 2 --link-type 10
|
|
359
|
+
`);
|
|
360
|
+
const deleteCmd = productCmd
|
|
361
|
+
.command('delete')
|
|
362
|
+
.description('Delete a product from channel')
|
|
363
|
+
.requiredOption('-c, --channel-id <channelId>', 'channel ID')
|
|
364
|
+
.requiredOption('-p, --product-id <productId>', 'product ID', parseInteger)
|
|
365
|
+
.option('-f, --force', 'force delete without confirmation')
|
|
366
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
367
|
+
.action(async (options) => {
|
|
368
|
+
try {
|
|
369
|
+
const parentOptions = program.opts();
|
|
370
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
371
|
+
const productHandler = new product_handler_1.ProductHandler(authConfig, serviceConfig);
|
|
372
|
+
const deleteOptions = {
|
|
373
|
+
channelId: options.channelId,
|
|
374
|
+
productId: options.productId,
|
|
375
|
+
force: options.force || false,
|
|
376
|
+
output: options.output
|
|
377
|
+
};
|
|
378
|
+
await productHandler.deleteProduct(deleteOptions);
|
|
379
|
+
}
|
|
380
|
+
catch (error) {
|
|
381
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
382
|
+
process.exit(1);
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
deleteCmd.addHelpText('after', `
|
|
386
|
+
Examples:
|
|
387
|
+
# Delete with confirmation
|
|
388
|
+
$ polyv-live-cli product delete -c "3151318" -p 12345
|
|
389
|
+
|
|
390
|
+
# Force delete without confirmation
|
|
391
|
+
$ polyv-live-cli product delete -c "3151318" -p 12345 --force
|
|
392
|
+
|
|
393
|
+
Note:
|
|
394
|
+
Deletion is permanent and cannot be undone.
|
|
395
|
+
Use --force to skip the confirmation prompt.
|
|
396
|
+
`);
|
|
397
|
+
}
|
|
398
|
+
//# sourceMappingURL=product.commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.commands.js","sourceRoot":"","sources":["../../src/commands/product.commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.commands.d.ts","sourceRoot":"","sources":["../../src/commands/setup.commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyEpC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAKpE;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqF3D"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateOutputFormat = validateOutputFormat;
|
|
4
|
+
exports.registerSetupCommand = registerSetupCommand;
|
|
5
|
+
const setup_handler_1 = require("../handlers/setup.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
|
+
const DEFAULT_TIMEOUT_MS = 30000;
|
|
10
|
+
async function loadAuthAndServiceConfig(parentOptions) {
|
|
11
|
+
const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
|
|
12
|
+
if (!authResult) {
|
|
13
|
+
throw new Error(auth_adapter_1.authAdapter.getStatusMessage(parentOptions));
|
|
14
|
+
}
|
|
15
|
+
let configResult;
|
|
16
|
+
try {
|
|
17
|
+
configResult = await manager_1.configManager.load({
|
|
18
|
+
cliOptions: parentOptions,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error instanceof Error && error.message.includes('Auth configuration is incomplete')) {
|
|
23
|
+
configResult = {
|
|
24
|
+
config: {
|
|
25
|
+
baseUrl: 'https://api.polyv.net',
|
|
26
|
+
timeout: DEFAULT_TIMEOUT_MS,
|
|
27
|
+
debug: false,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const serviceConfig = {
|
|
36
|
+
baseUrl: configResult.config.baseUrl,
|
|
37
|
+
timeout: configResult.config.timeout,
|
|
38
|
+
debug: configResult.config.debug,
|
|
39
|
+
};
|
|
40
|
+
const isVerbose = !!parentOptions['verbose'];
|
|
41
|
+
if (isVerbose) {
|
|
42
|
+
console.log(`π Authentication Source: ${authResult.source}`);
|
|
43
|
+
if (authResult.accountName) {
|
|
44
|
+
console.log(`π€ Account: ${authResult.accountName}`);
|
|
45
|
+
}
|
|
46
|
+
console.log('');
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
authConfig: authResult.config,
|
|
50
|
+
serviceConfig,
|
|
51
|
+
isVerbose,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function validateOutputFormat(value) {
|
|
55
|
+
if (!['table', 'json'].includes(value)) {
|
|
56
|
+
throw new Error('Invalid output format. Must be "table" or "json"');
|
|
57
|
+
}
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
function registerSetupCommand(program) {
|
|
61
|
+
const setupCmd = program
|
|
62
|
+
.command('setup [scene]')
|
|
63
|
+
.description('Initialize a scene with predefined resources')
|
|
64
|
+
.option('-l, --list', 'List available scenes')
|
|
65
|
+
.option('--detailed', 'Show detailed scene information (with --list)')
|
|
66
|
+
.option('--dry-run', 'Preview what would be created without making changes')
|
|
67
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
68
|
+
.action(async (scene, options) => {
|
|
69
|
+
try {
|
|
70
|
+
const parentOptions = program.opts();
|
|
71
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
72
|
+
const setupHandler = new setup_handler_1.SetupHandler(authConfig, serviceConfig);
|
|
73
|
+
if (options.list) {
|
|
74
|
+
if (options.detailed) {
|
|
75
|
+
await setupHandler.listScenesDetailed({
|
|
76
|
+
output: options.output ?? 'table',
|
|
77
|
+
detailed: true,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
await setupHandler.listScenes({
|
|
82
|
+
output: options.output ?? 'table',
|
|
83
|
+
detailed: false,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!scene) {
|
|
89
|
+
console.error('Error: Scene name is required.');
|
|
90
|
+
console.error('');
|
|
91
|
+
console.error('Usage: polyv-live-cli setup <scene-name>');
|
|
92
|
+
console.error(' polyv-live-cli setup --list');
|
|
93
|
+
console.error('');
|
|
94
|
+
console.error('Example:');
|
|
95
|
+
console.error(' polyv-live-cli setup e-commerce');
|
|
96
|
+
console.error(' polyv-live-cli setup --list');
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
await setupHandler.setup({
|
|
100
|
+
scene,
|
|
101
|
+
output: options.output ?? 'table',
|
|
102
|
+
dryRun: options.dryRun ?? false,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
setupCmd.addHelpText('after', `
|
|
111
|
+
Examples:
|
|
112
|
+
# Initialize e-commerce scene
|
|
113
|
+
$ polyv-live-cli setup e-commerce
|
|
114
|
+
|
|
115
|
+
# List available scenes
|
|
116
|
+
$ polyv-live-cli setup --list
|
|
117
|
+
|
|
118
|
+
# Preview what would be created (dry run)
|
|
119
|
+
$ polyv-live-cli setup e-commerce --dry-run
|
|
120
|
+
|
|
121
|
+
# Get detailed scene information
|
|
122
|
+
$ polyv-live-cli setup --list --detailed
|
|
123
|
+
|
|
124
|
+
Available Scenes:
|
|
125
|
+
e-commerce - η΅εη΄ζεΊζ― (ι’ιγεεγδΌζ εΈ)
|
|
126
|
+
|
|
127
|
+
Custom Scenes:
|
|
128
|
+
You can create custom scenes in ~/.polyv/scenes/ directory.
|
|
129
|
+
See documentation for scene configuration format.
|
|
130
|
+
`);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=setup.commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.commands.js","sourceRoot":"","sources":["../../src/commands/setup.commands.ts"],"names":[],"mappings":";;AA6EA,oDAKC;AAMD,oDAqFC;AAxKD,6DAAyD;AACzD,+CAAkD;AAClD,yDAAqD;AACrD,4CAA2C;AAI3C,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAKjC,KAAK,UAAU,wBAAwB,CAAC,aAAsC;IAM5E,MAAM,UAAU,GAAG,0BAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0BAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,CAAC;IAGD,IAAI,YAAY,CAAC;IACjB,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,uBAAa,CAAC,IAAI,CAAC;YACtC,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YACzF,YAAY,GAAG;gBACb,MAAM,EAAE;oBACN,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,kBAAkB;oBAC3B,KAAK,EAAE,KAAK;iBACb;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO;QACpC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO;QACpC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;KACjC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,aAAa;QACb,SAAS;KACV,CAAC;AACJ,CAAC;AAQD,SAAgB,oBAAoB,CAAC,KAAa;IAChD,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAyB,CAAC;AACnC,CAAC;AAMD,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;SAC7C,MAAM,CAAC,YAAY,EAAE,+CAA+C,CAAC;SACrE,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;SAC3E,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,OAAO,CAAC;SAC5F,MAAM,CAAC,KAAK,EAAE,KAAyB,EAAE,OAKzC,EAAE,EAAE;QACH,IAAI,CAAC;YAEH,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAGpF,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAGjE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM,YAAY,CAAC,kBAAkB,CAAC;wBACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;wBACjC,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,YAAY,CAAC,UAAU,CAAC;wBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;wBACjC,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YAGD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAChD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC1D,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACnD,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAGD,MAAM,YAAY,CAAC,KAAK,CAAC;gBACvB,KAAK;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;aAChC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,iBAAQ,EAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAGL,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;CAoB/B,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.commands.d.ts","sourceRoot":"","sources":["../../src/commands/stream.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2EpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"stream.commands.d.ts","sourceRoot":"","sources":["../../src/commands/stream.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2EpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAslB7D"}
|