Files
patchy631--ai-engineering-hub/finetune-studio-mcp-app/dist/widget.html
T
2026-07-13 12:37:47 +08:00

1678 lines
344 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FineTune Studio</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
height: 100%;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', sans-serif;
background: #fcfcfc;
color: #0f172a;
font-size: 13px;
-webkit-font-smoothing: antialiased;
overflow: hidden;
}
#app {
display: flex;
flex-direction: column;
height: 100vh;
min-height: 580px;
background: #fcfcfc;
overflow: hidden;
}
/* ── Top header bar ─────────────────────────────────────── */
.studio-header {
flex-shrink: 0;
display: flex;
align-items: center;
gap: 10px;
padding: 0 16px;
height: 48px;
background: #ffffff;
border-bottom: 1.5px solid #e2e8f0;
box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.studio-brand {
display: flex;
align-items: center;
gap: 8px;
font-weight: 700;
font-size: 14px;
color: #0f172a;
flex-shrink: 0;
letter-spacing: -0.01em;
}
.studio-brand-icon {
width: 26px; height: 26px;
background: linear-gradient(135deg, #2563eb, #60a5fa);
border-radius: 7px;
display: flex; align-items: center; justify-content: center;
box-shadow: 0 2px 6px rgba(37,99,235,0.35);
}
/* ── Tabs ───────────────────────────────────────────────── */
.tab-bar {
display: flex;
align-items: center;
gap: 3px;
margin-left: 16px;
flex: 1;
}
.tab-btn {
display: flex;
align-items: center;
gap: 6px;
padding: 5px 13px;
height: 30px;
background: transparent;
border: 1.5px solid transparent;
border-radius: 8px;
color: #64748b;
font-size: 12.5px;
font-weight: 500;
cursor: pointer;
transition: all 0.15s;
white-space: nowrap;
}
.tab-btn:hover { background: #f1f5f9; color: #0f172a; border-color: #e2e8f0; }
.tab-btn.active {
background: #2563eb;
border-color: #2563eb;
color: #ffffff;
box-shadow: 0 1px 6px rgba(37,99,235,0.4);
}
/* ── Content area ───────────────────────────────────────── */
.tab-content {
flex: 1;
min-height: 0;
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: thin;
scrollbar-color: #e2e8f0 transparent;
}
.tab-content::-webkit-scrollbar { width: 6px; }
.tab-content::-webkit-scrollbar-track { background: transparent; }
.tab-content::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
/* ── Wizard step bar ────────────────────────────────────── */
.wizard-bar {
display: flex;
align-items: center;
gap: 0;
padding: 12px 20px;
background: #ffffff;
border-bottom: 1.5px solid #e2e8f0;
flex-shrink: 0;
}
.wizard-step {
display: flex;
align-items: center;
gap: 6px;
font-size: 11.5px;
color: #94a3b8;
font-weight: 500;
white-space: nowrap;
}
.wizard-step.active { color: #2563eb; }
.wizard-step.done { color: #16a34a; }
.step-num {
width: 20px; height: 20px;
border-radius: 50%;
border: 1.5px solid currentColor;
display: flex; align-items: center; justify-content: center;
font-size: 10px;
font-weight: 700;
flex-shrink: 0;
}
.step-done-icon { font-size: 11px; }
.wizard-connector {
flex: 1;
height: 1.5px;
background: #e2e8f0;
margin: 0 8px;
min-width: 16px;
}
.wizard-connector.done { background: #86efac; }
/* ── Step content ───────────────────────────────────────── */
.step-body {
padding: 16px 20px 20px;
}
/* ── Search box ─────────────────────────────────────────── */
.search-wrap {
position: relative;
margin-bottom: 12px;
}
.search-wrap svg {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
color: #94a3b8;
pointer-events: none;
}
.search-input {
width: 100%;
padding: 8px 12px 8px 36px;
background: #f8fafc;
border: 1.5px solid #e2e8f0;
border-radius: 22px;
color: #0f172a;
font-size: 13px;
outline: none;
transition: border-color 0.15s, box-shadow 0.15s;
}
.search-input:focus {
border-color: #93c5fd;
box-shadow: 0 0 0 3px rgba(37,99,235,0.08);
background: #ffffff;
}
.search-input::placeholder { color: #94a3b8; }
/* ── Cards ──────────────────────────────────────────────── */
.card-list { display: flex; flex-direction: column; gap: 7px; }
.model-card, .dataset-card {
background: #ffffff;
border: 1.5px solid #e2e8f0;
border-radius: 10px;
padding: 11px 13px;
display: flex;
align-items: flex-start;
gap: 10px;
transition: border-color 0.15s, box-shadow 0.15s;
cursor: pointer;
box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.model-card:hover, .dataset-card:hover {
border-color: #93c5fd;
box-shadow: 0 2px 8px rgba(37,99,235,0.1);
}
.model-card.selected, .dataset-card.selected {
border-color: #2563eb;
background: #eff6ff;
box-shadow: 0 2px 8px rgba(37,99,235,0.12);
}
.card-body { flex: 1; min-width: 0; }
.card-name {
font-weight: 600;
font-size: 12.5px;
color: #2563eb;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.card-meta {
display: flex;
align-items: center;
gap: 10px;
margin-top: 3px;
font-size: 11px;
color: #64748b;
}
.card-meta-item { display: flex; align-items: center; gap: 3px; }
.card-desc {
margin-top: 4px;
font-size: 11.5px;
color: #475569;
line-height: 1.5;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.tag-pills {
display: flex;
flex-wrap: wrap;
gap: 4px;
margin-top: 6px;
}
.tag-pill {
padding: 2px 8px;
background: #f1f5f9;
border: 1px solid #e2e8f0;
border-radius: 10px;
font-size: 10.5px;
color: #475569;
font-weight: 500;
}
.card-action {
flex-shrink: 0;
align-self: center;
}
/* ── Buttons ─────────────────────────────────────────────── */
.btn {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 7px 15px;
border-radius: 8px;
font-size: 12.5px;
font-weight: 600;
cursor: pointer;
border: 1.5px solid transparent;
transition: all 0.15s;
white-space: nowrap;
}
.btn-primary {
background: #16a34a;
border-color: #16a34a;
color: #ffffff;
box-shadow: 0 1px 4px rgba(22,163,74,0.3);
}
.btn-primary:hover:not(:disabled) {
background: #15803d;
border-color: #15803d;
box-shadow: 0 2px 8px rgba(22,163,74,0.4);
}
.btn-accent {
background: #2563eb;
border-color: #2563eb;
color: #ffffff;
box-shadow: 0 1px 4px rgba(37,99,235,0.3);
}
.btn-accent:hover:not(:disabled) {
background: #1d4ed8;
border-color: #1d4ed8;
box-shadow: 0 2px 8px rgba(37,99,235,0.4);
}
.btn-secondary {
background: #ffffff;
border-color: #e2e8f0;
color: #475569;
box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.btn-secondary:hover:not(:disabled) {
background: #f8fafc;
border-color: #cbd5e1;
color: #0f172a;
}
.btn-ghost {
background: transparent;
border-color: transparent;
color: #64748b;
padding: 4px 8px;
box-shadow: none;
}
.btn-ghost:hover { color: #0f172a; background: #f1f5f9; }
.btn-sm { padding: 4px 11px; font-size: 11.5px; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-danger {
background: #ffffff;
border-color: #fca5a5;
color: #dc2626;
}
.btn-danger:hover:not(:disabled) { background: #fef2f2; border-color: #dc2626; }
/* ── Step navigation ─────────────────────────────────────── */
.step-nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 20px;
border-top: 1.5px solid #e2e8f0;
background: #ffffff;
flex-shrink: 0;
}
/* ── Form elements ───────────────────────────────────────── */
.form-section {
margin-bottom: 16px;
}
.form-section-title {
font-size: 11px;
font-weight: 700;
color: #64748b;
text-transform: uppercase;
letter-spacing: 0.07em;
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 6px;
}
.form-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
}
.form-group {
display: flex;
flex-direction: column;
gap: 4px;
}
.form-group.full { grid-column: 1 / -1; }
.form-label {
font-size: 11.5px;
font-weight: 600;
color: #475569;
}
.form-input, .form-select, .form-textarea {
padding: 7px 10px;
background: #f8fafc;
border: 1.5px solid #e2e8f0;
border-radius: 7px;
color: #0f172a;
font-size: 12.5px;
outline: none;
transition: border-color 0.15s, box-shadow 0.15s;
font-family: inherit;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
border-color: #93c5fd;
box-shadow: 0 0 0 3px rgba(37,99,235,0.08);
background: #ffffff;
}
.form-select {
cursor: pointer;
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2364748b'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 10px center;
background-color: #f8fafc;
padding-right: 28px;
}
.form-textarea { resize: vertical; min-height: 80px; }
/* ── Toggle / radio ──────────────────────────────────────── */
.toggle-group {
display: flex;
background: #f1f5f9;
border: 1.5px solid #e2e8f0;
border-radius: 8px;
padding: 2px;
gap: 2px;
width: fit-content;
}
.toggle-btn {
padding: 5px 14px;
background: transparent;
border: none;
border-radius: 6px;
color: #64748b;
font-size: 12px;
font-weight: 500;
cursor: pointer;
transition: all 0.15s;
}
.toggle-btn.active {
background: #ffffff;
color: #0f172a;
font-weight: 600;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.radio-group { display: flex; flex-direction: column; gap: 6px; }
.radio-option {
display: flex;
align-items: flex-start;
gap: 8px;
padding: 9px 11px;
border: 1.5px solid #e2e8f0;
border-radius: 8px;
cursor: pointer;
transition: border-color 0.15s, background 0.15s;
background: #ffffff;
}
.radio-option:hover { border-color: #93c5fd; background: #f8fafc; }
.radio-option.selected { border-color: #2563eb; background: #eff6ff; }
.radio-option input[type="radio"] { margin-top: 1px; accent-color: #2563eb; }
.radio-label { font-size: 12.5px; font-weight: 600; color: #0f172a; }
.radio-desc { font-size: 11px; color: #64748b; margin-top: 2px; }
/* ── Collapsible section ─────────────────────────────────── */
.collapsible-header {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
user-select: none;
padding: 9px 12px;
background: #f8fafc;
border: 1.5px solid #e2e8f0;
border-radius: 8px;
margin-bottom: 8px;
transition: background 0.15s, border-color 0.15s;
}
.collapsible-header:hover { background: #f1f5f9; border-color: #cbd5e1; }
.collapsible-title {
font-size: 12px;
font-weight: 600;
color: #0f172a;
display: flex;
align-items: center;
gap: 6px;
}
.collapsible-chevron {
color: #94a3b8;
transition: transform 0.2s;
}
.collapsible-chevron.open { transform: rotate(90deg); }
.collapsible-body { display: none; }
.collapsible-body.open { display: block; }
/* ── Validation display ──────────────────────────────────── */
.validation-bar {
display: flex;
align-items: center;
gap: 6px;
padding: 7px 11px;
border-radius: 7px;
font-size: 12px;
margin-top: 6px;
font-weight: 500;
}
.validation-bar.ok { background: #f0fdf4; border: 1.5px solid #86efac; color: #16a34a; }
.validation-bar.err { background: #fef2f2; border: 1.5px solid #fca5a5; color: #dc2626; }
.validation-bar.warn { background: #fffbeb; border: 1.5px solid #fcd34d; color: #d97706; }
.validation-errors {
margin-top: 6px;
padding: 8px 10px;
background: #fef2f2;
border: 1.5px solid #fca5a5;
border-radius: 7px;
font-size: 11px;
color: #dc2626;
font-family: 'SF Mono', 'Consolas', monospace;
line-height: 1.6;
}
/* ── Dataset preview table ───────────────────────────────── */
.preview-table-wrap {
overflow-x: auto;
border: 1.5px solid #e2e8f0;
border-radius: 8px;
margin-top: 8px;
}
.preview-table {
width: 100%;
border-collapse: collapse;
font-size: 11.5px;
}
.preview-table th {
background: #f8fafc;
padding: 7px 10px;
text-align: left;
font-weight: 700;
color: #64748b;
border-bottom: 1.5px solid #e2e8f0;
white-space: nowrap;
text-transform: uppercase;
font-size: 10.5px;
letter-spacing: 0.04em;
}
.preview-table td {
padding: 5px 10px;
color: #0f172a;
border-bottom: 1px solid #f1f5f9;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.preview-table tr:last-child td { border-bottom: none; }
/* ── Training dashboard ──────────────────────────────────── */
.status-banner {
display: flex;
align-items: center;
gap: 10px;
padding: 12px 16px;
border-radius: 10px;
margin-bottom: 14px;
font-size: 13px;
font-weight: 600;
}
.status-banner.starting { background: #f8fafc; border: 1.5px solid #e2e8f0; color: #475569; }
.status-banner.training { background: #eff6ff; border: 1.5px solid #93c5fd; color: #2563eb; }
.status-banner.completed { background: #f0fdf4; border: 1.5px solid #86efac; color: #16a34a; }
.status-banner.error { background: #fef2f2; border: 1.5px solid #fca5a5; color: #dc2626; }
.pulse-dot {
width: 8px; height: 8px;
border-radius: 50%;
background: currentColor;
animation: pulse 1.5s infinite;
flex-shrink: 0;
}
@keyframes pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.4; transform: scale(0.8); }
}
.metrics-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 8px;
margin-bottom: 14px;
}
.metric-card {
background: #ffffff;
border: 1.5px solid #e2e8f0;
border-radius: 10px;
padding: 11px 13px;
box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.metric-label {
font-size: 10px;
color: #64748b;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.07em;
margin-bottom: 4px;
}
.metric-value {
font-size: 18px;
font-weight: 800;
color: #0f172a;
font-variant-numeric: tabular-nums;
}
.metric-sub {
font-size: 10.5px;
color: #94a3b8;
margin-top: 2px;
}
/* Sparkline area */
.sparkline-wrap {
margin-top: 4px;
height: 28px;
}
/* ── Log viewer ──────────────────────────────────────────── */
.log-wrap { margin-bottom: 14px; }
.log-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
}
.log-body {
background: #1e293b;
border: 1.5px solid #334155;
border-radius: 8px;
padding: 10px;
height: 120px;
overflow-y: auto;
font-family: 'SF Mono', 'Consolas', 'Courier New', monospace;
font-size: 10.5px;
color: #ffffff;
line-height: 1.6;
scrollbar-width: thin;
scrollbar-color: #475569 transparent;
}
.log-body::-webkit-scrollbar { width: 4px; }
.log-body::-webkit-scrollbar-thumb { background: #334155; border-radius: 2px; }
.log-line { white-space: pre-wrap; word-break: break-all; }
.log-line.highlight { color: #60a5fa; }
.log-line.success { color: #4ade80; }
.log-line.error { color: #f87171; }
/* ── Progress bar ────────────────────────────────────────── */
.progress-wrap { margin-bottom: 14px; }
.progress-header {
display: flex;
justify-content: space-between;
font-size: 11.5px;
color: #64748b;
margin-bottom: 6px;
font-weight: 500;
}
.progress-bar {
height: 7px;
background: #e2e8f0;
border-radius: 4px;
overflow: hidden;
}
.progress-fill {
height: 100%;
background: linear-gradient(90deg, #2563eb, #60a5fa);
border-radius: 4px;
transition: width 0.5s ease;
}
/* ── Chat UI ─────────────────────────────────────────────── */
.chat-layout {
display: flex;
flex-direction: column;
height: 100%;
}
.chat-topbar {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
border-bottom: 1.5px solid #e2e8f0;
background: #ffffff;
flex-shrink: 0;
}
.model-selector-wrap {
flex: 1;
position: relative;
}
.model-selector {
width: 100%;
padding: 7px 10px;
background: #f8fafc;
border: 1.5px solid #e2e8f0;
border-radius: 8px;
color: #0f172a;
font-size: 12.5px;
outline: none;
cursor: pointer;
transition: border-color 0.15s;
}
.model-selector:focus { border-color: #93c5fd; box-shadow: 0 0 0 3px rgba(37,99,235,0.08); }
.settings-panel {
background: #f8fafc;
border-bottom: 1.5px solid #e2e8f0;
padding: 12px 16px;
display: none;
flex-shrink: 0;
}
.settings-panel.open { display: block; }
.settings-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
margin-bottom: 10px;
}
.slider-group { display: flex; flex-direction: column; gap: 4px; }
.slider-label-row {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 11.5px;
color: #64748b;
font-weight: 500;
}
.slider-val { color: #0f172a; font-weight: 700; font-variant-numeric: tabular-nums; }
input[type="range"] {
width: 100%;
accent-color: #2563eb;
cursor: pointer;
}
.chat-area {
flex: 1;
min-height: 0;
overflow-y: auto;
padding: 16px;
display: flex;
flex-direction: column;
gap: 12px;
scrollbar-width: thin;
scrollbar-color: #e2e8f0 transparent;
background: #fcfcfc;
}
.chat-area::-webkit-scrollbar { width: 4px; }
.chat-area::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 2px; }
.chat-empty {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 8px;
color: #94a3b8;
}
.chat-empty-icon { font-size: 32px; margin-bottom: 4px; }
.chat-empty-title { font-size: 14px; font-weight: 700; color: #64748b; }
.chat-empty-sub { font-size: 12px; text-align: center; max-width: 260px; line-height: 1.5; color: #94a3b8; }
.msg-row {
display: flex;
flex-direction: column;
gap: 3px;
max-width: 80%;
}
.msg-row.user { align-self: flex-end; align-items: flex-end; }
.msg-row.assistant { align-self: flex-start; align-items: flex-start; }
.msg-label {
font-size: 10.5px;
color: #94a3b8;
padding: 0 4px;
font-weight: 500;
}
.msg-bubble {
padding: 10px 14px;
border-radius: 14px;
font-size: 13px;
line-height: 1.55;
max-width: 100%;
word-break: break-word;
}
.msg-row.user .msg-bubble {
background: #2563eb;
color: #ffffff;
border-bottom-right-radius: 4px;
box-shadow: 0 2px 8px rgba(37,99,235,0.25);
}
.msg-row.assistant .msg-bubble {
background: #ffffff;
border: 1.5px solid #e2e8f0;
color: #0f172a;
border-bottom-left-radius: 4px;
box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.msg-bubble code {
font-family: 'SF Mono', 'Consolas', monospace;
font-size: 11.5px;
background: rgba(0,0,0,0.07);
padding: 1px 5px;
border-radius: 4px;
}
.msg-bubble pre {
background: #0f172a;
border: 1px solid #1e293b;
border-radius: 7px;
padding: 10px;
overflow-x: auto;
margin: 7px 0;
}
.msg-bubble pre code { background: transparent; padding: 0; font-size: 11px; color: #e2e8f0; }
.msg-bubble strong { color: #0f172a; }
.msg-row.user .msg-bubble strong { color: #ffffff; }
.typing-indicator {
display: flex;
align-items: center;
gap: 4px;
padding: 11px 15px;
background: #ffffff;
border: 1.5px solid #e2e8f0;
border-radius: 14px;
border-bottom-left-radius: 4px;
width: fit-content;
box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.typing-dot {
width: 6px; height: 6px;
background: #93c5fd;
border-radius: 50%;
animation: typingBounce 1.2s infinite;
}
.typing-dot:nth-child(2) { animation-delay: 0.2s; }
.typing-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes typingBounce {
0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
30% { transform: translateY(-5px); opacity: 1; }
}
/* ── Chat input bar ──────────────────────────────────────── */
.chat-inputbar {
flex-shrink: 0;
padding: 10px 16px;
border-top: 1.5px solid #e2e8f0;
background: #ffffff;
display: flex;
align-items: flex-end;
gap: 8px;
}
.chat-input {
flex: 1;
padding: 9px 14px;
background: #f8fafc;
border: 1.5px solid #e2e8f0;
border-radius: 22px;
color: #0f172a;
font-size: 13px;
outline: none;
resize: none;
max-height: 120px;
line-height: 1.5;
font-family: inherit;
transition: border-color 0.15s, box-shadow 0.15s;
}
.chat-input:focus {
border-color: #93c5fd;
box-shadow: 0 0 0 3px rgba(37,99,235,0.08);
background: #ffffff;
}
.chat-input::placeholder { color: #94a3b8; }
.send-btn {
width: 36px; height: 36px;
background: #2563eb;
border: none;
border-radius: 50%;
color: white;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: background 0.15s, box-shadow 0.15s;
box-shadow: 0 2px 6px rgba(37,99,235,0.35);
}
.send-btn:hover:not(:disabled) {
background: #1d4ed8;
box-shadow: 0 3px 10px rgba(37,99,235,0.5);
}
.send-btn:disabled { opacity: 0.4; cursor: not-allowed; box-shadow: none; }
/* ── Misc helpers ────────────────────────────────────────── */
.hint-text {
font-size: 11px;
color: #94a3b8;
margin-top: 4px;
line-height: 1.5;
}
.selected-model-bar {
display: flex;
align-items: center;
gap: 8px;
padding: 9px 12px;
background: #eff6ff;
border: 1.5px solid #93c5fd;
border-radius: 8px;
margin-bottom: 10px;
font-size: 12.5px;
color: #2563eb;
font-weight: 600;
}
.selected-model-bar .clear-sel {
margin-left: auto;
color: #94a3b8;
cursor: pointer;
font-size: 14px;
line-height: 1;
background: none;
border: none;
}
.selected-model-bar .clear-sel:hover { color: #dc2626; }
.cost-estimate {
display: flex;
align-items: center;
gap: 8px;
padding: 9px 12px;
background: #fffbeb;
border: 1.5px solid #fcd34d;
border-radius: 8px;
font-size: 11.5px;
color: #92400e;
margin-top: 12px;
}
.cost-estimate strong { color: #d97706; }
.loading-spinner {
display: inline-block;
width: 14px; height: 14px;
border: 2px solid #e2e8f0;
border-top-color: #2563eb;
border-radius: 50%;
animation: spin 0.7s linear infinite;
flex-shrink: 0;
}
@keyframes spin { to { transform: rotate(360deg); } }
.error-msg {
padding: 9px 13px;
background: #fef2f2;
border: 1.5px solid #fca5a5;
border-radius: 8px;
color: #dc2626;
font-size: 12px;
line-height: 1.5;
font-weight: 500;
}
.success-box {
padding: 14px 16px;
background: #f0fdf4;
border: 1.5px solid #86efac;
border-radius: 10px;
color: #16a34a;
}
.success-box h3 { font-size: 14px; margin-bottom: 6px; color: #16a34a; font-weight: 700; }
.success-box a { color: #2563eb; }
.divider {
height: 1.5px;
background: #f1f5f9;
margin: 14px 0;
}
.format-guide {
background: #0f172a;
border: 1.5px solid #1e293b;
border-radius: 8px;
padding: 10px;
font-family: 'SF Mono', 'Consolas', monospace;
font-size: 10.5px;
color: #94a3b8;
line-height: 1.7;
margin-bottom: 8px;
white-space: pre;
overflow-x: auto;
}
.format-guide .highlight { color: #7dd3fc; }
.format-guide .string { color: #a5f3fc; }
.format-guide .key { color: #f9a8d4; }
.section-label {
font-size: 11px;
font-weight: 700;
color: #64748b;
margin-bottom: 8px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.empty-results {
text-align: center;
padding: 24px 20px;
color: #94a3b8;
font-size: 12px;
}
/* ── Model search dropdown for inference ─────────────────── */
.model-search-dropdown {
position: absolute;
top: calc(100% + 4px);
left: 0;
right: 0;
background: #ffffff;
border: 1.5px solid #e2e8f0;
border-radius: 10px;
z-index: 100;
max-height: 200px;
overflow-y: auto;
box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}
.dropdown-item {
padding: 8px 13px;
cursor: pointer;
font-size: 12.5px;
color: #0f172a;
transition: background 0.1s;
border-bottom: 1px solid #f1f5f9;
}
.dropdown-item:last-child { border-bottom: none; }
.dropdown-item:hover { background: #eff6ff; }
.dropdown-item .di-id { color: #2563eb; font-weight: 600; }
.dropdown-item .di-meta { font-size: 10.5px; color: #64748b; margin-top: 1px; }
/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 480px) {
.metrics-grid { grid-template-columns: 1fr 1fr; }
.form-grid { grid-template-columns: 1fr; }
.settings-grid { grid-template-columns: 1fr; }
}
</style>
<script type="module" crossorigin>var td=Object.defineProperty;var nd=(t,n,r)=>n in t?td(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r;var F=(t,n,r)=>nd(t,typeof n!="symbol"?n+"":n,r);(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))o(e);new MutationObserver(e=>{for(const i of e)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&o(a)}).observe(document,{childList:!0,subtree:!0});function r(e){const i={};return e.integrity&&(i.integrity=e.integrity),e.referrerPolicy&&(i.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?i.credentials="include":e.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(e){if(e.ep)return;e.ep=!0;const i=r(e);fetch(e.href,i)}})();const rd="modulepreload",id=function(t,n){return new URL(t,n).href},Yo={},od=function(n,r,o){let e=Promise.resolve();if(r&&r.length>0){const a=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),c=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));e=Promise.allSettled(r.map(u=>{if(u=id(u,o),u in Yo)return;Yo[u]=!0;const b=u.endsWith(".css"),y=b?'[rel="stylesheet"]':"";if(!!o)for(let v=a.length-1;v>=0;v--){const T=a[v];if(T.href===u&&(!b||T.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${y}`))return;const I=document.createElement("link");if(I.rel=b?"stylesheet":rd,b||(I.as="script"),I.crossOrigin="",I.href=u,c&&I.setAttribute("nonce",c),document.head.appendChild(I),b)return new Promise((v,T)=>{I.addEventListener("load",v),I.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(a){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a}return e.then(a=>{for(const s of a||[])s.status==="rejected"&&i(s.reason);return n().catch(i)})},Nr=Object.freeze({status:"aborted"});function d(t,n,r){function o(s,c){var u;Object.defineProperty(s,"_zod",{value:s._zod??{},enumerable:!1}),(u=s._zod).traits??(u.traits=new Set),s._zod.traits.add(t),n(s,c);for(const b in a.prototype)b in s||Object.defineProperty(s,b,{value:a.prototype[b].bind(s)});s._zod.constr=a,s._zod.def=c}const e=(r==null?void 0:r.Parent)??Object;class i extends e{}Object.defineProperty(i,"name",{value:t});function a(s){var c;const u=r!=null&&r.Parent?new i:this;o(u,s),(c=u._zod).deferred??(c.deferred=[]);for(const b of u._zod.deferred)b();return u}return Object.defineProperty(a,"init",{value:o}),Object.defineProperty(a,Symbol.hasInstance,{value:s=>{var c,u;return r!=null&&r.Parent&&s instanceof r.Parent?!0:(u=(c=s==null?void 0:s._zod)==null?void 0:c.traits)==null?void 0:u.has(t)}}),Object.defineProperty(a,"name",{value:t}),a}const Or=Symbol("zod_brand");class it extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const tn={};function se(t){return t&&Object.assign(tn,t),tn}function ad(t){return t}function sd(t){return t}function cd(t){}function ld(t){throw new Error}function ud(t){}function Er(t){const n=Object.values(t).filter(o=>typeof o=="number");return Object.entries(t).filter(([o,e])=>n.indexOf(+o)===-1).map(([o,e])=>e)}function w(t,n="|"){return t.map(r=>U(r)).join(n)}function Sa(t,n){return typeof n=="bigint"?n.toString():n}function gn(t){return{get value(){{const n=t();return Object.defineProperty(this,"value",{value:n}),n}}}}function Ge(t){return t==null}function hn(t){const n=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(n,r)}function wa(t,n){const r=(t.toString().split(".")[1]||"").length,o=(n.toString().split(".")[1]||"").length,e=r>o?r:o,i=Number.parseInt(t.toFixed(e).replace(".","")),a=Number.parseInt(n.toFixed(e).replace(".",""));return i%a/10**e}function B(t,n,r){Object.defineProperty(t,n,{get(){{const o=r();return t[n]=o,o}},set(o){Object.defineProperty(t,n,{value:o})},configurable:!0})}function ft(t,n,r){Object.defineProperty(t,n,{value:r,writable:!0,enumerable:!0,configurable:!0})}function dd(t,n){return n?n.reduce((r,o)=>r==null?void 0:r[o],t):t}function md(t){const n=Object.keys(t),r=n.map(o=>t[o]);return Promise.all(r).then(o=>{const e={};for(let i=0;i<n.length;i++)e[n[i]]=o[i];return e})}function pd(t=10){const n="abcdefghijklmnopqrstuvwxyz";let r="";for(let o=0;o<t;o++)r+=n[Math.floor(Math.random()*n.length)];return r}function Xe(t){return JSON.stringify(t)}const Pr=Error.captureStackTrace?Error.captureStackTrace:(...t)=>{};function $t(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}const Ia=gn(()=>{var t;if(typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)!=null&&t.includes("Cloudflare")))return!1;try{const n=Function;return new n(""),!0}catch{return!1}});function _t(t){if($t(t)===!1)return!1;const n=t.constructor;if(n===void 0)return!0;const r=n.prototype;return!($t(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function fd(t){let n=0;for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&n++;return n}const gd=t=>{const n=typeof t;switch(n){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${n}`)}},nn=new Set(["string","number","symbol"]),xa=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Ke(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ee(t,n,r){const o=new t._zod.constr(n??t._zod.def);return(!n||r!=null&&r.parent)&&(o._zod.parent=t),o}function h(t){const n=t;if(!n)return{};if(typeof n=="string")return{error:()=>n};if((n==null?void 0:n.message)!==void 0){if((n==null?void 0:n.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");n.error=n.message}return delete n.message,typeof n.error=="string"?{...n,error:()=>n.error}:n}function hd(t){let n;return new Proxy({},{get(r,o,e){return n??(n=t()),Reflect.get(n,o,e)},set(r,o,e,i){return n??(n=t()),Reflect.set(n,o,e,i)},has(r,o){return n??(n=t()),Reflect.has(n,o)},deleteProperty(r,o){return n??(n=t()),Reflect.deleteProperty(n,o)},ownKeys(r){return n??(n=t()),Reflect.ownKeys(n)},getOwnPropertyDescriptor(r,o){return n??(n=t()),Reflect.getOwnPropertyDescriptor(n,o)},defineProperty(r,o,e){return n??(n=t()),Reflect.defineProperty(n,o,e)}})}function U(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function za(t){return Object.keys(t).filter(n=>t[n]._zod.optin==="optional"&&t[n]._zod.optout==="optional")}const ja={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Ta={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Na(t,n){const r={},o=t._zod.def;for(const e in n){if(!(e in o.shape))throw new Error(`Unrecognized key: "${e}"`);n[e]&&(r[e]=o.shape[e])}return Ee(t,{...t._zod.def,shape:r,checks:[]})}function Oa(t,n){const r={...t._zod.def.shape},o=t._zod.def;for(const e in n){if(!(e in o.shape))throw new Error(`Unrecognized key: "${e}"`);n[e]&&delete r[e]}return Ee(t,{...t._zod.def,shape:r,checks:[]})}function Ea(t,n){if(!_t(n))throw new Error("Invalid input to extend: expected a plain object");const r={...t._zod.def,get shape(){const o={...t._zod.def.shape,...n};return ft(this,"shape",o),o},checks:[]};return Ee(t,r)}function Pa(t,n){return Ee(t,{...t._zod.def,get shape(){const r={...t._zod.def.shape,...n._zod.def.shape};return ft(this,"shape",r),r},catchall:n._zod.def.catchall,checks:[]})}function Ua(t,n,r){const o=n._zod.def.shape,e={...o};if(r)for(const i in r){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(e[i]=t?new t({type:"optional",innerType:o[i]}):o[i])}else for(const i in o)e[i]=t?new t({type:"optional",innerType:o[i]}):o[i];return Ee(n,{...n._zod.def,shape:e,checks:[]})}function Da(t,n,r){const o=n._zod.def.shape,e={...o};if(r)for(const i in r){if(!(i in e))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(e[i]=new t({type:"nonoptional",innerType:o[i]}))}else for(const i in o)e[i]=new t({type:"nonoptional",innerType:o[i]});return Ee(n,{...n._zod.def,shape:e,checks:[]})}function nt(t,n=0){var r;for(let o=n;o<t.issues.length;o++)if(((r=t.issues[o])==null?void 0:r.continue)!==!0)return!0;return!1}function Se(t,n){return n.map(r=>{var o;return(o=r).path??(o.path=[]),r.path.unshift(t),r})}function vt(t){return typeof t=="string"?t:t==null?void 0:t.message}function Oe(t,n,r){var e,i,a,s,c,u;const o={...t,path:t.path??[]};if(!t.message){const b=vt((a=(i=(e=t.inst)==null?void 0:e._zod.def)==null?void 0:i.error)==null?void 0:a.call(i,t))??vt((s=n==null?void 0:n.error)==null?void 0:s.call(n,t))??vt((c=r.customError)==null?void 0:c.call(r,t))??vt((u=r.localeError)==null?void 0:u.call(r,t))??"Invalid input";o.message=b}return delete o.inst,delete o.continue,n!=null&&n.reportInput||delete o.input,o}function vn(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function bn(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function ot(...t){const[n,r,o]=t;return typeof n=="string"?{message:n,code:"custom",input:r,inst:o}:{...n}}function vd(t){return Object.entries(t).filter(([n,r])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}class bd{constructor(...n){}}const yd=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:Ta,Class:bd,NUMBER_FORMAT_RANGES:ja,aborted:nt,allowsEval:Ia,assert:ud,assertEqual:ad,assertIs:cd,assertNever:ld,assertNotEqual:sd,assignProp:ft,cached:gn,captureStackTrace:Pr,cleanEnum:vd,cleanRegex:hn,clone:Ee,createTransparentProxy:hd,defineLazy:B,esc:Xe,escapeRegex:Ke,extend:Ea,finalizeIssue:Oe,floatSafeRemainder:wa,getElementAtPath:dd,getEnumValues:Er,getLengthableOrigin:bn,getParsedType:gd,getSizableOrigin:vn,isObject:$t,isPlainObject:_t,issue:ot,joinValues:w,jsonStringifyReplacer:Sa,merge:Pa,normalizeParams:h,nullish:Ge,numKeys:fd,omit:Oa,optionalKeys:za,partial:Ua,pick:Na,prefixIssues:Se,primitiveTypes:xa,promiseAllObject:md,propertyKeyTypes:nn,randomString:pd,required:Da,stringifyPrimitive:U,unwrapMessage:vt},Symbol.toStringTag,{value:"Module"})),Ra=(t,n)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:n,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(n,Sa,2)},enumerable:!0}),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Ur=d("$ZodError",Ra),jt=d("$ZodError",Ra,{Parent:Error});function yn(t,n=r=>r.message){const r={},o=[];for(const e of t.issues)e.path.length>0?(r[e.path[0]]=r[e.path[0]]||[],r[e.path[0]].push(n(e))):o.push(n(e));return{formErrors:o,fieldErrors:r}}function $n(t,n){const r=n||function(i){return i.message},o={_errors:[]},e=i=>{for(const a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(s=>e({issues:s}));else if(a.code==="invalid_key")e({issues:a.issues});else if(a.code==="invalid_element")e({issues:a.issues});else if(a.path.length===0)o._errors.push(r(a));else{let s=o,c=0;for(;c<a.path.length;){const u=a.path[c];c===a.path.length-1?(s[u]=s[u]||{_errors:[]},s[u]._errors.push(r(a))):s[u]=s[u]||{_errors:[]},s=s[u],c++}}};return e(t),o}function Dr(t,n){const r=n||function(i){return i.message},o={errors:[]},e=(i,a=[])=>{var s,c;for(const u of i.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(b=>e({issues:b},u.path));else if(u.code==="invalid_key")e({issues:u.issues},u.path);else if(u.code==="invalid_element")e({issues:u.issues},u.path);else{const b=[...a,...u.path];if(b.length===0){o.errors.push(r(u));continue}let y=o,_=0;for(;_<b.length;){const I=b[_],v=_===b.length-1;typeof I=="string"?(y.properties??(y.properties={}),(s=y.properties)[I]??(s[I]={errors:[]}),y=y.properties[I]):(y.items??(y.items=[]),(c=y.items)[I]??(c[I]={errors:[]}),y=y.items[I]),v&&y.errors.push(r(u)),_++}}};return e(t),o}function Za(t){const n=[];for(const r of t)typeof r=="number"?n.push(`[${r}]`):typeof r=="symbol"?n.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?n.push(`[${JSON.stringify(r)}]`):(n.length&&n.push("."),n.push(r));return n.join("")}function Rr(t){var o;const n=[],r=[...t.issues].sort((e,i)=>e.path.length-i.path.length);for(const e of r)n.push(`✖ ${e.message}`),(o=e.path)!=null&&o.length&&n.push(` → at ${Za(e.path)}`);return n.join(`
`)}const Zr=t=>(n,r,o,e)=>{const i=o?Object.assign(o,{async:!1}):{async:!1},a=n._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new it;if(a.issues.length){const s=new((e==null?void 0:e.Err)??t)(a.issues.map(c=>Oe(c,i,se())));throw Pr(s,e==null?void 0:e.callee),s}return a.value},_r=Zr(jt),Cr=t=>async(n,r,o,e)=>{const i=o?Object.assign(o,{async:!0}):{async:!0};let a=n._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new((e==null?void 0:e.Err)??t)(a.issues.map(c=>Oe(c,i,se())));throw Pr(s,e==null?void 0:e.callee),s}return a.value},kr=Cr(jt),Ar=t=>(n,r,o)=>{const e=o?{...o,async:!1}:{async:!1},i=n._zod.run({value:r,issues:[]},e);if(i instanceof Promise)throw new it;return i.issues.length?{success:!1,error:new(t??Ur)(i.issues.map(a=>Oe(a,e,se())))}:{success:!0,data:i.value}},Lr=Ar(jt),Mr=t=>async(n,r,o)=>{const e=o?Object.assign(o,{async:!0}):{async:!0};let i=n._zod.run({value:r,issues:[]},e);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>Oe(a,e,se())))}:{success:!0,data:i.value}},Ca=Mr(jt),Aa=/^[cC][^\s-]{8,}$/,La=/^[0-9a-z]+$/,Ma=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,qa=/^[0-9a-vA-V]{20}$/,Ha=/^[A-Za-z0-9]{27}$/,Ba=/^[a-zA-Z0-9_-]{21}$/,Fa=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,$d=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Ja=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,at=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,_d=at(4),kd=at(6),Sd=at(7),Va=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,wd=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Id=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,xd=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,zd=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Wa="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Ga(){return new RegExp(Wa,"u")}const Ka=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Qa=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,Ya=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Xa=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,es=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,qr=/^[A-Za-z0-9_-]*$/,ts=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,jd=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,ns=/^\+(?:[0-9]){6,14}[0-9]$/,rs="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",is=new RegExp(`^${rs}$`);function os(t){const n="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${n}`:t.precision===0?`${n}:[0-5]\\d`:`${n}:[0-5]\\d\\.\\d{${t.precision}}`:`${n}(?::[0-5]\\d(?:\\.\\d+)?)?`}function as(t){return new RegExp(`^${os(t)}$`)}function ss(t){const n=os({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");const o=`${n}(?:${r.join("|")})`;return new RegExp(`^${rs}T(?:${o})$`)}const cs=t=>{const n=t?`[\\s\\S]{${(t==null?void 0:t.minimum)??0},${(t==null?void 0:t.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},ls=/^\d+n?$/,us=/^\d+$/,ds=/^-?\d+(?:\.\d+)?/i,ms=/true|false/i,ps=/null/i,fs=/undefined/i,gs=/^[^A-Z]*$/,hs=/^[^a-z]*$/,Hr=Object.freeze(Object.defineProperty({__proto__:null,_emoji:Wa,base64:es,base64url:qr,bigint:ls,boolean:ms,browserEmail:zd,cidrv4:Ya,cidrv6:Xa,cuid:Aa,cuid2:La,date:is,datetime:ss,domain:jd,duration:Fa,e164:ns,email:Va,emoji:Ga,extendedDuration:$d,guid:Ja,hostname:ts,html5Email:wd,integer:us,ipv4:Ka,ipv6:Qa,ksuid:Ha,lowercase:gs,nanoid:Ba,null:ps,number:ds,rfc5322Email:Id,string:cs,time:as,ulid:Ma,undefined:fs,unicodeEmail:xd,uppercase:hs,uuid:at,uuid4:_d,uuid6:kd,uuid7:Sd,xid:qa},Symbol.toStringTag,{value:"Module"})),ne=d("$ZodCheck",(t,n)=>{var r;t._zod??(t._zod={}),t._zod.def=n,(r=t._zod).onattach??(r.onattach=[])}),vs={number:"number",bigint:"bigint",object:"date"},Br=d("$ZodCheckLessThan",(t,n)=>{ne.init(t,n);const r=vs[typeof n.value];t._zod.onattach.push(o=>{const e=o._zod.bag,i=(n.inclusive?e.maximum:e.exclusiveMaximum)??Number.POSITIVE_INFINITY;n.value<i&&(n.inclusive?e.maximum=n.value:e.exclusiveMaximum=n.value)}),t._zod.check=o=>{(n.inclusive?o.value<=n.value:o.value<n.value)||o.issues.push({origin:r,code:"too_big",maximum:n.value,input:o.value,inclusive:n.inclusive,inst:t,continue:!n.abort})}}),Fr=d("$ZodCheckGreaterThan",(t,n)=>{ne.init(t,n);const r=vs[typeof n.value];t._zod.onattach.push(o=>{const e=o._zod.bag,i=(n.inclusive?e.minimum:e.exclusiveMinimum)??Number.NEGATIVE_INFINITY;n.value>i&&(n.inclusive?e.minimum=n.value:e.exclusiveMinimum=n.value)}),t._zod.check=o=>{(n.inclusive?o.value>=n.value:o.value>n.value)||o.issues.push({origin:r,code:"too_small",minimum:n.value,input:o.value,inclusive:n.inclusive,inst:t,continue:!n.abort})}}),bs=d("$ZodCheckMultipleOf",(t,n)=>{ne.init(t,n),t._zod.onattach.push(r=>{var o;(o=r._zod.bag).multipleOf??(o.multipleOf=n.value)}),t._zod.check=r=>{if(typeof r.value!=typeof n.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%n.value===BigInt(0):wa(r.value,n.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:n.value,input:r.value,inst:t,continue:!n.abort})}}),ys=d("$ZodCheckNumberFormat",(t,n)=>{var a;ne.init(t,n),n.format=n.format||"float64";const r=(a=n.format)==null?void 0:a.includes("int"),o=r?"int":"number",[e,i]=ja[n.format];t._zod.onattach.push(s=>{const c=s._zod.bag;c.format=n.format,c.minimum=e,c.maximum=i,r&&(c.pattern=us)}),t._zod.check=s=>{const c=s.value;if(r){if(!Number.isInteger(c)){s.issues.push({expected:o,format:n.format,code:"invalid_type",input:c,inst:t});return}if(!Number.isSafeInteger(c)){c>0?s.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:o,continue:!n.abort}):s.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:o,continue:!n.abort});return}}c<e&&s.issues.push({origin:"number",input:c,code:"too_small",minimum:e,inclusive:!0,inst:t,continue:!n.abort}),c>i&&s.issues.push({origin:"number",input:c,code:"too_big",maximum:i,inst:t})}}),$s=d("$ZodCheckBigIntFormat",(t,n)=>{ne.init(t,n);const[r,o]=Ta[n.format];t._zod.onattach.push(e=>{const i=e._zod.bag;i.format=n.format,i.minimum=r,i.maximum=o}),t._zod.check=e=>{const i=e.value;i<r&&e.issues.push({origin:"bigint",input:i,code:"too_small",minimum:r,inclusive:!0,inst:t,continue:!n.abort}),i>o&&e.issues.push({origin:"bigint",input:i,code:"too_big",maximum:o,inst:t})}}),_s=d("$ZodCheckMaxSize",(t,n)=>{var r;ne.init(t,n),(r=t._zod.def).when??(r.when=o=>{const e=o.value;return!Ge(e)&&e.size!==void 0}),t._zod.onattach.push(o=>{const e=o._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<e&&(o._zod.bag.maximum=n.maximum)}),t._zod.check=o=>{const e=o.value;e.size<=n.maximum||o.issues.push({origin:vn(e),code:"too_big",maximum:n.maximum,input:e,inst:t,continue:!n.abort})}}),ks=d("$ZodCheckMinSize",(t,n)=>{var r;ne.init(t,n),(r=t._zod.def).when??(r.when=o=>{const e=o.value;return!Ge(e)&&e.size!==void 0}),t._zod.onattach.push(o=>{const e=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>e&&(o._zod.bag.minimum=n.minimum)}),t._zod.check=o=>{const e=o.value;e.size>=n.minimum||o.issues.push({origin:vn(e),code:"too_small",minimum:n.minimum,input:e,inst:t,continue:!n.abort})}}),Ss=d("$ZodCheckSizeEquals",(t,n)=>{var r;ne.init(t,n),(r=t._zod.def).when??(r.when=o=>{const e=o.value;return!Ge(e)&&e.size!==void 0}),t._zod.onattach.push(o=>{const e=o._zod.bag;e.minimum=n.size,e.maximum=n.size,e.size=n.size}),t._zod.check=o=>{const e=o.value,i=e.size;if(i===n.size)return;const a=i>n.size;o.issues.push({origin:vn(e),...a?{code:"too_big",maximum:n.size}:{code:"too_small",minimum:n.size},inclusive:!0,exact:!0,input:o.value,inst:t,continue:!n.abort})}}),ws=d("$ZodCheckMaxLength",(t,n)=>{var r;ne.init(t,n),(r=t._zod.def).when??(r.when=o=>{const e=o.value;return!Ge(e)&&e.length!==void 0}),t._zod.onattach.push(o=>{const e=o._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<e&&(o._zod.bag.maximum=n.maximum)}),t._zod.check=o=>{const e=o.value;if(e.length<=n.maximum)return;const a=bn(e);o.issues.push({origin:a,code:"too_big",maximum:n.maximum,inclusive:!0,input:e,inst:t,continue:!n.abort})}}),Is=d("$ZodCheckMinLength",(t,n)=>{var r;ne.init(t,n),(r=t._zod.def).when??(r.when=o=>{const e=o.value;return!Ge(e)&&e.length!==void 0}),t._zod.onattach.push(o=>{const e=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>e&&(o._zod.bag.minimum=n.minimum)}),t._zod.check=o=>{const e=o.value;if(e.length>=n.minimum)return;const a=bn(e);o.issues.push({origin:a,code:"too_small",minimum:n.minimum,inclusive:!0,input:e,inst:t,continue:!n.abort})}}),xs=d("$ZodCheckLengthEquals",(t,n)=>{var r;ne.init(t,n),(r=t._zod.def).when??(r.when=o=>{const e=o.value;return!Ge(e)&&e.length!==void 0}),t._zod.onattach.push(o=>{const e=o._zod.bag;e.minimum=n.length,e.maximum=n.length,e.length=n.length}),t._zod.check=o=>{const e=o.value,i=e.length;if(i===n.length)return;const a=bn(e),s=i>n.length;o.issues.push({origin:a,...s?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length},inclusive:!0,exact:!0,input:o.value,inst:t,continue:!n.abort})}}),Tt=d("$ZodCheckStringFormat",(t,n)=>{var r,o;ne.init(t,n),t._zod.onattach.push(e=>{const i=e._zod.bag;i.format=n.format,n.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(n.pattern))}),n.pattern?(r=t._zod).check??(r.check=e=>{n.pattern.lastIndex=0,!n.pattern.test(e.value)&&e.issues.push({origin:"string",code:"invalid_format",format:n.format,input:e.value,...n.pattern?{pattern:n.pattern.toString()}:{},inst:t,continue:!n.abort})}):(o=t._zod).check??(o.check=()=>{})}),zs=d("$ZodCheckRegex",(t,n)=>{Tt.init(t,n),t._zod.check=r=>{n.pattern.lastIndex=0,!n.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:n.pattern.toString(),inst:t,continue:!n.abort})}}),js=d("$ZodCheckLowerCase",(t,n)=>{n.pattern??(n.pattern=gs),Tt.init(t,n)}),Ts=d("$ZodCheckUpperCase",(t,n)=>{n.pattern??(n.pattern=hs),Tt.init(t,n)}),Ns=d("$ZodCheckIncludes",(t,n)=>{ne.init(t,n);const r=Ke(n.includes),o=new RegExp(typeof n.position=="number"?`^.{${n.position}}${r}`:r);n.pattern=o,t._zod.onattach.push(e=>{const i=e._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(o)}),t._zod.check=e=>{e.value.includes(n.includes,n.position)||e.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:n.includes,input:e.value,inst:t,continue:!n.abort})}}),Os=d("$ZodCheckStartsWith",(t,n)=>{ne.init(t,n);const r=new RegExp(`^${Ke(n.prefix)}.*`);n.pattern??(n.pattern=r),t._zod.onattach.push(o=>{const e=o._zod.bag;e.patterns??(e.patterns=new Set),e.patterns.add(r)}),t._zod.check=o=>{o.value.startsWith(n.prefix)||o.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:n.prefix,input:o.value,inst:t,continue:!n.abort})}}),Es=d("$ZodCheckEndsWith",(t,n)=>{ne.init(t,n);const r=new RegExp(`.*${Ke(n.suffix)}$`);n.pattern??(n.pattern=r),t._zod.onattach.push(o=>{const e=o._zod.bag;e.patterns??(e.patterns=new Set),e.patterns.add(r)}),t._zod.check=o=>{o.value.endsWith(n.suffix)||o.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:n.suffix,input:o.value,inst:t,continue:!n.abort})}});function Xo(t,n,r){t.issues.length&&n.issues.push(...Se(r,t.issues))}const Ps=d("$ZodCheckProperty",(t,n)=>{ne.init(t,n),t._zod.check=r=>{const o=n.schema._zod.run({value:r.value[n.property],issues:[]},{});if(o instanceof Promise)return o.then(e=>Xo(e,r,n.property));Xo(o,r,n.property)}}),Us=d("$ZodCheckMimeType",(t,n)=>{ne.init(t,n);const r=new Set(n.mime);t._zod.onattach.push(o=>{o._zod.bag.mime=n.mime}),t._zod.check=o=>{r.has(o.value.type)||o.issues.push({code:"invalid_value",values:n.mime,input:o.value.type,inst:t})}}),Ds=d("$ZodCheckOverwrite",(t,n)=>{ne.init(t,n),t._zod.check=r=>{r.value=n.tx(r.value)}});class Rs{constructor(n=[]){this.content=[],this.indent=0,this&&(this.args=n)}indented(n){this.indent+=1,n(this),this.indent-=1}write(n){if(typeof n=="function"){n(this,{execution:"sync"}),n(this,{execution:"async"});return}const o=n.split(`
`).filter(a=>a),e=Math.min(...o.map(a=>a.length-a.trimStart().length)),i=o.map(a=>a.slice(e)).map(a=>" ".repeat(this.indent*2)+a);for(const a of i)this.content.push(a)}compile(){const n=Function,r=this==null?void 0:this.args,e=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new n(...r,e.join(`
`))}}const Zs={major:4,minor:0,patch:0},E=d("$ZodType",(t,n)=>{var e;var r;t??(t={}),t._zod.def=n,t._zod.bag=t._zod.bag||{},t._zod.version=Zs;const o=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&o.unshift(t);for(const i of o)for(const a of i._zod.onattach)a(t);if(o.length===0)(r=t._zod).deferred??(r.deferred=[]),(e=t._zod.deferred)==null||e.push(()=>{t._zod.run=t._zod.parse});else{const i=(a,s,c)=>{let u=nt(a),b;for(const y of s){if(y._zod.def.when){if(!y._zod.def.when(a))continue}else if(u)continue;const _=a.issues.length,I=y._zod.check(a);if(I instanceof Promise&&(c==null?void 0:c.async)===!1)throw new it;if(b||I instanceof Promise)b=(b??Promise.resolve()).then(async()=>{await I,a.issues.length!==_&&(u||(u=nt(a,_)))});else{if(a.issues.length===_)continue;u||(u=nt(a,_))}}return b?b.then(()=>a):a};t._zod.run=(a,s)=>{const c=t._zod.parse(a,s);if(c instanceof Promise){if(s.async===!1)throw new it;return c.then(u=>i(u,o,s))}return i(c,o,s)}}t["~standard"]={validate:i=>{var a;try{const s=Lr(t,i);return s.success?{value:s.data}:{issues:(a=s.error)==null?void 0:a.issues}}catch{return Ca(t,i).then(c=>{var u;return c.success?{value:c.data}:{issues:(u=c.error)==null?void 0:u.issues}})}},vendor:"zod",version:1}}),Nt=d("$ZodString",(t,n)=>{var r;E.init(t,n),t._zod.pattern=[...((r=t==null?void 0:t._zod.bag)==null?void 0:r.patterns)??[]].pop()??cs(t._zod.bag),t._zod.parse=(o,e)=>{if(n.coerce)try{o.value=String(o.value)}catch{}return typeof o.value=="string"||o.issues.push({expected:"string",code:"invalid_type",input:o.value,inst:t}),o}}),Y=d("$ZodStringFormat",(t,n)=>{Tt.init(t,n),Nt.init(t,n)}),Cs=d("$ZodGUID",(t,n)=>{n.pattern??(n.pattern=Ja),Y.init(t,n)}),As=d("$ZodUUID",(t,n)=>{if(n.version){const o={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[n.version];if(o===void 0)throw new Error(`Invalid UUID version: "${n.version}"`);n.pattern??(n.pattern=at(o))}else n.pattern??(n.pattern=at());Y.init(t,n)}),Ls=d("$ZodEmail",(t,n)=>{n.pattern??(n.pattern=Va),Y.init(t,n)}),Ms=d("$ZodURL",(t,n)=>{Y.init(t,n),t._zod.check=r=>{try{const o=r.value,e=new URL(o),i=e.href;n.hostname&&(n.hostname.lastIndex=0,n.hostname.test(e.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:ts.source,input:r.value,inst:t,continue:!n.abort})),n.protocol&&(n.protocol.lastIndex=0,n.protocol.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:n.protocol.source,input:r.value,inst:t,continue:!n.abort})),!o.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!n.abort})}}}),qs=d("$ZodEmoji",(t,n)=>{n.pattern??(n.pattern=Ga()),Y.init(t,n)}),Hs=d("$ZodNanoID",(t,n)=>{n.pattern??(n.pattern=Ba),Y.init(t,n)}),Bs=d("$ZodCUID",(t,n)=>{n.pattern??(n.pattern=Aa),Y.init(t,n)}),Fs=d("$ZodCUID2",(t,n)=>{n.pattern??(n.pattern=La),Y.init(t,n)}),Js=d("$ZodULID",(t,n)=>{n.pattern??(n.pattern=Ma),Y.init(t,n)}),Vs=d("$ZodXID",(t,n)=>{n.pattern??(n.pattern=qa),Y.init(t,n)}),Ws=d("$ZodKSUID",(t,n)=>{n.pattern??(n.pattern=Ha),Y.init(t,n)}),Gs=d("$ZodISODateTime",(t,n)=>{n.pattern??(n.pattern=ss(n)),Y.init(t,n)}),Ks=d("$ZodISODate",(t,n)=>{n.pattern??(n.pattern=is),Y.init(t,n)}),Qs=d("$ZodISOTime",(t,n)=>{n.pattern??(n.pattern=as(n)),Y.init(t,n)}),Ys=d("$ZodISODuration",(t,n)=>{n.pattern??(n.pattern=Fa),Y.init(t,n)}),Xs=d("$ZodIPv4",(t,n)=>{n.pattern??(n.pattern=Ka),Y.init(t,n),t._zod.onattach.push(r=>{const o=r._zod.bag;o.format="ipv4"})}),ec=d("$ZodIPv6",(t,n)=>{n.pattern??(n.pattern=Qa),Y.init(t,n),t._zod.onattach.push(r=>{const o=r._zod.bag;o.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!n.abort})}}}),tc=d("$ZodCIDRv4",(t,n)=>{n.pattern??(n.pattern=Ya),Y.init(t,n)}),nc=d("$ZodCIDRv6",(t,n)=>{n.pattern??(n.pattern=Xa),Y.init(t,n),t._zod.check=r=>{const[o,e]=r.value.split("/");try{if(!e)throw new Error;const i=Number(e);if(`${i}`!==e)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!n.abort})}}});function Jr(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}const rc=d("$ZodBase64",(t,n)=>{n.pattern??(n.pattern=es),Y.init(t,n),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{Jr(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!n.abort})}});function ic(t){if(!qr.test(t))return!1;const n=t.replace(/[-_]/g,o=>o==="-"?"+":"/"),r=n.padEnd(Math.ceil(n.length/4)*4,"=");return Jr(r)}const oc=d("$ZodBase64URL",(t,n)=>{n.pattern??(n.pattern=qr),Y.init(t,n),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{ic(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!n.abort})}}),ac=d("$ZodE164",(t,n)=>{n.pattern??(n.pattern=ns),Y.init(t,n)});function sc(t,n=null){try{const r=t.split(".");if(r.length!==3)return!1;const[o]=r;if(!o)return!1;const e=JSON.parse(atob(o));return!("typ"in e&&(e==null?void 0:e.typ)!=="JWT"||!e.alg||n&&(!("alg"in e)||e.alg!==n))}catch{return!1}}const cc=d("$ZodJWT",(t,n)=>{Y.init(t,n),t._zod.check=r=>{sc(r.value,n.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!n.abort})}}),lc=d("$ZodCustomStringFormat",(t,n)=>{Y.init(t,n),t._zod.check=r=>{n.fn(r.value)||r.issues.push({code:"invalid_format",format:n.format,input:r.value,inst:t,continue:!n.abort})}}),Vr=d("$ZodNumber",(t,n)=>{E.init(t,n),t._zod.pattern=t._zod.bag.pattern??ds,t._zod.parse=(r,o)=>{if(n.coerce)try{r.value=Number(r.value)}catch{}const e=r.value;if(typeof e=="number"&&!Number.isNaN(e)&&Number.isFinite(e))return r;const i=typeof e=="number"?Number.isNaN(e)?"NaN":Number.isFinite(e)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:e,inst:t,...i?{received:i}:{}}),r}}),uc=d("$ZodNumber",(t,n)=>{ys.init(t,n),Vr.init(t,n)}),Wr=d("$ZodBoolean",(t,n)=>{E.init(t,n),t._zod.pattern=ms,t._zod.parse=(r,o)=>{if(n.coerce)try{r.value=!!r.value}catch{}const e=r.value;return typeof e=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:e,inst:t}),r}}),Gr=d("$ZodBigInt",(t,n)=>{E.init(t,n),t._zod.pattern=ls,t._zod.parse=(r,o)=>{if(n.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}}),dc=d("$ZodBigInt",(t,n)=>{$s.init(t,n),Gr.init(t,n)}),mc=d("$ZodSymbol",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value;return typeof e=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:e,inst:t}),r}}),pc=d("$ZodUndefined",(t,n)=>{E.init(t,n),t._zod.pattern=fs,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,o)=>{const e=r.value;return typeof e>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:e,inst:t}),r}}),fc=d("$ZodNull",(t,n)=>{E.init(t,n),t._zod.pattern=ps,t._zod.values=new Set([null]),t._zod.parse=(r,o)=>{const e=r.value;return e===null||r.issues.push({expected:"null",code:"invalid_type",input:e,inst:t}),r}}),gc=d("$ZodAny",(t,n)=>{E.init(t,n),t._zod.parse=r=>r}),rn=d("$ZodUnknown",(t,n)=>{E.init(t,n),t._zod.parse=r=>r}),hc=d("$ZodNever",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),vc=d("$ZodVoid",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value;return typeof e>"u"||r.issues.push({expected:"void",code:"invalid_type",input:e,inst:t}),r}}),bc=d("$ZodDate",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{if(n.coerce)try{r.value=new Date(r.value)}catch{}const e=r.value,i=e instanceof Date;return i&&!Number.isNaN(e.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:e,...i?{received:"Invalid Date"}:{},inst:t}),r}});function ea(t,n,r){t.issues.length&&n.issues.push(...Se(r,t.issues)),n.value[r]=t.value}const Kr=d("$ZodArray",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value;if(!Array.isArray(e))return r.issues.push({expected:"array",code:"invalid_type",input:e,inst:t}),r;r.value=Array(e.length);const i=[];for(let a=0;a<e.length;a++){const s=e[a],c=n.element._zod.run({value:s,issues:[]},o);c instanceof Promise?i.push(c.then(u=>ea(u,r,a))):ea(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Kt(t,n,r){t.issues.length&&n.issues.push(...Se(r,t.issues)),n.value[r]=t.value}function ta(t,n,r,o){t.issues.length?o[r]===void 0?r in o?n.value[r]=void 0:n.value[r]=t.value:n.issues.push(...Se(r,t.issues)):t.value===void 0?r in o&&(n.value[r]=void 0):n.value[r]=t.value}const yc=d("$ZodObject",(t,n)=>{E.init(t,n);const r=gn(()=>{const y=Object.keys(n.shape);for(const I of y)if(!(n.shape[I]instanceof E))throw new Error(`Invalid element at key "${I}": expected a Zod schema`);const _=za(n.shape);return{shape:n.shape,keys:y,keySet:new Set(y),numKeys:y.length,optionalKeys:new Set(_)}});B(t._zod,"propValues",()=>{const y=n.shape,_={};for(const I in y){const v=y[I]._zod;if(v.values){_[I]??(_[I]=new Set);for(const T of v.values)_[I].add(T)}}return _});const o=y=>{const _=new Rs(["shape","payload","ctx"]),I=r.value,v=k=>{const $=Xe(k);return`shape[${$}]._zod.run({ value: input[${$}], issues: [] }, ctx)`};_.write("const input = payload.value;");const T=Object.create(null);let x=0;for(const k of I.keys)T[k]=`key_${x++}`;_.write("const newResult = {}");for(const k of I.keys)if(I.optionalKeys.has(k)){const $=T[k];_.write(`const ${$} = ${v(k)};`);const z=Xe(k);_.write(`
if (${$}.issues.length) {
if (input[${z}] === undefined) {
if (${z} in input) {
newResult[${z}] = undefined;
}
} else {
payload.issues = payload.issues.concat(
${$}.issues.map((iss) => ({
...iss,
path: iss.path ? [${z}, ...iss.path] : [${z}],
}))
);
}
} else if (${$}.value === undefined) {
if (${z} in input) newResult[${z}] = undefined;
} else {
newResult[${z}] = ${$}.value;
}
`)}else{const $=T[k];_.write(`const ${$} = ${v(k)};`),_.write(`
if (${$}.issues.length) payload.issues = payload.issues.concat(${$}.issues.map(iss => ({
...iss,
path: iss.path ? [${Xe(k)}, ...iss.path] : [${Xe(k)}]
})));`),_.write(`newResult[${Xe(k)}] = ${$}.value`)}_.write("payload.value = newResult;"),_.write("return payload;");const f=_.compile();return(k,$)=>f(y,k,$)};let e;const i=$t,a=!tn.jitless,c=a&&Ia.value,u=n.catchall;let b;t._zod.parse=(y,_)=>{b??(b=r.value);const I=y.value;if(!i(I))return y.issues.push({expected:"object",code:"invalid_type",input:I,inst:t}),y;const v=[];if(a&&c&&(_==null?void 0:_.async)===!1&&_.jitless!==!0)e||(e=o(n.shape)),y=e(y,_);else{y.value={};const $=b.shape;for(const z of b.keys){const N=$[z],L=N._zod.run({value:I[z],issues:[]},_),R=N._zod.optin==="optional"&&N._zod.optout==="optional";L instanceof Promise?v.push(L.then(re=>R?ta(re,y,z,I):Kt(re,y,z))):R?ta(L,y,z,I):Kt(L,y,z)}}if(!u)return v.length?Promise.all(v).then(()=>y):y;const T=[],x=b.keySet,f=u._zod,k=f.def.type;for(const $ of Object.keys(I)){if(x.has($))continue;if(k==="never"){T.push($);continue}const z=f.run({value:I[$],issues:[]},_);z instanceof Promise?v.push(z.then(N=>Kt(N,y,$))):Kt(z,y,$)}return T.length&&y.issues.push({code:"unrecognized_keys",keys:T,input:I,inst:t}),v.length?Promise.all(v).then(()=>y):y}});function na(t,n,r,o){for(const e of t)if(e.issues.length===0)return n.value=e.value,n;return n.issues.push({code:"invalid_union",input:n.value,inst:r,errors:t.map(e=>e.issues.map(i=>Oe(i,o,se())))}),n}const Qr=d("$ZodUnion",(t,n)=>{E.init(t,n),B(t._zod,"optin",()=>n.options.some(r=>r._zod.optin==="optional")?"optional":void 0),B(t._zod,"optout",()=>n.options.some(r=>r._zod.optout==="optional")?"optional":void 0),B(t._zod,"values",()=>{if(n.options.every(r=>r._zod.values))return new Set(n.options.flatMap(r=>Array.from(r._zod.values)))}),B(t._zod,"pattern",()=>{if(n.options.every(r=>r._zod.pattern)){const r=n.options.map(o=>o._zod.pattern);return new RegExp(`^(${r.map(o=>hn(o.source)).join("|")})$`)}}),t._zod.parse=(r,o)=>{let e=!1;const i=[];for(const a of n.options){const s=a._zod.run({value:r.value,issues:[]},o);if(s instanceof Promise)i.push(s),e=!0;else{if(s.issues.length===0)return s;i.push(s)}}return e?Promise.all(i).then(a=>na(a,r,t,o)):na(i,r,t,o)}}),$c=d("$ZodDiscriminatedUnion",(t,n)=>{Qr.init(t,n);const r=t._zod.parse;B(t._zod,"propValues",()=>{const e={};for(const i of n.options){const a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(i)}"`);for(const[s,c]of Object.entries(a)){e[s]||(e[s]=new Set);for(const u of c)e[s].add(u)}}return e});const o=gn(()=>{const e=n.options,i=new Map;for(const a of e){const s=a._zod.propValues[n.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(a)}"`);for(const c of s){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(e,i)=>{const a=e.value;if(!$t(a))return e.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),e;const s=o.value.get(a==null?void 0:a[n.discriminator]);return s?s._zod.run(e,i):n.unionFallback?r(e,i):(e.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[n.discriminator],inst:t}),e)}}),_c=d("$ZodIntersection",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value,i=n.left._zod.run({value:e,issues:[]},o),a=n.right._zod.run({value:e,issues:[]},o);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,u])=>ra(r,c,u)):ra(r,i,a)}});function Sr(t,n){if(t===n)return{valid:!0,data:t};if(t instanceof Date&&n instanceof Date&&+t==+n)return{valid:!0,data:t};if(_t(t)&&_t(n)){const r=Object.keys(n),o=Object.keys(t).filter(i=>r.indexOf(i)!==-1),e={...t,...n};for(const i of o){const a=Sr(t[i],n[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};e[i]=a.data}return{valid:!0,data:e}}if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let o=0;o<t.length;o++){const e=t[o],i=n[o],a=Sr(e,i);if(!a.valid)return{valid:!1,mergeErrorPath:[o,...a.mergeErrorPath]};r.push(a.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function ra(t,n,r){if(n.issues.length&&t.issues.push(...n.issues),r.issues.length&&t.issues.push(...r.issues),nt(t))return t;const o=Sr(n.value,r.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return t.value=o.data,t}const _n=d("$ZodTuple",(t,n)=>{E.init(t,n);const r=n.items,o=r.length-[...r].reverse().findIndex(e=>e._zod.optin!=="optional");t._zod.parse=(e,i)=>{const a=e.value;if(!Array.isArray(a))return e.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),e;e.value=[];const s=[];if(!n.rest){const u=a.length>r.length,b=a.length<o-1;if(u||b)return e.issues.push({input:a,inst:t,origin:"array",...u?{code:"too_big",maximum:r.length}:{code:"too_small",minimum:r.length}}),e}let c=-1;for(const u of r){if(c++,c>=a.length&&c>=o)continue;const b=u._zod.run({value:a[c],issues:[]},i);b instanceof Promise?s.push(b.then(y=>Qt(y,e,c))):Qt(b,e,c)}if(n.rest){const u=a.slice(r.length);for(const b of u){c++;const y=n.rest._zod.run({value:b,issues:[]},i);y instanceof Promise?s.push(y.then(_=>Qt(_,e,c))):Qt(y,e,c)}}return s.length?Promise.all(s).then(()=>e):e}});function Qt(t,n,r){t.issues.length&&n.issues.push(...Se(r,t.issues)),n.value[r]=t.value}const kc=d("$ZodRecord",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value;if(!_t(e))return r.issues.push({expected:"record",code:"invalid_type",input:e,inst:t}),r;const i=[];if(n.keyType._zod.values){const a=n.keyType._zod.values;r.value={};for(const c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){const u=n.valueType._zod.run({value:e[c],issues:[]},o);u instanceof Promise?i.push(u.then(b=>{b.issues.length&&r.issues.push(...Se(c,b.issues)),r.value[c]=b.value})):(u.issues.length&&r.issues.push(...Se(c,u.issues)),r.value[c]=u.value)}let s;for(const c in e)a.has(c)||(s=s??[],s.push(c));s&&s.length>0&&r.issues.push({code:"unrecognized_keys",input:e,inst:t,keys:s})}else{r.value={};for(const a of Reflect.ownKeys(e)){if(a==="__proto__")continue;const s=n.keyType._zod.run({value:a,issues:[]},o);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(s.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:s.issues.map(u=>Oe(u,o,se())),input:a,path:[a],inst:t}),r.value[s.value]=s.value;continue}const c=n.valueType._zod.run({value:e[a],issues:[]},o);c instanceof Promise?i.push(c.then(u=>{u.issues.length&&r.issues.push(...Se(a,u.issues)),r.value[s.value]=u.value})):(c.issues.length&&r.issues.push(...Se(a,c.issues)),r.value[s.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}}),Sc=d("$ZodMap",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value;if(!(e instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:e,inst:t}),r;const i=[];r.value=new Map;for(const[a,s]of e){const c=n.keyType._zod.run({value:a,issues:[]},o),u=n.valueType._zod.run({value:s,issues:[]},o);c instanceof Promise||u instanceof Promise?i.push(Promise.all([c,u]).then(([b,y])=>{ia(b,y,r,a,e,t,o)})):ia(c,u,r,a,e,t,o)}return i.length?Promise.all(i).then(()=>r):r}});function ia(t,n,r,o,e,i,a){t.issues.length&&(nn.has(typeof o)?r.issues.push(...Se(o,t.issues)):r.issues.push({origin:"map",code:"invalid_key",input:e,inst:i,issues:t.issues.map(s=>Oe(s,a,se()))})),n.issues.length&&(nn.has(typeof o)?r.issues.push(...Se(o,n.issues)):r.issues.push({origin:"map",code:"invalid_element",input:e,inst:i,key:o,issues:n.issues.map(s=>Oe(s,a,se()))})),r.value.set(t.value,n.value)}const wc=d("$ZodSet",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value;if(!(e instanceof Set))return r.issues.push({input:e,inst:t,expected:"set",code:"invalid_type"}),r;const i=[];r.value=new Set;for(const a of e){const s=n.valueType._zod.run({value:a,issues:[]},o);s instanceof Promise?i.push(s.then(c=>oa(c,r))):oa(s,r)}return i.length?Promise.all(i).then(()=>r):r}});function oa(t,n){t.issues.length&&n.issues.push(...t.issues),n.value.add(t.value)}const Ic=d("$ZodEnum",(t,n)=>{E.init(t,n);const r=Er(n.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(o=>nn.has(typeof o)).map(o=>typeof o=="string"?Ke(o):o.toString()).join("|")})$`),t._zod.parse=(o,e)=>{const i=o.value;return t._zod.values.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:t}),o}}),xc=d("$ZodLiteral",(t,n)=>{E.init(t,n),t._zod.values=new Set(n.values),t._zod.pattern=new RegExp(`^(${n.values.map(r=>typeof r=="string"?Ke(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,o)=>{const e=r.value;return t._zod.values.has(e)||r.issues.push({code:"invalid_value",values:n.values,input:e,inst:t}),r}}),zc=d("$ZodFile",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=r.value;return e instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:e,inst:t}),r}}),Yr=d("$ZodTransform",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=n.transform(r.value,r);if(o.async)return(e instanceof Promise?e:Promise.resolve(e)).then(a=>(r.value=a,r));if(e instanceof Promise)throw new it;return r.value=e,r}}),jc=d("$ZodOptional",(t,n)=>{E.init(t,n),t._zod.optin="optional",t._zod.optout="optional",B(t._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),B(t._zod,"pattern",()=>{const r=n.innerType._zod.pattern;return r?new RegExp(`^(${hn(r.source)})?$`):void 0}),t._zod.parse=(r,o)=>n.innerType._zod.optin==="optional"?n.innerType._zod.run(r,o):r.value===void 0?r:n.innerType._zod.run(r,o)}),Tc=d("$ZodNullable",(t,n)=>{E.init(t,n),B(t._zod,"optin",()=>n.innerType._zod.optin),B(t._zod,"optout",()=>n.innerType._zod.optout),B(t._zod,"pattern",()=>{const r=n.innerType._zod.pattern;return r?new RegExp(`^(${hn(r.source)}|null)$`):void 0}),B(t._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),t._zod.parse=(r,o)=>r.value===null?r:n.innerType._zod.run(r,o)}),Nc=d("$ZodDefault",(t,n)=>{E.init(t,n),t._zod.optin="optional",B(t._zod,"values",()=>n.innerType._zod.values),t._zod.parse=(r,o)=>{if(r.value===void 0)return r.value=n.defaultValue,r;const e=n.innerType._zod.run(r,o);return e instanceof Promise?e.then(i=>aa(i,n)):aa(e,n)}});function aa(t,n){return t.value===void 0&&(t.value=n.defaultValue),t}const Oc=d("$ZodPrefault",(t,n)=>{E.init(t,n),t._zod.optin="optional",B(t._zod,"values",()=>n.innerType._zod.values),t._zod.parse=(r,o)=>(r.value===void 0&&(r.value=n.defaultValue),n.innerType._zod.run(r,o))}),Ec=d("$ZodNonOptional",(t,n)=>{E.init(t,n),B(t._zod,"values",()=>{const r=n.innerType._zod.values;return r?new Set([...r].filter(o=>o!==void 0)):void 0}),t._zod.parse=(r,o)=>{const e=n.innerType._zod.run(r,o);return e instanceof Promise?e.then(i=>sa(i,t)):sa(e,t)}});function sa(t,n){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:n}),t}const Pc=d("$ZodSuccess",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>{const e=n.innerType._zod.run(r,o);return e instanceof Promise?e.then(i=>(r.value=i.issues.length===0,r)):(r.value=e.issues.length===0,r)}}),Uc=d("$ZodCatch",(t,n)=>{E.init(t,n),t._zod.optin="optional",B(t._zod,"optout",()=>n.innerType._zod.optout),B(t._zod,"values",()=>n.innerType._zod.values),t._zod.parse=(r,o)=>{const e=n.innerType._zod.run(r,o);return e instanceof Promise?e.then(i=>(r.value=i.value,i.issues.length&&(r.value=n.catchValue({...r,error:{issues:i.issues.map(a=>Oe(a,o,se()))},input:r.value}),r.issues=[]),r)):(r.value=e.value,e.issues.length&&(r.value=n.catchValue({...r,error:{issues:e.issues.map(i=>Oe(i,o,se()))},input:r.value}),r.issues=[]),r)}}),Dc=d("$ZodNaN",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:t,expected:"nan",code:"invalid_type"}),r)}),Xr=d("$ZodPipe",(t,n)=>{E.init(t,n),B(t._zod,"values",()=>n.in._zod.values),B(t._zod,"optin",()=>n.in._zod.optin),B(t._zod,"optout",()=>n.out._zod.optout),t._zod.parse=(r,o)=>{const e=n.in._zod.run(r,o);return e instanceof Promise?e.then(i=>ca(i,n,o)):ca(e,n,o)}});function ca(t,n,r){return nt(t)?t:n.out._zod.run({value:t.value,issues:t.issues},r)}const Rc=d("$ZodReadonly",(t,n)=>{E.init(t,n),B(t._zod,"propValues",()=>n.innerType._zod.propValues),B(t._zod,"values",()=>n.innerType._zod.values),B(t._zod,"optin",()=>n.innerType._zod.optin),B(t._zod,"optout",()=>n.innerType._zod.optout),t._zod.parse=(r,o)=>{const e=n.innerType._zod.run(r,o);return e instanceof Promise?e.then(la):la(e)}});function la(t){return t.value=Object.freeze(t.value),t}const Zc=d("$ZodTemplateLiteral",(t,n)=>{E.init(t,n);const r=[];for(const o of n.parts)if(o instanceof E){if(!o._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...o._zod.traits].shift()}`);const e=o._zod.pattern instanceof RegExp?o._zod.pattern.source:o._zod.pattern;if(!e)throw new Error(`Invalid template literal part: ${o._zod.traits}`);const i=e.startsWith("^")?1:0,a=e.endsWith("$")?e.length-1:e.length;r.push(e.slice(i,a))}else if(o===null||xa.has(typeof o))r.push(Ke(`${o}`));else throw new Error(`Invalid template literal part: ${o}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(o,e)=>typeof o.value!="string"?(o.issues.push({input:o.value,inst:t,expected:"template_literal",code:"invalid_type"}),o):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(o.value)||o.issues.push({input:o.value,inst:t,code:"invalid_format",format:"template_literal",pattern:t._zod.pattern.source}),o)}),Cc=d("$ZodPromise",(t,n)=>{E.init(t,n),t._zod.parse=(r,o)=>Promise.resolve(r.value).then(e=>n.innerType._zod.run({value:e,issues:[]},o))}),Ac=d("$ZodLazy",(t,n)=>{E.init(t,n),B(t._zod,"innerType",()=>n.getter()),B(t._zod,"pattern",()=>t._zod.innerType._zod.pattern),B(t._zod,"propValues",()=>t._zod.innerType._zod.propValues),B(t._zod,"optin",()=>t._zod.innerType._zod.optin),B(t._zod,"optout",()=>t._zod.innerType._zod.optout),t._zod.parse=(r,o)=>t._zod.innerType._zod.run(r,o)}),Lc=d("$ZodCustom",(t,n)=>{ne.init(t,n),E.init(t,n),t._zod.parse=(r,o)=>r,t._zod.check=r=>{const o=r.value,e=n.fn(o);if(e instanceof Promise)return e.then(i=>ua(i,r,o,t));ua(e,r,o,t)}});function ua(t,n,r,o){if(!t){const e={code:"custom",input:r,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),n.issues.push(ot(e))}}const Td=()=>{const t={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"};return e=>{switch(e.code){case"invalid_type":return`مدخلات غير مقبولة: يفترض إدخال ${e.expected}، ولكن تم إدخال ${r(e.input)}`;case"invalid_value":return e.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${U(e.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?` أكبر من اللازم: يفترض أن تكون ${e.origin??"القيمة"} ${i} ${e.maximum.toString()} ${a.unit??"عنصر"}`:`أكبر من اللازم: يفترض أن تكون ${e.origin??"القيمة"} ${i} ${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`أصغر من اللازم: يفترض لـ ${e.origin} أن يكون ${i} ${e.minimum.toString()} ${a.unit}`:`أصغر من اللازم: يفترض لـ ${e.origin} أن يكون ${i} ${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`نَص غير مقبول: يجب أن يبدأ بـ "${e.prefix}"`:i.format==="ends_with"?`نَص غير مقبول: يجب أن ينتهي بـ "${i.suffix}"`:i.format==="includes"?`نَص غير مقبول: يجب أن يتضمَّن "${i.includes}"`:i.format==="regex"?`نَص غير مقبول: يجب أن يطابق النمط ${i.pattern}`:`${o[i.format]??e.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${e.divisor}`;case"unrecognized_keys":return`معرف${e.keys.length>1?"ات":""} غريب${e.keys.length>1?"ة":""}: ${w(e.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${e.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${e.origin}`;default:return"مدخل غير مقبول"}}};function Nd(){return{localeError:Td()}}const Od=()=>{const t={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return e=>{switch(e.code){case"invalid_type":return`Yanlış dəyər: gözlənilən ${e.expected}, daxil olan ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Yanlış dəyər: gözlənilən ${U(e.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Çox böyük: gözlənilən ${e.origin??"dəyər"} ${i}${e.maximum.toString()} ${a.unit??"element"}`:`Çox böyük: gözlənilən ${e.origin??"dəyər"} ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Çox kiçik: gözlənilən ${e.origin} ${i}${e.minimum.toString()} ${a.unit}`:`Çox kiçik: gözlənilən ${e.origin} ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Yanlış mətn: "${i.prefix}" ilə başlamalıdır`:i.format==="ends_with"?`Yanlış mətn: "${i.suffix}" ilə bitməlidir`:i.format==="includes"?`Yanlış mətn: "${i.includes}" daxil olmalıdır`:i.format==="regex"?`Yanlış mətn: ${i.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${o[i.format]??e.format}`}case"not_multiple_of":return`Yanlış ədəd: ${e.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${e.keys.length>1?"lar":""}: ${w(e.keys,", ")}`;case"invalid_key":return`${e.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${e.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function Ed(){return{localeError:Od()}}function da(t,n,r,o){const e=Math.abs(t),i=e%10,a=e%100;return a>=11&&a<=19?o:i===1?n:i>=2&&i<=4?r:o}const Pd=()=>{const t={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"лік";case"object":{if(Array.isArray(e))return"масіў";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"};return e=>{switch(e.code){case"invalid_type":return`Няправільны ўвод: чакаўся ${e.expected}, атрымана ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Няправільны ўвод: чакалася ${U(e.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);if(a){const s=Number(e.maximum),c=da(s,a.unit.one,a.unit.few,a.unit.many);return`Занадта вялікі: чакалася, што ${e.origin??"значэнне"} павінна ${a.verb} ${i}${e.maximum.toString()} ${c}`}return`Занадта вялікі: чакалася, што ${e.origin??"значэнне"} павінна быць ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);if(a){const s=Number(e.minimum),c=da(s,a.unit.one,a.unit.few,a.unit.many);return`Занадта малы: чакалася, што ${e.origin} павінна ${a.verb} ${i}${e.minimum.toString()} ${c}`}return`Занадта малы: чакалася, што ${e.origin} павінна быць ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Няправільны радок: павінен пачынацца з "${i.prefix}"`:i.format==="ends_with"?`Няправільны радок: павінен заканчвацца на "${i.suffix}"`:i.format==="includes"?`Няправільны радок: павінен змяшчаць "${i.includes}"`:i.format==="regex"?`Няправільны радок: павінен адпавядаць шаблону ${i.pattern}`:`Няправільны ${o[i.format]??e.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${e.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${e.keys.length>1?"ключы":"ключ"}: ${w(e.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${e.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${e.origin}`;default:return"Няправільны ўвод"}}};function Ud(){return{localeError:Pd()}}const Dd=()=>{const t={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return e=>{switch(e.code){case"invalid_type":return`Tipus invàlid: s'esperava ${e.expected}, s'ha rebut ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Valor invàlid: s'esperava ${U(e.values[0])}`:`Opció invàlida: s'esperava una de ${w(e.values," o ")}`;case"too_big":{const i=e.inclusive?"com a màxim":"menys de",a=n(e.origin);return a?`Massa gran: s'esperava que ${e.origin??"el valor"} contingués ${i} ${e.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${e.origin??"el valor"} fos ${i} ${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?"com a mínim":"més de",a=n(e.origin);return a?`Massa petit: s'esperava que ${e.origin} contingués ${i} ${e.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${e.origin} fos ${i} ${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Format invàlid: ha de començar amb "${i.prefix}"`:i.format==="ends_with"?`Format invàlid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format invàlid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format invàlid: ha de coincidir amb el patró ${i.pattern}`:`Format invàlid per a ${o[i.format]??e.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${e.divisor}`;case"unrecognized_keys":return`Clau${e.keys.length>1?"s":""} no reconeguda${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${e.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${e.origin}`;default:return"Entrada invàlida"}}};function Rd(){return{localeError:Dd()}}const Zd=()=>{const t={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"číslo";case"string":return"řetězec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(e))return"pole";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"};return e=>{switch(e.code){case"invalid_type":return`Neplatný vstup: očekáváno ${e.expected}, obdrženo ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Neplatný vstup: očekáváno ${U(e.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Hodnota je příliš velká: ${e.origin??"hodnota"} musí mít ${i}${e.maximum.toString()} ${a.unit??"prvků"}`:`Hodnota je příliš velká: ${e.origin??"hodnota"} musí být ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Hodnota je příliš malá: ${e.origin??"hodnota"} musí mít ${i}${e.minimum.toString()} ${a.unit??"prvků"}`:`Hodnota je příliš malá: ${e.origin??"hodnota"} musí být ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Neplatný řetězec: musí začínat na "${i.prefix}"`:i.format==="ends_with"?`Neplatný řetězec: musí končit na "${i.suffix}"`:i.format==="includes"?`Neplatný řetězec: musí obsahovat "${i.includes}"`:i.format==="regex"?`Neplatný řetězec: musí odpovídat vzoru ${i.pattern}`:`Neplatný formát ${o[i.format]??e.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${e.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${w(e.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${e.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${e.origin}`;default:return"Neplatný vstup"}}};function Cd(){return{localeError:Zd()}}const Ad=()=>{const t={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"Zahl";case"object":{if(Array.isArray(e))return"Array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return e=>{switch(e.code){case"invalid_type":return`Ungültige Eingabe: erwartet ${e.expected}, erhalten ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Ungültige Eingabe: erwartet ${U(e.values[0])}`:`Ungültige Option: erwartet eine von ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Zu groß: erwartet, dass ${e.origin??"Wert"} ${i}${e.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu groß: erwartet, dass ${e.origin??"Wert"} ${i}${e.maximum.toString()} ist`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Zu klein: erwartet, dass ${e.origin} ${i}${e.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${e.origin} ${i}${e.minimum.toString()} ist`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Ungültiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ungültiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ungültiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ungültiger String: muss dem Muster ${i.pattern} entsprechen`:`Ungültig: ${o[i.format]??e.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${e.divisor} sein`;case"unrecognized_keys":return`${e.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${w(e.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${e.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${e.origin}`;default:return"Ungültige Eingabe"}}};function Ld(){return{localeError:Ad()}}const Md=t=>{const n=typeof t;switch(n){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return n},qd=()=>{const t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function n(o){return t[o]??null}const r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Invalid input: expected ${o.expected}, received ${Md(o.input)}`;case"invalid_value":return o.values.length===1?`Invalid input: expected ${U(o.values[0])}`:`Invalid option: expected one of ${w(o.values,"|")}`;case"too_big":{const e=o.inclusive?"<=":"<",i=n(o.origin);return i?`Too big: expected ${o.origin??"value"} to have ${e}${o.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${e}${o.maximum.toString()}`}case"too_small":{const e=o.inclusive?">=":">",i=n(o.origin);return i?`Too small: expected ${o.origin} to have ${e}${o.minimum.toString()} ${i.unit}`:`Too small: expected ${o.origin} to be ${e}${o.minimum.toString()}`}case"invalid_format":{const e=o;return e.format==="starts_with"?`Invalid string: must start with "${e.prefix}"`:e.format==="ends_with"?`Invalid string: must end with "${e.suffix}"`:e.format==="includes"?`Invalid string: must include "${e.includes}"`:e.format==="regex"?`Invalid string: must match pattern ${e.pattern}`:`Invalid ${r[e.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${w(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function Mc(){return{localeError:qd()}}const Hd=t=>{const n=typeof t;switch(n){case"number":return Number.isNaN(t)?"NaN":"nombro";case"object":{if(Array.isArray(t))return"tabelo";if(t===null)return"senvalora";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return n},Bd=()=>{const t={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function n(o){return t[o]??null}const r={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return o=>{switch(o.code){case"invalid_type":return`Nevalida enigo: atendiĝis ${o.expected}, riceviĝis ${Hd(o.input)}`;case"invalid_value":return o.values.length===1?`Nevalida enigo: atendiĝis ${U(o.values[0])}`:`Nevalida opcio: atendiĝis unu el ${w(o.values,"|")}`;case"too_big":{const e=o.inclusive?"<=":"<",i=n(o.origin);return i?`Tro granda: atendiĝis ke ${o.origin??"valoro"} havu ${e}${o.maximum.toString()} ${i.unit??"elementojn"}`:`Tro granda: atendiĝis ke ${o.origin??"valoro"} havu ${e}${o.maximum.toString()}`}case"too_small":{const e=o.inclusive?">=":">",i=n(o.origin);return i?`Tro malgranda: atendiĝis ke ${o.origin} havu ${e}${o.minimum.toString()} ${i.unit}`:`Tro malgranda: atendiĝis ke ${o.origin} estu ${e}${o.minimum.toString()}`}case"invalid_format":{const e=o;return e.format==="starts_with"?`Nevalida karaktraro: devas komenciĝi per "${e.prefix}"`:e.format==="ends_with"?`Nevalida karaktraro: devas finiĝi per "${e.suffix}"`:e.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${e.includes}"`:e.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${e.pattern}`:`Nevalida ${r[e.format]??o.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${o.divisor}`;case"unrecognized_keys":return`Nekonata${o.keys.length>1?"j":""} ŝlosilo${o.keys.length>1?"j":""}: ${w(o.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${o.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${o.origin}`;default:return"Nevalida enigo"}}};function Fd(){return{localeError:Bd()}}const Jd=()=>{const t={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"número";case"object":{if(Array.isArray(e))return"arreglo";if(e===null)return"nulo";if(Object.getPrototypeOf(e)!==Object.prototype)return e.constructor.name}}return i},o={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return e=>{switch(e.code){case"invalid_type":return`Entrada inválida: se esperaba ${e.expected}, recibido ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Entrada inválida: se esperaba ${U(e.values[0])}`:`Opción inválida: se esperaba una de ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Demasiado grande: se esperaba que ${e.origin??"valor"} tuviera ${i}${e.maximum.toString()} ${a.unit??"elementos"}`:`Demasiado grande: se esperaba que ${e.origin??"valor"} fuera ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Demasiado pequeño: se esperaba que ${e.origin} tuviera ${i}${e.minimum.toString()} ${a.unit}`:`Demasiado pequeño: se esperaba que ${e.origin} fuera ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Cadena inválida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inválida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inválida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inválida: debe coincidir con el patrón ${i.pattern}`:`Inválido ${o[i.format]??e.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${e.divisor}`;case"unrecognized_keys":return`Llave${e.keys.length>1?"s":""} desconocida${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Llave inválida en ${e.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${e.origin}`;default:return"Entrada inválida"}}};function Vd(){return{localeError:Jd()}}const Wd=()=>{const t={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"عدد";case"object":{if(Array.isArray(e))return"آرایه";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"};return e=>{switch(e.code){case"invalid_type":return`ورودی نامعتبر: می‌بایست ${e.expected} می‌بود، ${r(e.input)} دریافت شد`;case"invalid_value":return e.values.length===1?`ورودی نامعتبر: می‌بایست ${U(e.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${w(e.values,"|")} می‌بود`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`خیلی بزرگ: ${e.origin??"مقدار"} باید ${i}${e.maximum.toString()} ${a.unit??"عنصر"} باشد`:`خیلی بزرگ: ${e.origin??"مقدار"} باید ${i}${e.maximum.toString()} باشد`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`خیلی کوچک: ${e.origin} باید ${i}${e.minimum.toString()} ${a.unit} باشد`:`خیلی کوچک: ${e.origin} باید ${i}${e.minimum.toString()} باشد`}case"invalid_format":{const i=e;return i.format==="starts_with"?`رشته نامعتبر: باید با "${i.prefix}" شروع شود`:i.format==="ends_with"?`رشته نامعتبر: باید با "${i.suffix}" تمام شود`:i.format==="includes"?`رشته نامعتبر: باید شامل "${i.includes}" باشد`:i.format==="regex"?`رشته نامعتبر: باید با الگوی ${i.pattern} مطابقت داشته باشد`:`${o[i.format]??e.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${e.divisor} باشد`;case"unrecognized_keys":return`کلید${e.keys.length>1?"های":""} ناشناس: ${w(e.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${e.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${e.origin}`;default:return"ورودی نامعتبر"}}};function Gd(){return{localeError:Wd()}}const Kd=()=>{const t={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return e=>{switch(e.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${e.expected}, oli ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Virheellinen syöte: täytyy olla ${U(e.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Liian suuri: ${a.subject} täytyy olla ${i}${e.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon täytyy olla ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Liian pieni: ${a.subject} täytyy olla ${i}${e.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon täytyy olla ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Virheellinen syöte: täytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen syöte: täytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen syöte: täytyy sisältää "${i.includes}"`:i.format==="regex"?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${i.pattern}`:`Virheellinen ${o[i.format]??e.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${e.divisor} monikerta`;case"unrecognized_keys":return`${e.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${w(e.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function Qd(){return{localeError:Kd()}}const Yd=()=>{const t={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"nombre";case"object":{if(Array.isArray(e))return"tableau";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return e=>{switch(e.code){case"invalid_type":return`Entrée invalide : ${e.expected} attendu, ${r(e.input)} reçu`;case"invalid_value":return e.values.length===1?`Entrée invalide : ${U(e.values[0])} attendu`:`Option invalide : une valeur parmi ${w(e.values,"|")} attendue`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Trop grand : ${e.origin??"valeur"} doit ${a.verb} ${i}${e.maximum.toString()} ${a.unit??"élément(s)"}`:`Trop grand : ${e.origin??"valeur"} doit être ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Trop petit : ${e.origin} doit ${a.verb} ${i}${e.minimum.toString()} ${a.unit}`:`Trop petit : ${e.origin} doit être ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Chaîne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Chaîne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Chaîne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Chaîne invalide : doit correspondre au modèle ${i.pattern}`:`${o[i.format]??e.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${e.divisor}`;case"unrecognized_keys":return`Clé${e.keys.length>1?"s":""} non reconnue${e.keys.length>1?"s":""} : ${w(e.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${e.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${e.origin}`;default:return"Entrée invalide"}}};function Xd(){return{localeError:Yd()}}const em=()=>{const t={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return e=>{switch(e.code){case"invalid_type":return`Entrée invalide : attendu ${e.expected}, reçu ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Entrée invalide : attendu ${U(e.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"≤":"<",a=n(e.origin);return a?`Trop grand : attendu que ${e.origin??"la valeur"} ait ${i}${e.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${e.origin??"la valeur"} soit ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?"≥":">",a=n(e.origin);return a?`Trop petit : attendu que ${e.origin} ait ${i}${e.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${e.origin} soit ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Chaîne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Chaîne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Chaîne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Chaîne invalide : doit correspondre au motif ${i.pattern}`:`${o[i.format]??e.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${e.divisor}`;case"unrecognized_keys":return`Clé${e.keys.length>1?"s":""} non reconnue${e.keys.length>1?"s":""} : ${w(e.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${e.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${e.origin}`;default:return"Entrée invalide"}}};function tm(){return{localeError:em()}}const nm=()=>{const t={string:{unit:"אותיות",verb:"לכלול"},file:{unit:"בייטים",verb:"לכלול"},array:{unit:"פריטים",verb:"לכלול"},set:{unit:"פריטים",verb:"לכלול"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"קלט",email:"כתובת אימייל",url:"כתובת רשת",emoji:"אימוג'י",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"תאריך וזמן ISO",date:"תאריך ISO",time:"זמן ISO",duration:"משך זמן ISO",ipv4:"כתובת IPv4",ipv6:"כתובת IPv6",cidrv4:"טווח IPv4",cidrv6:"טווח IPv6",base64:"מחרוזת בבסיס 64",base64url:"מחרוזת בבסיס 64 לכתובות רשת",json_string:"מחרוזת JSON",e164:"מספר E.164",jwt:"JWT",template_literal:"קלט"};return e=>{switch(e.code){case"invalid_type":return`קלט לא תקין: צריך ${e.expected}, התקבל ${r(e.input)}`;case"invalid_value":return e.values.length===1?`קלט לא תקין: צריך ${U(e.values[0])}`:`קלט לא תקין: צריך אחת מהאפשרויות ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`גדול מדי: ${e.origin??"value"} צריך להיות ${i}${e.maximum.toString()} ${a.unit??"elements"}`:`גדול מדי: ${e.origin??"value"} צריך להיות ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`קטן מדי: ${e.origin} צריך להיות ${i}${e.minimum.toString()} ${a.unit}`:`קטן מדי: ${e.origin} צריך להיות ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`מחרוזת לא תקינה: חייבת להתחיל ב"${i.prefix}"`:i.format==="ends_with"?`מחרוזת לא תקינה: חייבת להסתיים ב "${i.suffix}"`:i.format==="includes"?`מחרוזת לא תקינה: חייבת לכלול "${i.includes}"`:i.format==="regex"?`מחרוזת לא תקינה: חייבת להתאים לתבנית ${i.pattern}`:`${o[i.format]??e.format} לא תקין`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${e.divisor}`;case"unrecognized_keys":return`מפתח${e.keys.length>1?"ות":""} לא מזוה${e.keys.length>1?"ים":"ה"}: ${w(e.keys,", ")}`;case"invalid_key":return`מפתח לא תקין ב${e.origin}`;case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${e.origin}`;default:return"קלט לא תקין"}}};function rm(){return{localeError:nm()}}const im=()=>{const t={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"szám";case"object":{if(Array.isArray(e))return"tömb";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"};return e=>{switch(e.code){case"invalid_type":return`Érvénytelen bemenet: a várt érték ${e.expected}, a kapott érték ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Érvénytelen bemenet: a várt érték ${U(e.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Túl nagy: ${e.origin??"érték"} mérete túl nagy ${i}${e.maximum.toString()} ${a.unit??"elem"}`:`Túl nagy: a bemeneti érték ${e.origin??"érték"} túl nagy: ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Túl kicsi: a bemeneti érték ${e.origin} mérete túl kicsi ${i}${e.minimum.toString()} ${a.unit}`:`Túl kicsi: a bemeneti érték ${e.origin} túl kicsi ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Érvénytelen string: "${i.prefix}" értékkel kell kezdődnie`:i.format==="ends_with"?`Érvénytelen string: "${i.suffix}" értékkel kell végződnie`:i.format==="includes"?`Érvénytelen string: "${i.includes}" értéket kell tartalmaznia`:i.format==="regex"?`Érvénytelen string: ${i.pattern} mintának kell megfelelnie`:`Érvénytelen ${o[i.format]??e.format}`}case"not_multiple_of":return`Érvénytelen szám: ${e.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${e.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${e.origin}`;default:return"Érvénytelen bemenet"}}};function om(){return{localeError:im()}}const am=()=>{const t={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return e=>{switch(e.code){case"invalid_type":return`Input tidak valid: diharapkan ${e.expected}, diterima ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Input tidak valid: diharapkan ${U(e.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Terlalu besar: diharapkan ${e.origin??"value"} memiliki ${i}${e.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${e.origin??"value"} menjadi ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Terlalu kecil: diharapkan ${e.origin} memiliki ${i}${e.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${e.origin} menjadi ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${o[i.format]??e.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${e.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${e.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${e.origin}`;default:return"Input tidak valid"}}};function sm(){return{localeError:am()}}const cm=()=>{const t={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"numero";case"object":{if(Array.isArray(e))return"vettore";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return e=>{switch(e.code){case"invalid_type":return`Input non valido: atteso ${e.expected}, ricevuto ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Input non valido: atteso ${U(e.values[0])}`:`Opzione non valida: atteso uno tra ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Troppo grande: ${e.origin??"valore"} deve avere ${i}${e.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${e.origin??"valore"} deve essere ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Troppo piccolo: ${e.origin} deve avere ${i}${e.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${e.origin} deve essere ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Invalid ${o[i.format]??e.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${e.divisor}`;case"unrecognized_keys":return`Chiav${e.keys.length>1?"i":"e"} non riconosciut${e.keys.length>1?"e":"a"}: ${w(e.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${e.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${e.origin}`;default:return"Input non valido"}}};function lm(){return{localeError:cm()}}const um=()=>{const t={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"数値";case"object":{if(Array.isArray(e))return"配列";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"};return e=>{switch(e.code){case"invalid_type":return`無効な入力: ${e.expected}が期待されましたが、${r(e.input)}が入力されました`;case"invalid_value":return e.values.length===1?`無効な入力: ${U(e.values[0])}が期待されました`:`無効な選択: ${w(e.values,"、")}のいずれかである必要があります`;case"too_big":{const i=e.inclusive?"以下である":"より小さい",a=n(e.origin);return a?`大きすぎる値: ${e.origin??"値"}${e.maximum.toString()}${a.unit??"要素"}${i}必要があります`:`大きすぎる値: ${e.origin??"値"}${e.maximum.toString()}${i}必要があります`}case"too_small":{const i=e.inclusive?"以上である":"より大きい",a=n(e.origin);return a?`小さすぎる値: ${e.origin}${e.minimum.toString()}${a.unit}${i}必要があります`:`小さすぎる値: ${e.origin}${e.minimum.toString()}${i}必要があります`}case"invalid_format":{const i=e;return i.format==="starts_with"?`無効な文字列: "${i.prefix}"で始まる必要があります`:i.format==="ends_with"?`無効な文字列: "${i.suffix}"で終わる必要があります`:i.format==="includes"?`無効な文字列: "${i.includes}"を含む必要があります`:i.format==="regex"?`無効な文字列: パターン${i.pattern}に一致する必要があります`:`無効な${o[i.format]??e.format}`}case"not_multiple_of":return`無効な数値: ${e.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${e.keys.length>1?"群":""}: ${w(e.keys,"、")}`;case"invalid_key":return`${e.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${e.origin}内の無効な値`;default:return"無効な入力"}}};function dm(){return{localeError:um()}}const mm=()=>{const t={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"មិនមែនជាលេខ (NaN)":"លេខ";case"object":{if(Array.isArray(e))return"អារេ (Array)";if(e===null)return"គ្មានតម្លៃ (null)";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"};return e=>{switch(e.code){case"invalid_type":return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${e.expected} ប៉ុន្តែទទួលបាន ${r(e.input)}`;case"invalid_value":return e.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${U(e.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`ធំពេក៖ ត្រូវការ ${e.origin??"តម្លៃ"} ${i} ${e.maximum.toString()} ${a.unit??"ធាតុ"}`:`ធំពេក៖ ត្រូវការ ${e.origin??"តម្លៃ"} ${i} ${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`តូចពេក៖ ត្រូវការ ${e.origin} ${i} ${e.minimum.toString()} ${a.unit}`:`តូចពេក៖ ត្រូវការ ${e.origin} ${i} ${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${i.prefix}"`:i.format==="ends_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${i.suffix}"`:i.format==="includes"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${i.includes}"`:i.format==="regex"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${i.pattern}`:`មិនត្រឹមត្រូវ៖ ${o[i.format]??e.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${e.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${w(e.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${e.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${e.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function pm(){return{localeError:mm()}}const fm=()=>{const t={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"};return e=>{switch(e.code){case"invalid_type":return`잘못된 입력: 예상 타입은 ${e.expected}, 받은 타입은 ${r(e.input)}입니다`;case"invalid_value":return e.values.length===1?`잘못된 입력: 값은 ${U(e.values[0])} 이어야 합니다`:`잘못된 옵션: ${w(e.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{const i=e.inclusive?"이하":"미만",a=i==="미만"?"이어야 합니다":"여야 합니다",s=n(e.origin),c=(s==null?void 0:s.unit)??"요소";return s?`${e.origin??"값"}이 너무 큽니다: ${e.maximum.toString()}${c} ${i}${a}`:`${e.origin??"값"}이 너무 큽니다: ${e.maximum.toString()} ${i}${a}`}case"too_small":{const i=e.inclusive?"이상":"초과",a=i==="이상"?"이어야 합니다":"여야 합니다",s=n(e.origin),c=(s==null?void 0:s.unit)??"요소";return s?`${e.origin??"값"}이 너무 작습니다: ${e.minimum.toString()}${c} ${i}${a}`:`${e.origin??"값"}이 너무 작습니다: ${e.minimum.toString()} ${i}${a}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`잘못된 문자열: "${i.prefix}"(으)로 시작해야 합니다`:i.format==="ends_with"?`잘못된 문자열: "${i.suffix}"(으)로 끝나야 합니다`:i.format==="includes"?`잘못된 문자열: "${i.includes}"을(를) 포함해야 합니다`:i.format==="regex"?`잘못된 문자열: 정규식 ${i.pattern} 패턴과 일치해야 합니다`:`잘못된 ${o[i.format]??e.format}`}case"not_multiple_of":return`잘못된 숫자: ${e.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${w(e.keys,", ")}`;case"invalid_key":return`잘못된 키: ${e.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${e.origin}`;default:return"잘못된 입력"}}};function gm(){return{localeError:fm()}}const hm=()=>{const t={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"број";case"object":{if(Array.isArray(e))return"низа";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"};return e=>{switch(e.code){case"invalid_type":return`Грешен внес: се очекува ${e.expected}, примено ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Invalid input: expected ${U(e.values[0])}`:`Грешана опција: се очекува една ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Премногу голем: се очекува ${e.origin??"вредноста"} да има ${i}${e.maximum.toString()} ${a.unit??"елементи"}`:`Премногу голем: се очекува ${e.origin??"вредноста"} да биде ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Премногу мал: се очекува ${e.origin} да има ${i}${e.minimum.toString()} ${a.unit}`:`Премногу мал: се очекува ${e.origin} да биде ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Неважечка низа: мора да започнува со "${i.prefix}"`:i.format==="ends_with"?`Неважечка низа: мора да завршува со "${i.suffix}"`:i.format==="includes"?`Неважечка низа: мора да вклучува "${i.includes}"`:i.format==="regex"?`Неважечка низа: мора да одгоара на патернот ${i.pattern}`:`Invalid ${o[i.format]??e.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${e.divisor}`;case"unrecognized_keys":return`${e.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${w(e.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${e.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${e.origin}`;default:return"Грешен внес"}}};function vm(){return{localeError:hm()}}const bm=()=>{const t={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"nombor";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return e=>{switch(e.code){case"invalid_type":return`Input tidak sah: dijangka ${e.expected}, diterima ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Input tidak sah: dijangka ${U(e.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Terlalu besar: dijangka ${e.origin??"nilai"} ${a.verb} ${i}${e.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${e.origin??"nilai"} adalah ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Terlalu kecil: dijangka ${e.origin} ${a.verb} ${i}${e.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${e.origin} adalah ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${o[i.format]??e.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${e.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${w(e.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${e.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${e.origin}`;default:return"Input tidak sah"}}};function ym(){return{localeError:bm()}}const $m=()=>{const t={string:{unit:"tekens"},file:{unit:"bytes"},array:{unit:"elementen"},set:{unit:"elementen"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"getal";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return e=>{switch(e.code){case"invalid_type":return`Ongeldige invoer: verwacht ${e.expected}, ontving ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Ongeldige invoer: verwacht ${U(e.values[0])}`:`Ongeldige optie: verwacht één van ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Te lang: verwacht dat ${e.origin??"waarde"} ${i}${e.maximum.toString()} ${a.unit??"elementen"} bevat`:`Te lang: verwacht dat ${e.origin??"waarde"} ${i}${e.maximum.toString()} is`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Te kort: verwacht dat ${e.origin} ${i}${e.minimum.toString()} ${a.unit} bevat`:`Te kort: verwacht dat ${e.origin} ${i}${e.minimum.toString()} is`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${o[i.format]??e.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${e.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${e.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${e.origin}`;default:return"Ongeldige invoer"}}};function _m(){return{localeError:$m()}}const km=()=>{const t={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"tall";case"object":{if(Array.isArray(e))return"liste";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return e=>{switch(e.code){case"invalid_type":return`Ugyldig input: forventet ${e.expected}, fikk ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Ugyldig verdi: forventet ${U(e.values[0])}`:`Ugyldig valg: forventet en av ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`For stor(t): forventet ${e.origin??"value"} til å ha ${i}${e.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${e.origin??"value"} til å ha ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`For lite(n): forventet ${e.origin} til å ha ${i}${e.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${e.origin} til å ha ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Ugyldig streng: må starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: må ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: må inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: må matche mønsteret ${i.pattern}`:`Ugyldig ${o[i.format]??e.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${e.divisor}`;case"unrecognized_keys":return`${e.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${w(e.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${e.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${e.origin}`;default:return"Ugyldig input"}}};function Sm(){return{localeError:km()}}const wm=()=>{const t={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"numara";case"object":{if(Array.isArray(e))return"saf";if(e===null)return"gayb";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"};return e=>{switch(e.code){case"invalid_type":return`Fâsit giren: umulan ${e.expected}, alınan ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Fâsit giren: umulan ${U(e.values[0])}`:`Fâsit tercih: mûteberler ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Fazla büyük: ${e.origin??"value"}, ${i}${e.maximum.toString()} ${a.unit??"elements"} sahip olmalıydı.`:`Fazla büyük: ${e.origin??"value"}, ${i}${e.maximum.toString()} olmalıydı.`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Fazla küçük: ${e.origin}, ${i}${e.minimum.toString()} ${a.unit} sahip olmalıydı.`:`Fazla küçük: ${e.origin}, ${i}${e.minimum.toString()} olmalıydı.`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Fâsit metin: "${i.prefix}" ile başlamalı.`:i.format==="ends_with"?`Fâsit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`Fâsit metin: "${i.includes}" ihtivâ etmeli.`:i.format==="regex"?`Fâsit metin: ${i.pattern} nakşına uymalı.`:`Fâsit ${o[i.format]??e.format}`}case"not_multiple_of":return`Fâsit sayı: ${e.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`${e.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${e.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function Im(){return{localeError:wm()}}const xm=()=>{const t={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"عدد";case"object":{if(Array.isArray(e))return"ارې";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"};return e=>{switch(e.code){case"invalid_type":return`ناسم ورودي: باید ${e.expected} وای, مګر ${r(e.input)} ترلاسه شو`;case"invalid_value":return e.values.length===1?`ناسم ورودي: باید ${U(e.values[0])} وای`:`ناسم انتخاب: باید یو له ${w(e.values,"|")} څخه وای`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`ډیر لوی: ${e.origin??"ارزښت"} باید ${i}${e.maximum.toString()} ${a.unit??"عنصرونه"} ولري`:`ډیر لوی: ${e.origin??"ارزښت"} باید ${i}${e.maximum.toString()} وي`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`ډیر کوچنی: ${e.origin} باید ${i}${e.minimum.toString()} ${a.unit} ولري`:`ډیر کوچنی: ${e.origin} باید ${i}${e.minimum.toString()} وي`}case"invalid_format":{const i=e;return i.format==="starts_with"?`ناسم متن: باید د "${i.prefix}" سره پیل شي`:i.format==="ends_with"?`ناسم متن: باید د "${i.suffix}" سره پای ته ورسيږي`:i.format==="includes"?`ناسم متن: باید "${i.includes}" ولري`:i.format==="regex"?`ناسم متن: باید د ${i.pattern} سره مطابقت ولري`:`${o[i.format]??e.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${e.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${e.keys.length>1?"کلیډونه":"کلیډ"}: ${w(e.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${e.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${e.origin} کې`;default:return"ناسمه ورودي"}}};function zm(){return{localeError:xm()}}const jm=()=>{const t={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"liczba";case"object":{if(Array.isArray(e))return"tablica";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"};return e=>{switch(e.code){case"invalid_type":return`Nieprawidłowe dane wejściowe: oczekiwano ${e.expected}, otrzymano ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${U(e.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Za duża wartość: oczekiwano, że ${e.origin??"wartość"} będzie mieć ${i}${e.maximum.toString()} ${a.unit??"elementów"}`:`Zbyt duż(y/a/e): oczekiwano, że ${e.origin??"wartość"} będzie wynosić ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Za mała wartość: oczekiwano, że ${e.origin??"wartość"} będzie mieć ${i}${e.minimum.toString()} ${a.unit??"elementów"}`:`Zbyt mał(y/a/e): oczekiwano, że ${e.origin??"wartość"} będzie wynosić ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${i.prefix}"`:i.format==="ends_with"?`Nieprawidłowy ciąg znaków: musi kończyć się na "${i.suffix}"`:i.format==="includes"?`Nieprawidłowy ciąg znaków: musi zawierać "${i.includes}"`:i.format==="regex"?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${i.pattern}`:`Nieprawidłow(y/a/e) ${o[i.format]??e.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${e.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${e.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${e.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function Tm(){return{localeError:jm()}}const Nm=()=>{const t={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"número";case"object":{if(Array.isArray(e))return"array";if(e===null)return"nulo";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return e=>{switch(e.code){case"invalid_type":return`Tipo inválido: esperado ${e.expected}, recebido ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Entrada inválida: esperado ${U(e.values[0])}`:`Opção inválida: esperada uma das ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Muito grande: esperado que ${e.origin??"valor"} tivesse ${i}${e.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${e.origin??"valor"} fosse ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Muito pequeno: esperado que ${e.origin} tivesse ${i}${e.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${e.origin} fosse ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Texto inválido: deve começar com "${i.prefix}"`:i.format==="ends_with"?`Texto inválido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inválido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inválido: deve corresponder ao padrão ${i.pattern}`:`${o[i.format]??e.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${e.divisor}`;case"unrecognized_keys":return`Chave${e.keys.length>1?"s":""} desconhecida${e.keys.length>1?"s":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Chave inválida em ${e.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${e.origin}`;default:return"Campo inválido"}}};function Om(){return{localeError:Nm()}}function ma(t,n,r,o){const e=Math.abs(t),i=e%10,a=e%100;return a>=11&&a<=19?o:i===1?n:i>=2&&i<=4?r:o}const Em=()=>{const t={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"число";case"object":{if(Array.isArray(e))return"массив";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"};return e=>{switch(e.code){case"invalid_type":return`Неверный ввод: ожидалось ${e.expected}, получено ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Неверный ввод: ожидалось ${U(e.values[0])}`:`Неверный вариант: ожидалось одно из ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);if(a){const s=Number(e.maximum),c=ma(s,a.unit.one,a.unit.few,a.unit.many);return`Слишком большое значение: ожидалось, что ${e.origin??"значение"} будет иметь ${i}${e.maximum.toString()} ${c}`}return`Слишком большое значение: ожидалось, что ${e.origin??"значение"} будет ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);if(a){const s=Number(e.minimum),c=ma(s,a.unit.one,a.unit.few,a.unit.many);return`Слишком маленькое значение: ожидалось, что ${e.origin} будет иметь ${i}${e.minimum.toString()} ${c}`}return`Слишком маленькое значение: ожидалось, что ${e.origin} будет ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Неверная строка: должна начинаться с "${i.prefix}"`:i.format==="ends_with"?`Неверная строка: должна заканчиваться на "${i.suffix}"`:i.format==="includes"?`Неверная строка: должна содержать "${i.includes}"`:i.format==="regex"?`Неверная строка: должна соответствовать шаблону ${i.pattern}`:`Неверный ${o[i.format]??e.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${e.divisor}`;case"unrecognized_keys":return`Нераспознанн${e.keys.length>1?"ые":"ый"} ключ${e.keys.length>1?"и":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${e.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${e.origin}`;default:return"Неверные входные данные"}}};function Pm(){return{localeError:Em()}}const Um=()=>{const t={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"število";case"object":{if(Array.isArray(e))return"tabela";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"};return e=>{switch(e.code){case"invalid_type":return`Neveljaven vnos: pričakovano ${e.expected}, prejeto ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Neveljaven vnos: pričakovano ${U(e.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Preveliko: pričakovano, da bo ${e.origin??"vrednost"} imelo ${i}${e.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pričakovano, da bo ${e.origin??"vrednost"} ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Premajhno: pričakovano, da bo ${e.origin} imelo ${i}${e.minimum.toString()} ${a.unit}`:`Premajhno: pričakovano, da bo ${e.origin} ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Neveljaven niz: mora se začeti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se končati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${o[i.format]??e.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${e.divisor}`;case"unrecognized_keys":return`Neprepoznan${e.keys.length>1?"i ključi":" ključ"}: ${w(e.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${e.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${e.origin}`;default:return"Neveljaven vnos"}}};function Dm(){return{localeError:Um()}}const Rm=()=>{const t={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"antal";case"object":{if(Array.isArray(e))return"lista";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return e=>{switch(e.code){case"invalid_type":return`Ogiltig inmatning: förväntat ${e.expected}, fick ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Ogiltig inmatning: förväntat ${U(e.values[0])}`:`Ogiltigt val: förväntade en av ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`För stor(t): förväntade ${e.origin??"värdet"} att ha ${i}${e.maximum.toString()} ${a.unit??"element"}`:`För stor(t): förväntat ${e.origin??"värdet"} att ha ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`För lite(t): förväntade ${e.origin??"värdet"} att ha ${i}${e.minimum.toString()} ${a.unit}`:`För lite(t): förväntade ${e.origin??"värdet"} att ha ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Ogiltig sträng: måste börja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig sträng: måste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig sträng: måste innehålla "${i.includes}"`:i.format==="regex"?`Ogiltig sträng: måste matcha mönstret "${i.pattern}"`:`Ogiltig(t) ${o[i.format]??e.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${e.divisor}`;case"unrecognized_keys":return`${e.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${w(e.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${e.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${e.origin??"värdet"}`;default:return"Ogiltig input"}}};function Zm(){return{localeError:Rm()}}const Cm=()=>{const t={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"எண் அல்லாதது":"எண்";case"object":{if(Array.isArray(e))return"அணி";if(e===null)return"வெறுமை";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"};return e=>{switch(e.code){case"invalid_type":return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${e.expected}, பெறப்பட்டது ${r(e.input)}`;case"invalid_value":return e.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${U(e.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${w(e.values,"|")} இல் ஒன்று`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${e.origin??"மதிப்பு"} ${i}${e.maximum.toString()} ${a.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${e.origin??"மதிப்பு"} ${i}${e.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${e.origin} ${i}${e.minimum.toString()} ${a.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${e.origin} ${i}${e.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{const i=e;return i.format==="starts_with"?`தவறான சரம்: "${i.prefix}" இல் தொடங்க வேண்டும்`:i.format==="ends_with"?`தவறான சரம்: "${i.suffix}" இல் முடிவடைய வேண்டும்`:i.format==="includes"?`தவறான சரம்: "${i.includes}" ஐ உள்ளடக்க வேண்டும்`:i.format==="regex"?`தவறான சரம்: ${i.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${o[i.format]??e.format}`}case"not_multiple_of":return`தவறான எண்: ${e.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${e.keys.length>1?"கள்":""}: ${w(e.keys,", ")}`;case"invalid_key":return`${e.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${e.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function Am(){return{localeError:Cm()}}const Lm=()=>{const t={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"ไม่ใช่ตัวเลข (NaN)":"ตัวเลข";case"object":{if(Array.isArray(e))return"อาร์เรย์ (Array)";if(e===null)return"ไม่มีค่า (null)";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"};return e=>{switch(e.code){case"invalid_type":return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${e.expected} แต่ได้รับ ${r(e.input)}`;case"invalid_value":return e.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${U(e.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"ไม่เกิน":"น้อยกว่า",a=n(e.origin);return a?`เกินกำหนด: ${e.origin??"ค่า"} ควรมี${i} ${e.maximum.toString()} ${a.unit??"รายการ"}`:`เกินกำหนด: ${e.origin??"ค่า"} ควรมี${i} ${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?"อย่างน้อย":"มากกว่า",a=n(e.origin);return a?`น้อยกว่ากำหนด: ${e.origin} ควรมี${i} ${e.minimum.toString()} ${a.unit}`:`น้อยกว่ากำหนด: ${e.origin} ควรมี${i} ${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${i.prefix}"`:i.format==="ends_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${i.suffix}"`:i.format==="includes"?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${i.includes}" อยู่ในข้อความ`:i.format==="regex"?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${i.pattern}`:`รูปแบบไม่ถูกต้อง: ${o[i.format]??e.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${e.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${w(e.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${e.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${e.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function Mm(){return{localeError:Lm()}}const qm=t=>{const n=typeof t;switch(n){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return n},Hm=()=>{const t={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function n(o){return t[o]??null}const r={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"};return o=>{switch(o.code){case"invalid_type":return`Geçersiz değer: beklenen ${o.expected}, alınan ${qm(o.input)}`;case"invalid_value":return o.values.length===1?`Geçersiz değer: beklenen ${U(o.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${w(o.values,"|")}`;case"too_big":{const e=o.inclusive?"<=":"<",i=n(o.origin);return i?`Çok büyük: beklenen ${o.origin??"değer"} ${e}${o.maximum.toString()} ${i.unit??"öğe"}`:`Çok büyük: beklenen ${o.origin??"değer"} ${e}${o.maximum.toString()}`}case"too_small":{const e=o.inclusive?">=":">",i=n(o.origin);return i?`Çok küçük: beklenen ${o.origin} ${e}${o.minimum.toString()} ${i.unit}`:`Çok küçük: beklenen ${o.origin} ${e}${o.minimum.toString()}`}case"invalid_format":{const e=o;return e.format==="starts_with"?`Geçersiz metin: "${e.prefix}" ile başlamalı`:e.format==="ends_with"?`Geçersiz metin: "${e.suffix}" ile bitmeli`:e.format==="includes"?`Geçersiz metin: "${e.includes}" içermeli`:e.format==="regex"?`Geçersiz metin: ${e.pattern} desenine uymalı`:`Geçersiz ${r[e.format]??o.format}`}case"not_multiple_of":return`Geçersiz sayı: ${o.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${o.keys.length>1?"lar":""}: ${w(o.keys,", ")}`;case"invalid_key":return`${o.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${o.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function Bm(){return{localeError:Hm()}}const Fm=()=>{const t={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"число";case"object":{if(Array.isArray(e))return"масив";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"};return e=>{switch(e.code){case"invalid_type":return`Неправильні вхідні дані: очікується ${e.expected}, отримано ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Неправильні вхідні дані: очікується ${U(e.values[0])}`:`Неправильна опція: очікується одне з ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Занадто велике: очікується, що ${e.origin??"значення"} ${a.verb} ${i}${e.maximum.toString()} ${a.unit??"елементів"}`:`Занадто велике: очікується, що ${e.origin??"значення"} буде ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Занадто мале: очікується, що ${e.origin} ${a.verb} ${i}${e.minimum.toString()} ${a.unit}`:`Занадто мале: очікується, що ${e.origin} буде ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Неправильний рядок: повинен починатися з "${i.prefix}"`:i.format==="ends_with"?`Неправильний рядок: повинен закінчуватися на "${i.suffix}"`:i.format==="includes"?`Неправильний рядок: повинен містити "${i.includes}"`:i.format==="regex"?`Неправильний рядок: повинен відповідати шаблону ${i.pattern}`:`Неправильний ${o[i.format]??e.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${e.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${e.keys.length>1?"і":""}: ${w(e.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${e.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${e.origin}`;default:return"Неправильні вхідні дані"}}};function Jm(){return{localeError:Fm()}}const Vm=()=>{const t={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"نمبر";case"object":{if(Array.isArray(e))return"آرے";if(e===null)return"نل";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"};return e=>{switch(e.code){case"invalid_type":return`غلط ان پٹ: ${e.expected} متوقع تھا، ${r(e.input)} موصول ہوا`;case"invalid_value":return e.values.length===1?`غلط ان پٹ: ${U(e.values[0])} متوقع تھا`:`غلط آپشن: ${w(e.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`بہت بڑا: ${e.origin??"ویلیو"} کے ${i}${e.maximum.toString()} ${a.unit??"عناصر"} ہونے متوقع تھے`:`بہت بڑا: ${e.origin??"ویلیو"} کا ${i}${e.maximum.toString()} ہونا متوقع تھا`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`بہت چھوٹا: ${e.origin} کے ${i}${e.minimum.toString()} ${a.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${e.origin} کا ${i}${e.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{const i=e;return i.format==="starts_with"?`غلط سٹرنگ: "${i.prefix}" سے شروع ہونا چاہیے`:i.format==="ends_with"?`غلط سٹرنگ: "${i.suffix}" پر ختم ہونا چاہیے`:i.format==="includes"?`غلط سٹرنگ: "${i.includes}" شامل ہونا چاہیے`:i.format==="regex"?`غلط سٹرنگ: پیٹرن ${i.pattern} سے میچ ہونا چاہیے`:`غلط ${o[i.format]??e.format}`}case"not_multiple_of":return`غلط نمبر: ${e.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${e.keys.length>1?"ز":""}: ${w(e.keys,"، ")}`;case"invalid_key":return`${e.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${e.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function Wm(){return{localeError:Vm()}}const Gm=()=>{const t={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"số";case"object":{if(Array.isArray(e))return"mảng";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"};return e=>{switch(e.code){case"invalid_type":return`Đầu vào không hợp lệ: mong đợi ${e.expected}, nhận được ${r(e.input)}`;case"invalid_value":return e.values.length===1?`Đầu vào không hợp lệ: mong đợi ${U(e.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`Quá lớn: mong đợi ${e.origin??"giá trị"} ${a.verb} ${i}${e.maximum.toString()} ${a.unit??"phần tử"}`:`Quá lớn: mong đợi ${e.origin??"giá trị"} ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`Quá nhỏ: mong đợi ${e.origin} ${a.verb} ${i}${e.minimum.toString()} ${a.unit}`:`Quá nhỏ: mong đợi ${e.origin} ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`Chuỗi không hợp lệ: phải bắt đầu bằng "${i.prefix}"`:i.format==="ends_with"?`Chuỗi không hợp lệ: phải kết thúc bằng "${i.suffix}"`:i.format==="includes"?`Chuỗi không hợp lệ: phải bao gồm "${i.includes}"`:i.format==="regex"?`Chuỗi không hợp lệ: phải khớp với mẫu ${i.pattern}`:`${o[i.format]??e.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${e.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${w(e.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${e.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${e.origin}`;default:return"Đầu vào không hợp lệ"}}};function Km(){return{localeError:Gm()}}const Qm=()=>{const t={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"非数字(NaN)":"数字";case"object":{if(Array.isArray(e))return"数组";if(e===null)return"空值(null)";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"};return e=>{switch(e.code){case"invalid_type":return`无效输入:期望 ${e.expected},实际接收 ${r(e.input)}`;case"invalid_value":return e.values.length===1?`无效输入:期望 ${U(e.values[0])}`:`无效选项:期望以下之一 ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`数值过大:期望 ${e.origin??"值"} ${i}${e.maximum.toString()} ${a.unit??"个元素"}`:`数值过大:期望 ${e.origin??"值"} ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`数值过小:期望 ${e.origin} ${i}${e.minimum.toString()} ${a.unit}`:`数值过小:期望 ${e.origin} ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`无效字符串:必须以 "${i.prefix}" 开头`:i.format==="ends_with"?`无效字符串:必须以 "${i.suffix}" 结尾`:i.format==="includes"?`无效字符串:必须包含 "${i.includes}"`:i.format==="regex"?`无效字符串:必须满足正则表达式 ${i.pattern}`:`无效${o[i.format]??e.format}`}case"not_multiple_of":return`无效数字:必须是 ${e.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${w(e.keys,", ")}`;case"invalid_key":return`${e.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${e.origin} 中包含无效值(value)`;default:return"无效输入"}}};function Ym(){return{localeError:Qm()}}const Xm=()=>{const t={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function n(e){return t[e]??null}const r=e=>{const i=typeof e;switch(i){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return i},o={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"};return e=>{switch(e.code){case"invalid_type":return`無效的輸入值:預期為 ${e.expected},但收到 ${r(e.input)}`;case"invalid_value":return e.values.length===1?`無效的輸入值:預期為 ${U(e.values[0])}`:`無效的選項:預期為以下其中之一 ${w(e.values,"|")}`;case"too_big":{const i=e.inclusive?"<=":"<",a=n(e.origin);return a?`數值過大:預期 ${e.origin??"值"} 應為 ${i}${e.maximum.toString()} ${a.unit??"個元素"}`:`數值過大:預期 ${e.origin??"值"} 應為 ${i}${e.maximum.toString()}`}case"too_small":{const i=e.inclusive?">=":">",a=n(e.origin);return a?`數值過小:預期 ${e.origin} 應為 ${i}${e.minimum.toString()} ${a.unit}`:`數值過小:預期 ${e.origin} 應為 ${i}${e.minimum.toString()}`}case"invalid_format":{const i=e;return i.format==="starts_with"?`無效的字串:必須以 "${i.prefix}" 開頭`:i.format==="ends_with"?`無效的字串:必須以 "${i.suffix}" 結尾`:i.format==="includes"?`無效的字串:必須包含 "${i.includes}"`:i.format==="regex"?`無效的字串:必須符合格式 ${i.pattern}`:`無效的 ${o[i.format]??e.format}`}case"not_multiple_of":return`無效的數字:必須為 ${e.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${e.keys.length>1?"們":""}${w(e.keys,"、")}`;case"invalid_key":return`${e.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${e.origin} 中有無效的值`;default:return"無效的輸入值"}}};function ep(){return{localeError:Xm()}}const ei=Object.freeze(Object.defineProperty({__proto__:null,ar:Nd,az:Ed,be:Ud,ca:Rd,cs:Cd,de:Ld,en:Mc,eo:Fd,es:Vd,fa:Gd,fi:Qd,fr:Xd,frCA:tm,he:rm,hu:om,id:sm,it:lm,ja:dm,kh:pm,ko:gm,mk:vm,ms:ym,nl:_m,no:Sm,ota:Im,pl:Tm,ps:zm,pt:Om,ru:Pm,sl:Dm,sv:Zm,ta:Am,th:Mm,tr:Bm,ua:Jm,ur:Wm,vi:Km,zhCN:Ym,zhTW:ep},Symbol.toStringTag,{value:"Module"})),ti=Symbol("ZodOutput"),ni=Symbol("ZodInput");class ri{constructor(){this._map=new Map,this._idmap=new Map}add(n,...r){const o=r[0];if(this._map.set(n,o),o&&typeof o=="object"&&"id"in o){if(this._idmap.has(o.id))throw new Error(`ID ${o.id} already exists in the registry`);this._idmap.set(o.id,n)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(n){const r=this._map.get(n);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(n),this}get(n){const r=n._zod.parent;if(r){const o={...this.get(r)??{}};return delete o.id,{...o,...this._map.get(n)}}return this._map.get(n)}has(n){return this._map.has(n)}}function kn(){return new ri}const Ce=kn();function qc(t,n){return new t({type:"string",...h(n)})}function Hc(t,n){return new t({type:"string",coerce:!0,...h(n)})}function ii(t,n){return new t({type:"string",format:"email",check:"string_format",abort:!1,...h(n)})}function on(t,n){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...h(n)})}function oi(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...h(n)})}function ai(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...h(n)})}function si(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...h(n)})}function ci(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...h(n)})}function li(t,n){return new t({type:"string",format:"url",check:"string_format",abort:!1,...h(n)})}function ui(t,n){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...h(n)})}function di(t,n){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...h(n)})}function mi(t,n){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...h(n)})}function pi(t,n){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...h(n)})}function fi(t,n){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...h(n)})}function gi(t,n){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...h(n)})}function hi(t,n){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...h(n)})}function vi(t,n){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...h(n)})}function bi(t,n){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...h(n)})}function yi(t,n){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...h(n)})}function $i(t,n){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...h(n)})}function _i(t,n){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...h(n)})}function ki(t,n){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...h(n)})}function Si(t,n){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...h(n)})}function wi(t,n){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...h(n)})}const Ii={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Bc(t,n){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...h(n)})}function Fc(t,n){return new t({type:"string",format:"date",check:"string_format",...h(n)})}function Jc(t,n){return new t({type:"string",format:"time",check:"string_format",precision:null,...h(n)})}function Vc(t,n){return new t({type:"string",format:"duration",check:"string_format",...h(n)})}function Wc(t,n){return new t({type:"number",checks:[],...h(n)})}function Gc(t,n){return new t({type:"number",coerce:!0,checks:[],...h(n)})}function Kc(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...h(n)})}function Qc(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...h(n)})}function Yc(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...h(n)})}function Xc(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...h(n)})}function el(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...h(n)})}function tl(t,n){return new t({type:"boolean",...h(n)})}function nl(t,n){return new t({type:"boolean",coerce:!0,...h(n)})}function rl(t,n){return new t({type:"bigint",...h(n)})}function il(t,n){return new t({type:"bigint",coerce:!0,...h(n)})}function ol(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...h(n)})}function al(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...h(n)})}function sl(t,n){return new t({type:"symbol",...h(n)})}function cl(t,n){return new t({type:"undefined",...h(n)})}function ll(t,n){return new t({type:"null",...h(n)})}function ul(t){return new t({type:"any"})}function an(t){return new t({type:"unknown"})}function dl(t,n){return new t({type:"never",...h(n)})}function ml(t,n){return new t({type:"void",...h(n)})}function pl(t,n){return new t({type:"date",...h(n)})}function fl(t,n){return new t({type:"date",coerce:!0,...h(n)})}function gl(t,n){return new t({type:"nan",...h(n)})}function Le(t,n){return new Br({check:"less_than",...h(n),value:t,inclusive:!1})}function we(t,n){return new Br({check:"less_than",...h(n),value:t,inclusive:!0})}function Me(t,n){return new Fr({check:"greater_than",...h(n),value:t,inclusive:!1})}function be(t,n){return new Fr({check:"greater_than",...h(n),value:t,inclusive:!0})}function xi(t){return Me(0,t)}function zi(t){return Le(0,t)}function ji(t){return we(0,t)}function Ti(t){return be(0,t)}function st(t,n){return new bs({check:"multiple_of",...h(n),value:t})}function Ot(t,n){return new _s({check:"max_size",...h(n),maximum:t})}function ct(t,n){return new ks({check:"min_size",...h(n),minimum:t})}function Sn(t,n){return new Ss({check:"size_equals",...h(n),size:t})}function Et(t,n){return new ws({check:"max_length",...h(n),maximum:t})}function Ve(t,n){return new Is({check:"min_length",...h(n),minimum:t})}function Pt(t,n){return new xs({check:"length_equals",...h(n),length:t})}function wn(t,n){return new zs({check:"string_format",format:"regex",...h(n),pattern:t})}function In(t){return new js({check:"string_format",format:"lowercase",...h(t)})}function xn(t){return new Ts({check:"string_format",format:"uppercase",...h(t)})}function zn(t,n){return new Ns({check:"string_format",format:"includes",...h(n),includes:t})}function jn(t,n){return new Os({check:"string_format",format:"starts_with",...h(n),prefix:t})}function Tn(t,n){return new Es({check:"string_format",format:"ends_with",...h(n),suffix:t})}function Ni(t,n,r){return new Ps({check:"property",property:t,schema:n,...h(r)})}function Nn(t,n){return new Us({check:"mime_type",mime:t,...h(n)})}function qe(t){return new Ds({check:"overwrite",tx:t})}function On(t){return qe(n=>n.normalize(t))}function En(){return qe(t=>t.trim())}function Pn(){return qe(t=>t.toLowerCase())}function Un(){return qe(t=>t.toUpperCase())}function Oi(t,n,r){return new t({type:"array",element:n,...h(r)})}function tp(t,n,r){return new t({type:"union",options:n,...h(r)})}function np(t,n,r,o){return new t({type:"union",options:r,discriminator:n,...h(o)})}function rp(t,n,r){return new t({type:"intersection",left:n,right:r})}function hl(t,n,r,o){const e=r instanceof E,i=e?o:r,a=e?r:null;return new t({type:"tuple",items:n,rest:a,...h(i)})}function ip(t,n,r,o){return new t({type:"record",keyType:n,valueType:r,...h(o)})}function op(t,n,r,o){return new t({type:"map",keyType:n,valueType:r,...h(o)})}function ap(t,n,r){return new t({type:"set",valueType:n,...h(r)})}function sp(t,n,r){const o=Array.isArray(n)?Object.fromEntries(n.map(e=>[e,e])):n;return new t({type:"enum",entries:o,...h(r)})}function cp(t,n,r){return new t({type:"enum",entries:n,...h(r)})}function lp(t,n,r){return new t({type:"literal",values:Array.isArray(n)?n:[n],...h(r)})}function vl(t,n){return new t({type:"file",...h(n)})}function up(t,n){return new t({type:"transform",transform:n})}function dp(t,n){return new t({type:"optional",innerType:n})}function mp(t,n){return new t({type:"nullable",innerType:n})}function pp(t,n,r){return new t({type:"default",innerType:n,get defaultValue(){return typeof r=="function"?r():r}})}function fp(t,n,r){return new t({type:"nonoptional",innerType:n,...h(r)})}function gp(t,n){return new t({type:"success",innerType:n})}function hp(t,n,r){return new t({type:"catch",innerType:n,catchValue:typeof r=="function"?r:()=>r})}function vp(t,n,r){return new t({type:"pipe",in:n,out:r})}function bp(t,n){return new t({type:"readonly",innerType:n})}function yp(t,n,r){return new t({type:"template_literal",parts:n,...h(r)})}function $p(t,n){return new t({type:"lazy",getter:n})}function _p(t,n){return new t({type:"promise",innerType:n})}function bl(t,n,r){const o=h(r);return o.abort??(o.abort=!0),new t({type:"custom",check:"custom",fn:n,...o})}function yl(t,n,r){return new t({type:"custom",check:"custom",fn:n,...h(r)})}function $l(t,n){const r=h(n);let o=r.truthy??["true","1","yes","on","y","enabled"],e=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(o=o.map(v=>typeof v=="string"?v.toLowerCase():v),e=e.map(v=>typeof v=="string"?v.toLowerCase():v));const i=new Set(o),a=new Set(e),s=t.Pipe??Xr,c=t.Boolean??Wr,u=t.String??Nt,b=t.Transform??Yr,y=new b({type:"transform",transform:(v,T)=>{let x=v;return r.case!=="sensitive"&&(x=x.toLowerCase()),i.has(x)?!0:a.has(x)?!1:(T.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:T.value,inst:y}),{})},error:r.error}),_=new s({type:"pipe",in:new u({type:"string",error:r.error}),out:y,error:r.error});return new s({type:"pipe",in:_,out:new c({type:"boolean",error:r.error}),error:r.error})}function _l(t,n,r,o={}){const e=h(o),i={...h(o),check:"string_format",type:"string",format:n,fn:typeof r=="function"?r:s=>r.test(s),...e};return r instanceof RegExp&&(i.pattern=r),new t(i)}class kl{constructor(n){this._def=n,this.def=n}implement(n){if(typeof n!="function")throw new Error("implement() must be called with a function");const r=(...o)=>{const e=this._def.input?_r(this._def.input,o,void 0,{callee:r}):o;if(!Array.isArray(e))throw new Error("Invalid arguments schema: not an array or tuple schema.");const i=n(...e);return this._def.output?_r(this._def.output,i,void 0,{callee:r}):i};return r}implementAsync(n){if(typeof n!="function")throw new Error("implement() must be called with a function");const r=async(...o)=>{const e=this._def.input?await kr(this._def.input,o,void 0,{callee:r}):o;if(!Array.isArray(e))throw new Error("Invalid arguments schema: not an array or tuple schema.");const i=await n(...e);return this._def.output?kr(this._def.output,i,void 0,{callee:r}):i};return r}input(...n){const r=this.constructor;return Array.isArray(n[0])?new r({type:"function",input:new _n({type:"tuple",items:n[0],rest:n[1]}),output:this._def.output}):new r({type:"function",input:n[0],output:this._def.output})}output(n){const r=this.constructor;return new r({type:"function",input:this._def.input,output:n})}}function Ei(t){return new kl({type:"function",input:Array.isArray(t==null?void 0:t.input)?hl(_n,t==null?void 0:t.input):(t==null?void 0:t.input)??Oi(Kr,an(rn)),output:(t==null?void 0:t.output)??an(rn)})}class wr{constructor(n){this.counter=0,this.metadataRegistry=(n==null?void 0:n.metadata)??Ce,this.target=(n==null?void 0:n.target)??"draft-2020-12",this.unrepresentable=(n==null?void 0:n.unrepresentable)??"throw",this.override=(n==null?void 0:n.override)??(()=>{}),this.io=(n==null?void 0:n.io)??"output",this.seen=new Map}process(n,r={path:[],schemaPath:[]}){var y,_,I;var o;const e=n._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(n);if(a)return a.count++,r.schemaPath.includes(n)&&(a.cycle=r.path),a.schema;const s={schema:{},count:1,cycle:void 0,path:r.path};this.seen.set(n,s);const c=(_=(y=n._zod).toJSONSchema)==null?void 0:_.call(y);if(c)s.schema=c;else{const v={...r,schemaPath:[...r.schemaPath,n],path:r.path},T=n._zod.parent;if(T)s.ref=T,this.process(T,v),this.seen.get(T).isParent=!0;else{const x=s.schema;switch(e.type){case"string":{const f=x;f.type="string";const{minimum:k,maximum:$,format:z,patterns:N,contentEncoding:L}=n._zod.bag;if(typeof k=="number"&&(f.minLength=k),typeof $=="number"&&(f.maxLength=$),z&&(f.format=i[z]??z,f.format===""&&delete f.format),L&&(f.contentEncoding=L),N&&N.size>0){const R=[...N];R.length===1?f.pattern=R[0].source:R.length>1&&(s.schema.allOf=[...R.map(re=>({...this.target==="draft-7"?{type:"string"}:{},pattern:re.source}))])}break}case"number":{const f=x,{minimum:k,maximum:$,format:z,multipleOf:N,exclusiveMaximum:L,exclusiveMinimum:R}=n._zod.bag;typeof z=="string"&&z.includes("int")?f.type="integer":f.type="number",typeof R=="number"&&(f.exclusiveMinimum=R),typeof k=="number"&&(f.minimum=k,typeof R=="number"&&(R>=k?delete f.minimum:delete f.exclusiveMinimum)),typeof L=="number"&&(f.exclusiveMaximum=L),typeof $=="number"&&(f.maximum=$,typeof L=="number"&&(L<=$?delete f.maximum:delete f.exclusiveMaximum)),typeof N=="number"&&(f.multipleOf=N);break}case"boolean":{const f=x;f.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{x.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{x.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const f=x,{minimum:k,maximum:$}=n._zod.bag;typeof k=="number"&&(f.minItems=k),typeof $=="number"&&(f.maxItems=$),f.type="array",f.items=this.process(e.element,{...v,path:[...v.path,"items"]});break}case"object":{const f=x;f.type="object",f.properties={};const k=e.shape;for(const N in k)f.properties[N]=this.process(k[N],{...v,path:[...v.path,"properties",N]});const $=new Set(Object.keys(k)),z=new Set([...$].filter(N=>{const L=e.shape[N]._zod;return this.io==="input"?L.optin===void 0:L.optout===void 0}));z.size>0&&(f.required=Array.from(z)),((I=e.catchall)==null?void 0:I._zod.def.type)==="never"?f.additionalProperties=!1:e.catchall?e.catchall&&(f.additionalProperties=this.process(e.catchall,{...v,path:[...v.path,"additionalProperties"]})):this.io==="output"&&(f.additionalProperties=!1);break}case"union":{const f=x;f.anyOf=e.options.map((k,$)=>this.process(k,{...v,path:[...v.path,"anyOf",$]}));break}case"intersection":{const f=x,k=this.process(e.left,{...v,path:[...v.path,"allOf",0]}),$=this.process(e.right,{...v,path:[...v.path,"allOf",1]}),z=L=>"allOf"in L&&Object.keys(L).length===1,N=[...z(k)?k.allOf:[k],...z($)?$.allOf:[$]];f.allOf=N;break}case"tuple":{const f=x;f.type="array";const k=e.items.map((N,L)=>this.process(N,{...v,path:[...v.path,"prefixItems",L]}));if(this.target==="draft-2020-12"?f.prefixItems=k:f.items=k,e.rest){const N=this.process(e.rest,{...v,path:[...v.path,"items"]});this.target==="draft-2020-12"?f.items=N:f.additionalItems=N}e.rest&&(f.items=this.process(e.rest,{...v,path:[...v.path,"items"]}));const{minimum:$,maximum:z}=n._zod.bag;typeof $=="number"&&(f.minItems=$),typeof z=="number"&&(f.maxItems=z);break}case"record":{const f=x;f.type="object",f.propertyNames=this.process(e.keyType,{...v,path:[...v.path,"propertyNames"]}),f.additionalProperties=this.process(e.valueType,{...v,path:[...v.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const f=x,k=Er(e.entries);k.every($=>typeof $=="number")&&(f.type="number"),k.every($=>typeof $=="string")&&(f.type="string"),f.enum=k;break}case"literal":{const f=x,k=[];for(const $ of e.values)if($===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof $=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");k.push(Number($))}else k.push($);if(k.length!==0)if(k.length===1){const $=k[0];f.type=$===null?"null":typeof $,f.const=$}else k.every($=>typeof $=="number")&&(f.type="number"),k.every($=>typeof $=="string")&&(f.type="string"),k.every($=>typeof $=="boolean")&&(f.type="string"),k.every($=>$===null)&&(f.type="null"),f.enum=k;break}case"file":{const f=x,k={type:"string",format:"binary",contentEncoding:"binary"},{minimum:$,maximum:z,mime:N}=n._zod.bag;$!==void 0&&(k.minLength=$),z!==void 0&&(k.maxLength=z),N?N.length===1?(k.contentMediaType=N[0],Object.assign(f,k)):f.anyOf=N.map(L=>({...k,contentMediaType:L})):Object.assign(f,k);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const f=this.process(e.innerType,v);x.anyOf=[f,{type:"null"}];break}case"nonoptional":{this.process(e.innerType,v),s.ref=e.innerType;break}case"success":{const f=x;f.type="boolean";break}case"default":{this.process(e.innerType,v),s.ref=e.innerType,x.default=JSON.parse(JSON.stringify(e.defaultValue));break}case"prefault":{this.process(e.innerType,v),s.ref=e.innerType,this.io==="input"&&(x._prefault=JSON.parse(JSON.stringify(e.defaultValue)));break}case"catch":{this.process(e.innerType,v),s.ref=e.innerType;let f;try{f=e.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}x.default=f;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const f=x,k=n._zod.pattern;if(!k)throw new Error("Pattern not found in template literal");f.type="string",f.pattern=k.source;break}case"pipe":{const f=this.io==="input"?e.in._zod.def.type==="transform"?e.out:e.in:e.out;this.process(f,v),s.ref=f;break}case"readonly":{this.process(e.innerType,v),s.ref=e.innerType,x.readOnly=!0;break}case"promise":{this.process(e.innerType,v),s.ref=e.innerType;break}case"optional":{this.process(e.innerType,v),s.ref=e.innerType;break}case"lazy":{const f=n._zod.innerType;this.process(f,v),s.ref=f;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}}}}const u=this.metadataRegistry.get(n);return u&&Object.assign(s.schema,u),this.io==="input"&&ie(n)&&(delete s.schema.examples,delete s.schema.default),this.io==="input"&&s.schema._prefault&&((o=s.schema).default??(o.default=s.schema._prefault)),delete s.schema._prefault,this.seen.get(n).schema}emit(n,r){var b,y,_,I,v,T;const o={cycles:(r==null?void 0:r.cycles)??"ref",reused:(r==null?void 0:r.reused)??"inline",external:(r==null?void 0:r.external)??void 0},e=this.seen.get(n);if(!e)throw new Error("Unprocessed schema. This is a bug in Zod.");const i=x=>{var N;const f=this.target==="draft-2020-12"?"$defs":"definitions";if(o.external){const L=(N=o.external.registry.get(x[0]))==null?void 0:N.id,R=o.external.uri??(ue=>ue);if(L)return{ref:R(L)};const re=x[1].defId??x[1].schema.id??`schema${this.counter++}`;return x[1].defId=re,{defId:re,ref:`${R("__shared")}#/${f}/${re}`}}if(x[1]===e)return{ref:"#"};const $=`#/${f}/`,z=x[1].schema.id??`__schema${this.counter++}`;return{defId:z,ref:$+z}},a=x=>{if(x[1].schema.$ref)return;const f=x[1],{ref:k,defId:$}=i(x);f.def={...f.schema},$&&(f.defId=$);const z=f.schema;for(const N in z)delete z[N];z.$ref=k};if(o.cycles==="throw")for(const x of this.seen.entries()){const f=x[1];if(f.cycle)throw new Error(`Cycle detected: #/${(b=f.cycle)==null?void 0:b.join("/")}/<root>
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const x of this.seen.entries()){const f=x[1];if(n===x[0]){a(x);continue}if(o.external){const $=(y=o.external.registry.get(x[0]))==null?void 0:y.id;if(n!==x[0]&&$){a(x);continue}}if((_=this.metadataRegistry.get(x[0]))==null?void 0:_.id){a(x);continue}if(f.cycle){a(x);continue}if(f.count>1&&o.reused==="ref"){a(x);continue}}const s=(x,f)=>{const k=this.seen.get(x),$=k.def??k.schema,z={...$};if(k.ref===null)return;const N=k.ref;if(k.ref=null,N){s(N,f);const L=this.seen.get(N).schema;L.$ref&&f.target==="draft-7"?($.allOf=$.allOf??[],$.allOf.push(L)):(Object.assign($,L),Object.assign($,z))}k.isParent||this.override({zodSchema:x,jsonSchema:$,path:k.path??[]})};for(const x of[...this.seen.entries()].reverse())s(x[0],{target:this.target});const c={};if(this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),(I=o.external)!=null&&I.uri){const x=(v=o.external.registry.get(n))==null?void 0:v.id;if(!x)throw new Error("Schema is missing an `id` property");c.$id=o.external.uri(x)}Object.assign(c,e.def);const u=((T=o.external)==null?void 0:T.defs)??{};for(const x of this.seen.entries()){const f=x[1];f.def&&f.defId&&(u[f.defId]=f.def)}o.external||Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}}function Pi(t,n){if(t instanceof ri){const o=new wr(n),e={};for(const s of t._idmap.entries()){const[c,u]=s;o.process(u)}const i={},a={registry:t,uri:n==null?void 0:n.uri,defs:e};for(const s of t._idmap.entries()){const[c,u]=s;i[c]=o.emit(u,{...n,external:a})}if(Object.keys(e).length>0){const s=o.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[s]:e}}return{schemas:i}}const r=new wr(n);return r.process(t),r.emit(t,n)}function ie(t,n){const r=n??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);const e=t._zod.def;switch(e.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return ie(e.element,r);case"object":{for(const i in e.shape)if(ie(e.shape[i],r))return!0;return!1}case"union":{for(const i of e.options)if(ie(i,r))return!0;return!1}case"intersection":return ie(e.left,r)||ie(e.right,r);case"tuple":{for(const i of e.items)if(ie(i,r))return!0;return!!(e.rest&&ie(e.rest,r))}case"record":return ie(e.keyType,r)||ie(e.valueType,r);case"map":return ie(e.keyType,r)||ie(e.valueType,r);case"set":return ie(e.valueType,r);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return ie(e.innerType,r);case"lazy":return ie(e.getter(),r);case"default":return ie(e.innerType,r);case"prefault":return ie(e.innerType,r);case"custom":return!1;case"transform":return!0;case"pipe":return ie(e.in,r)||ie(e.out,r);case"success":return!1;case"catch":return!1}throw new Error(`Unknown schema type: ${e.type}`)}const kp=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Sl=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:gc,$ZodArray:Kr,$ZodAsyncError:it,$ZodBase64:rc,$ZodBase64URL:oc,$ZodBigInt:Gr,$ZodBigIntFormat:dc,$ZodBoolean:Wr,$ZodCIDRv4:tc,$ZodCIDRv6:nc,$ZodCUID:Bs,$ZodCUID2:Fs,$ZodCatch:Uc,$ZodCheck:ne,$ZodCheckBigIntFormat:$s,$ZodCheckEndsWith:Es,$ZodCheckGreaterThan:Fr,$ZodCheckIncludes:Ns,$ZodCheckLengthEquals:xs,$ZodCheckLessThan:Br,$ZodCheckLowerCase:js,$ZodCheckMaxLength:ws,$ZodCheckMaxSize:_s,$ZodCheckMimeType:Us,$ZodCheckMinLength:Is,$ZodCheckMinSize:ks,$ZodCheckMultipleOf:bs,$ZodCheckNumberFormat:ys,$ZodCheckOverwrite:Ds,$ZodCheckProperty:Ps,$ZodCheckRegex:zs,$ZodCheckSizeEquals:Ss,$ZodCheckStartsWith:Os,$ZodCheckStringFormat:Tt,$ZodCheckUpperCase:Ts,$ZodCustom:Lc,$ZodCustomStringFormat:lc,$ZodDate:bc,$ZodDefault:Nc,$ZodDiscriminatedUnion:$c,$ZodE164:ac,$ZodEmail:Ls,$ZodEmoji:qs,$ZodEnum:Ic,$ZodError:Ur,$ZodFile:zc,$ZodFunction:kl,$ZodGUID:Cs,$ZodIPv4:Xs,$ZodIPv6:ec,$ZodISODate:Ks,$ZodISODateTime:Gs,$ZodISODuration:Ys,$ZodISOTime:Qs,$ZodIntersection:_c,$ZodJWT:cc,$ZodKSUID:Ws,$ZodLazy:Ac,$ZodLiteral:xc,$ZodMap:Sc,$ZodNaN:Dc,$ZodNanoID:Hs,$ZodNever:hc,$ZodNonOptional:Ec,$ZodNull:fc,$ZodNullable:Tc,$ZodNumber:Vr,$ZodNumberFormat:uc,$ZodObject:yc,$ZodOptional:jc,$ZodPipe:Xr,$ZodPrefault:Oc,$ZodPromise:Cc,$ZodReadonly:Rc,$ZodRealError:jt,$ZodRecord:kc,$ZodRegistry:ri,$ZodSet:wc,$ZodString:Nt,$ZodStringFormat:Y,$ZodSuccess:Pc,$ZodSymbol:mc,$ZodTemplateLiteral:Zc,$ZodTransform:Yr,$ZodTuple:_n,$ZodType:E,$ZodULID:Js,$ZodURL:Ms,$ZodUUID:As,$ZodUndefined:pc,$ZodUnion:Qr,$ZodUnknown:rn,$ZodVoid:vc,$ZodXID:Vs,$brand:Or,$constructor:d,$input:ni,$output:ti,Doc:Rs,JSONSchema:kp,JSONSchemaGenerator:wr,NEVER:Nr,TimePrecision:Ii,_any:ul,_array:Oi,_base64:_i,_base64url:ki,_bigint:rl,_boolean:tl,_catch:hp,_cidrv4:yi,_cidrv6:$i,_coercedBigint:il,_coercedBoolean:nl,_coercedDate:fl,_coercedNumber:Gc,_coercedString:Hc,_cuid:mi,_cuid2:pi,_custom:bl,_date:pl,_default:pp,_discriminatedUnion:np,_e164:Si,_email:ii,_emoji:ui,_endsWith:Tn,_enum:sp,_file:vl,_float32:Qc,_float64:Yc,_gt:Me,_gte:be,_guid:on,_includes:zn,_int:Kc,_int32:Xc,_int64:ol,_intersection:rp,_ipv4:vi,_ipv6:bi,_isoDate:Fc,_isoDateTime:Bc,_isoDuration:Vc,_isoTime:Jc,_jwt:wi,_ksuid:hi,_lazy:$p,_length:Pt,_literal:lp,_lowercase:In,_lt:Le,_lte:we,_map:op,_max:we,_maxLength:Et,_maxSize:Ot,_mime:Nn,_min:be,_minLength:Ve,_minSize:ct,_multipleOf:st,_nan:gl,_nanoid:di,_nativeEnum:cp,_negative:zi,_never:dl,_nonnegative:Ti,_nonoptional:fp,_nonpositive:ji,_normalize:On,_null:ll,_nullable:mp,_number:Wc,_optional:dp,_overwrite:qe,_parse:Zr,_parseAsync:Cr,_pipe:vp,_positive:xi,_promise:_p,_property:Ni,_readonly:bp,_record:ip,_refine:yl,_regex:wn,_safeParse:Ar,_safeParseAsync:Mr,_set:ap,_size:Sn,_startsWith:jn,_string:qc,_stringFormat:_l,_stringbool:$l,_success:gp,_symbol:sl,_templateLiteral:yp,_toLowerCase:Pn,_toUpperCase:Un,_transform:up,_trim:En,_tuple:hl,_uint32:el,_uint64:al,_ulid:fi,_undefined:cl,_union:tp,_unknown:an,_uppercase:xn,_url:li,_uuid:oi,_uuidv4:ai,_uuidv6:si,_uuidv7:ci,_void:ml,_xid:gi,clone:Ee,config:se,flattenError:yn,formatError:$n,function:Ei,globalConfig:tn,globalRegistry:Ce,isValidBase64:Jr,isValidBase64URL:ic,isValidJWT:sc,locales:ei,parse:_r,parseAsync:kr,prettifyError:Rr,regexes:Hr,registry:kn,safeParse:Lr,safeParseAsync:Ca,toDotPath:Za,toJSONSchema:Pi,treeifyError:Dr,util:yd,version:Zs},Symbol.toStringTag,{value:"Module"}));function Ui(t){return!!t._zod}function wl(t,n){return Ui(t)?Lr(t,n):t.safeParse(n)}function Sp(t){var r,o;if(!t)return;let n;if(Ui(t)?n=(o=(r=t._zod)==null?void 0:r.def)==null?void 0:o.shape:n=t.shape,!!n){if(typeof n=="function")try{return n()}catch{return}return n}}function wp(t){var e;if(Ui(t)){const a=(e=t._zod)==null?void 0:e.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.values[0]}}const r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}const o=t.value;if(o!==void 0)return o}const Dn=d("ZodISODateTime",(t,n)=>{Gs.init(t,n),X.init(t,n)});function Di(t){return Bc(Dn,t)}const Rn=d("ZodISODate",(t,n)=>{Ks.init(t,n),X.init(t,n)});function Il(t){return Fc(Rn,t)}const Zn=d("ZodISOTime",(t,n)=>{Qs.init(t,n),X.init(t,n)});function xl(t){return Jc(Zn,t)}const Cn=d("ZodISODuration",(t,n)=>{Ys.init(t,n),X.init(t,n)});function zl(t){return Vc(Cn,t)}const jl=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Rn,ZodISODateTime:Dn,ZodISODuration:Cn,ZodISOTime:Zn,date:Il,datetime:Di,duration:zl,time:xl},Symbol.toStringTag,{value:"Module"})),Tl=(t,n)=>{Ur.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>$n(t,r)},flatten:{value:r=>yn(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},Nl=d("ZodError",Tl),gt=d("ZodError",Tl,{Parent:Error}),Ri=Zr(gt),Zi=Cr(gt),Ci=Ar(gt),Ai=Mr(gt),D=d("ZodType",(t,n)=>(E.init(t,n),t.def=n,Object.defineProperty(t,"_def",{value:n}),t.check=(...r)=>t.clone({...n,checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),t.clone=(r,o)=>Ee(t,r,o),t.brand=()=>t,t.register=(r,o)=>(r.add(t,o),t),t.parse=(r,o)=>Ri(t,r,o,{callee:t.parse}),t.safeParse=(r,o)=>Ci(t,r,o),t.parseAsync=async(r,o)=>Zi(t,r,o,{callee:t.parseAsync}),t.safeParseAsync=async(r,o)=>Ai(t,r,o),t.spa=t.safeParseAsync,t.refine=(r,o)=>t.check(_o(r,o)),t.superRefine=r=>t.check(ko(r)),t.overwrite=r=>t.check(qe(r)),t.optional=()=>Q(t),t.nullable=()=>wt(t),t.nullish=()=>Q(wt(t)),t.nonoptional=r=>so(t,r),t.array=()=>j(t),t.or=r=>A([t,r]),t.and=r=>At(t,r),t.transform=r=>It(t,ur(r)),t.default=r=>io(t,r),t.prefault=r=>ao(t,r),t.catch=r=>uo(t,r),t.pipe=r=>It(t,r),t.readonly=()=>fo(t),t.describe=r=>{const o=t.clone();return Ce.add(o,{description:r}),o},Object.defineProperty(t,"description",{get(){var r;return(r=Ce.get(t))==null?void 0:r.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Ce.get(t);const o=t.clone();return Ce.add(o,r[0]),o},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),An=d("_ZodString",(t,n)=>{Nt.init(t,n),D.init(t,n);const r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...o)=>t.check(wn(...o)),t.includes=(...o)=>t.check(zn(...o)),t.startsWith=(...o)=>t.check(jn(...o)),t.endsWith=(...o)=>t.check(Tn(...o)),t.min=(...o)=>t.check(Ve(...o)),t.max=(...o)=>t.check(Et(...o)),t.length=(...o)=>t.check(Pt(...o)),t.nonempty=(...o)=>t.check(Ve(1,...o)),t.lowercase=o=>t.check(In(o)),t.uppercase=o=>t.check(xn(o)),t.trim=()=>t.check(En()),t.normalize=(...o)=>t.check(On(...o)),t.toLowerCase=()=>t.check(Pn()),t.toUpperCase=()=>t.check(Un())}),Ut=d("ZodString",(t,n)=>{Nt.init(t,n),An.init(t,n),t.email=r=>t.check(ii(Ln,r)),t.url=r=>t.check(li(Mn,r)),t.jwt=r=>t.check(wi(nr,r)),t.emoji=r=>t.check(ui(qn,r)),t.guid=r=>t.check(on(kt,r)),t.uuid=r=>t.check(oi(Ue,r)),t.uuidv4=r=>t.check(ai(Ue,r)),t.uuidv6=r=>t.check(si(Ue,r)),t.uuidv7=r=>t.check(ci(Ue,r)),t.nanoid=r=>t.check(di(Hn,r)),t.guid=r=>t.check(on(kt,r)),t.cuid=r=>t.check(mi(Bn,r)),t.cuid2=r=>t.check(pi(Fn,r)),t.ulid=r=>t.check(fi(Jn,r)),t.base64=r=>t.check(_i(Xn,r)),t.base64url=r=>t.check(ki(er,r)),t.xid=r=>t.check(gi(Vn,r)),t.ksuid=r=>t.check(hi(Wn,r)),t.ipv4=r=>t.check(vi(Gn,r)),t.ipv6=r=>t.check(bi(Kn,r)),t.cidrv4=r=>t.check(yi(Qn,r)),t.cidrv6=r=>t.check($i(Yn,r)),t.e164=r=>t.check(Si(tr,r)),t.datetime=r=>t.check(Di(r)),t.date=r=>t.check(Il(r)),t.time=r=>t.check(xl(r)),t.duration=r=>t.check(zl(r))});function m(t){return qc(Ut,t)}const X=d("ZodStringFormat",(t,n)=>{Y.init(t,n),An.init(t,n)}),Ln=d("ZodEmail",(t,n)=>{Ls.init(t,n),X.init(t,n)});function Ol(t){return ii(Ln,t)}const kt=d("ZodGUID",(t,n)=>{Cs.init(t,n),X.init(t,n)});function El(t){return on(kt,t)}const Ue=d("ZodUUID",(t,n)=>{As.init(t,n),X.init(t,n)});function Pl(t){return oi(Ue,t)}function Ul(t){return ai(Ue,t)}function Dl(t){return si(Ue,t)}function Rl(t){return ci(Ue,t)}const Mn=d("ZodURL",(t,n)=>{Ms.init(t,n),X.init(t,n)});function Zl(t){return li(Mn,t)}const qn=d("ZodEmoji",(t,n)=>{qs.init(t,n),X.init(t,n)});function Cl(t){return ui(qn,t)}const Hn=d("ZodNanoID",(t,n)=>{Hs.init(t,n),X.init(t,n)});function Al(t){return di(Hn,t)}const Bn=d("ZodCUID",(t,n)=>{Bs.init(t,n),X.init(t,n)});function Ll(t){return mi(Bn,t)}const Fn=d("ZodCUID2",(t,n)=>{Fs.init(t,n),X.init(t,n)});function Ml(t){return pi(Fn,t)}const Jn=d("ZodULID",(t,n)=>{Js.init(t,n),X.init(t,n)});function ql(t){return fi(Jn,t)}const Vn=d("ZodXID",(t,n)=>{Vs.init(t,n),X.init(t,n)});function Hl(t){return gi(Vn,t)}const Wn=d("ZodKSUID",(t,n)=>{Ws.init(t,n),X.init(t,n)});function Bl(t){return hi(Wn,t)}const Gn=d("ZodIPv4",(t,n)=>{Xs.init(t,n),X.init(t,n)});function Fl(t){return vi(Gn,t)}const Kn=d("ZodIPv6",(t,n)=>{ec.init(t,n),X.init(t,n)});function Jl(t){return bi(Kn,t)}const Qn=d("ZodCIDRv4",(t,n)=>{tc.init(t,n),X.init(t,n)});function Vl(t){return yi(Qn,t)}const Yn=d("ZodCIDRv6",(t,n)=>{nc.init(t,n),X.init(t,n)});function Wl(t){return $i(Yn,t)}const Xn=d("ZodBase64",(t,n)=>{rc.init(t,n),X.init(t,n)});function Gl(t){return _i(Xn,t)}const er=d("ZodBase64URL",(t,n)=>{oc.init(t,n),X.init(t,n)});function Kl(t){return ki(er,t)}const tr=d("ZodE164",(t,n)=>{ac.init(t,n),X.init(t,n)});function Ql(t){return Si(tr,t)}const nr=d("ZodJWT",(t,n)=>{cc.init(t,n),X.init(t,n)});function Yl(t){return wi(nr,t)}const Li=d("ZodCustomStringFormat",(t,n)=>{lc.init(t,n),X.init(t,n)});function Xl(t,n,r={}){return _l(Li,t,n,r)}const Dt=d("ZodNumber",(t,n)=>{Vr.init(t,n),D.init(t,n),t.gt=(o,e)=>t.check(Me(o,e)),t.gte=(o,e)=>t.check(be(o,e)),t.min=(o,e)=>t.check(be(o,e)),t.lt=(o,e)=>t.check(Le(o,e)),t.lte=(o,e)=>t.check(we(o,e)),t.max=(o,e)=>t.check(we(o,e)),t.int=o=>t.check(sn(o)),t.safe=o=>t.check(sn(o)),t.positive=o=>t.check(Me(0,o)),t.nonnegative=o=>t.check(be(0,o)),t.negative=o=>t.check(Le(0,o)),t.nonpositive=o=>t.check(we(0,o)),t.multipleOf=(o,e)=>t.check(st(o,e)),t.step=(o,e)=>t.check(st(o,e)),t.finite=()=>t;const r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function P(t){return Wc(Dt,t)}const Qe=d("ZodNumberFormat",(t,n)=>{uc.init(t,n),Dt.init(t,n)});function sn(t){return Kc(Qe,t)}function eu(t){return Qc(Qe,t)}function tu(t){return Yc(Qe,t)}function nu(t){return Xc(Qe,t)}function ru(t){return el(Qe,t)}const Rt=d("ZodBoolean",(t,n)=>{Wr.init(t,n),D.init(t,n)});function V(t){return tl(Rt,t)}const Zt=d("ZodBigInt",(t,n)=>{Gr.init(t,n),D.init(t,n),t.gte=(o,e)=>t.check(be(o,e)),t.min=(o,e)=>t.check(be(o,e)),t.gt=(o,e)=>t.check(Me(o,e)),t.gte=(o,e)=>t.check(be(o,e)),t.min=(o,e)=>t.check(be(o,e)),t.lt=(o,e)=>t.check(Le(o,e)),t.lte=(o,e)=>t.check(we(o,e)),t.max=(o,e)=>t.check(we(o,e)),t.positive=o=>t.check(Me(BigInt(0),o)),t.negative=o=>t.check(Le(BigInt(0),o)),t.nonpositive=o=>t.check(we(BigInt(0),o)),t.nonnegative=o=>t.check(be(BigInt(0),o)),t.multipleOf=(o,e)=>t.check(st(o,e));const r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function iu(t){return rl(Zt,t)}const rr=d("ZodBigIntFormat",(t,n)=>{dc.init(t,n),Zt.init(t,n)});function ou(t){return ol(rr,t)}function au(t){return al(rr,t)}const Mi=d("ZodSymbol",(t,n)=>{mc.init(t,n),D.init(t,n)});function su(t){return sl(Mi,t)}const qi=d("ZodUndefined",(t,n)=>{pc.init(t,n),D.init(t,n)});function St(t){return cl(qi,t)}const Hi=d("ZodNull",(t,n)=>{fc.init(t,n),D.init(t,n)});function ir(t){return ll(Hi,t)}const Bi=d("ZodAny",(t,n)=>{gc.init(t,n),D.init(t,n)});function cu(){return ul(Bi)}const Fi=d("ZodUnknown",(t,n)=>{rn.init(t,n),D.init(t,n)});function W(){return an(Fi)}const Ji=d("ZodNever",(t,n)=>{hc.init(t,n),D.init(t,n)});function We(t){return dl(Ji,t)}const Vi=d("ZodVoid",(t,n)=>{vc.init(t,n),D.init(t,n)});function lu(t){return ml(Vi,t)}const or=d("ZodDate",(t,n)=>{bc.init(t,n),D.init(t,n),t.min=(o,e)=>t.check(be(o,e)),t.max=(o,e)=>t.check(we(o,e));const r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function uu(t){return pl(or,t)}const Wi=d("ZodArray",(t,n)=>{Kr.init(t,n),D.init(t,n),t.element=n.element,t.min=(r,o)=>t.check(Ve(r,o)),t.nonempty=r=>t.check(Ve(1,r)),t.max=(r,o)=>t.check(Et(r,o)),t.length=(r,o)=>t.check(Pt(r,o)),t.unwrap=()=>t.element});function j(t,n){return Oi(Wi,t,n)}function du(t){const n=t._zod.def.shape;return l(Object.keys(n))}const Ct=d("ZodObject",(t,n)=>{yc.init(t,n),D.init(t,n),B(t,"shape",()=>n.shape),t.keyof=()=>ge(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:W()}),t.loose=()=>t.clone({...t._zod.def,catchall:W()}),t.strict=()=>t.clone({...t._zod.def,catchall:We()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Ea(t,r),t.merge=r=>Pa(t,r),t.pick=r=>Na(t,r),t.omit=r=>Oa(t,r),t.partial=(...r)=>Ua(dr,t,r[0]),t.required=(...r)=>Da(mr,t,r[0])});function p(t,n){const r={type:"object",get shape(){return ft(this,"shape",{...t}),this.shape},...h(n)};return new Ct(r)}function mu(t,n){return new Ct({type:"object",get shape(){return ft(this,"shape",{...t}),this.shape},catchall:We(),...h(n)})}function pe(t,n){return new Ct({type:"object",get shape(){return ft(this,"shape",{...t}),this.shape},catchall:W(),...h(n)})}const ar=d("ZodUnion",(t,n)=>{Qr.init(t,n),D.init(t,n),t.options=n.options});function A(t,n){return new ar({type:"union",options:t,...h(n)})}const Gi=d("ZodDiscriminatedUnion",(t,n)=>{ar.init(t,n),$c.init(t,n)});function sr(t,n,r){return new Gi({type:"union",options:n,discriminator:t,...h(r)})}const Ki=d("ZodIntersection",(t,n)=>{_c.init(t,n),D.init(t,n)});function At(t,n){return new Ki({type:"intersection",left:t,right:n})}const Qi=d("ZodTuple",(t,n)=>{_n.init(t,n),D.init(t,n),t.rest=r=>t.clone({...t._zod.def,rest:r})});function pu(t,n,r){const o=n instanceof E,e=o?r:n,i=o?n:null;return new Qi({type:"tuple",items:t,rest:i,...h(e)})}const cr=d("ZodRecord",(t,n)=>{kc.init(t,n),D.init(t,n),t.keyType=n.keyType,t.valueType=n.valueType});function H(t,n,r){return new cr({type:"record",keyType:t,valueType:n,...h(r)})}function fu(t,n,r){return new cr({type:"record",keyType:A([t,We()]),valueType:n,...h(r)})}const Yi=d("ZodMap",(t,n)=>{Sc.init(t,n),D.init(t,n),t.keyType=n.keyType,t.valueType=n.valueType});function gu(t,n,r){return new Yi({type:"map",keyType:t,valueType:n,...h(r)})}const Xi=d("ZodSet",(t,n)=>{wc.init(t,n),D.init(t,n),t.min=(...r)=>t.check(ct(...r)),t.nonempty=r=>t.check(ct(1,r)),t.max=(...r)=>t.check(Ot(...r)),t.size=(...r)=>t.check(Sn(...r))});function hu(t,n){return new Xi({type:"set",valueType:t,...h(n)})}const lt=d("ZodEnum",(t,n)=>{Ic.init(t,n),D.init(t,n),t.enum=n.entries,t.options=Object.values(n.entries);const r=new Set(Object.keys(n.entries));t.extract=(o,e)=>{const i={};for(const a of o)if(r.has(a))i[a]=n.entries[a];else throw new Error(`Key ${a} not found in enum`);return new lt({...n,checks:[],...h(e),entries:i})},t.exclude=(o,e)=>{const i={...n.entries};for(const a of o)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new lt({...n,checks:[],...h(e),entries:i})}});function ge(t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new lt({type:"enum",entries:r,...h(n)})}function vu(t,n){return new lt({type:"enum",entries:t,...h(n)})}const eo=d("ZodLiteral",(t,n)=>{xc.init(t,n),D.init(t,n),t.values=new Set(n.values),Object.defineProperty(t,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function l(t,n){return new eo({type:"literal",values:Array.isArray(t)?t:[t],...h(n)})}const to=d("ZodFile",(t,n)=>{zc.init(t,n),D.init(t,n),t.min=(r,o)=>t.check(ct(r,o)),t.max=(r,o)=>t.check(Ot(r,o)),t.mime=(r,o)=>t.check(Nn(Array.isArray(r)?r:[r],o))});function bu(t){return vl(to,t)}const lr=d("ZodTransform",(t,n)=>{Yr.init(t,n),D.init(t,n),t._zod.parse=(r,o)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(ot(i,r.value,n));else{const a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(ot(a))}};const e=n.transform(r.value,r);return e instanceof Promise?e.then(i=>(r.value=i,r)):(r.value=e,r)}});function ur(t){return new lr({type:"transform",transform:t})}const dr=d("ZodOptional",(t,n)=>{jc.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType});function Q(t){return new dr({type:"optional",innerType:t})}const no=d("ZodNullable",(t,n)=>{Tc.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType});function wt(t){return new no({type:"nullable",innerType:t})}function yu(t){return Q(wt(t))}const ro=d("ZodDefault",(t,n)=>{Nc.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function io(t,n){return new ro({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():n}})}const oo=d("ZodPrefault",(t,n)=>{Oc.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType});function ao(t,n){return new oo({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():n}})}const mr=d("ZodNonOptional",(t,n)=>{Ec.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType});function so(t,n){return new mr({type:"nonoptional",innerType:t,...h(n)})}const co=d("ZodSuccess",(t,n)=>{Pc.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType});function $u(t){return new co({type:"success",innerType:t})}const lo=d("ZodCatch",(t,n)=>{Uc.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function uo(t,n){return new lo({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const mo=d("ZodNaN",(t,n)=>{Dc.init(t,n),D.init(t,n)});function _u(t){return gl(mo,t)}const pr=d("ZodPipe",(t,n)=>{Xr.init(t,n),D.init(t,n),t.in=n.in,t.out=n.out});function It(t,n){return new pr({type:"pipe",in:t,out:n})}const po=d("ZodReadonly",(t,n)=>{Rc.init(t,n),D.init(t,n)});function fo(t){return new po({type:"readonly",innerType:t})}const go=d("ZodTemplateLiteral",(t,n)=>{Zc.init(t,n),D.init(t,n)});function ku(t,n){return new go({type:"template_literal",parts:t,...h(n)})}const ho=d("ZodLazy",(t,n)=>{Ac.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.getter()});function vo(t){return new ho({type:"lazy",getter:t})}const bo=d("ZodPromise",(t,n)=>{Cc.init(t,n),D.init(t,n),t.unwrap=()=>t._zod.def.innerType});function Su(t){return new bo({type:"promise",innerType:t})}const Lt=d("ZodCustom",(t,n)=>{Lc.init(t,n),D.init(t,n)});function yo(t){const n=new ne({check:"custom"});return n._zod.check=t,n}function $o(t,n){return bl(Lt,t??(()=>!0),n)}function _o(t,n={}){return yl(Lt,t,n)}function ko(t){const n=yo(r=>(r.addIssue=o=>{if(typeof o=="string")r.issues.push(ot(o,r.value,n._zod.def));else{const e=o;e.fatal&&(e.continue=!1),e.code??(e.code="custom"),e.input??(e.input=r.value),e.inst??(e.inst=n),e.continue??(e.continue=!n._zod.def.abort),r.issues.push(ot(e))}},t(r.value,r)));return n}function wu(t,n={error:`Input not instance of ${t.name}`}){const r=new Lt({type:"custom",check:"custom",fn:o=>o instanceof t,abort:!0,...h(n)});return r._zod.bag.Class=t,r}const Iu=(...t)=>$l({Pipe:pr,Boolean:Rt,String:Ut,Transform:lr},...t);function xu(t){const n=vo(()=>A([m(t),P(),V(),ir(),j(n),H(m(),n)]));return n}function fr(t,n){return It(ur(t),n)}const zu={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function ju(t){se({customError:t})}function Tu(){return se().customError}function Ip(t){return Hc(Ut,t)}function xp(t){return Gc(Dt,t)}function zp(t){return nl(Rt,t)}function jp(t){return il(Zt,t)}function Tp(t){return fl(or,t)}const Nu=Object.freeze(Object.defineProperty({__proto__:null,bigint:jp,boolean:zp,date:Tp,number:xp,string:Ip},Symbol.toStringTag,{value:"Module"}));se(Mc());const pa=Object.freeze(Object.defineProperty({__proto__:null,$brand:Or,$input:ni,$output:ti,NEVER:Nr,TimePrecision:Ii,ZodAny:Bi,ZodArray:Wi,ZodBase64:Xn,ZodBase64URL:er,ZodBigInt:Zt,ZodBigIntFormat:rr,ZodBoolean:Rt,ZodCIDRv4:Qn,ZodCIDRv6:Yn,ZodCUID:Bn,ZodCUID2:Fn,ZodCatch:lo,ZodCustom:Lt,ZodCustomStringFormat:Li,ZodDate:or,ZodDefault:ro,ZodDiscriminatedUnion:Gi,ZodE164:tr,ZodEmail:Ln,ZodEmoji:qn,ZodEnum:lt,ZodError:Nl,ZodFile:to,ZodGUID:kt,ZodIPv4:Gn,ZodIPv6:Kn,ZodISODate:Rn,ZodISODateTime:Dn,ZodISODuration:Cn,ZodISOTime:Zn,ZodIntersection:Ki,ZodIssueCode:zu,ZodJWT:nr,ZodKSUID:Wn,ZodLazy:ho,ZodLiteral:eo,ZodMap:Yi,ZodNaN:mo,ZodNanoID:Hn,ZodNever:Ji,ZodNonOptional:mr,ZodNull:Hi,ZodNullable:no,ZodNumber:Dt,ZodNumberFormat:Qe,ZodObject:Ct,ZodOptional:dr,ZodPipe:pr,ZodPrefault:oo,ZodPromise:bo,ZodReadonly:po,ZodRealError:gt,ZodRecord:cr,ZodSet:Xi,ZodString:Ut,ZodStringFormat:X,ZodSuccess:co,ZodSymbol:Mi,ZodTemplateLiteral:go,ZodTransform:lr,ZodTuple:Qi,ZodType:D,ZodULID:Jn,ZodURL:Mn,ZodUUID:Ue,ZodUndefined:qi,ZodUnion:ar,ZodUnknown:Fi,ZodVoid:Vi,ZodXID:Vn,_ZodString:An,_default:io,any:cu,array:j,base64:Gl,base64url:Kl,bigint:iu,boolean:V,catch:uo,check:yo,cidrv4:Vl,cidrv6:Wl,clone:Ee,coerce:Nu,config:se,core:Sl,cuid:Ll,cuid2:Ml,custom:$o,date:uu,discriminatedUnion:sr,e164:Ql,email:Ol,emoji:Cl,endsWith:Tn,enum:ge,file:bu,flattenError:yn,float32:eu,float64:tu,formatError:$n,function:Ei,getErrorMap:Tu,globalRegistry:Ce,gt:Me,gte:be,guid:El,includes:zn,instanceof:wu,int:sn,int32:nu,int64:ou,intersection:At,ipv4:Fl,ipv6:Jl,iso:jl,json:xu,jwt:Yl,keyof:du,ksuid:Bl,lazy:vo,length:Pt,literal:l,locales:ei,looseObject:pe,lowercase:In,lt:Le,lte:we,map:gu,maxLength:Et,maxSize:Ot,mime:Nn,minLength:Ve,minSize:ct,multipleOf:st,nan:_u,nanoid:Al,nativeEnum:vu,negative:zi,never:We,nonnegative:Ti,nonoptional:so,nonpositive:ji,normalize:On,null:ir,nullable:wt,nullish:yu,number:P,object:p,optional:Q,overwrite:qe,parse:Ri,parseAsync:Zi,partialRecord:fu,pipe:It,positive:xi,prefault:ao,preprocess:fr,prettifyError:Rr,promise:Su,property:Ni,readonly:fo,record:H,refine:_o,regex:wn,regexes:Hr,registry:kn,safeParse:Ci,safeParseAsync:Ai,set:hu,setErrorMap:ju,size:Sn,startsWith:jn,strictObject:mu,string:m,stringFormat:Xl,stringbool:Iu,success:$u,superRefine:ko,symbol:su,templateLiteral:ku,toJSONSchema:Pi,toLowerCase:Pn,toUpperCase:Un,transform:ur,treeifyError:Dr,trim:En,tuple:pu,uint32:ru,uint64:au,ulid:ql,undefined:St,union:A,unknown:W,uppercase:xn,url:Zl,uuid:Pl,uuidv4:Ul,uuidv6:Dl,uuidv7:Rl,void:lu,xid:Hl},Symbol.toStringTag,{value:"Module"})),Np=Object.freeze(Object.defineProperty({__proto__:null,$brand:Or,$input:ni,$output:ti,NEVER:Nr,TimePrecision:Ii,ZodAny:Bi,ZodArray:Wi,ZodBase64:Xn,ZodBase64URL:er,ZodBigInt:Zt,ZodBigIntFormat:rr,ZodBoolean:Rt,ZodCIDRv4:Qn,ZodCIDRv6:Yn,ZodCUID:Bn,ZodCUID2:Fn,ZodCatch:lo,ZodCustom:Lt,ZodCustomStringFormat:Li,ZodDate:or,ZodDefault:ro,ZodDiscriminatedUnion:Gi,ZodE164:tr,ZodEmail:Ln,ZodEmoji:qn,ZodEnum:lt,ZodError:Nl,ZodFile:to,ZodGUID:kt,ZodIPv4:Gn,ZodIPv6:Kn,ZodISODate:Rn,ZodISODateTime:Dn,ZodISODuration:Cn,ZodISOTime:Zn,ZodIntersection:Ki,ZodIssueCode:zu,ZodJWT:nr,ZodKSUID:Wn,ZodLazy:ho,ZodLiteral:eo,ZodMap:Yi,ZodNaN:mo,ZodNanoID:Hn,ZodNever:Ji,ZodNonOptional:mr,ZodNull:Hi,ZodNullable:no,ZodNumber:Dt,ZodNumberFormat:Qe,ZodObject:Ct,ZodOptional:dr,ZodPipe:pr,ZodPrefault:oo,ZodPromise:bo,ZodReadonly:po,ZodRealError:gt,ZodRecord:cr,ZodSet:Xi,ZodString:Ut,ZodStringFormat:X,ZodSuccess:co,ZodSymbol:Mi,ZodTemplateLiteral:go,ZodTransform:lr,ZodTuple:Qi,ZodType:D,ZodULID:Jn,ZodURL:Mn,ZodUUID:Ue,ZodUndefined:qi,ZodUnion:ar,ZodUnknown:Fi,ZodVoid:Vi,ZodXID:Vn,_ZodString:An,_default:io,any:cu,array:j,base64:Gl,base64url:Kl,bigint:iu,boolean:V,catch:uo,check:yo,cidrv4:Vl,cidrv6:Wl,clone:Ee,coerce:Nu,config:se,core:Sl,cuid:Ll,cuid2:Ml,custom:$o,date:uu,default:pa,discriminatedUnion:sr,e164:Ql,email:Ol,emoji:Cl,endsWith:Tn,enum:ge,file:bu,flattenError:yn,float32:eu,float64:tu,formatError:$n,function:Ei,getErrorMap:Tu,globalRegistry:Ce,gt:Me,gte:be,guid:El,includes:zn,instanceof:wu,int:sn,int32:nu,int64:ou,intersection:At,ipv4:Fl,ipv6:Jl,iso:jl,json:xu,jwt:Yl,keyof:du,ksuid:Bl,lazy:vo,length:Pt,literal:l,locales:ei,looseObject:pe,lowercase:In,lt:Le,lte:we,map:gu,maxLength:Et,maxSize:Ot,mime:Nn,minLength:Ve,minSize:ct,multipleOf:st,nan:_u,nanoid:Al,nativeEnum:vu,negative:zi,never:We,nonnegative:Ti,nonoptional:so,nonpositive:ji,normalize:On,null:ir,nullable:wt,nullish:yu,number:P,object:p,optional:Q,overwrite:qe,parse:Ri,parseAsync:Zi,partialRecord:fu,pipe:It,positive:xi,prefault:ao,preprocess:fr,prettifyError:Rr,promise:Su,property:Ni,readonly:fo,record:H,refine:_o,regex:wn,regexes:Hr,registry:kn,safeParse:Ci,safeParseAsync:Ai,set:hu,setErrorMap:ju,size:Sn,startsWith:jn,strictObject:mu,string:m,stringFormat:Xl,stringbool:Iu,success:$u,superRefine:ko,symbol:su,templateLiteral:ku,toJSONSchema:Pi,toLowerCase:Pn,toUpperCase:Un,transform:ur,treeifyError:Dr,trim:En,tuple:pu,uint32:ru,uint64:au,ulid:ql,undefined:St,union:A,unknown:W,uppercase:xn,url:Zl,uuid:Pl,uuidv4:Ul,uuidv6:Dl,uuidv7:Rl,void:lu,xid:Hl,z:pa},Symbol.toStringTag,{value:"Module"})),Fe="io.modelcontextprotocol/related-task",gr="2.0",oe=$o(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Ou=A([m(),P().int()]),Eu=m();pe({ttl:P().optional(),pollInterval:P().optional()});const Op=p({ttl:P().optional()}),Ep=p({taskId:m()}),So=pe({progressToken:Ou.optional(),[Fe]:Ep.optional()}),ke=p({_meta:So.optional()}),Mt=ke.extend({task:Op.optional()}),Pp=t=>Mt.safeParse(t).success,ce=p({method:m(),params:ke.loose().optional()}),xe=p({_meta:So.optional()}),ze=p({method:m(),params:xe.loose().optional()}),le=pe({_meta:So.optional()}),qt=A([m(),P().int()]),Pu=p({jsonrpc:l(gr),id:qt,...ce.shape}).strict(),fa=t=>Pu.safeParse(t).success,Uu=p({jsonrpc:l(gr),...ze.shape}).strict(),Up=t=>Uu.safeParse(t).success,wo=p({jsonrpc:l(gr),id:qt,result:le}).strict(),Yt=t=>wo.safeParse(t).success;var J;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(J||(J={}));const Io=p({jsonrpc:l(gr),id:qt.optional(),error:p({code:P().int(),message:m(),data:W().optional()})}).strict(),Dp=t=>Io.safeParse(t).success,Rp=A([Pu,Uu,wo,Io]);A([wo,Io]);const xo=le.strict(),Zp=xe.extend({requestId:qt.optional(),reason:m().optional()}),zo=ze.extend({method:l("notifications/cancelled"),params:Zp}),Cp=p({src:m(),mimeType:m().optional(),sizes:j(m()).optional(),theme:ge(["light","dark"]).optional()}),Ht=p({icons:j(Cp).optional()}),ut=p({name:m(),title:m().optional()}),hr=ut.extend({...ut.shape,...Ht.shape,version:m(),websiteUrl:m().optional(),description:m().optional()}),Ap=At(p({applyDefaults:V().optional()}),H(m(),W())),Lp=fr(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,At(p({form:Ap.optional(),url:oe.optional()}),H(m(),W()).optional())),Mp=pe({list:oe.optional(),cancel:oe.optional(),requests:pe({sampling:pe({createMessage:oe.optional()}).optional(),elicitation:pe({create:oe.optional()}).optional()}).optional()}),qp=pe({list:oe.optional(),cancel:oe.optional(),requests:pe({tools:pe({call:oe.optional()}).optional()}).optional()}),Hp=p({experimental:H(m(),oe).optional(),sampling:p({context:oe.optional(),tools:oe.optional()}).optional(),elicitation:Lp.optional(),roots:p({listChanged:V().optional()}).optional(),tasks:Mp.optional(),extensions:H(m(),oe).optional()}),Bp=ke.extend({protocolVersion:m(),capabilities:Hp,clientInfo:hr}),Fp=ce.extend({method:l("initialize"),params:Bp}),Jp=p({experimental:H(m(),oe).optional(),logging:oe.optional(),completions:oe.optional(),prompts:p({listChanged:V().optional()}).optional(),resources:p({subscribe:V().optional(),listChanged:V().optional()}).optional(),tools:p({listChanged:V().optional()}).optional(),tasks:qp.optional(),extensions:H(m(),oe).optional()}),Vp=le.extend({protocolVersion:m(),capabilities:Jp,serverInfo:hr,instructions:m().optional()}),Wp=ze.extend({method:l("notifications/initialized"),params:xe.optional()}),vr=ce.extend({method:l("ping"),params:ke.optional()}),Gp=p({progress:P(),total:Q(P()),message:Q(m())}),Kp=p({...xe.shape,...Gp.shape,progressToken:Ou}),jo=ze.extend({method:l("notifications/progress"),params:Kp}),Qp=ke.extend({cursor:Eu.optional()}),Bt=ce.extend({params:Qp.optional()}),Ft=le.extend({nextCursor:Eu.optional()}),Yp=ge(["working","input_required","completed","failed","cancelled"]),Jt=p({taskId:m(),status:Yp,ttl:A([P(),ir()]),createdAt:m(),lastUpdatedAt:m(),pollInterval:Q(P()),statusMessage:Q(m())}),To=le.extend({task:Jt}),Xp=xe.merge(Jt),cn=ze.extend({method:l("notifications/tasks/status"),params:Xp}),No=ce.extend({method:l("tasks/get"),params:ke.extend({taskId:m()})}),Oo=le.merge(Jt),Eo=ce.extend({method:l("tasks/result"),params:ke.extend({taskId:m()})});le.loose();const Po=Bt.extend({method:l("tasks/list")}),Uo=Ft.extend({tasks:j(Jt)}),Do=ce.extend({method:l("tasks/cancel"),params:ke.extend({taskId:m()})}),ef=le.merge(Jt),Du=p({uri:m(),mimeType:Q(m()),_meta:H(m(),W()).optional()}),Ru=Du.extend({text:m()}),Ro=m().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Zu=Du.extend({blob:Ro}),Vt=ge(["user","assistant"]),ht=p({audience:j(Vt).optional(),priority:P().min(0).max(1).optional(),lastModified:Di({offset:!0}).optional()}),Cu=p({...ut.shape,...Ht.shape,uri:m(),description:Q(m()),mimeType:Q(m()),size:Q(P()),annotations:ht.optional(),_meta:Q(pe({}))}),tf=p({...ut.shape,...Ht.shape,uriTemplate:m(),description:Q(m()),mimeType:Q(m()),annotations:ht.optional(),_meta:Q(pe({}))}),nf=Bt.extend({method:l("resources/list")}),Au=Ft.extend({resources:j(Cu)}),rf=Bt.extend({method:l("resources/templates/list")}),of=Ft.extend({resourceTemplates:j(tf)}),Zo=ke.extend({uri:m()}),af=Zo,sf=ce.extend({method:l("resources/read"),params:af}),Lu=le.extend({contents:j(A([Ru,Zu]))}),cf=ze.extend({method:l("notifications/resources/list_changed"),params:xe.optional()}),lf=Zo,uf=ce.extend({method:l("resources/subscribe"),params:lf}),df=Zo,mf=ce.extend({method:l("resources/unsubscribe"),params:df}),pf=xe.extend({uri:m()}),ff=ze.extend({method:l("notifications/resources/updated"),params:pf}),gf=p({name:m(),description:Q(m()),required:Q(V())}),hf=p({...ut.shape,...Ht.shape,description:Q(m()),arguments:Q(j(gf)),_meta:Q(pe({}))}),vf=Bt.extend({method:l("prompts/list")}),bf=Ft.extend({prompts:j(hf)}),yf=ke.extend({name:m(),arguments:H(m(),m()).optional()}),$f=ce.extend({method:l("prompts/get"),params:yf}),Co=p({type:l("text"),text:m(),annotations:ht.optional(),_meta:H(m(),W()).optional()}),Ao=p({type:l("image"),data:Ro,mimeType:m(),annotations:ht.optional(),_meta:H(m(),W()).optional()}),Lo=p({type:l("audio"),data:Ro,mimeType:m(),annotations:ht.optional(),_meta:H(m(),W()).optional()}),_f=p({type:l("tool_use"),name:m(),id:m(),input:H(m(),W()),_meta:H(m(),W()).optional()}),Mu=p({type:l("resource"),resource:A([Ru,Zu]),annotations:ht.optional(),_meta:H(m(),W()).optional()}),qu=Cu.extend({type:l("resource_link")}),Wt=A([Co,Ao,Lo,qu,Mu]),kf=p({role:Vt,content:Wt}),Sf=le.extend({description:m().optional(),messages:j(kf)}),wf=ze.extend({method:l("notifications/prompts/list_changed"),params:xe.optional()}),If=p({title:m().optional(),readOnlyHint:V().optional(),destructiveHint:V().optional(),idempotentHint:V().optional(),openWorldHint:V().optional()}),xf=p({taskSupport:ge(["required","optional","forbidden"]).optional()}),Mo=p({...ut.shape,...Ht.shape,description:m().optional(),inputSchema:p({type:l("object"),properties:H(m(),oe).optional(),required:j(m()).optional()}).catchall(W()),outputSchema:p({type:l("object"),properties:H(m(),oe).optional(),required:j(m()).optional()}).catchall(W()).optional(),annotations:If.optional(),execution:xf.optional(),_meta:H(m(),W()).optional()}),Hu=Bt.extend({method:l("tools/list")}),zf=Ft.extend({tools:j(Mo)}),br=le.extend({content:j(Wt).default([]),structuredContent:H(m(),W()).optional(),isError:V().optional()});br.or(le.extend({toolResult:W()}));const jf=Mt.extend({name:m(),arguments:H(m(),W()).optional()}),Bu=ce.extend({method:l("tools/call"),params:jf}),Tf=ze.extend({method:l("notifications/tools/list_changed"),params:xe.optional()});p({autoRefresh:V().default(!0),debounceMs:P().int().nonnegative().default(300)});const Fu=ge(["debug","info","notice","warning","error","critical","alert","emergency"]),Nf=ke.extend({level:Fu}),Of=ce.extend({method:l("logging/setLevel"),params:Nf}),Ef=xe.extend({level:Fu,logger:m().optional(),data:W()}),Pf=ze.extend({method:l("notifications/message"),params:Ef}),Uf=p({name:m().optional()}),Df=p({hints:j(Uf).optional(),costPriority:P().min(0).max(1).optional(),speedPriority:P().min(0).max(1).optional(),intelligencePriority:P().min(0).max(1).optional()}),Rf=p({mode:ge(["auto","required","none"]).optional()}),Zf=p({type:l("tool_result"),toolUseId:m().describe("The unique identifier for the corresponding tool call."),content:j(Wt).default([]),structuredContent:p({}).loose().optional(),isError:V().optional(),_meta:H(m(),W()).optional()}),Cf=sr("type",[Co,Ao,Lo]),ln=sr("type",[Co,Ao,Lo,_f,Zf]),Af=p({role:Vt,content:A([ln,j(ln)]),_meta:H(m(),W()).optional()}),Lf=Mt.extend({messages:j(Af),modelPreferences:Df.optional(),systemPrompt:m().optional(),includeContext:ge(["none","thisServer","allServers"]).optional(),temperature:P().optional(),maxTokens:P().int(),stopSequences:j(m()).optional(),metadata:oe.optional(),tools:j(Mo).optional(),toolChoice:Rf.optional()}),Mf=ce.extend({method:l("sampling/createMessage"),params:Lf}),Ju=le.extend({model:m(),stopReason:Q(ge(["endTurn","stopSequence","maxTokens"]).or(m())),role:Vt,content:Cf}),Vu=le.extend({model:m(),stopReason:Q(ge(["endTurn","stopSequence","maxTokens","toolUse"]).or(m())),role:Vt,content:A([ln,j(ln)])}),qf=p({type:l("boolean"),title:m().optional(),description:m().optional(),default:V().optional()}),Hf=p({type:l("string"),title:m().optional(),description:m().optional(),minLength:P().optional(),maxLength:P().optional(),format:ge(["email","uri","date","date-time"]).optional(),default:m().optional()}),Bf=p({type:ge(["number","integer"]),title:m().optional(),description:m().optional(),minimum:P().optional(),maximum:P().optional(),default:P().optional()}),Ff=p({type:l("string"),title:m().optional(),description:m().optional(),enum:j(m()),default:m().optional()}),Jf=p({type:l("string"),title:m().optional(),description:m().optional(),oneOf:j(p({const:m(),title:m()})),default:m().optional()}),Vf=p({type:l("string"),title:m().optional(),description:m().optional(),enum:j(m()),enumNames:j(m()).optional(),default:m().optional()}),Wf=A([Ff,Jf]),Gf=p({type:l("array"),title:m().optional(),description:m().optional(),minItems:P().optional(),maxItems:P().optional(),items:p({type:l("string"),enum:j(m())}),default:j(m()).optional()}),Kf=p({type:l("array"),title:m().optional(),description:m().optional(),minItems:P().optional(),maxItems:P().optional(),items:p({anyOf:j(p({const:m(),title:m()}))}),default:j(m()).optional()}),Qf=A([Gf,Kf]),Yf=A([Vf,Wf,Qf]),Xf=A([Yf,qf,Hf,Bf]),eg=Mt.extend({mode:l("form").optional(),message:m(),requestedSchema:p({type:l("object"),properties:H(m(),Xf),required:j(m()).optional()})}),tg=Mt.extend({mode:l("url"),message:m(),elicitationId:m(),url:m().url()}),ng=A([eg,tg]),rg=ce.extend({method:l("elicitation/create"),params:ng}),ig=xe.extend({elicitationId:m()}),og=ze.extend({method:l("notifications/elicitation/complete"),params:ig}),ag=le.extend({action:ge(["accept","decline","cancel"]),content:fr(t=>t===null?void 0:t,H(m(),A([m(),P(),V(),j(m())])).optional())}),sg=p({type:l("ref/resource"),uri:m()}),cg=p({type:l("ref/prompt"),name:m()}),lg=ke.extend({ref:A([cg,sg]),argument:p({name:m(),value:m()}),context:p({arguments:H(m(),m()).optional()}).optional()}),ug=ce.extend({method:l("completion/complete"),params:lg}),dg=le.extend({completion:pe({values:j(m()).max(100),total:Q(P().int()),hasMore:Q(V())})}),mg=p({uri:m().startsWith("file://"),name:m().optional(),_meta:H(m(),W()).optional()}),pg=ce.extend({method:l("roots/list"),params:ke.optional()}),fg=le.extend({roots:j(mg)}),gg=ze.extend({method:l("notifications/roots/list_changed"),params:xe.optional()});A([vr,Fp,ug,Of,$f,vf,nf,rf,sf,uf,mf,Bu,Hu,No,Eo,Po,Do]);A([zo,jo,Wp,gg,cn]);A([xo,Ju,Vu,ag,fg,Oo,Uo,To]);A([vr,Mf,rg,pg,No,Eo,Po,Do]);A([zo,jo,Pf,ff,cf,Tf,wf,cn,og]);A([xo,Vp,dg,Sf,bf,Au,of,Lu,br,zf,Oo,Uo,To]);class q extends Error{constructor(n,r,o){super(`MCP error ${n}: ${r}`),this.code=n,this.data=o,this.name="McpError"}static fromError(n,r,o){if(n===J.UrlElicitationRequired&&o){const e=o;if(e.elicitations)return new hg(e.elicitations,r)}return new q(n,r,o)}}class hg extends q{constructor(n,r=`URL elicitation${n.length>1?"s":""} required`){super(J.UrlElicitationRequired,r,{elicitations:n})}get elicitations(){var n;return((n=this.data)==null?void 0:n.elicitations)??[]}}function Be(t){return t==="completed"||t==="failed"||t==="cancelled"}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function ga(t){const n=Sp(t),r=n==null?void 0:n.method;if(!r)throw new Error("Schema is missing a method literal");const o=wp(r);if(typeof o!="string")throw new Error("Schema method literal must be a string");return o}function ha(t,n){const r=wl(t,n);if(!r.success)throw r.error;return r.data}const vg=6e4;class bg{constructor(n){this._options=n,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(zo,r=>{this._oncancel(r)}),this.setNotificationHandler(jo,r=>{this._onprogress(r)}),this.setRequestHandler(vr,r=>({})),this._taskStore=n==null?void 0:n.taskStore,this._taskMessageQueue=n==null?void 0:n.taskMessageQueue,this._taskStore&&(this.setRequestHandler(No,async(r,o)=>{const e=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!e)throw new q(J.InvalidParams,"Failed to retrieve task: Task not found");return{...e}}),this.setRequestHandler(Eo,async(r,o)=>{const e=async()=>{var s;const i=r.params.taskId;if(this._taskMessageQueue){let c;for(;c=await this._taskMessageQueue.dequeue(i,o.sessionId);){if(c.type==="response"||c.type==="error"){const u=c.message,b=u.id,y=this._requestResolvers.get(b);if(y)if(this._requestResolvers.delete(b),c.type==="response")y(u);else{const _=u,I=new q(_.error.code,_.error.message,_.error.data);y(I)}else{const _=c.type==="response"?"Response":"Error";this._onerror(new Error(`${_} handler missing for request ${b}`))}continue}await((s=this._transport)==null?void 0:s.send(c.message,{relatedRequestId:o.requestId}))}}const a=await this._taskStore.getTask(i,o.sessionId);if(!a)throw new q(J.InvalidParams,`Task not found: ${i}`);if(!Be(a.status))return await this._waitForTaskUpdate(i,o.signal),await e();if(Be(a.status)){const c=await this._taskStore.getTaskResult(i,o.sessionId);return this._clearTaskQueue(i),{...c,_meta:{...c._meta,[Fe]:{taskId:i}}}}return await e()};return await e()}),this.setRequestHandler(Po,async(r,o)=>{var e;try{const{tasks:i,nextCursor:a}=await this._taskStore.listTasks((e=r.params)==null?void 0:e.cursor,o.sessionId);return{tasks:i,nextCursor:a,_meta:{}}}catch(i){throw new q(J.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(Do,async(r,o)=>{try{const e=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!e)throw new q(J.InvalidParams,`Task not found: ${r.params.taskId}`);if(Be(e.status))throw new q(J.InvalidParams,`Cannot cancel task in terminal status: ${e.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",o.sessionId),this._clearTaskQueue(r.params.taskId);const i=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!i)throw new q(J.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(e){throw e instanceof q?e:new q(J.InvalidRequest,`Failed to cancel task: ${e instanceof Error?e.message:String(e)}`)}}))}async _oncancel(n){if(!n.params.requestId)return;const r=this._requestHandlerAbortControllers.get(n.params.requestId);r==null||r.abort(n.params.reason)}_setupTimeout(n,r,o,e,i=!1){this._timeoutInfo.set(n,{timeoutId:setTimeout(e,r),startTime:Date.now(),timeout:r,maxTotalTimeout:o,resetTimeoutOnProgress:i,onTimeout:e})}_resetTimeout(n){const r=this._timeoutInfo.get(n);if(!r)return!1;const o=Date.now()-r.startTime;if(r.maxTotalTimeout&&o>=r.maxTotalTimeout)throw this._timeoutInfo.delete(n),q.fromError(J.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:o});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(n){const r=this._timeoutInfo.get(n);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(n))}async connect(n){var i,a,s;if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=n;const r=(i=this.transport)==null?void 0:i.onclose;this._transport.onclose=()=>{r==null||r(),this._onclose()};const o=(a=this.transport)==null?void 0:a.onerror;this._transport.onerror=c=>{o==null||o(c),this._onerror(c)};const e=(s=this._transport)==null?void 0:s.onmessage;this._transport.onmessage=(c,u)=>{e==null||e(c,u),Yt(c)||Dp(c)?this._onresponse(c):fa(c)?this._onrequest(c,u):Up(c)?this._onnotification(c):this._onerror(new Error(`Unknown message type: ${JSON.stringify(c)}`))},await this._transport.start()}_onclose(){var o;const n=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(const e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();for(const e of this._requestHandlerAbortControllers.values())e.abort();this._requestHandlerAbortControllers.clear();const r=q.fromError(J.ConnectionClosed,"Connection closed");this._transport=void 0,(o=this.onclose)==null||o.call(this);for(const e of n.values())e(r)}_onerror(n){var r;(r=this.onerror)==null||r.call(this,n)}_onnotification(n){const r=this._notificationHandlers.get(n.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(n)).catch(o=>this._onerror(new Error(`Uncaught error in notification handler: ${o}`)))}_onrequest(n,r){var b,y,_,I;const o=this._requestHandlers.get(n.method)??this.fallbackRequestHandler,e=this._transport,i=(_=(y=(b=n.params)==null?void 0:b._meta)==null?void 0:y[Fe])==null?void 0:_.taskId;if(o===void 0){const v={jsonrpc:"2.0",id:n.id,error:{code:J.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:v,timestamp:Date.now()},e==null?void 0:e.sessionId).catch(T=>this._onerror(new Error(`Failed to enqueue error response: ${T}`))):e==null||e.send(v).catch(T=>this._onerror(new Error(`Failed to send an error response: ${T}`)));return}const a=new AbortController;this._requestHandlerAbortControllers.set(n.id,a);const s=Pp(n.params)?n.params.task:void 0,c=this._taskStore?this.requestTaskStore(n,e==null?void 0:e.sessionId):void 0,u={signal:a.signal,sessionId:e==null?void 0:e.sessionId,_meta:(I=n.params)==null?void 0:I._meta,sendNotification:async v=>{if(a.signal.aborted)return;const T={relatedRequestId:n.id};i&&(T.relatedTask={taskId:i}),await this.notification(v,T)},sendRequest:async(v,T,x)=>{var $;if(a.signal.aborted)throw new q(J.ConnectionClosed,"Request was cancelled");const f={...x,relatedRequestId:n.id};i&&!f.relatedTask&&(f.relatedTask={taskId:i});const k=(($=f.relatedTask)==null?void 0:$.taskId)??i;return k&&c&&await c.updateTaskStatus(k,"input_required"),await this.request(v,T,f)},authInfo:r==null?void 0:r.authInfo,requestId:n.id,requestInfo:r==null?void 0:r.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:s==null?void 0:s.ttl,closeSSEStream:r==null?void 0:r.closeSSEStream,closeStandaloneSSEStream:r==null?void 0:r.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(n.method)}).then(()=>o(n,u)).then(async v=>{if(a.signal.aborted)return;const T={result:v,jsonrpc:"2.0",id:n.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:T,timestamp:Date.now()},e==null?void 0:e.sessionId):await(e==null?void 0:e.send(T))},async v=>{if(a.signal.aborted)return;const T={jsonrpc:"2.0",id:n.id,error:{code:Number.isSafeInteger(v.code)?v.code:J.InternalError,message:v.message??"Internal error",...v.data!==void 0&&{data:v.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:T,timestamp:Date.now()},e==null?void 0:e.sessionId):await(e==null?void 0:e.send(T))}).catch(v=>this._onerror(new Error(`Failed to send response: ${v}`))).finally(()=>{this._requestHandlerAbortControllers.get(n.id)===a&&this._requestHandlerAbortControllers.delete(n.id)})}_onprogress(n){const{progressToken:r,...o}=n.params,e=Number(r),i=this._progressHandlers.get(e);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(n)}`));return}const a=this._responseHandlers.get(e),s=this._timeoutInfo.get(e);if(s&&a&&s.resetTimeoutOnProgress)try{this._resetTimeout(e)}catch(c){this._responseHandlers.delete(e),this._progressHandlers.delete(e),this._cleanupTimeout(e),a(c);return}i(o)}_onresponse(n){const r=Number(n.id),o=this._requestResolvers.get(r);if(o){if(this._requestResolvers.delete(r),Yt(n))o(n);else{const a=new q(n.error.code,n.error.message,n.error.data);o(a)}return}const e=this._responseHandlers.get(r);if(e===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(n)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(Yt(n)&&n.result&&typeof n.result=="object"){const a=n.result;if(a.task&&typeof a.task=="object"){const s=a.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,r))}}if(i||this._progressHandlers.delete(r),Yt(n))e(n);else{const a=q.fromError(n.error.code,n.error.message,n.error.data);e(a)}}get transport(){return this._transport}async close(){var n;await((n=this._transport)==null?void 0:n.close())}async*requestStream(n,r,o){var a,s;const{task:e}=o??{};if(!e){try{yield{type:"result",result:await this.request(n,r,o)}}catch(c){yield{type:"error",error:c instanceof q?c:new q(J.InternalError,String(c))}}return}let i;try{const c=await this.request(n,To,o);if(c.task)i=c.task.taskId,yield{type:"taskCreated",task:c.task};else throw new q(J.InternalError,"Task creation did not return a task");for(;;){const u=await this.getTask({taskId:i},o);if(yield{type:"taskStatus",task:u},Be(u.status)){u.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,o)}:u.status==="failed"?yield{type:"error",error:new q(J.InternalError,`Task ${i} failed`)}:u.status==="cancelled"&&(yield{type:"error",error:new q(J.InternalError,`Task ${i} was cancelled`)});return}if(u.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,o)};return}const b=u.pollInterval??((a=this._options)==null?void 0:a.defaultTaskPollInterval)??1e3;await new Promise(y=>setTimeout(y,b)),(s=o==null?void 0:o.signal)==null||s.throwIfAborted()}}catch(c){yield{type:"error",error:c instanceof q?c:new q(J.InternalError,String(c))}}}request(n,r,o){const{relatedRequestId:e,resumptionToken:i,onresumptiontoken:a,task:s,relatedTask:c}=o??{};return new Promise((u,b)=>{var k,$,z,N,L;const y=R=>{b(R)};if(!this._transport){y(new Error("Not connected"));return}if(((k=this._options)==null?void 0:k.enforceStrictCapabilities)===!0)try{this.assertCapabilityForMethod(n.method),s&&this.assertTaskCapability(n.method)}catch(R){y(R);return}($=o==null?void 0:o.signal)==null||$.throwIfAborted();const _=this._requestMessageId++,I={...n,jsonrpc:"2.0",id:_};o!=null&&o.onprogress&&(this._progressHandlers.set(_,o.onprogress),I.params={...n.params,_meta:{...((z=n.params)==null?void 0:z._meta)||{},progressToken:_}}),s&&(I.params={...I.params,task:s}),c&&(I.params={...I.params,_meta:{...((N=I.params)==null?void 0:N._meta)||{},[Fe]:c}});const v=R=>{var ue;this._responseHandlers.delete(_),this._progressHandlers.delete(_),this._cleanupTimeout(_),(ue=this._transport)==null||ue.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:_,reason:String(R)}},{relatedRequestId:e,resumptionToken:i,onresumptiontoken:a}).catch(Gt=>this._onerror(new Error(`Failed to send cancellation: ${Gt}`)));const re=R instanceof q?R:new q(J.RequestTimeout,String(R));b(re)};this._responseHandlers.set(_,R=>{var re;if(!((re=o==null?void 0:o.signal)!=null&&re.aborted)){if(R instanceof Error)return b(R);try{const ue=wl(r,R.result);ue.success?u(ue.data):b(ue.error)}catch(ue){b(ue)}}}),(L=o==null?void 0:o.signal)==null||L.addEventListener("abort",()=>{var R;v((R=o==null?void 0:o.signal)==null?void 0:R.reason)});const T=(o==null?void 0:o.timeout)??vg,x=()=>v(q.fromError(J.RequestTimeout,"Request timed out",{timeout:T}));this._setupTimeout(_,T,o==null?void 0:o.maxTotalTimeout,x,(o==null?void 0:o.resetTimeoutOnProgress)??!1);const f=c==null?void 0:c.taskId;if(f){const R=re=>{const ue=this._responseHandlers.get(_);ue?ue(re):this._onerror(new Error(`Response handler missing for side-channeled request ${_}`))};this._requestResolvers.set(_,R),this._enqueueTaskMessage(f,{type:"request",message:I,timestamp:Date.now()}).catch(re=>{this._cleanupTimeout(_),b(re)})}else this._transport.send(I,{relatedRequestId:e,resumptionToken:i,onresumptiontoken:a}).catch(R=>{this._cleanupTimeout(_),b(R)})})}async getTask(n,r){return this.request({method:"tasks/get",params:n},Oo,r)}async getTaskResult(n,r,o){return this.request({method:"tasks/result",params:n},r,o)}async listTasks(n,r){return this.request({method:"tasks/list",params:n},Uo,r)}async cancelTask(n,r){return this.request({method:"tasks/cancel",params:n},ef,r)}async notification(n,r){var s,c,u,b;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(n.method);const o=(s=r==null?void 0:r.relatedTask)==null?void 0:s.taskId;if(o){const y={...n,jsonrpc:"2.0",params:{...n.params,_meta:{...((c=n.params)==null?void 0:c._meta)||{},[Fe]:r.relatedTask}}};await this._enqueueTaskMessage(o,{type:"notification",message:y,timestamp:Date.now()});return}if((((u=this._options)==null?void 0:u.debouncedNotificationMethods)??[]).includes(n.method)&&!n.params&&!(r!=null&&r.relatedRequestId)&&!(r!=null&&r.relatedTask)){if(this._pendingDebouncedNotifications.has(n.method))return;this._pendingDebouncedNotifications.add(n.method),Promise.resolve().then(()=>{var _,I;if(this._pendingDebouncedNotifications.delete(n.method),!this._transport)return;let y={...n,jsonrpc:"2.0"};r!=null&&r.relatedTask&&(y={...y,params:{...y.params,_meta:{...((_=y.params)==null?void 0:_._meta)||{},[Fe]:r.relatedTask}}}),(I=this._transport)==null||I.send(y,r).catch(v=>this._onerror(v))});return}let a={...n,jsonrpc:"2.0"};r!=null&&r.relatedTask&&(a={...a,params:{...a.params,_meta:{...((b=a.params)==null?void 0:b._meta)||{},[Fe]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(n,r){const o=ga(n);this.assertRequestHandlerCapability(o),this._requestHandlers.set(o,(e,i)=>{const a=ha(n,e);return Promise.resolve(r(a,i))})}removeRequestHandler(n){this._requestHandlers.delete(n)}assertCanSetRequestHandler(n){if(this._requestHandlers.has(n))throw new Error(`A request handler for ${n} already exists, which would be overridden`)}setNotificationHandler(n,r){const o=ga(n);this._notificationHandlers.set(o,e=>{const i=ha(n,e);return Promise.resolve(r(i))})}removeNotificationHandler(n){this._notificationHandlers.delete(n)}_cleanupTaskProgressHandler(n){const r=this._taskProgressTokens.get(n);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(n))}async _enqueueTaskMessage(n,r,o){var i;if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");const e=(i=this._options)==null?void 0:i.maxTaskQueueSize;await this._taskMessageQueue.enqueue(n,r,o,e)}async _clearTaskQueue(n,r){if(this._taskMessageQueue){const o=await this._taskMessageQueue.dequeueAll(n,r);for(const e of o)if(e.type==="request"&&fa(e.message)){const i=e.message.id,a=this._requestResolvers.get(i);a?(a(new q(J.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${n} cleanup`))}}}async _waitForTaskUpdate(n,r){var e,i;let o=((e=this._options)==null?void 0:e.defaultTaskPollInterval)??1e3;try{const a=await((i=this._taskStore)==null?void 0:i.getTask(n));a!=null&&a.pollInterval&&(o=a.pollInterval)}catch{}return new Promise((a,s)=>{if(r.aborted){s(new q(J.InvalidRequest,"Request cancelled"));return}const c=setTimeout(a,o);r.addEventListener("abort",()=>{clearTimeout(c),s(new q(J.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(n,r){const o=this._taskStore;if(!o)throw new Error("No task store configured");return{createTask:async e=>{if(!n)throw new Error("No request provided");return await o.createTask(e,n.id,{method:n.method,params:n.params},r)},getTask:async e=>{const i=await o.getTask(e,r);if(!i)throw new q(J.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(e,i,a)=>{await o.storeTaskResult(e,i,a,r);const s=await o.getTask(e,r);if(s){const c=cn.parse({method:"notifications/tasks/status",params:s});await this.notification(c),Be(s.status)&&this._cleanupTaskProgressHandler(e)}},getTaskResult:e=>o.getTaskResult(e,r),updateTaskStatus:async(e,i,a)=>{const s=await o.getTask(e,r);if(!s)throw new q(J.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(Be(s.status))throw new q(J.InvalidParams,`Cannot update task "${e}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await o.updateTaskStatus(e,i,a,r);const c=await o.getTask(e,r);if(c){const u=cn.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Be(c.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>o.listTasks(e,r)}}}function va(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function yg(t,n){const r={...t};for(const o in n){const e=o,i=n[e];if(i===void 0)continue;const a=r[e];va(a)&&va(i)?r[e]={...a,...i}:r[e]=i}return r}(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(n,r)=>(typeof require<"u"?require:n)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});class $g extends bg{constructor(){super(...arguments);F(this,"_registeredMethods",new Set);F(this,"_eventSlots",new Map);F(this,"setRequestHandler",(r,o)=>{this._assertMethodNotRegistered(r,"setRequestHandler"),super.setRequestHandler(r,o)});F(this,"setNotificationHandler",(r,o)=>{this._assertMethodNotRegistered(r,"setNotificationHandler"),super.setNotificationHandler(r,o)});F(this,"replaceRequestHandler",(r,o)=>{let e=r.shape.method.value;this._registeredMethods.add(e),super.setRequestHandler(r,o)})}onEventDispatch(r,o){}_ensureEventSlot(r){let o=this._eventSlots.get(r);if(!o){let e=this.eventSchemas[r];if(!e)throw Error(`Unknown event: ${String(r)}`);o={listeners:[]},this._eventSlots.set(r,o);let i=e.shape.method.value;this._registeredMethods.add(i);let a=o;super.setNotificationHandler(e,s=>{var u;let c=s.params;this.onEventDispatch(r,c),(u=a.onHandler)==null||u.call(a,c);for(let b of[...a.listeners])b(c)})}return o}setEventHandler(r,o){let e=this._ensureEventSlot(r);e.onHandler&&o&&console.warn(`[MCP Apps] on${String(r)} handler replaced. Use addEventListener("${String(r)}", …) to add multiple listeners without replacing.`),e.onHandler=o}getEventHandler(r){var o;return(o=this._eventSlots.get(r))==null?void 0:o.onHandler}addEventListener(r,o){this._ensureEventSlot(r).listeners.push(o)}removeEventListener(r,o){let e=this._eventSlots.get(r);if(!e)return;let i=e.listeners.indexOf(o);i!==-1&&e.listeners.splice(i,1)}warnIfRequestHandlerReplaced(r,o,e){o&&e&&console.warn(`[MCP Apps] ${r} handler replaced. Previous handler will no longer be called.`)}_assertMethodNotRegistered(r,o){let e=r.shape.method.value;if(this._registeredMethods.has(e))throw Error(`Handler for "${e}" already registered (via ${o}). Use addEventListener() to attach multiple listeners, or the on* setter for replace semantics.`);this._registeredMethods.add(e)}}var _g="2026-01-26",kg="ui/notifications/tool-input-partial";class Sg{constructor(n=window.parent,r){F(this,"eventTarget");F(this,"eventSource");F(this,"messageListener");F(this,"onclose");F(this,"onerror");F(this,"onmessage");F(this,"sessionId");F(this,"setProtocolVersion");this.eventTarget=n,this.eventSource=r,this.messageListener=o=>{var i,a,s;if(r&&o.source!==this.eventSource){console.debug("Ignoring message from unknown source",o);return}let e=Rp.safeParse(o.data);e.success?(console.debug("Parsed message",e.data),(i=this.onmessage)==null||i.call(this,e.data)):((a=o.data)==null?void 0:a.jsonrpc)!=="2.0"?console.debug("Ignoring non-JSON-RPC message",e.error.message,o):(console.error("Failed to parse message",e.error.message,o),(s=this.onerror)==null||s.call(this,Error("Invalid JSON-RPC message received: "+e.error.message)))}}async start(){window.addEventListener("message",this.messageListener)}async send(n,r){n.method!==kg&&console.debug("Sending message",n),this.eventTarget.postMessage(n,"*")}async close(){var n;window.removeEventListener("message",this.messageListener),(n=this.onclose)==null||n.call(this)}}var wg=A([l("light"),l("dark")]).describe("Color theme preference for the host environment."),xt=A([l("inline"),l("fullscreen"),l("pip")]).describe("Display mode for UI presentation."),Ig=A([l("--color-background-primary"),l("--color-background-secondary"),l("--color-background-tertiary"),l("--color-background-inverse"),l("--color-background-ghost"),l("--color-background-info"),l("--color-background-danger"),l("--color-background-success"),l("--color-background-warning"),l("--color-background-disabled"),l("--color-text-primary"),l("--color-text-secondary"),l("--color-text-tertiary"),l("--color-text-inverse"),l("--color-text-ghost"),l("--color-text-info"),l("--color-text-danger"),l("--color-text-success"),l("--color-text-warning"),l("--color-text-disabled"),l("--color-border-primary"),l("--color-border-secondary"),l("--color-border-tertiary"),l("--color-border-inverse"),l("--color-border-ghost"),l("--color-border-info"),l("--color-border-danger"),l("--color-border-success"),l("--color-border-warning"),l("--color-border-disabled"),l("--color-ring-primary"),l("--color-ring-secondary"),l("--color-ring-inverse"),l("--color-ring-info"),l("--color-ring-danger"),l("--color-ring-success"),l("--color-ring-warning"),l("--font-sans"),l("--font-mono"),l("--font-weight-normal"),l("--font-weight-medium"),l("--font-weight-semibold"),l("--font-weight-bold"),l("--font-text-xs-size"),l("--font-text-sm-size"),l("--font-text-md-size"),l("--font-text-lg-size"),l("--font-heading-xs-size"),l("--font-heading-sm-size"),l("--font-heading-md-size"),l("--font-heading-lg-size"),l("--font-heading-xl-size"),l("--font-heading-2xl-size"),l("--font-heading-3xl-size"),l("--font-text-xs-line-height"),l("--font-text-sm-line-height"),l("--font-text-md-line-height"),l("--font-text-lg-line-height"),l("--font-heading-xs-line-height"),l("--font-heading-sm-line-height"),l("--font-heading-md-line-height"),l("--font-heading-lg-line-height"),l("--font-heading-xl-line-height"),l("--font-heading-2xl-line-height"),l("--font-heading-3xl-line-height"),l("--border-radius-xs"),l("--border-radius-sm"),l("--border-radius-md"),l("--border-radius-lg"),l("--border-radius-xl"),l("--border-radius-full"),l("--border-width-regular"),l("--shadow-hairline"),l("--shadow-sm"),l("--shadow-md"),l("--shadow-lg")]).describe("CSS variable keys available to MCP apps for theming."),xg=H(Ig.describe(`Style variables for theming MCP apps.
Individual style keys are optional - hosts may provide any subset of these values.
Values are strings containing CSS values (colors, sizes, font stacks, etc.).
Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),A([m(),St()]).describe(`Style variables for theming MCP apps.
Individual style keys are optional - hosts may provide any subset of these values.
Values are strings containing CSS values (colors, sizes, font stacks, etc.).
Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
for compatibility with Zod schema generation. Both are functionally equivalent for validation.`)).describe(`Style variables for theming MCP apps.
Individual style keys are optional - hosts may provide any subset of these values.
Values are strings containing CSS values (colors, sizes, font stacks, etc.).
Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);p({method:l("ui/open-link"),params:p({url:m().describe("URL to open in the host's browser")})});var zg=p({isError:V().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough(),jg=p({isError:V().optional().describe("True if the download failed (e.g., user cancelled or host denied).")}).passthrough(),Tg=p({isError:V().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();p({method:l("ui/notifications/sandbox-proxy-ready"),params:p({})});var qo=p({connectDomains:j(m()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
- Maps to CSP \`connect-src\` directive
- Empty or omitted → no network connections (secure default)`),resourceDomains:j(m()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),frameDomains:j(m()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),baseUriDomains:j(m()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")}),Ho=p({camera:p({}).optional().describe("Request camera access.\n\nMaps to Permission Policy `camera` feature."),microphone:p({}).optional().describe("Request microphone access.\n\nMaps to Permission Policy `microphone` feature."),geolocation:p({}).optional().describe("Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature."),clipboardWrite:p({}).optional().describe("Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.")});p({method:l("ui/notifications/size-changed"),params:p({width:P().optional().describe("New width in pixels."),height:P().optional().describe("New height in pixels.")})});var Ng=p({method:l("ui/notifications/tool-input"),params:p({arguments:H(m(),W().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})}),Og=p({method:l("ui/notifications/tool-input-partial"),params:p({arguments:H(m(),W().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})}),Eg=p({method:l("ui/notifications/tool-cancelled"),params:p({reason:m().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})}),Pg=p({fonts:m().optional()}),Ug=p({variables:xg.optional().describe("CSS variables for theming the app."),css:Pg.optional().describe("CSS blocks that apps can inject.")}),Dg=p({method:l("ui/resource-teardown"),params:p({})});H(m(),W());var ba=p({text:p({}).optional().describe("Host supports text content blocks."),image:p({}).optional().describe("Host supports image content blocks."),audio:p({}).optional().describe("Host supports audio content blocks."),resource:p({}).optional().describe("Host supports resource content blocks."),resourceLink:p({}).optional().describe("Host supports resource link content blocks."),structuredContent:p({}).optional().describe("Host supports structured content.")});p({method:l("ui/notifications/request-teardown"),params:p({}).optional()});var Rg=p({experimental:p({}).optional().describe("Experimental features (structure TBD)."),openLinks:p({}).optional().describe("Host supports opening external URLs."),downloadFile:p({}).optional().describe("Host supports file downloads via ui/download-file."),serverTools:p({listChanged:V().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:p({listChanged:V().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:p({}).optional().describe("Host accepts log messages."),sandbox:p({permissions:Ho.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:qo.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:ba.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:ba.optional().describe("Host supports receiving content messages (ui/message) from the view."),sampling:p({tools:p({}).optional().describe("Host supports tool use via `tools` and `toolChoice` parameters.")}).optional().describe("Host supports LLM sampling (sampling/createMessage) from the view.\nMirrors the MCP `ClientCapabilities.sampling` shape so hosts can pass it through.")}),Zg=p({experimental:p({}).optional().describe("Experimental features (structure TBD)."),tools:p({listChanged:V().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:j(xt).optional().describe("Display modes the app supports.")});p({method:l("ui/notifications/initialized"),params:p({}).optional()});p({csp:qo.optional().describe("Content Security Policy configuration for UI resources."),permissions:Ho.optional().describe("Sandbox permissions requested by the UI resource."),domain:m().optional().describe(`Dedicated origin for view sandbox.
Useful when views need stable, dedicated origins for OAuth callbacks, CORS policies, or API key allowlists.
**Host-dependent:** The format and validation rules for this field are determined by each host. Servers MUST consult host-specific documentation for the expected domain format. Common patterns include:
- Hash-based subdomains (e.g., \`{hash}.claudemcpcontent.com\`)
- URL-derived subdomains (e.g., \`www-example-com.oaiusercontent.com\`)
If omitted, host uses default sandbox origin (typically per-conversation).`),prefersBorder:V().optional().describe(`Visual boundary preference - true if view prefers a visible border.
Boolean requesting whether a visible border and background is provided by the host. Specifying an explicit value for this is recommended because hosts' defaults may vary.
- \`true\`: request visible border + background
- \`false\`: request no visible border + background
- omitted: host decides border`)});p({method:l("ui/request-display-mode"),params:p({mode:xt.describe("The display mode being requested.")})});var Cg=p({mode:xt.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough(),Ag=A([l("model"),l("app")]).describe("Tool visibility scope - who can access the tool.");p({resourceUri:m().optional(),visibility:j(Ag).optional().describe(`Who can access this tool. Default: ["model", "app"]
- "model": Tool visible to and callable by the agent
- "app": Tool callable by the app from this server only`),csp:We().optional(),permissions:We().optional()});p({mimeTypes:j(m()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});p({method:l("ui/download-file"),params:p({contents:j(A([Mu,qu])).describe("Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.")})});p({method:l("ui/message"),params:p({role:l("user").describe('Message role, currently only "user" is supported.'),content:j(Wt).describe("Message content blocks (text, image, etc.).")})});p({method:l("ui/notifications/sandbox-resource-ready"),params:p({html:m().describe("HTML content to load into the inner iframe."),sandbox:m().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:qo.optional().describe("CSP configuration from resource metadata."),permissions:Ho.optional().describe("Sandbox permissions from resource metadata.")})});var Lg=p({method:l("ui/notifications/tool-result"),params:br.describe("Standard MCP tool execution result.")}),Wu=p({toolInfo:p({id:qt.optional().describe("JSON-RPC id of the tools/call request."),tool:Mo.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:wg.optional().describe("Current color theme preference."),styles:Ug.optional().describe("Style configuration for theming the app."),displayMode:xt.optional().describe("How the UI is currently displayed."),availableDisplayModes:j(xt).optional().describe("Display modes the host supports."),containerDimensions:A([p({height:P().describe("Fixed container height in pixels.")}),p({maxHeight:A([P(),St()]).optional().describe("Maximum container height in pixels.")})]).and(A([p({width:P().describe("Fixed container width in pixels.")}),p({maxWidth:A([P(),St()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:m().optional().describe("User's language and region preference in BCP 47 format."),timeZone:m().optional().describe("User's timezone in IANA format."),userAgent:m().optional().describe("Host application identifier."),platform:A([l("web"),l("desktop"),l("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:p({touch:V().optional().describe("Whether the device supports touch input."),hover:V().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:p({top:P().describe("Top safe area inset in pixels."),right:P().describe("Right safe area inset in pixels."),bottom:P().describe("Bottom safe area inset in pixels."),left:P().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),Mg=p({method:l("ui/notifications/host-context-changed"),params:Wu.describe("Partial context update containing only changed fields.")});p({method:l("ui/update-model-context"),params:p({content:j(Wt).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:H(m(),W().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});p({method:l("ui/initialize"),params:p({appInfo:hr.describe("App identification (name and version)."),appCapabilities:Zg.describe("Features and capabilities this app provides."),protocolVersion:m().describe("Protocol version this app supports.")})});var qg=p({protocolVersion:m().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:hr.describe("Host application identification and version."),hostCapabilities:Rg.describe("Features and capabilities provided by the host."),hostContext:Wu.describe("Rich context about the host environment.")}).passthrough(),Hg={target:"draft-2020-12"};async function ya(t,n){let r=t["~standard"];if(r.jsonSchema)return r.jsonSchema[n](Hg);if(r.vendor==="zod"){let{z:o}=await od(()=>Promise.resolve().then(()=>Np),void 0,import.meta.url);return o.toJSONSchema(t,{io:n})}throw Error(`Schema (vendor: ${r.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function $a(t,n,r=""){let o=await t["~standard"].validate(n);if(o.issues){let e=o.issues.map(i=>{var s;let a=(s=i.path)==null?void 0:s.map(c=>typeof c=="object"?c.key:c).join(".");return a?`${a}: ${i.message}`:i.message}).join("; ");throw Error(r+e)}return o.value}const fn=class fn extends $g{constructor(r,o={},e={autoResize:!0}){super(e);F(this,"_appInfo");F(this,"_capabilities");F(this,"options");F(this,"_hostCapabilities");F(this,"_hostInfo");F(this,"_hostContext");F(this,"_registeredTools",{});F(this,"_initializedSent",!1);F(this,"eventSchemas",{toolinput:Ng,toolinputpartial:Og,toolresult:Lg,toolcancelled:Eg,hostcontextchanged:Mg});F(this,"_everHadListener",new Set);F(this,"_toolHandlersInitialized",!1);F(this,"_onteardown");F(this,"_oncalltool");F(this,"_onlisttools");F(this,"sendOpenLink",this.openLink);this._appInfo=r,this._capabilities=o,this.options=e,e.allowUnsafeEval||se({jitless:!0}),this.setRequestHandler(vr,i=>(console.log("Received ping:",i.params),{})),this.setEventHandler("hostcontextchanged",void 0)}_assertInitialized(r){var e;if(this._initializedSent)return;let o=`[ext-apps] App.${r}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if((e=this.options)!=null&&e.strict)throw Error(o);console.warn(`${o}. This will throw in a future release.`)}_assertHandlerTiming(r){var e;if(!fn.ONE_SHOT_EVENTS.has(r)||this._everHadListener.has(r)||(this._everHadListener.add(r),!this._initializedSent))return;let o=`[ext-apps] "${String(r)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if((e=this.options)!=null&&e.strict)throw Error(o);console.warn(o)}setEventHandler(r,o){o&&this._assertHandlerTiming(r),super.setEventHandler(r,o)}addEventListener(r,o){this._assertHandlerTiming(r),super.addEventListener(r,o)}onEventDispatch(r,o){r==="hostcontextchanged"&&(this._hostContext={...this._hostContext,...o})}registerCapabilities(r){if(this.transport)throw Error("Cannot register capabilities after transport is established");this._capabilities=yg(this._capabilities,r)}registerTool(r,o,e){if(this._registeredTools[r])throw Error(`Tool ${r} is already registered`);let i=this,a=()=>{var u;i._initializedSent&&((u=i._capabilities.tools)!=null&&u.listChanged)&&i.sendToolListChanged()},s=o.inputSchema!==void 0,c={title:o.title,description:o.description,inputSchema:o.inputSchema,outputSchema:o.outputSchema,annotations:o.annotations,_meta:o._meta,enabled:!0,enable(){this.enabled=!0,a()},disable(){this.enabled=!1,a()},update(u){Object.assign(this,u),a()},remove(){i._registeredTools[r]===c&&(delete i._registeredTools[r],a())},handler:async(u,b)=>{if(!c.enabled)throw Error(`Tool ${r} is disabled`);let y;if(s){let _=c.inputSchema,I=_?await $a(_,u??{},`Invalid input for tool ${r}: `):u??{};y=await e(I,b)}else y=await e(b);return c.outputSchema&&!y.isError&&(y.structuredContent=await $a(c.outputSchema,y.structuredContent,`Invalid output for tool ${r}: `)),y}};return this._registeredTools[r]=c,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),a(),c}ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(r,o)=>{let e=this._registeredTools[r.name];if(!e)throw Error(`Tool ${r.name} not found`);return e.handler(r.arguments,o)},this.onlisttools=async(r,o)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([e,i])=>i.enabled).map(async([e,i])=>{let a={name:e,title:i.title,description:i.description,inputSchema:i.inputSchema?await ya(i.inputSchema,"input"):{type:"object",properties:{}}};return i.outputSchema&&(a.outputSchema=await ya(i.outputSchema,"output")),i.annotations&&(a.annotations=i.annotations),i._meta&&(a._meta=i._meta),a}))}))}async sendToolListChanged(r={}){this._assertInitialized("sendToolListChanged"),await this.notification({method:"notifications/tools/list_changed",params:r})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler("toolinput")}set ontoolinput(r){this.setEventHandler("toolinput",r)}get ontoolinputpartial(){return this.getEventHandler("toolinputpartial")}set ontoolinputpartial(r){this.setEventHandler("toolinputpartial",r)}get ontoolresult(){return this.getEventHandler("toolresult")}set ontoolresult(r){this.setEventHandler("toolresult",r)}get ontoolcancelled(){return this.getEventHandler("toolcancelled")}set ontoolcancelled(r){this.setEventHandler("toolcancelled",r)}get onhostcontextchanged(){return this.getEventHandler("hostcontextchanged")}set onhostcontextchanged(r){this.setEventHandler("hostcontextchanged",r)}get onteardown(){return this._onteardown}set onteardown(r){this.warnIfRequestHandlerReplaced("onteardown",this._onteardown,r),this._onteardown=r,this.replaceRequestHandler(Dg,(o,e)=>{if(!this._onteardown)throw Error("No onteardown handler set");return this._onteardown(o.params,e)})}get oncalltool(){return this._oncalltool}set oncalltool(r){this.warnIfRequestHandlerReplaced("oncalltool",this._oncalltool,r),this._oncalltool=r,this.replaceRequestHandler(Bu,(o,e)=>{if(!this._oncalltool)throw Error("No oncalltool handler set");return this._oncalltool(o.params,e)})}get onlisttools(){return this._onlisttools}set onlisttools(r){this.warnIfRequestHandlerReplaced("onlisttools",this._onlisttools,r),this._onlisttools=r,this.replaceRequestHandler(Hu,(o,e)=>{if(!this._onlisttools)throw Error("No onlisttools handler set");return this._onlisttools(o.params,e)})}assertCapabilityForMethod(r){var o;switch(r){case"sampling/createMessage":if(!((o=this._hostCapabilities)!=null&&o.sampling))throw Error(`Host does not support sampling (required for ${r})`);break}}assertRequestHandlerCapability(r){switch(r){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${r})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${r} registered`)}}assertNotificationCapability(r){}assertTaskCapability(r){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(r){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(r,o){if(this._assertInitialized("callServerTool"),typeof r=="string")throw Error(`callServerTool() expects an object as its first argument, but received a string ("${r}"). Did you mean: callServerTool({ name: "${r}", arguments: { ... } })?`);return await this.request({method:"tools/call",params:r},br,{onprogress:()=>{},resetTimeoutOnProgress:!0,...o})}async readServerResource(r,o){return this._assertInitialized("readServerResource"),await this.request({method:"resources/read",params:r},Lu,o)}async listServerResources(r,o){return this._assertInitialized("listServerResources"),await this.request({method:"resources/list",params:r},Au,o)}async createSamplingMessage(r,o){this._assertInitialized("createSamplingMessage");let e=r.tools?Vu:Ju;return await this.request({method:"sampling/createMessage",params:r},e,o)}sendMessage(r,o){return this._assertInitialized("sendMessage"),this.request({method:"ui/message",params:r},Tg,o)}sendLog(r){return this.notification({method:"notifications/message",params:r})}updateModelContext(r,o){return this._assertInitialized("updateModelContext"),this.request({method:"ui/update-model-context",params:r},xo,o)}openLink(r,o){return this._assertInitialized("openLink"),this.request({method:"ui/open-link",params:r},zg,o)}downloadFile(r,o){return this._assertInitialized("downloadFile"),this.request({method:"ui/download-file",params:r},jg,o)}requestTeardown(r={}){return this.notification({method:"ui/notifications/request-teardown",params:r})}requestDisplayMode(r,o){return this._assertInitialized("requestDisplayMode"),this.request({method:"ui/request-display-mode",params:r},Cg,o)}sendSizeChanged(r){return this.notification({method:"ui/notifications/size-changed",params:r})}setupSizeChangedNotifications(){let r=!1,o=0,e=0,i=()=>{r||(r=!0,requestAnimationFrame(()=>{r=!1;let s=document.documentElement,c=s.style.height;s.style.height="max-content";let u=Math.ceil(s.getBoundingClientRect().height);s.style.height=c;let b=Math.ceil(window.innerWidth);(b!==o||u!==e)&&(o=b,e=u,this.sendSizeChanged({width:b,height:u}))}))};i();let a=new ResizeObserver(i);return a.observe(document.documentElement),a.observe(document.body),()=>a.disconnect()}async connect(r=new Sg(window.parent,window.parent),o){var e;if(this.transport)throw Error("App is already connected. Call close() before connecting again.");this._initializedSent=!1,await super.connect(r);try{let i=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:_g}},qg,o);if(i===void 0)throw Error(`Server sent invalid initialize result: ${i}`);this._hostCapabilities=i.hostCapabilities,this._hostInfo=i.hostInfo,this._hostContext=i.hostContext,await this.notification({method:"ui/notifications/initialized"}),this._initializedSent=!0,(e=this.options)!=null&&e.autoResize&&this.setupSizeChangedNotifications()}catch(i){throw this.close(),i}}};F(fn,"ONE_SHOT_EVENTS",new Set(["toolinput","toolinputpartial","toolresult","toolcancelled"]));let Ir=fn;const Ie=new Ir({name:"FineTuneStudio",version:"1.0.0"}),rt=[{modelId:"HuggingFaceTB/SmolLM2-1.7B-Instruct",author:"HuggingFaceTB",downloads:58e5,likes:1300,pipeline_tag:"text-generation",tags:["pytorch","transformers","llm","small"]},{modelId:"Qwen/Qwen2.5-3B-Instruct",author:"Qwen",downloads:32e5,likes:850,pipeline_tag:"text-generation",tags:["pytorch","qwen","transformers"]},{modelId:"meta-llama/Llama-3.2-3B-Instruct",author:"meta-llama",downloads:9e6,likes:2400,pipeline_tag:"text-generation",tags:["llama","pytorch","gated"]},{modelId:"microsoft/Phi-3-mini-4k-instruct",author:"microsoft",downloads:41e5,likes:1600,pipeline_tag:"text-generation",tags:["phi","pytorch","transformers"]}],Bo=["meta-llama/Llama-3.2-3B-Instruct","meta-llama/Llama-3.1-8B-Instruct","Qwen/Qwen2.5-7B-Instruct","mistralai/Mistral-7B-Instruct-v0.3","google/gemma-2-2b-it"],Gu=[{value:"spaces-a10g-large",label:"A10G 24GB — Recommended",est:"~$1.50/hr · ~15 min"},{value:"spaces-a10g-small",label:"A10G 24GB (small)",est:"~$0.75/hr · ~20 min"},{value:"spaces-a100-large",label:"A100 80GB — Large models",est:"~$4.00/hr · ~10 min"},{value:"spaces-t4-medium",label:"T4 16GB — Budget",est:"~$0.40/hr · ~45 min"}];let Je="train",ae=1,fe=null,$e=[],un=!1,_e=null,Ne=[],dn=!1,dt="hub",mt="",Ae=null,ee=null,Ye=null,te="starting",Fo="",yt=[],Xt=null,ye={loss:null,epoch:null},en=null,pt=!0,me=null,De=null,mn=null,et=!1,tt="",bt=!1,Ku="",Te=Bo[0],je=Bo[0],Pe=!1,Re=[],de={temperature:.7,topP:.9,maxTokens:512,systemPrompt:""},xr=!1,Ze=!1,ve="";function zt(){const t=((fe==null?void 0:fe.modelId)||"model").split("/").pop().toLowerCase().replace(/[^a-z0-9-]/g,"-"),n=Date.now().toString().slice(-6);return{trainingType:"sft",chatTemplate:"none",epochs:2,batchSize:1,learningRate:2e-4,blockSize:1024,gradientAccumulation:4,warmupRatio:.1,weightDecay:.01,loraR:16,loraAlpha:32,loraDropout:.05,targetModules:"all-linear",quantization:"int4",hardware:"spaces-a10g-large",projectName:`ft-${t}-${n}`,datasetSplit:"train",textColumn:"text",maxSteps:0}}let S=zt();const C=t=>String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),zr=t=>t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"k":t.toString();function Qu(t){let n=C(t);return n=n.replace(/```[\w]*\n?([\s\S]*?)```/g,"<pre><code>$1</code></pre>"),n=n.replace(/`([^`]+)`/g,"<code>$1</code>"),n=n.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),n=n.replace(/\*([^*]+)\*/g,"<em>$1</em>"),n=n.replace(/^### (.+)$/gm,"<h4 style='margin:6px 0 3px;font-size:13px;color:#f0f6fc'>$1</h4>"),n=n.replace(/^## (.+)$/gm,"<h3 style='margin:8px 0 4px;font-size:14px;color:#f0f6fc'>$1</h3>"),n=n.replace(/^# (.+)$/gm,"<h2 style='margin:8px 0 4px;font-size:15px;color:#f0f6fc'>$1</h2>"),n=n.replace(/^[•·\-] (.+)$/gm,"<li style='margin-left:16px;list-style:disc;'>$1</li>"),n=n.replace(/^\d+\. (.+)$/gm,"<li style='margin-left:16px;list-style:decimal;'>$1</li>"),n=n.replace(/\n\n/g,"<br><br>"),n=n.replace(/\n(?!<\/?(li|h[1-6]|pre|code))/g,"<br>"),n}function Bg(t,n){const r=t.trim().split(`
`).filter(i=>i.trim()),o=[];let e=0;for(let i=0;i<r.length;i++){const a=i+1;try{const s=JSON.parse(r[i]);if(n==="sft")if(!s.messages&&!s.text)o.push({line:a,message:"Missing 'messages' or 'text' field"});else if(s.messages)if(!Array.isArray(s.messages))o.push({line:a,message:"'messages' must be an array"});else{const c=s.messages.some(b=>b.role==="user"),u=s.messages.some(b=>b.role==="assistant");!c||!u?o.push({line:a,message:"Need both 'user' and 'assistant' roles"}):e++}else e++;else!s.prompt||!s.chosen||!s.rejected?o.push({line:a,message:"Missing 'prompt', 'chosen', or 'rejected'"}):e++}catch{o.push({line:a,message:"Invalid JSON"})}}return{total:r.length,valid:e,errors:o.slice(0,5)}}function Fg(t,n=120,r=28){if(t.length<2)return"";const o=Math.min(...t),i=Math.max(...t)-o||1,a=t.map((s,c)=>{const u=c/(t.length-1)*n,b=r-(s-o)/i*(r-4)-2;return`${u.toFixed(1)},${b.toFixed(1)}`}).join(" ");return`<svg width="${n}" height="${r}" style="overflow:visible" viewBox="0 0 ${n} ${r}">
<polyline points="${a}" fill="none" stroke="#2563eb" stroke-width="1.5" stroke-linejoin="round"/>
<circle cx="${(t.length-1)/(t.length-1)*n}" cy="${r-(t[t.length-1]-o)/i*(r-4)-2}" r="2.5" fill="#2563eb"/>
</svg>`}function Yu(t){const n=Math.floor(t/1e3);if(n<60)return`${n}s`;const r=Math.floor(n/60),o=n%60;return`${r}m ${o}s`}function pn(t,n=!0,r=!1){const o=r||(fe==null?void 0:fe.modelId)===t.modelId;return`
<div class="model-card${o?" selected":""}" data-model-id="${C(t.modelId)}" role="button">
<div class="card-body">
<div class="card-name">${C(t.modelId)}</div>
<div class="card-meta">
<span class="card-meta-item">
<svg width="10" height="10" viewBox="0 0 16 16" fill="currentColor"><path d="M8.878.392a1.75 1.75 0 0 0-1.756 0l-5.25 3.045A1.75 1.75 0 0 0 1 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 0 0 1.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392ZM7.875 1.69a.25.25 0 0 1 .25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"/></svg>
${C(t.author)}
</span>
<span class="card-meta-item">⬇ ${zr(t.downloads)}</span>
<span class="card-meta-item">♥ ${zr(t.likes)}</span>
</div>
<div class="tag-pills">${t.tags.map(e=>`<span class="tag-pill">${C(e)}</span>`).join("")}</div>
</div>
${n?`<div class="card-action"><button class="btn btn-accent btn-sm select-model-btn" data-model-id="${C(t.modelId)}">${o?"✓ Selected":"Select"}</button></div>`:""}
</div>`}function Xu(t){const n=(_e==null?void 0:_e.datasetId)===t.datasetId;return`
<div class="dataset-card${n?" selected":""}" data-dataset-id="${C(t.datasetId)}" role="button">
<div class="card-body">
<div class="card-name">${C(t.datasetId)}</div>
<div class="card-meta">
<span class="card-meta-item">${C(t.author)}</span>
<span class="card-meta-item">⬇ ${zr(t.downloads)}</span>
${t.size?`<span class="card-meta-item">📦 ${C(t.size)}</span>`:""}
</div>
${t.description?`<div class="card-desc">${C(t.description)}</div>`:""}
<div class="tag-pills">${t.tags.map(r=>`<span class="tag-pill">${C(r)}</span>`).join("")}</div>
</div>
<div class="card-action"><button class="btn btn-accent btn-sm select-dataset-btn" data-dataset-id="${C(t.datasetId)}">${n?"✓ Selected":"Select"}</button></div>
</div>`}function _a(){const t=["Select Model","Dataset","Configure","Training"],n=t.map((r,o)=>o<t.length-1?`<div class="wizard-connector${o+1<ae?" done":""}"></div>`:"");return`<div class="wizard-bar">
${t.map((r,o)=>{const e=o+1,i=e<ae||e===4&&te==="completed",s=i?"done":e===ae&&!(e===4&&te==="completed")?"active":"",c=i?'<span class="step-done-icon">✓</span>':`<span class="step-num">${e}</span>`;return`<div class="wizard-step ${s}">
${c}
<span>${r}</span>
</div>${n[o]}`}).join("")}
</div>`}function Jg(){const t=un?'<div class="empty-results"><span class="loading-spinner"></span></div>':$e.length>0?$e.map(r=>pn(r)).join(""):`<div class="section-label" style="margin-bottom:12px">⚡ Popular models</div>${rt.map(r=>pn(r)).join("")}`;return`
<div class="step-body">
${fe?`<div class="selected-model-bar">
<svg width="12" height="12" viewBox="0 0 16 16" fill="#58a6ff"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.75.75 0 0 1 1.06-1.06L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"/></svg>
${C(fe.modelId)}
<button class="clear-sel" id="clear-model-btn">×</button>
</div>`:""}
<div class="search-wrap">
<svg width="13" height="13" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5">
<circle cx="6.5" cy="6.5" r="4.5"/><line x1="9.5" y1="9.5" x2="14" y2="14"/>
</svg>
<input id="model-search" class="search-input" type="text" placeholder="Search Hugging Face models…" value="" autocomplete="off"/>
</div>
<div class="card-list" id="model-results">${t}</div>
</div>`}function Vg(t){return t==="sft"?`<span class="key">{"messages"</span>: [
<span class="key">{"role"</span>: <span class="string">"system"</span>, <span class="key">"content"</span>: <span class="string">"You are a helpful assistant."</span>},
<span class="key">{"role"</span>: <span class="string">"user"</span>, <span class="key">"content"</span>: <span class="string">"What is Python?"</span>},
<span class="key">{"role"</span>: <span class="string">"assistant"</span>, <span class="key">"content"</span>: <span class="string">"Python is..."</span>}
]}`:`<span class="key">{"prompt"</span>: <span class="string">"Explain quantum computing"</span>,
<span class="key">"chosen"</span>: <span class="string">"Quantum computing uses qubits..."</span>,
<span class="key">"rejected"</span>: <span class="string">"It's very complicated magic..."</span>}`}function Wg(){const t=dt==="hub",n=dn?'<div class="empty-results"><span class="loading-spinner"></span></div>':Ne.length>0?Ne.map(i=>Xu(i)).join(""):'<div class="empty-results">Type to search Hugging Face datasets</div>',r=_e?`<div class="selected-model-bar">
<svg width="12" height="12" viewBox="0 0 16 16" fill="#58a6ff"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.75.75 0 0 1 1.06-1.06L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"/></svg>
${C(_e.datasetId)}
<button class="clear-sel" id="clear-dataset-btn">×</button>
</div>`:"",o=Ae,e=Ae&&mt.trim()?o.errors.length===0?`<div class="validation-bar ok">✅ ${o.valid} valid rows detected</div>`:`<div class="validation-bar err">❌ ${o.errors.length} error(s) — ${o.valid} of ${o.total} rows valid</div>
<div class="validation-errors">${o.errors.map(i=>`Line ${i.line}: ${C(i.message)}`).join(`
`)}</div>`:"";return`
<div class="step-body">
<div class="toggle-group" style="margin-bottom:12px">
<button class="toggle-btn${t?" active":""}" id="mode-hub">🤗 Hub Dataset</button>
<button class="toggle-btn${t?"":" active"}" id="mode-custom">📋 Custom Data</button>
</div>
${t?`
${r}
<div class="search-wrap">
<svg width="13" height="13" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5">
<circle cx="6.5" cy="6.5" r="4.5"/><line x1="9.5" y1="9.5" x2="14" y2="14"/>
</svg>
<input id="dataset-search" class="search-input" type="text" placeholder="Search datasets (e.g. openassistant, alpaca…)" autocomplete="off"/>
</div>
<div class="card-list" id="dataset-results">${n}</div>
${_e?`
<div class="divider"></div>
<div class="form-grid">
<div class="form-group">
<label class="form-label">Split name</label>
<input class="form-input" id="ds-split" value="${C(S.datasetSplit)}" placeholder="train"/>
<span class="hint-text">⚠️ Check the dataset page for the exact split name — many datasets use names like <strong>train_sft</strong> instead of <strong>train</strong>.</span>
</div>
<div class="form-group">
<label class="form-label">Text column</label>
<input class="form-input" id="ds-text-col" value="${C(S.textColumn)}" placeholder="text"/>
</div>
</div>`:""}
`:`
<div class="section-label">Expected format (${S.trainingType.toUpperCase()})</div>
<div class="format-guide">${Vg(S.trainingType)}</div>
<div class="form-group">
<label class="form-label">Paste your JSONL data</label>
<textarea class="form-textarea" id="custom-data" rows="8"
placeholder='{"messages": [{"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hi!"}]}'
style="height:160px;font-family:monospace;font-size:11.5px">${C(mt)}</textarea>
</div>
${e}
`}
</div>`}function ed(){const t=Gu.find(n=>n.value===S.hardware);return t?t.est:""}function Gg(){return`
<div class="step-body">
<div class="form-section">
<div class="form-section-title">⚙ Training Type</div>
<div class="radio-group">
${[{v:"sft",label:"SFT — Supervised Fine-Tuning",desc:"Standard fine-tuning on labeled input/output pairs. Best for most use cases."},{v:"dpo",label:"DPO — Direct Preference Optimization",desc:"Train on preference pairs (chosen vs rejected). Great for alignment."},{v:"orpo",label:"ORPO — Odds Ratio Preference Optimization",desc:"Alternative to DPO, often more stable."}].map(t=>`
<label class="radio-option${S.trainingType===t.v?" selected":""}" data-type="${t.v}">
<input type="radio" name="training-type" value="${t.v}" ${S.trainingType===t.v?"checked":""}/>
<div>
<div class="radio-label">${t.label}</div>
<div class="radio-desc">${t.desc}</div>
</div>
</label>`).join("")}
</div>
</div>
<div class="form-section">
<div class="form-section-title">💬 Chat Template</div>
<div class="form-group">
<select class="form-select" id="chat-template">
${[{v:"none",label:"none — plain text datasets (guanaco, alpaca-style, etc.)"},{v:"tokenizer",label:"tokenizer — auto-detect from model (use with messages-format datasets)"},{v:"chatml",label:"chatml"},{v:"alpaca",label:"alpaca"},{v:"llama3",label:"llama3"},{v:"phi3",label:"phi3"}].map(t=>`<option value="${t.v}" ${S.chatTemplate===t.v?"selected":""}>${t.label}</option>`).join("")}
</select>
<span class="hint-text">
Use <strong>none</strong> for plain-text datasets (e.g. guanaco, dolly, alpaca) that already contain the full prompt in a single text column.<br>
Use <strong>tokenizer</strong> only if your dataset has a <code>messages</code> column with a list of <code>{role, content}</code> dicts.
</span>
</div>
</div>
<div class="form-section">
<div class="form-section-title">🚀 Hyperparameters</div>
<div class="form-grid">
<div class="form-group">
<label class="form-label">Epochs</label>
<input class="form-input" id="hp-epochs" type="number" min="1" max="10" value="${S.epochs}"/>
</div>
<div class="form-group">
<label class="form-label">Max Steps <span style="font-weight:400;color:#8b949e">(0 = full dataset)</span></label>
<input class="form-input" id="hp-max-steps" type="number" min="0" step="50" value="${S.maxSteps}" placeholder="0"/>
</div>
<div class="form-group">
<label class="form-label">Batch Size</label>
<select class="form-select" id="hp-batch">
${[1,2,4,8,16].map(t=>`<option value="${t}" ${S.batchSize===t?"selected":""}>${t}</option>`).join("")}
</select>
</div>
<div class="form-group">
<label class="form-label">Learning Rate</label>
<input class="form-input" id="hp-lr" type="number" step="0.00001" value="${S.learningRate}"/>
</div>
<div class="form-group">
<label class="form-label">Block Size</label>
<select class="form-select" id="hp-block">
${[512,1024,2048,4096].map(t=>`<option value="${t}" ${S.blockSize===t?"selected":""}>${t}</option>`).join("")}
</select>
</div>
<div class="form-group">
<label class="form-label">Gradient Accumulation</label>
<select class="form-select" id="hp-grad-acc">
${[1,2,4,8,16].map(t=>`<option value="${t}" ${S.gradientAccumulation===t?"selected":""}>${t}</option>`).join("")}
</select>
</div>
<div class="form-group">
<label class="form-label">Warmup Ratio</label>
<input class="form-input" id="hp-warmup" type="number" step="0.01" min="0" max="1" value="${S.warmupRatio}"/>
</div>
<div class="form-group">
<label class="form-label">Weight Decay</label>
<input class="form-input" id="hp-wdecay" type="number" step="0.001" min="0" value="${S.weightDecay}"/>
</div>
</div>
</div>
<div class="form-section">
<div class="collapsible-header" id="lora-toggle">
<div class="collapsible-title">
<svg width="12" height="12" viewBox="0 0 16 16" fill="#58a6ff"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7-3.25v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5a.75.75 0 0 1 1.5 0Z"/></svg>
LoRA Settings
</div>
<svg class="collapsible-chevron open" id="lora-chevron" width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"/></svg>
</div>
<div class="collapsible-body open" id="lora-body">
<div class="form-grid">
<div class="form-group">
<label class="form-label">LoRA Rank (r)</label>
<select class="form-select" id="hp-lora-r">
${[4,8,16,32,64].map(t=>`<option value="${t}" ${S.loraR===t?"selected":""}>${t}</option>`).join("")}
</select>
</div>
<div class="form-group">
<label class="form-label">LoRA Alpha</label>
<input class="form-input" id="hp-lora-alpha" type="number" value="${S.loraAlpha}"/>
</div>
<div class="form-group">
<label class="form-label">LoRA Dropout</label>
<input class="form-input" id="hp-lora-drop" type="number" step="0.01" min="0" max="1" value="${S.loraDropout}"/>
</div>
<div class="form-group">
<label class="form-label">Quantization</label>
<select class="form-select" id="hp-quant">
${["none","int4","int8"].map(t=>`<option value="${t}" ${S.quantization===t?"selected":""}>${t==="none"?"None":t}</option>`).join("")}
</select>
</div>
<div class="form-group full">
<label class="form-label">Target Modules</label>
<input class="form-input" id="hp-target-mods" value="${C(S.targetModules)}" placeholder="all-linear"/>
</div>
</div>
</div>
</div>
<div class="form-section">
<div class="form-section-title">🖥 Hardware & Project</div>
<div class="form-grid">
<div class="form-group full">
<label class="form-label">Hardware</label>
<select class="form-select" id="hp-hardware">
${Gu.map(t=>`<option value="${t.value}" ${S.hardware===t.value?"selected":""}>${t.label}</option>`).join("")}
</select>
</div>
<div class="form-group full">
<label class="form-label">Project Name (becomes your HF model repo name)</label>
<input class="form-input" id="hp-project" value="${C(S.projectName)}" placeholder="my-finetuned-model"/>
</div>
</div>
<div class="cost-estimate">
<svg width="12" height="12" viewBox="0 0 16 16" fill="#e3b341"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/></svg>
Estimated: <strong>${ed()}</strong> · Costs billed to your HF account
</div>
</div>
${bt?`
<div class="error-msg" style="background:#fffbeb;border-color:#fcd34d;color:#92400e">
<div style="font-weight:700;margin-bottom:6px">⚠️ One-time setup required</div>
<div style="margin-bottom:10px;line-height:1.6">
HF retired the old AutoTrain cloud API. You now need to deploy
<strong>AutoTrain Advanced</strong> as a Space in your HF account (free, one-time setup):
</div>
<ol style="margin-left:16px;line-height:1.9;font-size:11.5px">
<li>Open <a href="${C(Ku)}" target="_blank" style="color:#2563eb;font-weight:600">huggingface.co/spaces/huggingface/autotrain-advanced</a></li>
<li>Click <strong>"Duplicate this Space"</strong></li>
<li>Name it exactly <code style="background:rgba(0,0,0,0.06);padding:1px 5px;border-radius:3px">autotrain-advanced</code></li>
<li>Add your <code style="background:rgba(0,0,0,0.06);padding:1px 5px;border-radius:3px">HF_TOKEN</code> as a Space secret</li>
<li>Wait ~1 min for it to start, then click <strong>Start Training</strong> again</li>
</ol>
</div>`:tt?`<div class="error-msg">${C(tt)}</div>`:""}
</div>`}function Jo(){const t=mn??(ee?Yu(Date.now()-ee.started_at):"0s"),n=te==="completed"?"completed":te==="error"?"error":te==="training"?"training":"starting",r=te==="completed"?"✅ Training complete — check HF Hub for your model":te==="error"?"❌ Training error — check logs below":te==="training"?"Training in progress…":"Starting up training environment…",o=te==="completed"?100:te==="training"&&ye.epoch&&S.epochs?Math.min(99,ye.epoch/S.epochs*100):te==="training"?35:10,e=Fo.split(`
`).filter(i=>i.trim()).slice(-50);return`
<div class="step-body">
<div class="status-banner ${n}">
${te!=="completed"&&te!=="error"?'<div class="pulse-dot"></div>':""}
<span>${r}</span>
${ee?`<span style="margin-left:auto;font-size:11.5px;opacity:0.7">${t}</span>`:""}
</div>
${te==="completed"&&ee?`
<div class="success-box" style="margin-bottom:14px">
<h3>🎉 Training complete!</h3>
${me?`
<div style="background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:8px 12px;margin-bottom:8px;font-family:monospace;font-size:12px;color:#58a6ff;display:flex;align-items:center;gap:8px">
<span style="color:#8b949e;flex-shrink:0">Model ID:</span>
<span style="flex:1">${C(me)}</span>
</div>
`:""}
${De?`
<div style="background:#0d2311;border:1px solid #1f6335;border-radius:6px;padding:8px 12px;margin-bottom:8px;font-size:11.5px;color:#3fb950;display:flex;align-items:center;gap:8px">
<span style="font-size:14px">🚀</span>
<span>Inference Space deployed — building now (~23 min).
<a href="${C(De)}" target="_blank" style="color:#58a6ff;margin-left:4px">View Space →</a>
</span>
</div>
`:`
<div style="background:#161b22;border:1px solid #30363d;border-radius:6px;padding:8px 12px;margin-bottom:8px;font-size:11.5px;color:#8b949e">
⏳ Deploying inference Space…
</div>
`}
<p style="font-size:11px;color:#8b949e;margin-bottom:8px">The inference Space loads your model via transformers — click "Chat with model" once the Space is running (23 min).</p>
<div style="display:flex;gap:8px;flex-wrap:wrap">
<button class="btn btn-secondary btn-sm" id="view-on-hub-btn" data-url="${C(ee.model_url)}">🤗 View on Hub</button>
<button class="btn btn-accent btn-sm" id="go-to-inference-btn">💬 Chat with model →</button>
<button class="btn btn-ghost btn-sm" id="redeploy-space-btn" title="Redeploy inference Space with updated code" style="font-size:11px;color:#58a6ff;border:1px solid #58a6ff33">🔄 Redeploy Space</button>
</div>
</div>
`:""}
<div class="progress-wrap">
<div class="progress-header">
<span>${te==="training"&&ye.epoch!==null?`Epoch ${Math.min(S.epochs,Math.ceil(ye.epoch||.001))} of ${S.epochs}`:te==="completed"?"Complete":"Initializing…"}</span>
<span>${o.toFixed(0)}%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width:${o}%"></div>
</div>
</div>
<div class="metrics-grid">
<div class="metric-card">
<div class="metric-label">Training Loss</div>
<div class="metric-value">${ye.loss!==null?ye.loss.toFixed(4):"—"}</div>
<div class="sparkline-wrap">${Fg(yt)}</div>
</div>
<div class="metric-card">
<div class="metric-label">Epoch</div>
<div class="metric-value">${ye.epoch!==null?`${Math.min(S.epochs,Math.ceil(ye.epoch||.001))} of ${S.epochs}`:"—"}</div>
<div class="metric-sub">epochs</div>
</div>
<div class="metric-card">
<div class="metric-label">Steps</div>
<div class="metric-value">${ye.epoch!==null&&en&&S.epochs?`${Math.round(ye.epoch/S.epochs*en).toLocaleString()} of ${en.toLocaleString()}`:"—"}</div>
<div class="metric-sub">steps</div>
</div>
<div class="metric-card">
<div class="metric-label">Elapsed</div>
<div class="metric-value" style="font-size:14px">${t}</div>
<div class="metric-sub">${S.hardware.replace("spaces-","")}</div>
</div>
</div>
<div class="log-wrap">
<div class="log-header">
<span class="section-label" style="margin-bottom:0">Training Logs</span>
<button class="btn btn-ghost btn-sm" id="toggle-logs">${pt?"Collapse":"Expand"}</button>
</div>
${pt?`
<div class="log-body" id="log-body" style="background:#1e293b;color:#f0f6fc">
${e.length>0?e.map(i=>{const a=/error|exception/i.test(i)?"error":/loss|step|epoch/i.test(i)?"highlight":/complete|done|finish|push/i.test(i)?"success":"";return`<div class="log-line${a?" "+a:""}" style="color:inherit">${C(i)}</div>`}).join(""):'<div class="log-line" style="color:#ffffff">Still waiting for logs…</div>'}
</div>`:""}
</div>
${ee?`
<div style="font-size:11.5px;color:#484f58;text-align:center">
<a href="${C(ee.training_space_url||ee.space_url)}" target="_blank" style="color:#58a6ff">View Training Space</a>
&nbsp;·&nbsp;
<a href="${C((ee.training_space_url||ee.space_url)+"?logs=container")}" target="_blank" style="color:#58a6ff">Raw Logs</a>
&nbsp;·&nbsp; Polling every 10s
</div>`:""}
</div>`}function Kg(){if(ae===4)return"";const t=ae===1?!!fe:ae===2?dt==="hub"?!!_e:mt.trim().length>0&&(Ae==null?void 0:Ae.errors.length)===0:!0;return`<div class="step-nav">
${ae>1?'<button class="btn btn-secondary" id="back-btn">← Back</button>':"<div></div>"}
<div style="display:flex;align-items:center;gap:10px">
${ae===3?`<button class="btn btn-primary" id="start-training-btn" ${et?"disabled":""}>
${et?'<span class="loading-spinner"></span> Starting…':"🚀 Start Training"}
</button>`:`<button class="btn btn-accent" id="next-btn" ${t?"":"disabled"}>Next →</button>`}
</div>
</div>`}function Qg(){const n=Re.length===0?`<div class="chat-empty">
<div class="chat-empty-icon">💬</div>
<div class="chat-empty-title">Chat with any HF model</div>
<div class="chat-empty-sub">Select a model above and start a conversation. Works with any model on the Inference API.</div>
</div>`:Re.filter(o=>o.role!=="system").map((o,e)=>{const i=o.role==="user",s=i?"You":(Pe&&je||Te).split("/").pop()||"Model",c=i?C(o.content):Qu(o.content);return`<div class="msg-row ${o.role}" data-msg-idx="${e}">
<div class="msg-label">${C(s)}</div>
<div class="msg-bubble">${c}</div>
</div>`}).join("");return`
<div class="chat-layout" style="height:100%">
<div class="chat-topbar">
<div class="model-selector-wrap" id="model-sel-wrap" style="display:flex;gap:6px;flex:1;min-width:0">
<select class="model-selector" id="inference-model-sel" style="flex:1;min-width:0">
${[...me?[me]:[],...Bo.filter(o=>o!==me)].map(o=>`<option value="${C(o)}" ${!Pe&&Te===o?"selected":""}>${C(o)}</option>`).join("")}
<option value="__custom__" ${Pe?"selected":""}>Custom model ID…</option>
</select>
${Pe?`<input class="form-input" id="custom-model-input" type="text"
placeholder="e.g. avi81/my-fine-tuned-model"
value="${C(je)}"
style="flex:2;min-width:0;font-size:11.5px"/>`:""}
</div>
<button class="btn btn-ghost btn-sm" id="settings-toggle" title="Settings">
<svg width="13" height="13" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.103-.303c-.066-.019-.176-.011-.299.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.212.224l-.288 1.107c-.17.645-.715 1.195-1.458 1.259a8.25 8.25 0 0 1-1.402 0c-.744-.064-1.289-.614-1.458-1.26l-.288-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.103.303c.066.019.176.011.299-.071.214-.143.437-.272.668-.386.133-.066.194-.158.212-.224l.288-1.107c.17-.645.715-1.195 1.458-1.259A8.25 8.25 0 0 1 8 0ZM6.5 8a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Z"/></svg>
Settings
</button>
${Re.length>0?'<button class="btn btn-ghost btn-sm" id="clear-chat-btn">Clear</button>':""}
</div>
<div class="settings-panel${xr?" open":""}">
<div class="settings-grid">
<div class="slider-group">
<div class="slider-label-row">
<span>Temperature</span>
<span class="slider-val" id="temp-val">${de.temperature.toFixed(2)}</span>
</div>
<input type="range" id="temp-slider" min="0" max="2" step="0.01" value="${de.temperature}"/>
</div>
<div class="slider-group">
<div class="slider-label-row">
<span>Top-P</span>
<span class="slider-val" id="topp-val">${de.topP.toFixed(2)}</span>
</div>
<input type="range" id="topp-slider" min="0" max="1" step="0.01" value="${de.topP}"/>
</div>
<div class="slider-group">
<div class="slider-label-row">
<span>Max Tokens</span>
<span class="slider-val" id="maxt-val">${de.maxTokens}</span>
</div>
<input type="range" id="maxt-slider" min="64" max="2048" step="32" value="${de.maxTokens}"/>
</div>
</div>
<div class="form-group">
<label class="form-label">System Prompt (optional)</label>
<textarea class="form-textarea" id="sys-prompt" rows="2" placeholder="You are a helpful assistant" style="min-height:50px">${C(de.systemPrompt)}</textarea>
</div>
</div>
${ve?`
<div style="padding:8px 16px;flex-shrink:0">
<div class="error-msg">${C(ve)}</div>
${me&&(ve.includes("building")||ve.includes("waking")||ve.includes("inference Space")||ve.includes("serverless inference"))?`
<div style="margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap">
<button class="btn btn-ghost btn-sm" id="redeploy-space-inline-btn" style="font-size:11px;color:#58a6ff;border:1px solid #58a6ff55">
🔄 Redeploy Inference Space
</button>
${De?`<a href="${C(De)}" target="_blank" style="font-size:11px;color:#58a6ff">View Space →</a>`:""}
</div>`:""}
</div>`:""}
<div class="chat-area" id="chat-area">
${n}
${Ze?`
<div class="msg-row assistant">
<div class="msg-label">${C((Pe&&je||Te).split("/").pop()||"Model")}</div>
<div class="typing-indicator">
<div class="typing-dot"></div>
<div class="typing-dot"></div>
<div class="typing-dot"></div>
</div>
</div>`:""}
</div>
<div class="chat-inputbar">
<textarea class="chat-input" id="chat-input" placeholder="Send a message" rows="1" ${Ze?"disabled":""}></textarea>
<button class="send-btn" id="send-btn" ${Ze?"disabled":""}>
<svg width="14" height="14" viewBox="0 0 16 16" fill="white">
<path d="M1.5 1.5 14 8l-12.5 6.5V1.5Zm1.5 1.5v4.5l6-4.5-6 0Zm0 9V7.5l6 4.5-6 0Z"/>
</svg>
</button>
</div>
</div>`}function Z(){const t=Je==="train",n=t?Yg():"",r=t?"":Qg();document.getElementById("app").innerHTML=`
<div style="display:flex;flex-direction:column;height:100%;overflow:hidden">
<div class="studio-header">
<div class="studio-brand">
<div class="studio-brand-icon">
<svg width="16" height="16" viewBox="0 0 95 88" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M47.2 0C21.1 0 0 19.7 0 44c0 9.4 3 18.2 8.2 25.4L3.5 85.2A2 2 0 0 0 5.4 88l16.8-4.5A49 49 0 0 0 47.2 88C73.3 88 95 68.3 95 44S73.3 0 47.2 0Z" fill="white" opacity="0.15"/>
<ellipse cx="30" cy="40" rx="7" ry="8" fill="white"/>
<ellipse cx="65" cy="40" rx="7" ry="8" fill="white"/>
<path d="M28 56 Q47.5 70 67 56" stroke="white" stroke-width="4" stroke-linecap="round" fill="none"/>
<path d="M20 22 L30 32" stroke="white" stroke-width="3.5" stroke-linecap="round"/>
<path d="M75 22 L65 32" stroke="white" stroke-width="3.5" stroke-linecap="round"/>
</svg>
</div>
FineTune Studio
</div>
<div class="tab-bar">
<button class="tab-btn${t?" active":""}" id="tab-train">
🔧 Train
</button>
<button class="tab-btn${t?"":" active"}" id="tab-inference">
💬 Inference
</button>
</div>
</div>
<div class="tab-content" style="${t?"":"display:none"}">
${t?n:""}
</div>
<div style="flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;${t?"display:none":""}">
${t?"":r}
</div>
</div>`,Xg()}function Yg(){if(ae===4)return`
${_a()}
<div class="tab-content" style="flex:1">
${Jo()}
</div>`;const t=ae===1?Jg():ae===2?Wg():Gg();return`
${_a()}
<div style="flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#30363d transparent">
${t}
</div>
${Kg()}`}let yr=null,$r=null;function Xg(){var b,y,_,I,v,T,x,f,k,$,z,N,L,R,re,ue,Gt,Vo,Wo,Go,Ko,Qo;(b=document.getElementById("tab-train"))==null||b.addEventListener("click",()=>{Je!=="train"&&(Je="train",Z())}),(y=document.getElementById("tab-inference"))==null||y.addEventListener("click",()=>{Je!=="inference"&&(Je="inference",Z())}),(_=document.getElementById("clear-model-btn"))==null||_.addEventListener("click",g=>{g.stopPropagation(),fe=null,$e=[],Z()}),document.querySelectorAll(".select-model-btn").forEach(g=>{g.addEventListener("click",O=>{O.stopPropagation();const G=g.dataset.modelId,M=[...rt,...$e].find(K=>K.modelId===G);M&&(fe=M,S=zt(),Z())})}),document.querySelectorAll(".model-card").forEach(g=>{g.addEventListener("click",O=>{if(O.target.closest(".select-model-btn"))return;const G=g.dataset.modelId,M=[...rt,...$e].find(K=>K.modelId===G);M&&(fe=M,S=zt(),Z())})});const t=document.getElementById("model-search");t&&(t.addEventListener("input",()=>{const g=t.value.trim();if(yr&&clearTimeout(yr),!g){$e=[],jr();return}yr=setTimeout(()=>th(g),300)}),$e.length>0&&t.focus()),(I=document.getElementById("next-btn"))==null||I.addEventListener("click",()=>{ae<3&&(ae++,Z())}),(v=document.getElementById("back-btn"))==null||v.addEventListener("click",()=>{ae>1&&(ae--,Z())}),(T=document.getElementById("mode-hub"))==null||T.addEventListener("click",()=>{dt="hub",Z()}),(x=document.getElementById("mode-custom"))==null||x.addEventListener("click",()=>{dt="custom",Z()}),(f=document.getElementById("clear-dataset-btn"))==null||f.addEventListener("click",g=>{g.stopPropagation(),_e=null,Ne=[],Z()}),document.querySelectorAll(".select-dataset-btn").forEach(g=>{g.addEventListener("click",O=>{O.stopPropagation();const G=g.dataset.datasetId,M=Ne.find(K=>K.datasetId===G);if(M){_e=M;const he={"HuggingFaceTB/smol-smoltalk":"messages","HuggingFaceTB/smoltalk":"messages","teknium/OpenHermes-2.5":"conversations"}[G];he&&(S.textColumn=he),Z()}})}),document.querySelectorAll(".dataset-card").forEach(g=>{g.addEventListener("click",O=>{if(O.target.closest(".select-dataset-btn"))return;const G=g.dataset.datasetId,M=Ne.find(K=>K.datasetId===G);M&&(_e=M,Z())})});const n=document.getElementById("dataset-search");n&&n.addEventListener("input",()=>{const g=n.value.trim();if($r&&clearTimeout($r),!g){Ne=[],Tr();return}$r=setTimeout(()=>nh(g),300)});const r=document.getElementById("custom-data");r&&r.addEventListener("input",()=>{mt=r.value,Ae=Bg(mt,S.trainingType);const g=document.querySelector(".validation-bar, .validation-errors");if(g){const O=g.parentElement;eh(O)}else document.querySelector(".step-body")&&Z()}),(k=document.getElementById("ds-split"))==null||k.addEventListener("input",g=>{S.datasetSplit=g.target.value}),($=document.getElementById("ds-text-col"))==null||$.addEventListener("change",g=>{S.textColumn=g.target.value}),document.querySelectorAll("[data-type]").forEach(g=>{g.addEventListener("click",()=>{S.trainingType=g.dataset.type,Z()})});const o=(g,O)=>{var G;(G=document.getElementById(g))==null||G.addEventListener("change",M=>{O(parseFloat(M.target.value))})},e=(g,O)=>{var G;(G=document.getElementById(g))==null||G.addEventListener("change",M=>{O(M.target.value)})},i=(g,O)=>{var G;(G=document.getElementById(g))==null||G.addEventListener("input",M=>{O(M.target.value)})};e("chat-template",g=>{S.chatTemplate=g}),o("hp-epochs",g=>{isNaN(g)||(S.epochs=g)}),o("hp-max-steps",g=>{isNaN(g)||(S.maxSteps=Math.max(0,Math.round(g)))}),e("hp-batch",g=>{S.batchSize=parseInt(g)}),o("hp-lr",g=>{isNaN(g)||(S.learningRate=g)}),e("hp-block",g=>{S.blockSize=parseInt(g)}),e("hp-grad-acc",g=>{S.gradientAccumulation=parseInt(g)}),o("hp-warmup",g=>{isNaN(g)||(S.warmupRatio=g)}),o("hp-wdecay",g=>{isNaN(g)||(S.weightDecay=g)}),e("hp-lora-r",g=>{S.loraR=parseInt(g)}),o("hp-lora-alpha",g=>{isNaN(g)||(S.loraAlpha=g)}),o("hp-lora-drop",g=>{isNaN(g)||(S.loraDropout=g)}),e("hp-quant",g=>{S.quantization=g}),i("hp-target-mods",g=>{S.targetModules=g}),e("hp-hardware",g=>{S.hardware=g;const O=document.querySelector(".cost-estimate strong");O&&(O.textContent=ed())}),i("hp-project",g=>{S.projectName=g}),(z=document.getElementById("lora-toggle"))==null||z.addEventListener("click",()=>{const g=document.getElementById("lora-body"),O=document.getElementById("lora-chevron");g&&g.classList.toggle("open"),O&&O.classList.toggle("open")}),(N=document.getElementById("start-training-btn"))==null||N.addEventListener("click",()=>{rh()}),(L=document.getElementById("toggle-logs"))==null||L.addEventListener("click",()=>{pt=!pt;const g=document.querySelector(".step-body");g&&(g.innerHTML=Jo().replace(/<div class="step-body">|<\/div>$/,"")),Z()}),(R=document.getElementById("view-on-hub-btn"))==null||R.addEventListener("click",()=>{const g=document.getElementById("view-on-hub-btn"),O=g==null?void 0:g.dataset.url;O&&Ie.openLink({url:O})}),(re=document.getElementById("go-to-inference-btn"))==null||re.addEventListener("click",()=>{me&&(Te=me,je=me,Pe=!0),Je="inference",Z()}),(ue=document.getElementById("redeploy-space-btn"))==null||ue.addEventListener("click",async()=>{var O,G;if(!ee)return;const g=document.getElementById("redeploy-space-btn");g&&(g.disabled=!0,g.textContent="⏳ Deploying…");try{const M=await Ie.callServerTool({name:"deploy_inference_space",arguments:{project_name:ee.project_name}}),K=((G=(O=M==null?void 0:M.content)==null?void 0:O[0])==null?void 0:G.text)??JSON.stringify(M),he=typeof K=="string"?JSON.parse(K):K;he.success?(De=he.space_url,Z(),alert(` Inference Space redeployed!
It will rebuild in ~2-3 min.
Once it's running, click "Chat with model →".
Space: ${he.space_url}`)):(alert(`❌ Deploy failed: ${he.error}`),g&&(g.disabled=!1,g.textContent="🔄 Redeploy Space"))}catch(M){alert(`❌ Error: ${(M==null?void 0:M.message)||String(M)}`),g&&(g.disabled=!1,g.textContent="🔄 Redeploy Space")}}),(Gt=document.getElementById("redeploy-space-inline-btn"))==null||Gt.addEventListener("click",async()=>{var G,M;const g=me==null?void 0:me.split("/")[1];if(!g){alert("No trained model found. Train a model first.");return}const O=document.getElementById("redeploy-space-inline-btn");O&&(O.disabled=!0,O.textContent="⏳ Deploying…");try{const K=await Ie.callServerTool({name:"deploy_inference_space",arguments:{project_name:g}}),he=((M=(G=K==null?void 0:K.content)==null?void 0:G[0])==null?void 0:M.text)??JSON.stringify(K),He=typeof he=="string"?JSON.parse(he):he;He.success?(De=He.space_url,ve="⏳ Inference Space is rebuilding (~23 min). Try again once it's running.",Z()):(alert(`❌ Deploy failed: ${He.error}`),O&&(O.disabled=!1,O.textContent="🔄 Redeploy Inference Space"))}catch(K){alert(`❌ Error: ${(K==null?void 0:K.message)||String(K)}`),O&&(O.disabled=!1,O.textContent="🔄 Redeploy Inference Space")}}),(Vo=document.getElementById("inference-model-sel"))==null||Vo.addEventListener("change",g=>{const O=g.target.value;if(O==="__custom__"){Pe=!0,je="",ve="",Z(),setTimeout(()=>{var G;return(G=document.getElementById("custom-model-input"))==null?void 0:G.focus()},50);return}Pe=!1,Te=O,je=O,ve="",Z()}),(Wo=document.getElementById("custom-model-input"))==null||Wo.addEventListener("input",g=>{je=g.target.value.trim()}),(Go=document.getElementById("custom-model-input"))==null||Go.addEventListener("keydown",g=>{g.key==="Enter"&&je&&(Te=je,ve="",Z())}),(Ko=document.getElementById("settings-toggle"))==null||Ko.addEventListener("click",()=>{xr=!xr,Z()}),(Qo=document.getElementById("clear-chat-btn"))==null||Qo.addEventListener("click",()=>{Re=[],ve="",Z()});const a=(g,O,G,M=2)=>{const K=document.getElementById(g),he=document.getElementById(O);K&&K.addEventListener("input",()=>{const He=parseFloat(K.value);G(He),he&&(he.textContent=M===0?He.toFixed(0):He.toFixed(M))})};a("temp-slider","temp-val",g=>{de.temperature=g}),a("topp-slider","topp-val",g=>{de.topP=g}),a("maxt-slider","maxt-val",g=>{de.maxTokens=g},0);const s=document.getElementById("sys-prompt");s==null||s.addEventListener("input",()=>{de.systemPrompt=s.value});const c=document.getElementById("chat-input"),u=document.getElementById("send-btn");c==null||c.addEventListener("keydown",g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),ka())}),c==null||c.addEventListener("input",()=>{c&&(c.style.height="auto",c.style.height=Math.min(c.scrollHeight,120)+"px")}),u==null||u.addEventListener("click",()=>ka())}function jr(){const t=document.getElementById("model-results");if(t){if(un){t.innerHTML='<div class="empty-results"><span class="loading-spinner"></span></div>';return}$e.length===0?t.innerHTML=`<div class="section-label" style="margin-bottom:12px">⚡ Popular models</div>${rt.map(n=>pn(n)).join("")}`:t.innerHTML=$e.map(n=>pn(n)).join(""),t.querySelectorAll(".select-model-btn").forEach(n=>{n.addEventListener("click",r=>{r.stopPropagation();const o=n.dataset.modelId,e=[...rt,...$e].find(i=>i.modelId===o);e&&(fe=e,S=zt(),Z())})}),t.querySelectorAll(".model-card").forEach(n=>{n.addEventListener("click",r=>{if(r.target.closest(".select-model-btn"))return;const o=n.dataset.modelId,e=[...rt,...$e].find(i=>i.modelId===o);e&&(fe=e,S=zt(),Z())})})}}function Tr(){const t=document.getElementById("dataset-results");if(t){if(dn){t.innerHTML='<div class="empty-results"><span class="loading-spinner"></span></div>';return}t.innerHTML=Ne.length>0?Ne.map(n=>Xu(n)).join(""):'<div class="empty-results">Type to search Hugging Face datasets</div>',t.querySelectorAll(".select-dataset-btn").forEach(n=>{n.addEventListener("click",r=>{r.stopPropagation();const o=n.dataset.datasetId,e=Ne.find(i=>i.datasetId===o);e&&(_e=e,Z())})})}}function eh(t){if(!Ae||!mt.trim()){t.querySelectorAll(".validation-bar, .validation-errors").forEach(o=>o.remove());return}const n=Ae,r=n.errors.length===0?`<div class="validation-bar ok">✅ ${n.valid} valid rows detected</div>`:`<div class="validation-bar err">❌ ${n.errors.length} error(s) — ${n.valid} of ${n.total} rows valid</div>
<div class="validation-errors">${n.errors.map(o=>`Line ${o.line}: ${C(o.message)}`).join(`
`)}</div>`;t.querySelectorAll(".validation-bar, .validation-errors").forEach(o=>o.remove()),t.insertAdjacentHTML("beforeend",r)}async function th(t){un=!0,jr();try{const r=(await Ie.callServerTool({name:"search_models",arguments:{query:t,limit:10}})).content[0].text;$e=JSON.parse(r).models||[]}catch{$e=[]}finally{un=!1,jr()}}async function nh(t){dn=!0,Tr();try{const r=(await Ie.callServerTool({name:"search_datasets",arguments:{query:t,limit:10}})).content[0].text;Ne=JSON.parse(r).datasets||[]}catch{Ne=[]}finally{dn=!1,Tr()}}async function rh(){if(fe){et=!0,tt="",bt=!1,Z();try{const t={base_model:fe.modelId,project_name:S.projectName,task:`llm:${S.trainingType}`,hardware:S.hardware,training_type:S.trainingType,chat_template:S.chatTemplate,hyperparameters:{epochs:S.epochs,batch_size:S.batchSize,learning_rate:S.learningRate,block_size:S.blockSize,lora_r:S.loraR,lora_alpha:S.loraAlpha,lora_dropout:S.loraDropout,quantization:S.quantization,gradient_accumulation:S.gradientAccumulation,warmup_ratio:S.warmupRatio,weight_decay:S.weightDecay,target_modules:S.targetModules,...S.maxSteps>0?{max_steps:S.maxSteps}:{}}};dt==="hub"&&_e?(t.dataset=_e.datasetId,t.dataset_split=S.datasetSplit,t.column_mapping={text_column:S.textColumn}):dt==="custom"&&(t.dataset="custom",t.column_mapping={text_column:"text"});const r=(await Ie.callServerTool({name:"start_training",arguments:t})).content[0].text,o=JSON.parse(r);if(!o.success){o.setup_required?(bt=!0,Ku=o.setup_url||"https://huggingface.co/spaces/autotrain-projects/autotrain-advanced",tt=""):(bt=!1,tt=o.error||"Training failed to start"),et=!1,Z();return}bt=!1,ee={project_name:S.projectName,username:o.username,space_url:o.space_url,model_url:o.model_url,started_at:Date.now(),status:"starting"},te="starting",Fo="",yt=[],Xt=null,mn=null,De=null,ae=4,et=!1,Z(),ih()}catch(t){et=!1,tt=t instanceof Error?t.message:String(t),Z()}}}function ih(){Ye&&clearInterval(Ye),Ye=setInterval(async()=>{var t,n,r,o;if(!ee){clearInterval(Ye);return}if(te==="completed"||te==="error"){clearInterval(Ye);return}try{const i=(await Ie.callServerTool({name:"check_training_status",arguments:{project_name:ee.project_name,username:ee.username}})).content[0].text,a=JSON.parse(i);if(te=a.status||"starting",a.logs&&(Fo=a.logs),a.training_space&&ee&&(ee.training_space_url=a.training_space),a.metrics){ye={loss:a.metrics.loss??ye.loss,epoch:a.metrics.epoch??ye.epoch},typeof a.metrics.totalSteps=="number"&&(en=a.metrics.totalSteps);const s=a.metrics.epoch??null,c=a.metrics.loss??null;typeof c=="number"&&typeof s=="number"&&(Xt===null||s>Xt)&&(yt.push(c),yt.length>30&&yt.shift(),Xt=s)}if(te==="completed"&&(me=ee.model_url.replace("https://huggingface.co/",""),a.inference_space_url&&!De&&(De=a.inference_space_url),mn||(mn=Yu(Date.now()-ee.started_at)),clearInterval(Ye)),ae===4){const s=document.querySelector(".step-body");if(s){s.outerHTML=Jo(),(t=document.getElementById("toggle-logs"))==null||t.addEventListener("click",()=>{pt=!pt,Z()}),(n=document.getElementById("view-on-hub-btn"))==null||n.addEventListener("click",()=>{const u=document.getElementById("view-on-hub-btn"),b=u==null?void 0:u.dataset.url;b&&Ie.openLink({url:b})}),(r=document.getElementById("go-to-inference-btn"))==null||r.addEventListener("click",()=>{me&&(Te=me,je=me,Pe=!0),Je="inference",Z()}),(o=document.getElementById("redeploy-space-btn"))==null||o.addEventListener("click",async()=>{var b,y;if(!ee)return;const u=document.getElementById("redeploy-space-btn");u&&(u.disabled=!0,u.textContent="⏳ Deploying…");try{const _=await Ie.callServerTool({name:"deploy_inference_space",arguments:{project_name:ee.project_name}}),I=((y=(b=_==null?void 0:_.content)==null?void 0:b[0])==null?void 0:y.text)??JSON.stringify(_),v=typeof I=="string"?JSON.parse(I):I;v.success?(De=v.space_url,Z(),alert(`✅ Inference Space redeployed! Rebuilding in ~2-3 min.
${v.space_url}`)):(alert(` Deploy failed: ${v.error}`),u&&(u.disabled=!1,u.textContent="🔄 Redeploy Space"))}catch(_){alert(` Error: ${(_==null?void 0:_.message)||String(_)}`),u&&(u.disabled=!1,u.textContent="🔄 Redeploy Space")}});const c=document.getElementById("log-body");c&&(c.scrollTop=c.scrollHeight)}else Z()}}catch{}},1e4)}async function ka(){const t=document.getElementById("chat-input");if(!t)return;const n=t.value.trim();if(!n||Ze)return;t.value="",t.style.height="auto";const r=[];de.systemPrompt&&r.push({role:"system",content:de.systemPrompt}),r.push(...Re.filter(e=>e.role!=="system")),r.push({role:"user",content:n}),Re=r.filter(e=>e.role!=="system"),Ze=!0,ve="",Z();const o=document.getElementById("chat-area");o&&(o.scrollTop=o.scrollHeight);try{const i=(await Ie.callServerTool({name:"chat_with_model",arguments:{model_id:Pe&&je||Te,messages:r,parameters:{temperature:de.temperature,top_p:de.topP,max_tokens:de.maxTokens}}})).content[0].text,a=JSON.parse(i);if(a.error){ve=a.error,Ze=!1,Z();return}const s=a.text||"";Re.push({role:"assistant",content:""}),Ze=!1,Z(),await oh(s)}catch(e){ve=e instanceof Error?e.message:"Unknown error",Ze=!1,Z()}}async function oh(t){const n=document.getElementById("chat-area"),r=n==null?void 0:n.querySelectorAll(".msg-row.assistant .msg-bubble"),o=r==null?void 0:r[r.length-1];if(!o)return;let e=0;const i=3,a=12,s=()=>{if(e>=t.length){o.innerHTML=Qu(t),Re.length>0&&(Re[Re.length-1].content=t),n&&(n.scrollTop=n.scrollHeight);return}e=Math.min(e+i,t.length),o.textContent=t.slice(0,e),n&&(n.scrollTop=n.scrollHeight),setTimeout(s,a)};s()}Ie.ontoolresult=()=>{Z()};Ie.connect();</script>
</head>
<body>
<div id="app">
<div style="display:flex;align-items:center;justify-content:center;height:100%;color:#94a3b8;font-size:13px;">
Connecting to FineTune Studio…
</div>
</div>
</body>
</html>