polyv-live-cli 1.1.4 ā 1.1.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/dist/commands/account.commands.d.ts +3 -0
- package/dist/commands/account.commands.d.ts.map +1 -0
- package/dist/commands/account.commands.js +386 -0
- package/dist/commands/account.commands.js.map +1 -0
- package/dist/commands/channel.commands.d.ts.map +1 -1
- package/dist/commands/channel.commands.js +84 -60
- package/dist/commands/channel.commands.js.map +1 -1
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +7 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/monitor.commands.d.ts +12 -0
- package/dist/commands/monitor.commands.d.ts.map +1 -0
- package/dist/commands/monitor.commands.js +75 -0
- package/dist/commands/monitor.commands.js.map +1 -0
- package/dist/commands/stream.commands.d.ts.map +1 -1
- package/dist/commands/stream.commands.js +141 -63
- package/dist/commands/stream.commands.js.map +1 -1
- package/dist/commands/use.commands.d.ts +9 -0
- package/dist/commands/use.commands.d.ts.map +1 -0
- package/dist/commands/use.commands.js +66 -0
- package/dist/commands/use.commands.js.map +1 -0
- package/dist/components/alert.panel.d.ts +98 -0
- package/dist/components/alert.panel.d.ts.map +1 -0
- package/dist/components/alert.panel.js +1001 -0
- package/dist/components/alert.panel.js.map +1 -0
- package/dist/components/base.component.d.ts +61 -0
- package/dist/components/base.component.d.ts.map +1 -0
- package/dist/components/base.component.js +346 -0
- package/dist/components/base.component.js.map +1 -0
- package/dist/components/batch-operations.dialog.d.ts +58 -0
- package/dist/components/batch-operations.dialog.d.ts.map +1 -0
- package/dist/components/batch-operations.dialog.js +340 -0
- package/dist/components/batch-operations.dialog.js.map +1 -0
- package/dist/components/channel-details.popup.d.ts +55 -0
- package/dist/components/channel-details.popup.d.ts.map +1 -0
- package/dist/components/channel-details.popup.js +416 -0
- package/dist/components/channel-details.popup.js.map +1 -0
- package/dist/components/channel-status.panel.d.ts +129 -0
- package/dist/components/channel-status.panel.d.ts.map +1 -0
- package/dist/components/channel-status.panel.js +858 -0
- package/dist/components/channel-status.panel.js.map +1 -0
- package/dist/components/component-registry.d.ts +36 -0
- package/dist/components/component-registry.d.ts.map +1 -0
- package/dist/components/component-registry.js +119 -0
- package/dist/components/component-registry.js.map +1 -0
- package/dist/components/context-menu-factory.d.ts +13 -0
- package/dist/components/context-menu-factory.d.ts.map +1 -0
- package/dist/components/context-menu-factory.js +341 -0
- package/dist/components/context-menu-factory.js.map +1 -0
- package/dist/components/context-menu.d.ts +54 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +235 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/grid-manager.d.ts +52 -0
- package/dist/components/grid-manager.d.ts.map +1 -0
- package/dist/components/grid-manager.js +404 -0
- package/dist/components/grid-manager.js.map +1 -0
- package/dist/components/help-panel.d.ts +34 -0
- package/dist/components/help-panel.d.ts.map +1 -0
- package/dist/components/help-panel.js +249 -0
- package/dist/components/help-panel.js.map +1 -0
- package/dist/components/index.d.ts +21 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +43 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/interaction-manager.d.ts +47 -0
- package/dist/components/interaction-manager.d.ts.map +1 -0
- package/dist/components/interaction-manager.js +597 -0
- package/dist/components/interaction-manager.js.map +1 -0
- package/dist/components/layout-manager.d.ts +76 -0
- package/dist/components/layout-manager.d.ts.map +1 -0
- package/dist/components/layout-manager.js +538 -0
- package/dist/components/layout-manager.js.map +1 -0
- package/dist/components/monitoring-dashboard.d.ts +85 -0
- package/dist/components/monitoring-dashboard.d.ts.map +1 -0
- package/dist/components/monitoring-dashboard.js +908 -0
- package/dist/components/monitoring-dashboard.js.map +1 -0
- package/dist/components/search-panel.d.ts +80 -0
- package/dist/components/search-panel.d.ts.map +1 -0
- package/dist/components/search-panel.js +585 -0
- package/dist/components/search-panel.js.map +1 -0
- package/dist/components/status-bar.d.ts +77 -0
- package/dist/components/status-bar.d.ts.map +1 -0
- package/dist/components/status-bar.js +482 -0
- package/dist/components/status-bar.js.map +1 -0
- package/dist/components/status.component.d.ts +16 -0
- package/dist/components/status.component.d.ts.map +1 -0
- package/dist/components/status.component.js +79 -0
- package/dist/components/status.component.js.map +1 -0
- package/dist/components/stream-metrics.panel.d.ts +86 -0
- package/dist/components/stream-metrics.panel.d.ts.map +1 -0
- package/dist/components/stream-metrics.panel.js +395 -0
- package/dist/components/stream-metrics.panel.js.map +1 -0
- package/dist/components/system-resource.panel.d.ts +78 -0
- package/dist/components/system-resource.panel.d.ts.map +1 -0
- package/dist/components/system-resource.panel.js +642 -0
- package/dist/components/system-resource.panel.js.map +1 -0
- package/dist/components/tooltip.d.ts +35 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +156 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/config/account-config.d.ts +27 -0
- package/dist/config/account-config.d.ts.map +1 -0
- package/dist/config/account-config.js +358 -0
- package/dist/config/account-config.js.map +1 -0
- package/dist/config/account-crypto.d.ts +17 -0
- package/dist/config/account-crypto.d.ts.map +1 -0
- package/dist/config/account-crypto.js +129 -0
- package/dist/config/account-crypto.js.map +1 -0
- package/dist/config/account-encryption.d.ts +35 -0
- package/dist/config/account-encryption.d.ts.map +1 -0
- package/dist/config/account-encryption.js +207 -0
- package/dist/config/account-encryption.js.map +1 -0
- package/dist/config/auth-adapter.d.ts +23 -0
- package/dist/config/auth-adapter.d.ts.map +1 -0
- package/dist/config/auth-adapter.js +49 -0
- package/dist/config/auth-adapter.js.map +1 -0
- package/dist/config/auth-provider.d.ts +27 -0
- package/dist/config/auth-provider.d.ts.map +1 -0
- package/dist/config/auth-provider.js +54 -0
- package/dist/config/auth-provider.js.map +1 -0
- package/dist/config/auth-source-manager.d.ts +61 -0
- package/dist/config/auth-source-manager.d.ts.map +1 -0
- package/dist/config/auth-source-manager.js +402 -0
- package/dist/config/auth-source-manager.js.map +1 -0
- package/dist/config/config-io.d.ts +63 -0
- package/dist/config/config-io.d.ts.map +1 -0
- package/dist/config/config-io.js +352 -0
- package/dist/config/config-io.js.map +1 -0
- package/dist/config/config-manager.d.ts +51 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +404 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/config-recovery-manager.d.ts +67 -0
- package/dist/config/config-recovery-manager.d.ts.map +1 -0
- package/dist/config/config-recovery-manager.js +593 -0
- package/dist/config/config-recovery-manager.js.map +1 -0
- package/dist/config/config-validator.d.ts +27 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +421 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/config-version-manager.d.ts +44 -0
- package/dist/config/config-version-manager.d.ts.map +1 -0
- package/dist/config/config-version-manager.js +319 -0
- package/dist/config/config-version-manager.js.map +1 -0
- package/dist/config/custom-theme-builder.d.ts +88 -0
- package/dist/config/custom-theme-builder.d.ts.map +1 -0
- package/dist/config/custom-theme-builder.js +458 -0
- package/dist/config/custom-theme-builder.js.map +1 -0
- package/dist/config/file-permission-manager.d.ts +41 -0
- package/dist/config/file-permission-manager.d.ts.map +1 -0
- package/dist/config/file-permission-manager.js +290 -0
- package/dist/config/file-permission-manager.js.map +1 -0
- package/dist/config/layout-manager.d.ts +60 -0
- package/dist/config/layout-manager.d.ts.map +1 -0
- package/dist/config/layout-manager.js +596 -0
- package/dist/config/layout-manager.js.map +1 -0
- package/dist/config/monitoring.d.ts +27 -0
- package/dist/config/monitoring.d.ts.map +1 -0
- package/dist/config/monitoring.js +276 -0
- package/dist/config/monitoring.js.map +1 -0
- package/dist/config/secure-account-manager.d.ts +54 -0
- package/dist/config/secure-account-manager.d.ts.map +1 -0
- package/dist/config/secure-account-manager.js +438 -0
- package/dist/config/secure-account-manager.js.map +1 -0
- package/dist/config/session-state.d.ts +37 -0
- package/dist/config/session-state.d.ts.map +1 -0
- package/dist/config/session-state.js +207 -0
- package/dist/config/session-state.js.map +1 -0
- package/dist/config/session-storage.d.ts +21 -0
- package/dist/config/session-storage.d.ts.map +1 -0
- package/dist/config/session-storage.js +235 -0
- package/dist/config/session-storage.js.map +1 -0
- package/dist/config/theme-manager.d.ts +53 -0
- package/dist/config/theme-manager.d.ts.map +1 -0
- package/dist/config/theme-manager.js +491 -0
- package/dist/config/theme-manager.js.map +1 -0
- package/dist/handlers/monitor.handler.d.ts +28 -0
- package/dist/handlers/monitor.handler.d.ts.map +1 -0
- package/dist/handlers/monitor.handler.js +457 -0
- package/dist/handlers/monitor.handler.js.map +1 -0
- package/dist/handlers/stream.handler.d.ts.map +1 -1
- package/dist/handlers/stream.handler.js +6 -0
- package/dist/handlers/stream.handler.js.map +1 -1
- package/dist/handlers/use.handler.d.ts +13 -0
- package/dist/handlers/use.handler.d.ts.map +1 -0
- package/dist/handlers/use.handler.js +118 -0
- package/dist/handlers/use.handler.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -12
- package/dist/index.js.map +1 -1
- package/dist/performance/adaptive-polling.d.ts +69 -0
- package/dist/performance/adaptive-polling.d.ts.map +1 -0
- package/dist/performance/adaptive-polling.js +313 -0
- package/dist/performance/adaptive-polling.js.map +1 -0
- package/dist/performance/api-analytics.d.ts +137 -0
- package/dist/performance/api-analytics.d.ts.map +1 -0
- package/dist/performance/api-analytics.js +351 -0
- package/dist/performance/api-analytics.js.map +1 -0
- package/dist/performance/api-optimizer.d.ts +66 -0
- package/dist/performance/api-optimizer.d.ts.map +1 -0
- package/dist/performance/api-optimizer.js +368 -0
- package/dist/performance/api-optimizer.js.map +1 -0
- package/dist/performance/batch-request-manager.d.ts +90 -0
- package/dist/performance/batch-request-manager.d.ts.map +1 -0
- package/dist/performance/batch-request-manager.js +355 -0
- package/dist/performance/batch-request-manager.js.map +1 -0
- package/dist/performance/change-detector.d.ts +75 -0
- package/dist/performance/change-detector.d.ts.map +1 -0
- package/dist/performance/change-detector.js +421 -0
- package/dist/performance/change-detector.js.map +1 -0
- package/dist/performance/connection-pool-manager.d.ts +99 -0
- package/dist/performance/connection-pool-manager.d.ts.map +1 -0
- package/dist/performance/connection-pool-manager.js +474 -0
- package/dist/performance/connection-pool-manager.js.map +1 -0
- package/dist/performance/error-recovery-manager.d.ts +134 -0
- package/dist/performance/error-recovery-manager.d.ts.map +1 -0
- package/dist/performance/error-recovery-manager.js +673 -0
- package/dist/performance/error-recovery-manager.js.map +1 -0
- package/dist/performance/fallback-manager.d.ts +123 -0
- package/dist/performance/fallback-manager.d.ts.map +1 -0
- package/dist/performance/fallback-manager.js +524 -0
- package/dist/performance/fallback-manager.js.map +1 -0
- package/dist/performance/index.d.ts +25 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +28 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/memory-manager.d.ts +97 -0
- package/dist/performance/memory-manager.d.ts.map +1 -0
- package/dist/performance/memory-manager.js +417 -0
- package/dist/performance/memory-manager.js.map +1 -0
- package/dist/performance/performance-monitor.d.ts +149 -0
- package/dist/performance/performance-monitor.d.ts.map +1 -0
- package/dist/performance/performance-monitor.js +513 -0
- package/dist/performance/performance-monitor.js.map +1 -0
- package/dist/performance/performance-optimizer.d.ts +110 -0
- package/dist/performance/performance-optimizer.d.ts.map +1 -0
- package/dist/performance/performance-optimizer.js +476 -0
- package/dist/performance/performance-optimizer.js.map +1 -0
- package/dist/performance/render-optimizer.d.ts +95 -0
- package/dist/performance/render-optimizer.d.ts.map +1 -0
- package/dist/performance/render-optimizer.js +408 -0
- package/dist/performance/render-optimizer.js.map +1 -0
- package/dist/services/index.d.ts +4 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/system-resource.service.d.ts +168 -0
- package/dist/services/system-resource.service.d.ts.map +1 -0
- package/dist/services/system-resource.service.js +544 -0
- package/dist/services/system-resource.service.js.map +1 -0
- package/dist/types/account.types.d.ts +79 -0
- package/dist/types/account.types.d.ts.map +1 -0
- package/dist/types/account.types.js +23 -0
- package/dist/types/account.types.js.map +1 -0
- package/dist/types/alert.d.ts +147 -0
- package/dist/types/alert.d.ts.map +1 -0
- package/dist/types/alert.js +3 -0
- package/dist/types/alert.js.map +1 -0
- package/dist/types/auth-source.types.d.ts +62 -0
- package/dist/types/auth-source.types.d.ts.map +1 -0
- package/dist/types/auth-source.types.js +25 -0
- package/dist/types/auth-source.types.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/interaction.d.ts +147 -0
- package/dist/types/interaction.d.ts.map +1 -0
- package/dist/types/interaction.js +3 -0
- package/dist/types/interaction.js.map +1 -0
- package/dist/types/monitoring.d.ts +233 -0
- package/dist/types/monitoring.d.ts.map +1 -0
- package/dist/types/monitoring.js +35 -0
- package/dist/types/monitoring.js.map +1 -0
- package/dist/types/session.types.d.ts +43 -0
- package/dist/types/session.types.d.ts.map +1 -0
- package/dist/types/session.types.js +27 -0
- package/dist/types/session.types.js.map +1 -0
- package/dist/utils/alert-history-manager.d.ts +72 -0
- package/dist/utils/alert-history-manager.d.ts.map +1 -0
- package/dist/utils/alert-history-manager.js +492 -0
- package/dist/utils/alert-history-manager.js.map +1 -0
- package/dist/utils/alert-manager.d.ts +75 -0
- package/dist/utils/alert-manager.d.ts.map +1 -0
- package/dist/utils/alert-manager.js +348 -0
- package/dist/utils/alert-manager.js.map +1 -0
- package/dist/utils/alert-rule-manager.d.ts +51 -0
- package/dist/utils/alert-rule-manager.d.ts.map +1 -0
- package/dist/utils/alert-rule-manager.js +515 -0
- package/dist/utils/alert-rule-manager.js.map +1 -0
- package/dist/utils/auth-diagnostics.d.ts +47 -0
- package/dist/utils/auth-diagnostics.d.ts.map +1 -0
- package/dist/utils/auth-diagnostics.js +245 -0
- package/dist/utils/auth-diagnostics.js.map +1 -0
- package/dist/utils/data-manager.d.ts +53 -0
- package/dist/utils/data-manager.d.ts.map +1 -0
- package/dist/utils/data-manager.js +228 -0
- package/dist/utils/data-manager.js.map +1 -0
- package/dist/utils/formatter.d.ts +5 -0
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +19 -0
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/keyboard-handler.d.ts +32 -0
- package/dist/utils/keyboard-handler.d.ts.map +1 -0
- package/dist/utils/keyboard-handler.js +193 -0
- package/dist/utils/keyboard-handler.js.map +1 -0
- package/dist/utils/mouse-handler.d.ts +61 -0
- package/dist/utils/mouse-handler.d.ts.map +1 -0
- package/dist/utils/mouse-handler.js +192 -0
- package/dist/utils/mouse-handler.js.map +1 -0
- package/dist/utils/stream-verification.d.ts.map +1 -1
- package/dist/utils/stream-verification.js +2 -13
- package/dist/utils/stream-verification.js.map +1 -1
- package/dist/utils/terminal.d.ts +24 -0
- package/dist/utils/terminal.d.ts.map +1 -0
- package/dist/utils/terminal.js +148 -0
- package/dist/utils/terminal.js.map +1 -0
- package/dist/utils/time-series.processor.d.ts +65 -0
- package/dist/utils/time-series.processor.d.ts.map +1 -0
- package/dist/utils/time-series.processor.js +263 -0
- package/dist/utils/time-series.processor.js.map +1 -0
- package/package.json +40 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.commands.d.ts","sourceRoot":"","sources":["../../src/commands/account.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgcpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsD9D"}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerAccountCommands = registerAccountCommands;
|
|
4
|
+
const account_config_1 = require("../config/account-config");
|
|
5
|
+
const session_state_1 = require("../config/session-state");
|
|
6
|
+
const config_1 = require("../types/config");
|
|
7
|
+
const readline_1 = require("readline");
|
|
8
|
+
const global_1 = require("../config/global");
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
function createReadlineInterface() {
|
|
11
|
+
return (0, readline_1.createInterface)({
|
|
12
|
+
input: process.stdin,
|
|
13
|
+
output: process.stdout
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function promptConfirmation(rl, question) {
|
|
17
|
+
return new Promise((resolve) => {
|
|
18
|
+
rl.question(`${question} (y/N): `, (answer) => {
|
|
19
|
+
const trimmed = answer.trim().toLowerCase();
|
|
20
|
+
resolve(trimmed === 'y' || trimmed === 'yes');
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function formatAccountTable(accounts) {
|
|
25
|
+
if (accounts.length === 0) {
|
|
26
|
+
console.log('š No accounts configured.');
|
|
27
|
+
console.log('');
|
|
28
|
+
console.log('Use "polyv-cli account add <name>" to add your first account.');
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log('š Configured Accounts:');
|
|
32
|
+
console.log('');
|
|
33
|
+
const nameWidth = Math.max(4, ...accounts.map(a => a.name.length));
|
|
34
|
+
const appIdWidth = Math.max(6, ...accounts.map(a => a.appId.length));
|
|
35
|
+
const userIdWidth = Math.max(7, ...accounts.map(a => (a.userId || '').length));
|
|
36
|
+
const header = `${'Name'.padEnd(nameWidth)} | ${'App ID'.padEnd(appIdWidth)} | ${'User ID'.padEnd(userIdWidth)} | Created`;
|
|
37
|
+
console.log(header);
|
|
38
|
+
console.log('-'.repeat(header.length));
|
|
39
|
+
accounts.forEach(account => {
|
|
40
|
+
const createdDate = new Date(account.createdAt).toLocaleDateString();
|
|
41
|
+
const userId = account.userId || '-';
|
|
42
|
+
console.log(`${account.name.padEnd(nameWidth)} | ${account.appId.padEnd(appIdWidth)} | ${userId.padEnd(userIdWidth)} | ${createdDate}`);
|
|
43
|
+
});
|
|
44
|
+
console.log('');
|
|
45
|
+
console.log(`Total: ${accounts.length} account${accounts.length === 1 ? '' : 's'}`);
|
|
46
|
+
}
|
|
47
|
+
async function handleAccountAdd(name, options) {
|
|
48
|
+
try {
|
|
49
|
+
const { appId, appSecret, userId } = options;
|
|
50
|
+
if (!appId) {
|
|
51
|
+
console.error('ā Error: --app-id is required');
|
|
52
|
+
console.log('');
|
|
53
|
+
console.log('Usage: polyv-cli account add <name> --app-id <id> --app-secret <secret> [--user-id <uid>]');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
if (!appSecret) {
|
|
57
|
+
console.error('ā Error: --app-secret is required');
|
|
58
|
+
console.log('');
|
|
59
|
+
console.log('Usage: polyv-cli account add <name> --app-id <id> --app-secret <secret> [--user-id <uid>]');
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
const manager = new account_config_1.AccountConfigManager();
|
|
63
|
+
const result = manager.addAccount(name, appId, appSecret, userId);
|
|
64
|
+
if (result.success) {
|
|
65
|
+
console.log('ā
' + result.message);
|
|
66
|
+
console.log('');
|
|
67
|
+
console.log('Account details:');
|
|
68
|
+
console.log(` Name: ${name}`);
|
|
69
|
+
console.log(` App ID: ${appId}`);
|
|
70
|
+
if (userId) {
|
|
71
|
+
console.log(` User ID: ${userId}`);
|
|
72
|
+
}
|
|
73
|
+
console.log(` Config file: ${manager.getConfigPath()}`);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.error('ā ' + result.message);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error('ā Failed to add account:', error instanceof Error ? error.message : 'Unknown error');
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function handleAccountRemove(name, options) {
|
|
86
|
+
try {
|
|
87
|
+
const manager = new account_config_1.AccountConfigManager();
|
|
88
|
+
if (!manager.accountExists(name)) {
|
|
89
|
+
console.error(`ā Account '${name}' not found.`);
|
|
90
|
+
console.log('');
|
|
91
|
+
console.log('Use "polyv-cli account list" to see available accounts.');
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
if (!options.force) {
|
|
95
|
+
const rl = createReadlineInterface();
|
|
96
|
+
const confirmed = await promptConfirmation(rl, `Are you sure you want to remove account '${name}'?`);
|
|
97
|
+
rl.close();
|
|
98
|
+
if (!confirmed) {
|
|
99
|
+
console.log('ā Account removal cancelled.');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const result = manager.removeAccount(name);
|
|
104
|
+
if (result.success) {
|
|
105
|
+
console.log('ā
' + result.message);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.error('ā ' + result.message);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.error('ā Failed to remove account:', error instanceof Error ? error.message : 'Unknown error');
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async function handleAccountList(options) {
|
|
118
|
+
try {
|
|
119
|
+
const manager = new account_config_1.AccountConfigManager();
|
|
120
|
+
const accounts = manager.listAccounts();
|
|
121
|
+
if (options.output === 'json') {
|
|
122
|
+
console.log(JSON.stringify(accounts, null, 2));
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
formatAccountTable(accounts);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.error('ā Failed to list accounts:', error instanceof Error ? error.message : 'Unknown error');
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
async function handleAccountMigrate(options) {
|
|
134
|
+
try {
|
|
135
|
+
const accountManager = new account_config_1.AccountConfigManager();
|
|
136
|
+
if (!global_1.globalConfig.exists()) {
|
|
137
|
+
console.log('š No legacy configuration found.');
|
|
138
|
+
console.log('');
|
|
139
|
+
console.log('Legacy config file: ' + global_1.globalConfig.getConfigPath());
|
|
140
|
+
console.log('Use "polyv-cli account add <name>" to add new accounts.');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const oldConfig = global_1.globalConfig.load();
|
|
144
|
+
const validation = global_1.globalConfig.validate(oldConfig);
|
|
145
|
+
if (!validation.isValid) {
|
|
146
|
+
console.error('ā Legacy configuration is incomplete.');
|
|
147
|
+
console.error('Missing required fields:', validation.missingKeys.join(', '));
|
|
148
|
+
console.log('');
|
|
149
|
+
console.log('Please fix the legacy configuration first or remove it:');
|
|
150
|
+
console.log(` Legacy config file: ${global_1.globalConfig.getConfigPath()}`);
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
const accountName = options.name || `legacy_${oldConfig.appId}`;
|
|
154
|
+
if (accountManager.accountExists(accountName)) {
|
|
155
|
+
console.error(`ā Account '${accountName}' already exists.`);
|
|
156
|
+
console.log('');
|
|
157
|
+
console.log('Use a different name with --name option or remove the existing account first:');
|
|
158
|
+
console.log(` polyv-cli account remove ${accountName}`);
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
if (!options.force) {
|
|
162
|
+
const rl = createReadlineInterface();
|
|
163
|
+
console.log('š Legacy Configuration Migration');
|
|
164
|
+
console.log('');
|
|
165
|
+
console.log('Found legacy configuration:');
|
|
166
|
+
console.log(` App ID: ${oldConfig.appId}`);
|
|
167
|
+
console.log(` User ID: ${oldConfig.userId || '(not set)'}`);
|
|
168
|
+
console.log(` Base URL: ${oldConfig.baseUrl || '(default)'}`);
|
|
169
|
+
console.log('');
|
|
170
|
+
console.log(`Will create new account: ${accountName}`);
|
|
171
|
+
console.log('');
|
|
172
|
+
const confirmed = await promptConfirmation(rl, 'Do you want to migrate this configuration?');
|
|
173
|
+
rl.close();
|
|
174
|
+
if (!confirmed) {
|
|
175
|
+
console.log('ā Migration cancelled.');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
const result = accountManager.addAccount(accountName, oldConfig.appId, oldConfig.appSecret, oldConfig.userId);
|
|
180
|
+
if (!result.success) {
|
|
181
|
+
console.error('ā Failed to migrate account:', result.message);
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
console.log('ā
' + result.message);
|
|
185
|
+
console.log('');
|
|
186
|
+
console.log('Migration details:');
|
|
187
|
+
console.log(` New account name: ${accountName}`);
|
|
188
|
+
console.log(` App ID: ${oldConfig.appId}`);
|
|
189
|
+
if (oldConfig.userId) {
|
|
190
|
+
console.log(` User ID: ${oldConfig.userId}`);
|
|
191
|
+
}
|
|
192
|
+
console.log(` Config file: ${accountManager.getConfigPath()}`);
|
|
193
|
+
console.log('');
|
|
194
|
+
if (!options.keepLegacy) {
|
|
195
|
+
const rl = createReadlineInterface();
|
|
196
|
+
const shouldRemove = await promptConfirmation(rl, 'Remove legacy configuration file?');
|
|
197
|
+
rl.close();
|
|
198
|
+
if (shouldRemove) {
|
|
199
|
+
const configPath = global_1.globalConfig.getConfigPath();
|
|
200
|
+
if ((0, fs_1.existsSync)(configPath)) {
|
|
201
|
+
(0, fs_1.unlinkSync)(configPath);
|
|
202
|
+
console.log('ā
Legacy configuration file removed.');
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
console.log('ā
Legacy configuration already removed.');
|
|
206
|
+
}
|
|
207
|
+
console.log('');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
console.log('Migration completed successfully!');
|
|
211
|
+
console.log('');
|
|
212
|
+
console.log('Next steps:');
|
|
213
|
+
console.log(` 1. Use: polyv-cli use ${accountName}`);
|
|
214
|
+
console.log(' 2. Test: polyv-cli account current');
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
console.error('ā Failed to migrate account:', error instanceof Error ? error.message : 'Unknown error');
|
|
218
|
+
process.exit(1);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function handleAccountSetDefault(accountName) {
|
|
222
|
+
try {
|
|
223
|
+
const accountManager = new account_config_1.AccountConfigManager();
|
|
224
|
+
const result = accountManager.setDefaultAccount(accountName);
|
|
225
|
+
if (result.success) {
|
|
226
|
+
console.log('ā
' + result.message);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
console.error('ā ' + result.message);
|
|
230
|
+
process.exit(1);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
console.error('ā Failed to set default account:', error instanceof Error ? error.message : 'Unknown error');
|
|
235
|
+
process.exit(1);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
async function handleAccountUnsetDefault() {
|
|
239
|
+
try {
|
|
240
|
+
const accountManager = new account_config_1.AccountConfigManager();
|
|
241
|
+
const result = accountManager.unsetDefaultAccount();
|
|
242
|
+
if (result.success) {
|
|
243
|
+
console.log('ā
' + result.message);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
console.error('ā ' + result.message);
|
|
247
|
+
process.exit(1);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
console.error('ā Failed to unset default account:', error instanceof Error ? error.message : 'Unknown error');
|
|
252
|
+
process.exit(1);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
async function handleAccountCurrent() {
|
|
256
|
+
try {
|
|
257
|
+
const accountManager = new account_config_1.AccountConfigManager();
|
|
258
|
+
const sessionManager = new session_state_1.SessionStateManager(accountManager);
|
|
259
|
+
console.log('š Current Account Status:');
|
|
260
|
+
console.log('');
|
|
261
|
+
const sessionAccount = sessionManager.getCurrentSessionAccount();
|
|
262
|
+
const sessionState = sessionManager.getSessionState();
|
|
263
|
+
if (sessionAccount) {
|
|
264
|
+
console.log('šÆ Current Session Account:');
|
|
265
|
+
console.log(` 蓦å·åē§°: ${sessionAccount}`);
|
|
266
|
+
if (sessionState) {
|
|
267
|
+
const setTime = sessionState.setAt.toLocaleString('zh-CN');
|
|
268
|
+
console.log(` 设置ę¶é“: ${setTime}`);
|
|
269
|
+
if (sessionState.expiresAt) {
|
|
270
|
+
const expireTime = sessionState.expiresAt.toLocaleString('zh-CN');
|
|
271
|
+
console.log(` čæęę¶é“: ${expireTime}`);
|
|
272
|
+
}
|
|
273
|
+
console.log(` ē»ē«ÆID: ${sessionState.terminalId}`);
|
|
274
|
+
console.log(` čæēØID: ${sessionState.processId}`);
|
|
275
|
+
}
|
|
276
|
+
if (!accountManager.accountExists(sessionAccount)) {
|
|
277
|
+
console.log(' ā ļø č¦å: å½åä¼čÆč“¦å·åØé
ē½®äøäøååØ');
|
|
278
|
+
}
|
|
279
|
+
console.log('');
|
|
280
|
+
}
|
|
281
|
+
const authSource = sessionManager.getAuthSource();
|
|
282
|
+
console.log('š Authentication Source:');
|
|
283
|
+
const sourceDesc = authSource.accountName
|
|
284
|
+
? `${authSource.description} (${authSource.accountName})`
|
|
285
|
+
: authSource.description;
|
|
286
|
+
console.log(` ę„ęŗ: ${sourceDesc}`);
|
|
287
|
+
console.log(` ä¼å
ēŗ§: ${authSource.priority}`);
|
|
288
|
+
console.log('');
|
|
289
|
+
const defaultAccount = accountManager.getDefaultAccount();
|
|
290
|
+
if (defaultAccount) {
|
|
291
|
+
console.log('š Default Account:');
|
|
292
|
+
console.log(` 蓦å·åē§°: ${defaultAccount}`);
|
|
293
|
+
if (!accountManager.accountExists(defaultAccount)) {
|
|
294
|
+
console.log(' ā ļø č¦å: é»č®¤č“¦å·åØé
ē½®äøäøååØ');
|
|
295
|
+
}
|
|
296
|
+
console.log('');
|
|
297
|
+
}
|
|
298
|
+
const accounts = accountManager.listAccounts();
|
|
299
|
+
console.log('š Available Accounts:');
|
|
300
|
+
if (accounts.length === 0) {
|
|
301
|
+
console.log(' ę²”ęé
置任ä½č“¦å·ć');
|
|
302
|
+
console.log('');
|
|
303
|
+
console.log('ä½æēØ "polyv-cli account add <name>" ę·»å 蓦å·ć');
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
accounts.forEach(account => {
|
|
307
|
+
const isCurrent = account.name === sessionAccount;
|
|
308
|
+
const isDefault = account.name === defaultAccount;
|
|
309
|
+
let marker = '';
|
|
310
|
+
if (isCurrent && isDefault) {
|
|
311
|
+
marker = ' (å½åä¼čÆ, é»č®¤)';
|
|
312
|
+
}
|
|
313
|
+
else if (isCurrent) {
|
|
314
|
+
marker = ' (å½åä¼čÆ)';
|
|
315
|
+
}
|
|
316
|
+
else if (isDefault) {
|
|
317
|
+
marker = ' (é»č®¤)';
|
|
318
|
+
}
|
|
319
|
+
const createdDate = new Date(account.createdAt).toLocaleDateString('zh-CN');
|
|
320
|
+
console.log(` ⢠${account.name}${marker}`);
|
|
321
|
+
console.log(` App ID: ${account.appId}`);
|
|
322
|
+
if (account.userId) {
|
|
323
|
+
console.log(` User ID: ${account.userId}`);
|
|
324
|
+
}
|
|
325
|
+
console.log(` å建ę¶é“: ${createdDate}`);
|
|
326
|
+
});
|
|
327
|
+
console.log('');
|
|
328
|
+
if (!sessionAccount && !defaultAccount) {
|
|
329
|
+
console.log('ä½æēØ "polyv-cli use <account-name>" åę¢å°ęå®č“¦å·ć');
|
|
330
|
+
console.log('ęä½æēØ "polyv-cli account set-default <account-name>" 设置é»č®¤č“¦å·ć');
|
|
331
|
+
}
|
|
332
|
+
else if (!sessionAccount && defaultAccount) {
|
|
333
|
+
console.log('ä½æēØ "polyv-cli use <account-name>" åę¢å°ęå®č“¦å·ć');
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
console.log('š Session Information:');
|
|
337
|
+
console.log(` ä¼čÆē®å½: ${sessionManager.getSessionDir()}`);
|
|
338
|
+
console.log(` ēÆå¢åé: ${sessionManager.getEnvVarName()}`);
|
|
339
|
+
}
|
|
340
|
+
catch (error) {
|
|
341
|
+
console.error('ā Failed to get current account:', error instanceof Error ? error.message : 'Unknown error');
|
|
342
|
+
process.exit(1);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
function registerAccountCommands(program) {
|
|
346
|
+
const accountCmd = program
|
|
347
|
+
.command('account')
|
|
348
|
+
.description('Manage PolyV account configurations');
|
|
349
|
+
accountCmd
|
|
350
|
+
.command('add <name>')
|
|
351
|
+
.description('Add a new account configuration')
|
|
352
|
+
.requiredOption('--app-id <id>', 'PolyV application ID')
|
|
353
|
+
.requiredOption('--app-secret <secret>', 'PolyV application secret')
|
|
354
|
+
.option('--user-id <uid>', 'Optional user ID')
|
|
355
|
+
.action(handleAccountAdd);
|
|
356
|
+
accountCmd
|
|
357
|
+
.command('remove <name>')
|
|
358
|
+
.description('Remove an account configuration')
|
|
359
|
+
.option('--force', 'Skip confirmation prompt')
|
|
360
|
+
.action(handleAccountRemove);
|
|
361
|
+
accountCmd
|
|
362
|
+
.command('list')
|
|
363
|
+
.description('List all configured accounts')
|
|
364
|
+
.option('--output <format>', 'Output format (table|json)', config_1.validateOutputFormat, 'table')
|
|
365
|
+
.action(handleAccountList);
|
|
366
|
+
accountCmd
|
|
367
|
+
.command('current')
|
|
368
|
+
.description('Show current account information')
|
|
369
|
+
.action(handleAccountCurrent);
|
|
370
|
+
accountCmd
|
|
371
|
+
.command('migrate')
|
|
372
|
+
.description('Migrate legacy configuration to new account system')
|
|
373
|
+
.option('--name <name>', 'Name for the migrated account (default: legacy_<appId>)')
|
|
374
|
+
.option('--force', 'Skip confirmation prompts')
|
|
375
|
+
.option('--keep-legacy', 'Keep legacy configuration file after migration')
|
|
376
|
+
.action(handleAccountMigrate);
|
|
377
|
+
accountCmd
|
|
378
|
+
.command('set-default <name>')
|
|
379
|
+
.description('Set an account as the default account')
|
|
380
|
+
.action(handleAccountSetDefault);
|
|
381
|
+
accountCmd
|
|
382
|
+
.command('unset-default')
|
|
383
|
+
.description('Remove the current default account setting')
|
|
384
|
+
.action(handleAccountUnsetDefault);
|
|
385
|
+
}
|
|
386
|
+
//# sourceMappingURL=account.commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.commands.js","sourceRoot":"","sources":["../../src/commands/account.commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.commands.d.ts","sourceRoot":"","sources":["../../src/commands/channel.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"channel.commands.d.ts","sourceRoot":"","sources":["../../src/commands/channel.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2EpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkc9D;AAOD,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM3C;AAOD,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAMpF;AAOD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAMxD;AAOD,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS5C;AAOD,iBAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAM7D;AAGD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACrB,CAAC"}
|
|
@@ -8,7 +8,43 @@ exports.validateLimit = validateLimit;
|
|
|
8
8
|
exports.validateOutputFormat = validateOutputFormat;
|
|
9
9
|
const channel_handler_1 = require("../handlers/channel.handler");
|
|
10
10
|
const manager_1 = require("../config/manager");
|
|
11
|
+
const auth_adapter_1 = require("../config/auth-adapter");
|
|
11
12
|
const errors_1 = require("../utils/errors");
|
|
13
|
+
async function loadAuthAndServiceConfig(parentOptions) {
|
|
14
|
+
const configResult = await manager_1.configManager.load({
|
|
15
|
+
cliOptions: parentOptions,
|
|
16
|
+
});
|
|
17
|
+
const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
|
|
18
|
+
if (!authResult) {
|
|
19
|
+
throw new Error(auth_adapter_1.authAdapter.getStatusMessage(parentOptions));
|
|
20
|
+
}
|
|
21
|
+
const serviceConfig = {
|
|
22
|
+
baseUrl: configResult.config.baseUrl,
|
|
23
|
+
timeout: configResult.config.timeout,
|
|
24
|
+
maxRetries: configResult.config.maxRetries,
|
|
25
|
+
debug: configResult.config.debug
|
|
26
|
+
};
|
|
27
|
+
const isVerbose = !!parentOptions.verbose;
|
|
28
|
+
if (isVerbose) {
|
|
29
|
+
console.log(`š Authentication Source: ${authResult.source}`);
|
|
30
|
+
if (authResult.accountName) {
|
|
31
|
+
console.log(`š¤ Account: ${authResult.accountName}`);
|
|
32
|
+
}
|
|
33
|
+
console.log('');
|
|
34
|
+
}
|
|
35
|
+
const result = {
|
|
36
|
+
authConfig: authResult.config,
|
|
37
|
+
serviceConfig,
|
|
38
|
+
isVerbose,
|
|
39
|
+
};
|
|
40
|
+
if (authResult.source) {
|
|
41
|
+
result.authSource = authResult.source;
|
|
42
|
+
}
|
|
43
|
+
if (authResult.accountName) {
|
|
44
|
+
result.accountName = authResult.accountName;
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
12
48
|
function registerChannelCommands(program) {
|
|
13
49
|
const channelCmd = program.command('channel');
|
|
14
50
|
channelCmd.description('Manage live streaming channels');
|
|
@@ -26,16 +62,8 @@ function registerChannelCommands(program) {
|
|
|
26
62
|
.action(async (options) => {
|
|
27
63
|
try {
|
|
28
64
|
const parentOptions = program.opts();
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
});
|
|
32
|
-
const serviceConfig = {
|
|
33
|
-
baseUrl: configResult.config.baseUrl,
|
|
34
|
-
timeout: configResult.config.timeout,
|
|
35
|
-
maxRetries: configResult.config.maxRetries,
|
|
36
|
-
debug: configResult.config.debug
|
|
37
|
-
};
|
|
38
|
-
const channelHandler = new channel_handler_1.ChannelHandler(configResult.config.auth, serviceConfig);
|
|
65
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
66
|
+
const channelHandler = new channel_handler_1.ChannelHandler(authConfig, serviceConfig);
|
|
39
67
|
const channelOptions = {
|
|
40
68
|
name: options.name,
|
|
41
69
|
description: options.description,
|
|
@@ -49,6 +77,18 @@ function registerChannelCommands(program) {
|
|
|
49
77
|
await channelHandler.create(channelOptions);
|
|
50
78
|
}
|
|
51
79
|
catch (error) {
|
|
80
|
+
if (error instanceof Error && error.message.includes('Authentication')) {
|
|
81
|
+
const diagnostics = auth_adapter_1.authAdapter.getDiagnostics(program.opts());
|
|
82
|
+
console.error('\nš Authentication Diagnostics:');
|
|
83
|
+
diagnostics.availableSources.forEach(source => {
|
|
84
|
+
const status = source.appId && source.appSecret ? 'ā
' : 'ā';
|
|
85
|
+
console.error(` ${status} ${source.metadata.source}: ${source.type}`);
|
|
86
|
+
});
|
|
87
|
+
if (diagnostics.errors.length > 0) {
|
|
88
|
+
console.error('\nā Errors:');
|
|
89
|
+
diagnostics.errors.forEach(error => console.error(` - ${error}`));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
52
92
|
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
53
93
|
process.exit(1);
|
|
54
94
|
}
|
|
@@ -91,16 +131,8 @@ Output Formats:
|
|
|
91
131
|
.action(async (options) => {
|
|
92
132
|
try {
|
|
93
133
|
const parentOptions = program.opts();
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
});
|
|
97
|
-
const serviceConfig = {
|
|
98
|
-
baseUrl: configResult.config.baseUrl,
|
|
99
|
-
timeout: configResult.config.timeout,
|
|
100
|
-
maxRetries: configResult.config.maxRetries,
|
|
101
|
-
debug: configResult.config.debug
|
|
102
|
-
};
|
|
103
|
-
const channelHandler = new channel_handler_1.ChannelHandler(configResult.config.auth, serviceConfig);
|
|
134
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
135
|
+
const channelHandler = new channel_handler_1.ChannelHandler(authConfig, serviceConfig);
|
|
104
136
|
const listOptions = {
|
|
105
137
|
page: options.page,
|
|
106
138
|
limit: options.limit,
|
|
@@ -112,6 +144,18 @@ Output Formats:
|
|
|
112
144
|
await channelHandler.listChannels(listOptions);
|
|
113
145
|
}
|
|
114
146
|
catch (error) {
|
|
147
|
+
if (error instanceof Error && error.message.includes('Authentication')) {
|
|
148
|
+
const diagnostics = auth_adapter_1.authAdapter.getDiagnostics(program.opts());
|
|
149
|
+
console.error('\nš Authentication Diagnostics:');
|
|
150
|
+
diagnostics.availableSources.forEach(source => {
|
|
151
|
+
const status = source.appId && source.appSecret ? 'ā
' : 'ā';
|
|
152
|
+
console.error(` ${status} ${source.metadata.source}: ${source.type}`);
|
|
153
|
+
});
|
|
154
|
+
if (diagnostics.errors.length > 0) {
|
|
155
|
+
console.error('\nā Errors:');
|
|
156
|
+
diagnostics.errors.forEach(error => console.error(` - ${error}`));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
115
159
|
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
116
160
|
process.exit(1);
|
|
117
161
|
}
|
|
@@ -149,16 +193,8 @@ Output Formats:
|
|
|
149
193
|
.action(async (options) => {
|
|
150
194
|
try {
|
|
151
195
|
const parentOptions = program.opts();
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
});
|
|
155
|
-
const serviceConfig = {
|
|
156
|
-
baseUrl: configResult.config.baseUrl,
|
|
157
|
-
timeout: configResult.config.timeout,
|
|
158
|
-
maxRetries: configResult.config.maxRetries,
|
|
159
|
-
debug: configResult.config.debug
|
|
160
|
-
};
|
|
161
|
-
const channelHandler = new channel_handler_1.ChannelHandler(configResult.config.auth, serviceConfig);
|
|
196
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
197
|
+
const channelHandler = new channel_handler_1.ChannelHandler(authConfig, serviceConfig);
|
|
162
198
|
const getOptions = {
|
|
163
199
|
channelId: options.channelId,
|
|
164
200
|
output: options.output
|
|
@@ -166,6 +202,18 @@ Output Formats:
|
|
|
166
202
|
await channelHandler.getChannelDetail(getOptions);
|
|
167
203
|
}
|
|
168
204
|
catch (error) {
|
|
205
|
+
if (error instanceof Error && error.message.includes('Authentication')) {
|
|
206
|
+
const diagnostics = auth_adapter_1.authAdapter.getDiagnostics(program.opts());
|
|
207
|
+
console.error('\nš Authentication Diagnostics:');
|
|
208
|
+
diagnostics.availableSources.forEach(source => {
|
|
209
|
+
const status = source.appId && source.appSecret ? 'ā
' : 'ā';
|
|
210
|
+
console.error(` ${status} ${source.metadata.source}: ${source.type}`);
|
|
211
|
+
});
|
|
212
|
+
if (diagnostics.errors.length > 0) {
|
|
213
|
+
console.error('\nā Errors:');
|
|
214
|
+
diagnostics.errors.forEach(error => console.error(` - ${error}`));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
169
217
|
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
170
218
|
process.exit(1);
|
|
171
219
|
}
|
|
@@ -207,16 +255,8 @@ Note:
|
|
|
207
255
|
.action(async (options) => {
|
|
208
256
|
try {
|
|
209
257
|
const parentOptions = program.opts();
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
});
|
|
213
|
-
const serviceConfig = {
|
|
214
|
-
baseUrl: configResult.config.baseUrl,
|
|
215
|
-
timeout: configResult.config.timeout,
|
|
216
|
-
maxRetries: configResult.config.maxRetries,
|
|
217
|
-
debug: configResult.config.debug
|
|
218
|
-
};
|
|
219
|
-
const channelHandler = new channel_handler_1.ChannelHandler(configResult.config.auth, serviceConfig);
|
|
258
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
259
|
+
const channelHandler = new channel_handler_1.ChannelHandler(authConfig, serviceConfig);
|
|
220
260
|
const updateOptions = {
|
|
221
261
|
channelId: options.channelId,
|
|
222
262
|
name: options.name,
|
|
@@ -280,16 +320,8 @@ Note:
|
|
|
280
320
|
.action(async (options) => {
|
|
281
321
|
try {
|
|
282
322
|
const parentOptions = program.opts();
|
|
283
|
-
const
|
|
284
|
-
|
|
285
|
-
});
|
|
286
|
-
const serviceConfig = {
|
|
287
|
-
baseUrl: configResult.config.baseUrl,
|
|
288
|
-
timeout: configResult.config.timeout,
|
|
289
|
-
maxRetries: configResult.config.maxRetries,
|
|
290
|
-
debug: configResult.config.debug
|
|
291
|
-
};
|
|
292
|
-
const channelHandler = new channel_handler_1.ChannelHandler(configResult.config.auth, serviceConfig);
|
|
323
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
324
|
+
const channelHandler = new channel_handler_1.ChannelHandler(authConfig, serviceConfig);
|
|
293
325
|
const deleteOptions = {
|
|
294
326
|
channelId: options.channelId,
|
|
295
327
|
force: options.force || false,
|
|
@@ -343,16 +375,8 @@ Non-Interactive Environments:
|
|
|
343
375
|
.action(async (options) => {
|
|
344
376
|
try {
|
|
345
377
|
const parentOptions = program.opts();
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
});
|
|
349
|
-
const serviceConfig = {
|
|
350
|
-
baseUrl: configResult.config.baseUrl,
|
|
351
|
-
timeout: configResult.config.timeout,
|
|
352
|
-
maxRetries: configResult.config.maxRetries,
|
|
353
|
-
debug: configResult.config.debug
|
|
354
|
-
};
|
|
355
|
-
const channelHandler = new channel_handler_1.ChannelHandler(configResult.config.auth, serviceConfig);
|
|
378
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
379
|
+
const channelHandler = new channel_handler_1.ChannelHandler(authConfig, serviceConfig);
|
|
356
380
|
const deleteOptions = {
|
|
357
381
|
channelIds: options.channelIds,
|
|
358
382
|
force: options.force || false,
|