navidrome-mcp 1.1.0 → 1.1.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/README.md +2 -3
- package/dist/tools/handlers/radio-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/radio-handlers.js +32 -53
- package/dist/tools/handlers/radio-handlers.js.map +1 -1
- package/dist/tools/radio.d.ts +5 -9
- package/dist/tools/radio.d.ts.map +1 -1
- package/dist/tools/radio.js +110 -115
- package/dist/tools/radio.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -333,9 +333,8 @@ Add the Navidrome MCP server:
|
|
|
333
333
|
| `validate_radio_stream` | Test stream URL validity |
|
|
334
334
|
| `list_radio_stations` | View all stations |
|
|
335
335
|
| `get_radio_station` | Get detailed information about a specific radio station by ID |
|
|
336
|
-
| `create_radio_station` |
|
|
336
|
+
| `create_radio_station` | Create radio stations using JSON array format (single or multiple stations, with optional validation*) |
|
|
337
337
|
| `delete_radio_station` | Delete an internet radio station by ID |
|
|
338
|
-
| `batch_create_radio_stations` | Batch add multiple stations (with optional validation*) |
|
|
339
338
|
| `play_radio_station` | Start radio playback |
|
|
340
339
|
| `get_current_radio_info` | Get information about currently playing radio station and stream metadata |
|
|
341
340
|
| `discover_radio_stations` | Find internet radio stations globally |
|
|
@@ -344,7 +343,7 @@ Add the Navidrome MCP server:
|
|
|
344
343
|
| `click_station` | Register play click for popularity metrics |
|
|
345
344
|
| `vote_station` | Vote for a radio station |
|
|
346
345
|
|
|
347
|
-
*Note:
|
|
346
|
+
*Note: `create_radio_station` supports an optional `validateBeforeAdd` parameter that will test stream URLs before adding them to Navidrome.
|
|
348
347
|
|
|
349
348
|
### 🎤 Lyrics & Timestamps
|
|
350
349
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/radio-handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"radio-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/radio-handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAmSlD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAkC7F"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DEFAULT_VALUES } from '../../constants/defaults.js';
|
|
2
2
|
import { ErrorFormatter } from '../../utils/error-formatter.js';
|
|
3
3
|
// Import tool functions
|
|
4
|
-
import { listRadioStations, createRadioStation, deleteRadioStation, getRadioStation, playRadioStation, getCurrentRadioInfo,
|
|
4
|
+
import { listRadioStations, createRadioStation, deleteRadioStation, getRadioStation, playRadioStation, getCurrentRadioInfo, } from '../radio.js';
|
|
5
5
|
import { validateRadioStream } from '../radio-validation.js';
|
|
6
6
|
import { discoverRadioStations, getRadioFilters, getStationByUuid, clickStation, voteStation, } from '../radio-discovery.js';
|
|
7
7
|
// Helper function to get radio tools based on config
|
|
@@ -17,28 +17,45 @@ function getRadioTools(config) {
|
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
name: 'create_radio_station',
|
|
20
|
-
description: 'Create
|
|
20
|
+
description: 'Create one or more radio stations. Always provide stations as a JSON array - use a single-item array for one station. Each station requires name and streamUrl, with optional homePageUrl.',
|
|
21
21
|
inputSchema: {
|
|
22
22
|
type: 'object',
|
|
23
23
|
properties: {
|
|
24
|
-
|
|
25
|
-
type: '
|
|
26
|
-
description: '
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
stations: {
|
|
25
|
+
type: 'array',
|
|
26
|
+
description: 'Array of radio stations to create. For a single station, use: [{"name": "Station Name", "streamUrl": "http://stream.url"}]. For multiple stations, add more objects to the array.',
|
|
27
|
+
minItems: 1,
|
|
28
|
+
items: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
name: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'Station name (required)',
|
|
34
|
+
minLength: 1,
|
|
35
|
+
},
|
|
36
|
+
streamUrl: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Stream URL (required) - must be valid HTTP/HTTPS URL',
|
|
39
|
+
pattern: '^https?://.+',
|
|
40
|
+
},
|
|
41
|
+
homePageUrl: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Optional homepage URL for the station',
|
|
44
|
+
pattern: '^https?://.+',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
required: ['name', 'streamUrl'],
|
|
48
|
+
additionalProperties: false,
|
|
49
|
+
},
|
|
35
50
|
},
|
|
36
51
|
validateBeforeAdd: {
|
|
37
52
|
type: 'boolean',
|
|
38
|
-
description: '
|
|
53
|
+
description: 'Test stream URLs before adding to ensure they work (default: false). Recommended for unknown streams.',
|
|
54
|
+
default: false,
|
|
39
55
|
},
|
|
40
56
|
},
|
|
41
|
-
required: ['
|
|
57
|
+
required: ['stations'],
|
|
58
|
+
additionalProperties: false,
|
|
42
59
|
},
|
|
43
60
|
},
|
|
44
61
|
{
|
|
@@ -91,42 +108,6 @@ function getRadioTools(config) {
|
|
|
91
108
|
properties: {},
|
|
92
109
|
},
|
|
93
110
|
},
|
|
94
|
-
{
|
|
95
|
-
name: 'batch_create_radio_stations',
|
|
96
|
-
description: 'Batch create multiple internet radio stations in Navidrome',
|
|
97
|
-
inputSchema: {
|
|
98
|
-
type: 'object',
|
|
99
|
-
properties: {
|
|
100
|
-
stations: {
|
|
101
|
-
type: 'array',
|
|
102
|
-
description: 'Array of radio stations to create',
|
|
103
|
-
items: {
|
|
104
|
-
type: 'object',
|
|
105
|
-
properties: {
|
|
106
|
-
name: {
|
|
107
|
-
type: 'string',
|
|
108
|
-
description: 'Station name (required)',
|
|
109
|
-
},
|
|
110
|
-
streamUrl: {
|
|
111
|
-
type: 'string',
|
|
112
|
-
description: 'Stream URL (required)',
|
|
113
|
-
},
|
|
114
|
-
homePageUrl: {
|
|
115
|
-
type: 'string',
|
|
116
|
-
description: 'Optional homepage URL',
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
required: ['name', 'streamUrl'],
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
validateBeforeAdd: {
|
|
123
|
-
type: 'boolean',
|
|
124
|
-
description: 'Validate all stream URLs before adding (default: false)',
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
required: ['stations'],
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
111
|
{
|
|
131
112
|
name: 'validate_radio_stream',
|
|
132
113
|
description: 'Tests if a radio stream URL is valid, accessible, and streams audio content. Checks HTTP response, content type, streaming headers, and attempts to verify audio data.',
|
|
@@ -300,8 +281,6 @@ export function createRadioToolCategory(client, config) {
|
|
|
300
281
|
return await playRadioStation(config, args);
|
|
301
282
|
case 'get_current_radio_info':
|
|
302
283
|
return await getCurrentRadioInfo(config, args);
|
|
303
|
-
case 'batch_create_radio_stations':
|
|
304
|
-
return await batchCreateRadioStations(config, args);
|
|
305
284
|
case 'validate_radio_stream':
|
|
306
285
|
return await validateRadioStream(client, args);
|
|
307
286
|
case 'discover_radio_stations':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/radio-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"radio-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/radio-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/radio.d.ts
CHANGED
|
@@ -5,9 +5,12 @@ import type { RadioStationDTO, CreateRadioStationResponse, DeleteRadioStationRes
|
|
|
5
5
|
*/
|
|
6
6
|
export declare function listRadioStations(config: Config, args: unknown): Promise<ListRadioStationsResponse>;
|
|
7
7
|
/**
|
|
8
|
-
* Create
|
|
8
|
+
* Create radio stations - always processes as batch (single station = batch of 1)
|
|
9
9
|
*/
|
|
10
|
-
export declare function createRadioStation(config: Config, args: unknown): Promise<
|
|
10
|
+
export declare function createRadioStation(config: Config, args: unknown): Promise<{
|
|
11
|
+
results: CreateRadioStationResponse[];
|
|
12
|
+
summary: string;
|
|
13
|
+
}>;
|
|
11
14
|
/**
|
|
12
15
|
* Delete a radio station by ID
|
|
13
16
|
*/
|
|
@@ -24,13 +27,6 @@ export declare function playRadioStation(config: Config, args: unknown): Promise
|
|
|
24
27
|
message: string;
|
|
25
28
|
station?: RadioStationDTO;
|
|
26
29
|
}>;
|
|
27
|
-
/**
|
|
28
|
-
* Batch create multiple radio stations
|
|
29
|
-
*/
|
|
30
|
-
export declare function batchCreateRadioStations(config: Config, args: unknown): Promise<{
|
|
31
|
-
results: CreateRadioStationResponse[];
|
|
32
|
-
summary: string;
|
|
33
|
-
}>;
|
|
34
30
|
/**
|
|
35
31
|
* Get current radio playback information
|
|
36
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/tools/radio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EAEf,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAyC3B;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,yBAAyB,CAAC,CAsDpC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,0BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/tools/radio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EAEf,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAyC3B;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,yBAAyB,CAAC,CAsDpC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiJrE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,0BAA0B,CAAC,CAuCrC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,eAAe,CAAC,CAwB1B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC,CA+B3E;AAGD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,iBAAiB,CAAC,CA2B5B"}
|
package/dist/tools/radio.js
CHANGED
|
@@ -64,79 +64,128 @@ export async function listRadioStations(config, args) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
* Create
|
|
67
|
+
* Create radio stations - always processes as batch (single station = batch of 1)
|
|
68
68
|
*/
|
|
69
69
|
export async function createRadioStation(config, args) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
70
|
+
const params = args;
|
|
71
|
+
// Validate input
|
|
72
|
+
if (params.stations === null || params.stations === undefined || !Array.isArray(params.stations)) {
|
|
73
|
+
throw new Error('Provide stations array. Example: {"stations": [{"name": "Station Name", "streamUrl": "http://stream.url"}]}');
|
|
74
|
+
}
|
|
75
|
+
if (params.stations.length === 0) {
|
|
76
|
+
throw new Error('At least one station must be provided in the stations array');
|
|
77
|
+
}
|
|
78
|
+
logger.debug(`Creating ${params.stations.length} radio station(s)`);
|
|
79
|
+
const results = [];
|
|
80
|
+
let successCount = 0;
|
|
81
|
+
let failedCount = 0;
|
|
82
|
+
let validationFailedCount = 0;
|
|
83
|
+
// Process each station
|
|
84
|
+
for (const station of params.stations) {
|
|
85
|
+
try {
|
|
86
|
+
// Validate required fields
|
|
87
|
+
if (!station.name || station.name.trim() === '') {
|
|
88
|
+
results.push({
|
|
88
89
|
success: false,
|
|
89
|
-
error:
|
|
90
|
-
};
|
|
90
|
+
error: 'Station name is required and cannot be empty'
|
|
91
|
+
});
|
|
92
|
+
failedCount++;
|
|
93
|
+
continue;
|
|
91
94
|
}
|
|
95
|
+
if (!station.streamUrl || station.streamUrl.trim() === '') {
|
|
96
|
+
results.push({
|
|
97
|
+
success: false,
|
|
98
|
+
error: `Stream URL is required for station "${station.name}"`
|
|
99
|
+
});
|
|
100
|
+
failedCount++;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
logger.debug('Creating radio station:', station);
|
|
104
|
+
// Optional stream validation
|
|
105
|
+
if (params.validateBeforeAdd === true) {
|
|
106
|
+
const { validateRadioStream } = await import('./radio-validation.js');
|
|
107
|
+
const { NavidromeClient } = await import('../client/navidrome-client.js');
|
|
108
|
+
const client = new NavidromeClient(config);
|
|
109
|
+
await client.initialize();
|
|
110
|
+
const validationResult = await validateRadioStream(client, {
|
|
111
|
+
url: station.streamUrl,
|
|
112
|
+
timeout: BATCH_VALIDATION_TIMEOUT
|
|
113
|
+
});
|
|
114
|
+
if (!validationResult.success) {
|
|
115
|
+
results.push({
|
|
116
|
+
success: false,
|
|
117
|
+
error: `Stream validation failed for "${station.name}": ${validationResult.errors.join(', ')}`
|
|
118
|
+
});
|
|
119
|
+
failedCount++;
|
|
120
|
+
validationFailedCount++;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Create the station via Subsonic API
|
|
125
|
+
const authParams = createSubsonicAuth(config);
|
|
126
|
+
authParams.set('streamUrl', station.streamUrl);
|
|
127
|
+
authParams.set('name', station.name);
|
|
128
|
+
if (station.homePageUrl !== null && station.homePageUrl !== undefined && station.homePageUrl.trim() !== '') {
|
|
129
|
+
authParams.set('homePageUrl', station.homePageUrl);
|
|
130
|
+
}
|
|
131
|
+
const httpResponse = await fetch(`${config.navidromeUrl}/rest/createInternetRadioStation?${authParams.toString()}`, {
|
|
132
|
+
method: 'POST',
|
|
133
|
+
});
|
|
134
|
+
if (!httpResponse.ok) {
|
|
135
|
+
throw new Error(ErrorFormatter.subsonicApi(httpResponse));
|
|
136
|
+
}
|
|
137
|
+
const data = await httpResponse.json();
|
|
138
|
+
if (data['subsonic-response'].status !== 'ok') {
|
|
139
|
+
const errorMsg = data['subsonic-response'].error?.message ?? 'Unknown error';
|
|
140
|
+
throw new Error(ErrorFormatter.subsonicResponse(errorMsg));
|
|
141
|
+
}
|
|
142
|
+
// Successfully created
|
|
143
|
+
const createdStation = {
|
|
144
|
+
id: 'created', // Subsonic API doesn't return the created station details
|
|
145
|
+
name: station.name,
|
|
146
|
+
streamUrl: station.streamUrl,
|
|
147
|
+
createdAt: new Date().toISOString(),
|
|
148
|
+
updatedAt: new Date().toISOString(),
|
|
149
|
+
};
|
|
150
|
+
if (station.homePageUrl !== null && station.homePageUrl !== undefined && station.homePageUrl.trim() !== '') {
|
|
151
|
+
createdStation.homePageUrl = station.homePageUrl;
|
|
152
|
+
}
|
|
153
|
+
results.push({
|
|
154
|
+
success: true,
|
|
155
|
+
station: createdStation,
|
|
156
|
+
});
|
|
157
|
+
successCount++;
|
|
92
158
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
method: 'POST',
|
|
101
|
-
});
|
|
102
|
-
if (!httpResponse.ok) {
|
|
103
|
-
throw new Error(ErrorFormatter.subsonicApi(httpResponse));
|
|
104
|
-
}
|
|
105
|
-
const data = await httpResponse.json();
|
|
106
|
-
if (data['subsonic-response'].status !== 'ok') {
|
|
107
|
-
const errorMsg = data['subsonic-response'].error?.message ?? 'Unknown error';
|
|
108
|
-
throw new Error(ErrorFormatter.subsonicResponse(errorMsg));
|
|
159
|
+
catch (error) {
|
|
160
|
+
logger.error(`Error creating radio station "${station.name}":`, error);
|
|
161
|
+
results.push({
|
|
162
|
+
success: false,
|
|
163
|
+
error: `Failed to add "${station.name}": ${error instanceof Error ? error.message : 'Unknown error'}`
|
|
164
|
+
});
|
|
165
|
+
failedCount++;
|
|
109
166
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (params.homePageUrl !== null && params.homePageUrl !== undefined && params.homePageUrl !== '') {
|
|
118
|
-
createdStation.homePageUrl = params.homePageUrl;
|
|
167
|
+
}
|
|
168
|
+
// Generate summary
|
|
169
|
+
let summary = `Added ${successCount} of ${params.stations.length} station(s).`;
|
|
170
|
+
if (failedCount > 0) {
|
|
171
|
+
summary += ` ${failedCount} failed`;
|
|
172
|
+
if (validationFailedCount > 0) {
|
|
173
|
+
summary += ` (${validationFailedCount} due to validation)`;
|
|
119
174
|
}
|
|
120
|
-
|
|
175
|
+
summary += '.';
|
|
176
|
+
}
|
|
177
|
+
// Add validation reminder for first-time users (single station only)
|
|
178
|
+
if (successCount > 0 && params.stations.length === 1) {
|
|
121
179
|
const messageManager = getMessageManager();
|
|
122
180
|
const validationReminder = messageManager.getMessage('radio.validation_reminder');
|
|
123
|
-
const apiResponse = {
|
|
124
|
-
success: true,
|
|
125
|
-
station: createdStation,
|
|
126
|
-
};
|
|
127
|
-
// Add validation reminder if this is the first time creating a station
|
|
128
181
|
if (validationReminder !== null && validationReminder !== undefined && validationReminder !== '') {
|
|
129
|
-
|
|
182
|
+
summary += ` ${validationReminder}`;
|
|
130
183
|
}
|
|
131
|
-
return apiResponse;
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
logger.error('Error creating radio station:', error);
|
|
135
|
-
return {
|
|
136
|
-
success: false,
|
|
137
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
138
|
-
};
|
|
139
184
|
}
|
|
185
|
+
return {
|
|
186
|
+
results,
|
|
187
|
+
summary
|
|
188
|
+
};
|
|
140
189
|
}
|
|
141
190
|
/**
|
|
142
191
|
* Delete a radio station by ID
|
|
@@ -229,60 +278,6 @@ export async function playRadioStation(config, args) {
|
|
|
229
278
|
};
|
|
230
279
|
}
|
|
231
280
|
}
|
|
232
|
-
/**
|
|
233
|
-
* Batch create multiple radio stations
|
|
234
|
-
*/
|
|
235
|
-
export async function batchCreateRadioStations(config, args) {
|
|
236
|
-
const params = args;
|
|
237
|
-
if (params.stations === null || params.stations === undefined || !Array.isArray(params.stations)) {
|
|
238
|
-
throw new Error('Stations array is required');
|
|
239
|
-
}
|
|
240
|
-
if (params.stations.length === 0) {
|
|
241
|
-
throw new Error('At least one station must be provided');
|
|
242
|
-
}
|
|
243
|
-
logger.debug(`Batch creating ${params.stations.length} radio stations`);
|
|
244
|
-
const results = [];
|
|
245
|
-
let successCount = 0;
|
|
246
|
-
let failedCount = 0;
|
|
247
|
-
let validationFailedCount = 0;
|
|
248
|
-
for (const station of params.stations) {
|
|
249
|
-
try {
|
|
250
|
-
const result = await createRadioStation(config, {
|
|
251
|
-
...station,
|
|
252
|
-
validateBeforeAdd: params.validateBeforeAdd
|
|
253
|
-
});
|
|
254
|
-
results.push(result);
|
|
255
|
-
if (result.success) {
|
|
256
|
-
successCount++;
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
failedCount++;
|
|
260
|
-
if (result.error?.includes('validation failed') === true) {
|
|
261
|
-
validationFailedCount++;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
results.push({
|
|
267
|
-
success: false,
|
|
268
|
-
error: `Failed to add ${station.name}: ${error instanceof Error ? error.message : 'Unknown error'}`
|
|
269
|
-
});
|
|
270
|
-
failedCount++;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
let summary = `Added ${successCount} of ${params.stations.length} stations.`;
|
|
274
|
-
if (failedCount > 0) {
|
|
275
|
-
summary += ` ${failedCount} failed`;
|
|
276
|
-
if (validationFailedCount > 0) {
|
|
277
|
-
summary += ` (${validationFailedCount} due to validation)`;
|
|
278
|
-
}
|
|
279
|
-
summary += '.';
|
|
280
|
-
}
|
|
281
|
-
return {
|
|
282
|
-
results,
|
|
283
|
-
summary
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
281
|
/**
|
|
287
282
|
* Get current radio playback information
|
|
288
283
|
*/
|
package/dist/tools/radio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/tools/radio.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAU5B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAuB7D,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7F,OAAO,IAAI,eAAe,CAAC;QACzB,CAAC,EAAE,MAAM,CAAC,iBAAiB;QAC3B,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,cAAc;QACjB,CAAC,EAAE,MAAM;KACV,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,kCAAkC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAElH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAsB,CAAC;QAE3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,EAAE,oBAAoB,IAAI,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAsB,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9D,MAAM,UAAU,GAAoB;gBAClC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,0CAA0C;gBAC/E,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YAEF,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;gBACpG,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/C,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAExD,MAAM,WAAW,GAA8B;YAC7C,QAAQ;YACR,KAAK,EAAE,QAAQ,CAAC,MAAM;SACvB,CAAC;QAEF,qDAAqD;QACrD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACpD,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAmE,CAAC;QAEnF,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;YACtK,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAEhD,wDAAwD;QACxD,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACtC,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACtE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAE1B,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;gBACzD,GAAG,EAAE,MAAM,CAAC,SAAS;gBACrB,OAAO,EAAE,wBAAwB;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,6BAA6B,gBAAgB,CAAC,MAAM,0BAA0B;iBACtF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YACjG,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,oCAAoC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE;YAClH,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAsB,CAAC;QAE3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,cAAc,GAAoB;YACtC,EAAE,EAAE,SAAS,EAAE,0DAA0D;YACzE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YACjG,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAClD,CAAC;QAED,2CAA2C;QAC3C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;QAElF,MAAM,WAAW,GAA+B;YAC9C,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,cAAc;SACxB,CAAC;QAEF,uEAAuE;QACvE,IAAI,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,KAAK,EAAE,EAAE,CAAC;YACjG,WAAW,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QACvD,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAsB,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEnD,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,oCAAoC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE;YAClH,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAsB,CAAC;QAE3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,MAAM,CAAC,EAAE;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAsB,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAElD,iEAAiE;QACjE,0CAA0C;QAC1C,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAsB,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAElD,gCAAgC;QAChC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEtD,uFAAuF;QACvF,2EAA2E;QAC3E,gDAAgD;QAChD,+CAA+C;QAC/C,4CAA4C;QAE5C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,kBAAkB,OAAO,CAAC,IAAI,mCAAmC,OAAO,CAAC,SAAS,EAAE;YAC7F,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,IAAa;IAEb,MAAM,MAAM,GAAG,IAGd,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAExE,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAE9B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBAC9C,GAAG,OAAO;gBACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC5C,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,YAAY,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,WAAW,EAAE,CAAC;gBACd,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,KAAK,IAAI,EAAE,CAAC;oBACzD,qBAAqB,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,iBAAiB,OAAO,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aACpG,CAAC,CAAC;YACH,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,SAAS,YAAY,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC;IAC7E,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,IAAI,WAAW,SAAS,CAAC;QACpC,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,qBAAqB,qBAAqB,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,GAAG,CAAC;IACjB,CAAC;IAED,OAAO;QACL,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAE3C,+EAA+E;QAC/E,oFAAoF;QACpF,+EAA+E;QAC/E,8CAA8C;QAE9C,kFAAkF;QAClF,yEAAyE;QAEzE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE;gBACR,WAAW,EAAE,kFAAkF;aAChG;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE;gBACR,WAAW,EAAE,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aACrG;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/tools/radio.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAU5B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAuB7D,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7F,OAAO,IAAI,eAAe,CAAC;QACzB,CAAC,EAAE,MAAM,CAAC,iBAAiB;QAC3B,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,cAAc;QACjB,CAAC,EAAE,MAAM;KACV,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,kCAAkC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAElH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAsB,CAAC;QAE3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,EAAE,oBAAoB,IAAI,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAsB,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9D,MAAM,UAAU,GAAoB;gBAClC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,0CAA0C;gBAC/E,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YAEF,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;gBACpG,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/C,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAExD,MAAM,WAAW,GAA8B;YAC7C,QAAQ;YACR,KAAK,EAAE,QAAQ,CAAC,MAAM;SACvB,CAAC;QAEF,qDAAqD;QACrD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACpD,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,IAAa;IAEb,MAAM,MAAM,GAAG,IAGd,CAAC;IAEF,iBAAiB;IACjB,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;IACjI,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAE9B,uBAAuB;IACvB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,2BAA2B;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,8CAA8C;iBACtD,CAAC,CAAC;gBACH,WAAW,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uCAAuC,OAAO,CAAC,IAAI,GAAG;iBAC9D,CAAC,CAAC;gBACH,WAAW,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;YAEjD,6BAA6B;YAC7B,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBACtE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;gBAC1E,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;gBAE1B,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;oBACzD,GAAG,EAAE,OAAO,CAAC,SAAS;oBACtB,OAAO,EAAE,wBAAwB;iBAClC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,iCAAiC,OAAO,CAAC,IAAI,MAAM,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC/F,CAAC,CAAC;oBACH,WAAW,EAAE,CAAC;oBACd,qBAAqB,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC9C,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3G,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,oCAAoC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE;gBAClH,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAsB,CAAC;YAE3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;gBAC7E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC;YAED,uBAAuB;YACvB,MAAM,cAAc,GAAoB;gBACtC,EAAE,EAAE,SAAS,EAAE,0DAA0D;gBACzE,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YAEF,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3G,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACnD,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;YACH,YAAY,EAAE,CAAC;QAEjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kBAAkB,OAAO,CAAC,IAAI,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aACtG,CAAC,CAAC;YACH,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,GAAG,SAAS,YAAY,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc,CAAC;IAC/E,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,IAAI,WAAW,SAAS,CAAC;QACpC,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,qBAAqB,qBAAqB,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,GAAG,CAAC;IACjB,CAAC;IAED,qEAAqE;IACrE,IAAI,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;QAClF,IAAI,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,KAAK,EAAE,EAAE,CAAC;YACjG,OAAO,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAsB,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEnD,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,oCAAoC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE;YAClH,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAsB,CAAC;QAE3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,MAAM,CAAC,EAAE;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAsB,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAElD,iEAAiE;QACjE,0CAA0C;QAC1C,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAsB,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAElD,gCAAgC;QAChC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEtD,uFAAuF;QACvF,2EAA2E;QAC3E,gDAAgD;QAChD,+CAA+C;QAC/C,4CAA4C;QAE5C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,kBAAkB,OAAO,CAAC,IAAI,mCAAmC,OAAO,CAAC,SAAS,EAAE;YAC7F,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAGD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAE3C,+EAA+E;QAC/E,oFAAoF;QACpF,+EAA+E;QAC/E,8CAA8C;QAE9C,kFAAkF;QAClF,yEAAyE;QAEzE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE;gBACR,WAAW,EAAE,kFAAkF;aAChG;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE;gBACR,WAAW,EAAE,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aACrG;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|