ziplayer 0.2.7-dev.0 → 0.2.7-dev.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.
Files changed (54) hide show
  1. package/AI-Guide.md +407 -756
  2. package/README.md +275 -10
  3. package/dist/extensions/BaseExtension.d.ts +1 -0
  4. package/dist/extensions/BaseExtension.d.ts.map +1 -1
  5. package/dist/extensions/BaseExtension.js.map +1 -1
  6. package/dist/extensions/index.d.ts +38 -3
  7. package/dist/extensions/index.d.ts.map +1 -1
  8. package/dist/extensions/index.js +259 -41
  9. package/dist/extensions/index.js.map +1 -1
  10. package/dist/persistence/PersistenceManager.d.ts +95 -0
  11. package/dist/persistence/PersistenceManager.d.ts.map +1 -0
  12. package/dist/persistence/PersistenceManager.js +968 -0
  13. package/dist/persistence/PersistenceManager.js.map +1 -0
  14. package/dist/plugins/BasePlugin.js +1 -1
  15. package/dist/plugins/BasePlugin.js.map +1 -1
  16. package/dist/plugins/index.d.ts +19 -4
  17. package/dist/plugins/index.d.ts.map +1 -1
  18. package/dist/plugins/index.js +204 -113
  19. package/dist/plugins/index.js.map +1 -1
  20. package/dist/structures/FilterManager.js +3 -3
  21. package/dist/structures/FilterManager.js.map +1 -1
  22. package/dist/structures/Player.d.ts +65 -14
  23. package/dist/structures/Player.d.ts.map +1 -1
  24. package/dist/structures/Player.js +330 -88
  25. package/dist/structures/Player.js.map +1 -1
  26. package/dist/structures/PlayerManager.d.ts +127 -91
  27. package/dist/structures/PlayerManager.d.ts.map +1 -1
  28. package/dist/structures/PlayerManager.js +437 -124
  29. package/dist/structures/PlayerManager.js.map +1 -1
  30. package/dist/structures/Queue.d.ts +136 -31
  31. package/dist/structures/Queue.d.ts.map +1 -1
  32. package/dist/structures/Queue.js +265 -46
  33. package/dist/structures/Queue.js.map +1 -1
  34. package/dist/types/index.d.ts +46 -6
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/index.js +1 -0
  37. package/dist/types/index.js.map +1 -1
  38. package/dist/types/persistence.d.ts +74 -0
  39. package/dist/types/persistence.d.ts.map +1 -0
  40. package/dist/types/persistence.js +3 -0
  41. package/dist/types/persistence.js.map +1 -0
  42. package/package.json +3 -2
  43. package/src/extensions/BaseExtension.ts +1 -0
  44. package/src/extensions/index.ts +320 -37
  45. package/src/persistence/PersistenceManager.ts +1073 -0
  46. package/src/plugins/BasePlugin.ts +1 -1
  47. package/src/plugins/index.ts +248 -133
  48. package/src/structures/FilterManager.ts +3 -3
  49. package/src/structures/Player.ts +358 -94
  50. package/src/structures/PlayerManager.ts +535 -129
  51. package/src/structures/Queue.ts +300 -55
  52. package/src/types/index.ts +52 -10
  53. package/src/types/persistence.ts +83 -0
  54. package/src/types/plugin.ts +1 -1
@@ -3,13 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtensionManager = exports.BaseExtension = void 0;
4
4
  var BaseExtension_1 = require("./BaseExtension");
5
5
  Object.defineProperty(exports, "BaseExtension", { enumerable: true, get: function () { return BaseExtension_1.BaseExtension; } });
6
- // Extension factory
7
6
  class ExtensionManager {
8
7
  constructor(player, manager) {
8
+ // Cache TTLs
9
+ this.SEARCH_CACHE_TTL = 60 * 1000; // 1 minute
10
+ this.STREAM_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
11
+ this.MAX_CACHE_SIZE = 100;
9
12
  this.player = player;
10
13
  this.manager = manager;
11
14
  this.extensions = new Map();
15
+ this.extensionMetadata = new Map();
16
+ this.searchCache = new Map();
17
+ this.streamCache = new Map();
18
+ this.pendingSearches = new Map();
19
+ this.pendingStreams = new Map();
12
20
  this.extensionContext = Object.freeze({ player, manager });
21
+ // Auto-cleanup caches periodically
22
+ setInterval(() => this.cleanupCaches(), 5 * 60 * 1000);
13
23
  }
14
24
  debug(message, ...optionalParams) {
15
25
  if (this.manager.debugEnabled) {
@@ -18,39 +28,83 @@ class ExtensionManager {
18
28
  }
19
29
  register(extension) {
20
30
  if (this.extensions.has(extension.name)) {
31
+ this.debug(`Extension ${extension.name} already registered, skipping`);
21
32
  return;
22
33
  }
23
34
  if (!extension.player) {
24
35
  extension.player = this.player;
25
36
  }
37
+ // Set default priority if not set
38
+ extension.priority ??= 0;
39
+ // Store metadata for optimization
40
+ const metadata = {
41
+ name: extension.name,
42
+ priority: extension.priority,
43
+ registeredAt: Date.now(),
44
+ hasSearch: typeof extension.provideSearch === "function",
45
+ hasStream: typeof extension.provideStream === "function",
46
+ hasBeforePlay: typeof extension.beforePlay === "function",
47
+ hasAfterPlay: typeof extension.afterPlay === "function",
48
+ };
26
49
  this.extensions.set(extension.name, extension);
50
+ this.extensionMetadata.set(extension.name, metadata);
51
+ this.invokeExtensionLifecycle(extension, "onRegister");
52
+ this.debug(`Registered extension: ${extension.name} (priority: ${extension.priority})`);
27
53
  }
28
54
  unregister(extension) {
29
55
  const name = extension.name;
30
56
  const result = this.extensions.delete(name);
31
57
  if (result) {
58
+ this.extensionMetadata.delete(name);
32
59
  this.invokeExtensionLifecycle(extension, "onDestroy");
60
+ this.debug(`Unregistered extension: ${name}`);
33
61
  }
34
62
  return result;
35
63
  }
36
64
  destroy() {
37
- this.debug(`[ExtensionManager] destroying all extensions`);
65
+ this.debug(`Destroying all extensions`);
38
66
  for (const extension of this.extensions.values()) {
39
67
  this.unregister(extension);
40
68
  }
41
69
  this.extensions.clear();
70
+ this.extensionMetadata.clear();
71
+ this.clearAllCaches();
72
+ this.pendingSearches.clear();
73
+ this.pendingStreams.clear();
42
74
  }
43
75
  get(name) {
44
76
  return this.extensions.get(name);
45
77
  }
46
78
  getAll() {
47
- return Array.from(this.extensions.values());
79
+ // Sort by priority (higher first)
80
+ return Array.from(this.extensions.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
48
81
  }
49
- findExtension(alas) {
50
- return this.getAll().find((extension) => extension.active(alas));
82
+ getMetadata(name) {
83
+ return this.extensionMetadata.get(name);
84
+ }
85
+ getAllMetadata() {
86
+ return Array.from(this.extensionMetadata.values()).sort((a, b) => b.priority - a.priority);
87
+ }
88
+ findExtension(query) {
89
+ return this.getAll().find((extension) => extension.active?.(query) ?? false);
90
+ }
91
+ findExtensionsByCapability(capability) {
92
+ const capabilityMap = {
93
+ search: "hasSearch",
94
+ stream: "hasStream",
95
+ beforePlay: "hasBeforePlay",
96
+ afterPlay: "hasAfterPlay",
97
+ };
98
+ const metaKey = capabilityMap[capability];
99
+ return this.getAll().filter((ext) => {
100
+ const meta = this.extensionMetadata.get(ext.name);
101
+ return meta?.[metaKey] ?? false;
102
+ });
51
103
  }
52
104
  clear() {
53
105
  this.extensions.clear();
106
+ this.extensionMetadata.clear();
107
+ this.clearAllCaches();
54
108
  }
55
109
  invokeExtensionLifecycle(extension, hook) {
56
110
  if (!extension)
@@ -61,55 +115,176 @@ class ExtensionManager {
61
115
  try {
62
116
  const result = fn.call(extension, this.extensionContext);
63
117
  if (result && typeof result.then === "function") {
64
- result.catch((err) => this.debug(`[Player] Extension ${extension.name} ${hook} error:`, err));
118
+ result.catch((err) => this.debug(`Extension ${extension.name} ${hook} error:`, err));
65
119
  }
66
120
  }
67
121
  catch (err) {
68
- this.debug(`[Player] Extension ${extension.name} ${hook} error:`, err);
122
+ this.debug(`Extension ${extension.name} ${hook} error:`, err);
123
+ }
124
+ }
125
+ getCacheKey(prefix, ...parts) {
126
+ return `${prefix}:${parts.join(":")}`;
127
+ }
128
+ cleanupCaches() {
129
+ const now = Date.now();
130
+ // Clean search cache
131
+ for (const [key, entry] of this.searchCache) {
132
+ if (now >= entry.expiresAt) {
133
+ this.searchCache.delete(key);
134
+ }
135
+ }
136
+ // Clean stream cache
137
+ for (const [key, entry] of this.streamCache) {
138
+ if (now >= entry.expiresAt) {
139
+ this.streamCache.delete(key);
140
+ }
141
+ }
142
+ this.debug(`Cache cleanup completed - Search: ${this.searchCache.size}, Stream: ${this.streamCache.size}`);
143
+ }
144
+ clearAllCaches() {
145
+ this.searchCache.clear();
146
+ this.streamCache.clear();
147
+ this.debug("All caches cleared");
148
+ }
149
+ getCachedSearch(query) {
150
+ const key = this.getCacheKey("search", query.toLowerCase().trim());
151
+ const cached = this.searchCache.get(key);
152
+ if (cached && Date.now() < cached.expiresAt) {
153
+ this.debug(`[Cache] Search hit for: ${query}`);
154
+ return cached.data;
69
155
  }
156
+ return null;
157
+ }
158
+ setCachedSearch(query, result) {
159
+ if (this.searchCache.size >= this.MAX_CACHE_SIZE) {
160
+ // Remove oldest entries (LRU approximation)
161
+ const oldest = Array.from(this.searchCache.entries()).sort((a, b) => a[1].timestamp - b[1].timestamp)[0];
162
+ if (oldest)
163
+ this.searchCache.delete(oldest[0]);
164
+ }
165
+ const key = this.getCacheKey("search", query.toLowerCase().trim());
166
+ this.searchCache.set(key, {
167
+ data: result,
168
+ timestamp: Date.now(),
169
+ expiresAt: Date.now() + this.SEARCH_CACHE_TTL,
170
+ });
171
+ this.debug(`[Cache] Search stored for: ${query}`);
172
+ }
173
+ getCachedStream(track) {
174
+ const key = this.getCacheKey("stream", track.url || track.id || track.title);
175
+ const cached = this.streamCache.get(key);
176
+ if (cached && Date.now() < cached.expiresAt) {
177
+ this.debug(`[Cache] Stream hit for: ${track.title}`);
178
+ return cached.data;
179
+ }
180
+ return null;
181
+ }
182
+ setCachedStream(track, stream) {
183
+ if (this.streamCache.size >= this.MAX_CACHE_SIZE) {
184
+ const oldest = Array.from(this.streamCache.entries()).sort((a, b) => a[1].timestamp - b[1].timestamp)[0];
185
+ if (oldest)
186
+ this.streamCache.delete(oldest[0]);
187
+ }
188
+ const key = this.getCacheKey("stream", track.url || track.id || track.title);
189
+ this.streamCache.set(key, {
190
+ data: stream,
191
+ timestamp: Date.now(),
192
+ expiresAt: Date.now() + this.STREAM_CACHE_TTL,
193
+ });
194
+ this.debug(`[Cache] Stream stored for: ${track.title}`);
70
195
  }
71
196
  async provideSearch(query, requestedBy) {
197
+ if (!query)
198
+ return null;
199
+ // Check cache first
200
+ const cached = this.getCachedSearch(query);
201
+ if (cached)
202
+ return cached;
203
+ // Deduplicate concurrent requests
204
+ const cacheKey = this.getCacheKey("search", query.toLowerCase().trim());
205
+ if (this.pendingSearches.has(cacheKey)) {
206
+ this.debug(`[Dedupe] Waiting for pending search: ${query}`);
207
+ return this.pendingSearches.get(cacheKey);
208
+ }
72
209
  const request = { query, requestedBy };
73
- for (const extension of this.getAll()) {
74
- const hook = extension.provideSearch;
75
- if (typeof hook !== "function")
76
- continue;
77
- try {
78
- const result = await Promise.resolve(hook.call(extension, this.extensionContext, request));
79
- if (result && Array.isArray(result.tracks) && result.tracks.length > 0) {
80
- this.debug(`[Player] Extension ${extension.name} handled search for query: ${query}`);
81
- return result;
210
+ const searchPromise = (async () => {
211
+ // Only query extensions that have provideSearch capability
212
+ const searchExtensions = this.findExtensionsByCapability("search");
213
+ for (const extension of searchExtensions) {
214
+ const hook = extension.provideSearch;
215
+ if (typeof hook !== "function")
216
+ continue;
217
+ try {
218
+ const result = await Promise.resolve(hook.call(extension, this.extensionContext, request));
219
+ if (result && Array.isArray(result.tracks) && result.tracks.length > 0) {
220
+ this.debug(`Extension ${extension.name} handled search for: ${query}`);
221
+ this.setCachedSearch(query, result);
222
+ return result;
223
+ }
224
+ }
225
+ catch (err) {
226
+ this.debug(`Extension ${extension.name} provideSearch error:`, err);
82
227
  }
83
228
  }
84
- catch (err) {
85
- this.debug(`[Player] Extension ${extension.name} provideSearch error:`, err);
86
- }
229
+ return null;
230
+ })();
231
+ this.pendingSearches.set(cacheKey, searchPromise);
232
+ try {
233
+ return await searchPromise;
234
+ }
235
+ finally {
236
+ this.pendingSearches.delete(cacheKey);
87
237
  }
88
- return null;
89
238
  }
90
239
  async provideStream(track) {
240
+ if (!track)
241
+ return null;
242
+ // Check cache first
243
+ const cached = this.getCachedStream(track);
244
+ if (cached)
245
+ return cached;
246
+ // Deduplicate concurrent requests
247
+ const cacheKey = this.getCacheKey("stream", track.url || track.id || track.title);
248
+ if (this.pendingStreams.has(cacheKey)) {
249
+ this.debug(`[Dedupe] Waiting for pending stream: ${track.title}`);
250
+ return this.pendingStreams.get(cacheKey);
251
+ }
91
252
  const request = { track };
92
- for (const extension of this.getAll()) {
93
- const hook = extension.provideStream;
94
- if (typeof hook !== "function")
95
- continue;
96
- try {
97
- const result = await Promise.resolve(hook.call(extension, this.extensionContext, request));
98
- if (result && result.stream) {
99
- this.debug(`[Player] Extension ${extension.name} provided stream for track: ${track.title}`);
100
- return result;
253
+ const streamPromise = (async () => {
254
+ // Only query extensions that have provideStream capability
255
+ const streamExtensions = this.findExtensionsByCapability("stream");
256
+ for (const extension of streamExtensions) {
257
+ const hook = extension.provideStream;
258
+ if (typeof hook !== "function")
259
+ continue;
260
+ try {
261
+ const result = await Promise.resolve(hook.call(extension, this.extensionContext, request));
262
+ if (result && result.stream) {
263
+ this.debug(`Extension ${extension.name} provided stream for: ${track.title}`);
264
+ this.setCachedStream(track, result);
265
+ return result;
266
+ }
267
+ }
268
+ catch (err) {
269
+ this.debug(`Extension ${extension.name} provideStream error:`, err);
101
270
  }
102
271
  }
103
- catch (err) {
104
- this.debug(`[Player] Extension ${extension.name} provideStream error:`, err);
105
- }
272
+ return null;
273
+ })();
274
+ this.pendingStreams.set(cacheKey, streamPromise);
275
+ try {
276
+ return await streamPromise;
277
+ }
278
+ finally {
279
+ this.pendingStreams.delete(cacheKey);
106
280
  }
107
- return null;
108
281
  }
109
- async BeforePlayHooks(initial) {
282
+ async beforePlayHooks(initial) {
110
283
  const request = { ...initial };
111
284
  const response = {};
112
- for (const extension of this.getAll()) {
285
+ // Only query extensions that have beforePlay capability
286
+ const beforePlayExtensions = this.findExtensionsByCapability("beforePlay");
287
+ for (const extension of beforePlayExtensions) {
113
288
  const hook = extension.beforePlay;
114
289
  if (typeof hook !== "function")
115
290
  continue;
@@ -117,6 +292,7 @@ class ExtensionManager {
117
292
  const result = await Promise.resolve(hook.call(extension, this.extensionContext, request));
118
293
  if (!result)
119
294
  continue;
295
+ // Merge results
120
296
  if (result.query !== undefined) {
121
297
  request.query = result.query;
122
298
  response.query = result.query;
@@ -144,29 +320,71 @@ class ExtensionManager {
144
320
  }
145
321
  }
146
322
  catch (err) {
147
- this.debug(`[Player] Extension ${extension.name} beforePlay error:`, err);
323
+ this.debug(`Extension ${extension.name} beforePlay error:`, err);
148
324
  }
149
325
  }
150
326
  return { request, response };
151
327
  }
152
- async AfterPlayHooks(payload) {
153
- if (this.getAll().length === 0)
328
+ async afterPlayHooks(payload) {
329
+ const afterPlayExtensions = this.findExtensionsByCapability("afterPlay");
330
+ if (afterPlayExtensions.length === 0)
154
331
  return;
332
+ // Create immutable payload
155
333
  const safeTracks = payload.tracks ? [...payload.tracks] : undefined;
156
334
  if (safeTracks) {
157
335
  Object.freeze(safeTracks);
158
336
  }
159
337
  const immutablePayload = Object.freeze({ ...payload, tracks: safeTracks });
160
- for (const extension of this.getAll()) {
338
+ // Execute hooks in parallel for better performance
339
+ const hooks = afterPlayExtensions.map(async (extension) => {
161
340
  const hook = extension.afterPlay;
162
341
  if (typeof hook !== "function")
163
- continue;
342
+ return;
164
343
  try {
165
344
  await Promise.resolve(hook.call(extension, this.extensionContext, immutablePayload));
166
345
  }
167
346
  catch (err) {
168
- this.debug(`[Player] Extension ${extension.name} afterPlay error:`, err);
347
+ this.debug(`Extension ${extension.name} afterPlay error:`, err);
169
348
  }
349
+ });
350
+ await Promise.allSettled(hooks);
351
+ }
352
+ /**
353
+ * Get extension statistics
354
+ */
355
+ getStats() {
356
+ const metadata = this.getAllMetadata();
357
+ return {
358
+ totalExtensions: this.extensions.size,
359
+ extensions: metadata.map((m) => ({
360
+ name: m.name,
361
+ priority: m.priority,
362
+ capabilities: {
363
+ search: m.hasSearch,
364
+ stream: m.hasStream,
365
+ beforePlay: m.hasBeforePlay,
366
+ afterPlay: m.hasAfterPlay,
367
+ },
368
+ })),
369
+ cacheStats: {
370
+ searchCacheSize: this.searchCache.size,
371
+ streamCacheSize: this.streamCache.size,
372
+ pendingSearches: this.pendingSearches.size,
373
+ pendingStreams: this.pendingStreams.size,
374
+ },
375
+ };
376
+ }
377
+ /**
378
+ * Clear specific cache
379
+ */
380
+ clearCache(type) {
381
+ if (!type || type === "search") {
382
+ this.searchCache.clear();
383
+ this.debug("Search cache cleared");
384
+ }
385
+ if (!type || type === "stream") {
386
+ this.streamCache.clear();
387
+ this.debug("Stream cache cleared");
170
388
  }
171
389
  }
172
390
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { EventEmitter } from "events";
2
+ import type { PersistenceOptions, DestroyedRecord } from "../types";
3
+ import type { Player } from "../structures/Player";
4
+ import type { PlayerManager } from "../structures/PlayerManager";
5
+ export declare class PersistenceManager extends EventEmitter {
6
+ private manager;
7
+ private options;
8
+ private provider;
9
+ private saveInterval;
10
+ private isSaving;
11
+ private isRestoring;
12
+ private destroyedPlayers;
13
+ private restoredPlayers;
14
+ private backupCleanupDone;
15
+ constructor(manager: PlayerManager, options: PersistenceOptions);
16
+ private setupDestroyTracking;
17
+ private createProvider;
18
+ private debug;
19
+ private startAutoSave;
20
+ private cleanupBackupsOnStart;
21
+ private cleanOldBackupsByAge;
22
+ private enforceTotalBackupLimit;
23
+ private markAsDestroyed;
24
+ private isDestroyed;
25
+ private saveDestroyedStatus;
26
+ private loadDestroyedStatus;
27
+ private clearDestroyedStatus;
28
+ private serializeTrack;
29
+ private serializeQueue;
30
+ private serializePlayer;
31
+ private deserializeTrack;
32
+ /**
33
+ * Save a single player
34
+ */
35
+ savePlayer(player: Player): Promise<boolean>;
36
+ /**
37
+ * Save all players
38
+ */
39
+ saveAll(): Promise<Map<string, boolean>>;
40
+ /**
41
+ * Load a single player
42
+ */
43
+ loadPlayer(guildId: string, restorePosition?: boolean, skipIfDestroyed?: boolean): Promise<boolean>;
44
+ /**
45
+ * Load all saved players with auto-restore logic
46
+ */
47
+ loadAll(restorePosition?: boolean): Promise<Map<string, boolean>>;
48
+ /**
49
+ * Mark a player as destroyed
50
+ */
51
+ markPlayerDestroyed(guildId: string, reason?: string): Promise<void>;
52
+ /**
53
+ * Clear destroyed status for a player
54
+ */
55
+ clearDestroyed(guildId: string): Promise<void>;
56
+ /**
57
+ * Delete a player's saved data
58
+ */
59
+ deletePlayer(guildId: string): Promise<boolean>;
60
+ /**
61
+ * Restore from backup
62
+ */
63
+ restoreBackup(guildId: string, timestamp?: number): Promise<boolean>;
64
+ /**
65
+ * Clean all backups for a specific player
66
+ */
67
+ cleanBackupsForPlayer(guildId: string): Promise<number>;
68
+ /**
69
+ * Clean all backups
70
+ */
71
+ cleanAllBackups(): Promise<number>;
72
+ /**
73
+ * Get backup statistics
74
+ */
75
+ getBackupStats(): {
76
+ totalBackups: number;
77
+ totalSizeMB: number;
78
+ oldestBackup: Date | null;
79
+ newestBackup: Date | null;
80
+ backupsByPlayer: Record<string, number>;
81
+ } | null;
82
+ /**
83
+ * Stop auto-save and clean up
84
+ */
85
+ shutdown(): Promise<void>;
86
+ /**
87
+ * Get list of destroyed players
88
+ */
89
+ getDestroyedPlayers(): DestroyedRecord[];
90
+ /**
91
+ * Check if auto-restore is enabled
92
+ */
93
+ isAutoRestoreEnabled(): boolean;
94
+ }
95
+ //# sourceMappingURL=PersistenceManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersistenceManager.d.ts","sourceRoot":"","sources":["../../src/persistence/PersistenceManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,KAAK,EAIX,kBAAkB,EAElB,eAAe,EAEf,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAkUjE,qBAAa,kBAAmB,SAAQ,YAAY;IACnD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,iBAAiB,CAAkB;gBAE/B,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB;IAgE/D,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,cAAc;IAiDtB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,aAAa;YAgBP,qBAAqB;YAkDrB,oBAAoB;YA2BpB,uBAAuB;IA2BrC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;YAIL,mBAAmB;YAKnB,mBAAmB;YAenB,oBAAoB;IAKlC,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBlD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA2B9C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,GAAE,OAAc,EAAE,eAAe,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4ErH;;OAEG;IACG,OAAO,CAAC,eAAe,GAAE,OAAc,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAuC7E;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBrD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa1E;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAYxC;;OAEG;IACH,cAAc,IAAI;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;QAC1B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,GAAG,IAAI;IAiBR;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;OAEG;IACH,mBAAmB,IAAI,eAAe,EAAE;IAIxC;;OAEG;IACH,oBAAoB,IAAI,OAAO;CAG/B"}