@crossworks/voice-client 0.230.43
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.md +135 -0
- package/package.json +20 -0
- package/src/adapters/registry.ts +296 -0
- package/src/adapters/retry.ts +193 -0
- package/src/adapters/types.ts +866 -0
- package/src/audio-tags.test.ts +221 -0
- package/src/audio-tags.ts +191 -0
- package/src/catalog.test.ts +144 -0
- package/src/catalog.ts +237 -0
- package/src/catalogs/anthropic.ts +135 -0
- package/src/catalogs/assemblyai.ts +54 -0
- package/src/catalogs/copilot.ts +63 -0
- package/src/catalogs/deepgram.ts +61 -0
- package/src/catalogs/deepseek.ts +85 -0
- package/src/catalogs/elevenlabs.ts +244 -0
- package/src/catalogs/google.ts +332 -0
- package/src/catalogs/huggingface.ts +180 -0
- package/src/catalogs/openai-image.ts +62 -0
- package/src/catalogs/openai-vision.ts +53 -0
- package/src/catalogs/openrouter.ts +221 -0
- package/src/catalogs/xai.ts +330 -0
- package/src/index.ts +48 -0
- package/src/providers.test.ts +172 -0
- package/src/providers.ts +262 -0
- package/src/types.ts +137 -0
- package/tsconfig.json +4 -0
- package/tsconfig.tsbuildinfo +1 -0
package/src/providers.ts
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical catalog of AI providers Mantle supports.
|
|
3
|
+
*
|
|
4
|
+
* Why this exists: the `api_keys.service` column and the `ai_workers.
|
|
5
|
+
* provider` column are both free text, and the runtime depends on
|
|
6
|
+
* matching them exactly ('openai' triggers OpenAI dispatch, 'openrouter'
|
|
7
|
+
* triggers OpenRouter dispatch, etc.). One typo and the entire path
|
|
8
|
+
* breaks silently. This catalog gives the UI a closed set of options
|
|
9
|
+
* — operators pick from a dropdown, not a freeform input — and gives
|
|
10
|
+
* code a single source of truth for "which providers do we know about,
|
|
11
|
+
* what can they do, where do I get a key."
|
|
12
|
+
*
|
|
13
|
+
* The list grows over time as we wire new dispatch paths. Adding a
|
|
14
|
+
* provider here makes it APPEAR in the UI dropdowns; it does NOT
|
|
15
|
+
* automatically make it work. The runtime still needs to know how to
|
|
16
|
+
* call it — that's a separate code change. So treat new entries here
|
|
17
|
+
* as "UI is ready, runtime work pending" until proven.
|
|
18
|
+
*
|
|
19
|
+
* The capabilities array per provider drives the worker-form filter:
|
|
20
|
+
* a TTS worker only shows providers with 'tts' in their capabilities,
|
|
21
|
+
* a vision worker shows ones with 'vision', etc. Aggregators (OpenRouter,
|
|
22
|
+
* Hugging Face) cover many capabilities through one key.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/** Stable string id used in code and persisted to api_keys.service /
|
|
26
|
+
* ai_workers.provider. Adding a new id is a public API change — the
|
|
27
|
+
* string must match what the runtime dispatch expects. */
|
|
28
|
+
export type ProviderId =
|
|
29
|
+
| 'openrouter'
|
|
30
|
+
| 'openai'
|
|
31
|
+
| 'anthropic'
|
|
32
|
+
| 'google'
|
|
33
|
+
| 'xai'
|
|
34
|
+
| 'huggingface'
|
|
35
|
+
| 'deepseek'
|
|
36
|
+
| 'copilot'
|
|
37
|
+
| 'mistral'
|
|
38
|
+
| 'cohere'
|
|
39
|
+
| 'deepgram'
|
|
40
|
+
| 'elevenlabs'
|
|
41
|
+
| 'assemblyai'
|
|
42
|
+
| 'custom'
|
|
43
|
+
| 'local';
|
|
44
|
+
|
|
45
|
+
/** What a provider can do. Mapped 1:1 to `ai_workers.kind` plus 'chat'
|
|
46
|
+
* (for conversational agents) and 'embedding' (for memory embeddings —
|
|
47
|
+
* configured separately for now, but lives in the same vocabulary).
|
|
48
|
+
*
|
|
49
|
+
* When a new ai_workers kind ships, add its capability here too so
|
|
50
|
+
* the provider filter knows which providers to expose for that kind. */
|
|
51
|
+
export type ProviderCapability = 'chat' | 'embedding' | 'tts' | 'stt' | 'vision' | 'image_gen';
|
|
52
|
+
|
|
53
|
+
export type Provider = {
|
|
54
|
+
id: ProviderId;
|
|
55
|
+
/** Display name shown in dropdowns. */
|
|
56
|
+
label: string;
|
|
57
|
+
/** One-sentence description shown as a hint when the option is selected. */
|
|
58
|
+
description: string;
|
|
59
|
+
/** Capabilities — drives dropdown filtering per worker kind. */
|
|
60
|
+
capabilities: readonly ProviderCapability[];
|
|
61
|
+
/** Where the user gets/manages an API key. Linked from the api-key
|
|
62
|
+
* create form so the user can hop straight to the right console. */
|
|
63
|
+
signupUrl: string;
|
|
64
|
+
/** Docs root. Linked from the worker edit form so the user can
|
|
65
|
+
* remind themselves what model names look like for this provider. */
|
|
66
|
+
docsUrl: string;
|
|
67
|
+
/** True for providers that proxy many model families through one
|
|
68
|
+
* key (OpenRouter, Hugging Face). Used by the UI to render a small
|
|
69
|
+
* "aggregator" badge so users understand why one provider covers
|
|
70
|
+
* so many capabilities. */
|
|
71
|
+
isAggregator?: boolean;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Catalog. Ordered so the most-used providers appear first in
|
|
76
|
+
* dropdowns. OpenRouter is the default chat path; OpenAI is the
|
|
77
|
+
* required audio path; everything else lives below.
|
|
78
|
+
*/
|
|
79
|
+
export const SUPPORTED_PROVIDERS: readonly Provider[] = [
|
|
80
|
+
{
|
|
81
|
+
id: 'openrouter',
|
|
82
|
+
label: 'OpenRouter',
|
|
83
|
+
description:
|
|
84
|
+
'Aggregator covering OpenAI, Anthropic, Google, Mistral, DeepSeek, and most open models behind one key — plus audio (TTS/STT) and image generation. One key powers chat, memory, voice, and images.',
|
|
85
|
+
capabilities: ['chat', 'embedding', 'vision', 'tts', 'stt', 'image_gen'],
|
|
86
|
+
signupUrl: 'https://openrouter.ai/keys',
|
|
87
|
+
docsUrl: 'https://openrouter.ai/docs',
|
|
88
|
+
isAggregator: true,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 'openai',
|
|
92
|
+
label: 'OpenAI',
|
|
93
|
+
description:
|
|
94
|
+
'Direct OpenAI access. Required for Whisper (STT), GPT-4o TTS voices, and DALL-E image generation — OpenRouter doesn’t proxy audio.',
|
|
95
|
+
capabilities: ['chat', 'embedding', 'tts', 'stt', 'vision', 'image_gen'],
|
|
96
|
+
signupUrl: 'https://platform.openai.com/api-keys',
|
|
97
|
+
docsUrl: 'https://platform.openai.com/docs',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: 'anthropic',
|
|
101
|
+
label: 'Anthropic (direct)',
|
|
102
|
+
description:
|
|
103
|
+
'Claude direct. Use this for Claude-specific features OpenRouter does not yet proxy (e.g. computer use, file APIs).',
|
|
104
|
+
capabilities: ['chat', 'vision'],
|
|
105
|
+
signupUrl: 'https://console.anthropic.com/account/keys',
|
|
106
|
+
docsUrl: 'https://docs.anthropic.com',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: 'google',
|
|
110
|
+
label: 'Google (Gemini)',
|
|
111
|
+
description:
|
|
112
|
+
'Gemini direct. Large-context chat + 30-voice TTS (Kore, Puck, Zephyr…). 1M+ token windows. STT via the multimodal generateContent endpoint (99 languages, inline audio up to 20 MB). Imagen 3/4 for image generation.',
|
|
113
|
+
capabilities: ['chat', 'vision', 'embedding', 'tts', 'stt', 'image_gen'],
|
|
114
|
+
signupUrl: 'https://aistudio.google.com/apikey',
|
|
115
|
+
docsUrl: 'https://ai.google.dev/gemini-api/docs',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: 'xai',
|
|
119
|
+
label: 'xAI (Grok)',
|
|
120
|
+
description:
|
|
121
|
+
'Grok chat + Grok TTS (5 voices: eve, ara, rex, sal, leo) with [laugh]/[giggle]/[sigh] inline tags. STT via the /v1/stt endpoint (single model, ~500 MB cap). Grok-2-image for image generation.',
|
|
122
|
+
capabilities: ['chat', 'vision', 'tts', 'stt', 'image_gen'],
|
|
123
|
+
signupUrl: 'https://console.x.ai',
|
|
124
|
+
docsUrl: 'https://docs.x.ai',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: 'huggingface',
|
|
128
|
+
label: 'Hugging Face',
|
|
129
|
+
description:
|
|
130
|
+
'Inference API across thousands of open models. Good for niche embeddings, specialty TTS voices, OCR, etc.',
|
|
131
|
+
capabilities: ['chat', 'embedding', 'tts', 'stt', 'image_gen', 'vision'],
|
|
132
|
+
signupUrl: 'https://huggingface.co/settings/tokens',
|
|
133
|
+
docsUrl: 'https://huggingface.co/docs/api-inference',
|
|
134
|
+
isAggregator: true,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
id: 'deepseek',
|
|
138
|
+
label: 'DeepSeek',
|
|
139
|
+
description: 'DeepSeek chat models direct. Strong reasoning at low cost.',
|
|
140
|
+
capabilities: ['chat'],
|
|
141
|
+
signupUrl: 'https://platform.deepseek.com',
|
|
142
|
+
docsUrl: 'https://api-docs.deepseek.com',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
id: 'copilot',
|
|
146
|
+
label: 'GitHub Copilot',
|
|
147
|
+
description:
|
|
148
|
+
'Frontier models (GPT, Claude, Gemini, o-series) via one Copilot subscription. Reasoning-capable. API key = your GitHub Copilot OAuth token.',
|
|
149
|
+
capabilities: ['chat'],
|
|
150
|
+
signupUrl: 'https://github.com/settings/copilot',
|
|
151
|
+
docsUrl: 'https://docs.github.com/en/copilot',
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
id: 'mistral',
|
|
155
|
+
label: 'Mistral',
|
|
156
|
+
description: 'Mistral chat and embeddings direct.',
|
|
157
|
+
capabilities: ['chat', 'embedding'],
|
|
158
|
+
signupUrl: 'https://console.mistral.ai',
|
|
159
|
+
docsUrl: 'https://docs.mistral.ai',
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
id: 'cohere',
|
|
163
|
+
label: 'Cohere',
|
|
164
|
+
description: 'Cohere chat and high-quality embeddings.',
|
|
165
|
+
capabilities: ['chat', 'embedding'],
|
|
166
|
+
signupUrl: 'https://dashboard.cohere.com/api-keys',
|
|
167
|
+
docsUrl: 'https://docs.cohere.com',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
id: 'deepgram',
|
|
171
|
+
label: 'Deepgram',
|
|
172
|
+
description:
|
|
173
|
+
'Fast, accurate transcription. Cheaper than OpenAI Whisper and supports streaming if we wire that up later.',
|
|
174
|
+
capabilities: ['stt'],
|
|
175
|
+
signupUrl: 'https://console.deepgram.com',
|
|
176
|
+
docsUrl: 'https://developers.deepgram.com',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
id: 'elevenlabs',
|
|
180
|
+
label: 'ElevenLabs',
|
|
181
|
+
description:
|
|
182
|
+
'Premium TTS with a large voice library and voice cloning. Scribe v1 STT covers 99 languages with optional word-level timing.',
|
|
183
|
+
capabilities: ['tts', 'stt'],
|
|
184
|
+
signupUrl: 'https://elevenlabs.io/app/settings/api-keys',
|
|
185
|
+
docsUrl: 'https://elevenlabs.io/docs',
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: 'assemblyai',
|
|
189
|
+
label: 'AssemblyAI',
|
|
190
|
+
description: 'Transcription with speaker diarization, sentiment, and topic detection.',
|
|
191
|
+
capabilities: ['stt'],
|
|
192
|
+
signupUrl: 'https://www.assemblyai.com/dashboard',
|
|
193
|
+
docsUrl: 'https://www.assemblyai.com/docs',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
id: 'custom',
|
|
197
|
+
label: 'Custom (OpenAI-compatible)',
|
|
198
|
+
description:
|
|
199
|
+
'Any cloud provider that speaks the standard OpenAI /chat/completions API — DashScope/Qwen, Z.ai/GLM, Moonshot/Kimi, Nvidia NIM, Together, Fireworks, Groq, DeepInfra, Azure AI Foundry, and more. Set a Base URL and API key per route, then pick or type the model id. (For a self-hosted model on your own hardware, use “Local (self-hosted)” instead.)',
|
|
200
|
+
capabilities: ['chat'],
|
|
201
|
+
signupUrl: 'https://platform.openai.com/docs/api-reference/chat',
|
|
202
|
+
docsUrl: 'https://platform.openai.com/docs/api-reference/chat',
|
|
203
|
+
isAggregator: true,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
id: 'local',
|
|
207
|
+
label: 'Local (self-hosted)',
|
|
208
|
+
description:
|
|
209
|
+
'A self-hosted OpenAI-compatible server (Ollama, LM Studio, llama.cpp, TEI, vLLM) on your own hardware — text never leaves your network. Chat base URL via MANTLE_LOCAL_CHAT_URL or a per-route base URL; embedding via MANTLE_LOCAL_EMBEDDING_URL. Both default to http://localhost:11434/v1.',
|
|
210
|
+
capabilities: ['chat', 'embedding'],
|
|
211
|
+
signupUrl: 'https://ollama.com/download',
|
|
212
|
+
docsUrl: 'https://github.com/ollama/ollama/blob/main/docs/openai.md',
|
|
213
|
+
},
|
|
214
|
+
] as const;
|
|
215
|
+
|
|
216
|
+
/** Look up a provider by id. Returns null for unknown ids (i.e. a
|
|
217
|
+
* free-text value the user typed before the catalog existed). */
|
|
218
|
+
export function getProvider(id: string): Provider | null {
|
|
219
|
+
return (SUPPORTED_PROVIDERS as readonly Provider[]).find((p) => p.id === id) ?? null;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/** All providers that support the given capability, in catalog order.
|
|
223
|
+
* The worker form uses this to filter the provider dropdown — a TTS
|
|
224
|
+
* worker only sees TTS-capable providers, an STT worker only sees
|
|
225
|
+
* STT-capable ones. */
|
|
226
|
+
export function providersForCapability(cap: ProviderCapability): readonly Provider[] {
|
|
227
|
+
return SUPPORTED_PROVIDERS.filter((p) => p.capabilities.includes(cap));
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/** Type predicate so code can narrow `string` → `ProviderId` after
|
|
231
|
+
* pulling a value out of `api_keys.service` or `ai_workers.provider`. */
|
|
232
|
+
export function isProviderId(v: string): v is ProviderId {
|
|
233
|
+
return (SUPPORTED_PROVIDERS as readonly Provider[]).some((p) => p.id === v);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/** Map of ai_workers.kind → required capability. Centralised so the
|
|
237
|
+
* provider filter in the UI stays in sync with the runtime dispatch
|
|
238
|
+
* expectations. Adding a new kind = add a row here. */
|
|
239
|
+
export const CAPABILITY_FOR_KIND: Record<string, ProviderCapability> = {
|
|
240
|
+
reflector: 'chat',
|
|
241
|
+
extractor: 'chat',
|
|
242
|
+
summarizer: 'chat',
|
|
243
|
+
tts: 'tts',
|
|
244
|
+
stt: 'stt',
|
|
245
|
+
vision: 'vision',
|
|
246
|
+
// Documents reuse the vision capability — same providers/keys/models (the
|
|
247
|
+
// multimodal chat models). Runtime routing differs (native PDF document
|
|
248
|
+
// block vs image OCR), but provider eligibility is identical.
|
|
249
|
+
document: 'vision',
|
|
250
|
+
image_gen: 'image_gen',
|
|
251
|
+
embedding: 'embedding',
|
|
252
|
+
// Web search runs a chat-completion call against a Perplexity Sonar model on
|
|
253
|
+
// OpenRouter, so it shares the 'chat' capability (provider eligibility).
|
|
254
|
+
search: 'chat',
|
|
255
|
+
search_advanced: 'chat',
|
|
256
|
+
// The narrator runs a plain chat-completion to restyle a status line — same
|
|
257
|
+
// 'chat' capability/provider eligibility as the other one-shot LLM workers.
|
|
258
|
+
narrator: 'chat',
|
|
259
|
+
// The suggester runs a plain chat-completion to propose one follow-up
|
|
260
|
+
// question after a turn; same 'chat' capability as the narrator.
|
|
261
|
+
suggester: 'chat',
|
|
262
|
+
};
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for voice in/out. Kept in a tiny module so the Whisper
|
|
3
|
+
* and TTS modules don't have to cross-import each other for shared
|
|
4
|
+
* shapes (and so consumers can import just the type without pulling
|
|
5
|
+
* the runtime).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** Options accepted by `transcribeAudio`. */
|
|
9
|
+
export type TranscribeOptions = {
|
|
10
|
+
/** OpenAI API key in plaintext. Resolved by the caller from
|
|
11
|
+
* api_keys — this module does not look up keys itself. */
|
|
12
|
+
apiKey: string;
|
|
13
|
+
/** MIME of the supplied buffer, e.g. 'audio/ogg' for Telegram voice
|
|
14
|
+
* notes. Whisper accepts mp3/mp4/mpeg/mpga/m4a/wav/webm/ogg/flac. */
|
|
15
|
+
mimeType: string;
|
|
16
|
+
/** Hard cap on the source duration in seconds. Set to refuse long
|
|
17
|
+
* clips before paying for transcription. Defaults to 180 (3 min).
|
|
18
|
+
* Pass 0 to disable. */
|
|
19
|
+
maxDurationSeconds?: number;
|
|
20
|
+
/** Optional ISO-639-1 language hint. Whisper auto-detects when
|
|
21
|
+
* omitted, which is what we usually want for a multilingual user. */
|
|
22
|
+
language?: string;
|
|
23
|
+
/** Override the Whisper model. Defaults to `whisper-1`, the only
|
|
24
|
+
* current production model. Pinned here so a future rename doesn't
|
|
25
|
+
* silently shift behaviour. */
|
|
26
|
+
model?: string;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/** A transcription request option that may or may not reach the provider.
|
|
30
|
+
* `model` is excluded: every STT API takes one. */
|
|
31
|
+
export type SttParam = 'language';
|
|
32
|
+
|
|
33
|
+
export type TranscribeResult = {
|
|
34
|
+
/** Transcribed text — already trimmed. */
|
|
35
|
+
text: string;
|
|
36
|
+
/** Detected language (ISO-639-1 or longer code) if the API surfaced
|
|
37
|
+
* it. May be null on errors or older response formats. */
|
|
38
|
+
language: string | null;
|
|
39
|
+
/** Source duration in seconds (from the OpenAI response). */
|
|
40
|
+
durationSeconds: number | null;
|
|
41
|
+
/** Model that did the work, recorded for /traces. */
|
|
42
|
+
model: string;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/** OpenAI TTS voice names. Kept as a typed enum so the agent settings
|
|
46
|
+
* UI can render a closed dropdown, and so a typo doesn't get sent to
|
|
47
|
+
* the API and silently default to alloy.
|
|
48
|
+
*
|
|
49
|
+
* Set expanded May 2026: gpt-4o-mini-tts shipped 4 new voices
|
|
50
|
+
* (ballad, verse, marin, cedar) plus made ash/coral/sage usable across
|
|
51
|
+
* all models. The older tts-1 / tts-1-hd models accept a SUBSET of
|
|
52
|
+
* these — see `catalog.ts` for the per-model voice list. The union
|
|
53
|
+
* here is the full set so calling code stays correct regardless of
|
|
54
|
+
* which model the worker is configured with; the catalog filters at
|
|
55
|
+
* display time. */
|
|
56
|
+
export const TTS_VOICES = [
|
|
57
|
+
'alloy',
|
|
58
|
+
'ash',
|
|
59
|
+
'ballad',
|
|
60
|
+
'cedar',
|
|
61
|
+
'coral',
|
|
62
|
+
'echo',
|
|
63
|
+
'fable',
|
|
64
|
+
'marin',
|
|
65
|
+
'nova',
|
|
66
|
+
'onyx',
|
|
67
|
+
'sage',
|
|
68
|
+
'shimmer',
|
|
69
|
+
'verse',
|
|
70
|
+
] as const;
|
|
71
|
+
export type TtsVoice = (typeof TTS_VOICES)[number];
|
|
72
|
+
|
|
73
|
+
export type SynthesizeOptions = {
|
|
74
|
+
/** OpenAI API key in plaintext. */
|
|
75
|
+
apiKey: string;
|
|
76
|
+
/** Text to speak. Hard-limited by the caller (or trimmed here) to
|
|
77
|
+
* keep cost bounded. */
|
|
78
|
+
text: string;
|
|
79
|
+
/** Voice name; defaults to 'nova'. */
|
|
80
|
+
voice?: TtsVoice;
|
|
81
|
+
/** Model. Free-text so newer models (gpt-4o-mini-tts) work without
|
|
82
|
+
* a code change. `tts-1` / `tts-1-hd` / `gpt-4o-mini-tts` are the
|
|
83
|
+
* currently published options — see `catalog.ts`. */
|
|
84
|
+
model?: string;
|
|
85
|
+
/** Playback speed multiplier 0.25–4.0. Defaults to 1.0. */
|
|
86
|
+
speed?: number;
|
|
87
|
+
/** Output container. Defaults to 'opus' which is what Telegram
|
|
88
|
+
* voice notes use natively — sending opus avoids a transcode step
|
|
89
|
+
* and gets the bubble-style voice-note UI in chat. */
|
|
90
|
+
format?: 'mp3' | 'opus' | 'aac' | 'flac' | 'wav' | 'pcm';
|
|
91
|
+
/** Style-steering instructions ("speak warmly", "calm and slow").
|
|
92
|
+
* Only honoured by `gpt-4o-mini-tts`; older models ignore the
|
|
93
|
+
* field. We pass it through unconditionally because the OpenAI
|
|
94
|
+
* endpoint doesn't error on extra params. */
|
|
95
|
+
instructions?: string;
|
|
96
|
+
/** Optional BCP-47 language hint (e.g. 'en', 'fr', 'pt-BR') or
|
|
97
|
+
* 'auto' to let the provider detect. Different providers do
|
|
98
|
+
* different things with this:
|
|
99
|
+
* - xAI: forces the voice to speak in this language (so a
|
|
100
|
+
* voice cloned with French audio + language='fr'
|
|
101
|
+
* gets a French accent regardless of input text).
|
|
102
|
+
* - Google: used to bias TTS pronunciation.
|
|
103
|
+
* - ElevenLabs: ignored — voice + model carry the language.
|
|
104
|
+
* - OpenAI: ignored — TTS infers from text.
|
|
105
|
+
* Defaults to provider-specific auto when omitted. */
|
|
106
|
+
language?: string;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/** A synthesis option that may or may not survive the trip to a provider.
|
|
110
|
+
* `voice` and `model` are excluded on purpose: every TTS API has both, and a
|
|
111
|
+
* request without them is meaningless rather than degraded. */
|
|
112
|
+
export type TtsParam = 'speed' | 'format' | 'instructions' | 'language';
|
|
113
|
+
|
|
114
|
+
/** One option the adapter chose not to send, and why. Same convention as
|
|
115
|
+
* `ImageGenWarning` on the image side, for the same reason: the alternative
|
|
116
|
+
* is an operator setting something in /settings/ai-workers, seeing it saved,
|
|
117
|
+
* and never learning it does nothing. Providers differ enormously here —
|
|
118
|
+
* Gemini TTS has no speed parameter at all, ElevenLabs takes a language code
|
|
119
|
+
* on some models and rejects the idea on others — so the honest answer is
|
|
120
|
+
* per-adapter and sometimes per-model. */
|
|
121
|
+
export type TtsWarning = {
|
|
122
|
+
param: TtsParam;
|
|
123
|
+
reason: string;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export type SynthesizeResult = {
|
|
127
|
+
/** Audio bytes in the requested format. */
|
|
128
|
+
bytes: Buffer;
|
|
129
|
+
/** MIME of the returned audio — e.g. 'audio/ogg' for opus. */
|
|
130
|
+
mimeType: string;
|
|
131
|
+
/** Voice + model used. Echoed back so /traces can record it. */
|
|
132
|
+
voice: TtsVoice;
|
|
133
|
+
model: string;
|
|
134
|
+
/** Options this MODEL had no use for. Absent ⇒ everything applied.
|
|
135
|
+
* Per-model, so it complements the per-provider `TtsDispatcher.supports`. */
|
|
136
|
+
warnings?: readonly TtsWarning[];
|
|
137
|
+
};
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@vitest+pretty-format@4.1.10/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.10/node_modules/@vitest/utils/dist/display.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.10/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.10/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.10/node_modules/@vitest/utils/dist/timers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.10/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.10/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.10/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.10/node_modules/@vitest/runner/dist/tasks.d-deyaimiu.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.10/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/traces.d.d2t_r8rx.d.ts","../../node_modules/.pnpm/vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0/node_modules/vite/types/hmrpayload.d.ts","../../node_modules/.pnpm/vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../node_modules/.pnpm/vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0/node_modules/vite/types/customevent.d.ts","../../node_modules/.pnpm/vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0/node_modules/vite/dist/node/module-runner.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.10/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.10/node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.10/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/config.d.a1h_y6jt.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/rpc.d.b_8spu0w.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/worker.d.zphpo4yb.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/browser.d.bcoexmfg.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.10/node_modules/@vitest/spy/optional-types.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.10/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../node_modules/.pnpm/@vitest+expect@4.1.10/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.10/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/global.d.dvssrdq5.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/optional-runtime-types.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.10_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.10_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.10_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/runners.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.10_@types+node@25.9.5_vite@8.1.5_@types+node@25.9.5_esbuild@0.28.1_jiti@2.7.0_tsx@4.23.1_yaml@2.9.0_/node_modules/vitest/dist/index.d.ts","./src/providers.ts","./src/types.ts","./src/catalog.ts","./src/adapters/types.ts","./src/audio-tags.ts","./src/catalogs/elevenlabs.ts","./src/catalogs/xai.ts","./src/audio-tags.test.ts","./src/catalog.test.ts","./src/catalogs/anthropic.ts","./src/catalogs/google.ts","./src/catalogs/huggingface.ts","./src/catalogs/openai-image.ts","./src/catalogs/openai-vision.ts","./src/catalogs/openrouter.ts","./src/catalogs/deepgram.ts","./src/catalogs/assemblyai.ts","./src/catalogs/deepseek.ts","./src/adapters/retry.ts","./src/adapters/registry.ts","./src/index.ts","./src/providers.test.ts","./src/catalogs/copilot.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/index.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/index.d.ts"],"fileIdsList":[[137,187,204,205],[88,89,137,187,204,205],[137,184,185,187,204,205],[137,186,187,204,205],[187,204,205],[137,187,192,204,205,222],[137,187,188,193,198,204,205,207,219,230],[137,187,188,189,198,204,205,207],[132,133,134,137,187,204,205],[137,187,190,204,205,231],[137,187,191,192,199,204,205,208],[137,187,192,204,205,219,227],[137,187,193,195,198,204,205,207],[137,186,187,194,204,205],[137,187,195,196,204,205],[137,187,197,198,204,205],[137,186,187,198,204,205],[137,187,198,199,200,204,205,219,230],[137,187,198,199,200,204,205,214,219,222],[137,179,187,195,198,201,204,205,207,219,230],[137,187,198,199,201,202,204,205,207,219,227,230],[137,187,201,203,204,205,219,227,230],[135,136,137,138,139,140,141,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236],[137,187,198,204,205],[137,187,204,205,206,230],[137,187,195,198,204,205,207,219],[137,187,204,205,208],[137,187,204,205,209],[137,186,187,204,205,210],[137,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236],[137,187,204,205,212],[137,187,204,205,213],[137,187,198,204,205,214,215],[137,187,204,205,214,216,231,233],[137,187,199,204,205],[137,187,198,204,205,219,220,222],[137,187,204,205,221,222],[137,187,204,205,219,220],[137,187,204,205,222],[137,187,204,205,223],[137,184,187,204,205,219,224,230],[137,187,198,204,205,225,226],[137,187,204,205,225,226],[137,187,192,204,205,207,219,227],[137,187,204,205,228],[137,187,204,205,207,229],[137,187,201,204,205,213,230],[137,187,192,204,205,231],[137,187,204,205,219,232],[137,187,204,205,206,233],[137,187,204,205,234],[137,179,187,204,205],[137,179,187,198,200,204,205,210,219,222,230,232,233,235],[137,187,204,205,219,236],[61,67,85,86,87,90,137,187,204,205],[97,137,187,204,205],[97,98,137,187,204,205],[65,67,68,137,187,204,205],[65,67,137,187,204,205],[65,137,187,204,205],[60,65,76,77,137,187,204,205],[60,65,76,137,187,204,205],[84,137,187,204,205],[60,66,137,187,204,205],[60,137,187,204,205],[62,137,187,204,205],[60,61,62,63,64,137,187,204,205],[103,104,137,187,204,205],[103,104,105,106,137,187,204,205],[103,105,137,187,204,205],[103,137,187,204,205],[137,151,155,187,204,205,230],[137,151,187,204,205,219,230],[137,146,187,204,205],[137,148,151,187,204,205,227,230],[137,187,204,205,207,227],[137,187,204,205,237],[137,146,187,204,205,237],[137,148,151,187,204,205,207,230],[137,143,144,147,150,187,198,204,205,219,230],[137,151,158,187,204,205],[137,143,149,187,204,205],[137,151,172,173,187,204,205],[137,147,151,187,204,205,222,230,237],[137,172,187,204,205,237],[137,145,146,187,204,205,237],[137,151,187,204,205],[137,145,146,147,148,149,150,151,152,153,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,178,187,204,205],[137,151,166,187,204,205],[137,151,158,159,187,204,205],[137,149,151,159,160,187,204,205],[137,150,187,204,205],[137,143,146,151,187,204,205],[137,151,155,159,160,187,204,205],[137,155,187,204,205],[137,149,151,154,187,204,205,230],[137,143,148,151,158,187,204,205],[137,187,204,205,219],[137,146,151,172,187,204,205,235,237],[71,137,187,204,205],[71,72,73,74,137,187,204,205],[73,137,187,204,205],[69,92,93,95,137,187,204,205],[69,70,82,95,137,187,204,205],[60,67,69,70,78,95,137,187,204,205],[75,137,187,204,205],[60,69,70,78,91,94,95,137,187,204,205],[69,70,75,78,95,137,187,204,205],[69,92,93,94,95,137,187,204,205],[69,75,79,80,81,95,137,187,204,205],[60,65,67,69,70,75,78,79,80,81,82,83,85,91,92,93,94,95,96,99,100,101,102,107,137,187,204,205],[60,67,69,70,78,79,92,93,94,95,100,137,187,204,205],[109,112,127,137,187,204,205],[112,137,187,204,205],[109,110,111,137,187,204,205],[108,113,114,115,137,187,204,205],[108,111,137,187,204,205],[110,137,187,204,205],[111,137,187,204,205],[111,112,137,187,204,205],[109,110,111,112,113,114,115,118,119,120,121,122,123,124,125,126,128,137,187,204,205],[108,109,137,187,204,205]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"49ab4f1d153a252779958fc87b700743d32b5ffa42addd70ae23ad3f429daa5c","impliedFormat":99},{"version":"53cf4076f42b29b8d411259d168d51b3a0274c42c8814e5b44dfa8803a35d4fc","impliedFormat":99},{"version":"a39461ee1f27cf3e6cfd63d21045713d26d521da55ea4d8efccb705f689e6dbb","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"c911b3bd083dade8fdb7775261aa25feae695d562a3b11209650b47be90043fc","impliedFormat":99},{"version":"de4a612aa8f1704af486f701e21993c786ba7d8cfed55fffa6684026aea2346e","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"d4ec151557b64ff001e06b5878e66eb98640961647b1581fe2a0a1af05f408fb","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"2b39c6cf59088713babbfc3e20ee85f1375d40e66953156fa658346b8346f24f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},"fa32061a862200f4e8c11b707da5418cd029aabb4d3ff3037a1c5c7db5bc9eb3","c2726cabaf04db685a86deafe85d016f1d7905670c0620fb26bb0296893258e6","e6f28b0699ca8c0ee55d0b750cb553a5b96f4b9266de02196db91ab2e78aecf1","c9190f672fa91c17ca18f8606d1465cab9038921707224d3fc6247cd94b0af35","a7d90e35ce42cf33490a595d43d84c88c9e18af5846feabb0ada4d8301a40a2a","7e6f5f68bdbcab1ba826e9d9585b59ad792fa3a71e13671cf6e6408ebbbf24bb","56a5bf8960d423e322ac9f9d2d66f0a0a58cded0248a89f61814b4333693f2d0","cc024fe262fb3fd0fbebc5f6387426ec7441806fc61103916cf94aaf49237325","c16b78d81638e870a8a30d8daf428ee270cdd8c38a3f90abb1c5467030acb5c3","13e2304017eadda62bfb75c8b22cf296adb6b87fcb2770cc84995e3f206ca928","a852da15f370f721e215101316158202b31c32903cac065e986b597b5dc4c193","84427ac0995e60965b2dad0b539b59bee47d648b75094a4519b164fb6c69f13e","9275a595d409443c7190951c1d611b5ec2b9b2df532b8a85f3b35a95fdfe561a","b3db56cce44068199e66b5863eef812a8b36b4e344a31d932f5cf35564a3f461","c3a9cf99b830022df40f7869379b41214ef215a83fd1056065739a9c37ad1b50","495360a93ecee5ec70dc65d85d37787ad53068eabc42128226253a2755aec97f","56091b3770dd369c1f24a2d69d4611cec9770d6441c749cf96443073e4811393","5de8538debec934aec0e444a02e7ce0b7da5c17492f8e9e2a58cc46929c5fc10","45b23c4a557856d0dd638bf67f6861943c95ffbdfb34dd2fb9aa1c8587aaa8bc","1d4722b425a9b2f1b03265baec91bb1a6d6e928013c47e29edb923f7f9d520a2","77b8ff145f729b385a9af057cbb9732722bf044e1e4c49f5fe6c051d5e49d1ad","e9b314ca09f53c2091d99cd55aafc27f75816b46c074431cbb8b9312597e3cc7","8100676790b2443bb313a6b03f7ab12f9158c2aa2f33fbc56c9f7ad1e5909ae1",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1}],"root":[[109,131]],"options":{"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"module":99,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":false},"referencedMap":[[87,1],[90,2],[88,1],[184,3],[185,3],[186,4],[137,5],[187,6],[188,7],[189,8],[132,1],[135,9],[133,1],[134,1],[190,10],[191,11],[192,12],[193,13],[194,14],[195,15],[196,15],[197,16],[198,17],[199,18],[200,19],[138,1],[136,1],[201,20],[202,21],[203,22],[237,23],[204,24],[205,1],[206,25],[207,26],[208,27],[209,28],[210,29],[211,30],[212,31],[213,32],[214,33],[215,33],[216,34],[217,1],[218,35],[219,36],[221,37],[220,38],[222,39],[223,40],[224,41],[225,42],[226,43],[227,44],[228,45],[229,46],[230,47],[231,48],[232,49],[233,50],[234,51],[139,1],[140,1],[141,1],[180,52],[181,1],[182,1],[183,39],[235,53],[236,54],[91,55],[98,56],[99,57],[97,1],[60,1],[69,58],[68,59],[92,58],[76,60],[78,61],[77,62],[85,63],[84,1],[67,64],[61,65],[63,66],[65,67],[64,1],[66,65],[62,1],[89,1],[142,1],[105,68],[107,69],[106,70],[104,71],[103,1],[93,1],[86,1],[58,1],[59,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[1,1],[158,72],[168,73],[157,72],[178,74],[149,75],[148,76],[177,77],[171,78],[176,79],[151,80],[165,81],[150,82],[174,83],[146,84],[145,77],[175,85],[147,86],[152,87],[153,1],[156,87],[143,1],[179,88],[169,89],[160,90],[161,91],[163,92],[159,93],[162,94],[172,77],[154,95],[155,96],[164,97],[144,98],[167,89],[166,87],[170,1],[173,99],[72,100],[75,101],[73,100],[71,1],[74,102],[94,103],[83,104],[79,105],[80,60],[101,106],[95,107],[81,108],[100,109],[70,1],[82,110],[108,111],[102,112],[96,1],[128,113],[127,114],[112,115],[116,116],[113,114],[117,117],[111,118],[118,114],[125,119],[131,114],[124,119],[126,114],[114,120],[119,120],[120,114],[121,114],[122,114],[123,114],[115,120],[129,121],[130,122],[109,1],[110,1]],"affectedFilesPendingEmit":[[128,51],[127,51],[112,51],[116,51],[113,51],[117,51],[111,51],[118,51],[125,51],[131,51],[124,51],[126,51],[114,51],[119,51],[120,51],[121,51],[122,51],[123,51],[115,51],[129,51],[130,51],[109,51],[110,51]],"version":"5.9.3"}
|