polyv-live-cli 1.0.2
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/LICENSE +21 -0
- package/README.md +417 -0
- package/dist/commands/channel.commands.d.ts +9 -0
- package/dist/commands/channel.commands.d.ts.map +1 -0
- package/dist/commands/channel.commands.js +439 -0
- package/dist/commands/channel.commands.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +8 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/stream.commands.d.ts +3 -0
- package/dist/commands/stream.commands.d.ts.map +1 -0
- package/dist/commands/stream.commands.js +272 -0
- package/dist/commands/stream.commands.js.map +1 -0
- package/dist/config/auth.d.ts +11 -0
- package/dist/config/auth.d.ts.map +1 -0
- package/dist/config/auth.js +124 -0
- package/dist/config/auth.js.map +1 -0
- package/dist/config/loader.d.ts +22 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +127 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/manager.d.ts +20 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +258 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/validator.d.ts +43 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +222 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/handlers/base.handler.d.ts +15 -0
- package/dist/handlers/base.handler.d.ts.map +1 -0
- package/dist/handlers/base.handler.js +122 -0
- package/dist/handlers/base.handler.js.map +1 -0
- package/dist/handlers/channel.handler.d.ts +31 -0
- package/dist/handlers/channel.handler.d.ts.map +1 -0
- package/dist/handlers/channel.handler.js +690 -0
- package/dist/handlers/channel.handler.js.map +1 -0
- package/dist/handlers/index.d.ts +4 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +10 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/stream.handler.d.ts +25 -0
- package/dist/handlers/stream.handler.d.ts.map +1 -0
- package/dist/handlers/stream.handler.js +241 -0
- package/dist/handlers/stream.handler.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +342 -0
- package/dist/index.js.map +1 -0
- package/dist/services/channel.service.d.ts +25 -0
- package/dist/services/channel.service.d.ts.map +1 -0
- package/dist/services/channel.service.js +672 -0
- package/dist/services/channel.service.js.map +1 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/stream.service.d.ts +29 -0
- package/dist/services/stream.service.d.ts.map +1 -0
- package/dist/services/stream.service.js +489 -0
- package/dist/services/stream.service.js.map +1 -0
- package/dist/types/auth.d.ts +31 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +14 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/channel.d.ts +262 -0
- package/dist/types/channel.d.ts.map +1 -0
- package/dist/types/channel.js +3 -0
- package/dist/types/channel.js.map +1 -0
- package/dist/types/config.d.ts +82 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +56 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +22 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/signature.d.ts +22 -0
- package/dist/types/signature.d.ts.map +1 -0
- package/dist/types/signature.js +3 -0
- package/dist/types/signature.js.map +1 -0
- package/dist/types/stream.d.ts +104 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/stream.js +3 -0
- package/dist/types/stream.js.map +1 -0
- package/dist/utils/confirmation.d.ts +12 -0
- package/dist/utils/confirmation.d.ts.map +1 -0
- package/dist/utils/confirmation.js +164 -0
- package/dist/utils/confirmation.js.map +1 -0
- package/dist/utils/errors.d.ts +40 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +113 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/formatter.d.ts +8 -0
- package/dist/utils/formatter.d.ts.map +1 -0
- package/dist/utils/formatter.js +93 -0
- package/dist/utils/formatter.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +20 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/signature.d.ts +9 -0
- package/dist/utils/signature.d.ts.map +1 -0
- package/dist/utils/signature.js +77 -0
- package/dist/utils/signature.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configManager = exports.ConfigManager = void 0;
|
|
4
|
+
exports.loadConfig = loadConfig;
|
|
5
|
+
exports.getConfig = getConfig;
|
|
6
|
+
exports.reloadConfig = reloadConfig;
|
|
7
|
+
const errors_1 = require("../utils/errors");
|
|
8
|
+
const loader_1 = require("./loader");
|
|
9
|
+
const validator_1 = require("./validator");
|
|
10
|
+
const auth_1 = require("./auth");
|
|
11
|
+
class ConfigManager {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.config = null;
|
|
14
|
+
this.sources = null;
|
|
15
|
+
this.loadedEnvFiles = [];
|
|
16
|
+
}
|
|
17
|
+
async load(options = {}) {
|
|
18
|
+
this.config = null;
|
|
19
|
+
this.sources = null;
|
|
20
|
+
this.loadedEnvFiles = [];
|
|
21
|
+
let { environment, source: environmentSource } = this.determineEnvironment(options);
|
|
22
|
+
const envFileOptions = {
|
|
23
|
+
baseDir: process.cwd(),
|
|
24
|
+
};
|
|
25
|
+
if (options.envFiles) {
|
|
26
|
+
envFileOptions.additionalFiles = options.envFiles;
|
|
27
|
+
}
|
|
28
|
+
if (options.skipEnvFile) {
|
|
29
|
+
envFileOptions.override = options.skipEnvFile;
|
|
30
|
+
}
|
|
31
|
+
const originalEnvVars = {};
|
|
32
|
+
const configEnvVars = [
|
|
33
|
+
'POLYV_ENVIRONMENT', 'POLYV_DEBUG', 'POLYV_TIMEOUT', 'POLYV_BASE_URL',
|
|
34
|
+
'POLYV_MAX_RETRIES', 'POLYV_CONFIG_PATH', 'POLYV_APP_ID', 'POLYV_APP_SECRET', 'POLYV_USER_ID'
|
|
35
|
+
];
|
|
36
|
+
for (const varName of configEnvVars) {
|
|
37
|
+
originalEnvVars[varName] = process.env[varName];
|
|
38
|
+
}
|
|
39
|
+
if (environmentSource === 'default') {
|
|
40
|
+
(0, loader_1.loadEnvironmentConfig)('production', envFileOptions, true);
|
|
41
|
+
const newEnvResult = this.determineEnvironment(options);
|
|
42
|
+
environment = newEnvResult.environment;
|
|
43
|
+
environmentSource = newEnvResult.source;
|
|
44
|
+
}
|
|
45
|
+
const envFileResults = (0, loader_1.loadEnvironmentConfig)(environment, envFileOptions, true);
|
|
46
|
+
for (const varName of configEnvVars) {
|
|
47
|
+
if (originalEnvVars[varName] !== undefined) {
|
|
48
|
+
process.env[varName] = originalEnvVars[varName];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this.loadedEnvFiles = envFileResults
|
|
52
|
+
.filter(result => result.loaded)
|
|
53
|
+
.map(result => result.path);
|
|
54
|
+
const rawConfig = (0, loader_1.extractRawConfig)();
|
|
55
|
+
const parsedConfig = (0, validator_1.parseRawConfig)(rawConfig, environment);
|
|
56
|
+
const cliConfig = this.loadCliConfig(options.cliOptions || {});
|
|
57
|
+
if (cliConfig.errors.length > 0) {
|
|
58
|
+
const errorMessage = `CLI configuration errors:\n${cliConfig.errors.map(e => ` • ${e}`).join('\n')}`;
|
|
59
|
+
throw new errors_1.ConfigurationError(errorMessage);
|
|
60
|
+
}
|
|
61
|
+
const mergedConfig = this.mergeConfigurations(parsedConfig, cliConfig, environment, environmentSource, options.configPath);
|
|
62
|
+
const configWithDefaults = (0, validator_1.applyDefaults)(mergedConfig.config, environment);
|
|
63
|
+
const authConfig = this.createAuthConfig(configWithDefaults.auth);
|
|
64
|
+
const finalConfig = {
|
|
65
|
+
...configWithDefaults,
|
|
66
|
+
auth: authConfig,
|
|
67
|
+
};
|
|
68
|
+
const validation = (0, validator_1.validateAppConfig)(finalConfig);
|
|
69
|
+
if (!validation.isValid) {
|
|
70
|
+
const errorMessage = (0, validator_1.createConfigErrorMessage)(validation);
|
|
71
|
+
throw new errors_1.ConfigurationError(errorMessage);
|
|
72
|
+
}
|
|
73
|
+
this.config = finalConfig;
|
|
74
|
+
this.sources = mergedConfig.sources;
|
|
75
|
+
return {
|
|
76
|
+
config: finalConfig,
|
|
77
|
+
sources: mergedConfig.sources,
|
|
78
|
+
validation,
|
|
79
|
+
loadedEnvFiles: this.loadedEnvFiles,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
getConfig() {
|
|
83
|
+
return this.config;
|
|
84
|
+
}
|
|
85
|
+
getSources() {
|
|
86
|
+
return this.sources;
|
|
87
|
+
}
|
|
88
|
+
getLoadedEnvFiles() {
|
|
89
|
+
return [...this.loadedEnvFiles];
|
|
90
|
+
}
|
|
91
|
+
async reload(options = {}) {
|
|
92
|
+
return this.load(options);
|
|
93
|
+
}
|
|
94
|
+
determineEnvironment(options) {
|
|
95
|
+
if (options.environment) {
|
|
96
|
+
return { environment: options.environment, source: 'cli' };
|
|
97
|
+
}
|
|
98
|
+
if (options.cliOptions && typeof options.cliOptions['environment'] === 'string') {
|
|
99
|
+
const { validateEnvironment } = require('./loader');
|
|
100
|
+
const env = validateEnvironment(options.cliOptions['environment']);
|
|
101
|
+
if (env) {
|
|
102
|
+
return { environment: env, source: 'cli' };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const { validateEnvironment } = require('./loader');
|
|
106
|
+
const envFromVar = validateEnvironment(process.env['POLYV_ENVIRONMENT']);
|
|
107
|
+
if (envFromVar) {
|
|
108
|
+
return { environment: envFromVar, source: 'env' };
|
|
109
|
+
}
|
|
110
|
+
return { environment: 'production', source: 'default' };
|
|
111
|
+
}
|
|
112
|
+
loadCliConfig(cliOptions) {
|
|
113
|
+
const errors = [];
|
|
114
|
+
const config = {
|
|
115
|
+
auth: (0, auth_1.loadAuthFromCLI)(cliOptions),
|
|
116
|
+
errors,
|
|
117
|
+
};
|
|
118
|
+
if (typeof cliOptions['environment'] === 'string') {
|
|
119
|
+
const env = (0, loader_1.validateEnvironment)(cliOptions['environment']);
|
|
120
|
+
if (env)
|
|
121
|
+
config.environment = env;
|
|
122
|
+
}
|
|
123
|
+
if (typeof cliOptions['debug'] === 'boolean') {
|
|
124
|
+
config.debug = cliOptions['debug'];
|
|
125
|
+
}
|
|
126
|
+
if (typeof cliOptions['timeout'] === 'string') {
|
|
127
|
+
const timeout = (0, loader_1.parseInteger)(cliOptions['timeout'], 0, 1000, 300000);
|
|
128
|
+
if (timeout > 0) {
|
|
129
|
+
config.timeout = timeout;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
errors.push(`Invalid timeout value '${cliOptions['timeout']}'. Must be between 1000 and 300000 milliseconds.`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (typeof cliOptions['baseUrl'] === 'string') {
|
|
136
|
+
const baseUrl = (0, loader_1.parseUrl)(cliOptions['baseUrl'], '');
|
|
137
|
+
if (baseUrl)
|
|
138
|
+
config.baseUrl = baseUrl;
|
|
139
|
+
}
|
|
140
|
+
if (typeof cliOptions['maxRetries'] === 'string') {
|
|
141
|
+
const maxRetries = (0, loader_1.parseInteger)(cliOptions['maxRetries'], -1, 0, 10);
|
|
142
|
+
if (maxRetries >= 0) {
|
|
143
|
+
config.maxRetries = maxRetries;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
errors.push(`Invalid maxRetries value '${cliOptions['maxRetries']}'. Must be between 0 and 10.`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (typeof cliOptions['config'] === 'string') {
|
|
150
|
+
config.configPath = cliOptions['config'];
|
|
151
|
+
}
|
|
152
|
+
return config;
|
|
153
|
+
}
|
|
154
|
+
mergeConfigurations(parsedConfig, cliConfig, environment, environmentSource, configPath) {
|
|
155
|
+
const sources = {
|
|
156
|
+
environment: environmentSource,
|
|
157
|
+
debug: 'default',
|
|
158
|
+
timeout: 'default',
|
|
159
|
+
baseUrl: 'default',
|
|
160
|
+
maxRetries: 'default',
|
|
161
|
+
};
|
|
162
|
+
const config = {
|
|
163
|
+
environment: environment,
|
|
164
|
+
debug: parsedConfig.debug,
|
|
165
|
+
timeout: parsedConfig.timeout,
|
|
166
|
+
baseUrl: parsedConfig.baseUrl,
|
|
167
|
+
maxRetries: parsedConfig.maxRetries,
|
|
168
|
+
auth: { ...parsedConfig.auth },
|
|
169
|
+
};
|
|
170
|
+
if (parsedConfig.configPath) {
|
|
171
|
+
config.configPath = parsedConfig.configPath;
|
|
172
|
+
}
|
|
173
|
+
if (process.env['POLYV_DEBUG']) {
|
|
174
|
+
sources.debug = 'env';
|
|
175
|
+
}
|
|
176
|
+
if (process.env['POLYV_TIMEOUT']) {
|
|
177
|
+
sources.timeout = 'env';
|
|
178
|
+
}
|
|
179
|
+
if (process.env['POLYV_BASE_URL']) {
|
|
180
|
+
sources.baseUrl = 'env';
|
|
181
|
+
}
|
|
182
|
+
if (process.env['POLYV_MAX_RETRIES']) {
|
|
183
|
+
sources.maxRetries = 'env';
|
|
184
|
+
}
|
|
185
|
+
if (process.env['POLYV_CONFIG_PATH']) {
|
|
186
|
+
sources.configPath = 'env';
|
|
187
|
+
}
|
|
188
|
+
if (cliConfig.debug !== undefined) {
|
|
189
|
+
config.debug = cliConfig.debug;
|
|
190
|
+
sources.debug = 'cli';
|
|
191
|
+
}
|
|
192
|
+
if (cliConfig.timeout !== undefined) {
|
|
193
|
+
config.timeout = cliConfig.timeout;
|
|
194
|
+
sources.timeout = 'cli';
|
|
195
|
+
}
|
|
196
|
+
if (cliConfig.baseUrl !== undefined) {
|
|
197
|
+
config.baseUrl = cliConfig.baseUrl;
|
|
198
|
+
sources.baseUrl = 'cli';
|
|
199
|
+
}
|
|
200
|
+
if (cliConfig.maxRetries !== undefined) {
|
|
201
|
+
config.maxRetries = cliConfig.maxRetries;
|
|
202
|
+
sources.maxRetries = 'cli';
|
|
203
|
+
}
|
|
204
|
+
if (cliConfig.configPath !== undefined) {
|
|
205
|
+
config.configPath = cliConfig.configPath;
|
|
206
|
+
sources.configPath = 'cli';
|
|
207
|
+
}
|
|
208
|
+
const envAuth = (0, auth_1.loadAuthFromEnv)();
|
|
209
|
+
if (cliConfig.auth.appId) {
|
|
210
|
+
config.auth.appId = cliConfig.auth.appId;
|
|
211
|
+
}
|
|
212
|
+
else if (envAuth.appId) {
|
|
213
|
+
config.auth.appId = envAuth.appId;
|
|
214
|
+
}
|
|
215
|
+
if (cliConfig.auth.appSecret) {
|
|
216
|
+
config.auth.appSecret = cliConfig.auth.appSecret;
|
|
217
|
+
}
|
|
218
|
+
else if (envAuth.appSecret) {
|
|
219
|
+
config.auth.appSecret = envAuth.appSecret;
|
|
220
|
+
}
|
|
221
|
+
if (cliConfig.auth.userId) {
|
|
222
|
+
config.auth.userId = cliConfig.auth.userId;
|
|
223
|
+
}
|
|
224
|
+
else if (envAuth.userId) {
|
|
225
|
+
config.auth.userId = envAuth.userId;
|
|
226
|
+
}
|
|
227
|
+
if (configPath) {
|
|
228
|
+
const foundConfigFile = (0, loader_1.findConfigFile)(configPath);
|
|
229
|
+
if (foundConfigFile) {
|
|
230
|
+
config.configPath = foundConfigFile;
|
|
231
|
+
sources.configPath = 'cli';
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return { config, sources };
|
|
235
|
+
}
|
|
236
|
+
createAuthConfig(authOptions) {
|
|
237
|
+
if (!authOptions.appId || !authOptions.appSecret) {
|
|
238
|
+
throw new errors_1.ConfigurationError('Auth configuration is incomplete');
|
|
239
|
+
}
|
|
240
|
+
return {
|
|
241
|
+
appId: authOptions.appId,
|
|
242
|
+
appSecret: authOptions.appSecret,
|
|
243
|
+
...(authOptions.userId && { userId: authOptions.userId }),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
exports.ConfigManager = ConfigManager;
|
|
248
|
+
exports.configManager = new ConfigManager();
|
|
249
|
+
async function loadConfig(options = {}) {
|
|
250
|
+
return exports.configManager.load(options);
|
|
251
|
+
}
|
|
252
|
+
function getConfig() {
|
|
253
|
+
return exports.configManager.getConfig();
|
|
254
|
+
}
|
|
255
|
+
async function reloadConfig(options = {}) {
|
|
256
|
+
return exports.configManager.reload(options);
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ConfigValidationResult, AppConfig, Environment, RawConfig } from '../types/config';
|
|
2
|
+
import { AuthOptions } from '../types/auth';
|
|
3
|
+
export declare const REQUIRED_FIELDS: {
|
|
4
|
+
readonly AUTH: readonly ["appId", "appSecret"];
|
|
5
|
+
readonly CORE: readonly [];
|
|
6
|
+
};
|
|
7
|
+
export declare const FIELD_CONSTRAINTS: {
|
|
8
|
+
readonly timeout: {
|
|
9
|
+
readonly min: 1000;
|
|
10
|
+
readonly max: 300000;
|
|
11
|
+
};
|
|
12
|
+
readonly maxRetries: {
|
|
13
|
+
readonly min: 0;
|
|
14
|
+
readonly max: 10;
|
|
15
|
+
};
|
|
16
|
+
readonly baseUrl: {
|
|
17
|
+
readonly protocol: readonly ["http:", "https:"];
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare function validateAuth(auth: AuthOptions): Pick<ConfigValidationResult, 'errors' | 'missingFields'>;
|
|
21
|
+
export declare function validateEnvironmentConfig(environment: Environment): string[];
|
|
22
|
+
export declare function validateTimeout(timeout: number): string[];
|
|
23
|
+
export declare function validateMaxRetries(maxRetries: number): string[];
|
|
24
|
+
export declare function validateBaseUrl(baseUrl: string): string[];
|
|
25
|
+
export declare function parseRawConfig(rawConfig: RawConfig, environment: Environment): {
|
|
26
|
+
environment: Environment;
|
|
27
|
+
debug: boolean;
|
|
28
|
+
timeout: number;
|
|
29
|
+
baseUrl: string;
|
|
30
|
+
maxRetries: number;
|
|
31
|
+
configPath?: string;
|
|
32
|
+
auth: AuthOptions;
|
|
33
|
+
errors: string[];
|
|
34
|
+
warnings: string[];
|
|
35
|
+
};
|
|
36
|
+
export declare function validateAppConfig(config: AppConfig): ConfigValidationResult;
|
|
37
|
+
export declare function createConfigErrorMessage(validation: ConfigValidationResult): string;
|
|
38
|
+
export declare function applyDefaults(partial: Partial<Omit<AppConfig, 'auth'>> & {
|
|
39
|
+
auth: AuthOptions;
|
|
40
|
+
}, environment: Environment): Omit<AppConfig, 'auth'> & {
|
|
41
|
+
auth: AuthOptions;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAKX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAIpB,CAAC;AAOX,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,eAAe,CAAC,CAyCxG;AAOD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CAQ5E;AAOD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAazD;AAOD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAa/D;AAOD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBzD;AAQD,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG;IAC9E,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAoFA;AAOD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,CA6C3E;AAOD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,sBAAsB,GAAG,MAAM,CAmCnF;AAQD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,EACjE,WAAW,EAAE,WAAW,GACvB,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAiBjD"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FIELD_CONSTRAINTS = exports.REQUIRED_FIELDS = void 0;
|
|
4
|
+
exports.validateAuth = validateAuth;
|
|
5
|
+
exports.validateEnvironmentConfig = validateEnvironmentConfig;
|
|
6
|
+
exports.validateTimeout = validateTimeout;
|
|
7
|
+
exports.validateMaxRetries = validateMaxRetries;
|
|
8
|
+
exports.validateBaseUrl = validateBaseUrl;
|
|
9
|
+
exports.parseRawConfig = parseRawConfig;
|
|
10
|
+
exports.validateAppConfig = validateAppConfig;
|
|
11
|
+
exports.createConfigErrorMessage = createConfigErrorMessage;
|
|
12
|
+
exports.applyDefaults = applyDefaults;
|
|
13
|
+
const config_1 = require("../types/config");
|
|
14
|
+
const loader_1 = require("./loader");
|
|
15
|
+
exports.REQUIRED_FIELDS = {
|
|
16
|
+
AUTH: ['appId', 'appSecret'],
|
|
17
|
+
CORE: [],
|
|
18
|
+
};
|
|
19
|
+
exports.FIELD_CONSTRAINTS = {
|
|
20
|
+
timeout: { min: 1000, max: 300000 },
|
|
21
|
+
maxRetries: { min: 0, max: 10 },
|
|
22
|
+
baseUrl: { protocol: ['http:', 'https:'] },
|
|
23
|
+
};
|
|
24
|
+
function validateAuth(auth) {
|
|
25
|
+
const errors = [];
|
|
26
|
+
const missingFields = [];
|
|
27
|
+
if (!auth.appId || !auth.appId.trim()) {
|
|
28
|
+
missingFields.push('appId');
|
|
29
|
+
errors.push('PolyV App ID is required. Set via --appId or POLYV_APP_ID environment variable.');
|
|
30
|
+
}
|
|
31
|
+
if (!auth.appSecret || !auth.appSecret.trim()) {
|
|
32
|
+
missingFields.push('appSecret');
|
|
33
|
+
errors.push('PolyV App Secret is required. Set via --appSecret or POLYV_APP_SECRET environment variable.');
|
|
34
|
+
}
|
|
35
|
+
if (auth.appId && auth.appId.trim()) {
|
|
36
|
+
const trimmedAppId = auth.appId.trim();
|
|
37
|
+
if (trimmedAppId.length < 10) {
|
|
38
|
+
errors.push('App ID appears to be invalid (too short). Please check your PolyV App ID.');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (auth.appSecret && auth.appSecret.trim()) {
|
|
42
|
+
const trimmedAppSecret = auth.appSecret.trim();
|
|
43
|
+
if (trimmedAppSecret.length < 16) {
|
|
44
|
+
errors.push('App Secret appears to be invalid (too short). Please check your PolyV App Secret.');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (auth.userId && auth.userId.trim()) {
|
|
48
|
+
const trimmedUserId = auth.userId.trim();
|
|
49
|
+
if (!/^[a-zA-Z0-9]+$/.test(trimmedUserId)) {
|
|
50
|
+
errors.push('User ID must be alphanumeric (letters and numbers only). Please provide a valid PolyV User ID.');
|
|
51
|
+
}
|
|
52
|
+
if (trimmedUserId.length < 3) {
|
|
53
|
+
errors.push('User ID appears to be invalid (too short). Please check your PolyV User ID.');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return { errors, missingFields };
|
|
57
|
+
}
|
|
58
|
+
function validateEnvironmentConfig(environment) {
|
|
59
|
+
const errors = [];
|
|
60
|
+
if (!config_1.ENVIRONMENT_CONFIGS[environment]) {
|
|
61
|
+
errors.push(`Invalid environment '${environment}'. Must be one of: development, production, test`);
|
|
62
|
+
}
|
|
63
|
+
return errors;
|
|
64
|
+
}
|
|
65
|
+
function validateTimeout(timeout) {
|
|
66
|
+
const errors = [];
|
|
67
|
+
const { min, max } = exports.FIELD_CONSTRAINTS.timeout;
|
|
68
|
+
if (timeout < min) {
|
|
69
|
+
errors.push(`Timeout must be at least ${min}ms (${min / 1000}s)`);
|
|
70
|
+
}
|
|
71
|
+
if (timeout > max) {
|
|
72
|
+
errors.push(`Timeout must not exceed ${max}ms (${max / 1000}s)`);
|
|
73
|
+
}
|
|
74
|
+
return errors;
|
|
75
|
+
}
|
|
76
|
+
function validateMaxRetries(maxRetries) {
|
|
77
|
+
const errors = [];
|
|
78
|
+
const { min, max } = exports.FIELD_CONSTRAINTS.maxRetries;
|
|
79
|
+
if (maxRetries < min) {
|
|
80
|
+
errors.push(`Max retries must be at least ${min}`);
|
|
81
|
+
}
|
|
82
|
+
if (maxRetries > max) {
|
|
83
|
+
errors.push(`Max retries must not exceed ${max}`);
|
|
84
|
+
}
|
|
85
|
+
return errors;
|
|
86
|
+
}
|
|
87
|
+
function validateBaseUrl(baseUrl) {
|
|
88
|
+
const errors = [];
|
|
89
|
+
try {
|
|
90
|
+
const url = new URL(baseUrl);
|
|
91
|
+
if (!exports.FIELD_CONSTRAINTS.baseUrl.protocol.includes(url.protocol)) {
|
|
92
|
+
errors.push(`Base URL must use HTTP or HTTPS protocol, got: ${url.protocol}`);
|
|
93
|
+
}
|
|
94
|
+
if (!url.hostname) {
|
|
95
|
+
errors.push('Base URL must have a valid hostname');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
errors.push(`Invalid base URL format: ${baseUrl}`);
|
|
100
|
+
}
|
|
101
|
+
return errors;
|
|
102
|
+
}
|
|
103
|
+
function parseRawConfig(rawConfig, environment) {
|
|
104
|
+
const errors = [];
|
|
105
|
+
const warnings = [];
|
|
106
|
+
const envDefaults = config_1.ENVIRONMENT_CONFIGS[environment];
|
|
107
|
+
const debug = (0, loader_1.parseBoolean)(rawConfig.POLYV_DEBUG, envDefaults.debug);
|
|
108
|
+
const timeout = (0, loader_1.parseInteger)(rawConfig.POLYV_TIMEOUT, envDefaults.timeout, exports.FIELD_CONSTRAINTS.timeout.min, exports.FIELD_CONSTRAINTS.timeout.max);
|
|
109
|
+
if (rawConfig.POLYV_TIMEOUT && (0, loader_1.parseInteger)(rawConfig.POLYV_TIMEOUT, -1) === -1) {
|
|
110
|
+
warnings.push(`Invalid timeout value '${rawConfig.POLYV_TIMEOUT}', using default: ${envDefaults.timeout}ms`);
|
|
111
|
+
}
|
|
112
|
+
const baseUrl = (0, loader_1.parseUrl)(rawConfig.POLYV_BASE_URL, envDefaults.baseUrl);
|
|
113
|
+
if (rawConfig.POLYV_BASE_URL && baseUrl === envDefaults.baseUrl) {
|
|
114
|
+
warnings.push(`Invalid base URL '${rawConfig.POLYV_BASE_URL}', using default: ${envDefaults.baseUrl}`);
|
|
115
|
+
}
|
|
116
|
+
const maxRetries = (0, loader_1.parseInteger)(rawConfig.POLYV_MAX_RETRIES, envDefaults.maxRetries, exports.FIELD_CONSTRAINTS.maxRetries.min, exports.FIELD_CONSTRAINTS.maxRetries.max);
|
|
117
|
+
if (rawConfig.POLYV_MAX_RETRIES && (0, loader_1.parseInteger)(rawConfig.POLYV_MAX_RETRIES, -1) === -1) {
|
|
118
|
+
warnings.push(`Invalid max retries value '${rawConfig.POLYV_MAX_RETRIES}', using default: ${envDefaults.maxRetries}`);
|
|
119
|
+
}
|
|
120
|
+
const configPath = rawConfig.POLYV_CONFIG_PATH?.trim();
|
|
121
|
+
const auth = {};
|
|
122
|
+
if (rawConfig.POLYV_APP_ID?.trim()) {
|
|
123
|
+
auth.appId = rawConfig.POLYV_APP_ID.trim();
|
|
124
|
+
}
|
|
125
|
+
if (rawConfig.POLYV_APP_SECRET?.trim()) {
|
|
126
|
+
auth.appSecret = rawConfig.POLYV_APP_SECRET.trim();
|
|
127
|
+
}
|
|
128
|
+
if (rawConfig.POLYV_USER_ID?.trim()) {
|
|
129
|
+
auth.userId = rawConfig.POLYV_USER_ID.trim();
|
|
130
|
+
}
|
|
131
|
+
const result = {
|
|
132
|
+
environment,
|
|
133
|
+
debug,
|
|
134
|
+
timeout,
|
|
135
|
+
baseUrl,
|
|
136
|
+
maxRetries,
|
|
137
|
+
auth,
|
|
138
|
+
errors,
|
|
139
|
+
warnings,
|
|
140
|
+
};
|
|
141
|
+
if (configPath) {
|
|
142
|
+
result.configPath = configPath;
|
|
143
|
+
}
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
function validateAppConfig(config) {
|
|
147
|
+
const errors = [];
|
|
148
|
+
const warnings = [];
|
|
149
|
+
const missingFields = [];
|
|
150
|
+
const authValidation = validateAuth(config.auth);
|
|
151
|
+
errors.push(...authValidation.errors);
|
|
152
|
+
missingFields.push(...authValidation.missingFields);
|
|
153
|
+
const envErrors = validateEnvironmentConfig(config.environment);
|
|
154
|
+
errors.push(...envErrors);
|
|
155
|
+
const timeoutErrors = validateTimeout(config.timeout);
|
|
156
|
+
errors.push(...timeoutErrors);
|
|
157
|
+
const retriesErrors = validateMaxRetries(config.maxRetries);
|
|
158
|
+
errors.push(...retriesErrors);
|
|
159
|
+
const urlErrors = validateBaseUrl(config.baseUrl);
|
|
160
|
+
errors.push(...urlErrors);
|
|
161
|
+
if (config.environment === 'development' && !config.debug) {
|
|
162
|
+
warnings.push('Debug mode is disabled in development environment. Consider enabling it for better development experience.');
|
|
163
|
+
}
|
|
164
|
+
if (config.environment === 'production' && config.debug) {
|
|
165
|
+
warnings.push('Debug mode is enabled in production environment. Consider disabling it for better performance.');
|
|
166
|
+
}
|
|
167
|
+
if (config.timeout < 5000 && config.environment === 'production') {
|
|
168
|
+
warnings.push('Timeout is set to less than 5 seconds in production. This might cause issues with slower network connections.');
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
isValid: errors.length === 0 && missingFields.length === 0,
|
|
172
|
+
errors,
|
|
173
|
+
warnings,
|
|
174
|
+
missingFields,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function createConfigErrorMessage(validation) {
|
|
178
|
+
if (validation.isValid) {
|
|
179
|
+
return 'Configuration is valid';
|
|
180
|
+
}
|
|
181
|
+
let message = 'Configuration validation failed:\n\n';
|
|
182
|
+
if (validation.missingFields.length > 0) {
|
|
183
|
+
message += '❌ Missing required fields:\n';
|
|
184
|
+
validation.missingFields.forEach(field => {
|
|
185
|
+
message += ` • ${field}\n`;
|
|
186
|
+
});
|
|
187
|
+
message += '\n';
|
|
188
|
+
}
|
|
189
|
+
if (validation.errors.length > 0) {
|
|
190
|
+
message += '❌ Configuration errors:\n';
|
|
191
|
+
validation.errors.forEach(error => {
|
|
192
|
+
message += ` • ${error}\n`;
|
|
193
|
+
});
|
|
194
|
+
message += '\n';
|
|
195
|
+
}
|
|
196
|
+
if (validation.warnings.length > 0) {
|
|
197
|
+
message += '⚠️ Configuration warnings:\n';
|
|
198
|
+
validation.warnings.forEach(warning => {
|
|
199
|
+
message += ` • ${warning}\n`;
|
|
200
|
+
});
|
|
201
|
+
message += '\n';
|
|
202
|
+
}
|
|
203
|
+
message += 'Please fix the above issues before proceeding.\n';
|
|
204
|
+
message += '\nFor help with configuration, run: polyv-cli --help';
|
|
205
|
+
return message.trim();
|
|
206
|
+
}
|
|
207
|
+
function applyDefaults(partial, environment) {
|
|
208
|
+
const envDefaults = config_1.ENVIRONMENT_CONFIGS[environment];
|
|
209
|
+
const result = {
|
|
210
|
+
environment: partial.environment || environment,
|
|
211
|
+
debug: partial.debug !== undefined ? partial.debug : envDefaults.debug,
|
|
212
|
+
timeout: partial.timeout || envDefaults.timeout,
|
|
213
|
+
baseUrl: partial.baseUrl || envDefaults.baseUrl,
|
|
214
|
+
maxRetries: partial.maxRetries !== undefined ? partial.maxRetries : envDefaults.maxRetries,
|
|
215
|
+
auth: partial.auth,
|
|
216
|
+
};
|
|
217
|
+
if (partial.configPath) {
|
|
218
|
+
result.configPath = partial.configPath;
|
|
219
|
+
}
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":";;;AA8BA,oCAyCC;AAOD,8DAQC;AAOD,0CAaC;AAOD,gDAaC;AAOD,0CAkBC;AAQD,wCA8FC;AAOD,8CA6CC;AAOD,4DAmCC;AAQD,sCAoBC;AAnXD,4CAAiH;AAEjH,qCAAgE;AAKnD,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAU;IACrC,IAAI,EAAE,EAAW;CACT,CAAC;AAKE,QAAA,iBAAiB,GAAG;IAC/B,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;IACnC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IAC/B,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;CAClC,CAAC;AAOX,SAAgB,YAAY,CAAC,IAAiB;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAa,EAAE,CAAC;IAGnC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IAC7G,CAAC;IAGD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACnC,CAAC;AAOD,SAAgB,yBAAyB,CAAC,WAAwB;IAChE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,4BAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,wBAAwB,WAAW,kDAAkD,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,SAAgB,eAAe,CAAC,OAAe;IAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,yBAAiB,CAAC,OAAO,CAAC;IAE/C,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,yBAAiB,CAAC,UAAU,CAAC;IAElD,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,SAAgB,eAAe,CAAC,OAAe;IAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAE7B,IAAI,CAAC,yBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAA8B,CAAC,EAAE,CAAC;YACrF,MAAM,CAAC,IAAI,CAAC,kDAAkD,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,SAAgB,cAAc,CAAC,SAAoB,EAAE,WAAwB;IAW3E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAG9B,MAAM,WAAW,GAAG,4BAAmB,CAAC,WAAW,CAAC,CAAC;IAGrD,MAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAGrE,MAAM,OAAO,GAAG,IAAA,qBAAY,EAC1B,SAAS,CAAC,aAAa,EACvB,WAAW,CAAC,OAAO,EACnB,yBAAiB,CAAC,OAAO,CAAC,GAAG,EAC7B,yBAAiB,CAAC,OAAO,CAAC,GAAG,CAC9B,CAAC;IAEF,IAAI,SAAS,CAAC,aAAa,IAAI,IAAA,qBAAY,EAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChF,QAAQ,CAAC,IAAI,CAAC,0BAA0B,SAAS,CAAC,aAAa,qBAAqB,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;IAC/G,CAAC;IAGD,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACxE,IAAI,SAAS,CAAC,cAAc,IAAI,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,cAAc,qBAAqB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACzG,CAAC;IAGD,MAAM,UAAU,GAAG,IAAA,qBAAY,EAC7B,SAAS,CAAC,iBAAiB,EAC3B,WAAW,CAAC,UAAU,EACtB,yBAAiB,CAAC,UAAU,CAAC,GAAG,EAChC,yBAAiB,CAAC,UAAU,CAAC,GAAG,CACjC,CAAC;IAEF,IAAI,SAAS,CAAC,iBAAiB,IAAI,IAAA,qBAAY,EAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxF,QAAQ,CAAC,IAAI,CAAC,8BAA8B,SAAS,CAAC,iBAAiB,qBAAqB,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACxH,CAAC;IAGD,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAGvD,MAAM,IAAI,GAAgB,EAAE,CAAC;IAE7B,IAAI,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAUR;QACF,WAAW;QACX,KAAK;QACL,OAAO;QACP,OAAO;QACP,UAAU;QACV,IAAI;QACJ,MAAM;QACN,QAAQ;KACT,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,SAAgB,iBAAiB,CAAC,MAAiB;IACjD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,aAAa,GAAa,EAAE,CAAC;IAGnC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAGpD,MAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAG1B,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAG9B,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAG9B,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAG1B,IAAI,MAAM,CAAC,WAAW,KAAK,aAAa,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,4GAA4G,CAAC,CAAC;IAC9H,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;IAClH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC,+GAA+G,CAAC,CAAC;IACjI,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAC1D,MAAM;QACN,QAAQ;QACR,aAAa;KACd,CAAC;AACJ,CAAC;AAOD,SAAgB,wBAAwB,CAAC,UAAkC;IACzE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,GAAG,sCAAsC,CAAC;IAErD,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,8BAA8B,CAAC;QAC1C,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvC,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,2BAA2B,CAAC;QACvC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAChC,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,+BAA+B,CAAC;QAC3C,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACpC,OAAO,IAAI,OAAO,OAAO,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,kDAAkD,CAAC;IAC9D,OAAO,IAAI,sDAAsD,CAAC;IAElE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAQD,SAAgB,aAAa,CAC3B,OAAiE,EACjE,WAAwB;IAExB,MAAM,WAAW,GAAG,4BAAmB,CAAC,WAAW,CAAC,CAAC;IAErD,MAAM,MAAM,GAAoD;QAC9D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,WAAW;QAC/C,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK;QACtE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO;QAC/C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO;QAC/C,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU;QAC1F,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;IAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type OutputFormat = 'table' | 'json';
|
|
2
|
+
export declare abstract class BaseHandler {
|
|
3
|
+
protected executeWithErrorHandling<T>(operation: () => Promise<T>, operationName: string): Promise<T>;
|
|
4
|
+
protected displaySuccess(message: string, data?: any, format?: OutputFormat): void;
|
|
5
|
+
protected displayData(data: any, format?: OutputFormat): void;
|
|
6
|
+
protected displayAsTable(data: any): void;
|
|
7
|
+
private displayArrayAsTable;
|
|
8
|
+
private displayObjectAsTable;
|
|
9
|
+
private formatTableValue;
|
|
10
|
+
protected displayError(message: string, details?: any): void;
|
|
11
|
+
protected displayWarning(message: string): void;
|
|
12
|
+
protected displayInfo(message: string): void;
|
|
13
|
+
protected validateRequiredParams(params: Record<string, any>, requiredFields: string[]): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=base.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/base.handler.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAK5C,8BAAsB,WAAW;cAOf,wBAAwB,CAAC,CAAC,EACxC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,CAAC,CAAC;IA0Bb,SAAS,CAAC,cAAc,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,GAAG,EACV,MAAM,GAAE,YAAsB,GAC7B,IAAI;IAaP,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,GAAE,YAAsB,GAAG,IAAI;IAYtE,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAiBzC,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,gBAAgB;IAyBxB,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAY5D,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ/C,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU5C,SAAS,CAAC,sBAAsB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,cAAc,EAAE,MAAM,EAAE,GACvB,IAAI;CAcR"}
|