1678 lines
344 KiB
HTML
1678 lines
344 KiB
HTML
<!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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),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 (~2–3 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 (2–3 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>
|
||
·
|
||
<a href="${C((ee.training_space_url||ee.space_url)+"?logs=container")}" target="_blank" style="color:#58a6ff">Raw Logs</a>
|
||
· 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 (~2–3 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>
|