@cuijy/free-api 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +299 -0
  3. package/bin/freeapi +8 -0
  4. package/dist/cli/commands/chat.d.ts +3 -0
  5. package/dist/cli/commands/chat.d.ts.map +1 -0
  6. package/dist/cli/commands/chat.js +39 -0
  7. package/dist/cli/commands/chat.js.map +1 -0
  8. package/dist/cli/commands/config.d.ts +3 -0
  9. package/dist/cli/commands/config.d.ts.map +1 -0
  10. package/dist/cli/commands/config.js +289 -0
  11. package/dist/cli/commands/config.js.map +1 -0
  12. package/dist/cli/commands/init.d.ts +3 -0
  13. package/dist/cli/commands/init.d.ts.map +1 -0
  14. package/dist/cli/commands/init.js +114 -0
  15. package/dist/cli/commands/init.js.map +1 -0
  16. package/dist/cli/commands/list.d.ts +3 -0
  17. package/dist/cli/commands/list.d.ts.map +1 -0
  18. package/dist/cli/commands/list.js +109 -0
  19. package/dist/cli/commands/list.js.map +1 -0
  20. package/dist/cli/commands/logs.d.ts +3 -0
  21. package/dist/cli/commands/logs.d.ts.map +1 -0
  22. package/dist/cli/commands/logs.js +51 -0
  23. package/dist/cli/commands/logs.js.map +1 -0
  24. package/dist/cli/commands/start.d.ts +3 -0
  25. package/dist/cli/commands/start.d.ts.map +1 -0
  26. package/dist/cli/commands/start.js +34 -0
  27. package/dist/cli/commands/start.js.map +1 -0
  28. package/dist/cli/commands/status.d.ts +3 -0
  29. package/dist/cli/commands/status.d.ts.map +1 -0
  30. package/dist/cli/commands/status.js +45 -0
  31. package/dist/cli/commands/status.js.map +1 -0
  32. package/dist/cli/commands/stop.d.ts +3 -0
  33. package/dist/cli/commands/stop.d.ts.map +1 -0
  34. package/dist/cli/commands/stop.js +54 -0
  35. package/dist/cli/commands/stop.js.map +1 -0
  36. package/dist/cli/index.d.ts +3 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +79 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/index.d.ts +7 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +17 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/services/base/index.d.ts +112 -0
  45. package/dist/services/base/index.d.ts.map +1 -0
  46. package/dist/services/base/index.js +51 -0
  47. package/dist/services/base/index.js.map +1 -0
  48. package/dist/services/base/types.d.ts +114 -0
  49. package/dist/services/base/types.d.ts.map +1 -0
  50. package/dist/services/base/types.js +7 -0
  51. package/dist/services/base/types.js.map +1 -0
  52. package/dist/services/chatgpt/api-client.d.ts +81 -0
  53. package/dist/services/chatgpt/api-client.d.ts.map +1 -0
  54. package/dist/services/chatgpt/api-client.js +325 -0
  55. package/dist/services/chatgpt/api-client.js.map +1 -0
  56. package/dist/services/chatgpt/cli-adapter.d.ts +108 -0
  57. package/dist/services/chatgpt/cli-adapter.d.ts.map +1 -0
  58. package/dist/services/chatgpt/cli-adapter.js +315 -0
  59. package/dist/services/chatgpt/cli-adapter.js.map +1 -0
  60. package/dist/services/chatgpt/config-manager.d.ts +87 -0
  61. package/dist/services/chatgpt/config-manager.d.ts.map +1 -0
  62. package/dist/services/chatgpt/config-manager.js +344 -0
  63. package/dist/services/chatgpt/config-manager.js.map +1 -0
  64. package/dist/services/chatgpt/config-wizard.d.ts +35 -0
  65. package/dist/services/chatgpt/config-wizard.d.ts.map +1 -0
  66. package/dist/services/chatgpt/config-wizard.js +524 -0
  67. package/dist/services/chatgpt/config-wizard.js.map +1 -0
  68. package/dist/services/chatgpt/error-handler.d.ts +94 -0
  69. package/dist/services/chatgpt/error-handler.d.ts.map +1 -0
  70. package/dist/services/chatgpt/error-handler.js +409 -0
  71. package/dist/services/chatgpt/error-handler.js.map +1 -0
  72. package/dist/services/chatgpt/exports.d.ts +71 -0
  73. package/dist/services/chatgpt/exports.d.ts.map +1 -0
  74. package/dist/services/chatgpt/exports.js +81 -0
  75. package/dist/services/chatgpt/exports.js.map +1 -0
  76. package/dist/services/chatgpt/index.d.ts +125 -0
  77. package/dist/services/chatgpt/index.d.ts.map +1 -0
  78. package/dist/services/chatgpt/index.js +394 -0
  79. package/dist/services/chatgpt/index.js.map +1 -0
  80. package/dist/services/chatgpt/service-adapter.d.ts +152 -0
  81. package/dist/services/chatgpt/service-adapter.d.ts.map +1 -0
  82. package/dist/services/chatgpt/service-adapter.js +430 -0
  83. package/dist/services/chatgpt/service-adapter.js.map +1 -0
  84. package/dist/services/chatgpt/session-manager.d.ts +113 -0
  85. package/dist/services/chatgpt/session-manager.d.ts.map +1 -0
  86. package/dist/services/chatgpt/session-manager.js +396 -0
  87. package/dist/services/chatgpt/session-manager.js.map +1 -0
  88. package/dist/services/chatgpt/types.d.ts +130 -0
  89. package/dist/services/chatgpt/types.d.ts.map +1 -0
  90. package/dist/services/chatgpt/types.js +19 -0
  91. package/dist/services/chatgpt/types.js.map +1 -0
  92. package/dist/utils/config.d.ts +61 -0
  93. package/dist/utils/config.d.ts.map +1 -0
  94. package/dist/utils/config.js +215 -0
  95. package/dist/utils/config.js.map +1 -0
  96. package/package.json +91 -0
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ /**
3
+ * ChatGPT API Client
4
+ * Handles HTTP requests to ChatGPT API with authentication and rate limiting
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ChatGPTAPIClient = void 0;
11
+ const axios_1 = __importDefault(require("axios"));
12
+ const events_1 = require("events");
13
+ class ChatGPTAPIClient extends events_1.EventEmitter {
14
+ client;
15
+ config;
16
+ rateLimitInfo;
17
+ // private requestQueue: Array<() => Promise<any>> = [];
18
+ // private isProcessingQueue = false;
19
+ constructor(config) {
20
+ super();
21
+ this.config = config;
22
+ this.rateLimitInfo = {
23
+ limit: config.requests_per_minute,
24
+ remaining: config.requests_per_minute,
25
+ reset: Date.now() + 60000, // 1 minute from now
26
+ used: 0
27
+ };
28
+ // Create axios instance with base configuration
29
+ const apiConfig = {
30
+ baseURL: config.base_url,
31
+ timeout: config.timeout,
32
+ headers: this.getDefaultHeaders(),
33
+ maxRedirects: 5,
34
+ maxContentLength: 50 * 1024 * 1024, // 50MB
35
+ maxBodyLength: 50 * 1024 * 1024 // 50MB
36
+ };
37
+ this.client = axios_1.default.create(apiConfig);
38
+ // Add request interceptor for authentication
39
+ this.client.interceptors.request.use((requestConfig) => {
40
+ this.emit('request:start', requestConfig);
41
+ const updatedConfig = this.addAuthHeaders(requestConfig);
42
+ // Cast to any to avoid TypeScript issues with axios types
43
+ return updatedConfig;
44
+ }, (error) => {
45
+ this.emit('request:error', error);
46
+ return Promise.reject(error);
47
+ });
48
+ // Add response interceptor for rate limiting and error handling
49
+ this.client.interceptors.response.use((response) => {
50
+ this.emit('request:success', response);
51
+ this.updateRateLimitInfo(response);
52
+ return response;
53
+ }, (error) => {
54
+ this.emit('request:error', error);
55
+ return this.handleError(error);
56
+ });
57
+ }
58
+ /**
59
+ * Get default headers for API requests
60
+ */
61
+ getDefaultHeaders() {
62
+ const headers = {
63
+ 'Content-Type': 'application/json',
64
+ 'User-Agent': 'FreeAPI/0.1.0',
65
+ 'Accept': 'application/json',
66
+ 'Accept-Language': 'en-US,en;q=0.9',
67
+ 'Accept-Encoding': 'gzip, deflate, br',
68
+ };
69
+ // Add API key if provided
70
+ if (this.config.api_key) {
71
+ headers['Authorization'] = `Bearer ${this.config.api_key}`;
72
+ }
73
+ // Add organization ID if provided
74
+ if (this.config.organization_id) {
75
+ headers['OpenAI-Organization'] = this.config.organization_id;
76
+ }
77
+ return headers;
78
+ }
79
+ /**
80
+ * Add authentication headers to request
81
+ */
82
+ addAuthHeaders(config) {
83
+ if (!config.headers) {
84
+ config.headers = {};
85
+ }
86
+ // Add session token for authenticated mode
87
+ if (this.config.mode === 'authenticated' && this.config.credentials?.session_token) {
88
+ config.headers['Cookie'] = `__Secure-next-auth.session-token=${this.config.credentials.session_token}`;
89
+ }
90
+ // Add access token if available
91
+ if (this.config.credentials?.access_token) {
92
+ config.headers['Authorization'] = `Bearer ${this.config.credentials.access_token}`;
93
+ }
94
+ return config;
95
+ }
96
+ /**
97
+ * Update rate limit information from response headers
98
+ */
99
+ updateRateLimitInfo(response) {
100
+ const headers = response.headers;
101
+ if (headers['x-ratelimit-limit-requests']) {
102
+ this.rateLimitInfo.limit = parseInt(headers['x-ratelimit-limit-requests'], 10);
103
+ }
104
+ if (headers['x-ratelimit-remaining-requests']) {
105
+ this.rateLimitInfo.remaining = parseInt(headers['x-ratelimit-remaining-requests'], 10);
106
+ }
107
+ if (headers['x-ratelimit-reset-requests']) {
108
+ this.rateLimitInfo.reset = parseInt(headers['x-ratelimit-reset-requests'], 10) * 1000;
109
+ }
110
+ this.rateLimitInfo.used = this.rateLimitInfo.limit - this.rateLimitInfo.remaining;
111
+ this.emit('ratelimit:update', this.rateLimitInfo);
112
+ }
113
+ /**
114
+ * Handle API errors with retry logic
115
+ */
116
+ async handleError(error) {
117
+ const errorResponse = error.response?.data;
118
+ // Emit error event
119
+ this.emit('error', {
120
+ code: error.code,
121
+ status: error.response?.status,
122
+ message: errorResponse?.error?.message || error.message,
123
+ type: errorResponse?.error?.type,
124
+ config: error.config
125
+ });
126
+ // Handle specific error types
127
+ if (error.response?.status === 429) {
128
+ // Rate limit exceeded
129
+ const retryAfter = error.response.headers['retry-after'];
130
+ const waitTime = retryAfter ? parseInt(retryAfter, 10) * 1000 : 60000;
131
+ this.emit('ratelimit:exceeded', {
132
+ waitTime,
133
+ limit: this.rateLimitInfo.limit,
134
+ remaining: this.rateLimitInfo.remaining,
135
+ reset: this.rateLimitInfo.reset
136
+ });
137
+ // Wait and retry if configured
138
+ if (this.config.max_retries > 0) {
139
+ await this.delay(waitTime);
140
+ return this.request(error.config);
141
+ }
142
+ }
143
+ else if (error.response?.status === 401) {
144
+ // Authentication error
145
+ this.emit('auth:invalid');
146
+ throw new Error('Authentication failed. Please check your credentials.');
147
+ }
148
+ else if (error.response?.status === 403) {
149
+ // Forbidden
150
+ this.emit('access:denied');
151
+ throw new Error('Access denied. Check your API key or permissions.');
152
+ }
153
+ else if (error.response?.status && error.response.status >= 500) {
154
+ // Server error - retry with exponential backoff
155
+ if (this.config.max_retries > 0) {
156
+ return this.retryWithBackoff(error.config);
157
+ }
158
+ }
159
+ // Re-throw the error if not handled
160
+ throw error;
161
+ }
162
+ /**
163
+ * Retry request with exponential backoff
164
+ */
165
+ async retryWithBackoff(config, attempt = 1) {
166
+ if (attempt > this.config.max_retries) {
167
+ throw new Error(`Max retries (${this.config.max_retries}) exceeded`);
168
+ }
169
+ // Calculate backoff delay
170
+ const delay = Math.min(1000 * Math.pow(2, attempt), 30000);
171
+ await this.delay(delay + Math.random() * 1000); // Add jitter
172
+ this.emit('retry:attempt', { attempt, delay, config });
173
+ try {
174
+ return await this.request(config);
175
+ }
176
+ catch (error) {
177
+ if (error.response?.status && error.response.status >= 500) {
178
+ return this.retryWithBackoff(config, attempt + 1);
179
+ }
180
+ throw error;
181
+ }
182
+ }
183
+ /**
184
+ * Make an API request with rate limiting
185
+ */
186
+ async request(options) {
187
+ // Check rate limits
188
+ if (this.rateLimitInfo.remaining <= 0) {
189
+ const waitTime = this.rateLimitInfo.reset - Date.now();
190
+ if (waitTime > 0) {
191
+ this.emit('ratelimit:waiting', waitTime);
192
+ await this.delay(waitTime);
193
+ }
194
+ this.resetRateLimit();
195
+ }
196
+ // Prepare request config
197
+ const config = {
198
+ method: options.method,
199
+ url: options.url,
200
+ data: options.data,
201
+ params: options.params,
202
+ headers: options.headers,
203
+ timeout: options.timeout || this.config.timeout
204
+ };
205
+ try {
206
+ const response = await this.client.request(config);
207
+ return response.data;
208
+ }
209
+ catch (error) {
210
+ // If retry is enabled and this is a retryable error
211
+ const axiosError = error;
212
+ if (options.retry !== false && this.isRetryableError(axiosError)) {
213
+ return this.retryWithBackoff(options);
214
+ }
215
+ throw error;
216
+ }
217
+ }
218
+ /**
219
+ * Send a chat completion request
220
+ */
221
+ async chatCompletion(request) {
222
+ const response = await this.request({
223
+ method: 'POST',
224
+ url: '/v1/chat/completions',
225
+ data: request,
226
+ headers: {
227
+ 'Content-Type': 'application/json'
228
+ }
229
+ });
230
+ return response;
231
+ }
232
+ /**
233
+ * List available models
234
+ */
235
+ async listModels() {
236
+ const response = await this.request({
237
+ method: 'GET',
238
+ url: '/v1/models'
239
+ });
240
+ return response;
241
+ }
242
+ /**
243
+ * Get model information
244
+ */
245
+ async getModel(modelId) {
246
+ const response = await this.request({
247
+ method: 'GET',
248
+ url: `/v1/models/${modelId}`
249
+ });
250
+ return response;
251
+ }
252
+ /**
253
+ * Check API status
254
+ */
255
+ async checkStatus() {
256
+ try {
257
+ const response = await this.request({
258
+ method: 'GET',
259
+ url: '/v1/models',
260
+ timeout: 5000
261
+ });
262
+ return { status: 'online', version: response?.version };
263
+ }
264
+ catch (error) {
265
+ return {
266
+ status: 'offline',
267
+ error: error.message || 'Unknown error'
268
+ };
269
+ }
270
+ }
271
+ /**
272
+ * Check if error is retryable
273
+ */
274
+ isRetryableError(error) {
275
+ const status = error.response?.status;
276
+ return (!status || // Network error
277
+ status === 408 || // Request timeout
278
+ status === 429 || // Too many requests
279
+ status >= 500 // Server error
280
+ );
281
+ }
282
+ /**
283
+ * Reset rate limit information
284
+ */
285
+ resetRateLimit() {
286
+ this.rateLimitInfo = {
287
+ limit: this.config.requests_per_minute,
288
+ remaining: this.config.requests_per_minute,
289
+ reset: Date.now() + 60000,
290
+ used: 0
291
+ };
292
+ this.emit('ratelimit:reset', this.rateLimitInfo);
293
+ }
294
+ /**
295
+ * Utility function for delays
296
+ */
297
+ delay(ms) {
298
+ return new Promise(resolve => setTimeout(resolve, ms));
299
+ }
300
+ /**
301
+ * Get current rate limit information
302
+ */
303
+ getRateLimitInfo() {
304
+ return { ...this.rateLimitInfo };
305
+ }
306
+ /**
307
+ * Update configuration
308
+ */
309
+ updateConfig(newConfig) {
310
+ this.config = { ...this.config, ...newConfig };
311
+ // Update axios instance if base URL changed
312
+ if (newConfig.base_url && newConfig.base_url !== this.client.defaults.baseURL) {
313
+ this.client.defaults.baseURL = newConfig.base_url;
314
+ }
315
+ this.emit('config:updated', this.config);
316
+ }
317
+ /**
318
+ * Get current configuration
319
+ */
320
+ getConfig() {
321
+ return { ...this.config };
322
+ }
323
+ }
324
+ exports.ChatGPTAPIClient = ChatGPTAPIClient;
325
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/services/chatgpt/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * ChatGPT CLI Adapter
3
+ * Integrates ChatGPT service with FreeAPI CLI framework
4
+ */
5
+ import { BaseServiceAdapter } from '../base';
6
+ import { ServiceConfig, ServiceStatus, ChatRequest, ChatResponse } from '../base/types';
7
+ export declare class ChatGPTCliAdapter extends BaseServiceAdapter {
8
+ private service;
9
+ protected config: ServiceConfig;
10
+ constructor(config: ServiceConfig);
11
+ /**
12
+ * Set up event forwarding
13
+ */
14
+ private setupEventForwarding;
15
+ /**
16
+ * Initialize the service
17
+ */
18
+ initialize(): Promise<void>;
19
+ /**
20
+ * Send a chat message
21
+ */
22
+ sendMessage(request: ChatRequest): Promise<ChatResponse>;
23
+ /**
24
+ * Get service status
25
+ */
26
+ getStatus(): Promise<ServiceStatus>;
27
+ /**
28
+ * Get service information
29
+ */
30
+ getInfo(): Promise<any>;
31
+ /**
32
+ * Update configuration
33
+ */
34
+ updateConfig(newConfig: Partial<ServiceConfig>): Promise<void>;
35
+ /**
36
+ * Convert FreeAPI service config to ChatGPT config
37
+ */
38
+ private convertToChatGPTConfig;
39
+ /**
40
+ * Authenticate user
41
+ */
42
+ authenticate(credentials: {
43
+ username: string;
44
+ password: string;
45
+ }): Promise<boolean>;
46
+ /**
47
+ * Test service connection
48
+ */
49
+ testConnection(): Promise<boolean>;
50
+ /**
51
+ * Get conversations
52
+ */
53
+ getConversations(): Promise<any[]>;
54
+ /**
55
+ * Get conversation by ID
56
+ */
57
+ getConversation(conversationId: string): Promise<any>;
58
+ /**
59
+ * Delete conversation
60
+ */
61
+ deleteConversation(conversationId: string): Promise<boolean>;
62
+ /**
63
+ * Get usage statistics
64
+ */
65
+ getUsage(): Promise<any>;
66
+ /**
67
+ * Get error information
68
+ */
69
+ getErrors(_limit?: number): Promise<any[]>;
70
+ /**
71
+ * Get recovery actions
72
+ */
73
+ getRecoveryActions(): Promise<any[]>;
74
+ /**
75
+ * Clear error history
76
+ */
77
+ clearErrorHistory(): Promise<void>;
78
+ /**
79
+ * Backup configuration
80
+ */
81
+ backupConfig(backupDir?: string): Promise<string>;
82
+ /**
83
+ * Restore configuration from backup
84
+ */
85
+ restoreConfig(backupFile: string): Promise<void>;
86
+ /**
87
+ * List available backups
88
+ */
89
+ listBackups(backupDir?: string): Promise<string[]>;
90
+ /**
91
+ * Reset configuration to defaults
92
+ */
93
+ resetConfig(): Promise<void>;
94
+ /**
95
+ * Clean up resources
96
+ */
97
+ destroy(): Promise<void>;
98
+ }
99
+ /**
100
+ * Create ChatGPT CLI adapter factory function
101
+ */
102
+ export declare function createChatGPTCliAdapter(config: ServiceConfig): ChatGPTCliAdapter;
103
+ /**
104
+ * Register ChatGPT service with FreeAPI
105
+ */
106
+ export declare function registerChatGPTService(): void;
107
+ export default ChatGPTCliAdapter;
108
+ //# sourceMappingURL=cli-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-adapter.d.ts","sourceRoot":"","sources":["../../../src/services/chatgpt/cli-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAExF,qBAAa,iBAAkB,SAAQ,kBAAkB;IACvD,OAAO,CAAC,OAAO,CAAwB;IACvC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEpB,MAAM,EAAE,aAAa;IAYjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8B9D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAyBzC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;IAoB7B;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpE;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzF;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAaxC;;OAEG;IACG,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB3D;;OAEG;IACG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAmB9B;;OAEG;IACG,SAAS,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAK5C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAK1C;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;OAEG;IACG,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;OAEG;IACG,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAEhF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAED,eAAe,iBAAiB,CAAC"}