diff --git a/build/client/_app/immutable/assets/2.Dv2no-8m.css b/build/client/_app/immutable/assets/2.Dv2no-8m.css deleted file mode 100644 index d32e9ae..0000000 --- a/build/client/_app/immutable/assets/2.Dv2no-8m.css +++ /dev/null @@ -1 +0,0 @@ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"Geist Mono", ui-monospace, monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-gray-300:oklch(87.2% .01 258.338);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface-900:#0a0a0f;--color-surface-800:#12121a;--color-surface-700:#1a1a25;--color-surface-600:#24243a;--color-accent:#ff66ab;--color-accent-hover:#ff85be;--color-accent-dim:#ff66ab33;--color-text-primary:#eeeef0;--color-text-secondary:#8888a0;--color-border:#2a2a3d;--font-body:"Geist", system-ui, sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-56{margin-left:calc(var(--spacing) * 56)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-full{height:100%}.max-h-\[80vh\]{max-height:80vh}.min-h-\[70vh\]{min-height:70vh}.min-h-dvh{min-height:100dvh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-56{width:calc(var(--spacing) * 56)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.rotate-90{rotate:90deg}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[auto_1fr_auto_auto_auto\]{grid-template-columns:auto 1fr auto auto auto}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent\/20{border-color:#ff66ab33}@supports (color:color-mix(in lab,red,red)){.border-accent\/20{border-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.border-accent\/30{border-color:#ff66ab4d}@supports (color:color-mix(in lab,red,red)){.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border{border-color:var(--color-border)}.border-border\/50{border-color:#2a2a3d80}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border) 50%,transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.border-green-500\/20{border-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500) 30%,transparent)}}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab,red,red)){.border-green-500\/40{border-color:color-mix(in oklab,var(--color-green-500) 40%,transparent)}}.border-pink-500\/30{border-color:#f6339a4d}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/30{border-color:color-mix(in oklab,var(--color-pink-500) 30%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500) 30%,transparent)}}.bg-accent{background-color:var(--color-accent)}.bg-accent-dim{background-color:var(--color-accent-dim)}.bg-accent\/10{background-color:#ff66ab1a}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/5{background-color:color-mix(in oklab,var(--color-green-500) 5%,transparent)}}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.bg-pink-500\/20{background-color:#f6339a33}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/20{background-color:color-mix(in oklab,var(--color-pink-500) 20%,transparent)}}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500) 10%,transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-surface-600{background-color:var(--color-surface-600)}.bg-surface-700{background-color:var(--color-surface-700)}.bg-surface-800{background-color:var(--color-surface-800)}.bg-surface-900{background-color:var(--color-surface-900)}.bg-surface-900\/80{background-color:#0a0a0fcc}@supports (color:color-mix(in lab,red,red)){.bg-surface-900\/80{background-color:color-mix(in oklab,var(--color-surface-900) 80%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/5{background-color:color-mix(in oklab,var(--color-yellow-500) 5%,transparent)}}.bg-yellow-500\/20{background-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/20{background-color:color-mix(in oklab,var(--color-yellow-500) 20%,transparent)}}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-accent{color:var(--color-accent)}.text-blue-400{color:var(--color-blue-400)}.text-green-400{color:var(--color-green-400)}.text-pink-400{color:var(--color-pink-400)}.text-purple-400{color:var(--color-purple-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-surface-900{color:var(--color-surface-900)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-text-secondary\/30{color:#8888a04d}@supports (color:color-mix(in lab,red,red)){.text-text-secondary\/30{color:color-mix(in oklab,var(--color-text-secondary) 30%,transparent)}}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.group-hover\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-text-secondary\/50::placeholder{color:#8888a080}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-text-secondary\/50::placeholder{color:color-mix(in oklab,var(--color-text-secondary) 50%,transparent)}}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-accent\/30:hover{border-color:#ff66ab4d}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/30:hover{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.hover\:border-accent\/40:hover{border-color:#ff66ab66}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.hover\:border-green-500\/40:hover{border-color:#00c75866}@supports (color:color-mix(in lab,red,red)){.hover\:border-green-500\/40:hover{border-color:color-mix(in oklab,var(--color-green-500) 40%,transparent)}}.hover\:border-red-500\/30:hover{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/30:hover{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.hover\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:bg-surface-600:hover{background-color:var(--color-surface-600)}.hover\:bg-surface-700:hover{background-color:var(--color-surface-700)}.hover\:bg-yellow-500\/10:hover{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-yellow-500\/10:hover{background-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-text-primary:hover{color:var(--color-text-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}html{background-color:var(--color-surface-900);color:var(--color-text-primary);font-family:var(--font-body)}body{min-height:100dvh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-surface-900)}::-webkit-scrollbar-thumb{background:var(--color-surface-600);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}} diff --git a/build/client/_app/immutable/assets/2.Dv2no-8m.css.br b/build/client/_app/immutable/assets/2.Dv2no-8m.css.br deleted file mode 100644 index 978ee68..0000000 Binary files a/build/client/_app/immutable/assets/2.Dv2no-8m.css.br and /dev/null differ diff --git a/build/client/_app/immutable/assets/2.Dv2no-8m.css.gz b/build/client/_app/immutable/assets/2.Dv2no-8m.css.gz deleted file mode 100644 index b0b0e98..0000000 Binary files a/build/client/_app/immutable/assets/2.Dv2no-8m.css.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BAocuFgQ.js b/build/client/_app/immutable/chunks/BAocuFgQ.js deleted file mode 100644 index 4fefbc4..0000000 --- a/build/client/_app/immutable/chunks/BAocuFgQ.js +++ /dev/null @@ -1 +0,0 @@ -import{q as h,C as w,D as A,am as E,ap as L}from"./BxEwC6Zc.js";import{i as x,a as T,p as k,b as D}from"./BkIq08el.js";function C(t,r,s){h(()=>{var n=w(()=>r(t,s?.())||{});if(s&&n?.update){var a=!1,o={};A(()=>{var e=s();E(e),a&&L(o,e)&&(o=e,n.update(e))}),a=!0}if(n?.destroy)return()=>n.destroy()})}function H(t){const r=JSON.parse(t);return r.data&&(r.data=k(r.data,D.decoders)),r}function d(t){return HTMLElement.prototype.cloneNode.call(t)}function S(t,r=()=>{}){const s=async({action:a,result:o,reset:e=!0,invalidateAll:c=!0})=>{o.type==="success"&&(e&&HTMLFormElement.prototype.reset.call(t),c&&await x()),(location.origin+location.pathname===a.origin+a.pathname||o.type==="redirect"||o.type==="error")&&await T(o)};async function n(a){if((a.submitter?.hasAttribute("formmethod")?a.submitter.formMethod:d(t).method)!=="post")return;a.preventDefault();const e=new URL(a.submitter?.hasAttribute("formaction")?a.submitter.formAction:d(t).action),c=a.submitter?.hasAttribute("formenctype")?a.submitter.formEnctype:d(t).enctype,p=new FormData(t,a.submitter),u=new AbortController;let m=!1;const y=await r({action:e,cancel:()=>m=!0,controller:u,formData:p,formElement:t,submitter:a.submitter})??s;if(m)return;let l;try{const i=new Headers({accept:"application/json","x-sveltekit-action":"true"});c!=="multipart/form-data"&&i.set("Content-Type",/^(:?application\/x-www-form-urlencoded|text\/plain)$/.test(c)?c:"application/x-www-form-urlencoded");const b=c==="multipart/form-data"?p:new URLSearchParams(p),f=await fetch(e,{method:"POST",headers:i,cache:"no-store",body:b,signal:u.signal});l=H(await f.text()),l.type==="error"&&(l.status=f.status)}catch(i){if(i?.name==="AbortError")return;l={type:"error",error:i}}await y({action:e,formData:p,formElement:t,update:i=>s({action:e,result:l,reset:i?.reset,invalidateAll:i?.invalidateAll}),result:l})}return HTMLFormElement.prototype.addEventListener.call(t,"submit",n),{destroy(){HTMLFormElement.prototype.removeEventListener.call(t,"submit",n)}}}export{C as a,S as e}; diff --git a/build/client/_app/immutable/chunks/BAocuFgQ.js.br b/build/client/_app/immutable/chunks/BAocuFgQ.js.br deleted file mode 100644 index ecabb95..0000000 Binary files a/build/client/_app/immutable/chunks/BAocuFgQ.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BAocuFgQ.js.gz b/build/client/_app/immutable/chunks/BAocuFgQ.js.gz deleted file mode 100644 index 3410b43..0000000 Binary files a/build/client/_app/immutable/chunks/BAocuFgQ.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BLQQas77.js b/build/client/_app/immutable/chunks/BLQQas77.js deleted file mode 100644 index a308712..0000000 --- a/build/client/_app/immutable/chunks/BLQQas77.js +++ /dev/null @@ -1 +0,0 @@ -import{G as b,h as Z,H as J,F as H,I as D,J as $,K as y,k as q,L as j,M as ee,N as B,O as F,P as O,Q as re,R as ne,S as U,z as ae,T as m,U as L,V as fe,W as ie,X as le,w as ue,Y,Z as se,_ as oe,$ as te,a0 as X,a1 as ve,a2 as K,a3 as P,a4 as z,a5 as de,a6 as ce,a7 as pe,a8 as _e,a9 as he,aa as ge}from"./BxEwC6Zc.js";function Ce(e,i){return i}function Ee(e,i,l){for(var d=[],g=i.length,s,u=i.length,p=0;p{if(s){if(s.pending.delete(E),s.done.add(E),s.pending.size===0){var o=e.outrogroups;V(Y(s.done)),o.delete(s),o.size===0&&(e.outrogroups=null)}}else u-=1},!1)}if(u===0){var f=d.length===0&&l!==null;if(f){var t=l,n=t.parentNode;_e(n),n.append(t),e.items.clear()}V(i,!f)}else s={pending:new Set(i),done:new Set},(e.outrogroups??=new Set).add(s)}function V(e,i=!0){for(var l=0;l{var a=l();return ue(a)?a:a==null?[]:Y(a)}),o,c=!0;function A(){r.fallback=n,me(r,o,u,i,d),n!==null&&(o.length===0?(n.f&m)===0?K(n):(n.f^=m,k(n,null,u)):P(n,()=>{n=null}))}var I=Z(()=>{o=q(E);var a=o.length;let N=!1;if(H){var S=j(u)===ee;S!==(a===0)&&(u=B(),D(u),F(!1),N=!0)}for(var h=new Set,C=ae,x=ie(),_=0;_s(u)):(n=L(()=>s(G??=b())),n.f|=m)),a>h.size&&fe(),H&&a>0&&D(B()),!c)if(x){for(const[Q,W]of p)h.has(Q)||C.skip_effect(W.e);C.oncommit(A),C.ondiscard(()=>{})}else A();N&&F(!0),q(E)}),r={effect:I,items:p,outrogroups:null,fallback:n};c=!1,H&&(u=O)}function M(e){for(;e!==null&&(e.f&ce)===0;)e=e.next;return e}function me(e,i,l,d,g){var s=(d&pe)!==0,u=i.length,p=e.items,f=M(e.effect.first),t,n=null,E,o=[],c=[],A,I,r,a;if(s)for(a=0;a0){var R=(d&J)!==0&&u===0?l:null;if(s){for(a=0;a{if(E!==void 0)for(r of E)r.nodes?.a?.apply()})}function Te(e,i,l,d,g,s,u,p){var f=(u&se)!==0?(u&oe)===0?te(l,!1,!1):X(l):null,t=(u&ve)!==0?X(g):null;return{v:f,i:t,e:L(()=>(s(i,f??l,t??g,p),()=>{e.delete(d)}))}}function k(e,i,l){if(e.nodes)for(var d=e.nodes.start,g=e.nodes.end,s=i&&(i.f&m)===0?i.nodes.start:l;d!==null;){var u=ge(d);if(s.before(d),d===g)return;d=u}}function T(e,i,l){i===null?e.effect.first=l:i.next=l,l===null?e.effect.last=i:l.prev=i}export{we as e,Ce as i}; diff --git a/build/client/_app/immutable/chunks/BLQQas77.js.br b/build/client/_app/immutable/chunks/BLQQas77.js.br deleted file mode 100644 index 745ab9d..0000000 Binary files a/build/client/_app/immutable/chunks/BLQQas77.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BLQQas77.js.gz b/build/client/_app/immutable/chunks/BLQQas77.js.gz deleted file mode 100644 index 57f8be1..0000000 Binary files a/build/client/_app/immutable/chunks/BLQQas77.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BQKoxf2Q.js b/build/client/_app/immutable/chunks/BQKoxf2Q.js deleted file mode 100644 index 1911957..0000000 --- a/build/client/_app/immutable/chunks/BQKoxf2Q.js +++ /dev/null @@ -1 +0,0 @@ -import{h as b,F as f,K as h,E as p,L as v,aP as g,M as m,N as A,I as E,O as _,P as R}from"./BxEwC6Zc.js";import{B as S}from"./kALFGdUG.js";function O(l,u,c=!1){var t;f&&(t=R,h());var n=new S(l),T=c?p:0;function i(a,e){if(f){var r=v(t),s;if(r===g?s=0:r===m?s=!1:s=parseInt(r.substring(1)),a!==s){var o=A();E(o),n.anchor=o,_(!1),n.ensure(a,e),_(!0);return}}n.ensure(a,e)}b(()=>{var a=!1;u((e,r=0)=>{a=!0,i(r,e)}),a||i(!1,null)},T)}const I=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));export{I as _,O as i}; diff --git a/build/client/_app/immutable/chunks/BQKoxf2Q.js.br b/build/client/_app/immutable/chunks/BQKoxf2Q.js.br deleted file mode 100644 index bc706b6..0000000 Binary files a/build/client/_app/immutable/chunks/BQKoxf2Q.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BQKoxf2Q.js.gz b/build/client/_app/immutable/chunks/BQKoxf2Q.js.gz deleted file mode 100644 index 5a1f16f..0000000 Binary files a/build/client/_app/immutable/chunks/BQKoxf2Q.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BkIq08el.js b/build/client/_app/immutable/chunks/BkIq08el.js deleted file mode 100644 index 609fb01..0000000 --- a/build/client/_app/immutable/chunks/BkIq08el.js +++ /dev/null @@ -1,3 +0,0 @@ -import{s as ft}from"./CvGSsBh3.js";import{a as ut,e as dt,c as ht,H as B,N as G,d as Ve,i as Ae,b as L,s as x,p as R,n as ge,f as Ke,g as ye,h as ee,j as pe,S as Ye,P as pt,u as Se,k as _t,l as mt,o as He,m as V,q as gt,t as yt,v as Ge,w as wt,x as vt,y as ze,z as bt,A as xe}from"./DAtZQVjv.js";import{B as te,as as Et}from"./BxEwC6Zc.js";class fe{constructor(t,a){this.status=t,typeof a=="string"?this.body={message:a}:a?this.body=a:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Re{constructor(t,a){this.status=t,this.location=a}}class Ie extends Error{constructor(t,a,n){super(n),this.status=t,this.text=a}}function kt({nodes:e,server_loads:t,dictionary:a,matchers:n}){const r=new Set(t);return Object.entries(a).map(([c,[i,l,h]])=>{const{pattern:d,params:m}=ut(c),u={id:c,exec:f=>{const y=d.exec(f);if(y)return dt(y,m,n)},errors:[1,...h||[]].map(f=>e[f]),layouts:[0,...l||[]].map(s),leaf:o(i)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function o(c){const i=c<0;return i&&(c=~c),[i,e[c]]}function s(c){return c===void 0?c:[r.has(c),e[c]]}}function Je(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Be(e,t,a=JSON.stringify){const n=a(t);try{sessionStorage[e]=n}catch{}}function At(e){const t=Rt(e),a=new ArrayBuffer(t.length),n=new DataView(a);for(let r=0;r>16),t+=String.fromCharCode((a&65280)>>8),t+=String.fromCharCode(a&255),a=n=0);return n===12?(a>>=4,t+=String.fromCharCode(a)):n===18&&(a>>=2,t+=String.fromCharCode((a&65280)>>8),t+=String.fromCharCode(a&255)),t}const It=-1,Tt=-2,Lt=-3,Pt=-4,Ut=-5,Nt=-6,Ot=-7;function oa(e,t){return We(JSON.parse(e),t)}function We(e,t){if(typeof e=="number")return o(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const a=e,n=Array(a.length);let r=null;function o(s,c=!1){if(s===It)return;if(s===Lt)return NaN;if(s===Pt)return 1/0;if(s===Ut)return-1/0;if(s===Nt)return-0;if(c||typeof s!="number")throw new Error("Invalid input");if(s in n)return n[s];const i=a[s];if(!i||typeof i!="object")n[s]=i;else if(Array.isArray(i))if(typeof i[0]=="string"){const l=i[0],h=t&&Object.hasOwn(t,l)?t[l]:void 0;if(h){let d=i[1];if(typeof d!="number"&&(d=a.push(i[1])-1),r??=new Set,r.has(d))throw new Error("Invalid circular reference");return r.add(d),n[s]=h(o(d)),r.delete(d),n[s]}switch(l){case"Date":n[s]=new Date(i[1]);break;case"Set":const d=new Set;n[s]=d;for(let f=1;ft!=null)}const jt="x-sveltekit-invalidated",Dt="x-sveltekit-trailing-slash";function ae(e){return e instanceof fe||e instanceof Ie?e.status:500}function xt(e){return e instanceof Ie?e.text:"Internal Error"}const Bt="/__data.json",Ft=".html__data.json";function Mt(e){return e.endsWith(".html")?e.replace(/\.html$/,Ft):e.replace(/\/$/,"")+Bt}const{tick:Xe}=ft,$t=new Set(["icon","shortcut icon","apple-touch-icon"]),D=Je(ze)??{},z=Je(Ge)??{},j={url:xe({}),page:xe({}),navigating:bt(null),updated:ht()};function Te(e){D[e]=x()}function qt(e,t){let a=e+1;for(;D[a];)delete D[a],a+=1;for(a=t+1;z[a];)delete z[a],a+=1}function $(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function Ze(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}function we(){}let Le,ve,ne,N,be,E;const re=[],oe=[];let P=null;function se(){P?.fork?.then(e=>e?.discard()),P=null}const Q=new Map,Qe=new Set,Vt=new Set,Y=new Set;let p={branch:[],error:null,url:null},Pe=!1,ie=!1,Fe=!0,J=!1,K=!1,et=!1,X=!1,q,S,I,O;const H=new Set;let _e;const ce=new Map;async function sa(e,t,a){globalThis.__sveltekit_12t8tv8?.data&&globalThis.__sveltekit_12t8tv8.data,document.URL!==location.href&&(location.href=location.href),E=e,await e.hooks.init?.(),Le=kt(e),N=document.documentElement,be=t,ve=e.nodes[0],ne=e.nodes[1],ve(),ne(),S=history.state?.[B],I=history.state?.[G],S||(S=I=Date.now(),history.replaceState({...history.state,[B]:S,[G]:I},""));const n=D[S];function r(){n&&(history.scrollRestoration="manual",scrollTo(n.x,n.y))}a?(r(),await ea(be,a)):(await F({type:"enter",url:Ve(E.hash?ta(new URL(location.href)):location.href),replace_state:!0}),r()),Qt()}async function Kt(e=!0,t=!0){if(await(_e||=Promise.resolve()),!_e)return;_e=null;const a=O={},n=await Z(p.url,!0);if(se(),X&&ce.forEach(({resource:r})=>{r.refresh?.()}),e){const r=R.state,o=n&&await Ce(n);if(!o||a!==O)return;if(o.type==="redirect")return Ue(new URL(o.location,p.url).href,{replaceState:!0},1,a);t||(o.props.page.state=r),Se(o.props.page),p=o.state,Ee(),q.$set(o.props)}else Ee();await Promise.all([...ce.values()].map(({resource:r})=>r)).catch(we)}function Ee(){re.length=0,X=!1}function tt(e){oe.some(t=>t?.snapshot)&&(z[e]=oe.map(t=>t?.snapshot?.capture()))}function at(e){z[e]?.forEach((t,a)=>{oe[a]?.snapshot?.restore(t)})}function Me(){Te(S),Be(ze,D),tt(I),Be(Ge,z)}async function Ue(e,t,a,n){let r;t.invalidateAll&&se(),await F({type:"goto",url:Ve(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:a,nav_token:n,accept:()=>{t.invalidateAll&&(X=!0,r=[...ce.keys()]),t.invalidate&&t.invalidate.forEach(Xt)}}),t.invalidateAll&&te().then(te).then(()=>{ce.forEach(({resource:o},s)=>{r?.includes(s)&&o.refresh?.()})})}async function Yt(e){if(e.id!==P?.id){se();const t={};H.add(t),P={id:e.id,token:t,promise:Ce({...e,preload:t}).then(a=>(H.delete(t),a.type==="loaded"&&a.state.error&&se(),a)),fork:null}}return P.promise}async function me(e){const t=(await Z(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(a=>a[1]()))}async function nt(e,t,a){p=e.state;const n=document.querySelector("style[data-sveltekit]");if(n&&n.remove(),Object.assign(R,e.props.page),q=new E.root({target:t,props:{...e.props,stores:j,components:oe},hydrate:a,sync:!1}),await Promise.resolve(),at(I),a){const r={from:null,to:{params:p.params,route:{id:p.route?.id??null},url:new URL(location.href),scroll:D[S]??x()},willUnload:!1,type:"enter",complete:Promise.resolve()};Y.forEach(o=>o(r))}ie=!0}function W({url:e,params:t,branch:a,status:n,error:r,route:o,form:s}){let c="never";if(L&&(e.pathname===L||e.pathname===L+"/"))c="always";else for(const u of a)u?.slash!==void 0&&(c=u.slash);e.pathname=mt(e.pathname,c),e.search=e.search;const i={type:"loaded",state:{url:e,params:t,branch:a,error:r,route:o},props:{constructors:Ct(a).map(u=>u.node.component),page:de(R)}};s!==void 0&&(i.props.form=s);let l={},h=!R,d=0;for(let u=0;uc(new URL(s))))return!0;return!1}function Oe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Gt(e,t){if(!e)return new Set(t.searchParams.keys());const a=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const n of a){const r=e.searchParams.getAll(n),o=t.searchParams.getAll(n);r.every(s=>o.includes(s))&&o.every(s=>r.includes(s))&&a.delete(n)}return a}function qe({error:e,url:t,route:a,params:n}){return{type:"loaded",state:{error:e,url:t,route:a,params:n,branch:[]},props:{page:de(R),constructors:[]}}}async function Ce({id:e,invalidating:t,url:a,params:n,route:r,preload:o}){if(P?.id===e)return H.delete(P.token),P.promise;const{errors:s,layouts:c,leaf:i}=r,l=[...c,i];s.forEach(g=>g?.().catch(()=>{})),l.forEach(g=>g?.[1]().catch(()=>{}));let h=null;const d=p.url?e!==le(p.url):!1,m=p.route?r.id!==p.route.id:!1,u=Gt(p.url,a);let f=!1;{const g=l.map((w,k)=>{const A=p.branch[k],v=!!w?.[0]&&(A?.loader!==w[1]||$e(f,m,d,u,A.server?.uses,n));return v&&(f=!0),v});if(g.some(Boolean)){try{h=await it(a,g)}catch(w){const k=await M(w,{url:a,params:n,route:{id:e}});return H.has(o)?qe({error:k,url:a,params:n,route:r}):ue({status:ae(w),error:k,url:a,route:r})}if(h.type==="redirect")return h}}const y=h?.nodes;let b=!1;const _=l.map(async(g,w)=>{if(!g)return;const k=p.branch[w],A=y?.[w];if((!A||A.type==="skip")&&g[1]===k?.loader&&!$e(b,m,d,u,k.universal?.uses,n))return k;if(b=!0,A?.type==="error")throw A;return Ne({loader:g[1],url:a,params:n,route:r,parent:async()=>{const C={};for(let U=0;U{});const T=[];for(let g=0;gPromise.resolve({}),server_data_node:Oe(o)}),c={node:await ne(),loader:ne,universal:null,server:null,data:null};return W({url:a,params:r,branch:[s,c],status:e,error:t,route:null})}catch(s){if(s instanceof Re)return Ue(new URL(s.location,location.href),{},0);throw s}}async function zt(e){const t=e.href;if(Q.has(t))return Q.get(t);let a;try{const n=(async()=>{let r=await E.hooks.reroute({url:new URL(e),fetch:async(o,s)=>Ht(o,s,e).promise})??e;if(typeof r=="string"){const o=new URL(e);E.hash?o.hash=r:o.pathname=r,r=o}return r})();Q.set(t,n),a=await n}catch{Q.delete(t);return}return a}async function Z(e,t){if(e&&!Ae(e,L,E.hash)){const a=await zt(e);if(!a)return;const n=Jt(a);for(const r of Le){const o=r.exec(n);if(o)return{id:le(e),invalidating:t,route:r,params:_t(o),url:e}}}}function Jt(e){return gt(E.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function le(e){return(E.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ot({url:e,type:t,intent:a,delta:n,event:r,scroll:o}){let s=!1;const c=De(p,a,e,t,o??null);n!==void 0&&(c.navigation.delta=n),r!==void 0&&(c.navigation.event=r);const i={...c.navigation,cancel:()=>{s=!0,c.reject(new Error("navigation cancelled"))}};return J||Qe.forEach(l=>l(i)),s?null:c}async function F({type:e,url:t,popped:a,keepfocus:n,noscroll:r,replace_state:o,state:s={},redirect_count:c=0,nav_token:i={},accept:l=we,block:h=we,event:d}){const m=O;O=i;const u=await Z(t,!1),f=e==="enter"?De(p,u,t,e):ot({url:t,type:e,delta:a?.delta,intent:u,scroll:a?.scroll,event:d});if(!f){h(),O===i&&(O=m);return}const y=S,b=I;l(),J=!0,ie&&f.navigation.type!=="enter"&&j.navigating.set(ge.current=f.navigation);let _=u&&await Ce(u);if(!_){if(Ae(t,L,E.hash))return await $(t,o);_=await st(t,{id:null},await M(new Ie(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,o)}if(t=u?.url||t,O!==i)return f.reject(new Error("navigation aborted")),!1;if(_.type==="redirect"){if(c<20){await F({type:e,url:new URL(_.location,t),popped:a,keepfocus:n,noscroll:r,replace_state:o,state:s,redirect_count:c+1,nav_token:i}),f.fulfil(void 0);return}_=await ue({status:500,error:await M(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else _.props.page.status>=400&&await j.updated.check()&&(await Ze(),await $(t,o));if(Ee(),Te(y),tt(b),_.props.page.url.pathname!==t.pathname&&(t.pathname=_.props.page.url.pathname),s=a?a.state:s,!a){const v=o?0:1,C={[B]:S+=v,[G]:I+=v,[Ye]:s};(o?history.replaceState:history.pushState).call(history,C,"",t),o||qt(S,I)}const T=u&&P?.id===u.id?P.fork:null;P=null,_.props.page.state=s;let g;if(ie){const v=(await Promise.all(Array.from(Vt,U=>U(f.navigation)))).filter(U=>typeof U=="function");if(v.length>0){let U=function(){v.forEach(he=>{Y.delete(he)})};v.push(U),v.forEach(he=>{Y.add(he)})}p=_.state,_.props.page&&(_.props.page.url=t);const C=T&&await T;C?g=C.commit():(q.$set(_.props),Se(_.props.page),g=Et?.()),et=!0}else await nt(_,be,!1);const{activeElement:w}=document;await g,await te(),await te();let k=null;if(Fe){const v=a?a.scroll:r?x():null;v?scrollTo(v.x,v.y):(k=t.hash&&document.getElementById(lt(t)))?k.scrollIntoView():scrollTo(0,0)}const A=document.activeElement!==w&&document.activeElement!==document.body;!n&&!A&&je(t,!k),Fe=!0,_.props.page&&Object.assign(R,_.props.page),J=!1,e==="popstate"&&at(I),f.fulfil(void 0),f.navigation.to&&(f.navigation.to.scroll=x()),Y.forEach(v=>v(f.navigation)),j.navigating.set(ge.current=null)}async function st(e,t,a,n,r){return e.origin===He&&e.pathname===location.pathname&&!Pe?await ue({status:n,error:a,url:e,route:t}):await $(e,r)}function Wt(){let e,t={element:void 0,href:void 0},a;N.addEventListener("mousemove",c=>{const i=c.target;clearTimeout(e),e=setTimeout(()=>{o(i,V.hover)},20)});function n(c){c.defaultPrevented||o(c.composedPath()[0],V.tap)}N.addEventListener("mousedown",n),N.addEventListener("touchstart",n,{passive:!0});const r=new IntersectionObserver(c=>{for(const i of c)i.isIntersecting&&(me(new URL(i.target.href)),r.unobserve(i.target))},{threshold:0});async function o(c,i){const l=Ke(c,N),h=l===t.element&&l?.href===t.href&&i>=a;if(!l||h)return;const{url:d,external:m,download:u}=ye(l,L,E.hash);if(m||u)return;const f=ee(l),y=d&&le(p.url)===le(d);if(!(f.reload||y))if(i<=f.preload_data){t={element:l,href:l.href},a=V.tap;const b=await Z(d,!1);if(!b)return;Yt(b)}else i<=f.preload_code&&(t={element:l,href:l.href},a=i,me(d))}function s(){r.disconnect();for(const c of N.querySelectorAll("a")){const{url:i,external:l,download:h}=ye(c,L,E.hash);if(l||h)continue;const d=ee(c);d.reload||(d.preload_code===V.viewport&&r.observe(c),d.preload_code===V.eager&&me(i))}}Y.add(s),s()}function M(e,t){if(e instanceof fe)return e.body;const a=ae(e),n=xt(e);return E.hooks.handleError({error:e,event:t,status:a,message:n})??{message:n}}function Xt(e){if(typeof e=="function")re.push(e);else{const{href:t}=new URL(e,location.href);re.push(a=>a.href===t)}}function ia(){return X=!0,Kt()}async function ca(e){e.type==="error"?await Zt(e.error,e.status):e.type==="redirect"?await Ue(e.location,{invalidateAll:!0},0):(R.form=e.data,R.status=e.status,q.$set({form:null,page:de(R)}),await Xe(),q.$set({form:e.data}),e.type==="success"&&je(R.url))}async function Zt(e,t=500){const a=new URL(location.href),{branch:n,route:r}=p;if(!r)return;const o=await rt(p.branch.length,n,r.errors);if(o){const s=W({url:a,params:p.params,branch:n.slice(0,o.idx).concat(o.node),status:t,error:e,route:r});p=s.state,q.$set(s.props),Se(s.props.page),Xe().then(()=>je(p.url))}}function Qt(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let a=!1;if(Me(),!J){const n=De(p,void 0,null,"leave"),r={...n.navigation,cancel:()=>{a=!0,n.reject(new Error("navigation cancelled"))}};Qe.forEach(o=>o(r))}a?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Me()}),navigator.connection?.saveData||Wt(),N.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const a=Ke(t.composedPath()[0],N);if(!a)return;const{url:n,external:r,target:o,download:s}=ye(a,L,E.hash);if(!n)return;if(o==="_parent"||o==="_top"){if(window.parent!==window)return}else if(o&&o!=="_self")return;const c=ee(a);if(!(a instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||s)return;const[l,h]=(E.hash?n.hash.replace(/^#/,""):n.href).split("#"),d=l===pe(location);if(r||c.reload&&(!d||!h)){ot({url:n,type:"link",event:t})?J=!0:t.preventDefault();return}if(h!==void 0&&d){const[,m]=p.url.href.split("#");if(m===h){if(t.preventDefault(),h===""||h==="top"&&a.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=a.ownerDocument.getElementById(decodeURIComponent(h));u&&(u.scrollIntoView(),u.focus())}return}if(K=!0,Te(S),e(n),!c.replace_state)return;K=!1}t.preventDefault(),await new Promise(m=>{requestAnimationFrame(()=>{setTimeout(m,0)}),setTimeout(m,100)}),await F({type:"link",url:n,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??n.href===location.href,event:t})}),N.addEventListener("submit",t=>{if(t.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(t.target),n=t.submitter;if((n?.formTarget||a.target)==="_blank"||(n?.formMethod||a.method)!=="get")return;const s=new URL(n?.hasAttribute("formaction")&&n?.formAction||a.action);if(Ae(s,L,!1))return;const c=t.target,i=ee(c);if(i.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(c,n);s.search=new URLSearchParams(l).toString(),F({type:"form",url:s,keepfocus:i.keepfocus,noscroll:i.noscroll,replace_state:i.replace_state??s.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!ke){if(t.state?.[B]){const a=t.state[B];if(O={},a===S)return;const n=D[a],r=t.state[Ye]??{},o=new URL(t.state[pt]??location.href),s=t.state[G],c=p.url?pe(location)===pe(p.url):!1;if(s===I&&(et||c)){r!==R.state&&(R.state=r),e(o),D[S]=x(),n&&scrollTo(n.x,n.y),S=a;return}const l=a-S;await F({type:"popstate",url:o,popped:{state:r,scroll:n,delta:l},accept:()=>{S=a,I=s},block:()=>{history.go(-l)},nav_token:O,event:t})}else if(!K){const a=new URL(location.href);e(a),E.hash&&location.reload()}}}),addEventListener("hashchange",()=>{K&&(K=!1,history.replaceState({...history.state,[B]:++S,[G]:I},"",location.href))});for(const t of document.querySelectorAll("link"))$t.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&j.navigating.set(ge.current=null)});function e(t){p.url=R.url=t,j.page.set(de(R)),j.page.notify()}}async function ea(e,{status:t=200,error:a,node_ids:n,params:r,route:o,server_route:s,data:c,form:i}){Pe=!0;const l=new URL(location.href);let h;({params:r={},route:o={id:null}}=await Z(l,!1)||{}),h=Le.find(({id:u})=>u===o.id);let d,m=!0;try{const u=n.map(async(y,b)=>{const _=c[b];return _?.uses&&(_.uses=ct(_.uses)),Ne({loader:E.nodes[y],url:l,params:r,route:o,parent:async()=>{const T={};for(let g=0;go?"1":"0").join(""));const n=window.fetch,r=await n(a.href,{});if(!r.ok){let o;throw r.headers.get("content-type")?.includes("application/json")?o=await r.json():r.status===404?o="Not Found":r.status===500&&(o="Internal Error"),new fe(r.status,o)}return new Promise(async o=>{const s=new Map,c=r.body.getReader();function i(h){return We(h,{...E.decoders,Promise:d=>new Promise((m,u)=>{s.set(d,{fulfil:m,reject:u})})})}let l="";for(;;){const{done:h,value:d}=await c.read();if(h&&!l)break;for(l+=!d&&l?` -`:yt.decode(d,{stream:!0});;){const m=l.indexOf(` -`);if(m===-1)break;const u=JSON.parse(l.slice(0,m));if(l=l.slice(m+1),u.type==="redirect")return o(u);if(u.type==="data")u.nodes?.forEach(f=>{f?.type==="data"&&(f.uses=ct(f.uses),f.data=i(f.data))}),o(u);else if(u.type==="chunk"){const{id:f,data:y,error:b}=u,_=s.get(f);s.delete(f),b?_.reject(i(b)):_.fulfil(i(y))}}}})}function ct(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let ke=!1;function je(e,t=!0){const a=document.querySelector("[autofocus]");if(a)a.focus();else{const n=lt(e);if(n&&document.getElementById(n)){const{x:o,y:s}=x();setTimeout(()=>{const c=history.state;ke=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(c,"",e),t&&scrollTo(o,s),ke=!1})}else{const o=document.body,s=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),s!==null?o.setAttribute("tabindex",s):o.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const o=[];for(let s=0;s{if(r.rangeCount===o.length){for(let s=0;s{o=l,s=h});return c.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:x()},to:a&&{params:t?.params??null,route:{id:t?.route?.id??null},url:a,scroll:r},willUnload:!t,type:n,complete:c},fulfil:o,reject:s}}function de(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function ta(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function lt(e){let t;if(E.hash){const[,,a]=e.hash.split("#",3);t=a??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{ca as a,E as b,sa as c,ia as i,oa as p,j as s}; diff --git a/build/client/_app/immutable/chunks/BkIq08el.js.br b/build/client/_app/immutable/chunks/BkIq08el.js.br deleted file mode 100644 index 4a7db52..0000000 Binary files a/build/client/_app/immutable/chunks/BkIq08el.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BkIq08el.js.gz b/build/client/_app/immutable/chunks/BkIq08el.js.gz deleted file mode 100644 index dcc8104..0000000 Binary files a/build/client/_app/immutable/chunks/BkIq08el.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BnX5ZnVA.js b/build/client/_app/immutable/chunks/BnX5ZnVA.js deleted file mode 100644 index af55481..0000000 --- a/build/client/_app/immutable/chunks/BnX5ZnVA.js +++ /dev/null @@ -1 +0,0 @@ -import{ac as u,ad as v,F as _,ae as h,af as f,a5 as A,ag as l,ah as g}from"./BxEwC6Zc.js";const S=Symbol("is custom element"),p=Symbol("is html"),N=f?"link":"LINK",T=f?"progress":"PROGRESS";function M(s){if(_){var r=!1,e=()=>{if(!r){if(r=!0,s.hasAttribute("value")){var a=s.value;c(s,"value",null),s.value=a}if(s.hasAttribute("checked")){var t=s.checked;c(s,"checked",null),s.checked=t}}};s.__on_r=e,A(e),l()}}function k(s,r){var e=d(s);e.value===(e.value=r??void 0)||s.value===r&&(r!==0||s.nodeName!==T)||(s.value=r??"")}function y(s,r){r?s.hasAttribute("selected")||s.setAttribute("selected",""):s.removeAttribute("selected")}function c(s,r,e,a){var t=d(s);_&&(t[r]=s.getAttribute(r),r==="src"||r==="srcset"||r==="href"&&s.nodeName===N)||t[r]!==(t[r]=e)&&(r==="loading"&&(s[g]=e),e==null?s.removeAttribute(r):typeof e!="string"&&E(s).includes(r)?s[r]=e:s.setAttribute(r,e))}function d(s){return s.__attributes??={[S]:s.nodeName.includes("-"),[p]:s.namespaceURI===u}}var i=new Map;function E(s){var r=s.getAttribute("is")||s.nodeName,e=i.get(r);if(e)return e;i.set(r,e=[]);for(var a,t=s,n=Element.prototype;n!==t;){a=h(t);for(var o in a)a[o].set&&e.push(o);t=v(t)}return e}export{k as a,y as b,M as r,c as s}; diff --git a/build/client/_app/immutable/chunks/BnX5ZnVA.js.br b/build/client/_app/immutable/chunks/BnX5ZnVA.js.br deleted file mode 100644 index d7ced74..0000000 Binary files a/build/client/_app/immutable/chunks/BnX5ZnVA.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BnX5ZnVA.js.gz b/build/client/_app/immutable/chunks/BnX5ZnVA.js.gz deleted file mode 100644 index a48976f..0000000 Binary files a/build/client/_app/immutable/chunks/BnX5ZnVA.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BqOsL1Vv.js b/build/client/_app/immutable/chunks/BqOsL1Vv.js deleted file mode 100644 index 3f264a6..0000000 --- a/build/client/_app/immutable/chunks/BqOsL1Vv.js +++ /dev/null @@ -1 +0,0 @@ -import{F as i}from"./BxEwC6Zc.js";function n(s,l,r){var t=s==null?"":""+s;return t===""?null:t}function h(s,l,r,t,f,c){var a=s.__className;if(i||a!==r||a===void 0){var e=n(r);(!i||e!==s.getAttribute("class"))&&(e==null?s.removeAttribute("class"):s.className=e),s.__className=r}return c}export{h as s}; diff --git a/build/client/_app/immutable/chunks/BqOsL1Vv.js.br b/build/client/_app/immutable/chunks/BqOsL1Vv.js.br deleted file mode 100644 index 85367c3..0000000 Binary files a/build/client/_app/immutable/chunks/BqOsL1Vv.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BqOsL1Vv.js.gz b/build/client/_app/immutable/chunks/BqOsL1Vv.js.gz deleted file mode 100644 index e3cb59d..0000000 Binary files a/build/client/_app/immutable/chunks/BqOsL1Vv.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BxEwC6Zc.js b/build/client/_app/immutable/chunks/BxEwC6Zc.js deleted file mode 100644 index 7c1d4c2..0000000 --- a/build/client/_app/immutable/chunks/BxEwC6Zc.js +++ /dev/null @@ -1 +0,0 @@ -var Vt=Array.isArray,Ut=Array.prototype.indexOf,le=Array.prototype.includes,qn=Array.from,Vn=Object.defineProperty,de=Object.getOwnPropertyDescriptor,Bt=Object.getOwnPropertyDescriptors,Gt=Object.prototype,zt=Array.prototype,ft=Object.getPrototypeOf,Ze=Object.isExtensible;const Kt=()=>{};function Un(e){return e()}function Xt(e){for(var t=0;t{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Bn(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const g=2,we=4,me=8,ot=1<<24,q=16,L=32,fe=64,$t=128,O=512,m=1024,A=2048,F=4096,M=8192,U=16384,z=32768,Re=65536,Je=1<<17,ut=1<<18,Ee=1<<19,ct=1<<20,Gn=1<<25,ne=65536,Ce=1<<21,Ye=1<<22,B=1<<23,Q=Symbol("$state"),zn=Symbol("legacy props"),Kn=Symbol(""),W=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},$n=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),ge=3,_t=8;function Wt(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Wn(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Zt(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Jt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Qt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function en(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Zn(){throw new Error("https://svelte.dev/e/hydration_failed")}function Jn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function tn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function nn(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function rn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Qn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const er=1,tr=2,nr=4,rr=8,sr=16,ir=1,ar=2,fr=4,lr=8,or=16,sn=1,an=2,fn="[",ln="[!",ur="[?",on="]",qe={},E=Symbol(),un="http://www.w3.org/1999/xhtml";function Ve(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function cr(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function _r(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let C=!1;function vr(e){C=e}let y;function re(e){if(e===null)throw Ve(),qe;return y=e}function cn(){return re(X(y))}function dr(e){if(C){if(X(y)!==null)throw Ve(),qe;y=e}}function hr(e=1){if(C){for(var t=e,n=y;t--;)n=X(n);y=n}}function pr(e=!0){for(var t=0,n=y;;){if(n.nodeType===_t){var r=n.data;if(r===on){if(t===0)return n;t-=1}else(r===fn||r===ln||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=X(n);e&&n.remove(),n=s}}function yr(e){if(!e||e.nodeType!==_t)throw Ve(),qe;return e.data}function vt(e){return e===this.v}function _n(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function dt(e){return!_n(e,this.v)}let Oe=!1;function wr(){Oe=!0}let T=null;function xe(e){T=e}function mr(e,t=!1,n){T={p:T,i:!1,c:null,e:null,s:e,x:null,l:Oe&&!t?{s:null,u:null,$:[]}:null}}function Er(e){var t=T,n=t.e;if(n!==null){t.e=null;for(var r of n)kt(r)}return t.i=!0,T=t.p,{}}function be(){return!Oe||T!==null&&T.l===null}let Z=[];function ht(){var e=Z;Z=[],Xt(e)}function Qe(e){if(Z.length===0&&!he){var t=Z;queueMicrotask(()=>{t===Z&&ht()})}Z.push(e)}function vn(){for(;Z.length>0;)ht()}function dn(e){var t=d;if(t===null)return v.f|=B,e;if((t.f&z)===0&&(t.f&we)===0)throw e;Ne(e,t)}function Ne(e,t){for(;t!==null;){if((t.f&$t)!==0){if((t.f&z)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const hn=-7169;function w(e,t){e.f=e.f&hn|t}function Ue(e){(e.f&O)!==0||e.deps===null?w(e,m):w(e,F)}function pt(e){if(e!==null)for(const t of e)(t.f&g)===0||(t.f&ne)===0||(t.f^=ne,pt(t.deps))}function pn(e,t,n){(e.f&A)!==0?t.add(e):(e.f&F)!==0&&n.add(e),pt(e.deps),w(e,m)}const Ae=new Set;let p=null,et=null,I=null,S=[],ke=null,Me=!1,he=!1;class ce{current=new Map;previous=new Map;#r=new Set;#s=new Set;#n=0;#i=0;#l=null;#a=new Set;#t=new Set;#e=new Map;is_fork=!1;#f=!1;#o(){return this.is_fork||this.#i>0}skip_effect(t){this.#e.has(t)||this.#e.set(t,{d:[],m:[]})}unskip_effect(t){var n=this.#e.get(t);if(n){this.#e.delete(t);for(var r of n.d)w(r,A),Y(r);for(r of n.m)w(r,F),Y(r)}}process(t){S=[],this.apply();var n=[],r=[];for(const s of t)this.#u(s,n,r);if(this.#o()){this.#c(r),this.#c(n);for(const[s,i]of this.#e)Et(s,i)}else{for(const s of this.#r)s();this.#r.clear(),this.#n===0&&this.#_(),et=this,p=null,tt(r),tt(n),this.#a.clear(),this.#t.clear(),et=null,this.#l?.resolve()}I=null}#u(t,n,r){t.f^=m;for(var s=t.first;s!==null;){var i=s.f,l=(i&(L|fe))!==0,f=l&&(i&m)!==0,a=f||(i&M)!==0||this.#e.has(s);if(!a&&s.fn!==null){l?s.f^=m:(i&we)!==0?n.push(s):Te(s)&&((i&q)!==0&&this.#t.add(s),ue(s));var o=s.first;if(o!==null){s=o;continue}}for(;s!==null;){var c=s.next;if(c!==null){s=c;break}s=s.parent}}}#c(t){for(var n=0;n0){if(yt(),p!==null&&p!==this)return}else this.#n===0&&this.process([]);this.deactivate()}discard(){for(const t of this.#s)t(this);this.#s.clear()}#_(){if(Ae.size>1){this.previous.clear();var t=I,n=!0;for(const s of Ae){if(s===this){n=!1;continue}const i=[];for(const[f,a]of this.current){if(s.current.has(f))if(n&&a!==s.current.get(f))s.current.set(f,a);else continue;i.push(f)}if(i.length===0)continue;const l=[...s.current.keys()].filter(f=>!this.current.has(f));if(l.length>0){var r=S;S=[];const f=new Set,a=new Map;for(const o of i)wt(o,l,f,a);if(S.length>0){p=s,s.apply();for(const o of S)s.#u(o,[],[]);s.deactivate()}S=r}}p=null,I=t}this.#e.clear(),Ae.delete(this)}increment(t){this.#n+=1,t&&(this.#i+=1)}decrement(t){this.#n-=1,t&&(this.#i-=1),!this.#f&&(this.#f=!0,Qe(()=>{this.#f=!1,this.#o()?S.length>0&&this.flush():this.revive()}))}revive(){for(const t of this.#a)this.#t.delete(t),w(t,A),Y(t);for(const t of this.#t)w(t,F),Y(t);this.flush()}oncommit(t){this.#r.add(t)}ondiscard(t){this.#s.add(t)}settled(){return(this.#l??=lt()).promise}static ensure(){if(p===null){const t=p=new ce;Ae.add(p),he||Qe(()=>{p===t&&t.flush()})}return p}apply(){}}function yn(e){var t=he;he=!0;try{for(var n;;){if(vn(),S.length===0&&(p?.flush(),S.length===0))return ke=null,n;yt()}}finally{he=t}}function yt(){Me=!0;var e=null;try{for(var t=0;S.length>0;){var n=ce.ensure();if(t++>1e3){var r,s;wn()}n.process(S),G.clear()}}finally{S=[],Me=!1,ke=null}}function wn(){try{en()}catch(e){Ne(e,ke)}}let H=null;function tt(e){var t=e.length;if(t!==0){for(var n=0;n0)){G.clear();for(const s of H){if((s.f&(U|M))!==0)continue;const i=[s];let l=s.parent;for(;l!==null;)H.has(l)&&(H.delete(l),i.push(l)),l=l.parent;for(let f=i.length-1;f>=0;f--){const a=i[f];(a.f&(U|M))===0&&ue(a)}}H.clear()}}H=null}}function wt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&g)!==0?wt(s,t,n,r):(i&(Ye|q))!==0&&(i&A)===0&&mt(s,t,r)&&(w(s,A),Y(s))}}function mt(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(le.call(t,s))return!0;if((s.f&g)!==0&&mt(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Y(e){var t=ke=e,n=t.b;if(n?.is_pending&&(e.f&(we|me|ot))!==0&&(e.f&z)===0){n.defer_effect(e);return}for(;t.parent!==null;){t=t.parent;var r=t.f;if(Me&&t===d&&(r&q)!==0&&(r&ut)===0&&(r&z)!==0)return;if((r&(fe|L))!==0){if((r&m)===0)return;t.f^=m}}S.push(t)}function Et(e,t){if(!((e.f&L)!==0&&(e.f&m)!==0)){(e.f&A)!==0?t.d.push(e):(e.f&F)!==0&&t.m.push(e),w(e,m);for(var n=e.first;n!==null;)Et(n,t),n=n.next}}function mn(e,t,n,r){const s=be()?Be:Tn;var i=e.filter(u=>!u.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var l=d,f=En(),a=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(u=>u.promise)):null;function o(u){f();try{r(u)}catch(_){(l.f&U)===0&&Ne(_,l)}Fe()}if(n.length===0){a.then(()=>o(t.map(s)));return}function c(){f(),Promise.all(n.map(u=>bn(u))).then(u=>o([...t.map(s),...u])).catch(u=>Ne(u,l))}a?a.then(c):c()}function En(){var e=d,t=v,n=T,r=p;return function(i=!0){oe(e),K(t),xe(n),i&&r?.activate()}}function Fe(e=!0){oe(null),K(null),xe(null),e&&p?.deactivate()}function gn(){var e=d.b,t=p,n=e.is_rendered();return e.update_pending_count(1),t.increment(n),()=>{e.update_pending_count(-1),t.decrement(n)}}function Be(e){var t=g|A,n=v!==null&&(v.f&g)!==0?v:null;return d!==null&&(d.f|=Ee),{ctx:T,deps:null,effects:null,equals:vt,f:t,fn:e,reactions:null,rv:0,v:E,wv:0,parent:n??d,ac:null}}function bn(e,t,n){d===null&&Wt();var s=void 0,i=ze(E),l=!v,f=new Map;return In(()=>{var a=lt();s=a.promise;try{Promise.resolve(e()).then(a.resolve,a.reject).finally(Fe)}catch(_){a.reject(_),Fe()}var o=p;if(l){var c=gn();f.get(o)?.reject(W),f.delete(o),f.set(o,a)}const u=(_,b=void 0)=>{if(o.activate(),b)b!==W&&(i.f|=B,je(i,b));else{(i.f&B)!==0&&(i.f^=B),je(i,_);for(const[h,D]of f){if(f.delete(h),h===o)break;D.reject(W)}}c&&c()};a.promise.then(u,_=>u(null,_||"unknown"))}),Dn(()=>{for(const a of f.values())a.reject(W)}),new Promise(a=>{function o(c){function u(){c===s?a(i):o(s)}c.then(u,u)}o(s)})}function gr(e){const t=Be(e);return Mt(t),t}function Tn(e){const t=Be(e);return t.equals=dt,t}function An(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!Tt&&xn()}return t}function xn(){Tt=!1;for(const e of Le)(e.f&m)!==0&&w(e,F),Te(e)&&ue(e);Le.clear()}function Pe(e){$(e,e.v+1)}function At(e,t){var n=e.reactions;if(n!==null)for(var r=be(),s=n.length,i=0;i{if(ee===i)return f();var a=v,o=ee;K(null),at(i);var c=f();return K(a),at(o),c};return r&&n.set("length",V(e.length)),new Proxy(e,{defineProperty(f,a,o){(!("value"in o)||o.configurable===!1||o.enumerable===!1||o.writable===!1)&&tn();var c=n.get(a);return c===void 0?l(()=>{var u=V(o.value);return n.set(a,u),u}):$(c,o.value,!0),!0},deleteProperty(f,a){var o=n.get(a);if(o===void 0){if(a in f){const c=l(()=>V(E));n.set(a,c),Pe(s)}}else $(o,E),Pe(s);return!0},get(f,a,o){if(a===Q)return e;var c=n.get(a),u=a in f;if(c===void 0&&(!u||de(f,a)?.writable)&&(c=l(()=>{var b=_e(u?f[a]:E),h=V(b);return h}),n.set(a,c)),c!==void 0){var _=ve(c);return _===E?void 0:_}return Reflect.get(f,a,o)},getOwnPropertyDescriptor(f,a){var o=Reflect.getOwnPropertyDescriptor(f,a);if(o&&"value"in o){var c=n.get(a);c&&(o.value=ve(c))}else if(o===void 0){var u=n.get(a),_=u?.v;if(u!==void 0&&_!==E)return{enumerable:!0,configurable:!0,value:_,writable:!0}}return o},has(f,a){if(a===Q)return!0;var o=n.get(a),c=o!==void 0&&o.v!==E||Reflect.has(f,a);if(o!==void 0||d!==null&&(!c||de(f,a)?.writable)){o===void 0&&(o=l(()=>{var _=c?_e(f[a]):E,b=V(_);return b}),n.set(a,o));var u=ve(o);if(u===E)return!1}return c},set(f,a,o,c){var u=n.get(a),_=a in f;if(r&&a==="length")for(var b=o;bV(E)),n.set(b+"",h))}if(u===void 0)(!_||de(f,a)?.writable)&&(u=l(()=>V(void 0)),$(u,_e(o)),n.set(a,u));else{_=u.v!==E;var D=l(()=>_e(o));$(u,D)}var $e=Reflect.getOwnPropertyDescriptor(f,a);if($e?.set&&$e.set.call(c,o),!_){if(r&&typeof a=="string"){var We=n.get("length"),Ie=Number(a);Number.isInteger(Ie)&&Ie>=We.v&&$(We,Ie+1)}Pe(s)}return!0},ownKeys(f){ve(s);var a=Reflect.ownKeys(f).filter(u=>{var _=n.get(u);return _===void 0||_.v!==E});for(var[o,c]of n)c.v!==E&&!(o in f)&&a.push(o);return a},setPrototypeOf(){nn()}})}function nt(e){try{if(e!==null&&typeof e=="object"&&Q in e)return e[Q]}catch{}return e}function Tr(e,t){return Object.is(nt(e),nt(t))}var rt,St,Rt,xt;function Ar(){if(rt===void 0){rt=window,St=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Rt=de(t,"firstChild").get,xt=de(t,"nextSibling").get,Ze(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Ze(n)&&(n.__t=void 0)}}function se(e=""){return document.createTextNode(e)}function pe(e){return Rt.call(e)}function X(e){return xt.call(e)}function Sr(e,t){if(!C)return pe(e);var n=pe(y);if(n===null)n=y.appendChild(se());else if(t&&n.nodeType!==ge){var r=se();return n?.before(r),re(r),r}return t&&De(n),re(n),n}function Rr(e,t=!1){if(!C){var n=pe(e);return n instanceof Comment&&n.data===""?X(n):n}if(t){if(y?.nodeType!==ge){var r=se();return y?.before(r),re(r),r}De(y)}return y}function xr(e,t=1,n=!1){let r=C?y:e;for(var s;t--;)s=r,r=X(r);if(!C)return r;if(n){if(r?.nodeType!==ge){var i=se();return r===null?s?.after(i):r.before(i),re(i),i}De(r)}return re(r),r}function Nr(e){e.textContent=""}function Or(){return!1}function Nn(e,t,n){return document.createElementNS(un,e,void 0)}function De(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===ge;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}let st=!1;function On(){st||(st=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Ke(e){var t=v,n=d;K(null),oe(null);try{return e()}finally{K(t),oe(n)}}function kr(e,t,n,r=n){e.addEventListener(t,()=>Ke(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),On()}function Nt(e){d===null&&(v===null&&Qt(),Jt()),ae&&Zt()}function kn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function j(e,t,n){var r=d;r!==null&&(r.f&M)!==0&&(e|=M);var s={ctx:T,deps:null,nodes:null,f:e|A|O,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{ue(s)}catch(f){throw ie(s),f}else t!==null&&Y(s);var i=s;if(n&&i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Ee)===0&&(i=i.first,(e&q)!==0&&(e&Re)!==0&&i!==null&&(i.f|=Re)),i!==null&&(i.parent=r,r!==null&&kn(i,r),v!==null&&(v.f&g)!==0&&(e&fe)===0)){var l=v;(l.effects??=[]).push(i)}return s}function Ot(){return v!==null&&!P}function Dn(e){const t=j(me,null,!1);return w(t,m),t.teardown=e,t}function Dr(e){Nt();var t=d.f,n=!v&&(t&L)!==0&&(t&z)===0;if(n){var r=T;(r.e??=[]).push(e)}else return kt(e)}function kt(e){return j(we|ct,e,!1)}function Ir(e){return Nt(),j(me|ct,e,!0)}function Pr(e){ce.ensure();const t=j(fe|Ee,e,!0);return(n={})=>new Promise(r=>{n.outro?Mn(t,()=>{ie(t),r(void 0)}):(ie(t),r(void 0))})}function Cr(e){return j(we,e,!1)}function In(e){return j(Ye|Ee,e,!0)}function Mr(e,t=0){return j(me|t,e,!0)}function Fr(e,t=[],n=[],r=[]){mn(r,t,n,s=>{j(me,()=>e(...s.map(ve)),!0)})}function Lr(e,t=0){var n=j(q|t,e,!0);return n}function jr(e){return j(L|Ee,e,!0)}function Dt(e){var t=e.teardown;if(t!==null){const n=ae,r=v;it(!0),K(null);try{t.call(null)}finally{it(n),K(r)}}}function Xe(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Ke(()=>{s.abort(W)});var r=n.next;(n.f&fe)!==0?n.parent=null:ie(n,t),n=r}}function Pn(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&L)===0&&ie(t),t=n}}function ie(e,t=!0){var n=!1;(t||(e.f&ut)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Cn(e.nodes.start,e.nodes.end),n=!0),Xe(e,t&&!n),ye(e,0),w(e,U);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Dt(e);var s=e.parent;s!==null&&s.first!==null&&It(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Cn(e,t){for(;e!==null;){var n=e===t?null:X(e);e.remove(),e=n}}function It(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Mn(e,t,n=!0){var r=[];Pt(e,r,!0);var s=()=>{n&&ie(e),t&&t()},i=r.length;if(i>0){var l=()=>--i||s();for(var f of r)f.out(l)}else s()}function Pt(e,t,n){if((e.f&M)===0){e.f^=M;var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)(f.is_global||n)&&t.push(f);for(var s=e.first;s!==null;){var i=s.next,l=(s.f&Re)!==0||(s.f&L)!==0&&(e.f&q)!==0;Pt(s,t,l?n:!1),s=i}}}function Hr(e){Ct(e,!0)}function Ct(e,t){if((e.f&M)!==0){e.f^=M,(e.f&m)===0&&(w(e,A),Y(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Re)!==0||(n.f&L)!==0;Ct(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const l of i)(l.is_global||t)&&l.in()}}function Yr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:X(n);t.append(n),n=s}}let Se=!1,ae=!1;function it(e){ae=e}let v=null,P=!1;function K(e){v=e}let d=null;function oe(e){d=e}let k=null;function Mt(e){v!==null&&(k===null?k=[e]:k.push(e))}let R=null,x=0,N=null;function Fn(e){N=e}let Ft=1,J=0,ee=J;function at(e){ee=e}function Lt(){return++Ft}function Te(e){var t=e.f;if((t&A)!==0)return!0;if(t&g&&(e.f&=~ne),(t&F)!==0){for(var n=e.deps,r=n.length,s=0;se.wv)return!0}(t&O)!==0&&I===null&&w(e,m)}return!1}function jt(e,t,n=!0){var r=e.reactions;if(r!==null&&!(k!==null&&le.call(k,e)))for(var s=0;s{e.ac.abort(W)}),e.ac=null);try{e.f|=Ce;var c=e.fn,u=c();e.f|=z;var _=e.deps,b=p?.is_fork;if(R!==null){var h;if(b||ye(e,x),_!==null&&x>0)for(_.length=x+R.length,h=0;he});function Hn(e){return jn?.createHTML(e)??e}function Yn(e){var t=Nn("template");return t.innerHTML=Hn(e.replaceAll("","")),t.content}function te(e,t){var n=d;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function Gr(e,t){var n=(t&sn)!==0,r=(t&an)!==0,s,i=!e.startsWith("");return()=>{if(C)return te(y,null),y;s===void 0&&(s=Yn(i?e:""+e),n||(s=pe(s)));var l=r||St?document.importNode(s,!0):s.cloneNode(!0);if(n){var f=pe(l),a=l.lastChild;te(f,a)}else te(l,l);return l}}function zr(e=""){if(!C){var t=se(e+"");return te(t,t),t}var n=y;return n.nodeType!==ge?(n.before(n=se()),re(n)):De(n),te(n,n),n}function Kr(){if(C)return te(y,null),y;var e=document.createDocumentFragment(),t=document.createComment(""),n=se();return e.append(t,n),te(t,n),e}function Xr(e,t){if(C){var n=d;((n.f&z)===0||n.nodes.end===null)&&(n.nodes.end=y),cn();return}e!==null&&e.before(t)}export{br as $,et as A,qr as B,Ur as C,Mr as D,Re as E,C as F,se as G,nr as H,re as I,pe as J,cn as K,yr as L,ln as M,pr as N,vr as O,y as P,_t as Q,on as R,je as S,Gn as T,jr as U,Wn as V,Or as W,Tn as X,qn as Y,er as Z,sr as _,Xr as a,U as a$,ze as a0,tr as a1,Hr as a2,Mn as a3,M as a4,Qe as a5,L as a6,rr as a7,Nr as a8,ie as a9,A as aA,Y as aB,F as aC,pn as aD,oe as aE,K as aF,xe as aG,dn as aH,v as aI,Ne as aJ,Ee as aK,Qn as aL,_r as aM,Vn as aN,Ar as aO,fn as aP,qe as aQ,Zn as aR,Pr as aS,te as aT,Ve as aU,Q as aV,de as aW,Jn as aX,fr as aY,_e as aZ,ae as a_,X as aa,Yr as ab,un as ac,ft as ad,Bt as ae,$n as af,On as ag,Kn as ah,T as ai,Ir as aj,Xt as ak,Un as al,Br as am,Be as an,wr as ao,_n as ap,Oe as aq,yn as ar,Vr as as,Ot as at,Pe as au,d as av,$t as aw,ur as ax,ce as ay,w as az,Er as b,lr as b0,ar as b1,ir as b2,or as b3,zn as b4,Kt as b5,Kr as c,Gr as d,Sr as e,Rr as f,zr as g,Lr as h,$ as i,V as j,ve as k,gr as l,Bn as m,hr as n,kr as o,mr as p,Cr as q,dr as r,xr as s,Fr as t,Dr as u,Dn as v,Vt as w,cr as x,Tr as y,p as z}; diff --git a/build/client/_app/immutable/chunks/BxEwC6Zc.js.br b/build/client/_app/immutable/chunks/BxEwC6Zc.js.br deleted file mode 100644 index 3bec152..0000000 Binary files a/build/client/_app/immutable/chunks/BxEwC6Zc.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/BxEwC6Zc.js.gz b/build/client/_app/immutable/chunks/BxEwC6Zc.js.gz deleted file mode 100644 index 874dd5a..0000000 Binary files a/build/client/_app/immutable/chunks/BxEwC6Zc.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/CAkKRSSs.js b/build/client/_app/immutable/chunks/CAkKRSSs.js deleted file mode 100644 index 17691ab..0000000 --- a/build/client/_app/immutable/chunks/CAkKRSSs.js +++ /dev/null @@ -1 +0,0 @@ -import{o as _,B as b,C as i,D as m,F as y,z as v,A as h}from"./BxEwC6Zc.js";function E(e,l,u=l){var f=new WeakSet;_(e,"input",async r=>{var a=r?e.defaultValue:e.value;if(a=o(e)?t(a):a,u(a),v!==null&&f.add(v),await b(),a!==(a=l())){var d=e.selectionStart,s=e.selectionEnd,n=e.value.length;if(e.value=a??"",s!==null){var c=e.value.length;d===s&&s===n&&c>n?(e.selectionStart=c,e.selectionEnd=c):(e.selectionStart=d,e.selectionEnd=Math.min(s,c))}}}),(y&&e.defaultValue!==e.value||i(l)==null&&e.value)&&(u(o(e)?t(e.value):e.value),v!==null&&f.add(v)),m(()=>{var r=l();if(e===document.activeElement){var a=h??v;if(f.has(a))return}o(e)&&r===t(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function o(e){var l=e.type;return l==="number"||l==="range"}function t(e){return e===""?null:+e}export{E as b}; diff --git a/build/client/_app/immutable/chunks/CAkKRSSs.js.br b/build/client/_app/immutable/chunks/CAkKRSSs.js.br deleted file mode 100644 index 89c54ed..0000000 Binary files a/build/client/_app/immutable/chunks/CAkKRSSs.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/CAkKRSSs.js.gz b/build/client/_app/immutable/chunks/CAkKRSSs.js.gz deleted file mode 100644 index 5479c5e..0000000 Binary files a/build/client/_app/immutable/chunks/CAkKRSSs.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/CvGSsBh3.js b/build/client/_app/immutable/chunks/CvGSsBh3.js deleted file mode 100644 index 4c73729..0000000 --- a/build/client/_app/immutable/chunks/CvGSsBh3.js +++ /dev/null @@ -1 +0,0 @@ -import{u as a,ai as o,aq as s,C as n,B as l,ar as u,as as c}from"./BxEwC6Zc.js";import{h as r,m as i,u as f}from"./DoLu9QLy.js";function m(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function _(e){o===null&&m(),s&&o.l!==null?p(o).m.push(e):a(()=>{const t=n(e);if(typeof t=="function")return t})}function p(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const h=Object.freeze(Object.defineProperty({__proto__:null,flushSync:u,hydrate:r,mount:i,onMount:_,settled:c,tick:l,unmount:f,untrack:n},Symbol.toStringTag,{value:"Module"}));export{_ as o,h as s}; diff --git a/build/client/_app/immutable/chunks/CvGSsBh3.js.br b/build/client/_app/immutable/chunks/CvGSsBh3.js.br deleted file mode 100644 index e11b799..0000000 Binary files a/build/client/_app/immutable/chunks/CvGSsBh3.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/CvGSsBh3.js.gz b/build/client/_app/immutable/chunks/CvGSsBh3.js.gz deleted file mode 100644 index 7f24d1a..0000000 Binary files a/build/client/_app/immutable/chunks/CvGSsBh3.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/Cy2QBcXt.js b/build/client/_app/immutable/chunks/Cy2QBcXt.js deleted file mode 100644 index 4b54476..0000000 --- a/build/client/_app/immutable/chunks/Cy2QBcXt.js +++ /dev/null @@ -1 +0,0 @@ -import{o as _,q as o,v as c,w as b,x as m,y as h,z as v,A as y}from"./BxEwC6Zc.js";function d(e,r,f=!1){if(e.multiple){if(r==null)return;if(!b(r))return m();for(var a of e.options)a.selected=r.includes(i(a));return}for(a of e.options){var t=i(a);if(h(t,r)){a.selected=!0;return}}(!f||r!==void 0)&&(e.selectedIndex=-1)}function q(e){var r=new MutationObserver(()=>{d(e,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),c(()=>{r.disconnect()})}function p(e,r,f=r){var a=new WeakSet,t=!0;_(e,"change",u=>{var l=u?"[selected]":":checked",n;if(e.multiple)n=[].map.call(e.querySelectorAll(l),i);else{var s=e.querySelector(l)??e.querySelector("option:not([disabled])");n=s&&i(s)}f(n),v!==null&&a.add(v)}),o(()=>{var u=r();if(e===document.activeElement){var l=y??v;if(a.has(l))return}if(d(e,u,t),t&&u===void 0){var n=e.querySelector(":checked");n!==null&&(u=i(n),f(u))}e.__value=u,t=!1}),q(e)}function i(e){return"__value"in e?e.__value:e.value}export{p as b,q as i,d as s}; diff --git a/build/client/_app/immutable/chunks/Cy2QBcXt.js.br b/build/client/_app/immutable/chunks/Cy2QBcXt.js.br deleted file mode 100644 index ccbb492..0000000 Binary files a/build/client/_app/immutable/chunks/Cy2QBcXt.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/Cy2QBcXt.js.gz b/build/client/_app/immutable/chunks/Cy2QBcXt.js.gz deleted file mode 100644 index 627b996..0000000 Binary files a/build/client/_app/immutable/chunks/Cy2QBcXt.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/CyUoLS3q.js b/build/client/_app/immutable/chunks/CyUoLS3q.js deleted file mode 100644 index 80818c3..0000000 --- a/build/client/_app/immutable/chunks/CyUoLS3q.js +++ /dev/null @@ -1 +0,0 @@ -import{h as p,E as t}from"./BxEwC6Zc.js";import{B as c}from"./kALFGdUG.js";function E(r,s,...a){var e=new c(r);p(()=>{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{E as s}; diff --git a/build/client/_app/immutable/chunks/CyUoLS3q.js.br b/build/client/_app/immutable/chunks/CyUoLS3q.js.br deleted file mode 100644 index 23cb272..0000000 Binary files a/build/client/_app/immutable/chunks/CyUoLS3q.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/CyUoLS3q.js.gz b/build/client/_app/immutable/chunks/CyUoLS3q.js.gz deleted file mode 100644 index 1ce0608..0000000 Binary files a/build/client/_app/immutable/chunks/CyUoLS3q.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/D2SGgx9j.js b/build/client/_app/immutable/chunks/D2SGgx9j.js deleted file mode 100644 index ddb898d..0000000 --- a/build/client/_app/immutable/chunks/D2SGgx9j.js +++ /dev/null @@ -1 +0,0 @@ -import{p as r}from"./DAtZQVjv.js";import{s as t}from"./BkIq08el.js";const e={get data(){return r.data},get error(){return r.error},get status(){return r.status},get url(){return r.url}};t.updated.check;const o=e;export{o as p}; diff --git a/build/client/_app/immutable/chunks/D2SGgx9j.js.br b/build/client/_app/immutable/chunks/D2SGgx9j.js.br deleted file mode 100644 index 2f30f03..0000000 Binary files a/build/client/_app/immutable/chunks/D2SGgx9j.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/D2SGgx9j.js.gz b/build/client/_app/immutable/chunks/D2SGgx9j.js.gz deleted file mode 100644 index ad2aa4f..0000000 Binary files a/build/client/_app/immutable/chunks/D2SGgx9j.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/DAtZQVjv.js b/build/client/_app/immutable/chunks/DAtZQVjv.js deleted file mode 100644 index 8e3bd4b..0000000 --- a/build/client/_app/immutable/chunks/DAtZQVjv.js +++ /dev/null @@ -1 +0,0 @@ -import{o as x}from"./CvGSsBh3.js";import{b5 as w,ap as q,j as u,k as f,i as d}from"./BxEwC6Zc.js";const p=[];function E(e,t=w){let r=null;const n=new Set;function s(a){if(q(e,a)&&(e=a,r)){const i=!p.length;for(const c of n)c[1](),p.push(c,e);if(i){for(let c=0;c{n.delete(c),n.size===0&&r&&(r(),r=null)}}return{set:s,update:l,subscribe:o}}new URL("sveltekit-internal://");function Q(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function Z(e){return e.split("%25").map(decodeURI).join("%25")}function ee(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function te({href:e}){return e.split("#")[0]}function P(...e){let t=5381;for(const r of e)if(typeof r=="string"){let n=r.length;for(;n;)t=t*33^r.charCodeAt(--n)}else if(ArrayBuffer.isView(r)){const n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);let s=n.length;for(;s;)t=t*33^n[--s]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;const ne=new TextDecoder;function W(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&m.delete(k(e)),V(e,t));const m=new Map;function re(e,t){const r=k(e,t),n=document.querySelector(r);if(n?.textContent){n.remove();let{body:s,...l}=JSON.parse(n.textContent);const o=n.getAttribute("data-ttl");return o&&m.set(r,{body:s,init:l,ttl:1e3*Number(o)}),n.getAttribute("data-b64")!==null&&(s=W(s)),Promise.resolve(new Response(s,l))}return window.fetch(e,t)}function se(e,t,r){if(m.size>0){const n=k(e,r),s=m.get(n);if(s){if(performance.now(){const s=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(n);if(s)return t.push({name:s[1],matcher:s[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const l=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(n);if(l)return t.push({name:l[1],matcher:l[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!n)return;const o=n.split(/\[(.+?)\](?!\])/);return"/"+o.map((i,c)=>{if(c%2){if(i.startsWith("x+"))return v(String.fromCharCode(parseInt(i.slice(2),16)));if(i.startsWith("u+"))return v(String.fromCharCode(...i.slice(2).split("-").map(C=>parseInt(C,16))));const h=z.exec(i),[,_,b,j,L]=h;return t.push({name:j,matcher:L,optional:!!_,rest:!!b,chained:b?c===1&&o[0]==="":!1}),b?"([^]*?)":_?"([^/]*)?":"([^/]+?)"}return v(i)}).join("")}).join("")}/?$`),params:t}}function G(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function T(e){return e.slice(1).split("/").filter(G)}function oe(e,t,r){const n={},s=e.slice(1),l=s.filter(a=>a!==void 0);let o=0;for(let a=0;ah).join("/"),o=0),c===void 0)if(i.rest)c="";else continue;if(!i.matcher||r[i.matcher](c)){n[i.name]=c;const h=t[a+1],_=s[a+1];h&&!h.rest&&h.optional&&_&&i.chained&&(o=0),!h&&!_&&Object.keys(n).length===l.length&&(o=0);continue}if(i.optional&&i.chained){o++;continue}return}if(!o)return n}function v(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}const Y=/\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;function ie(e,t){const r=T(e),n=e!="/"&&e.endsWith("/");return"/"+r.map(s=>s.replace(Y,(l,o,a,i)=>{const c=t[i];if(!c){if(o||a&&c!==void 0)return"";throw new Error(`Missing parameter '${i}' in route ${e}`)}if(c.startsWith("/")||c.endsWith("/"))throw new Error(`Parameter '${i}' in route ${e} cannot start or end with a slash -- this would cause an invalid route like foo//bar`);return c})).filter(Boolean).join("/")+(n?"/":"")}const B=globalThis.__sveltekit_12t8tv8?.base??"",D=globalThis.__sveltekit_12t8tv8?.assets??B??"",H="1772254297287",ce="sveltekit:snapshot",le="sveltekit:scroll",ue="sveltekit:states",fe="sveltekit:pageurl",de="sveltekit:history",he="sveltekit:navigation",A={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},U=location.origin;function pe(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const r=document.getElementsByTagName("base");t=r.length?r[0].href:document.URL}return new URL(e,t)}function ge(){return{x:pageXOffset,y:pageYOffset}}function g(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const R={...A,"":A.hover};function I(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function _e(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=I(e)}}function me(e,t,r){let n;try{if(n=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),r&&n.hash.match(/^#[^/]/)){const a=location.hash.split("#")[1]||"/";n.hash=`#${a}${n.hash}`}}catch{}const s=e instanceof SVGAElement?e.target.baseVal:e.target,l=!n||!!s||K(n,t,r)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=n?.origin===U&&e.hasAttribute("download");return{url:n,external:l,target:s,download:o}}function be(e){let t=null,r=null,n=null,s=null,l=null,o=null,a=e;for(;a&&a!==document.documentElement;)n===null&&(n=g(a,"preload-code")),s===null&&(s=g(a,"preload-data")),t===null&&(t=g(a,"keepfocus")),r===null&&(r=g(a,"noscroll")),l===null&&(l=g(a,"reload")),o===null&&(o=g(a,"replacestate")),a=I(a);function i(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:R[n??"off"],preload_data:R[s??"off"],keepfocus:i(t),noscroll:i(r),reload:i(l),replace_state:i(o)}}function we(e){const t=E(e);let r=!0;function n(){r=!0,t.update(o=>o)}function s(o){r=!1,t.set(o)}function l(o){let a;return t.subscribe(i=>{(a===void 0||r&&i!==a)&&o(a=i)})}return{notify:n,set:s,subscribe:l}}const N={v:()=>{}};function ve(){const{set:e,subscribe:t}=E(!1);let r;async function n(){clearTimeout(r);try{const s=await fetch(`${D}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!s.ok)return!1;const o=(await s.json()).version!==H;return o&&(e(!0),N.v(),clearTimeout(r)),o}catch{return!1}}return{subscribe:t,check:n}}function K(e,t,r){return e.origin!==U||!e.pathname.startsWith(t)?!0:r?e.pathname!==location.pathname:!1}function ye(e){}const O=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...O];const M=new Set([...O]);[...M];let S,$,y;const X=x.toString().includes("$$")||/function \w+\(\) \{\}/.test(x.toString());X?(S={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},$={current:null},y={current:!1}):(S=new class{#e=u({});get data(){return f(this.#e)}set data(t){d(this.#e,t)}#t=u(null);get form(){return f(this.#t)}set form(t){d(this.#t,t)}#n=u(null);get error(){return f(this.#n)}set error(t){d(this.#n,t)}#r=u({});get params(){return f(this.#r)}set params(t){d(this.#r,t)}#s=u({id:null});get route(){return f(this.#s)}set route(t){d(this.#s,t)}#a=u({});get state(){return f(this.#a)}set state(t){d(this.#a,t)}#o=u(-1);get status(){return f(this.#o)}set status(t){d(this.#o,t)}#i=u(new URL("https://example.com"));get url(){return f(this.#i)}set url(t){d(this.#i,t)}},$=new class{#e=u(null);get current(){return f(this.#e)}set current(t){d(this.#e,t)}},y=new class{#e=u(!1);get current(){return f(this.#e)}set current(t){d(this.#e,t)}},N.v=()=>y.current=!0);function Ae(e){Object.assign(S,e)}export{we as A,ye as B,de as H,he as N,fe as P,ue as S,ae as a,B as b,ve as c,pe as d,oe as e,_e as f,me as g,be as h,K as i,te as j,ee as k,Q as l,A as m,$ as n,U as o,S as p,Z as q,ie as r,ge as s,ne as t,Ae as u,ce as v,se as w,re as x,le as y,E as z}; diff --git a/build/client/_app/immutable/chunks/DAtZQVjv.js.br b/build/client/_app/immutable/chunks/DAtZQVjv.js.br deleted file mode 100644 index 05e127f..0000000 Binary files a/build/client/_app/immutable/chunks/DAtZQVjv.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/DAtZQVjv.js.gz b/build/client/_app/immutable/chunks/DAtZQVjv.js.gz deleted file mode 100644 index 67ae8f0..0000000 Binary files a/build/client/_app/immutable/chunks/DAtZQVjv.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/DoLu9QLy.js b/build/client/_app/immutable/chunks/DoLu9QLy.js deleted file mode 100644 index 176717a..0000000 --- a/build/client/_app/immutable/chunks/DoLu9QLy.js +++ /dev/null @@ -1,2 +0,0 @@ -import{at as te,k as W,D as re,C as se,au as H,a5 as D,a0 as j,P as g,F as v,av as b,aw as L,h as ie,K as ae,M as ne,ax as V,U as p,G,ay as I,a3 as k,ab as fe,az as $,aA as oe,aB as q,aC as he,aD as le,aE as N,aF as A,aG as z,aH as de,aI as K,ai as Q,S as ce,a9 as Y,I as O,n as ue,N as _e,aJ as w,E as pe,aK as ge,aL as ve,aM as ye,aN as me,aO as x,J as be,Q as X,aP as Ee,aa as Te,aQ as M,O as R,aR as we,a8 as Re,aS as Se,Y as De,p as Ne,aT as Ae,R as Oe,aU as Fe,b as Ie}from"./BxEwC6Zc.js";function ke(t){let e=0,r=j(0),i;return()=>{te()&&(W(r),re(()=>(e===0&&(i=se(()=>t(()=>H(r)))),e+=1,()=>{D(()=>{e-=1,e===0&&(i?.(),i=void 0,H(r))})})))}}var Ye=pe|ge;function xe(t,e,r,i){new Me(t,e,r,i)}class Me{parent;is_pending=!1;transform_error;#t;#g=v?g:null;#i;#h;#e;#a=null;#r=null;#s=null;#n=null;#l=0;#o=0;#d=!1;#c=new Set;#u=new Set;#f=null;#m=ke(()=>(this.#f=j(this.#l),()=>{this.#f=null}));constructor(e,r,i,f){this.#t=e,this.#i=r,this.#h=s=>{var a=b;a.b=this,a.f|=L,i(s)},this.parent=b.b,this.transform_error=f??this.parent?.transform_error??(s=>s),this.#e=ie(()=>{if(v){const s=this.#g;ae();const a=s.data===ne;if(s.data.startsWith(V)){const n=JSON.parse(s.data.slice(V.length));this.#E(n)}else a?this.#T():this.#b()}else this.#v()},Ye),v&&(this.#t=g)}#b(){try{this.#a=p(()=>this.#h(this.#t))}catch(e){this.error(e)}}#E(e){const r=this.#i.failed;r&&(this.#s=p(()=>{r(this.#t,()=>e,()=>()=>{})}))}#T(){const e=this.#i.pending;e&&(this.is_pending=!0,this.#r=p(()=>e(this.#t)),D(()=>{var r=this.#n=document.createDocumentFragment(),i=G();r.append(i),this.#a=this.#p(()=>(I.ensure(),p(()=>this.#h(i)))),this.#o===0&&(this.#t.before(r),this.#n=null,k(this.#r,()=>{this.#r=null}),this.#_())}))}#v(){try{if(this.is_pending=this.has_pending_snippet(),this.#o=0,this.#l=0,this.#a=p(()=>{this.#h(this.#t)}),this.#o>0){var e=this.#n=document.createDocumentFragment();fe(this.#a,e);const r=this.#i.pending;this.#r=p(()=>r(this.#t))}else this.#_()}catch(r){this.error(r)}}#_(){this.is_pending=!1;for(const e of this.#c)$(e,oe),q(e);for(const e of this.#u)$(e,he),q(e);this.#c.clear(),this.#u.clear()}defer_effect(e){le(e,this.#c,this.#u)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#i.pending}#p(e){var r=b,i=K,f=Q;N(this.#e),A(this.#e),z(this.#e.ctx);try{return e()}catch(s){return de(s),null}finally{N(r),A(i),z(f)}}#y(e){if(!this.has_pending_snippet()){this.parent&&this.parent.#y(e);return}this.#o+=e,this.#o===0&&(this.#_(),this.#r&&k(this.#r,()=>{this.#r=null}),this.#n&&(this.#t.before(this.#n),this.#n=null))}update_pending_count(e){this.#y(e),this.#l+=e,!(!this.#f||this.#d)&&(this.#d=!0,D(()=>{this.#d=!1,this.#f&&ce(this.#f,this.#l)}))}get_effect_pending(){return this.#m(),W(this.#f)}error(e){var r=this.#i.onerror;let i=this.#i.failed;if(!r&&!i)throw e;this.#a&&(Y(this.#a),this.#a=null),this.#r&&(Y(this.#r),this.#r=null),this.#s&&(Y(this.#s),this.#s=null),v&&(O(this.#g),ue(),O(_e()));var f=!1,s=!1;const a=()=>{if(f){ye();return}f=!0,s&&ve(),this.#s!==null&&k(this.#s,()=>{this.#s=null}),this.#p(()=>{I.ensure(),this.#v()})},c=n=>{try{s=!0,r?.(n,a),s=!1}catch(o){w(o,this.#e&&this.#e.parent)}i&&(this.#s=this.#p(()=>{I.ensure();try{return p(()=>{var o=b;o.b=this,o.f|=L,i(this.#t,()=>n,()=>a)})}catch(o){return w(o,this.#e.parent),null}}))};D(()=>{var n;try{n=this.transform_error(e)}catch(o){w(o,this.#e&&this.#e.parent);return}n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(c,o=>w(o,this.#e&&this.#e.parent)):c(n)})}}const Ce=["touchstart","touchmove"];function Pe(t){return Ce.includes(t)}const T=Symbol("events"),Z=new Set,C=new Set;function Le(t,e,r){(e[T]??={})[t]=r}function Ve(t){for(var e=0;e{throw u});throw _}}finally{t[T]=e,delete t.currentTarget,A(y),N(E)}}}function $e(t,e){var r=e==null?"":typeof e=="object"?`${e}`:e;r!==(t.__t??=t.nodeValue)&&(t.__t=r,t.nodeValue=`${r}`)}function Be(t,e){return ee(t,e)}function qe(t,e){x(),e.intro=e.intro??!1;const r=e.target,i=v,f=g;try{for(var s=be(r);s&&(s.nodeType!==X||s.data!==Ee);)s=Te(s);if(!s)throw M;R(!0),O(s);const a=ee(t,{...e,anchor:s});return R(!1),a}catch(a){if(a instanceof Error&&a.message.split(` -`).some(c=>c.startsWith("https://svelte.dev/e/")))throw a;return a!==M&&console.warn("Failed to hydrate: ",a),e.recover===!1&&we(),x(),Re(r),R(!1),Be(t,e)}finally{R(i),O(f)}}const S=new Map;function ee(t,{target:e,anchor:r,props:i={},events:f,context:s,intro:a=!0,transformError:c}){x();var n=void 0,o=Se(()=>{var y=r??e.appendChild(G());xe(y,{pending:()=>{}},l=>{Ne({});var h=Q;if(s&&(h.c=s),f&&(i.$$events=f),v&&Ae(l,null),n=t(l,i)||{},v&&(b.nodes.end=g,g===null||g.nodeType!==X||g.data!==Oe))throw Fe(),M;Ie()},c);var E=new Set,_=l=>{for(var h=0;h{for(var l of E)for(const u of[e,document]){var h=S.get(u),d=h.get(l);--d==0?(u.removeEventListener(l,U),h.delete(l),h.size===0&&S.delete(u)):h.set(l,d)}C.delete(_),y!==r&&y.parentNode?.removeChild(y)}});return P.set(n,o),n}let P=new WeakMap;function ze(t,e){const r=P.get(t);return r?(P.delete(t),r(e)):Promise.resolve()}export{Le as a,Ve as d,qe as h,Be as m,$e as s,ze as u}; diff --git a/build/client/_app/immutable/chunks/DoLu9QLy.js.br b/build/client/_app/immutable/chunks/DoLu9QLy.js.br deleted file mode 100644 index be221dc..0000000 Binary files a/build/client/_app/immutable/chunks/DoLu9QLy.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/DoLu9QLy.js.gz b/build/client/_app/immutable/chunks/DoLu9QLy.js.gz deleted file mode 100644 index 40aa73b..0000000 Binary files a/build/client/_app/immutable/chunks/DoLu9QLy.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/DsnmJJEf.js b/build/client/_app/immutable/chunks/DsnmJJEf.js deleted file mode 100644 index ca27dc7..0000000 --- a/build/client/_app/immutable/chunks/DsnmJJEf.js +++ /dev/null @@ -1 +0,0 @@ -typeof window<"u"&&((window.__svelte??={}).v??=new Set).add("5"); diff --git a/build/client/_app/immutable/chunks/DsnmJJEf.js.br b/build/client/_app/immutable/chunks/DsnmJJEf.js.br deleted file mode 100644 index f6052a6..0000000 --- a/build/client/_app/immutable/chunks/DsnmJJEf.js.br +++ /dev/null @@ -1,2 +0,0 @@ -‹ €typeof window<"u"&&((window.__svelte??={}).v??=new Set).add("5"); - \ No newline at end of file diff --git a/build/client/_app/immutable/chunks/DsnmJJEf.js.gz b/build/client/_app/immutable/chunks/DsnmJJEf.js.gz deleted file mode 100644 index f2992c0..0000000 Binary files a/build/client/_app/immutable/chunks/DsnmJJEf.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/TpZZa089.js b/build/client/_app/immutable/chunks/TpZZa089.js deleted file mode 100644 index b7981bb..0000000 --- a/build/client/_app/immutable/chunks/TpZZa089.js +++ /dev/null @@ -1 +0,0 @@ -import{ai as d,aj as g,u as c,C as m,ak as i,al as b,k as p,am as k,an as v,ao as h}from"./BxEwC6Zc.js";function x(n=!1){const a=d,e=a.l.u;if(!e)return;let f=()=>k(a.s);if(n){let t=0,s={};const _=v(()=>{let l=!1;const r=a.s;for(const o in r)r[o]!==s[o]&&(s[o]=r[o],l=!0);return l&&t++,t});f=()=>p(_)}e.b.length&&g(()=>{u(a,f),i(e.b)}),c(()=>{const t=m(()=>e.m.map(b));return()=>{for(const s of t)typeof s=="function"&&s()}}),e.a.length&&c(()=>{u(a,f),i(e.a)})}function u(n,a){if(n.l.s)for(const e of n.l.s)p(e);a()}h();export{x as i}; diff --git a/build/client/_app/immutable/chunks/TpZZa089.js.br b/build/client/_app/immutable/chunks/TpZZa089.js.br deleted file mode 100644 index c23634f..0000000 Binary files a/build/client/_app/immutable/chunks/TpZZa089.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/TpZZa089.js.gz b/build/client/_app/immutable/chunks/TpZZa089.js.gz deleted file mode 100644 index 11fd54f..0000000 Binary files a/build/client/_app/immutable/chunks/TpZZa089.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/chunks/kALFGdUG.js b/build/client/_app/immutable/chunks/kALFGdUG.js deleted file mode 100644 index 886d5c7..0000000 --- a/build/client/_app/immutable/chunks/kALFGdUG.js +++ /dev/null @@ -1 +0,0 @@ -import{z as n,a2 as u,a9 as o,a3 as m,G as d,U as l,F as p,P as _,ab as v,W as b}from"./BxEwC6Zc.js";class w{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#a=!0;constructor(e,s=!0){this.anchor=e,this.#a=s}#f=()=>{var e=n;if(this.#t.has(e)){var s=this.#t.get(e),t=this.#s.get(s);if(t)u(t),this.#i.delete(s);else{var a=this.#e.get(s);a&&(this.#s.set(s,a.effect),this.#e.delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),t=a.effect)}for(const[i,f]of this.#t){if(this.#t.delete(i),i===e)break;const h=this.#e.get(f);h&&(o(h.effect),this.#e.delete(f))}for(const[i,f]of this.#s){if(i===s||this.#i.has(i))continue;const h=()=>{if(Array.from(this.#t.values()).includes(i)){var c=document.createDocumentFragment();v(f,c),c.append(d()),this.#e.set(i,{effect:f,fragment:c})}else o(f);this.#i.delete(i),this.#s.delete(i)};this.#a||!t?(this.#i.add(i),m(f,h,!1)):h()}}};#h=e=>{this.#t.delete(e);const s=Array.from(this.#t.values());for(const[t,a]of this.#e)s.includes(t)||(o(a.effect),this.#e.delete(t))};ensure(e,s){var t=n,a=b();if(s&&!this.#s.has(e)&&!this.#e.has(e))if(a){var i=document.createDocumentFragment(),f=d();i.append(f),this.#e.set(e,{effect:l(()=>s(f)),fragment:i})}else this.#s.set(e,l(()=>s(this.anchor)));if(this.#t.set(t,e),a){for(const[h,r]of this.#s)h===e?t.unskip_effect(r):t.skip_effect(r);for(const[h,r]of this.#e)h===e?t.unskip_effect(r.effect):t.skip_effect(r.effect);t.oncommit(this.#f),t.ondiscard(this.#h)}else p&&(this.anchor=_),this.#f()}}export{w as B}; diff --git a/build/client/_app/immutable/chunks/kALFGdUG.js.br b/build/client/_app/immutable/chunks/kALFGdUG.js.br deleted file mode 100644 index 5a71bec..0000000 Binary files a/build/client/_app/immutable/chunks/kALFGdUG.js.br and /dev/null differ diff --git a/build/client/_app/immutable/chunks/kALFGdUG.js.gz b/build/client/_app/immutable/chunks/kALFGdUG.js.gz deleted file mode 100644 index 3992528..0000000 Binary files a/build/client/_app/immutable/chunks/kALFGdUG.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/entry/app.DL20j9gb.js b/build/client/_app/immutable/entry/app.DL20j9gb.js deleted file mode 100644 index 72ad082..0000000 --- a/build/client/_app/immutable/entry/app.DL20j9gb.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.9C686m9W.js","../chunks/DsnmJJEf.js","../chunks/BxEwC6Zc.js","../chunks/CyUoLS3q.js","../chunks/kALFGdUG.js","../nodes/1.RyK1bdTz.js","../chunks/TpZZa089.js","../chunks/DoLu9QLy.js","../chunks/BQKoxf2Q.js","../chunks/D2SGgx9j.js","../chunks/DAtZQVjv.js","../chunks/CvGSsBh3.js","../chunks/BkIq08el.js","../nodes/2.BsR2_q_w.js","../chunks/BLQQas77.js","../chunks/BnX5ZnVA.js","../chunks/BqOsL1Vv.js","../chunks/BAocuFgQ.js","../assets/2.Dv2no-8m.css","../nodes/3.CMuy9Bx3.js","../nodes/4.BdC-uDW-.js","../chunks/Cy2QBcXt.js","../nodes/5.CyqZcxti.js","../nodes/6.CEe0czaO.js","../chunks/CAkKRSSs.js","../nodes/7._nuD3LlN.js","../nodes/8.CkbqikZq.js","../nodes/9.BTBc_Eli.js","../nodes/10.BPlEN6_G.js","../nodes/11.DR1Vz7m0.js","../nodes/12.C9UZWAjJ.js","../nodes/13.CyZ4e6yK.js"])))=>i.map(i=>d[i]); -import{F as X,K as ot,h as ut,E as ct,L as _t,N as lt,I as dt,O as Z,aP as ft,P as mt,q as vt,D as ht,C as H,a5 as gt,aV as K,aW as Et,aX as Pt,aY as bt,k as f,aZ as yt,i as N,a_ as Rt,av as Ot,a$ as pt,b0 as At,aq as Tt,b1 as It,b2 as Lt,an as St,X as Dt,b3 as Vt,b4 as J,ar as wt,aN as xt,$ as Nt,p as jt,aj as kt,u as Ct,B as Bt,f as A,s as Mt,a as O,b as qt,j as U,c as I,e as Yt,r as Ut,d as Q,g as Ft,t as Wt,l as V}from"../chunks/BxEwC6Zc.js";import{h as Xt,m as Zt,u as zt,s as Gt}from"../chunks/DoLu9QLy.js";import"../chunks/DsnmJJEf.js";import{o as Ht}from"../chunks/CvGSsBh3.js";import{i as j}from"../chunks/BQKoxf2Q.js";import{B as Kt}from"../chunks/kALFGdUG.js";function w(r,t,a){var u;X&&(u=mt,ot());var s=new Kt(r);ut(()=>{var e=t()??null;if(X){var n=_t(u),i=n===ft,P=e!==null;if(i!==P){var b=lt();dt(b),s.anchor=b,Z(!1),s.ensure(e,e&&(o=>a(o,e))),Z(!0);return}}s.ensure(e,e&&(o=>a(o,e)))},ct)}function z(r,t){return r===t||r?.[K]===t}function x(r={},t,a,u){return vt(()=>{var s,e;return ht(()=>{s=e,e=[],H(()=>{r!==a(...e)&&(t(r,...e),s&&z(a(...s),r)&&t(null,...s))})}),()=>{gt(()=>{e&&z(a(...e),r)&&t(null,...e)})}}),r}let k=!1;function Jt(r){var t=k;try{return k=!1,[r(),k]}finally{k=t}}function C(r,t,a,u){var s=!Tt||(a&It)!==0,e=(a&At)!==0,n=(a&Vt)!==0,i=u,P=!0,b=()=>(P&&(P=!1,i=n?H(u):u),i),o;if(e){var g=K in r||J in r;o=Et(r,t)?.set??(g&&t in r?c=>r[t]=c:void 0)}var m,v=!1;e?[m,v]=Jt(()=>r[t]):m=r[t],m===void 0&&u!==void 0&&(m=b(),o&&(s&&Pt(),o(m)));var d;if(s?d=()=>{var c=r[t];return c===void 0?b():(P=!0,c)}:d=()=>{var c=r[t];return c!==void 0&&(i=void 0),c===void 0?i:c},s&&(a&bt)===0)return d;if(o){var p=r.$$legacy;return(function(c,E){return arguments.length>0?((!s||!E||p||v)&&o(E?d():c),c):d()})}var _=!1,h=((a&Lt)!==0?St:Dt)(()=>(_=!1,d()));e&&f(h);var y=Ot;return(function(c,E){if(arguments.length>0){const R=E?f(h):s&&e?yt(c):c;return N(h,R),_=!0,i!==void 0&&(i=R),c}return Rt&&_||(y.f&pt)!==0?h.v:f(h)})}function Qt(r){return class extends $t{constructor(t){super({component:r,...t})}}}class $t{#e;#t;constructor(t){var a=new Map,u=(e,n)=>{var i=Nt(n,!1,!1);return a.set(e,i),i};const s=new Proxy({...t.props||{},$$events:{}},{get(e,n){return f(a.get(n)??u(n,Reflect.get(e,n)))},has(e,n){return n===J?!0:(f(a.get(n)??u(n,Reflect.get(e,n))),Reflect.has(e,n))},set(e,n,i){return N(a.get(n)??u(n,i),i),Reflect.set(e,n,i)}});this.#t=(t.hydrate?Xt:Zt)(t.component,{target:t.target,anchor:t.anchor,props:s,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&wt(),this.#e=s.$$events;for(const e of Object.keys(this.#t))e==="$set"||e==="$destroy"||e==="$on"||xt(this,e,{get(){return this.#t[e]},set(n){this.#t[e]=n},enumerable:!0});this.#t.$set=e=>{Object.assign(s,e)},this.#t.$destroy=()=>{zt(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const u=(...s)=>a.call(this,...s);return this.#e[t].push(u),()=>{this.#e[t]=this.#e[t].filter(s=>s!==u)}}$destroy(){this.#t.$destroy()}}const te="modulepreload",ee=function(r,t){return new URL(r,t).href},G={},l=function(t,a,u){let s=Promise.resolve();if(a&&a.length>0){let b=function(o){return Promise.all(o.map(g=>Promise.resolve(g).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};const n=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),P=i?.nonce||i?.getAttribute("nonce");s=b(a.map(o=>{if(o=ee(o,u),o in G)return;G[o]=!0;const g=o.endsWith(".css"),m=g?'[rel="stylesheet"]':"";if(u)for(let d=n.length-1;d>=0;d--){const p=n[d];if(p.href===o&&(!g||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${m}`))return;const v=document.createElement("link");if(v.rel=g?"stylesheet":te,g||(v.as="script"),v.crossOrigin="",v.href=o,P&&v.setAttribute("nonce",P),document.head.appendChild(v),g)return new Promise((d,p)=>{v.addEventListener("load",d),v.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${o}`)))})}))}function e(n){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=n,window.dispatchEvent(i),!i.defaultPrevented)throw n}return s.then(n=>{for(const i of n||[])i.status==="rejected"&&e(i.reason);return t().catch(e)})},me={};var re=Q('
'),ae=Q(" ",1);function ne(r,t){jt(t,!0);let a=C(t,"components",23,()=>[]),u=C(t,"data_0",3,null),s=C(t,"data_1",3,null),e=C(t,"data_2",3,null);kt(()=>t.stores.page.set(t.page)),Ct(()=>{t.stores,t.page,t.constructors,a(),t.form,u(),s(),e(),t.stores.page.notify()});let n=U(!1),i=U(!1),P=U(null);Ht(()=>{const _=t.stores.page.subscribe(()=>{f(n)&&(N(i,!0),Bt().then(()=>{N(P,document.title||"untitled page",!0)}))});return N(n,!0),_});const b=V(()=>t.constructors[2]);var o=ae(),g=A(o);{var m=_=>{const h=V(()=>t.constructors[0]);var y=I(),c=A(y);w(c,()=>f(h),(E,R)=>{x(R(E,{get data(){return u()},get form(){return t.form},get params(){return t.page.params},children:(L,ie)=>{var F=I(),tt=A(F);{var et=T=>{const B=V(()=>t.constructors[1]);var S=I(),M=A(S);w(M,()=>f(B),(q,Y)=>{x(Y(q,{get data(){return s()},get form(){return t.form},get params(){return t.page.params},children:(D,oe)=>{var W=I(),at=A(W);w(at,()=>f(b),(nt,st)=>{x(st(nt,{get data(){return e()},get form(){return t.form},get params(){return t.page.params}}),it=>a()[2]=it,()=>a()?.[2])}),O(D,W)},$$slots:{default:!0}}),D=>a()[1]=D,()=>a()?.[1])}),O(T,S)},rt=T=>{const B=V(()=>t.constructors[1]);var S=I(),M=A(S);w(M,()=>f(B),(q,Y)=>{x(Y(q,{get data(){return s()},get form(){return t.form},get params(){return t.page.params}}),D=>a()[1]=D,()=>a()?.[1])}),O(T,S)};j(tt,T=>{t.constructors[2]?T(et):T(rt,!1)})}O(L,F)},$$slots:{default:!0}}),L=>a()[0]=L,()=>a()?.[0])}),O(_,y)},v=_=>{const h=V(()=>t.constructors[0]);var y=I(),c=A(y);w(c,()=>f(h),(E,R)=>{x(R(E,{get data(){return u()},get form(){return t.form},get params(){return t.page.params}}),L=>a()[0]=L,()=>a()?.[0])}),O(_,y)};j(g,_=>{t.constructors[1]?_(m):_(v,!1)})}var d=Mt(g,2);{var p=_=>{var h=re(),y=Yt(h);{var c=E=>{var R=Ft();Wt(()=>Gt(R,f(P))),O(E,R)};j(y,E=>{f(i)&&E(c)})}Ut(h),O(_,h)};j(d,_=>{f(n)&&_(p)})}O(r,o),qt()}const ve=Qt(ne),he=[()=>l(()=>import("../nodes/0.9C686m9W.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>l(()=>import("../nodes/1.RyK1bdTz.js"),__vite__mapDeps([5,1,6,2,7,8,4,9,10,11,12]),import.meta.url),()=>l(()=>import("../nodes/2.BsR2_q_w.js"),__vite__mapDeps([13,1,2,3,4,8,7,14,15,16,9,10,11,12,17,18]),import.meta.url),()=>l(()=>import("../nodes/3.CMuy9Bx3.js"),__vite__mapDeps([19,1,2,7,8,4,14,15,16]),import.meta.url),()=>l(()=>import("../nodes/4.BdC-uDW-.js"),__vite__mapDeps([20,1,2,7,8,4,14,17,12,11,10,15,16,21]),import.meta.url),()=>l(()=>import("../nodes/5.CyqZcxti.js"),__vite__mapDeps([22,1,2,7,8,4,14,17,12,11,10,15]),import.meta.url),()=>l(()=>import("../nodes/6.CEe0czaO.js"),__vite__mapDeps([23,1,2,7,8,4,14,17,12,11,10,15,16,24,21]),import.meta.url),()=>l(()=>import("../nodes/7._nuD3LlN.js"),__vite__mapDeps([25,1,2,7,8,4,14,17,12,11,10,15,16]),import.meta.url),()=>l(()=>import("../nodes/8.CkbqikZq.js"),__vite__mapDeps([26,1,2,7,8,4,14,17,12,11,10,15,16]),import.meta.url),()=>l(()=>import("../nodes/9.BTBc_Eli.js"),__vite__mapDeps([27,1,2,7,8,4,17,12,11,10,15,16]),import.meta.url),()=>l(()=>import("../nodes/10.BPlEN6_G.js"),__vite__mapDeps([28,1,2,7,8,4,14,17,12,11,10,15,16,24]),import.meta.url),()=>l(()=>import("../nodes/11.DR1Vz7m0.js"),__vite__mapDeps([29,1,6,2,15,10,11,7]),import.meta.url),()=>l(()=>import("../nodes/12.C9UZWAjJ.js"),__vite__mapDeps([30,1,2,7,17,12,11,10]),import.meta.url),()=>l(()=>import("../nodes/13.CyZ4e6yK.js"),__vite__mapDeps([31,1,2,7,17,12,11,10]),import.meta.url),()=>l(()=>import("../chunks/BQKoxf2Q.js").then(r=>r._),__vite__mapDeps([8,2,4]),import.meta.url)],ge=[2],Ee={"/(app)":[-4,[2]],"/(app)/admin":[-5,[2]],"/demo":[11],"/demo/better-auth":[-13],"/demo/better-auth/login":[-14],"/login":[-15],"/(app)/mappools":[-6,[2]],"/(app)/mappools/[id]":[-7,[2]],"/(app)/matches":[-8,[2]],"/(app)/matches/[id]":[-9,[2]],"/(app)/settings":[-10,[2]],"/(app)/teams":[-11,[2]]},$={handleError:(({error:r})=>{console.error(r)}),reroute:(()=>{}),transport:{}},se=Object.fromEntries(Object.entries($.transport).map(([r,t])=>[r,t.decode])),Pe=Object.fromEntries(Object.entries($.transport).map(([r,t])=>[r,t.encode])),be=!1,ye=(r,t)=>se[r](t);export{ye as decode,se as decoders,Ee as dictionary,Pe as encoders,be as hash,$ as hooks,me as matchers,he as nodes,ve as root,ge as server_loads}; diff --git a/build/client/_app/immutable/entry/app.DL20j9gb.js.br b/build/client/_app/immutable/entry/app.DL20j9gb.js.br deleted file mode 100644 index c023549..0000000 Binary files a/build/client/_app/immutable/entry/app.DL20j9gb.js.br and /dev/null differ diff --git a/build/client/_app/immutable/entry/app.DL20j9gb.js.gz b/build/client/_app/immutable/entry/app.DL20j9gb.js.gz deleted file mode 100644 index a8ada79..0000000 Binary files a/build/client/_app/immutable/entry/app.DL20j9gb.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/entry/start.Df1GVxyt.js b/build/client/_app/immutable/entry/start.Df1GVxyt.js deleted file mode 100644 index 93acd60..0000000 --- a/build/client/_app/immutable/entry/start.Df1GVxyt.js +++ /dev/null @@ -1 +0,0 @@ -import{c as s}from"../chunks/BkIq08el.js";import{B as t}from"../chunks/DAtZQVjv.js";export{t as load_css,s as start}; diff --git a/build/client/_app/immutable/entry/start.Df1GVxyt.js.br b/build/client/_app/immutable/entry/start.Df1GVxyt.js.br deleted file mode 100644 index 40ae0b8..0000000 Binary files a/build/client/_app/immutable/entry/start.Df1GVxyt.js.br and /dev/null differ diff --git a/build/client/_app/immutable/entry/start.Df1GVxyt.js.gz b/build/client/_app/immutable/entry/start.Df1GVxyt.js.gz deleted file mode 100644 index 3431fd6..0000000 Binary files a/build/client/_app/immutable/entry/start.Df1GVxyt.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/0.9C686m9W.js b/build/client/_app/immutable/nodes/0.9C686m9W.js deleted file mode 100644 index 0e2b0f5..0000000 --- a/build/client/_app/immutable/nodes/0.9C686m9W.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{c as n,f as m,a as p}from"../chunks/BxEwC6Zc.js";import{s as e}from"../chunks/CyUoLS3q.js";function f(a,r){var o=n(),t=m(o);e(t,()=>r.children),p(a,o)}export{f as component}; diff --git a/build/client/_app/immutable/nodes/0.9C686m9W.js.br b/build/client/_app/immutable/nodes/0.9C686m9W.js.br deleted file mode 100644 index 77ec57a..0000000 Binary files a/build/client/_app/immutable/nodes/0.9C686m9W.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/0.9C686m9W.js.gz b/build/client/_app/immutable/nodes/0.9C686m9W.js.gz deleted file mode 100644 index 408361d..0000000 Binary files a/build/client/_app/immutable/nodes/0.9C686m9W.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/1.RyK1bdTz.js b/build/client/_app/immutable/nodes/1.RyK1bdTz.js deleted file mode 100644 index f7b0d81..0000000 --- a/build/client/_app/immutable/nodes/1.RyK1bdTz.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as w}from"../chunks/TpZZa089.js";import{p as A,t as j,a,b as B,d as D,e as s,r,s as x,n as N,g as i}from"../chunks/BxEwC6Zc.js";import{s as f}from"../chunks/DoLu9QLy.js";import{i as P}from"../chunks/BQKoxf2Q.js";import{p as o}from"../chunks/D2SGgx9j.js";var S=D('');function H(l,d){A(d,!1),w();var n=S(),m=s(n),c=s(m),u=s(c,!0);r(c);var p=x(c,2),h=s(p);{var g=t=>{var e=i("Page not found");a(t,e)},_=t=>{var e=i("Access denied");a(t,e)},b=t=>{var e=i("Not logged in");a(t,e)},y=t=>{var e=i("Something went wrong");a(t,e)};P(h,t=>{o.status===404?t(g):o.status===403?t(_,1):o.status===401?t(b,2):t(y,!1)})}r(p);var v=x(p,2),k=s(v,!0);r(v),N(2),r(m),r(n),j(()=>{f(u,o.status),f(k,o.error?.message??"An unexpected error occurred.")}),a(l,n),B()}export{H as component}; diff --git a/build/client/_app/immutable/nodes/1.RyK1bdTz.js.br b/build/client/_app/immutable/nodes/1.RyK1bdTz.js.br deleted file mode 100644 index 985c1cb..0000000 Binary files a/build/client/_app/immutable/nodes/1.RyK1bdTz.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/1.RyK1bdTz.js.gz b/build/client/_app/immutable/nodes/1.RyK1bdTz.js.gz deleted file mode 100644 index f08f8b6..0000000 Binary files a/build/client/_app/immutable/nodes/1.RyK1bdTz.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/10.BPlEN6_G.js b/build/client/_app/immutable/nodes/10.BPlEN6_G.js deleted file mode 100644 index 6e9e279..0000000 --- a/build/client/_app/immutable/nodes/10.BPlEN6_G.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as Ge,t as m,a as d,b as He,i as h,k as e,d as n,j as F,s as o,e as r,r as t,l as G,n as Je,c as Ke,f as Le}from"../chunks/BxEwC6Zc.js";import{d as Qe,a as H,s as b}from"../chunks/DoLu9QLy.js";import{i as l}from"../chunks/BQKoxf2Q.js";import{e as ce,i as le}from"../chunks/BLQQas77.js";import{a as W,e as X}from"../chunks/BAocuFgQ.js";import{s as me,r as Z,a as ue}from"../chunks/BnX5ZnVA.js";import{s as Re}from"../chunks/BqOsL1Vv.js";import{b as Se}from"../chunks/CAkKRSSs.js";import"../chunks/DAtZQVjv.js";var Ve=n('
'),We=n('

'),Xe=n(''),Ze=n('
'),$e=n('solo'),et=n(''),tt=n('
'),at=n('
'),rt=n('
'),st=n('
'),ot=n(''),dt=n('
'),nt=n('
'),it=n('
'),vt=n('

My Teams

'),ct=n(''),lt=n('
'),mt=n('

'),ut=n('

Other Teams

'),xt=n('

No teams yet. Your personal team is created when you sign in.

'),ft=n('

Teams

');function Ut(we,_){Ge(_,!0);let O=F(!1),J=F(null),K=F(null),$=F(""),L=F("");const xe=G(()=>_.data.teams.filter(s=>s.members.some(i=>i.userId===_.data.userId))),fe=G(()=>_.data.teams.filter(s=>!s.members.some(i=>i.userId===_.data.userId)));function ee(s){return s.ownerId===_.data.userId}var te=ft(),ae=r(te),re=r(ae),pe=o(r(re),2),Ie=r(pe);t(pe),t(re);var se=o(re,2),ke=r(se,!0);t(se),t(ae);var be=o(ae,2);{var Te=s=>{var i=Ve();W(i,(u,C)=>X?.(u,C),()=>()=>async({result:u,update:C})=>{u.type==="success"&&u.data?.success&&(h(O,!1),await C())}),d(s,i)};l(be,s=>{e(O)&&s(Te)})}var _e=o(be,2);{var Ue=s=>{var i=We(),u=r(i,!0);t(i),m(()=>b(u,e(L))),d(s,i)};l(_e,s=>{e(L)&&s(Ue)})}var ge=o(_e,2);{var Ce=s=>{var i=vt(),u=o(r(i),2);ce(u,21,()=>e(xe),le,(C,a)=>{var M=it(),j=r(M),Q=r(j);{var oe=v=>{var x=Xe();m(()=>me(x,"src",e(a).avatarUrl)),d(v,x)},R=v=>{var x=Ze(),Y=r(x,!0);t(x),m(V=>b(Y,V),[()=>e(a).name.charAt(0).toUpperCase()]),d(v,x)};l(Q,v=>{e(a).avatarUrl?v(oe):v(R,!1)})}var A=o(Q,2),E=r(A),P=r(E),de=r(P,!0);t(P);var k=o(P,2);{var T=v=>{var x=$e();d(v,x)};l(k,v=>{e(a).isPersonal&&v(T)})}t(E);var S=o(E,2),ne=r(S);t(S),t(A);var qe=o(A,2);t(j);var De=o(j,2);{var Pe=v=>{var x=nt(),Y=r(x);ce(Y,21,()=>e(a).members,le,(y,c)=>{var w=rt(),N=r(w);{var q=g=>{var I=et();m(()=>me(I,"src",e(c).user.image)),d(g,I)},U=g=>{var I=tt();d(g,I)};l(N,g=>{e(c).user?.image?g(q):g(U,!1)})}var f=o(N,2),z=r(f,!0);t(f);var D=o(f,2),ie=r(D,!0);t(D);var p=o(D,2);{var B=g=>{var I=at(),ye=r(I);Z(ye),Je(2),t(I),W(I,(ve,Fe)=>X?.(ve,Fe),()=>()=>async({update:ve})=>{await ve()}),m(()=>ue(ye,e(c).id)),d(g,I)},Be=G(()=>ee(e(a))&&e(c).userId!==_.data.userId);l(p,g=>{e(Be)&&g(B)})}t(w),m(()=>{b(z,e(c).user?.name??"Unknown"),b(ie,e(c).role)}),d(y,w)}),t(Y);var V=o(Y,2);{var Ne=y=>{var c=Ke(),w=Le(c);{var N=U=>{var f=st(),z=r(f);Z(z);var D=o(z,2);Z(D);var ie=o(D,4);t(f),W(f,(p,B)=>X?.(p,B),()=>()=>(h(L,""),async({result:p,update:B})=>{p.type==="success"&&p.data?.success?(h($,""),h(K,null),await B()):p.type==="success"&&p.data?.error&&h(L,p.data.error,!0)})),m(()=>ue(z,e(a).id)),Se(D,()=>e($),p=>h($,p)),H("click",ie,()=>h(K,null)),d(U,f)},q=U=>{var f=ot();H("click",f,()=>h(K,e(a).id,!0)),d(U,f)};l(w,U=>{e(K)===e(a).id?U(N):U(q,!1)})}d(y,c)},Oe=G(()=>ee(e(a))&&!e(a).isPersonal);l(V,y=>{e(Oe)&&y(Ne)})}var Ee=o(V,2);{var Ye=y=>{var c=dt(),w=r(c);Z(w);var N=o(w,2);t(c),W(c,q=>X?.(q)),m(()=>ue(w,e(a).id)),H("click",N,q=>{confirm(`Delete ${e(a).name}?`)||q.preventDefault()}),d(y,c)},ze=G(()=>ee(e(a))&&!e(a).isPersonal);l(Ee,y=>{e(ze)&&y(Ye)})}t(x),d(v,x)};l(De,v=>{e(J)===e(a).id&&v(Pe)})}t(M),m(()=>{b(de,e(a).name),b(ne,`${e(a).members.length??""} member${e(a).members.length!==1?"s":""}`),Re(qe,1,`text-sm text-text-secondary transition-transform ${e(J)===e(a).id?"rotate-90":""}`)}),H("click",j,()=>h(J,e(J)===e(a).id?null:e(a).id,!0)),d(C,M)}),t(u),t(i),d(s,i)};l(ge,s=>{e(xe).length>0&&s(Ce)})}var he=o(ge,2);{var Me=s=>{var i=ut(),u=o(r(i),2);ce(u,21,()=>e(fe),le,(C,a)=>{var M=mt(),j=r(M);{var Q=k=>{var T=ct();m(()=>me(T,"src",e(a).avatarUrl)),d(k,T)},oe=k=>{var T=lt(),S=r(T,!0);t(T),m(ne=>b(S,ne),[()=>e(a).name.charAt(0).toUpperCase()]),d(k,T)};l(j,k=>{e(a).avatarUrl?k(Q):k(oe,!1)})}var R=o(j,2),A=r(R),E=r(A,!0);t(A);var P=o(A,2),de=r(P);t(P),t(R),t(M),m(()=>{b(E,e(a).name),b(de,`${e(a).members.length??""} member${e(a).members.length!==1?"s":""}`)}),d(C,M)}),t(u),t(i),d(s,i)};l(he,s=>{e(fe).length>0&&s(Me)})}var je=o(he,2);{var Ae=s=>{var i=xt();d(s,i)};l(je,s=>{_.data.teams.length===0&&s(Ae)})}t(te),m(()=>{b(Ie,`${_.data.teams.length??""} team${_.data.teams.length!==1?"s":""}`),b(ke,e(O)?"Cancel":"New Team")}),H("click",se,()=>h(O,!e(O))),d(we,te),He()}Qe(["click"]);export{Ut as component}; diff --git a/build/client/_app/immutable/nodes/10.BPlEN6_G.js.br b/build/client/_app/immutable/nodes/10.BPlEN6_G.js.br deleted file mode 100644 index bf7a65d..0000000 Binary files a/build/client/_app/immutable/nodes/10.BPlEN6_G.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/10.BPlEN6_G.js.gz b/build/client/_app/immutable/nodes/10.BPlEN6_G.js.gz deleted file mode 100644 index b723cd9..0000000 Binary files a/build/client/_app/immutable/nodes/10.BPlEN6_G.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/11.DR1Vz7m0.js b/build/client/_app/immutable/nodes/11.DR1Vz7m0.js deleted file mode 100644 index 67e6c80..0000000 --- a/build/client/_app/immutable/nodes/11.DR1Vz7m0.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as o}from"../chunks/TpZZa089.js";import{p,t as s,a as m,b as f,d as i}from"../chunks/BxEwC6Zc.js";import{s as n}from"../chunks/BnX5ZnVA.js";import{b as u,r as b}from"../chunks/DAtZQVjv.js";const h="";function _(...t){return u+h+b(t[0],t[1])}var c=i("better-auth");function j(t,a){p(a,!1),o();var e=c();s(r=>n(e,"href",r),[()=>_("/demo/better-auth")]),m(t,e),f()}export{j as component}; diff --git a/build/client/_app/immutable/nodes/11.DR1Vz7m0.js.br b/build/client/_app/immutable/nodes/11.DR1Vz7m0.js.br deleted file mode 100644 index c5462d5..0000000 Binary files a/build/client/_app/immutable/nodes/11.DR1Vz7m0.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/11.DR1Vz7m0.js.gz b/build/client/_app/immutable/nodes/11.DR1Vz7m0.js.gz deleted file mode 100644 index fb9f399..0000000 Binary files a/build/client/_app/immutable/nodes/11.DR1Vz7m0.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/12.C9UZWAjJ.js b/build/client/_app/immutable/nodes/12.C9UZWAjJ.js deleted file mode 100644 index 0276207..0000000 --- a/build/client/_app/immutable/nodes/12.C9UZWAjJ.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as h,f as c,t as b,a as l,b as v,d as g,e as o,r as s,s as i}from"../chunks/BxEwC6Zc.js";import{s as n}from"../chunks/DoLu9QLy.js";import{a as x,e as _}from"../chunks/BAocuFgQ.js";var w=g('

',1);function O(m,t){h(t,!0);var r=w(),a=c(r),p=o(a);s(a);var e=i(a,2),u=o(e);s(e);var f=i(e,2);x(f,d=>_?.(d)),b(()=>{n(p,`Hi, ${t.data.user.name??""}!`),n(u,`Your user ID is ${t.data.user.id??""}.`)}),l(m,r),v()}export{O as component}; diff --git a/build/client/_app/immutable/nodes/12.C9UZWAjJ.js.br b/build/client/_app/immutable/nodes/12.C9UZWAjJ.js.br deleted file mode 100644 index f4a3cc7..0000000 Binary files a/build/client/_app/immutable/nodes/12.C9UZWAjJ.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/12.C9UZWAjJ.js.gz b/build/client/_app/immutable/nodes/12.C9UZWAjJ.js.gz deleted file mode 100644 index 57aa2f1..0000000 Binary files a/build/client/_app/immutable/nodes/12.C9UZWAjJ.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/13.CyZ4e6yK.js b/build/client/_app/immutable/nodes/13.CyZ4e6yK.js deleted file mode 100644 index 501abea..0000000 --- a/build/client/_app/immutable/nodes/13.CyZ4e6yK.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as b,s as t,f as d,t as p,a as c,b as f,d as g,e as h,r as y}from"../chunks/BxEwC6Zc.js";import{s as w}from"../chunks/DoLu9QLy.js";import{a as n,e as i}from"../chunks/BAocuFgQ.js";var x=g('

Login


',1);function I(u,r){b(r,!0);var a=x(),s=t(d(a),2);n(s,o=>i?.(o));var e=t(s,2),l=h(e,!0);y(e);var m=t(e,4);n(m,o=>i?.(o)),p(()=>w(l,r.form?.message??"")),c(u,a),f()}export{I as component}; diff --git a/build/client/_app/immutable/nodes/13.CyZ4e6yK.js.br b/build/client/_app/immutable/nodes/13.CyZ4e6yK.js.br deleted file mode 100644 index 02ae879..0000000 Binary files a/build/client/_app/immutable/nodes/13.CyZ4e6yK.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/13.CyZ4e6yK.js.gz b/build/client/_app/immutable/nodes/13.CyZ4e6yK.js.gz deleted file mode 100644 index 1dd0d73..0000000 Binary files a/build/client/_app/immutable/nodes/13.CyZ4e6yK.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/2.BsR2_q_w.js b/build/client/_app/immutable/nodes/2.BsR2_q_w.js deleted file mode 100644 index e79d7eb..0000000 --- a/build/client/_app/immutable/nodes/2.BsR2_q_w.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as F,s as i,e as t,r as a,t as S,k as e,a as v,b as H,l as E,f as L,d as m,c as R}from"../chunks/BxEwC6Zc.js";import{s as I}from"../chunks/CyUoLS3q.js";import{i as A}from"../chunks/BQKoxf2Q.js";import{s as z}from"../chunks/DoLu9QLy.js";import{e as T,i as W}from"../chunks/BLQQas77.js";import{s as B}from"../chunks/BnX5ZnVA.js";import{s as M}from"../chunks/BqOsL1Vv.js";import{p as V}from"../chunks/D2SGgx9j.js";import{a as q,e as C}from"../chunks/BAocuFgQ.js";var G=m(' '),J=m('

Staff

⚡ Admin',1),K=m('');function O(j,_){F(_,!0);const d=E(()=>V.data?.user),k=[{href:"/",label:"Dashboard",icon:"⌂"},{href:"/matches",label:"Matches",icon:"⚔"},{href:"/mappools",label:"Mappools",icon:"♫"},{href:"/teams",label:"Teams",icon:"⚑"}];function p(r){return r==="/"?V.url.pathname==="/":V.url.pathname.startsWith(r)}const y=E(()=>e(d)?.role==="admin");var h=K(),o=i(t(h),2),n=t(o);T(n,17,()=>k,W,(r,f)=>{var b=G(),u=t(b),D=t(u,!0);a(u);var $=i(u);a(b),S(l=>{B(b,"href",e(f).href),M(b,1,`font-500 flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors ${l??""}`),z(D,e(f).icon),z($,` ${e(f).label??""}`)},[()=>p(e(f).href)?"bg-accent-dim text-accent":"text-text-secondary hover:bg-surface-700 hover:text-text-primary"]),v(r,b)});var x=i(n,2);{var s=r=>{var f=J(),b=i(L(f),2);S(u=>M(b,1,`font-500 flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors ${u??""}`),[()=>p("/admin")?"bg-red-500/10 text-red-400":"text-text-secondary hover:bg-surface-700 hover:text-text-primary"]),v(r,f)};A(x,r=>{e(y)&&r(s)})}a(o);var c=i(o,2),w=t(c);a(c),a(h),S(r=>M(w,1,`font-500 flex items-center gap-3 rounded-md px-3 py-2 text-sm text-text-secondary transition-colors hover:bg-surface-700 hover:text-text-primary ${r??""}`),[()=>p("/settings")?"bg-accent-dim text-accent":""]),v(j,h),H()}var P=m(" "),Q=m(''),U=m('
'),X=m('Sign in with osu!'),Y=m('
');function Z(j,_){F(_,!0);const d=E(()=>V.data?.user),k={referee:{label:"REF",color:"bg-yellow-500/20 text-yellow-400"},admin:{label:"ADMIN",color:"bg-red-500/20 text-red-400"}},p=E(()=>e(d)?.role?k[e(d).role]:null);var y=Y(),h=i(t(y),2),o=t(h);{var n=s=>{var c=U(),w=t(c);{var r=l=>{var g=P(),N=t(g,!0);a(g),S(()=>{M(g,1,`rounded px-1.5 py-0.5 text-[10px] font-700 ${e(p).color??""}`),z(N,e(p).label)}),v(l,g)};A(w,l=>{e(p)&&l(r)})}var f=i(w,2);{var b=l=>{var g=Q();S(()=>{B(g,"src",e(d).image),B(g,"alt",e(d).name)}),v(l,g)};A(f,l=>{e(d).image&&l(b)})}var u=i(f,2),D=t(u,!0);a(u);var $=i(u,2);q($,l=>C?.(l)),a(c),S(()=>z(D,e(d).name)),v(s,c)},x=s=>{var c=X();v(s,c)};A(o,s=>{e(d)?s(n):s(x,!1)})}a(h),a(y),v(j,y),H()}var ee=m('
'),te=m('');function fe(j,_){F(_,!0);const d=E(()=>V.data?.user);var k=R(),p=L(k);{var y=o=>{var n=ee(),x=t(n);O(x,{});var s=i(x,2),c=t(s);Z(c,{});var w=i(c,2),r=t(w);I(r,()=>_.children),a(w),a(s),a(n),v(o,n)},h=o=>{var n=te(),x=i(t(n),2),s=t(x);I(s,()=>_.children),a(x),a(n),v(o,n)};A(p,o=>{e(d)?o(y):o(h,!1)})}v(j,k),H()}export{fe as component}; diff --git a/build/client/_app/immutable/nodes/2.BsR2_q_w.js.br b/build/client/_app/immutable/nodes/2.BsR2_q_w.js.br deleted file mode 100644 index 480213f..0000000 Binary files a/build/client/_app/immutable/nodes/2.BsR2_q_w.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/2.BsR2_q_w.js.gz b/build/client/_app/immutable/nodes/2.BsR2_q_w.js.gz deleted file mode 100644 index c110f6d..0000000 Binary files a/build/client/_app/immutable/nodes/2.BsR2_q_w.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/3.CMuy9Bx3.js b/build/client/_app/immutable/nodes/3.CMuy9Bx3.js deleted file mode 100644 index 2ffae4c..0000000 --- a/build/client/_app/immutable/nodes/3.CMuy9Bx3.js +++ /dev/null @@ -1,3 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as Fe,u as Oe,c as Re,f as be,a as o,b as Ue,i as O,j as ge,e as a,s as r,r as t,n as R,k as e,t as m,l as k,d as i}from"../chunks/BxEwC6Zc.js";import{d as Be,s as n,a as he}from"../chunks/DoLu9QLy.js";import{i as L}from"../chunks/BQKoxf2Q.js";import{e as _e,i as ye}from"../chunks/BLQQas77.js";import{s as z}from"../chunks/BnX5ZnVA.js";import{s as U}from"../chunks/BqOsL1Vv.js";var Pe=i(`
V

Welcome to Vash Esports

Automated tournament match management for osu! — lobbies, mappools, picks, bans, and - ELO tracking all in one place.

Sign in with osu!

Uses your osu! account. No extra registration needed.

`),Ge=i(''),He=i(''),Ve=i(""),We=i('
vs
'),Ye=i('

Live Now

'),ze=i('
'),Je=i(''),Ke=i(' - ',1),Xe=i('vs'),Ze=i(' '),$e=i('

'),et=i('

No matches yet. Create one

'),tt=i('

Welcome back,

Automated esports match management for osu!

Total Matches

Completed

Teams

Mappools

Ranked Queue

Find a match at your skill level

');function dt(we,p){Fe(p,!0);const re={CREATED:{label:"Created",color:"text-text-secondary"},LOBBY:{label:"In Lobby",color:"text-yellow-400"},ROLLING:{label:"Rolling",color:"text-yellow-400",dot:"bg-yellow-400"},PICKING:{label:"Picking",color:"text-blue-400",dot:"bg-blue-400"},PLAYING:{label:"Live",color:"text-green-400",dot:"bg-green-400"},FINISHED:{label:"Finished",color:"text-text-secondary"},CANCELLED:{label:"Cancelled",color:"text-red-400"}};let J=ge(null),M=ge(!1);async function B(){try{const c=await fetch("/api/queue");c.ok&&O(J,await c.json(),!0)}catch{}}async function Ie(){O(M,!0);try{const u=await(await fetch("/api/queue",{method:"POST"})).json();if(u.matched&&u.match){window.location.href=`/matches/${u.match.id}`;return}await B()}catch{}O(M,!1)}async function ke(){O(M,!0);try{await fetch("/api/queue",{method:"DELETE"}),await B()}catch{}O(M,!1)}Oe(()=>{if(p.data.user){B();const c=setInterval(B,5e3);return()=>clearInterval(c)}});function Le(c){const u=new Date(c),Q=Date.now()-u.getTime(),j=Math.floor(Q/6e4);if(j<1)return"just now";if(j<60)return`${j}m ago`;const S=Math.floor(j/60);return S<24?`${S}h ago`:`${Math.floor(S/24)}d ago`}var ne=Re(),Me=be(ne);{var je=c=>{var u=Pe();o(c,u)},Ee=c=>{var u=tt(),Q=a(u),j=a(Q),S=r(a(j)),oe=a(S,!0);t(S),t(j),R(2),t(Q);var K=r(Q,2),X=a(K),ce=a(X),Ne=a(ce,!0);t(ce),R(2),t(X);var Z=r(X,2),le=a(Z),Ae=a(le,!0);t(le),R(2),t(Z);var $=r(Z,2),de=a($),Ce=a(de,!0);t(de),R(2),t($);var ie=r($,2),ve=a(ie),Se=a(ve,!0);t(ve),R(2),t(ie),t(K);var xe=r(K,2);{var De=l=>{var s=Ye(),v=r(a(s),2);_e(v,21,()=>p.data.liveMatches,ye,(h,b)=>{const E=k(()=>e(b).participants[0]),g=k(()=>e(b).participants[1]),_=k(()=>re[e(b).state]);var y=We(),N=a(y),P=a(N);{var G=f=>{var I=Ge();m(()=>z(I,"src",e(E).team.avatarUrl)),o(f,I)};L(P,f=>{e(E)?.team.avatarUrl&&f(G)})}var H=r(P,2),te=a(H,!0);t(H),t(N);var D=r(N,2),T=a(D),V=a(T,!0);t(T);var W=r(T,4),Y=a(W,!0);t(W),t(D);var F=r(D,2),A=a(F),ae=a(A,!0);t(A);var d=r(A,2);{var w=f=>{var I=He();m(()=>z(I,"src",e(g).team.avatarUrl)),o(f,I)};L(d,f=>{e(g)?.team.avatarUrl&&f(w)})}t(F);var x=r(F,2),q=a(x);{var C=f=>{var I=Ve();m(()=>U(I,1,`h-1.5 w-1.5 rounded-full ${e(_).dot??""}`)),o(f,I)};L(q,f=>{e(_)?.dot&&f(C)})}var se=r(q);t(x),t(y),m(()=>{z(y,"href",`/matches/${e(b).id??""}`),n(te,e(E)?.team.name??"?"),n(V,e(E)?.score??0),n(Y,e(g)?.score??0),n(ae,e(g)?.team.name??"?"),U(x,1,`flex items-center gap-1.5 text-xs font-500 ${e(_)?.color??""??""}`),n(se,` ${e(_)?.label??""}`)}),o(h,y)}),t(v),t(s),o(l,s)};L(xe,l=>{p.data.liveMatches.length>0&&l(De)})}var ee=r(xe,2),pe=a(ee),qe=r(a(pe),2);{var Qe=l=>{var s=ze(),v=a(s),h=r(a(v));t(v);var b=r(v,2);t(s),m(()=>{n(h,` In queue (${e(J).queueSize??""} searching)`),b.disabled=e(M)}),he("click",b,ke),o(l,s)},Te=l=>{var s=Je(),v=a(s,!0);t(s),m(()=>{s.disabled=e(M),n(v,e(M)?"Joining...":"Find Match")}),he("click",s,Ie),o(l,s)};L(qe,l=>{e(J)?.inQueue?l(Qe):l(Te,!1)})}t(pe),t(ee);var ue=r(ee,2),fe=r(a(ue),2),me=r(a(fe),2);_e(me,21,()=>p.data.recentMatches,ye,(l,s)=>{const v=k(()=>e(s).participants[0]),h=k(()=>e(s).participants[1]),b=k(()=>e(s).config),E=k(()=>re[e(s).state]);var g=$e(),_=a(g),y=a(_),N=a(y),P=a(N,!0);t(N);var G=r(N,2);{var H=d=>{var w=Ke(),x=be(w),q=a(x,!0);t(x);var C=r(x,4),se=a(C,!0);t(C),m(()=>{U(x,1,`text-xs font-700 tabular-nums ${(e(v)?.score??0)>(e(h)?.score??0)?"text-green-400":"text-text-secondary"}`),n(q,e(v)?.score??0),U(C,1,`text-xs font-700 tabular-nums ${(e(h)?.score??0)>(e(v)?.score??0)?"text-green-400":"text-text-secondary"}`),n(se,e(h)?.score??0)}),o(d,w)},te=d=>{var w=Xe();o(d,w)};L(G,d=>{e(s).state==="FINISHED"?d(H):d(te,!1)})}var D=r(G,2),T=a(D,!0);t(D),t(y);var V=r(y,2),W=a(V);t(V),t(_);var Y=r(_,2);{var F=d=>{const w=k(()=>e(s).participants.find(C=>C.teamId===e(s).winnerId));var x=Ze(),q=a(x);t(x),m(()=>n(q,`🏆 ${e(w)?.team.name??""}`)),o(d,x)};L(Y,d=>{e(s).state==="FINISHED"&&e(s).winnerId&&d(F)})}var A=r(Y,2),ae=a(A,!0);t(A),t(g),m(d=>{z(g,"href",`/matches/${e(s).id??""}`),n(P,e(v)?.team.name??"?"),n(T,e(h)?.team.name??"?"),n(W,`${e(s).name?`${e(s).name} · `:""}BO${e(b).bestOf??""} - · ${d??""}`),U(A,1,`text-xs ${e(E)?.color??"text-text-secondary"??""}`),n(ae,e(E)?.label)},[()=>Le(e(s).finishedAt??e(s).createdAt)]),o(l,g)},l=>{var s=et();o(l,s)}),t(me),t(fe),t(ue),t(u),m(()=>{n(oe,p.data.user.name),n(Ne,p.data.stats.matches),n(Ae,p.data.stats.finished),n(Ce,p.data.stats.teams),n(Se,p.data.stats.mappools)}),o(c,u)};L(Me,c=>{p.data.user?c(Ee,!1):c(je)})}o(we,ne),Ue()}Be(["click"]);export{dt as component}; diff --git a/build/client/_app/immutable/nodes/3.CMuy9Bx3.js.br b/build/client/_app/immutable/nodes/3.CMuy9Bx3.js.br deleted file mode 100644 index d23f14f..0000000 Binary files a/build/client/_app/immutable/nodes/3.CMuy9Bx3.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/3.CMuy9Bx3.js.gz b/build/client/_app/immutable/nodes/3.CMuy9Bx3.js.gz deleted file mode 100644 index 0f0554a..0000000 Binary files a/build/client/_app/immutable/nodes/3.CMuy9Bx3.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/4.BdC-uDW-.js b/build/client/_app/immutable/nodes/4.BdC-uDW-.js deleted file mode 100644 index 52a5797..0000000 --- a/build/client/_app/immutable/nodes/4.BdC-uDW-.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as Z,t as p,a as c,b as $,d as x,e as t,s as o,r as a,k as r,j as ee,i as O,l as te}from"../chunks/BxEwC6Zc.js";import{d as ae,s as i,a as re}from"../chunks/DoLu9QLy.js";import{i as S}from"../chunks/BQKoxf2Q.js";import{e as se,i as oe}from"../chunks/BLQQas77.js";import{a as ne,e as le}from"../chunks/BAocuFgQ.js";import{r as ie,a as de,s as pe}from"../chunks/BnX5ZnVA.js";import{s as ce}from"../chunks/BqOsL1Vv.js";import{i as xe,s as ve}from"../chunks/Cy2QBcXt.js";var me=x('

'),_e=x(''),ue=x('
'),fe=x('

/
'),be=x('

Admin Panel

Avatar User ELO W/L Role
');function je(T,v){Z(v,!0);let m=ee("");const j={player:{label:"Player",color:"bg-surface-600 text-text-secondary border-border"},referee:{label:"Referee",color:"bg-yellow-500/20 text-yellow-400 border-yellow-500/30"},admin:{label:"Admin",color:"bg-red-500/20 text-red-400 border-red-500/30"}};var _=be(),u=t(_),E=o(t(u),2),z=t(E);a(E),a(u);var U=o(u,2);{var D=d=>{var e=me(),f=t(e,!0);a(e),p(()=>i(f,r(m))),c(d,e)};S(U,d=>{r(m)&&d(D)})}var W=o(U,2),G=o(t(W),2);se(G,17,()=>v.data.users,oe,(d,e)=>{const f=te(()=>j[r(e).role]??j.player);var b=fe(),q=t(b);{var H=s=>{var l=_e();p(()=>pe(l,"src",r(e).image)),c(s,l)},J=s=>{var l=ue(),X=t(l,!0);a(l),p(Y=>i(X,Y),[()=>r(e).name.charAt(0).toUpperCase()]),c(s,l)};S(q,s=>{r(e).image?s(H):s(J,!1)})}var g=o(q,2),y=t(g),K=t(y,!0);a(y);var B=o(y,2),M=t(B,!0);a(B),a(g);var h=o(g,2),N=t(h,!0);a(h);var w=o(h,2),A=t(w),Q=t(A);a(A);var C=o(A,2),V=t(C);a(C),a(w);var R=o(w,2),k=t(R);ie(k);var n=o(k,2),L=t(n);L.value=L.__value="player";var P=o(L);P.value=P.__value="referee";var F=o(P);F.value=F.__value="admin",a(n);var I;xe(n),a(R),ne(R,(s,l)=>le?.(s,l),()=>()=>(O(m,""),async({result:s})=>{(s.type==="failure"||s.type==="success"&&s.data?.error)&&O(m,s.data?.error??"Failed to update role",!0)})),a(b),p(()=>{i(K,r(e).name),i(M,r(e).email),i(N,r(e).elo),i(Q,`${r(e).wins??""}W`),i(V,`${r(e).losses??""}L`),de(k,r(e).id),ce(n,1,`rounded-md border px-2 py-1 text-xs font-500 ${r(f).color??""} cursor-pointer bg-transparent focus:outline-none`),I!==(I=r(e).role)&&(n.value=(n.__value=r(e).role)??"",ve(n,r(e).role))}),re("change",n,s=>s.currentTarget.form?.requestSubmit()),c(d,b)}),a(W),a(_),p(()=>i(z,`${v.data.users.length??""} registered user${v.data.users.length!==1?"s":""}`)),c(T,_),$()}ae(["change"]);export{je as component}; diff --git a/build/client/_app/immutable/nodes/4.BdC-uDW-.js.br b/build/client/_app/immutable/nodes/4.BdC-uDW-.js.br deleted file mode 100644 index 98958cb..0000000 Binary files a/build/client/_app/immutable/nodes/4.BdC-uDW-.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/4.BdC-uDW-.js.gz b/build/client/_app/immutable/nodes/4.BdC-uDW-.js.gz deleted file mode 100644 index 50a256d..0000000 Binary files a/build/client/_app/immutable/nodes/4.BdC-uDW-.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/5.CyqZcxti.js b/build/client/_app/immutable/nodes/5.CyqZcxti.js deleted file mode 100644 index 57e94eb..0000000 --- a/build/client/_app/immutable/nodes/5.CyqZcxti.js +++ /dev/null @@ -1,2 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as M,t as y,a as d,b as N,k as t,d as i,e as o,s as c,r as a,n as P,i as $,j as q}from"../chunks/BxEwC6Zc.js";import{d as A,a as F,s as v}from"../chunks/DoLu9QLy.js";import{i as G}from"../chunks/BQKoxf2Q.js";import{e as L,i as S}from"../chunks/BLQQas77.js";import{a as z,e as B}from"../chunks/BAocuFgQ.js";import{s as E}from"../chunks/BnX5ZnVA.js";var H=i('
'),I=i('

→
'),J=i('

No mappools yet. Create one to get started.

'),K=i('

Mappools

Create and manage your beatmap pools

');function X(_,f){M(f,!0);let n=q(!1);var l=K(),p=o(l),m=c(o(p),2),k=o(m,!0);a(m),a(p);var b=c(p,2);{var w=r=>{var e=H();z(e,s=>B?.(s)),d(r,e)};G(b,r=>{t(n)&&r(w)})}var u=c(b,2);L(u,21,()=>f.data.mappools,S,(r,e)=>{var s=I(),g=o(s),x=o(g),C=o(x,!0);a(x);var h=c(x,2),j=o(h);a(h),a(g),P(2),a(s),y(D=>{E(s,"href",`/mappools/${t(e).id??""}`),v(C,t(e).name),v(j,`${t(e).slots.length??""} map${t(e).slots.length!==1?"s":""} - · Created ${D??""}`)},[()=>new Date(t(e).createdAt).toLocaleDateString()]),d(r,s)},r=>{var e=J();d(r,e)}),a(u),a(l),y(()=>v(k,t(n)?"Cancel":"New Pool")),F("click",m,()=>$(n,!t(n))),d(_,l),N()}A(["click"]);export{X as component}; diff --git a/build/client/_app/immutable/nodes/5.CyqZcxti.js.br b/build/client/_app/immutable/nodes/5.CyqZcxti.js.br deleted file mode 100644 index e953889..0000000 Binary files a/build/client/_app/immutable/nodes/5.CyqZcxti.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/5.CyqZcxti.js.gz b/build/client/_app/immutable/nodes/5.CyqZcxti.js.gz deleted file mode 100644 index 10747cd..0000000 Binary files a/build/client/_app/immutable/nodes/5.CyqZcxti.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/6.CEe0czaO.js b/build/client/_app/immutable/nodes/6.CEe0czaO.js deleted file mode 100644 index 008b31b..0000000 --- a/build/client/_app/immutable/nodes/6.CEe0czaO.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as St,t as m,k as r,a as l,b as Tt,e as a,s,d as c,l as st,r as e,i as b,m as Lt,n as Pt,j as M,f as Ut}from"../chunks/BxEwC6Zc.js";import{d as Ct,a as Et,s as i}from"../chunks/DoLu9QLy.js";import{i as q}from"../chunks/BQKoxf2Q.js";import{e as z,i as G}from"../chunks/BLQQas77.js";import{a as J,e as K}from"../chunks/BAocuFgQ.js";import{r as dt,a as Ot,s as nt}from"../chunks/BnX5ZnVA.js";import{s as qt}from"../chunks/BqOsL1Vv.js";import{b as zt}from"../chunks/CAkKRSSs.js";import{b as Gt}from"../chunks/Cy2QBcXt.js";import"../chunks/DAtZQVjv.js";var Jt=c(""),Kt=c('

'),Qt=c(''),Vt=c('
No cover
'),Wt=c('
',1),Xt=c('

'),Yt=c('
'),Zt=c('
'),te=c('

No maps yet. Add your first map above.

'),ee=c('

Add Map

');function me(it,_){St(_,!0);const Q=["NM","HD","HR","DT","FM","TB"];let V=M("NM"),g=M(""),y=M(""),h=M(!1);const pt=st(()=>()=>{const t={};for(const o of Q){const d=_.data.pool.slots.filter(x=>x.category===o);d.length>0&&(t[o]=d)}return t});function vt(t){const o=Math.floor(t/60),d=t%60;return`${o}:${d.toString().padStart(2,"0")}`}const lt={NM:"bg-blue-500/20 text-blue-400 border-blue-500/30",HD:"bg-yellow-500/20 text-yellow-400 border-yellow-500/30",HR:"bg-red-500/20 text-red-400 border-red-500/30",DT:"bg-purple-500/20 text-purple-400 border-purple-500/30",FM:"bg-green-500/20 text-green-400 border-green-500/30",TB:"bg-pink-500/20 text-pink-400 border-pink-500/30"};var j=ee(),B=a(j),I=a(B),W=s(a(I),2),N=a(W),ct=a(N,!0);e(N);var X=s(N,2),mt=a(X);e(X),e(W),e(I);var $=s(I,2),xt=a($);e($),J($,t=>K?.(t)),e(B);var k=s(B,2),A=s(a(k),2),w=a(A);z(w,21,()=>Q,G,(t,o)=>{var d=Jt(),x=a(d,!0);e(d);var f={};m(()=>{i(x,r(o)),f!==(f=r(o))&&(d.value=(d.__value=r(o))??"")}),l(t,d)}),e(w);var F=s(w,2);dt(F);var H=s(F,2),bt=a(H,!0);e(H),e(A);var ft=s(A,2);{var ut=t=>{var o=Kt(),d=a(o,!0);e(o),m(()=>i(d,r(y))),l(t,o)};q(ft,t=>{r(y)&&t(ut)})}e(k),J(k,(t,o)=>K?.(t,o),()=>()=>(b(h,!0),b(y,""),async({result:t,update:o})=>{b(h,!1),t.type==="success"?(b(g,""),await o()):t.type==="failure"&&b(y,t.data?.error??"Failed to add map",!0)}));var Y=s(k,2);z(Y,21,()=>Object.entries(r(pt)()),G,(t,o)=>{var d=st(()=>Lt(r(o),2));let x=()=>r(d)[0],f=()=>r(d)[1];var R=Zt(),S=a(R),D=a(S),_t=a(D,!0);e(D);var Z=s(D,2),gt=a(Z);e(Z),e(S);var tt=s(S,2);z(tt,21,f,G,(yt,p,ht)=>{var T=Yt(),et=a(T);{var kt=n=>{var v=Qt();m(()=>nt(v,"src",r(p).beatmap.coverUrl)),l(n,v)},wt=n=>{var v=Vt();l(n,v)};q(et,n=>{r(p).beatmap?.coverUrl?n(kt):n(wt,!1)})}var L=s(et,2),Dt=a(L);{var Mt=n=>{var v=Wt(),u=Ut(v),It=a(u);e(u);var rt=s(u,2),C=a(rt),Nt=a(C);e(C);var E=s(C,2),$t=a(E);e(E);var O=s(E,2),At=a(O);e(O);var ot=s(O,2),Ft=a(ot,!0);e(ot),e(rt),m((Ht,Rt)=>{nt(u,"href",r(p).beatmap.url),i(It,`${r(p).beatmap.artist??""} - ${r(p).beatmap.title??""}`),i(Nt,`[${r(p).beatmap.version??""}]`),i($t,`★ ${Ht??""}`),i(At,`${r(p).beatmap.bpm??""} BPM`),i(Ft,Rt)},[()=>r(p).beatmap.starRating.toFixed(2),()=>vt(r(p).beatmap.totalLength)]),l(n,v)},jt=n=>{var v=Xt(),u=a(v);e(v),m(()=>i(u,`Beatmap #${r(p).beatmapId??""}`)),l(n,v)};q(Dt,n=>{r(p).beatmap?n(Mt):n(jt,!1)})}e(L);var P=s(L,2),Bt=a(P);e(P);var U=s(P,2),at=a(U);dt(at),Pt(2),e(U),J(U,n=>K?.(n)),e(T),m(()=>{i(Bt,`${x()??""}${ht+1}`),Ot(at,r(p).id)}),l(yt,T)}),e(tt),e(R),m(()=>{qt(D,1,`rounded border px-2 py-0.5 text-xs font-600 ${lt[x()]??"bg-surface-600 text-text-secondary border-border"??""}`),i(_t,x()),i(gt,`${f().length??""} map${f().length!==1?"s":""}`)}),l(t,R)},t=>{var o=te();l(t,o)}),e(Y),e(j),m(t=>{i(ct,_.data.pool.name),i(mt,`${_.data.pool.slots.length??""} map${_.data.pool.slots.length!==1?"s":""}`),H.disabled=t,i(bt,r(h)?"Adding...":"Add")},[()=>r(h)||!r(g).trim()]),Et("click",xt,t=>{confirm("Delete this mappool?")||t.preventDefault()}),Gt(w,()=>r(V),t=>b(V,t)),zt(F,()=>r(g),t=>b(g,t)),l(it,j),Tt()}Ct(["click"]);export{me as component}; diff --git a/build/client/_app/immutable/nodes/6.CEe0czaO.js.br b/build/client/_app/immutable/nodes/6.CEe0czaO.js.br deleted file mode 100644 index 2a89c2d..0000000 Binary files a/build/client/_app/immutable/nodes/6.CEe0czaO.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/6.CEe0czaO.js.gz b/build/client/_app/immutable/nodes/6.CEe0czaO.js.gz deleted file mode 100644 index a08aed4..0000000 Binary files a/build/client/_app/immutable/nodes/6.CEe0czaO.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/7._nuD3LlN.js b/build/client/_app/immutable/nodes/7._nuD3LlN.js deleted file mode 100644 index 025e27c..0000000 --- a/build/client/_app/immutable/nodes/7._nuD3LlN.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as ye,t as h,a as v,b as we,c as Ie,f as W,k as e,i as X,d as f,l as E,s,j as ie,e as a,r as t,n as Me,g as ve}from"../chunks/BxEwC6Zc.js";import{d as Ne,a as Ce,s as p}from"../chunks/DoLu9QLy.js";import{i as N}from"../chunks/BQKoxf2Q.js";import{e as T,i as U}from"../chunks/BLQQas77.js";import{a as Le,e as Oe}from"../chunks/BAocuFgQ.js";import{s as K,b as $e}from"../chunks/BnX5ZnVA.js";import{s as Y}from"../chunks/BqOsL1Vv.js";var Ae=f('· ',1),Se=f('

'),De=f(""),Ee=f(""),Pe=f(""),Be=f(""),ke=f('

Create Match

'),Ge=f(''),je=f(''),Fe=f(""),Re=f('
vs
'),Te=f('

Live Now

'),Ue=f('

Past Matches

'),Ye=f(' - ',1),qe=f('vs'),He=f(' '),Ke=f('

'),ze=f('

No matches yet. Create one to get started.

'),Je=f('

Matches

');function rt(pe,$){ye($,!0);let q=ie(!1),H=ie("");const Z={CREATED:{label:"Created",color:"text-text-secondary border-border"},LOBBY:{label:"In Lobby",color:"text-yellow-400 border-yellow-500/30"},ROLLING:{label:"Rolling",color:"text-yellow-400 border-yellow-500/30",dot:"bg-yellow-400"},PICKING:{label:"Picking",color:"text-blue-400 border-blue-500/30",dot:"bg-blue-400"},PLAYING:{label:"Live",color:"text-green-400 border-green-500/30",dot:"bg-green-400"},FINISHED:{label:"Finished",color:"text-text-secondary border-border"},CANCELLED:{label:"Cancelled",color:"text-red-400 border-red-500/30"}},ee=["LOBBY","ROLLING","PICKING","PLAYING"],j=E(()=>$.data.matches.filter(l=>ee.includes(l.state))),xe=E(()=>$.data.matches.filter(l=>!ee.includes(l.state)));function te(l){const r=l.participants[0],i=l.participants[1];return{p1:r,p2:i}}function ae(l){const r=new Date(l),i=Date.now()-r.getTime(),y=Math.floor(i/6e4);if(y<1)return"just now";if(y<60)return`${y}m ago`;const m=Math.floor(y/60);return m<24?`${m}h ago`:`${Math.floor(m/24)}d ago`}var z=Je(),J=a(z),Q=a(J),re=s(a(Q),2),se=a(re),fe=s(se);{var me=l=>{var r=Ae(),i=s(W(r)),y=a(i);t(i),h(()=>p(y,`${e(j).length??""} live`)),v(l,r)};N(fe,l=>{e(j).length>0&&l(me)})}t(re),t(Q);var V=s(Q,2),ue=a(V,!0);t(V),t(J);var oe=s(J,2);{var _e=l=>{var r=ke(),i=s(a(r),2);{var y=d=>{var o=Se(),n=a(o,!0);t(o),h(()=>p(n,e(H))),v(d,o)};N(i,d=>{e(H)&&d(y)})}var m=s(i,2),x=s(a(m),2),C=s(a(x),2);T(C,20,()=>[3,5,7,9,11,13],U,(d,o)=>{var n=De(),I=a(n);t(n);var u={};h(c=>{$e(n,o===7),p(I,`BO${o??""} (first to ${c??""})`),u!==(u=o)&&(n.value=(n.__value=o)??"")},[()=>Math.ceil(o/2)]),v(d,n)}),t(C),t(x);var M=s(x,2),L=s(a(M),2),A=a(L);A.value=A.__value="";var F=s(A);T(F,17,()=>$.data.teams,U,(d,o)=>{var n=Ee(),I=a(n);t(n);var u={};h(()=>{p(I,`${e(o).name??""}${e(o).isPersonal?" (solo)":""}`),u!==(u=e(o).id)&&(n.value=(n.__value=e(o).id)??"")}),v(d,n)}),t(L),t(M);var S=s(M,2),R=s(a(S),2),O=a(R);O.value=O.__value="";var P=s(O);T(P,17,()=>$.data.teams,U,(d,o)=>{var n=Pe(),I=a(n);t(n);var u={};h(()=>{p(I,`${e(o).name??""}${e(o).isPersonal?" (solo)":""}`),u!==(u=e(o).id)&&(n.value=(n.__value=e(o).id)??"")}),v(d,n)}),t(R),t(S);var B=s(S,2),D=s(a(B),2),k=a(D);k.value=k.__value="";var G=s(k);T(G,17,()=>$.data.mappools,U,(d,o)=>{var n=Be(),I=a(n);t(n);var u={};h(()=>{p(I,`${e(o).name??""} (${e(o).slots.length??""} maps)`),u!==(u=e(o).id)&&(n.value=(n.__value=e(o).id)??"")}),v(d,n)}),t(D),t(B),t(m),Me(2),t(r),Le(r,(d,o)=>Oe?.(d,o),()=>()=>(X(H,""),async({result:d,update:o})=>{d.type==="failure"||d.type==="success"&&d.data?.error?X(H,d.data?.error??"Failed to create match",!0):await o()})),v(l,r)};N(oe,l=>{e(q)&&l(_e)})}var ne=s(oe,2);{var be=l=>{var r=Te(),i=s(a(r),2);T(i,21,()=>e(j),U,(y,m)=>{const x=E(()=>{const{p1:_,p2:g}=te(e(m));return{p1:_,p2:g}}),C=E(()=>Z[e(m).state]);var M=Re(),L=a(M),A=a(L);{var F=_=>{var g=Ge();h(()=>K(g,"src",e(x).p1.team.avatarUrl)),v(_,g)};N(A,_=>{e(x).p1?.team.avatarUrl&&_(F)})}var S=s(A,2),R=a(S,!0);t(S),t(L);var O=s(L,2),P=a(O),B=a(P,!0);t(P);var D=s(P,4),k=a(D,!0);t(D),t(O);var G=s(O,2),d=a(G),o=a(d,!0);t(d);var n=s(d,2);{var I=_=>{var g=je();h(()=>K(g,"src",e(x).p2.team.avatarUrl)),v(_,g)};N(n,_=>{e(x).p2?.team.avatarUrl&&_(I)})}t(G);var u=s(G,2),c=a(u);{var b=_=>{var g=Fe();h(()=>Y(g,1,`h-1.5 w-1.5 rounded-full ${e(C).dot??""}`)),v(_,g)};N(c,_=>{e(C)?.dot&&_(b)})}var w=s(c);t(u),t(M),h(()=>{K(M,"href",`/matches/${e(m).id??""}`),p(R,e(x).p1?.team.name??"?"),p(B,e(x).p1?.score??0),p(k,e(x).p2?.score??0),p(o,e(x).p2?.team.name??"?"),Y(u,1,`flex items-center gap-1.5 rounded border px-2 py-0.5 text-xs font-500 ${e(C)?.color??"border-border"??""}`),p(w,` ${e(C)?.label??e(m).state??""}`)}),v(y,M)}),t(i),t(r),v(l,r)};N(ne,l=>{e(j).length>0&&l(be)})}var le=s(ne,2),de=a(le);{var ge=l=>{var r=Ue();v(l,r)};N(de,l=>{e(j).length>0&&l(ge)})}var ce=s(de,2);T(ce,21,()=>e(xe),U,(l,r)=>{const i=E(()=>{const{p1:c,p2:b}=te(e(r));return{p1:c,p2:b}}),y=E(()=>e(r).config),m=E(()=>Z[e(r).state]);var x=Ke(),C=a(x),M=a(C),L=a(M),A=a(L,!0);t(L);var F=s(L,2);{var S=c=>{var b=Ye(),w=W(b),_=a(w,!0);t(w);var g=s(w,4),he=a(g,!0);t(g),h(()=>{Y(w,1,`text-xs font-700 tabular-nums ${(e(i).p1?.score??0)>(e(i).p2?.score??0)?"text-green-400":"text-text-secondary"}`),p(_,e(i).p1?.score??0),Y(g,1,`text-xs font-700 tabular-nums ${(e(i).p2?.score??0)>(e(i).p1?.score??0)?"text-green-400":"text-text-secondary"}`),p(he,e(i).p2?.score??0)}),v(c,b)},R=c=>{var b=qe();v(c,b)};N(F,c=>{e(r).state==="FINISHED"?c(S):c(R,!1)})}var O=s(F,2),P=a(O,!0);t(O),t(M);var B=s(M,2),D=a(B),k=s(D);{var G=c=>{var b=ve();h(w=>p(b,`· ${w??""}`),[()=>ae(e(r).finishedAt)]),v(c,b)},d=c=>{var b=ve();h(w=>p(b,`· ${w??""}`),[()=>ae(e(r).createdAt)]),v(c,b)};N(k,c=>{e(r).finishedAt?c(G):e(r).createdAt&&c(d,1)})}t(B),t(C);var o=s(C,2);{var n=c=>{const b=E(()=>e(r).participants.find(g=>g.teamId===e(r).winnerId));var w=He(),_=a(w);t(w),h(()=>p(_,`🏆 ${e(b)?.team.name??""}`)),v(c,w)};N(o,c=>{e(r).state==="FINISHED"&&e(r).winnerId&&c(n)})}var I=s(o,2),u=a(I,!0);t(I),t(x),h(()=>{K(x,"href",`/matches/${e(r).id??""}`),p(A,e(i).p1?.team.name??"?"),p(P,e(i).p2?.team.name??"?"),p(D,`${e(r).name?`${e(r).name} · `:""}BO${e(y).bestOf??""} `),Y(I,1,`rounded border px-2 py-0.5 text-xs font-500 ${e(m)?.color??"border-border"??""}`),p(u,e(m)?.label??e(r).state)}),v(l,x)},l=>{var r=Ie(),i=W(r);{var y=m=>{var x=ze();v(m,x)};N(i,m=>{e(j).length===0&&m(y)})}v(l,r)}),t(ce),t(le),t(z),h(()=>{p(se,`${$.data.matches.length??""} match${$.data.matches.length!==1?"es":""} `),p(ue,e(q)?"Cancel":"New Match")}),Ce("click",V,()=>X(q,!e(q))),v(pe,z),we()}Ne(["click"]);export{rt as component}; diff --git a/build/client/_app/immutable/nodes/7._nuD3LlN.js.br b/build/client/_app/immutable/nodes/7._nuD3LlN.js.br deleted file mode 100644 index 81f0438..0000000 Binary files a/build/client/_app/immutable/nodes/7._nuD3LlN.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/7._nuD3LlN.js.gz b/build/client/_app/immutable/nodes/7._nuD3LlN.js.gz deleted file mode 100644 index 1c6fbeb..0000000 Binary files a/build/client/_app/immutable/nodes/7._nuD3LlN.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/8.CkbqikZq.js b/build/client/_app/immutable/nodes/8.CkbqikZq.js deleted file mode 100644 index cc8ee6c..0000000 --- a/build/client/_app/immutable/nodes/8.CkbqikZq.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as xe,u as fe,k as t,t as _,a as d,b as me,d as i,l as g,e as r,s,r as e,f as vt,n as et,i as W,j as ct,m as _e}from"../chunks/BxEwC6Zc.js";import{d as ue,s as v,a as be}from"../chunks/DoLu9QLy.js";import{i as f}from"../chunks/BQKoxf2Q.js";import{e as rt,i as at}from"../chunks/BLQQas77.js";import{a as st,e as ot}from"../chunks/BAocuFgQ.js";import{s as Q,r as ge,a as ye}from"../chunks/BnX5ZnVA.js";import{s as F}from"../chunks/BqOsL1Vv.js";import{i as he}from"../chunks/BkIq08el.js";var Ie=i('· ',1),we=i('
'),Le=i(''),ke=i('

'),Ce=i('

'),$e=i(''),Ne=i('

vs

'),Pe=i('
'),Re=i('

'),Ge=i('

—

'),Se=i('

'),Ee=i('

or type !roll in osu! chat

',1),Oe=i('

Waiting for all rolls...

'),De=i('

🎲 Roll Phase

Highest roll picks first

'),Be=i('

'),je=i(''),Ae=i('
?
'),Fe=i('

',1),Ye=i('

'),He=i('✓'),Te=i('
'),Ue=i('
'),Me=i(`

🎯 Pick a Map

's turn to pick

or type !pick NM1 in osu! chat

`),Ve=i('

',1),Ke=i('
Now Playing

Waiting for players to ready up & play in osu!...

'),We=i('
'),ze=i(''),qe=i(''),Je=i('

'),Qe=i(" "),Xe=i('
-
'),Ze=i('Live'),tr=i(' '),er=i('
'),rr=i('

Games Played

'),ar=i('

Creating osu! lobby...

'),sr=i('

'),or=i('

Lobby created. Waiting for players to join...

'),nr=i('

This match was cancelled.

'),dr=i('');function ur(Dt,q){xe(q,!0);let n=g(()=>q.data.match),D=g(()=>t(n).participants[0]),j=g(()=>t(n).participants[1]);const ht=g(()=>t(n).config),pt=g(()=>Math.ceil(t(ht).bestOf/2)),Bt=g(()=>new Set(t(n).games.map(a=>a.mappoolSlotId))),It=g(()=>[...t(n).participants].sort((a,o)=>(a.pickOrder??99)-(o.pickOrder??99))),jt=g(()=>t(n).games.length%t(It).length),At=g(()=>t(It)[t(jt)]),Ft=g(()=>t(n).state==="ROLLING"&&t(n).participants.some(a=>a.rollValue===null)),xt={NM:"bg-blue-500/20 text-blue-400 border-blue-500/30",HD:"bg-yellow-500/20 text-yellow-400 border-yellow-500/30",HR:"bg-red-500/20 text-red-400 border-red-500/30",DT:"bg-purple-500/20 text-purple-400 border-purple-500/30",FM:"bg-green-500/20 text-green-400 border-green-500/30",TB:"bg-pink-500/20 text-pink-400 border-pink-500/30"},Yt=g(()=>()=>{if(!t(n).mappool?.slots)return{};const a={};for(const o of t(n).mappool.slots)a[o.category]||(a[o.category]=[]),a[o.category].push(o);for(const o of Object.keys(a))a[o].sort((l,c)=>l.orderInCategory-c.orderInCategory);return a});let nt=ct(!1),ft=ct(!1),dt=ct(""),it=ct(!1),mt=null;fe(()=>(["CREATED","LOBBY","ROLLING","PICKING","PLAYING"].includes(t(n).state)&&(mt=setInterval(()=>he(),3e3)),()=>{mt&&clearInterval(mt)}));function Ht(a){const o=Math.floor(a/60),l=a%60;return`${o}:${l.toString().padStart(2,"0")}`}function Tt(a){return{CREATED:"Waiting",LOBBY:"In Lobby",ROLLING:"Rolling",PICKING:"Pick Phase",PLAYING:"Playing",FINISHED:"Finished",CANCELLED:"Cancelled"}[a]??a}function Ut(a){return{ROLLING:"border-yellow-500/30",PICKING:"border-blue-500/30",PLAYING:"border-green-500/30",FINISHED:"border-accent/30"}[a]??"border-border"}var _t=dr(),ut=r(_t),bt=s(r(ut),2),gt=r(bt),Mt=r(gt,!0);e(gt);var wt=s(gt,2),Lt=r(wt),Vt=s(Lt);{var Kt=a=>{var o=Ie(),l=s(vt(o)),c=r(l);e(l),_(()=>{Q(l,"href",`https://osu.ppy.sh/mp/${t(n).osuLobbyId??""}`),v(c,`osu! mp/${t(n).osuLobbyId??""}`)}),d(a,o)};f(Vt,a=>{t(n).osuLobbyId&&a(Kt)})}e(wt),e(bt);var lt=s(bt,2),Wt=r(lt,!0);e(lt);var zt=s(lt,2);{var qt=a=>{var o=we(),l=r(o);e(o),st(o,c=>ot?.(c)),be("click",l,c=>{confirm("Cancel this match?")||c.preventDefault()}),d(a,o)},Jt=g(()=>!["FINISHED","CANCELLED"].includes(t(n).state));f(zt,a=>{t(Jt)&&a(qt)})}e(ut);var kt=s(ut,2);{var Qt=a=>{var o=Ne(),l=r(o),c=r(l);{var p=N=>{var G=Le();_(()=>Q(G,"src",t(D).team.avatarUrl)),d(N,G)};f(c,N=>{t(D).team.avatarUrl&&N(p)})}var h=s(c,2),P=r(h),b=r(P,!0);e(P);var R=s(P,2);{var u=N=>{var G=ke(),V=r(G);e(G),_(()=>v(V,`Roll: ${t(D).rollValue??""}${t(D).pickOrder===1?" ★":""}`)),d(N,G)};f(R,N=>{t(D).rollValue!=null&&N(u)})}e(h);var m=s(h,2),y=r(m,!0);e(m),e(l);var L=s(l,4),k=r(L),B=r(k,!0);e(k);var I=s(k,2),$=r(I),O=r($,!0);e($);var T=s($,2);{var M=N=>{var G=Ce(),V=r(G);e(G),_(()=>v(V,`${t(j).pickOrder===1?"★ ":""}Roll: ${t(j).rollValue??""}`)),d(N,G)};f(T,N=>{t(j).rollValue!=null&&N(M)})}e(I);var Y=s(I,2);{var S=N=>{var G=$e();_(()=>Q(G,"src",t(j).team.avatarUrl)),d(N,G)};f(Y,N=>{t(j).team.avatarUrl&&N(S)})}e(L),e(o),_(()=>{F(l,1,`flex flex-1 items-center gap-4 rounded-lg border p-4 ${t(n).winnerId===t(D).teamId?"border-green-500/40 bg-green-500/5":"border-border bg-surface-800"}`),v(b,t(D).team.name),F(m,1,`text-3xl font-800 tabular-nums ${t(D).score>=t(pt)?"text-green-400":"text-text-primary"}`),v(y,t(D).score),F(L,1,`flex flex-1 items-center gap-4 rounded-lg border p-4 ${t(n).winnerId===t(j).teamId?"border-green-500/40 bg-green-500/5":"border-border bg-surface-800"}`),F(k,1,`text-3xl font-800 tabular-nums ${t(j).score>=t(pt)?"text-green-400":"text-text-primary"}`),v(B,t(j).score),v(O,t(j).team.name)}),d(a,o)};f(kt,a=>{t(D)&&t(j)&&a(Qt)})}var Ct=s(kt,2);{var Xt=a=>{var o=Pe(),l=r(o);st(l,(c,p)=>ot?.(c,p),()=>()=>async({result:c,update:p})=>{c.type==="success"&&c.data?.reinvited&&await p()}),e(o),d(a,o)},Zt=g(()=>["LOBBY","ROLLING","PICKING","PLAYING"].includes(t(n).state));f(Ct,a=>{t(Zt)&&a(Xt)})}var $t=s(Ct,2);{var te=a=>{var o=De(),l=r(o),c=s(r(l),4);rt(c,21,()=>t(n).participants,at,(b,R)=>{var u=Se(),m=r(u),y=r(m,!0);e(m);var L=s(m,2);{var k=I=>{var $=Re(),O=r($,!0);e($),_(()=>v(O,t(R).rollValue)),d(I,$)},B=I=>{var $=Ge();d(I,$)};f(L,I=>{t(R).rollValue!=null?I(k):I(B,!1)})}e(u),_(()=>v(y,t(R).team.name)),d(b,u)}),e(c);var p=s(c,2);{var h=b=>{var R=Ee(),u=vt(R),m=r(u),y=r(m,!0);e(m),e(u),st(u,(L,k)=>ot?.(L,k),()=>()=>(W(nt,!0),async({update:L})=>{W(nt,!1),await L()})),et(2),_(()=>{m.disabled=t(nt),v(y,t(nt)?"Rolling...":"🎲 Roll!")}),d(b,R)},P=b=>{var R=Oe();d(b,R)};f(p,b=>{t(Ft)?b(h):b(P,!1)})}e(l),e(o),d(a,o)};f($t,a=>{t(n).state==="ROLLING"&&a(te)})}var Nt=s($t,2);{var ee=a=>{var o=Me(),l=r(o),c=r(l),p=s(r(c),2),h=r(p),P=r(h,!0);e(h),et(),e(p),et(2),e(c);var b=s(c,2);{var R=m=>{var y=Be(),L=r(y,!0);e(y),_(()=>v(L,t(dt))),d(m,y)};f(b,m=>{t(dt)&&m(R)})}var u=s(b,2);rt(u,21,()=>Object.entries(t(Yt)()),at,(m,y)=>{var L=g(()=>_e(t(y),2));let k=()=>t(L)[0],B=()=>t(L)[1];var I=Ue(),$=r(I),O=r($,!0);e($);var T=s($,2);rt(T,21,B,at,(M,Y)=>{const S=g(()=>q.data.beatmapCache[t(Y).beatmapId]),N=g(()=>t(Bt).has(t(Y).id));var G=Te(),V=r(G);ge(V);var J=s(V,2),x=r(J);{var C=w=>{var E=je();_(()=>Q(E,"src",t(S).listCoverUrl)),d(w,E)},A=w=>{var E=Ae();d(w,E)};f(x,w=>{t(S)?.listCoverUrl?w(C):w(A,!1)})}var U=s(x,2),K=r(U);{var yt=w=>{var E=Fe(),tt=vt(E),ve=r(tt);e(tt);var Ot=s(tt,2),ce=r(Ot);e(Ot),_(pe=>{v(ve,`${t(S).artist??""} - ${t(S).title??""}`),v(ce,`[${t(S).version??""}] · ★${pe??""} · ${t(S).bpm??""}bpm`)},[()=>t(S).starRating.toFixed(1)]),d(w,E)},X=w=>{var E=Ye(),tt=r(E);e(E),_(()=>v(tt,`#${t(Y).beatmapId??""}`)),d(w,E)};f(K,w=>{t(S)?w(yt):w(X,!1)})}e(U);var Z=s(U,2),H=r(Z);e(Z);var z=s(Z,2);{var le=w=>{var E=He();d(w,E)};f(z,w=>{t(N)&&w(le)})}e(J),e(G),st(G,(w,E)=>ot?.(w,E),()=>()=>(W(ft,!0),W(dt,""),async({result:w,update:E})=>{W(ft,!1),w.type==="failure"||w.type==="success"&&w.data?.error?W(dt,w.data?.error??"Pick failed",!0):await E()})),_(()=>{ye(V,t(Y).id),J.disabled=t(N)||t(ft),F(J,1,`flex w-full items-center gap-3 rounded-lg border p-2 text-left transition-all ${t(N)?"border-border/50 bg-surface-900 opacity-30 cursor-not-allowed":"border-border bg-surface-700 hover:border-accent hover:bg-surface-600 cursor-pointer"}`),v(H,`${k()??""}${t(Y).orderInCategory??""}`)}),d(M,G)}),e(T),e(I),_(()=>{F($,1,`mb-2 inline-block rounded border px-2 py-0.5 text-xs font-600 ${xt[k()]??"border-border"??""}`),v(O,k())}),d(m,I)}),e(u),e(l),e(o),_(()=>v(P,t(At)?.team.name)),d(a,o)};f(Nt,a=>{t(n).state==="PICKING"&&a(ee)})}var Pt=s(Nt,2);{var re=a=>{const o=g(()=>t(n).games[t(n).games.length-1]),l=g(()=>t(o)?q.data.beatmapCache[t(o).slot?.beatmapId]:null);var c=Ke(),p=s(r(c),2);{var h=u=>{var m=Ve(),y=vt(m),L=r(y),k=s(L),B=r(k);e(k),e(y);var I=s(y,2),$=r(I);e(I),_((O,T)=>{v(L,`${t(l).artist??""} - ${t(l).title??""} `),v(B,`[${t(l).version??""}]`),v($,`★${O??""} · ${t(l).bpm??""}bpm · ${T??""}`)},[()=>t(l).starRating.toFixed(1),()=>Ht(t(l).totalLength)]),d(u,m)};f(p,u=>{t(l)&&u(h)})}var P=s(p,4),b=r(P),R=r(b,!0);e(b),e(P),st(P,(u,m)=>ot?.(u,m),()=>()=>(W(it,!0),async({update:u})=>{W(it,!1),await u()})),e(c),_(()=>{b.disabled=t(it),v(R,t(it)?"Starting...":"Force Start (skip ready)")}),d(a,c)};f(Pt,a=>{t(n).state==="PLAYING"&&a(re)})}var Rt=s(Pt,2);{var ae=a=>{const o=g(()=>t(n).participants.find(m=>m.teamId===t(n).winnerId));var l=ze(),c=r(l),p=s(r(c),2),h=r(p),P=r(h,!0);e(h),et(),e(p);var b=s(p,2),R=r(b);e(b);var u=s(b,2);rt(u,21,()=>t(n).games,at,(m,y)=>{const L=g(()=>q.data.beatmapCache[t(y).slot?.beatmapId]),k=g(()=>t(n).participants.find(S=>S.id===t(y).winnerParticipantId));var B=We(),I=r(B),$=r(I);e(I);var O=s(I,2),T=r(O,!0);e(O);var M=s(O,2),Y=r(M,!0);e(M),e(B),_(S=>{F(I,1,`font-600 ${S??""}`),v($,`${t(y).slot?.category??""}${t(y).slot?.orderInCategory??""}`),v(T,t(L)?`${t(L).artist} - ${t(L).title}`:`#${t(y).slot?.beatmapId}`),F(M,1,`font-600 ${t(k)?.id===t(D)?.id?"text-blue-400":"text-red-400"}`),v(Y,t(k)?.team.name)},[()=>xt[t(y).slot?.category]?.split(" ")[1]??"text-text-secondary"]),d(m,B)}),e(u),et(2),e(c),e(l),_(()=>{v(P,t(o)?.team.name),v(R,`${t(D)?.score??""} – ${t(j)?.score??""}`)}),d(a,l)};f(Rt,a=>{t(n).state==="FINISHED"&&a(ae)})}var Gt=s(Rt,2);{var se=a=>{var o=rr(),l=s(r(o),2);rt(l,21,()=>t(n).games,at,(c,p)=>{const h=g(()=>q.data.beatmapCache[t(p).slot?.beatmapId]),P=g(()=>t(n).participants.find(x=>x.id===t(p).pickedByParticipantId)?.team),b=g(()=>t(n).participants.find(x=>x.id===t(p).winnerParticipantId)?.team);var R=er(),u=r(R),m=r(u,!0);e(u);var y=s(u,2);{var L=x=>{var C=qe();_(()=>Q(C,"src",t(h).listCoverUrl)),d(x,C)};f(y,x=>{t(h)?.listCoverUrl&&x(L)})}var k=s(y,2),B=r(k);{var I=x=>{var C=Je(),A=r(C),U=s(A),K=r(U);e(U),e(C),_(()=>{v(A,`${t(h).artist??""} - ${t(h).title??""} `),v(K,`[${t(h).version??""}]`)}),d(x,C)};f(B,x=>{t(h)&&x(I)})}var $=s(B,2),O=r($),T=r(O);e(O);var M=s(O,2);{var Y=x=>{var C=Qe(),A=r(C);e(C),_(()=>v(A,`Picked by ${t(P).name??""}`)),d(x,C)};f(M,x=>{t(P)&&x(Y)})}e($),e(k);var S=s(k,2);{var N=x=>{const C=g(()=>t(p).scores.filter(H=>H.player?.participantId===t(D).id).reduce((H,z)=>H+z.score,0)),A=g(()=>t(p).scores.filter(H=>H.player?.participantId===t(j).id).reduce((H,z)=>H+z.score,0));var U=Xe(),K=r(U),yt=r(K,!0);e(K);var X=s(K,4),Z=r(X,!0);e(X),e(U),_((H,z)=>{F(K,1,t(C)>t(A)?"font-700 text-green-400":"text-text-secondary"),v(yt,H),F(X,1,t(A)>t(C)?"font-700 text-green-400":"text-text-secondary"),v(Z,z)},[()=>t(C).toLocaleString(),()=>t(A).toLocaleString()]),d(x,U)},G=x=>{var C=Ze();d(x,C)};f(S,x=>{t(p).state==="FINISHED"&&t(D)&&t(j)?x(N):t(p).state==="PLAYING"&&x(G,1)})}var V=s(S,2);{var J=x=>{var C=tr(),A=r(C);e(C),_(()=>v(A,`✓ ${t(b).name??""}`)),d(x,C)};f(V,x=>{t(b)&&x(J)})}e(R),_(()=>{v(m,t(p).gameNumber),F(O,1,`rounded border px-1.5 py-0.5 ${xt[t(p).slot?.category]??"border-border"??""}`),v(T,`${t(p).slot?.category??""}${t(p).slot?.orderInCategory??""}`)}),d(c,R)}),e(l),e(o),d(a,o)};f(Gt,a=>{t(n).games.length>0&&a(se)})}var St=s(Gt,2);{var oe=a=>{var o=ar();d(a,o)};f(St,a=>{t(n).state==="CREATED"&&a(oe)})}var Et=s(St,2);{var ne=a=>{var o=or(),l=s(r(o),2);{var c=p=>{var h=sr(),P=r(h),b=r(P);e(P),e(h),_(()=>{Q(P,"href",`https://osu.ppy.sh/mp/${t(n).osuLobbyId??""}`),v(b,`osu! mp/${t(n).osuLobbyId??""}`)}),d(p,h)};f(l,p=>{t(n).osuLobbyId&&p(c)})}e(o),d(a,o)};f(Et,a=>{t(n).state==="LOBBY"&&a(ne)})}var de=s(Et,2);{var ie=a=>{var o=nr();d(a,o)};f(de,a=>{t(n).state==="CANCELLED"&&a(ie)})}e(_t),_((a,o)=>{v(Mt,t(n).name||"Match"),v(Lt,`Best of ${t(ht).bestOf??""} · First to ${t(pt)??""} `),F(lt,1,`rounded border px-2.5 py-1 text-xs font-600 ${a??""}`),v(Wt,o)},[()=>Ut(t(n).state),()=>Tt(t(n).state)]),d(Dt,_t),me()}ue(["click"]);export{ur as component}; diff --git a/build/client/_app/immutable/nodes/8.CkbqikZq.js.br b/build/client/_app/immutable/nodes/8.CkbqikZq.js.br deleted file mode 100644 index e8eb1d5..0000000 Binary files a/build/client/_app/immutable/nodes/8.CkbqikZq.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/8.CkbqikZq.js.gz b/build/client/_app/immutable/nodes/8.CkbqikZq.js.gz deleted file mode 100644 index 60330ec..0000000 Binary files a/build/client/_app/immutable/nodes/8.CkbqikZq.js.gz and /dev/null differ diff --git a/build/client/_app/immutable/nodes/9.BTBc_Eli.js b/build/client/_app/immutable/nodes/9.BTBc_Eli.js deleted file mode 100644 index 07cdc33..0000000 --- a/build/client/_app/immutable/nodes/9.BTBc_Eli.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{p as lt,t as l,a as o,b as vt,d as n,s as d,e as t,r as e,n as v,k as c,l as D,g as G}from"../chunks/BxEwC6Zc.js";import{s as i}from"../chunks/DoLu9QLy.js";import{i as k}from"../chunks/BQKoxf2Q.js";import{a as ct,e as xt}from"../chunks/BAocuFgQ.js";import{s as H}from"../chunks/BnX5ZnVA.js";import{s as ft}from"../chunks/BqOsL1Vv.js";var mt=n(''),pt=n('
'),ut=n('Linked'),gt=n('Connect'),_t=n('

Settings

Your profile and account settings

Connected Accounts

🎮

osu!

Ranked Stats

ELO Rating

Wins

Losses

Win Rate

Account

');function At(I,r){lt(r,!0);const L={player:{label:"Player",color:"bg-surface-600 text-text-secondary"},referee:{label:"Referee",color:"bg-yellow-500/20 text-yellow-400"},admin:{label:"Admin",color:"bg-red-500/20 text-red-400"}},R=D(()=>L[r.data.profile.role]??L.player),A=D(()=>r.data.rating.wins+r.data.rating.losses>0?(r.data.rating.wins/(r.data.rating.wins+r.data.rating.losses)*100).toFixed(1):"—");var x=_t(),f=d(t(x),4),m=t(f),C=t(m);{var J=a=>{var s=mt();l(()=>{H(s,"src",r.data.profile.image),H(s,"alt",r.data.profile.name)}),o(a,s)},K=a=>{var s=pt(),ot=t(s,!0);e(s),l(nt=>i(ot,nt),[()=>r.data.profile.name.charAt(0).toUpperCase()]),o(a,s)};k(C,a=>{r.data.profile.image?a(J):a(K,!1)})}var O=d(C,2),p=t(O),u=t(p),M=t(u,!0);e(u);var g=d(u,2),Q=t(g,!0);e(g),e(p);var S=d(p,2),T=t(S,!0);e(S),e(O),e(m);var W=d(m,2),j=d(t(W),2),_=d(t(j),2),B=d(t(_),2),V=t(B);{var X=a=>{var s=G();l(()=>i(s,`Connected as ${r.data.profile.name??""}`)),o(a,s)},Z=a=>{var s=G("Not connected");o(a,s)};k(V,a=>{r.data.hasOsuLinked?a(X):a(Z,!1)})}e(B),e(_);var $=d(_,2);{var tt=a=>{var s=ut();o(a,s)},et=a=>{var s=gt();o(a,s)};k($,a=>{r.data.hasOsuLinked?a(tt):a(et,!1)})}e(j),e(W),e(f);var b=d(f,2),E=d(t(b),2),h=t(E),F=t(h),at=t(F,!0);e(F),v(2),e(h);var y=d(h,2),N=t(y),rt=t(N,!0);e(N),v(2),e(y);var w=d(y,2),P=t(w),st=t(P,!0);e(P),v(2),e(w);var U=d(w,2),Y=t(U),dt=t(Y);e(Y),v(2),e(U),e(E),e(b);var q=d(b,2),z=d(t(q),2),it=t(z);ct(it,a=>xt?.(a)),e(z),e(q),e(x),l(()=>{i(M,r.data.profile.name),ft(g,1,`rounded px-2 py-0.5 text-xs font-600 ${c(R).color??""}`),i(Q,c(R).label),i(T,r.data.profile.email),i(at,r.data.rating.elo),i(rt,r.data.rating.wins),i(st,r.data.rating.losses),i(dt,`${c(A)??""}${c(A)!=="—"?"%":""}`)}),o(I,x),vt()}export{At as component}; diff --git a/build/client/_app/immutable/nodes/9.BTBc_Eli.js.br b/build/client/_app/immutable/nodes/9.BTBc_Eli.js.br deleted file mode 100644 index 541bad9..0000000 Binary files a/build/client/_app/immutable/nodes/9.BTBc_Eli.js.br and /dev/null differ diff --git a/build/client/_app/immutable/nodes/9.BTBc_Eli.js.gz b/build/client/_app/immutable/nodes/9.BTBc_Eli.js.gz deleted file mode 100644 index dcf53e2..0000000 Binary files a/build/client/_app/immutable/nodes/9.BTBc_Eli.js.gz and /dev/null differ diff --git a/build/client/_app/version.json b/build/client/_app/version.json deleted file mode 100644 index 0e8f73c..0000000 --- a/build/client/_app/version.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"1772254297287"} \ No newline at end of file diff --git a/build/client/_app/version.json.br b/build/client/_app/version.json.br deleted file mode 100644 index 7520bf0..0000000 Binary files a/build/client/_app/version.json.br and /dev/null differ diff --git a/build/client/_app/version.json.gz b/build/client/_app/version.json.gz deleted file mode 100644 index a57172c..0000000 Binary files a/build/client/_app/version.json.gz and /dev/null differ diff --git a/build/client/android-chrome-192x192.png b/build/client/android-chrome-192x192.png deleted file mode 100644 index e15a9ab..0000000 Binary files a/build/client/android-chrome-192x192.png and /dev/null differ diff --git a/build/client/android-chrome-512x512.png b/build/client/android-chrome-512x512.png deleted file mode 100644 index 58bc4cb..0000000 Binary files a/build/client/android-chrome-512x512.png and /dev/null differ diff --git a/build/client/apple-touch-icon.png b/build/client/apple-touch-icon.png deleted file mode 100644 index fb8b64b..0000000 Binary files a/build/client/apple-touch-icon.png and /dev/null differ diff --git a/build/client/favicon-16x16.png b/build/client/favicon-16x16.png deleted file mode 100644 index 6700c23..0000000 Binary files a/build/client/favicon-16x16.png and /dev/null differ diff --git a/build/client/favicon-32x32.png b/build/client/favicon-32x32.png deleted file mode 100644 index 7837088..0000000 Binary files a/build/client/favicon-32x32.png and /dev/null differ diff --git a/build/client/favicon.ico b/build/client/favicon.ico deleted file mode 100644 index 2c9e68f..0000000 Binary files a/build/client/favicon.ico and /dev/null differ diff --git a/build/client/robots.txt b/build/client/robots.txt deleted file mode 100644 index b6dd667..0000000 --- a/build/client/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# allow crawling everything by default -User-agent: * -Disallow: diff --git a/build/client/robots.txt.br b/build/client/robots.txt.br deleted file mode 100644 index 3e0dc5a..0000000 Binary files a/build/client/robots.txt.br and /dev/null differ diff --git a/build/client/robots.txt.gz b/build/client/robots.txt.gz deleted file mode 100644 index 9b5819a..0000000 Binary files a/build/client/robots.txt.gz and /dev/null differ diff --git a/build/client/site.webmanifest b/build/client/site.webmanifest deleted file mode 100644 index 45dc8a2..0000000 --- a/build/client/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/build/env.js b/build/env.js deleted file mode 100644 index f69f5c0..0000000 --- a/build/env.js +++ /dev/null @@ -1,94 +0,0 @@ -import process from 'node:process'; - -/* global "" */ - -const expected = new Set([ - 'SOCKET_PATH', - 'HOST', - 'PORT', - 'ORIGIN', - 'XFF_DEPTH', - 'ADDRESS_HEADER', - 'PROTOCOL_HEADER', - 'HOST_HEADER', - 'PORT_HEADER', - 'BODY_SIZE_LIMIT', - 'SHUTDOWN_TIMEOUT', - 'IDLE_TIMEOUT', - 'KEEP_ALIVE_TIMEOUT', - 'HEADERS_TIMEOUT' -]); - -const expected_unprefixed = new Set(['LISTEN_PID', 'LISTEN_FDS']); - -if ("") { - for (const name in process.env) { - if (name.startsWith("")) { - const unprefixed = name.slice("".length); - if (!expected.has(unprefixed)) { - throw new Error( - `You should change envPrefix (${""}) to avoid conflicts with existing environment variables — unexpectedly saw ${name}` - ); - } - } - } -} - -/** - * @param {string} name - * @param {any} fallback - */ -function env(name, fallback) { - const prefix = expected_unprefixed.has(name) ? '' : ""; - const prefixed = prefix + name; - return prefixed in process.env ? process.env[prefixed] : fallback; -} - -const integer_regexp = /^\d+$/; - -/** - * Throw a consistently-structured parsing error for environment variables. - * @param {string} name - * @param {any} value - * @param {string} description - * @returns {never} - */ -function parsing_error(name, value, description) { - throw new Error( - `Invalid value for environment variable ${name}: ${JSON.stringify(value)} (${description})` - ); -} - -/** - * Check the environment for a timeout value (non-negative integer) in seconds. - * @param {string} name - * @param {number} [fallback] - * @returns {number | undefined} - */ -function timeout_env(name, fallback) { - const raw = env(name, fallback); - if (!raw) { - return fallback; - } - - if (!integer_regexp.test(raw)) { - parsing_error(name, raw, 'should be a non-negative integer'); - } - - const parsed = Number.parseInt(raw, 10); - - // We don't technically need to check `Number.isNaN` because the value already passed the regexp test. - // However, just in case there's some new codepath introduced somewhere down the line, it's probably good - // to stick this in here. - if (Number.isNaN(parsed)) { - parsing_error(name, raw, 'should be a non-negative integer'); - } - - if (parsed < 0) { - parsing_error(name, raw, 'should be a non-negative integer'); - } - - return parsed; -} - -export { env, timeout_env }; diff --git a/build/handler.js b/build/handler.js deleted file mode 100644 index 013c685..0000000 --- a/build/handler.js +++ /dev/null @@ -1,1494 +0,0 @@ -import './shims.js'; -import * as fs from 'node:fs'; -import fs__default, { readdirSync, statSync, createReadStream } from 'node:fs'; -import path, { resolve, join, sep, normalize } from 'node:path'; -import process from 'node:process'; -import * as qs from 'node:querystring'; -import { fileURLToPath } from 'node:url'; -import { Readable } from 'node:stream'; -import { Server } from './server/index.js'; -import { manifest, prerendered, base } from './server/manifest.js'; -import { env } from './env.js'; - -function totalist(dir, callback, pre='') { - dir = resolve('.', dir); - let arr = readdirSync(dir); - let i=0, abs, stats; - for (; i < arr.length; i++) { - abs = join(dir, arr[i]); - stats = statSync(abs); - stats.isDirectory() - ? totalist(abs, callback, join(pre, arr[i])) - : callback(join(pre, arr[i]), abs, stats); - } -} - -/** - * @typedef ParsedURL - * @type {import('.').ParsedURL} - */ - -/** - * @typedef Request - * @property {string} url - * @property {ParsedURL} _parsedUrl - */ - -/** - * @param {Request} req - * @returns {ParsedURL|void} - */ -function parse(req) { - let raw = req.url; - if (raw == null) return; - - let prev = req._parsedUrl; - if (prev && prev.raw === raw) return prev; - - let pathname=raw, search='', query; - - if (raw.length > 1) { - let idx = raw.indexOf('?', 1); - - if (idx !== -1) { - search = raw.substring(idx); - pathname = raw.substring(0, idx); - if (search.length > 1) { - query = qs.parse(search.substring(1)); - } - } - } - - return req._parsedUrl = { pathname, search, query, raw }; -} - -const mimes = { - "3g2": "video/3gpp2", - "3gp": "video/3gpp", - "3gpp": "video/3gpp", - "3mf": "model/3mf", - "aac": "audio/aac", - "ac": "application/pkix-attr-cert", - "adp": "audio/adpcm", - "adts": "audio/aac", - "ai": "application/postscript", - "aml": "application/automationml-aml+xml", - "amlx": "application/automationml-amlx+zip", - "amr": "audio/amr", - "apng": "image/apng", - "appcache": "text/cache-manifest", - "appinstaller": "application/appinstaller", - "appx": "application/appx", - "appxbundle": "application/appxbundle", - "asc": "application/pgp-keys", - "atom": "application/atom+xml", - "atomcat": "application/atomcat+xml", - "atomdeleted": "application/atomdeleted+xml", - "atomsvc": "application/atomsvc+xml", - "au": "audio/basic", - "avci": "image/avci", - "avcs": "image/avcs", - "avif": "image/avif", - "aw": "application/applixware", - "bdoc": "application/bdoc", - "bin": "application/octet-stream", - "bmp": "image/bmp", - "bpk": "application/octet-stream", - "btf": "image/prs.btif", - "btif": "image/prs.btif", - "buffer": "application/octet-stream", - "ccxml": "application/ccxml+xml", - "cdfx": "application/cdfx+xml", - "cdmia": "application/cdmi-capability", - "cdmic": "application/cdmi-container", - "cdmid": "application/cdmi-domain", - "cdmio": "application/cdmi-object", - "cdmiq": "application/cdmi-queue", - "cer": "application/pkix-cert", - "cgm": "image/cgm", - "cjs": "application/node", - "class": "application/java-vm", - "coffee": "text/coffeescript", - "conf": "text/plain", - "cpl": "application/cpl+xml", - "cpt": "application/mac-compactpro", - "crl": "application/pkix-crl", - "css": "text/css", - "csv": "text/csv", - "cu": "application/cu-seeme", - "cwl": "application/cwl", - "cww": "application/prs.cww", - "davmount": "application/davmount+xml", - "dbk": "application/docbook+xml", - "deb": "application/octet-stream", - "def": "text/plain", - "deploy": "application/octet-stream", - "dib": "image/bmp", - "disposition-notification": "message/disposition-notification", - "dist": "application/octet-stream", - "distz": "application/octet-stream", - "dll": "application/octet-stream", - "dmg": "application/octet-stream", - "dms": "application/octet-stream", - "doc": "application/msword", - "dot": "application/msword", - "dpx": "image/dpx", - "drle": "image/dicom-rle", - "dsc": "text/prs.lines.tag", - "dssc": "application/dssc+der", - "dtd": "application/xml-dtd", - "dump": "application/octet-stream", - "dwd": "application/atsc-dwd+xml", - "ear": "application/java-archive", - "ecma": "application/ecmascript", - "elc": "application/octet-stream", - "emf": "image/emf", - "eml": "message/rfc822", - "emma": "application/emma+xml", - "emotionml": "application/emotionml+xml", - "eps": "application/postscript", - "epub": "application/epub+zip", - "exe": "application/octet-stream", - "exi": "application/exi", - "exp": "application/express", - "exr": "image/aces", - "ez": "application/andrew-inset", - "fdf": "application/fdf", - "fdt": "application/fdt+xml", - "fits": "image/fits", - "g3": "image/g3fax", - "gbr": "application/rpki-ghostbusters", - "geojson": "application/geo+json", - "gif": "image/gif", - "glb": "model/gltf-binary", - "gltf": "model/gltf+json", - "gml": "application/gml+xml", - "gpx": "application/gpx+xml", - "gram": "application/srgs", - "grxml": "application/srgs+xml", - "gxf": "application/gxf", - "gz": "application/gzip", - "h261": "video/h261", - "h263": "video/h263", - "h264": "video/h264", - "heic": "image/heic", - "heics": "image/heic-sequence", - "heif": "image/heif", - "heifs": "image/heif-sequence", - "hej2": "image/hej2k", - "held": "application/atsc-held+xml", - "hjson": "application/hjson", - "hlp": "application/winhlp", - "hqx": "application/mac-binhex40", - "hsj2": "image/hsj2", - "htm": "text/html", - "html": "text/html", - "ics": "text/calendar", - "ief": "image/ief", - "ifb": "text/calendar", - "iges": "model/iges", - "igs": "model/iges", - "img": "application/octet-stream", - "in": "text/plain", - "ini": "text/plain", - "ink": "application/inkml+xml", - "inkml": "application/inkml+xml", - "ipfix": "application/ipfix", - "iso": "application/octet-stream", - "its": "application/its+xml", - "jade": "text/jade", - "jar": "application/java-archive", - "jhc": "image/jphc", - "jls": "image/jls", - "jp2": "image/jp2", - "jpe": "image/jpeg", - "jpeg": "image/jpeg", - "jpf": "image/jpx", - "jpg": "image/jpeg", - "jpg2": "image/jp2", - "jpgm": "image/jpm", - "jpgv": "video/jpeg", - "jph": "image/jph", - "jpm": "image/jpm", - "jpx": "image/jpx", - "js": "text/javascript", - "json": "application/json", - "json5": "application/json5", - "jsonld": "application/ld+json", - "jsonml": "application/jsonml+json", - "jsx": "text/jsx", - "jt": "model/jt", - "jxr": "image/jxr", - "jxra": "image/jxra", - "jxrs": "image/jxrs", - "jxs": "image/jxs", - "jxsc": "image/jxsc", - "jxsi": "image/jxsi", - "jxss": "image/jxss", - "kar": "audio/midi", - "ktx": "image/ktx", - "ktx2": "image/ktx2", - "less": "text/less", - "lgr": "application/lgr+xml", - "list": "text/plain", - "litcoffee": "text/coffeescript", - "log": "text/plain", - "lostxml": "application/lost+xml", - "lrf": "application/octet-stream", - "m1v": "video/mpeg", - "m21": "application/mp21", - "m2a": "audio/mpeg", - "m2v": "video/mpeg", - "m3a": "audio/mpeg", - "m4a": "audio/mp4", - "m4p": "application/mp4", - "m4s": "video/iso.segment", - "ma": "application/mathematica", - "mads": "application/mads+xml", - "maei": "application/mmt-aei+xml", - "man": "text/troff", - "manifest": "text/cache-manifest", - "map": "application/json", - "mar": "application/octet-stream", - "markdown": "text/markdown", - "mathml": "application/mathml+xml", - "mb": "application/mathematica", - "mbox": "application/mbox", - "md": "text/markdown", - "mdx": "text/mdx", - "me": "text/troff", - "mesh": "model/mesh", - "meta4": "application/metalink4+xml", - "metalink": "application/metalink+xml", - "mets": "application/mets+xml", - "mft": "application/rpki-manifest", - "mid": "audio/midi", - "midi": "audio/midi", - "mime": "message/rfc822", - "mj2": "video/mj2", - "mjp2": "video/mj2", - "mjs": "text/javascript", - "mml": "text/mathml", - "mods": "application/mods+xml", - "mov": "video/quicktime", - "mp2": "audio/mpeg", - "mp21": "application/mp21", - "mp2a": "audio/mpeg", - "mp3": "audio/mpeg", - "mp4": "video/mp4", - "mp4a": "audio/mp4", - "mp4s": "application/mp4", - "mp4v": "video/mp4", - "mpd": "application/dash+xml", - "mpe": "video/mpeg", - "mpeg": "video/mpeg", - "mpf": "application/media-policy-dataset+xml", - "mpg": "video/mpeg", - "mpg4": "video/mp4", - "mpga": "audio/mpeg", - "mpp": "application/dash-patch+xml", - "mrc": "application/marc", - "mrcx": "application/marcxml+xml", - "ms": "text/troff", - "mscml": "application/mediaservercontrol+xml", - "msh": "model/mesh", - "msi": "application/octet-stream", - "msix": "application/msix", - "msixbundle": "application/msixbundle", - "msm": "application/octet-stream", - "msp": "application/octet-stream", - "mtl": "model/mtl", - "musd": "application/mmt-usd+xml", - "mxf": "application/mxf", - "mxmf": "audio/mobile-xmf", - "mxml": "application/xv+xml", - "n3": "text/n3", - "nb": "application/mathematica", - "nq": "application/n-quads", - "nt": "application/n-triples", - "obj": "model/obj", - "oda": "application/oda", - "oga": "audio/ogg", - "ogg": "audio/ogg", - "ogv": "video/ogg", - "ogx": "application/ogg", - "omdoc": "application/omdoc+xml", - "onepkg": "application/onenote", - "onetmp": "application/onenote", - "onetoc": "application/onenote", - "onetoc2": "application/onenote", - "opf": "application/oebps-package+xml", - "opus": "audio/ogg", - "otf": "font/otf", - "owl": "application/rdf+xml", - "oxps": "application/oxps", - "p10": "application/pkcs10", - "p7c": "application/pkcs7-mime", - "p7m": "application/pkcs7-mime", - "p7s": "application/pkcs7-signature", - "p8": "application/pkcs8", - "pdf": "application/pdf", - "pfr": "application/font-tdpfr", - "pgp": "application/pgp-encrypted", - "pkg": "application/octet-stream", - "pki": "application/pkixcmp", - "pkipath": "application/pkix-pkipath", - "pls": "application/pls+xml", - "png": "image/png", - "prc": "model/prc", - "prf": "application/pics-rules", - "provx": "application/provenance+xml", - "ps": "application/postscript", - "pskcxml": "application/pskc+xml", - "pti": "image/prs.pti", - "qt": "video/quicktime", - "raml": "application/raml+yaml", - "rapd": "application/route-apd+xml", - "rdf": "application/rdf+xml", - "relo": "application/p2p-overlay+xml", - "rif": "application/reginfo+xml", - "rl": "application/resource-lists+xml", - "rld": "application/resource-lists-diff+xml", - "rmi": "audio/midi", - "rnc": "application/relax-ng-compact-syntax", - "rng": "application/xml", - "roa": "application/rpki-roa", - "roff": "text/troff", - "rq": "application/sparql-query", - "rs": "application/rls-services+xml", - "rsat": "application/atsc-rsat+xml", - "rsd": "application/rsd+xml", - "rsheet": "application/urc-ressheet+xml", - "rss": "application/rss+xml", - "rtf": "text/rtf", - "rtx": "text/richtext", - "rusd": "application/route-usd+xml", - "s3m": "audio/s3m", - "sbml": "application/sbml+xml", - "scq": "application/scvp-cv-request", - "scs": "application/scvp-cv-response", - "sdp": "application/sdp", - "senmlx": "application/senml+xml", - "sensmlx": "application/sensml+xml", - "ser": "application/java-serialized-object", - "setpay": "application/set-payment-initiation", - "setreg": "application/set-registration-initiation", - "sgi": "image/sgi", - "sgm": "text/sgml", - "sgml": "text/sgml", - "shex": "text/shex", - "shf": "application/shf+xml", - "shtml": "text/html", - "sieve": "application/sieve", - "sig": "application/pgp-signature", - "sil": "audio/silk", - "silo": "model/mesh", - "siv": "application/sieve", - "slim": "text/slim", - "slm": "text/slim", - "sls": "application/route-s-tsid+xml", - "smi": "application/smil+xml", - "smil": "application/smil+xml", - "snd": "audio/basic", - "so": "application/octet-stream", - "spdx": "text/spdx", - "spp": "application/scvp-vp-response", - "spq": "application/scvp-vp-request", - "spx": "audio/ogg", - "sql": "application/sql", - "sru": "application/sru+xml", - "srx": "application/sparql-results+xml", - "ssdl": "application/ssdl+xml", - "ssml": "application/ssml+xml", - "stk": "application/hyperstudio", - "stl": "model/stl", - "stpx": "model/step+xml", - "stpxz": "model/step-xml+zip", - "stpz": "model/step+zip", - "styl": "text/stylus", - "stylus": "text/stylus", - "svg": "image/svg+xml", - "svgz": "image/svg+xml", - "swidtag": "application/swid+xml", - "t": "text/troff", - "t38": "image/t38", - "td": "application/urc-targetdesc+xml", - "tei": "application/tei+xml", - "teicorpus": "application/tei+xml", - "text": "text/plain", - "tfi": "application/thraud+xml", - "tfx": "image/tiff-fx", - "tif": "image/tiff", - "tiff": "image/tiff", - "toml": "application/toml", - "tr": "text/troff", - "trig": "application/trig", - "ts": "video/mp2t", - "tsd": "application/timestamped-data", - "tsv": "text/tab-separated-values", - "ttc": "font/collection", - "ttf": "font/ttf", - "ttl": "text/turtle", - "ttml": "application/ttml+xml", - "txt": "text/plain", - "u3d": "model/u3d", - "u8dsn": "message/global-delivery-status", - "u8hdr": "message/global-headers", - "u8mdn": "message/global-disposition-notification", - "u8msg": "message/global", - "ubj": "application/ubjson", - "uri": "text/uri-list", - "uris": "text/uri-list", - "urls": "text/uri-list", - "vcard": "text/vcard", - "vrml": "model/vrml", - "vtt": "text/vtt", - "vxml": "application/voicexml+xml", - "war": "application/java-archive", - "wasm": "application/wasm", - "wav": "audio/wav", - "weba": "audio/webm", - "webm": "video/webm", - "webmanifest": "application/manifest+json", - "webp": "image/webp", - "wgsl": "text/wgsl", - "wgt": "application/widget", - "wif": "application/watcherinfo+xml", - "wmf": "image/wmf", - "woff": "font/woff", - "woff2": "font/woff2", - "wrl": "model/vrml", - "wsdl": "application/wsdl+xml", - "wspolicy": "application/wspolicy+xml", - "x3d": "model/x3d+xml", - "x3db": "model/x3d+fastinfoset", - "x3dbz": "model/x3d+binary", - "x3dv": "model/x3d-vrml", - "x3dvz": "model/x3d+vrml", - "x3dz": "model/x3d+xml", - "xaml": "application/xaml+xml", - "xav": "application/xcap-att+xml", - "xca": "application/xcap-caps+xml", - "xcs": "application/calendar+xml", - "xdf": "application/xcap-diff+xml", - "xdssc": "application/dssc+xml", - "xel": "application/xcap-el+xml", - "xenc": "application/xenc+xml", - "xer": "application/patch-ops-error+xml", - "xfdf": "application/xfdf", - "xht": "application/xhtml+xml", - "xhtml": "application/xhtml+xml", - "xhvml": "application/xv+xml", - "xlf": "application/xliff+xml", - "xm": "audio/xm", - "xml": "text/xml", - "xns": "application/xcap-ns+xml", - "xop": "application/xop+xml", - "xpl": "application/xproc+xml", - "xsd": "application/xml", - "xsf": "application/prs.xsf+xml", - "xsl": "application/xml", - "xslt": "application/xml", - "xspf": "application/xspf+xml", - "xvm": "application/xv+xml", - "xvml": "application/xv+xml", - "yaml": "text/yaml", - "yang": "application/yang", - "yin": "application/yin+xml", - "yml": "text/yaml", - "zip": "application/zip" -}; - -function lookup(extn) { - let tmp = ('' + extn).trim().toLowerCase(); - let idx = tmp.lastIndexOf('.'); - return mimes[!~idx ? tmp : tmp.substring(++idx)]; -} - -const noop = () => {}; - -function isMatch(uri, arr) { - for (let i=0; i < arr.length; i++) { - if (arr[i].test(uri)) return true; - } -} - -function toAssume(uri, extns) { - let i=0, x, len=uri.length - 1; - if (uri.charCodeAt(len) === 47) { - uri = uri.substring(0, len); - } - - let arr=[], tmp=`${uri}/index`; - for (; i < extns.length; i++) { - x = extns[i] ? `.${extns[i]}` : ''; - if (uri) arr.push(uri + x); - arr.push(tmp + x); - } - - return arr; -} - -function viaCache(cache, uri, extns) { - let i=0, data, arr=toAssume(uri, extns); - for (; i < arr.length; i++) { - if (data = cache[arr[i]]) return data; - } -} - -function viaLocal(dir, isEtag, uri, extns) { - let i=0, arr=toAssume(uri, extns); - let abs, stats, name, headers; - for (; i < arr.length; i++) { - abs = normalize( - join(dir, name=arr[i]) - ); - - if (abs.startsWith(dir) && fs.existsSync(abs)) { - stats = fs.statSync(abs); - if (stats.isDirectory()) continue; - headers = toHeaders(name, stats, isEtag); - headers['Cache-Control'] = isEtag ? 'no-cache' : 'no-store'; - return { abs, stats, headers }; - } - } -} - -function is404(req, res) { - return (res.statusCode=404,res.end()); -} - -function send(req, res, file, stats, headers) { - let code=200, tmp, opts={}; - headers = { ...headers }; - - for (let key in headers) { - tmp = res.getHeader(key); - if (tmp) headers[key] = tmp; - } - - if (tmp = res.getHeader('content-type')) { - headers['Content-Type'] = tmp; - } - - if (req.headers.range) { - code = 206; - let [x, y] = req.headers.range.replace('bytes=', '').split('-'); - let end = opts.end = parseInt(y, 10) || stats.size - 1; - let start = opts.start = parseInt(x, 10) || 0; - - if (end >= stats.size) { - end = stats.size - 1; - } - - if (start >= stats.size) { - res.setHeader('Content-Range', `bytes */${stats.size}`); - res.statusCode = 416; - return res.end(); - } - - headers['Content-Range'] = `bytes ${start}-${end}/${stats.size}`; - headers['Content-Length'] = (end - start + 1); - headers['Accept-Ranges'] = 'bytes'; - } - - res.writeHead(code, headers); - fs.createReadStream(file, opts).pipe(res); -} - -const ENCODING = { - '.br': 'br', - '.gz': 'gzip', -}; - -function toHeaders(name, stats, isEtag) { - let enc = ENCODING[name.slice(-3)]; - - let ctype = lookup(name.slice(0, enc && -3)) || ''; - if (ctype === 'text/html') ctype += ';charset=utf-8'; - - let headers = { - 'Content-Length': stats.size, - 'Content-Type': ctype, - 'Last-Modified': stats.mtime.toUTCString(), - }; - - if (enc) headers['Content-Encoding'] = enc; - if (isEtag) headers['ETag'] = `W/"${stats.size}-${stats.mtime.getTime()}"`; - - return headers; -} - -function sirv (dir, opts={}) { - dir = resolve(dir || '.'); - - let isNotFound = opts.onNoMatch || is404; - let setHeaders = opts.setHeaders || noop; - - let extensions = opts.extensions || ['html', 'htm']; - let gzips = opts.gzip && extensions.map(x => `${x}.gz`).concat('gz'); - let brots = opts.brotli && extensions.map(x => `${x}.br`).concat('br'); - - const FILES = {}; - - let fallback = '/'; - let isEtag = !!opts.etag; - let isSPA = !!opts.single; - if (typeof opts.single === 'string') { - let idx = opts.single.lastIndexOf('.'); - fallback += !!~idx ? opts.single.substring(0, idx) : opts.single; - } - - let ignores = []; - if (opts.ignores !== false) { - ignores.push(/[/]([A-Za-z\s\d~$._-]+\.\w+){1,}$/); // any extn - if (opts.dotfiles) ignores.push(/\/\.\w/); - else ignores.push(/\/\.well-known/); - [].concat(opts.ignores || []).forEach(x => { - ignores.push(new RegExp(x, 'i')); - }); - } - - let cc = opts.maxAge != null && `public,max-age=${opts.maxAge}`; - if (cc && opts.immutable) cc += ',immutable'; - else if (cc && opts.maxAge === 0) cc += ',must-revalidate'; - - if (!opts.dev) { - totalist(dir, (name, abs, stats) => { - if (/\.well-known[\\+\/]/.test(name)) ; // keep - else if (!opts.dotfiles && /(^\.|[\\+|\/+]\.)/.test(name)) return; - - let headers = toHeaders(name, stats, isEtag); - if (cc) headers['Cache-Control'] = cc; - - FILES['/' + name.normalize().replace(/\\+/g, '/')] = { abs, stats, headers }; - }); - } - - let lookup = opts.dev ? viaLocal.bind(0, dir + sep, isEtag) : viaCache.bind(0, FILES); - - return function (req, res, next) { - let extns = ['']; - let pathname = parse(req).pathname; - let val = req.headers['accept-encoding'] || ''; - if (gzips && val.includes('gzip')) extns.unshift(...gzips); - if (brots && /(br|brotli)/i.test(val)) extns.unshift(...brots); - extns.push(...extensions); // [...br, ...gz, orig, ...exts] - - if (pathname.indexOf('%') !== -1) { - try { pathname = decodeURI(pathname); } - catch (err) { /* malform uri */ } - } - - let data = lookup(pathname, extns) || isSPA && !isMatch(pathname, ignores) && lookup(fallback, extns); - if (!data) return next ? next() : isNotFound(req, res); - - if (isEtag && req.headers['if-none-match'] === data.headers['ETag']) { - res.writeHead(304); - return res.end(); - } - - if (gzips || brots) { - res.setHeader('Vary', 'Accept-Encoding'); - } - - setHeaders(res, pathname, data.stats); - send(req, res, data.abs, data.stats, data.headers); - }; -} - -var defaultParseOptions = { - decodeValues: true, - map: false, - silent: false, - split: "auto", // auto = split strings but not arrays -}; - -function isForbiddenKey(key) { - return typeof key !== "string" || key in {}; -} - -function createNullObj() { - return Object.create(null); -} - -function isNonEmptyString(str) { - return typeof str === "string" && !!str.trim(); -} - -function parseString(setCookieValue, options) { - var parts = setCookieValue.split(";").filter(isNonEmptyString); - - var nameValuePairStr = parts.shift(); - var parsed = parseNameValuePair(nameValuePairStr); - var name = parsed.name; - var value = parsed.value; - - options = options - ? Object.assign({}, defaultParseOptions, options) - : defaultParseOptions; - - if (isForbiddenKey(name)) { - return null; - } - - try { - value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value - } catch (e) { - console.error( - "set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.", - e - ); - } - - var cookie = createNullObj(); - cookie.name = name; - cookie.value = value; - - parts.forEach(function (part) { - var sides = part.split("="); - var key = sides.shift().trimLeft().toLowerCase(); - if (isForbiddenKey(key)) { - return; - } - var value = sides.join("="); - if (key === "expires") { - cookie.expires = new Date(value); - } else if (key === "max-age") { - var n = parseInt(value, 10); - if (!Number.isNaN(n)) cookie.maxAge = n; - } else if (key === "secure") { - cookie.secure = true; - } else if (key === "httponly") { - cookie.httpOnly = true; - } else if (key === "samesite") { - cookie.sameSite = value; - } else if (key === "partitioned") { - cookie.partitioned = true; - } else if (key) { - cookie[key] = value; - } - }); - - return cookie; -} - -function parseNameValuePair(nameValuePairStr) { - // Parses name-value-pair according to rfc6265bis draft - - var name = ""; - var value = ""; - var nameValueArr = nameValuePairStr.split("="); - if (nameValueArr.length > 1) { - name = nameValueArr.shift(); - value = nameValueArr.join("="); // everything after the first =, joined by a "=" if there was more than one part - } else { - value = nameValuePairStr; - } - - return { name: name, value: value }; -} - -function parseSetCookie(input, options) { - options = options - ? Object.assign({}, defaultParseOptions, options) - : defaultParseOptions; - - if (!input) { - if (!options.map) { - return []; - } else { - return createNullObj(); - } - } - - if (input.headers) { - if (typeof input.headers.getSetCookie === "function") { - // for fetch responses - they combine headers of the same type in the headers array, - // but getSetCookie returns an uncombined array - input = input.headers.getSetCookie(); - } else if (input.headers["set-cookie"]) { - // fast-path for node.js (which automatically normalizes header names to lower-case) - input = input.headers["set-cookie"]; - } else { - // slow-path for other environments - see #25 - var sch = - input.headers[ - Object.keys(input.headers).find(function (key) { - return key.toLowerCase() === "set-cookie"; - }) - ]; - // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36 - if (!sch && input.headers.cookie && !options.silent) { - console.warn( - "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning." - ); - } - input = sch; - } - } - - var split = options.split; - var isArray = Array.isArray(input); - - if (split === "auto") { - split = !isArray; - } - - if (!isArray) { - input = [input]; - } - - input = input.filter(isNonEmptyString); - - if (split) { - input = input.map(splitCookiesString).flat(); - } - - if (!options.map) { - return input - .map(function (str) { - return parseString(str, options); - }) - .filter(Boolean); - } else { - var cookies = createNullObj(); - return input.reduce(function (cookies, str) { - var cookie = parseString(str, options); - if (cookie && !isForbiddenKey(cookie.name)) { - cookies[cookie.name] = cookie; - } - return cookies; - }, cookies); - } -} - -/* - Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas - that are within a single set-cookie field-value, such as in the Expires portion. - - This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2 - Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128 - React Native's fetch does this for *every* header, including set-cookie. - - Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25 - Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation -*/ -function splitCookiesString(cookiesString) { - if (Array.isArray(cookiesString)) { - return cookiesString; - } - if (typeof cookiesString !== "string") { - return []; - } - - var cookiesStrings = []; - var pos = 0; - var start; - var ch; - var lastComma; - var nextStart; - var cookiesSeparatorFound; - - function skipWhitespace() { - while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) { - pos += 1; - } - return pos < cookiesString.length; - } - - function notSpecialChar() { - ch = cookiesString.charAt(pos); - - return ch !== "=" && ch !== ";" && ch !== ","; - } - - while (pos < cookiesString.length) { - start = pos; - cookiesSeparatorFound = false; - - while (skipWhitespace()) { - ch = cookiesString.charAt(pos); - if (ch === ",") { - // ',' is a cookie separator if we have later first '=', not ';' or ',' - lastComma = pos; - pos += 1; - - skipWhitespace(); - nextStart = pos; - - while (pos < cookiesString.length && notSpecialChar()) { - pos += 1; - } - - // currently special character - if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { - // we found cookies separator - cookiesSeparatorFound = true; - // pos is inside the next cookie, so back up and return it. - pos = nextStart; - cookiesStrings.push(cookiesString.substring(start, lastComma)); - start = pos; - } else { - // in param ',' or param separator ';', - // we continue from that comma - pos = lastComma + 1; - } - } else { - pos += 1; - } - } - - if (!cookiesSeparatorFound || pos >= cookiesString.length) { - cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); - } - } - - return cookiesStrings; -} - -// named export for CJS -parseSetCookie.parseSetCookie = parseSetCookie; -// for backwards compatibility -parseSetCookie.parse = parseSetCookie; -parseSetCookie.parseString = parseString; -parseSetCookie.splitCookiesString = splitCookiesString; - -/** @import { StandardSchemaV1 } from '@standard-schema/spec' */ - - -/** - * An error that was thrown from within the SvelteKit runtime that is not fatal and doesn't result in a 500, such as a 404. - * `SvelteKitError` goes through `handleError`. - * @extends Error - */ -class SvelteKitError extends Error { - /** - * @param {number} status - * @param {string} text - * @param {string} message - */ - constructor(status, text, message) { - super(message); - this.status = status; - this.text = text; - } -} - -/** - * @param {import('http').IncomingMessage} req - * @param {number} [body_size_limit] - */ -function get_raw_body(req, body_size_limit) { - const h = req.headers; - - if (!h['content-type']) { - return null; - } - - const content_length = Number(h['content-length']); - - // check if no request body - if ( - (req.httpVersionMajor === 1 && isNaN(content_length) && h['transfer-encoding'] == null) || - content_length === 0 - ) { - return null; - } - - if (req.destroyed) { - const readable = new ReadableStream(); - void readable.cancel(); - return readable; - } - - let size = 0; - let cancelled = false; - - return new ReadableStream({ - start(controller) { - if (body_size_limit !== undefined && content_length > body_size_limit) { - let message = `Content-length of ${content_length} exceeds limit of ${body_size_limit} bytes.`; - - if (body_size_limit === 0) { - // https://github.com/sveltejs/kit/pull/11589 - // TODO this exists to aid migration — remove in a future version - message += ' To disable body size limits, specify Infinity rather than 0.'; - } - - const error = new SvelteKitError(413, 'Payload Too Large', message); - - controller.error(error); - return; - } - - req.on('error', (error) => { - cancelled = true; - controller.error(error); - }); - - req.on('end', () => { - if (cancelled) return; - controller.close(); - }); - - req.on('data', (chunk) => { - if (cancelled) return; - - size += chunk.length; - if (size > content_length) { - cancelled = true; - - const constraint = content_length ? 'content-length' : 'BODY_SIZE_LIMIT'; - const message = `request body size exceeded ${constraint} of ${content_length}`; - - const error = new SvelteKitError(413, 'Payload Too Large', message); - controller.error(error); - - return; - } - - controller.enqueue(chunk); - - if (controller.desiredSize === null || controller.desiredSize <= 0) { - req.pause(); - } - }); - }, - - pull() { - req.resume(); - }, - - cancel(reason) { - cancelled = true; - req.destroy(reason); - } - }); -} - -/** - * @param {{ - * request: import('http').IncomingMessage; - * base: string; - * bodySizeLimit?: number; - * }} options - * @returns {Promise} - */ -// TODO 3.0 make the signature synchronous? -// eslint-disable-next-line @typescript-eslint/require-await -async function getRequest({ request, base, bodySizeLimit }) { - let headers = /** @type {Record} */ (request.headers); - if (request.httpVersionMajor >= 2) { - // the Request constructor rejects headers with ':' in the name - headers = Object.assign({}, headers); - // https://www.rfc-editor.org/rfc/rfc9113.html#section-8.3.1-2.3.5 - if (headers[':authority']) { - headers.host = headers[':authority']; - } - delete headers[':authority']; - delete headers[':method']; - delete headers[':path']; - delete headers[':scheme']; - } - - // TODO: Whenever Node >=22 is minimum supported version, we can use `request.readableAborted` - // @see https://github.com/nodejs/node/blob/5cf3c3e24c7257a0c6192ed8ef71efec8ddac22b/lib/internal/streams/readable.js#L1443-L1453 - const controller = new AbortController(); - let errored = false; - let end_emitted = false; - request.once('error', () => (errored = true)); - request.once('end', () => (end_emitted = true)); - request.once('close', () => { - if ((errored || request.destroyed) && !end_emitted) { - controller.abort(); - } - }); - - return new Request(base + request.url, { - // @ts-expect-error - duplex: 'half', - method: request.method, - headers: Object.entries(headers), - signal: controller.signal, - body: - request.method === 'GET' || request.method === 'HEAD' - ? undefined - : get_raw_body(request, bodySizeLimit) - }); -} - -/** - * @param {import('http').ServerResponse} res - * @param {Response} response - * @returns {Promise} - */ -// TODO 3.0 make the signature synchronous? -// eslint-disable-next-line @typescript-eslint/require-await -async function setResponse(res, response) { - for (const [key, value] of response.headers) { - try { - res.setHeader( - key, - key === 'set-cookie' - ? splitCookiesString( - // This is absurd but necessary, TODO: investigate why - /** @type {string}*/ (response.headers.get(key)) - ) - : value - ); - } catch (error) { - res.getHeaderNames().forEach((name) => res.removeHeader(name)); - res.writeHead(500).end(String(error)); - return; - } - } - - res.writeHead(response.status); - - if (!response.body) { - res.end(); - return; - } - - if (response.body.locked) { - res.end( - 'Fatal error: Response body is locked. ' + - "This can happen when the response was already read (for example through 'response.json()' or 'response.text()')." - ); - return; - } - - const reader = response.body.getReader(); - - if (res.destroyed) { - void reader.cancel(); - return; - } - - const cancel = (/** @type {Error|undefined} */ error) => { - res.off('close', cancel); - res.off('error', cancel); - - // If the reader has already been interrupted with an error earlier, - // then it will appear here, it is useless, but it needs to be catch. - reader.cancel(error).catch(() => {}); - if (error) res.destroy(error); - }; - - res.on('close', cancel); - res.on('error', cancel); - - void next(); - async function next() { - try { - for (;;) { - const { done, value } = await reader.read(); - - if (done) break; - - if (!res.write(value)) { - res.once('drain', next); - return; - } - } - res.end(); - } catch (error) { - cancel(error instanceof Error ? error : new Error(String(error))); - } - } -} - -/** - * Converts a file on disk to a readable stream - * @param {string} file - * @returns {ReadableStream} - * @since 2.4.0 - */ -function createReadableStream(file) { - return /** @type {ReadableStream} */ (Readable.toWeb(createReadStream(file))); -} - -/** - * Parses the given value into number of bytes. - * - * @param {string} value - Size in bytes. Can also be specified with a unit suffix kilobytes (K), megabytes (M), or gigabytes (G). - * @returns {number} - */ -function parse_as_bytes(value) { - const multiplier = - { - K: 1024, - M: 1024 * 1024, - G: 1024 * 1024 * 1024 - }[value[value.length - 1]?.toUpperCase()] ?? 1; - return Number(multiplier != 1 ? value.substring(0, value.length - 1) : value) * multiplier; -} - -/** - * Parses and validates an origin URL. - * - * @param {string | undefined} value - Origin URL with http:// or https:// protocol - * @returns {string | undefined} The validated origin, or undefined if value is undefined - * @throws {Error} If value is provided but invalid - */ -function parse_origin(value) { - if (value === undefined) { - return undefined; - } - - const trimmed = value.trim(); - - let url; - try { - url = new URL(trimmed); - } catch (error) { - throw new Error( - `Invalid ORIGIN: '${trimmed}'. ` + - `ORIGIN must be a valid URL with http:// or https:// protocol. ` + - `For example: 'http://localhost:3000' or 'https://my.site'`, - { cause: error } - ); - } - - if (url.protocol !== 'http:' && url.protocol !== 'https:') { - throw new Error( - `Invalid ORIGIN: '${trimmed}'. ` + - `Only http:// and https:// protocols are supported. ` + - `Received protocol: ${url.protocol}` - ); - } - - return url.origin; -} - -/* global "" */ -/* global true */ - -const server = new Server(manifest); - -// parse_origin validates ORIGIN and throws descriptive errors for invalid values -const origin = parse_origin(env('ORIGIN', undefined)); - -const xff_depth = parseInt(env('XFF_DEPTH', '1')); -const address_header = env('ADDRESS_HEADER', '').toLowerCase(); -const protocol_header = env('PROTOCOL_HEADER', '').toLowerCase(); -const host_header = env('HOST_HEADER', '').toLowerCase(); -const port_header = env('PORT_HEADER', '').toLowerCase(); - -const body_size_limit = parse_as_bytes(env('BODY_SIZE_LIMIT', '512K')); - -if (isNaN(body_size_limit)) { - throw new Error( - `Invalid BODY_SIZE_LIMIT: '${env('BODY_SIZE_LIMIT')}'. Please provide a numeric value.` - ); -} - -const dir = path.dirname(fileURLToPath(import.meta.url)); - -const asset_dir = `${dir}/client${base}`; - -await server.init({ - env: /** @type {Record} */ (process.env), - read: (file) => createReadableStream(`${asset_dir}/${file}`) -}); - -/** - * @param {string} path - * @param {boolean} client - */ -function serve(path, client = false) { - return fs__default.existsSync(path) - ? sirv(path, { - etag: true, - gzip: true, - brotli: true, - setHeaders: client - ? (res, pathname) => { - // only apply to build directory, not e.g. version.json - if ( - pathname.startsWith(`/${manifest.appPath}/immutable/`) && - res.statusCode === 200 - ) { - res.setHeader('cache-control', 'public,max-age=31536000,immutable'); - } - } - : undefined - }) - : undefined; -} - -// required because the static file server ignores trailing slashes -/** @returns {import('polka').Middleware} */ -function serve_prerendered() { - const handler = serve(path.join(dir, 'prerendered')); - - return (req, res, next) => { - let { pathname, search, query } = parse(req); - - try { - pathname = decodeURIComponent(pathname); - } catch { - // ignore invalid URI - } - - if (prerendered.has(pathname)) { - return handler?.(req, res, next); - } - - // remove or add trailing slash as appropriate - let location = pathname.at(-1) === '/' ? pathname.slice(0, -1) : pathname + '/'; - if (prerendered.has(location)) { - if (query) location += search; - res.writeHead(308, { location }).end(); - } else { - void next(); - } - }; -} - -/** @type {import('polka').Middleware} */ -const ssr = async (req, res) => { - /** @type {Request} */ - let request; - - try { - request = await getRequest({ - base: origin || get_origin(req.headers), - request: req, - bodySizeLimit: body_size_limit - }); - } catch { - res.statusCode = 400; - res.end('Bad Request'); - return; - } - - await setResponse( - res, - await server.respond(request, { - platform: { req }, - getClientAddress: () => { - if (address_header) { - if (!(address_header in req.headers)) { - throw new Error( - `Address header was specified with ${ - "" + 'ADDRESS_HEADER' - }=${address_header} but is absent from request` - ); - } - - const value = /** @type {string} */ (req.headers[address_header]) || ''; - - if (address_header === 'x-forwarded-for') { - const addresses = value.split(','); - - if (xff_depth < 1) { - throw new Error(`${"" + 'XFF_DEPTH'} must be a positive integer`); - } - - if (xff_depth > addresses.length) { - throw new Error( - `${"" + 'XFF_DEPTH'} is ${xff_depth}, but only found ${ - addresses.length - } addresses` - ); - } - return addresses[addresses.length - xff_depth].trim(); - } - - return value; - } - - return ( - req.connection?.remoteAddress || - // @ts-expect-error - req.connection?.socket?.remoteAddress || - req.socket?.remoteAddress || - // @ts-expect-error - req.info?.remoteAddress - ); - } - }) - ); -}; - -/** @param {import('polka').Middleware[]} handlers */ -function sequence(handlers) { - /** @type {import('polka').Middleware} */ - return (req, res, next) => { - /** - * @param {number} i - * @returns {ReturnType} - */ - function handle(i) { - if (i < handlers.length) { - return handlers[i](req, res, () => handle(i + 1)); - } else { - return next(); - } - } - - return handle(0); - }; -} - -/** - * @param {string} name - * @param {string | string[] | undefined} value - * @returns {string | undefined} - */ -function normalise_header(name, value) { - if (!name) return undefined; - if (Array.isArray(value)) { - if (value.length === 0) return undefined; - if (value.length === 1) return value[0]; - throw new Error( - `Multiple values provided for ${name} header where only one expected: ${value}` - ); - } - return value; -} - -/** - * @param {import('http').IncomingHttpHeaders} headers - * @returns {string} - */ -function get_origin(headers) { - const protocol = decodeURIComponent( - normalise_header(protocol_header, headers[protocol_header]) || 'https' - ); - - // this helps us avoid host injections through the protocol header - if (protocol.includes(':')) { - throw new Error( - `The ${protocol_header} header specified ${protocol} which is an invalid because it includes \`:\`. It should only contain the protocol scheme (e.g. \`https\`)` - ); - } - - const host = - normalise_header(host_header, headers[host_header]) || - normalise_header('host', headers['host']); - if (!host) { - const header_names = host_header ? `${host_header} or host headers` : 'host header'; - throw new Error( - `Could not determine host. The request must have a value provided by the ${header_names}` - ); - } - - const port = normalise_header(port_header, headers[port_header]); - if (port && isNaN(+port)) { - throw new Error( - `The ${port_header} header specified ${port} which is an invalid port because it is not a number. The value should only contain the port number (e.g. 443)` - ); - } - - return port ? `${protocol}://${host}:${port}` : `${protocol}://${host}`; -} - -const handler = sequence( - /** @type {(import('sirv').RequestHandler | import('polka').Middleware)[]} */ - ([serve(path.join(dir, 'client'), true), serve_prerendered(), ssr].filter(Boolean)) -); - -export { handler }; diff --git a/build/index.js b/build/index.js deleted file mode 100644 index d5534bd..0000000 --- a/build/index.js +++ /dev/null @@ -1,345 +0,0 @@ -import http from 'node:http'; -import process from 'node:process'; -import { handler } from './handler.js'; -import { env, timeout_env } from './env.js'; -import { setImmediate } from 'node:timers'; -import * as qs from 'node:querystring'; - -/** - * @param {string|RegExp} input The route pattern - * @param {boolean} [loose] Allow open-ended matching. Ignored with `RegExp` input. - */ -function parse$1(input, loose) { - if (input instanceof RegExp) return { keys:false, pattern:input }; - var c, o, tmp, ext, keys=[], pattern='', arr = input.split('/'); - arr[0] || arr.shift(); - - while (tmp = arr.shift()) { - c = tmp[0]; - if (c === '*') { - keys.push(c); - pattern += tmp[1] === '?' ? '(?:/(.*))?' : '/(.*)'; - } else if (c === ':') { - o = tmp.indexOf('?', 1); - ext = tmp.indexOf('.', 1); - keys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) ); - pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)'; - if (!!~ext) pattern += (!!~o ? '?' : '') + '\\' + tmp.substring(ext); - } else { - pattern += '/' + tmp; - } - } - - return { - keys: keys, - pattern: new RegExp('^' + pattern + (loose ? '(?=$|\/)' : '\/?$'), 'i') - }; -} - -const MAP = { - "": 0, - GET: 1, - HEAD: 2, - PATCH: 3, - OPTIONS: 4, - CONNECT: 5, - DELETE: 6, - TRACE: 7, - POST: 8, - PUT: 9, -}; - -class Trouter { - constructor() { - this.routes = []; - - this.all = this.add.bind(this, ''); - this.get = this.add.bind(this, 'GET'); - this.head = this.add.bind(this, 'HEAD'); - this.patch = this.add.bind(this, 'PATCH'); - this.options = this.add.bind(this, 'OPTIONS'); - this.connect = this.add.bind(this, 'CONNECT'); - this.delete = this.add.bind(this, 'DELETE'); - this.trace = this.add.bind(this, 'TRACE'); - this.post = this.add.bind(this, 'POST'); - this.put = this.add.bind(this, 'PUT'); - } - - use(route, ...fns) { - let handlers = [].concat.apply([], fns); - let { keys, pattern } = parse$1(route, true); - this.routes.push({ keys, pattern, method: '', handlers, midx: MAP[''] }); - return this; - } - - add(method, route, ...fns) { - let { keys, pattern } = parse$1(route); - let handlers = [].concat.apply([], fns); - this.routes.push({ keys, pattern, method, handlers, midx: MAP[method] }); - return this; - } - - find(method, url) { - let midx = MAP[method]; - let isHEAD = (midx === 2); - let i=0, j=0, k, tmp, arr=this.routes; - let matches=[], params={}, handlers=[]; - for (; i < arr.length; i++) { - tmp = arr[i]; - if (tmp.midx === midx || tmp.midx === 0 || (isHEAD && tmp.midx===1) ) { - if (tmp.keys === false) { - matches = tmp.pattern.exec(url); - if (matches === null) continue; - if (matches.groups !== void 0) for (k in matches.groups) params[k]=matches.groups[k]; - tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]); - } else if (tmp.keys.length > 0) { - matches = tmp.pattern.exec(url); - if (matches === null) continue; - for (j=0; j < tmp.keys.length;) params[tmp.keys[j]]=matches[++j]; - tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]); - } else if (tmp.pattern.test(url)) { - tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]); - } - } // else not a match - } - - return { params, handlers }; - } -} - -/** - * @typedef ParsedURL - * @type {import('.').ParsedURL} - */ - -/** - * @typedef Request - * @property {string} url - * @property {ParsedURL} _parsedUrl - */ - -/** - * @param {Request} req - * @returns {ParsedURL|void} - */ -function parse(req) { - let raw = req.url; - if (raw == null) return; - - let prev = req._parsedUrl; - if (prev && prev.raw === raw) return prev; - - let pathname=raw, search='', query; - - if (raw.length > 1) { - let idx = raw.indexOf('?', 1); - - if (idx !== -1) { - search = raw.substring(idx); - pathname = raw.substring(0, idx); - if (search.length > 1) { - query = qs.parse(search.substring(1)); - } - } - } - - return req._parsedUrl = { pathname, search, query, raw }; -} - -function onError(err, req, res) { - let code = typeof err.status === 'number' && err.status; - code = res.statusCode = (code && code >= 100 ? code : 500); - if (typeof err === 'string' || Buffer.isBuffer(err)) res.end(err); - else res.end(err.message || http.STATUS_CODES[code]); -} - -const mount = fn => fn instanceof Polka ? fn.attach : fn; - -class Polka extends Trouter { - constructor(opts={}) { - super(); - this.parse = parse; - this.server = opts.server; - this.handler = this.handler.bind(this); - this.onError = opts.onError || onError; // catch-all handler - this.onNoMatch = opts.onNoMatch || this.onError.bind(null, { status: 404 }); - this.attach = (req, res) => setImmediate(this.handler, req, res); - } - - use(base, ...fns) { - if (base === '/') { - super.use(base, fns.map(mount)); - } else if (typeof base === 'function' || base instanceof Polka) { - super.use('/', [base, ...fns].map(mount)); - } else { - super.use(base, - (req, _, next) => { - if (typeof base === 'string') { - let len = base.length; - base.startsWith('/') || len++; - req.url = req.url.substring(len) || '/'; - req.path = req.path.substring(len) || '/'; - } else { - req.url = req.url.replace(base, '') || '/'; - req.path = req.path.replace(base, '') || '/'; - } - if (req.url.charAt(0) !== '/') { - req.url = '/' + req.url; - } - next(); - }, - fns.map(mount), - (req, _, next) => { - req.path = req._parsedUrl.pathname; - req.url = req.path + req._parsedUrl.search; - next(); - } - ); - } - return this; // chainable - } - - listen() { - (this.server = this.server || http.createServer()).on('request', this.attach); - this.server.listen.apply(this.server, arguments); - return this; - } - - handler(req, res, next) { - let info = this.parse(req), path = info.pathname; - let obj = this.find(req.method, req.path=path); - - req.url = path + info.search; - req.originalUrl = req.originalUrl || req.url; - req.query = info.query || {}; - req.search = info.search; - req.params = obj.params; - - if (path.length > 1 && path.indexOf('%', 1) !== -1) { - for (let k in req.params) { - try { req.params[k] = decodeURIComponent(req.params[k]); } - catch (e) { /* malform uri segment */ } - } - } - - let i=0, arr=obj.handlers.concat(this.onNoMatch), len=arr.length; - let loop = async () => res.finished || (i < len) && arr[i++](req, res, next); - (next = next || (err => err ? this.onError(err, req, res, next) : loop().catch(next)))(); // init - } -} - -function polka (opts) { - return new Polka(opts); -} - -const path = env('SOCKET_PATH', false); -const host = env('HOST', '0.0.0.0'); -const port = env('PORT', !path && '3000'); - -const shutdown_timeout = parseInt(env('SHUTDOWN_TIMEOUT', '30')); -const idle_timeout = parseInt(env('IDLE_TIMEOUT', '0')); -const listen_pid = parseInt(env('LISTEN_PID', '0')); -const listen_fds = parseInt(env('LISTEN_FDS', '0')); -// https://www.freedesktop.org/software/systemd/man/latest/sd_listen_fds.html -const SD_LISTEN_FDS_START = 3; - -if (listen_pid !== 0 && listen_pid !== process.pid) { - throw new Error(`received LISTEN_PID ${listen_pid} but current process id is ${process.pid}`); -} -if (listen_fds > 1) { - throw new Error( - `only one socket is allowed for socket activation, but LISTEN_FDS was set to ${listen_fds}` - ); -} - -const socket_activation = listen_pid === process.pid && listen_fds === 1; - -let requests = 0; -/** @type {NodeJS.Timeout | void} */ -let shutdown_timeout_id; -/** @type {NodeJS.Timeout | void} */ -let idle_timeout_id; - -// Initialize the HTTP server here so that we can set properties before starting to listen. -// Otherwise, polka delays creating the server until listen() is called. Settings these -// properties after the server has started listening could lead to race conditions. -const httpServer = http.createServer(); - -const keep_alive_timeout = timeout_env('KEEP_ALIVE_TIMEOUT'); -if (keep_alive_timeout !== undefined) { - // Convert the keep-alive timeout from seconds to milliseconds (the unit Node.js expects). - httpServer.keepAliveTimeout = keep_alive_timeout * 1000; -} - -const headers_timeout = timeout_env('HEADERS_TIMEOUT'); -if (headers_timeout !== undefined) { - // Convert the headers timeout from seconds to milliseconds (the unit Node.js expects). - httpServer.headersTimeout = headers_timeout * 1000; -} - -const server = polka({ server: httpServer }).use(handler); - -if (socket_activation) { - server.listen({ fd: SD_LISTEN_FDS_START }, () => { - console.log(`Listening on file descriptor ${SD_LISTEN_FDS_START}`); - }); -} else { - server.listen({ path, host, port }, () => { - console.log(`Listening on ${path || `http://${host}:${port}`}`); - }); -} - -/** @param {'SIGINT' | 'SIGTERM' | 'IDLE'} reason */ -function graceful_shutdown(reason) { - if (shutdown_timeout_id) return; - - // If a connection was opened with a keep-alive header close() will wait for the connection to - // time out rather than close it even if it is not handling any requests, so call this first - httpServer.closeIdleConnections(); - - httpServer.close((error) => { - // occurs if the server is already closed - if (error) return; - - if (shutdown_timeout_id) { - clearTimeout(shutdown_timeout_id); - } - if (idle_timeout_id) { - clearTimeout(idle_timeout_id); - } - - // @ts-expect-error custom events cannot be typed - process.emit('sveltekit:shutdown', reason); - }); - - shutdown_timeout_id = setTimeout(() => httpServer.closeAllConnections(), shutdown_timeout * 1000); -} - -httpServer.on( - 'request', - /** @param {import('node:http').IncomingMessage} req */ - (req) => { - requests++; - - if (socket_activation && idle_timeout_id) { - idle_timeout_id = clearTimeout(idle_timeout_id); - } - - req.on('close', () => { - requests--; - - if (shutdown_timeout_id) { - // close connections as soon as they become idle, so they don't accept new requests - httpServer.closeIdleConnections(); - } - if (requests === 0 && socket_activation && idle_timeout) { - idle_timeout_id = setTimeout(() => graceful_shutdown('IDLE'), idle_timeout * 1000); - } - }); - } -); - -process.on('SIGTERM', graceful_shutdown); -process.on('SIGINT', graceful_shutdown); - -export { host, path, port, server }; diff --git a/build/server/chunks/0-BWa0n_wG.js b/build/server/chunks/0-BWa0n_wG.js deleted file mode 100644 index 5cb5bdf..0000000 --- a/build/server/chunks/0-BWa0n_wG.js +++ /dev/null @@ -1,9 +0,0 @@ -const index = 0; -let component_cache; -const component = async () => component_cache ??= (await import('./layout.svelte-UxsTmhKc.js')).default; -const imports = ["_app/immutable/nodes/0.9C686m9W.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/CyUoLS3q.js","_app/immutable/chunks/kALFGdUG.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, stylesheets }; -//# sourceMappingURL=0-BWa0n_wG.js.map diff --git a/build/server/chunks/0-BWa0n_wG.js.map b/build/server/chunks/0-BWa0n_wG.js.map deleted file mode 100644 index d34e3bb..0000000 --- a/build/server/chunks/0-BWa0n_wG.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"0-BWa0n_wG.js","sources":["../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.9C686m9W.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/CyUoLS3q.js\",\"_app/immutable/chunks/kALFGdUG.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,6BAAuC,CAAC,EAAE;AACrG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/1-dOPiiXyK.js b/build/server/chunks/1-dOPiiXyK.js deleted file mode 100644 index 18bee66..0000000 --- a/build/server/chunks/1-dOPiiXyK.js +++ /dev/null @@ -1,9 +0,0 @@ -const index = 1; -let component_cache; -const component = async () => component_cache ??= (await import('./_error.svelte-Szt4-wKI.js')).default; -const imports = ["_app/immutable/nodes/1.RyK1bdTz.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/TpZZa089.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/D2SGgx9j.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/BkIq08el.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, stylesheets }; -//# sourceMappingURL=1-dOPiiXyK.js.map diff --git a/build/server/chunks/1-dOPiiXyK.js.map b/build/server/chunks/1-dOPiiXyK.js.map deleted file mode 100644 index 27c8960..0000000 --- a/build/server/chunks/1-dOPiiXyK.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"1-dOPiiXyK.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.RyK1bdTz.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/TpZZa089.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/D2SGgx9j.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/BkIq08el.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,6BAAmC,CAAC,EAAE;AACjG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxZ,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/10-BGqcbnOp.js b/build/server/chunks/10-BGqcbnOp.js deleted file mode 100644 index e0b13b4..0000000 --- a/build/server/chunks/10-BGqcbnOp.js +++ /dev/null @@ -1,103 +0,0 @@ -import { d as db, e as eq, t as team, j as teamMember, u as user } from './index2-B7hVh_Qf.js'; -import { r as redirect } from './index-B2LGyy1l.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const load = async ({ locals }) => { - if (!locals.user) redirect(302, "/"); - const teams = await db.query.team.findMany({ - with: { - members: true - }, - orderBy: (t, { desc }) => [desc(t.createdAt)] - }); - const teamsWithUsers = await Promise.all( - teams.map(async (t) => { - const membersWithUsers = await Promise.all( - t.members.map(async (m) => { - const u = await db.query.user.findFirst({ - where: eq(user.id, m.userId) - }); - return { ...m, user: u ? { id: u.id, name: u.name, image: u.image } : null }; - }) - ); - return { ...t, members: membersWithUsers }; - }) - ); - return { teams: teamsWithUsers, userId: locals.user.id }; -}; -const actions = { - create: async ({ request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const name = form.get("name")?.toString()?.trim(); - if (!name) return { error: "Team name is required" }; - const [created] = await db.insert(team).values({ - name, - ownerId: locals.user.id, - isPersonal: false - }).returning(); - await db.insert(teamMember).values({ - teamId: created.id, - userId: locals.user.id, - role: "captain" - }); - return { success: true }; - }, - addMember: async ({ request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const teamId = form.get("teamId")?.toString(); - const username = form.get("username")?.toString()?.trim(); - if (!teamId || !username) return { error: "Team and username are required" }; - const u = await db.query.user.findFirst({ - where: eq(user.name, username) - }); - if (!u) return { error: `User "${username}" not found. They need to log in first.` }; - const existing = await db.query.teamMember.findFirst({ - where: (m, { and, eq: eq2 }) => and(eq2(m.teamId, teamId), eq2(m.userId, u.id)) - }); - if (existing) return { error: `${username} is already on this team` }; - await db.insert(teamMember).values({ - teamId, - userId: u.id, - role: "member" - }); - return { success: true }; - }, - removeMember: async ({ request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const memberId = form.get("memberId")?.toString(); - if (!memberId) return { error: "Missing member ID" }; - await db.delete(teamMember).where(eq(teamMember.id, memberId)); - return { success: true }; - }, - deleteTeam: async ({ request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const teamId = form.get("teamId")?.toString(); - if (!teamId) return { error: "Missing team ID" }; - const t = await db.query.team.findFirst({ where: eq(team.id, teamId) }); - if (!t || t.ownerId !== locals.user.id) return { error: "Not authorized" }; - await db.delete(team).where(eq(team.id, teamId)); - return { success: true }; - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 10; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-B33-skqO.js')).default; -const server_id = "src/routes/(app)/teams/+page.server.ts"; -const imports = ["_app/immutable/nodes/10.BPlEN6_G.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js","_app/immutable/chunks/CAkKRSSs.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=10-BGqcbnOp.js.map diff --git a/build/server/chunks/10-BGqcbnOp.js.map b/build/server/chunks/10-BGqcbnOp.js.map deleted file mode 100644 index 055cdd0..0000000 --- a/build/server/chunks/10-BGqcbnOp.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"10-BGqcbnOp.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/teams/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/10.js"],"sourcesContent":["import { d as db, c as team, t as teamMember, u as user } from \"../../../../chunks/index2.js\";\nimport { eq } from \"drizzle-orm\";\nimport { redirect } from \"@sveltejs/kit\";\nconst load = async ({ locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const teams = await db.query.team.findMany({\n with: {\n members: true\n },\n orderBy: (t, { desc }) => [desc(t.createdAt)]\n });\n const teamsWithUsers = await Promise.all(\n teams.map(async (t) => {\n const membersWithUsers = await Promise.all(\n t.members.map(async (m) => {\n const u = await db.query.user.findFirst({\n where: eq(user.id, m.userId)\n });\n return { ...m, user: u ? { id: u.id, name: u.name, image: u.image } : null };\n })\n );\n return { ...t, members: membersWithUsers };\n })\n );\n return { teams: teamsWithUsers, userId: locals.user.id };\n};\nconst actions = {\n create: async ({ request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const name = form.get(\"name\")?.toString()?.trim();\n if (!name) return { error: \"Team name is required\" };\n const [created] = await db.insert(team).values({\n name,\n ownerId: locals.user.id,\n isPersonal: false\n }).returning();\n await db.insert(teamMember).values({\n teamId: created.id,\n userId: locals.user.id,\n role: \"captain\"\n });\n return { success: true };\n },\n addMember: async ({ request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const teamId = form.get(\"teamId\")?.toString();\n const username = form.get(\"username\")?.toString()?.trim();\n if (!teamId || !username) return { error: \"Team and username are required\" };\n const u = await db.query.user.findFirst({\n where: eq(user.name, username)\n });\n if (!u) return { error: `User \"${username}\" not found. They need to log in first.` };\n const existing = await db.query.teamMember.findFirst({\n where: (m, { and, eq: eq2 }) => and(eq2(m.teamId, teamId), eq2(m.userId, u.id))\n });\n if (existing) return { error: `${username} is already on this team` };\n await db.insert(teamMember).values({\n teamId,\n userId: u.id,\n role: \"member\"\n });\n return { success: true };\n },\n removeMember: async ({ request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const memberId = form.get(\"memberId\")?.toString();\n if (!memberId) return { error: \"Missing member ID\" };\n await db.delete(teamMember).where(eq(teamMember.id, memberId));\n return { success: true };\n },\n deleteTeam: async ({ request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const teamId = form.get(\"teamId\")?.toString();\n if (!teamId) return { error: \"Missing team ID\" };\n const t = await db.query.team.findFirst({ where: eq(team.id, teamId) });\n if (!t || t.ownerId !== locals.user.id) return { error: \"Not authorized\" };\n await db.delete(team).where(eq(team.id, teamId));\n return { success: true };\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/(app)/teams/_page.server.ts.js';\n\nexport const index = 10;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/teams/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/teams/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/10.BPlEN6_G.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\",\"_app/immutable/chunks/CAkKRSSs.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAGA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACtC,EAAE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7C,IAAI,IAAI,EAAE;AACV,MAAM,OAAO,EAAE;AACf,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,GAAG,CAAC;AACJ,EAAE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG;AAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AAC3B,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG;AAChD,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AACnC,UAAU,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAClD,YAAY,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM;AACvC,WAAW,CAAC;AACZ,UAAU,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE;AACtF,QAAQ,CAAC;AACT,OAAO;AACP,MAAM,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE;AAChD,IAAI,CAAC;AACL,GAAG;AACH,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;AAC1D,CAAC;AACD,MAAM,OAAO,GAAG;AAChB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACzC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACxC,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACzC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACrD,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE;AACxD,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACnD,MAAM,IAAI;AACV,MAAM,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AAC7B,MAAM,UAAU,EAAE;AAClB,KAAK,CAAC,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACvC,MAAM,MAAM,EAAE,OAAO,CAAC,EAAE;AACxB,MAAM,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AAC5B,MAAM,IAAI,EAAE;AACZ,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,EAAE,CAAC;AACH,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACxC,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACzC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE;AACjD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE;AAChF,IAAI,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5C,MAAM,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ;AACnC,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,uCAAuC,CAAC,EAAE;AACxF,IAAI,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;AACzD,MAAM,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;AACpF,KAAK,CAAC;AACN,IAAI,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EAAE;AACzE,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACvC,MAAM,MAAM;AACZ,MAAM,MAAM,EAAE,CAAC,CAAC,EAAE;AAClB,MAAM,IAAI,EAAE;AACZ,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,EAAE,CAAC;AACH,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACxC,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACzC,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE;AACrD,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACxD,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAClE,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,EAAE,CAAC;AACH,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACxC,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACzC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE;AACjD,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE;AACpD,IAAI,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;AAC3E,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE;AAC9E,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACpD,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,EAAE;AACF,CAAC;;;;;;;;ACjFW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA8C,CAAC,EAAE;AAE5G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACrgB,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/11-DB2oh-6z.js b/build/server/chunks/11-DB2oh-6z.js deleted file mode 100644 index 364bab1..0000000 --- a/build/server/chunks/11-DB2oh-6z.js +++ /dev/null @@ -1,9 +0,0 @@ -const index = 11; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-C5eWfXqa.js')).default; -const imports = ["_app/immutable/nodes/11.DR1Vz7m0.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/TpZZa089.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DoLu9QLy.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, stylesheets }; -//# sourceMappingURL=11-DB2oh-6z.js.map diff --git a/build/server/chunks/11-DB2oh-6z.js.map b/build/server/chunks/11-DB2oh-6z.js.map deleted file mode 100644 index 46bbcc7..0000000 --- a/build/server/chunks/11-DB2oh-6z.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"11-DB2oh-6z.js","sources":["../../../.svelte-kit/adapter-node/nodes/11.js"],"sourcesContent":["\n\nexport const index = 11;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/demo/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/11.DR1Vz7m0.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/TpZZa089.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DoLu9QLy.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE;AACrG,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC7S,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/12-3YbOOB0i.js b/build/server/chunks/12-3YbOOB0i.js deleted file mode 100644 index 664f25a..0000000 --- a/build/server/chunks/12-3YbOOB0i.js +++ /dev/null @@ -1,42 +0,0 @@ -import { r as redirect } from './index-B2LGyy1l.js'; -import { a as auth } from './auth-CAP7sZek.js'; -import './shared-server-DaWdgxVh.js'; -import './root-D12ma0No.js'; -import './index3-C4geC3K_.js'; -import './utils-D_bK1W85.js'; -import './shared-DWC9PG0H.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './aggregate-CrXc04Dg.js'; - -const load = async (event) => { - if (!event.locals.user) { - return redirect(302, "/demo/better-auth/login"); - } - return { user: event.locals.user }; -}; -const actions = { - signOut: async (event) => { - await auth.api.signOut({ - headers: event.request.headers - }); - return redirect(302, "/demo/better-auth/login"); - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 12; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-Ctzd-tuM.js')).default; -const server_id = "src/routes/demo/better-auth/+page.server.ts"; -const imports = ["_app/immutable/nodes/12.C9UZWAjJ.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=12-3YbOOB0i.js.map diff --git a/build/server/chunks/12-3YbOOB0i.js.map b/build/server/chunks/12-3YbOOB0i.js.map deleted file mode 100644 index a297949..0000000 --- a/build/server/chunks/12-3YbOOB0i.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"12-3YbOOB0i.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/demo/better-auth/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/12.js"],"sourcesContent":["import { redirect } from \"@sveltejs/kit\";\nimport { a as auth } from \"../../../../chunks/auth.js\";\nconst load = async (event) => {\n if (!event.locals.user) {\n return redirect(302, \"/demo/better-auth/login\");\n }\n return { user: event.locals.user };\n};\nconst actions = {\n signOut: async (event) => {\n await auth.api.signOut({\n headers: event.request.headers\n });\n return redirect(302, \"/demo/better-auth/login\");\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/demo/better-auth/_page.server.ts.js';\n\nexport const index = 12;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/demo/better-auth/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/demo/better-auth/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/12.C9UZWAjJ.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK;AAC9B,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO,QAAQ,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACnD,EAAE;AACF,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AACpC,CAAC;AACD,MAAM,OAAO,GAAG;AAChB,EAAE,OAAO,EAAE,OAAO,KAAK,KAAK;AAC5B,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3B,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;AAC7B,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACnD,EAAE;AACF,CAAC;;;;;;;;ACbW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAmD,CAAC,EAAE;AAEjH,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC7S,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/13-CyOLqwjC.js b/build/server/chunks/13-CyOLqwjC.js deleted file mode 100644 index f661b99..0000000 --- a/build/server/chunks/13-CyOLqwjC.js +++ /dev/null @@ -1,93 +0,0 @@ -import { r as redirect, f as fail } from './index-B2LGyy1l.js'; -import { a as auth, A as APIError } from './auth-CAP7sZek.js'; -import './shared-server-DaWdgxVh.js'; -import './root-D12ma0No.js'; -import './index3-C4geC3K_.js'; -import './utils-D_bK1W85.js'; -import './shared-DWC9PG0H.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './aggregate-CrXc04Dg.js'; - -const load = async (event) => { - if (event.locals.user) { - return redirect(302, "/demo/better-auth"); - } - return {}; -}; -const actions = { - signInEmail: async (event) => { - const formData = await event.request.formData(); - const email = formData.get("email")?.toString() ?? ""; - const password = formData.get("password")?.toString() ?? ""; - try { - await auth.api.signInEmail({ - body: { - email, - password, - callbackURL: "/auth/verification-success" - } - }); - } catch (error) { - if (error instanceof APIError) { - return fail(400, { message: error.message || "Signin failed" }); - } - return fail(500, { message: "Unexpected error" }); - } - return redirect(302, "/demo/better-auth"); - }, - signUpEmail: async (event) => { - const formData = await event.request.formData(); - const email = formData.get("email")?.toString() ?? ""; - const password = formData.get("password")?.toString() ?? ""; - const name = formData.get("name")?.toString() ?? ""; - try { - await auth.api.signUpEmail({ - body: { - email, - password, - name, - callbackURL: "/auth/verification-success" - } - }); - } catch (error) { - if (error instanceof APIError) { - return fail(400, { message: error.message || "Registration failed" }); - } - return fail(500, { message: "Unexpected error" }); - } - return redirect(302, "/demo/better-auth"); - }, - signInSocial: async (event) => { - const formData = await event.request.formData(); - const provider = formData.get("provider")?.toString() ?? "osu"; - const callbackURL = formData.get("callbackURL")?.toString() ?? "/demo/better-auth"; - const result = await auth.api.signInSocial({ - body: { - provider, - callbackURL - } - }); - if (result.url) { - return redirect(302, result.url); - } - return fail(400, { message: "Social sign-in failed" }); - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 13; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-ad4cZnqC.js')).default; -const server_id = "src/routes/demo/better-auth/login/+page.server.ts"; -const imports = ["_app/immutable/nodes/13.CyZ4e6yK.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=13-CyOLqwjC.js.map diff --git a/build/server/chunks/13-CyOLqwjC.js.map b/build/server/chunks/13-CyOLqwjC.js.map deleted file mode 100644 index b9e83c7..0000000 --- a/build/server/chunks/13-CyOLqwjC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"13-CyOLqwjC.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/demo/better-auth/login/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/13.js"],"sourcesContent":["import { redirect, fail } from \"@sveltejs/kit\";\nimport { a as auth } from \"../../../../../chunks/auth.js\";\nimport \"@better-auth/core/env\";\nimport \"@better-auth/core/utils\";\nimport { APIError } from \"better-call\";\nimport \"@better-auth/core/api\";\nconst load = async (event) => {\n if (event.locals.user) {\n return redirect(302, \"/demo/better-auth\");\n }\n return {};\n};\nconst actions = {\n signInEmail: async (event) => {\n const formData = await event.request.formData();\n const email = formData.get(\"email\")?.toString() ?? \"\";\n const password = formData.get(\"password\")?.toString() ?? \"\";\n try {\n await auth.api.signInEmail({\n body: {\n email,\n password,\n callbackURL: \"/auth/verification-success\"\n }\n });\n } catch (error) {\n if (error instanceof APIError) {\n return fail(400, { message: error.message || \"Signin failed\" });\n }\n return fail(500, { message: \"Unexpected error\" });\n }\n return redirect(302, \"/demo/better-auth\");\n },\n signUpEmail: async (event) => {\n const formData = await event.request.formData();\n const email = formData.get(\"email\")?.toString() ?? \"\";\n const password = formData.get(\"password\")?.toString() ?? \"\";\n const name = formData.get(\"name\")?.toString() ?? \"\";\n try {\n await auth.api.signUpEmail({\n body: {\n email,\n password,\n name,\n callbackURL: \"/auth/verification-success\"\n }\n });\n } catch (error) {\n if (error instanceof APIError) {\n return fail(400, { message: error.message || \"Registration failed\" });\n }\n return fail(500, { message: \"Unexpected error\" });\n }\n return redirect(302, \"/demo/better-auth\");\n },\n signInSocial: async (event) => {\n const formData = await event.request.formData();\n const provider = formData.get(\"provider\")?.toString() ?? \"osu\";\n const callbackURL = formData.get(\"callbackURL\")?.toString() ?? \"/demo/better-auth\";\n const result = await auth.api.signInSocial({\n body: {\n provider,\n callbackURL\n }\n });\n if (result.url) {\n return redirect(302, result.url);\n }\n return fail(400, { message: \"Social sign-in failed\" });\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/demo/better-auth/login/_page.server.ts.js';\n\nexport const index = 13;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/demo/better-auth/login/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/demo/better-auth/login/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/13.CyZ4e6yK.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/14-BMPOArNY.js b/build/server/chunks/14-BMPOArNY.js deleted file mode 100644 index 8d361ba..0000000 --- a/build/server/chunks/14-BMPOArNY.js +++ /dev/null @@ -1,36 +0,0 @@ -import { r as redirect } from './index-B2LGyy1l.js'; -import { a as auth } from './auth-CAP7sZek.js'; -import './shared-server-DaWdgxVh.js'; -import './root-D12ma0No.js'; -import './index3-C4geC3K_.js'; -import './utils-D_bK1W85.js'; -import './shared-DWC9PG0H.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './aggregate-CrXc04Dg.js'; - -const load = async (event) => { - if (event.locals.user) redirect(302, "/"); - const result = await auth.api.signInSocial({ - body: { - provider: "osu", - callbackURL: "/" - } - }); - if (result.url) redirect(302, result.url); - return {}; -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - load: load -}); - -const index = 14; -const server_id = "src/routes/login/+page.server.ts"; -const imports = []; -const stylesheets = []; -const fonts = []; - -export { fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=14-BMPOArNY.js.map diff --git a/build/server/chunks/14-BMPOArNY.js.map b/build/server/chunks/14-BMPOArNY.js.map deleted file mode 100644 index 2842c8b..0000000 --- a/build/server/chunks/14-BMPOArNY.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"14-BMPOArNY.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/14.js"],"sourcesContent":["import { redirect } from \"@sveltejs/kit\";\nimport { a as auth } from \"../../../chunks/auth.js\";\nconst load = async (event) => {\n if (event.locals.user) redirect(302, \"/\");\n const result = await auth.api.signInSocial({\n body: {\n provider: \"osu\",\n callbackURL: \"/\"\n }\n });\n if (result.url) redirect(302, result.url);\n return {};\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/login/_page.server.ts.js';\n\nexport const index = 14;\nexport { server };\nexport const server_id = \"src/routes/login/+page.server.ts\";\nexport const imports = [];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK;AAC9B,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AAC3C,EAAE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAC7C,IAAI,IAAI,EAAE;AACV,MAAM,QAAQ,EAAE,KAAK;AACrB,MAAM,WAAW,EAAE;AACnB;AACA,GAAG,CAAC;AACJ,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;AAC3C,EAAE,OAAO,EAAE;AACX,CAAC;;;;;;;ACVW,MAAC,KAAK,GAAG;AAET,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG;AACX,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/2-BiADR-CH.js b/build/server/chunks/2-BiADR-CH.js deleted file mode 100644 index 72aeb55..0000000 --- a/build/server/chunks/2-BiADR-CH.js +++ /dev/null @@ -1,27 +0,0 @@ -const load = async ({ locals }) => { - return { - user: locals.user ? { - id: locals.user.id, - name: locals.user.name, - email: locals.user.email, - image: locals.user.image, - role: locals.user.role ?? "player" - } : null - }; -}; - -var _layout_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - load: load -}); - -const index = 2; -let component_cache; -const component = async () => component_cache ??= (await import('./_layout.svelte-BV7ZtoED.js')).default; -const server_id = "src/routes/(app)/+layout.server.ts"; -const imports = ["_app/immutable/nodes/2.BsR2_q_w.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/CyUoLS3q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js","_app/immutable/chunks/D2SGgx9j.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/BAocuFgQ.js"]; -const stylesheets = ["_app/immutable/assets/2.Dv2no-8m.css"]; -const fonts = []; - -export { component, fonts, imports, index, _layout_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=2-BiADR-CH.js.map diff --git a/build/server/chunks/2-BiADR-CH.js.map b/build/server/chunks/2-BiADR-CH.js.map deleted file mode 100644 index d82b172..0000000 --- a/build/server/chunks/2-BiADR-CH.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"2-BiADR-CH.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/_layout.server.ts.js","../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["const load = async ({ locals }) => {\n return {\n user: locals.user ? {\n id: locals.user.id,\n name: locals.user.name,\n email: locals.user.email,\n image: locals.user.image,\n role: locals.user.role ?? \"player\"\n } : null\n };\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/(app)/_layout.server.ts.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/+layout.server.ts\";\nexport const imports = [\"_app/immutable/nodes/2.BsR2_q_w.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/CyUoLS3q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\",\"_app/immutable/chunks/D2SGgx9j.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/BAocuFgQ.js\"];\nexport const stylesheets = [\"_app/immutable/assets/2.Dv2no-8m.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG;AACxB,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AACxB,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;AAC5B,MAAM,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC9B,MAAM,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC9B,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;AAChC,KAAK,GAAG;AACR,GAAG;AACH,CAAC;;;;;;;ACRW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAA0C,CAAC,EAAE;AAExG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxiB,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/3-BPD8edaL.js b/build/server/chunks/3-BPD8edaL.js deleted file mode 100644 index 0a1ff31..0000000 --- a/build/server/chunks/3-BPD8edaL.js +++ /dev/null @@ -1,55 +0,0 @@ -import { d as db, a as desc, m as match, i as inArray, t as team, b as mappool, e as eq } from './index2-B7hVh_Qf.js'; -import { c as count } from './aggregate-CrXc04Dg.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const load = async ({ locals }) => { - if (!locals.user) { - return { - authenticated: false, - recentMatches: [], - liveMatches: [], - stats: { matches: 0, finished: 0, teams: 0, mappools: 0 } - }; - } - const recentMatches = await db.query.match.findMany({ - with: { participants: { with: { team: true } } }, - orderBy: desc(match.createdAt), - limit: 5 - }); - const liveMatches = await db.query.match.findMany({ - with: { participants: { with: { team: true } } }, - where: inArray(match.state, ["LOBBY", "ROLLING", "PICKING", "PLAYING"]) - }); - const [matchCount] = await db.select({ count: count() }).from(match); - const [teamCount] = await db.select({ count: count() }).from(team); - const [poolCount] = await db.select({ count: count() }).from(mappool); - const [finishedCount] = await db.select({ count: count() }).from(match).where(eq(match.state, "FINISHED")); - return { - authenticated: true, - recentMatches, - liveMatches, - stats: { - matches: matchCount.count, - finished: finishedCount.count, - teams: teamCount.count, - mappools: poolCount.count - } - }; -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - load: load -}); - -const index = 3; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-C-71W7Xe.js')).default; -const server_id = "src/routes/(app)/+page.server.ts"; -const imports = ["_app/immutable/nodes/3.CMuy9Bx3.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=3-BPD8edaL.js.map diff --git a/build/server/chunks/3-BPD8edaL.js.map b/build/server/chunks/3-BPD8edaL.js.map deleted file mode 100644 index 3ec3265..0000000 --- a/build/server/chunks/3-BPD8edaL.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"3-BPD8edaL.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { d as db, b as match, c as team, m as mappool } from \"../../../chunks/index2.js\";\nimport { desc, inArray, count, eq } from \"drizzle-orm\";\nconst load = async ({ locals }) => {\n if (!locals.user) {\n return {\n authenticated: false,\n recentMatches: [],\n liveMatches: [],\n stats: { matches: 0, finished: 0, teams: 0, mappools: 0 }\n };\n }\n const recentMatches = await db.query.match.findMany({\n with: { participants: { with: { team: true } } },\n orderBy: desc(match.createdAt),\n limit: 5\n });\n const liveMatches = await db.query.match.findMany({\n with: { participants: { with: { team: true } } },\n where: inArray(match.state, [\"LOBBY\", \"ROLLING\", \"PICKING\", \"PLAYING\"])\n });\n const [matchCount] = await db.select({ count: count() }).from(match);\n const [teamCount] = await db.select({ count: count() }).from(team);\n const [poolCount] = await db.select({ count: count() }).from(mappool);\n const [finishedCount] = await db.select({ count: count() }).from(match).where(eq(match.state, \"FINISHED\"));\n return {\n authenticated: true,\n recentMatches,\n liveMatches,\n stats: {\n matches: matchCount.count,\n finished: finishedCount.count,\n teams: teamCount.count,\n mappools: poolCount.count\n }\n };\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/(app)/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.CMuy9Bx3.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAEA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACpB,IAAI,OAAO;AACX,MAAM,aAAa,EAAE,KAAK;AAC1B,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,WAAW,EAAE,EAAE;AACrB,MAAM,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC7D,KAAK;AACL,EAAE;AACF,EAAE,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtD,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACpD,IAAI,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAClC,IAAI,KAAK,EAAE;AACX,GAAG,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AACpD,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACpD,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAC1E,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACtE,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACpE,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5G,EAAE,OAAO;AACT,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,KAAK,EAAE;AACX,MAAM,OAAO,EAAE,UAAU,CAAC,KAAK;AAC/B,MAAM,QAAQ,EAAE,aAAa,CAAC,KAAK;AACnC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK;AAC5B,MAAM,QAAQ,EAAE,SAAS,CAAC;AAC1B;AACA,GAAG;AACH,CAAC;;;;;;;ACjCW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAwC,CAAC,EAAE;AAEtG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChV,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/4-CQssXWUd.js b/build/server/chunks/4-CQssXWUd.js deleted file mode 100644 index 3f1d115..0000000 --- a/build/server/chunks/4-CQssXWUd.js +++ /dev/null @@ -1,85 +0,0 @@ -import { d as db, a as desc, u as user, e as eq, p as playerRating } from './index2-B7hVh_Qf.js'; -import { e as error } from './index-B2LGyy1l.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const ROLE_HIERARCHY = { - player: 0, - referee: 1, - admin: 2 -}; -function hasRole(userRole, minRole) { - const level = ROLE_HIERARCHY[userRole] ?? 0; - const required = ROLE_HIERARCHY[minRole]; - return level >= required; -} -function requireRole(locals, minRole, message = "Insufficient permissions") { - if (!locals.user) { - error(401, "Not logged in"); - } - if (!hasRole(locals.user.role, minRole)) { - error(403, message); - } -} -async function setUserRole(userId, role) { - await db.update(user).set({ role }).where(eq(user.id, userId)); -} -const load = async ({ locals }) => { - requireRole(locals, "admin"); - const users = await db.query.user.findMany({ - orderBy: desc(user.createdAt) - }); - const usersWithRatings = await Promise.all( - users.map(async (u) => { - const rating = await db.query.playerRating.findFirst({ - where: eq(playerRating.userId, u.id) - }); - return { - id: u.id, - name: u.name, - email: u.email, - image: u.image, - role: u.role ?? "player", - createdAt: u.createdAt, - elo: rating?.elo ?? 1e3, - wins: rating?.wins ?? 0, - losses: rating?.losses ?? 0 - }; - }) - ); - return { users: usersWithRatings }; -}; -const actions = { - setRole: async ({ request, locals }) => { - requireRole(locals, "admin"); - const form = await request.formData(); - const userId = form.get("userId")?.toString(); - const role = form.get("role")?.toString(); - if (!userId || !role) return { error: "User ID and role are required" }; - if (!["player", "referee", "admin"].includes(role)) { - return { error: "Invalid role" }; - } - if (userId === locals.user.id && role !== "admin") { - return { error: "You can't demote yourself" }; - } - await setUserRole(userId, role); - return { success: true }; - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 4; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-6xWa24o9.js')).default; -const server_id = "src/routes/(app)/admin/+page.server.ts"; -const imports = ["_app/immutable/nodes/4.BdC-uDW-.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js","_app/immutable/chunks/Cy2QBcXt.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=4-CQssXWUd.js.map diff --git a/build/server/chunks/4-CQssXWUd.js.map b/build/server/chunks/4-CQssXWUd.js.map deleted file mode 100644 index 16e5978..0000000 --- a/build/server/chunks/4-CQssXWUd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"4-CQssXWUd.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/admin/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["import { d as db, u as user, p as playerRating } from \"../../../../chunks/index2.js\";\nimport { eq, desc } from \"drizzle-orm\";\nimport { error } from \"@sveltejs/kit\";\nconst ROLE_HIERARCHY = {\n player: 0,\n referee: 1,\n admin: 2\n};\nfunction hasRole(userRole, minRole) {\n const level = ROLE_HIERARCHY[userRole] ?? 0;\n const required = ROLE_HIERARCHY[minRole];\n return level >= required;\n}\nfunction requireRole(locals, minRole, message = \"Insufficient permissions\") {\n if (!locals.user) {\n error(401, \"Not logged in\");\n }\n if (!hasRole(locals.user.role, minRole)) {\n error(403, message);\n }\n}\nasync function setUserRole(userId, role) {\n await db.update(user).set({ role }).where(eq(user.id, userId));\n}\nconst load = async ({ locals }) => {\n requireRole(locals, \"admin\");\n const users = await db.query.user.findMany({\n orderBy: desc(user.createdAt)\n });\n const usersWithRatings = await Promise.all(\n users.map(async (u) => {\n const rating = await db.query.playerRating.findFirst({\n where: eq(playerRating.userId, u.id)\n });\n return {\n id: u.id,\n name: u.name,\n email: u.email,\n image: u.image,\n role: u.role ?? \"player\",\n createdAt: u.createdAt,\n elo: rating?.elo ?? 1e3,\n wins: rating?.wins ?? 0,\n losses: rating?.losses ?? 0\n };\n })\n );\n return { users: usersWithRatings };\n};\nconst actions = {\n setRole: async ({ request, locals }) => {\n requireRole(locals, \"admin\");\n const form = await request.formData();\n const userId = form.get(\"userId\")?.toString();\n const role = form.get(\"role\")?.toString();\n if (!userId || !role) return { error: \"User ID and role are required\" };\n if (![\"player\", \"referee\", \"admin\"].includes(role)) {\n return { error: \"Invalid role\" };\n }\n if (userId === locals.user.id && role !== \"admin\") {\n return { error: \"You can't demote yourself\" };\n }\n await setUserRole(userId, role);\n return { success: true };\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/(app)/admin/_page.server.ts.js';\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/admin/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/admin/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/4.BdC-uDW-.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\",\"_app/immutable/chunks/Cy2QBcXt.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/5-Dk6CJpPs.js b/build/server/chunks/5-Dk6CJpPs.js deleted file mode 100644 index de4f386..0000000 --- a/build/server/chunks/5-Dk6CJpPs.js +++ /dev/null @@ -1,40 +0,0 @@ -import { d as db, b as mappool } from './index2-B7hVh_Qf.js'; -import { r as redirect } from './index-B2LGyy1l.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const load = async ({ locals }) => { - if (!locals.user) redirect(302, "/"); - const mappools = await db.query.mappool.findMany({ - with: { slots: true }, - orderBy: (m, { desc }) => [desc(m.createdAt)] - }); - return { mappools }; -}; -const actions = { - create: async ({ request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const name = form.get("name")?.toString()?.trim(); - if (!name) return { error: "Name is required" }; - const [created] = await db.insert(mappool).values({ name, createdBy: locals.user.id }).returning(); - redirect(303, `/mappools/${created.id}`); - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 5; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-ijSwFWFX.js')).default; -const server_id = "src/routes/(app)/mappools/+page.server.ts"; -const imports = ["_app/immutable/nodes/5.CyqZcxti.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/BnX5ZnVA.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=5-Dk6CJpPs.js.map diff --git a/build/server/chunks/5-Dk6CJpPs.js.map b/build/server/chunks/5-Dk6CJpPs.js.map deleted file mode 100644 index 47f5abf..0000000 --- a/build/server/chunks/5-Dk6CJpPs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"5-Dk6CJpPs.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/mappools/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["import { d as db, m as mappool } from \"../../../../chunks/index2.js\";\nimport { redirect } from \"@sveltejs/kit\";\nconst load = async ({ locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const mappools = await db.query.mappool.findMany({\n with: { slots: true },\n orderBy: (m, { desc }) => [desc(m.createdAt)]\n });\n return { mappools };\n};\nconst actions = {\n create: async ({ request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const name = form.get(\"name\")?.toString()?.trim();\n if (!name) return { error: \"Name is required\" };\n const [created] = await db.insert(mappool).values({ name, createdBy: locals.user.id }).returning();\n redirect(303, `/mappools/${created.id}`);\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/(app)/mappools/_page.server.ts.js';\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/mappools/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/mappools/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/5.CyqZcxti.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/BnX5ZnVA.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAEA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACtC,EAAE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACzB,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,QAAQ,EAAE;AACrB,CAAC;AACD,MAAM,OAAO,GAAG;AAChB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACzC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACxC,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACzC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACrD,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE;AACnD,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE;AACtG,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,EAAE;AACF,CAAC;;;;;;;;ACjBW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAiD,CAAC,EAAE;AAE/G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/6-CW5Wcf44.js b/build/server/chunks/6-CW5Wcf44.js deleted file mode 100644 index 352d370..0000000 --- a/build/server/chunks/6-CW5Wcf44.js +++ /dev/null @@ -1,115 +0,0 @@ -import { d as db, b as mappool, e as eq, c as mappoolSlot, f as and } from './index2-B7hVh_Qf.js'; -import { r as redirect, e as error } from './index-B2LGyy1l.js'; -import { g as getBeatmap } from './api-DYV1cRWY.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const load = async ({ params, locals }) => { - if (!locals.user) redirect(302, "/"); - const pool = await db.query.mappool.findFirst({ - where: eq(mappool.id, params.id), - with: { - slots: { - orderBy: (s, { asc }) => [asc(s.category), asc(s.orderInCategory)] - } - } - }); - if (!pool) error(404, "Mappool not found"); - const slotsWithBeatmaps = await Promise.all( - pool.slots.map(async (slot) => { - try { - const beatmap = await getBeatmap(slot.beatmapId); - return { - ...slot, - beatmap: { - title: beatmap.beatmapset.title, - artist: beatmap.beatmapset.artist, - version: beatmap.version, - starRating: beatmap.difficulty_rating, - bpm: beatmap.bpm, - totalLength: beatmap.total_length, - coverUrl: beatmap.beatmapset.covers["card@2x"], - url: beatmap.url - } - }; - } catch { - return { - ...slot, - beatmap: null - }; - } - }) - ); - return { - pool: { ...pool, slots: slotsWithBeatmaps } - }; -}; -const actions = { - addSlot: async ({ params, request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - let beatmapId = form.get("beatmapId")?.toString()?.trim(); - const category = form.get("category")?.toString()?.trim()?.toUpperCase(); - if (!beatmapId || !category) { - return { error: "Beatmap ID and category are required" }; - } - const urlMatch = beatmapId.match(/beatmaps\/(\d+)/); - const setMatch = beatmapId.match(/beatmapsets\/\d+#\w+\/(\d+)/); - if (urlMatch) beatmapId = urlMatch[1]; - else if (setMatch) beatmapId = setMatch[1]; - if (!/^\d+$/.test(beatmapId)) { - return { error: "Invalid beatmap ID" }; - } - let beatmap; - try { - beatmap = await getBeatmap(beatmapId); - } catch { - return { error: "Beatmap not found on osu!" }; - } - const existing = await db.query.mappoolSlot.findMany({ - where: and( - eq(mappoolSlot.mappoolId, params.id), - eq(mappoolSlot.category, category) - ) - }); - await db.insert(mappoolSlot).values({ - mappoolId: params.id, - beatmapId, - category, - orderInCategory: existing.length + 1, - starRating: beatmap.difficulty_rating, - mods: category === "NM" || category === "TB" || category === "FM" ? [] : [category] - }); - return { success: true }; - }, - removeSlot: async ({ request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const slotId = form.get("slotId")?.toString(); - if (!slotId) return { error: "Missing slot ID" }; - await db.delete(mappoolSlot).where(eq(mappoolSlot.id, slotId)); - return { success: true }; - }, - deletePool: async ({ params, locals }) => { - if (!locals.user) redirect(302, "/"); - await db.delete(mappool).where(eq(mappool.id, params.id)); - redirect(303, "/mappools"); - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 6; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-Be6BiSzg.js')).default; -const server_id = "src/routes/(app)/mappools/[id]/+page.server.ts"; -const imports = ["_app/immutable/nodes/6.CEe0czaO.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js","_app/immutable/chunks/CAkKRSSs.js","_app/immutable/chunks/Cy2QBcXt.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=6-CW5Wcf44.js.map diff --git a/build/server/chunks/6-CW5Wcf44.js.map b/build/server/chunks/6-CW5Wcf44.js.map deleted file mode 100644 index adb8c75..0000000 --- a/build/server/chunks/6-CW5Wcf44.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"6-CW5Wcf44.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/mappools/_id_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["import { d as db, m as mappool, a as mappoolSlot } from \"../../../../../chunks/index2.js\";\nimport { eq, and } from \"drizzle-orm\";\nimport { redirect, error } from \"@sveltejs/kit\";\nimport { g as getBeatmap } from \"../../../../../chunks/api.js\";\nconst load = async ({ params, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const pool = await db.query.mappool.findFirst({\n where: eq(mappool.id, params.id),\n with: {\n slots: {\n orderBy: (s, { asc }) => [asc(s.category), asc(s.orderInCategory)]\n }\n }\n });\n if (!pool) error(404, \"Mappool not found\");\n const slotsWithBeatmaps = await Promise.all(\n pool.slots.map(async (slot) => {\n try {\n const beatmap = await getBeatmap(slot.beatmapId);\n return {\n ...slot,\n beatmap: {\n title: beatmap.beatmapset.title,\n artist: beatmap.beatmapset.artist,\n version: beatmap.version,\n starRating: beatmap.difficulty_rating,\n bpm: beatmap.bpm,\n totalLength: beatmap.total_length,\n coverUrl: beatmap.beatmapset.covers[\"card@2x\"],\n url: beatmap.url\n }\n };\n } catch {\n return {\n ...slot,\n beatmap: null\n };\n }\n })\n );\n return {\n pool: { ...pool, slots: slotsWithBeatmaps }\n };\n};\nconst actions = {\n addSlot: async ({ params, request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n let beatmapId = form.get(\"beatmapId\")?.toString()?.trim();\n const category = form.get(\"category\")?.toString()?.trim()?.toUpperCase();\n if (!beatmapId || !category) {\n return { error: \"Beatmap ID and category are required\" };\n }\n const urlMatch = beatmapId.match(/beatmaps\\/(\\d+)/);\n const setMatch = beatmapId.match(/beatmapsets\\/\\d+#\\w+\\/(\\d+)/);\n if (urlMatch) beatmapId = urlMatch[1];\n else if (setMatch) beatmapId = setMatch[1];\n if (!/^\\d+$/.test(beatmapId)) {\n return { error: \"Invalid beatmap ID\" };\n }\n let beatmap;\n try {\n beatmap = await getBeatmap(beatmapId);\n } catch {\n return { error: \"Beatmap not found on osu!\" };\n }\n const existing = await db.query.mappoolSlot.findMany({\n where: and(\n eq(mappoolSlot.mappoolId, params.id),\n eq(mappoolSlot.category, category)\n )\n });\n await db.insert(mappoolSlot).values({\n mappoolId: params.id,\n beatmapId,\n category,\n orderInCategory: existing.length + 1,\n starRating: beatmap.difficulty_rating,\n mods: category === \"NM\" || category === \"TB\" || category === \"FM\" ? [] : [category]\n });\n return { success: true };\n },\n removeSlot: async ({ request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const slotId = form.get(\"slotId\")?.toString();\n if (!slotId) return { error: \"Missing slot ID\" };\n await db.delete(mappoolSlot).where(eq(mappoolSlot.id, slotId));\n return { success: true };\n },\n deletePool: async ({ params, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n await db.delete(mappool).where(eq(mappool.id, params.id));\n redirect(303, \"/mappools\");\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/(app)/mappools/_id_/_page.server.ts.js';\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/mappools/_id_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/mappools/[id]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/6.CEe0czaO.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\",\"_app/immutable/chunks/CAkKRSSs.js\",\"_app/immutable/chunks/Cy2QBcXt.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/7-DLfylrWu.js b/build/server/chunks/7-DLfylrWu.js deleted file mode 100644 index 5e46b75..0000000 --- a/build/server/chunks/7-DLfylrWu.js +++ /dev/null @@ -1,73 +0,0 @@ -import { d as db, a as desc, m as match } from './index2-B7hVh_Qf.js'; -import { r as redirect } from './index-B2LGyy1l.js'; -import { c as createMatch } from './engine-DiCmv1C-.js'; -import { i as initMatchLobby } from './orchestrator-BMt7lT0G.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const load = async ({ locals }) => { - if (!locals.user) redirect(302, "/"); - const matches = await db.query.match.findMany({ - with: { participants: { with: { team: true } } }, - orderBy: desc(match.createdAt), - limit: 50 - }); - const teams = await db.query.team.findMany({ - orderBy: (t, { asc }) => [asc(t.name)] - }); - const mappools = await db.query.mappool.findMany({ - with: { slots: true }, - orderBy: (m, { desc: desc2 }) => [desc2(m.createdAt)] - }); - return { matches, teams, mappools }; -}; -const actions = { - createMatch: async ({ request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const name = form.get("name")?.toString()?.trim() || "Custom Match"; - const team1Id = form.get("team1")?.toString(); - const team2Id = form.get("team2")?.toString(); - const mappoolId = form.get("mappool")?.toString(); - const bestOf = parseInt(form.get("bestOf")?.toString() ?? "7"); - console.log("[Matches] CREATE:", { name, team1Id, team2Id, mappoolId, bestOf }); - if (!team1Id || !team2Id || !mappoolId) { - return { error: "All fields are required" }; - } - let result; - try { - result = await createMatch({ - name, - config: { bestOf, teamSize: 1, scoringType: "score" }, - mappoolId, - teams: [team1Id, team2Id], - createdBy: locals.user.id - }); - console.log("[Matches] Created:", result.id); - } catch (e) { - console.error("[Matches] Error:", e); - return { error: e.message }; - } - initMatchLobby(result.id).catch((err) => { - console.error("[Matches] IRC lobby failed:", err.message); - }); - redirect(303, `/matches/${result.id}`); - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 7; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-Bj4oURhW.js')).default; -const server_id = "src/routes/(app)/matches/+page.server.ts"; -const imports = ["_app/immutable/nodes/7._nuD3LlN.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=7-DLfylrWu.js.map diff --git a/build/server/chunks/7-DLfylrWu.js.map b/build/server/chunks/7-DLfylrWu.js.map deleted file mode 100644 index 8f45da6..0000000 --- a/build/server/chunks/7-DLfylrWu.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"7-DLfylrWu.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/matches/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["import { d as db, b as match } from \"../../../../chunks/index2.js\";\nimport { redirect } from \"@sveltejs/kit\";\nimport { desc } from \"drizzle-orm\";\nimport { c as createMatch } from \"../../../../chunks/engine.js\";\nimport { i as initMatchLobby } from \"../../../../chunks/orchestrator.js\";\nconst load = async ({ locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const matches = await db.query.match.findMany({\n with: { participants: { with: { team: true } } },\n orderBy: desc(match.createdAt),\n limit: 50\n });\n const teams = await db.query.team.findMany({\n orderBy: (t, { asc }) => [asc(t.name)]\n });\n const mappools = await db.query.mappool.findMany({\n with: { slots: true },\n orderBy: (m, { desc: desc2 }) => [desc2(m.createdAt)]\n });\n return { matches, teams, mappools };\n};\nconst actions = {\n createMatch: async ({ request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const name = form.get(\"name\")?.toString()?.trim() || \"Custom Match\";\n const team1Id = form.get(\"team1\")?.toString();\n const team2Id = form.get(\"team2\")?.toString();\n const mappoolId = form.get(\"mappool\")?.toString();\n const bestOf = parseInt(form.get(\"bestOf\")?.toString() ?? \"7\");\n console.log(\"[Matches] CREATE:\", { name, team1Id, team2Id, mappoolId, bestOf });\n if (!team1Id || !team2Id || !mappoolId) {\n return { error: \"All fields are required\" };\n }\n let result;\n try {\n result = await createMatch({\n name,\n config: { bestOf, teamSize: 1, scoringType: \"score\" },\n mappoolId,\n teams: [team1Id, team2Id],\n createdBy: locals.user.id\n });\n console.log(\"[Matches] Created:\", result.id);\n } catch (e) {\n console.error(\"[Matches] Error:\", e);\n return { error: e.message };\n }\n initMatchLobby(result.id).catch((err) => {\n console.error(\"[Matches] IRC lobby failed:\", err.message);\n });\n redirect(303, `/matches/${result.id}`);\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/(app)/matches/_page.server.ts.js';\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/matches/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/matches/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/7._nuD3LlN.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/8-Cct4CuMl.js b/build/server/chunks/8-Cct4CuMl.js deleted file mode 100644 index b3d9a37..0000000 --- a/build/server/chunks/8-Cct4CuMl.js +++ /dev/null @@ -1,144 +0,0 @@ -import { d as db, e as eq, u as user } from './index2-B7hVh_Qf.js'; -import { a as cancelMatch, g as getMatchFull, p as pickMap, s as submitRoll } from './engine-DiCmv1C-.js'; -import { c as closeLobby, f as forceStartGame, p as playPickedMap, g as getLobby } from './orchestrator-BMt7lT0G.js'; -import { r as redirect, e as error } from './index-B2LGyy1l.js'; -import { g as getBeatmap } from './api-DYV1cRWY.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const load = async ({ params, locals }) => { - if (!locals.user) redirect(302, "/"); - let m; - try { - m = await getMatchFull(params.id); - } catch { - error(404, "Match not found"); - } - const beatmapCache = {}; - if (m.mappool?.slots) { - await Promise.allSettled( - m.mappool.slots.map(async (slot) => { - try { - const bm = await getBeatmap(slot.beatmapId); - beatmapCache[slot.beatmapId] = { - title: bm.beatmapset.title, - artist: bm.beatmapset.artist, - version: bm.version, - starRating: bm.difficulty_rating, - bpm: bm.bpm, - totalLength: bm.total_length, - coverUrl: bm.beatmapset.covers["card@2x"], - listCoverUrl: bm.beatmapset.covers["list@2x"] - }; - } catch { - } - }) - ); - } - return { match: m, beatmapCache, userId: locals.user.id }; -}; -const actions = { - reinvite: async ({ params, locals }) => { - if (!locals.user) redirect(302, "/"); - const lobby = getLobby(params.id); - if (!lobby) return { error: "No active IRC lobby for this match" }; - const m = await getMatchFull(params.id); - const invited = []; - for (const p of m.participants) { - for (const pl of p.players) { - const u = await db.query.user.findFirst({ where: eq(user.id, pl.userId) }); - if (u?.name) { - await lobby.invite(u.name); - invited.push(u.name); - } - } - } - return { reinvited: invited }; - }, - roll: async ({ params, locals }) => { - if (!locals.user) redirect(302, "/"); - const m = await getMatchFull(params.id); - let myParticipant = m.participants.find( - (p) => p.players.some((pl) => pl.userId === locals.user.id) - ); - if (!myParticipant) { - return { error: "You are not in this match" }; - } - if (myParticipant.rollValue !== null) { - const unrolled = m.participants.find((p) => p.rollValue === null); - if (unrolled) { - myParticipant = unrolled; - } else { - return { error: "All participants have already rolled" }; - } - } - const value = Math.floor(Math.random() * 100) + 1; - await submitRoll(params.id, myParticipant.id, value); - const lobby = getLobby(params.id); - if (lobby) { - lobby.chat(`${myParticipant.team?.name ?? "Player"} rolled ${value} (via web)`).catch(() => { - }); - const updated = await getMatchFull(params.id); - if (updated.state === "PICKING") { - const sorted = [...updated.participants].sort( - (a, b) => (a.pickOrder ?? 99) - (b.pickOrder ?? 99) - ); - lobby.chat( - `Rolls complete! ${sorted[0]?.team.name} picks first. Use !pick (e.g. !pick NM1) or pick in web UI.` - ).catch(() => { - }); - } - } - return { rolled: value, participantId: myParticipant.id }; - }, - pick: async ({ params, request, locals }) => { - if (!locals.user) redirect(302, "/"); - const form = await request.formData(); - const slotId = form.get("slotId")?.toString(); - if (!slotId) return { error: "No map selected" }; - const m = await getMatchFull(params.id); - const sorted = [...m.participants].sort( - (a, b) => (a.pickOrder ?? 99) - (b.pickOrder ?? 99) - ); - const expectedIdx = m.games.length % sorted.length; - const expectedPicker = sorted[expectedIdx]; - if (!expectedPicker) return { error: "Cannot determine picker" }; - try { - const game = await pickMap(params.id, expectedPicker.id, slotId); - playPickedMap(params.id, game.id).catch( - (err) => console.error("[Match] IRC play failed:", err.message) - ); - return { picked: true, gameId: game.id }; - } catch (e) { - return { error: e.message }; - } - }, - forceStart: async ({ params, locals }) => { - if (!locals.user) redirect(302, "/"); - await forceStartGame(params.id); - return { started: true }; - }, - cancel: async ({ params, locals }) => { - if (!locals.user) redirect(302, "/"); - await cancelMatch(params.id); - await closeLobby(params.id); - redirect(303, "/matches"); - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 8; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-G6sWOX7O.js')).default; -const server_id = "src/routes/(app)/matches/[id]/+page.server.ts"; -const imports = ["_app/immutable/nodes/8.CkbqikZq.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BLQQas77.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=8-Cct4CuMl.js.map diff --git a/build/server/chunks/8-Cct4CuMl.js.map b/build/server/chunks/8-Cct4CuMl.js.map deleted file mode 100644 index a829d90..0000000 --- a/build/server/chunks/8-Cct4CuMl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"8-Cct4CuMl.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/matches/_id_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["import { d as db, u as user } from \"../../../../../chunks/index2.js\";\nimport { a as cancelMatch, g as getMatchFull, p as pickMap, s as submitRoll } from \"../../../../../chunks/engine.js\";\nimport { c as closeLobby, f as forceStartGame, p as playPickedMap, g as getLobby } from \"../../../../../chunks/orchestrator.js\";\nimport { redirect, error } from \"@sveltejs/kit\";\nimport { g as getBeatmap } from \"../../../../../chunks/api.js\";\nimport { eq } from \"drizzle-orm\";\nconst load = async ({ params, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n let m;\n try {\n m = await getMatchFull(params.id);\n } catch {\n error(404, \"Match not found\");\n }\n const beatmapCache = {};\n if (m.mappool?.slots) {\n await Promise.allSettled(\n m.mappool.slots.map(async (slot) => {\n try {\n const bm = await getBeatmap(slot.beatmapId);\n beatmapCache[slot.beatmapId] = {\n title: bm.beatmapset.title,\n artist: bm.beatmapset.artist,\n version: bm.version,\n starRating: bm.difficulty_rating,\n bpm: bm.bpm,\n totalLength: bm.total_length,\n coverUrl: bm.beatmapset.covers[\"card@2x\"],\n listCoverUrl: bm.beatmapset.covers[\"list@2x\"]\n };\n } catch {\n }\n })\n );\n }\n return { match: m, beatmapCache, userId: locals.user.id };\n};\nconst actions = {\n reinvite: async ({ params, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const lobby = getLobby(params.id);\n if (!lobby) return { error: \"No active IRC lobby for this match\" };\n const m = await getMatchFull(params.id);\n const invited = [];\n for (const p of m.participants) {\n for (const pl of p.players) {\n const u = await db.query.user.findFirst({ where: eq(user.id, pl.userId) });\n if (u?.name) {\n await lobby.invite(u.name);\n invited.push(u.name);\n }\n }\n }\n return { reinvited: invited };\n },\n roll: async ({ params, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const m = await getMatchFull(params.id);\n let myParticipant = m.participants.find(\n (p) => p.players.some((pl) => pl.userId === locals.user.id)\n );\n if (!myParticipant) {\n return { error: \"You are not in this match\" };\n }\n if (myParticipant.rollValue !== null) {\n const unrolled = m.participants.find((p) => p.rollValue === null);\n if (unrolled) {\n myParticipant = unrolled;\n } else {\n return { error: \"All participants have already rolled\" };\n }\n }\n const value = Math.floor(Math.random() * 100) + 1;\n await submitRoll(params.id, myParticipant.id, value);\n const lobby = getLobby(params.id);\n if (lobby) {\n lobby.chat(`${myParticipant.team?.name ?? \"Player\"} rolled ${value} (via web)`).catch(() => {\n });\n const updated = await getMatchFull(params.id);\n if (updated.state === \"PICKING\") {\n const sorted = [...updated.participants].sort(\n (a, b) => (a.pickOrder ?? 99) - (b.pickOrder ?? 99)\n );\n lobby.chat(\n `Rolls complete! ${sorted[0]?.team.name} picks first. Use !pick (e.g. !pick NM1) or pick in web UI.`\n ).catch(() => {\n });\n }\n }\n return { rolled: value, participantId: myParticipant.id };\n },\n pick: async ({ params, request, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const form = await request.formData();\n const slotId = form.get(\"slotId\")?.toString();\n if (!slotId) return { error: \"No map selected\" };\n const m = await getMatchFull(params.id);\n const sorted = [...m.participants].sort(\n (a, b) => (a.pickOrder ?? 99) - (b.pickOrder ?? 99)\n );\n const expectedIdx = m.games.length % sorted.length;\n const expectedPicker = sorted[expectedIdx];\n if (!expectedPicker) return { error: \"Cannot determine picker\" };\n try {\n const game = await pickMap(params.id, expectedPicker.id, slotId);\n playPickedMap(params.id, game.id).catch(\n (err) => console.error(\"[Match] IRC play failed:\", err.message)\n );\n return { picked: true, gameId: game.id };\n } catch (e) {\n return { error: e.message };\n }\n },\n forceStart: async ({ params, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n await forceStartGame(params.id);\n return { started: true };\n },\n cancel: async ({ params, locals }) => {\n if (!locals.user) redirect(302, \"/\");\n await cancelMatch(params.id);\n await closeLobby(params.id);\n redirect(303, \"/matches\");\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/(app)/matches/_id_/_page.server.ts.js';\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/matches/_id_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/matches/[id]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/8.CkbqikZq.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BLQQas77.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/9-DztSgTEC.js b/build/server/chunks/9-DztSgTEC.js deleted file mode 100644 index 531db06..0000000 --- a/build/server/chunks/9-DztSgTEC.js +++ /dev/null @@ -1,57 +0,0 @@ -import { r as redirect } from './index-B2LGyy1l.js'; -import { a as auth } from './auth-CAP7sZek.js'; -import { d as db, e as eq, p as playerRating, f as and, h as account } from './index2-B7hVh_Qf.js'; -import './shared-server-DaWdgxVh.js'; -import './root-D12ma0No.js'; -import './index3-C4geC3K_.js'; -import './utils-D_bK1W85.js'; -import './shared-DWC9PG0H.js'; -import './aggregate-CrXc04Dg.js'; -import 'postgres'; - -const load = async ({ locals }) => { - if (!locals.user) redirect(302, "/"); - const rating = await db.query.playerRating.findFirst({ - where: eq(playerRating.userId, locals.user.id) - }); - const osuAccount = await db.query.account.findFirst({ - where: and(eq(account.userId, locals.user.id), eq(account.providerId, "osu")) - }); - return { - profile: { - id: locals.user.id, - name: locals.user.name, - email: locals.user.email, - image: locals.user.image, - role: locals.user.role ?? "player", - createdAt: locals.user.createdAt - }, - rating: rating ? { elo: rating.elo, wins: rating.wins, losses: rating.losses } : { elo: 1e3, wins: 0, losses: 0 }, - hasOsuLinked: !!osuAccount - }; -}; -const actions = { - logout: async (event) => { - await auth.api.signOut({ - headers: event.request.headers - }); - redirect(302, "/"); - } -}; - -var _page_server_ts = /*#__PURE__*/Object.freeze({ - __proto__: null, - actions: actions, - load: load -}); - -const index = 9; -let component_cache; -const component = async () => component_cache ??= (await import('./_page.svelte-D23V0tpa.js')).default; -const server_id = "src/routes/(app)/settings/+page.server.ts"; -const imports = ["_app/immutable/nodes/9.BTBc_Eli.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/BxEwC6Zc.js","_app/immutable/chunks/DoLu9QLy.js","_app/immutable/chunks/BQKoxf2Q.js","_app/immutable/chunks/kALFGdUG.js","_app/immutable/chunks/BAocuFgQ.js","_app/immutable/chunks/BkIq08el.js","_app/immutable/chunks/CvGSsBh3.js","_app/immutable/chunks/DAtZQVjv.js","_app/immutable/chunks/BnX5ZnVA.js","_app/immutable/chunks/BqOsL1Vv.js"]; -const stylesheets = []; -const fonts = []; - -export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; -//# sourceMappingURL=9-DztSgTEC.js.map diff --git a/build/server/chunks/9-DztSgTEC.js.map b/build/server/chunks/9-DztSgTEC.js.map deleted file mode 100644 index 859bb10..0000000 --- a/build/server/chunks/9-DztSgTEC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"9-DztSgTEC.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/settings/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/9.js"],"sourcesContent":["import { redirect } from \"@sveltejs/kit\";\nimport { a as auth } from \"../../../../chunks/auth.js\";\nimport { d as db, p as playerRating, j as account } from \"../../../../chunks/index2.js\";\nimport { eq, and } from \"drizzle-orm\";\nconst load = async ({ locals }) => {\n if (!locals.user) redirect(302, \"/\");\n const rating = await db.query.playerRating.findFirst({\n where: eq(playerRating.userId, locals.user.id)\n });\n const osuAccount = await db.query.account.findFirst({\n where: and(eq(account.userId, locals.user.id), eq(account.providerId, \"osu\"))\n });\n return {\n profile: {\n id: locals.user.id,\n name: locals.user.name,\n email: locals.user.email,\n image: locals.user.image,\n role: locals.user.role ?? \"player\",\n createdAt: locals.user.createdAt\n },\n rating: rating ? { elo: rating.elo, wins: rating.wins, losses: rating.losses } : { elo: 1e3, wins: 0, losses: 0 },\n hasOsuLinked: !!osuAccount\n };\n};\nconst actions = {\n logout: async (event) => {\n await auth.api.signOut({\n headers: event.request.headers\n });\n redirect(302, \"/\");\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/(app)/settings/_page.server.ts.js';\n\nexport const index = 9;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(app)/settings/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(app)/settings/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/9.BTBc_Eli.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/BxEwC6Zc.js\",\"_app/immutable/chunks/DoLu9QLy.js\",\"_app/immutable/chunks/BQKoxf2Q.js\",\"_app/immutable/chunks/kALFGdUG.js\",\"_app/immutable/chunks/BAocuFgQ.js\",\"_app/immutable/chunks/BkIq08el.js\",\"_app/immutable/chunks/CvGSsBh3.js\",\"_app/immutable/chunks/DAtZQVjv.js\",\"_app/immutable/chunks/BnX5ZnVA.js\",\"_app/immutable/chunks/BqOsL1Vv.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;AAIA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACtC,EAAE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;AACvD,IAAI,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AACjD,GAAG,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACtD,IAAI,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;AAChF,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,OAAO,EAAE;AACb,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AACxB,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;AAC5B,MAAM,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC9B,MAAM,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC9B,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ;AACxC,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AACrH,IAAI,YAAY,EAAE,CAAC,CAAC;AACpB,GAAG;AACH,CAAC;AACD,MAAM,OAAO,GAAG;AAChB,EAAE,MAAM,EAAE,OAAO,KAAK,KAAK;AAC3B,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3B,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;AAC7B,KAAK,CAAC;AACN,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AACtB,EAAE;AACF,CAAC;;;;;;;;AC9BW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAiD,CAAC,EAAE;AAE/G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_error.svelte-Szt4-wKI.js b/build/server/chunks/_error.svelte-Szt4-wKI.js deleted file mode 100644 index 286851d..0000000 --- a/build/server/chunks/_error.svelte-Szt4-wKI.js +++ /dev/null @@ -1,30 +0,0 @@ -import { a6 as escape_html } from './index3-C4geC3K_.js'; -import { p as page } from './index4-B8FtU3M-.js'; -import './state.svelte-DvHRBIfo.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './index-MqY7A75_.js'; -import './exports-B5ORJhfK.js'; - -function _error($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`

${escape_html(page.status)}

`); - if (page.status === 404) { - $$renderer2.push(""); - $$renderer2.push(`Page not found`); - } else if (page.status === 403) { - $$renderer2.push(""); - $$renderer2.push(`Access denied`); - } else if (page.status === 401) { - $$renderer2.push(""); - $$renderer2.push(`Not logged in`); - } else { - $$renderer2.push(""); - $$renderer2.push(`Something went wrong`); - } - $$renderer2.push(`

${escape_html(page.error?.message ?? "An unexpected error occurred.")}

Back to Dashboard
`); - }); -} - -export { _error as default }; -//# sourceMappingURL=_error.svelte-Szt4-wKI.js.map diff --git a/build/server/chunks/_error.svelte-Szt4-wKI.js.map b/build/server/chunks/_error.svelte-Szt4-wKI.js.map deleted file mode 100644 index 158df3a..0000000 --- a/build/server/chunks/_error.svelte-Szt4-wKI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_error.svelte-Szt4-wKI.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_error.svelte.js"],"sourcesContent":["import { e as escape_html } from \"../../chunks/index3.js\";\nimport \"clsx\";\nimport { p as page } from \"../../chunks/index4.js\";\nfunction _error($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`

${escape_html(page.status)}

`);\n if (page.status === 404) {\n $$renderer2.push(\"\");\n $$renderer2.push(`Page not found`);\n } else if (page.status === 403) {\n $$renderer2.push(\"\");\n $$renderer2.push(`Access denied`);\n } else if (page.status === 401) {\n $$renderer2.push(\"\");\n $$renderer2.push(`Not logged in`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`Something went wrong`);\n }\n $$renderer2.push(`

${escape_html(page.error?.message ?? \"An unexpected error occurred.\")}

Back to Dashboard
`);\n });\n}\nexport {\n _error as default\n};\n"],"names":[],"mappings":";;;;;;;;AAGA,SAAS,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;AACrC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,yIAAyI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,yDAAyD,CAAC,CAAC;AACrP,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;AAC7B,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACxC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;AACpC,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AACvC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;AACpC,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AACvC,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC9C,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,0DAA0D,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,+BAA+B,CAAC,CAAC,uLAAuL,CAAC,CAAC;AAC/U,EAAE,CAAC,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_layout.svelte-BV7ZtoED.js b/build/server/chunks/_layout.svelte-BV7ZtoED.js deleted file mode 100644 index bee8d1b..0000000 --- a/build/server/chunks/_layout.svelte-BV7ZtoED.js +++ /dev/null @@ -1,96 +0,0 @@ -import { a1 as derived, a8 as ensure_array_like, a9 as attr, aa as attr_class, ab as stringify, a6 as escape_html } from './index3-C4geC3K_.js'; -import { p as page } from './index4-B8FtU3M-.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; -import './index-MqY7A75_.js'; - -function Sidebar($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - const user = derived(() => page.data?.user); - const nav = [ - { href: "/", label: "Dashboard", icon: "⌂" }, - { href: "/matches", label: "Matches", icon: "⚔" }, - { href: "/mappools", label: "Mappools", icon: "♫" }, - { href: "/teams", label: "Teams", icon: "⚑" } - ]; - function isActive(href) { - if (href === "/") return page.url.pathname === "/"; - return page.url.pathname.startsWith(href); - } - const isAdmin = derived(() => user()?.role === "admin"); - $$renderer2.push(``); - }); -} -function Header($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - const user = derived(() => page.data?.user); - const roleBadge = { - referee: { label: "REF", color: "bg-yellow-500/20 text-yellow-400" }, - admin: { label: "ADMIN", color: "bg-red-500/20 text-red-400" } - }; - const badge = derived(() => user()?.role ? roleBadge[user().role] : null); - $$renderer2.push(`
`); - if (user()) { - $$renderer2.push(""); - $$renderer2.push(`
`); - if (badge()) { - $$renderer2.push(""); - $$renderer2.push(`${escape_html(badge().label)}`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (user().image) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` ${escape_html(user().name)}
`); - } else { - $$renderer2.push(""); - $$renderer2.push(`Sign in with osu!`); - } - $$renderer2.push(`
`); - }); -} -function _layout($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { children } = $$props; - const user = derived(() => page.data?.user); - if (user()) { - $$renderer2.push(""); - $$renderer2.push(`
`); - Sidebar($$renderer2); - $$renderer2.push(`
`); - Header($$renderer2); - $$renderer2.push(`
`); - children($$renderer2); - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - $$renderer2.push(`
V
Vash Esports
Sign in with osu!
`); - children($$renderer2); - $$renderer2.push(`
`); - } - $$renderer2.push(``); - }); -} - -export { _layout as default }; -//# sourceMappingURL=_layout.svelte-BV7ZtoED.js.map diff --git a/build/server/chunks/_layout.svelte-BV7ZtoED.js.map b/build/server/chunks/_layout.svelte-BV7ZtoED.js.map deleted file mode 100644 index 53b5c6a..0000000 --- a/build/server/chunks/_layout.svelte-BV7ZtoED.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_layout.svelte-BV7ZtoED.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/_layout.svelte.js"],"sourcesContent":["import { a as ensure_array_like, b as attr, c as attr_class, s as stringify, e as escape_html, d as derived } from \"../../../chunks/index3.js\";\nimport { p as page } from \"../../../chunks/index4.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../chunks/url.js\";\nimport \"../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../chunks/root.js\";\nimport \"../../../chunks/exports.js\";\nimport \"../../../chunks/state.svelte.js\";\nfunction Sidebar($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const user = derived(() => page.data?.user);\n const nav = [\n { href: \"/\", label: \"Dashboard\", icon: \"⌂\" },\n { href: \"/matches\", label: \"Matches\", icon: \"⚔\" },\n { href: \"/mappools\", label: \"Mappools\", icon: \"♫\" },\n { href: \"/teams\", label: \"Teams\", icon: \"⚑\" }\n ];\n function isActive(href) {\n if (href === \"/\") return page.url.pathname === \"/\";\n return page.url.pathname.startsWith(href);\n }\n const isAdmin = derived(() => user()?.role === \"admin\");\n $$renderer2.push(``);\n });\n}\nfunction Header($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const user = derived(() => page.data?.user);\n const roleBadge = {\n referee: { label: \"REF\", color: \"bg-yellow-500/20 text-yellow-400\" },\n admin: { label: \"ADMIN\", color: \"bg-red-500/20 text-red-400\" }\n };\n const badge = derived(() => user()?.role ? roleBadge[user().role] : null);\n $$renderer2.push(`
`);\n if (user()) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n if (badge()) {\n $$renderer2.push(\"\");\n $$renderer2.push(`${escape_html(badge().label)}`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (user().image) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` ${escape_html(user().name)}
`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`Sign in with osu!`);\n }\n $$renderer2.push(`
`);\n });\n}\nfunction _layout($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { children } = $$props;\n const user = derived(() => page.data?.user);\n if (user()) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n Sidebar($$renderer2);\n $$renderer2.push(`
`);\n Header($$renderer2);\n $$renderer2.push(`
`);\n children($$renderer2);\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`
V
Vash Esports
Sign in with osu!
`);\n children($$renderer2);\n $$renderer2.push(`
`);\n }\n $$renderer2.push(``);\n });\n}\nexport {\n _layout as default\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-6xWa24o9.js b/build/server/chunks/_page.svelte-6xWa24o9.js deleted file mode 100644 index 6a281f4..0000000 --- a/build/server/chunks/_page.svelte-6xWa24o9.js +++ /dev/null @@ -1,68 +0,0 @@ -import { a6 as escape_html, a8 as ensure_array_like, a9 as attr, ab as stringify } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - const roleBadge = { - player: { - label: "Player", - color: "bg-surface-600 text-text-secondary border-border" - }, - referee: { - label: "Referee", - color: "bg-yellow-500/20 text-yellow-400 border-yellow-500/30" - }, - admin: { - label: "Admin", - color: "bg-red-500/20 text-red-400 border-red-500/30" - } - }; - $$renderer2.push(`

Admin Panel

${escape_html(data.users.length)} registered user${escape_html(data.users.length !== 1 ? "s" : "")}

`); - { - $$renderer2.push(""); - } - $$renderer2.push(`
Avatar User ELO W/L Role
`); - const each_array = ensure_array_like(data.users); - for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) { - let u = each_array[$$index]; - const badge = roleBadge[u.role] ?? roleBadge.player; - $$renderer2.push(`
`); - if (u.image) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - $$renderer2.push(`
${escape_html(u.name.charAt(0).toUpperCase())}
`); - } - $$renderer2.push(`

${escape_html(u.name)}

${escape_html(u.email)}

${escape_html(u.elo)} ${escape_html(u.wins)}W / ${escape_html(u.losses)}L
`); - $$renderer2.select( - { - name: "role", - value: u.role, - onchange: (e) => e.currentTarget.form?.requestSubmit(), - class: `rounded-md border px-2 py-1 text-xs font-500 ${stringify(badge.color)} cursor-pointer bg-transparent focus:outline-none` - }, - ($$renderer3) => { - $$renderer3.option({ value: "player", class: "bg-surface-800 text-text-primary" }, ($$renderer4) => { - $$renderer4.push(`Player`); - }); - $$renderer3.option({ value: "referee", class: "bg-surface-800 text-text-primary" }, ($$renderer4) => { - $$renderer4.push(`Referee`); - }); - $$renderer3.option({ value: "admin", class: "bg-surface-800 text-text-primary" }, ($$renderer4) => { - $$renderer4.push(`Admin`); - }); - } - ); - $$renderer2.push(`
`); - } - $$renderer2.push(`
`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-6xWa24o9.js.map diff --git a/build/server/chunks/_page.svelte-6xWa24o9.js.map b/build/server/chunks/_page.svelte-6xWa24o9.js.map deleted file mode 100644 index 6a6eb23..0000000 --- a/build/server/chunks/_page.svelte-6xWa24o9.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-6xWa24o9.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/admin/_page.svelte.js"],"sourcesContent":["import { e as escape_html, a as ensure_array_like, b as attr, s as stringify } from \"../../../../chunks/index3.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../chunks/url.js\";\nimport \"../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../chunks/root.js\";\nimport \"../../../../chunks/exports.js\";\nimport \"../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const roleBadge = {\n player: {\n label: \"Player\",\n color: \"bg-surface-600 text-text-secondary border-border\"\n },\n referee: {\n label: \"Referee\",\n color: \"bg-yellow-500/20 text-yellow-400 border-yellow-500/30\"\n },\n admin: {\n label: \"Admin\",\n color: \"bg-red-500/20 text-red-400 border-red-500/30\"\n }\n };\n $$renderer2.push(`

Admin Panel

${escape_html(data.users.length)} registered user${escape_html(data.users.length !== 1 ? \"s\" : \"\")}

`);\n {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
Avatar User ELO W/L Role
`);\n const each_array = ensure_array_like(data.users);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let u = each_array[$$index];\n const badge = roleBadge[u.role] ?? roleBadge.player;\n $$renderer2.push(`
`);\n if (u.image) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`
${escape_html(u.name.charAt(0).toUpperCase())}
`);\n }\n $$renderer2.push(`

${escape_html(u.name)}

${escape_html(u.email)}

${escape_html(u.elo)} ${escape_html(u.wins)}W / ${escape_html(u.losses)}L
`);\n $$renderer2.select(\n {\n name: \"role\",\n value: u.role,\n onchange: (e) => e.currentTarget.form?.requestSubmit(),\n class: `rounded-md border px-2 py-1 text-xs font-500 ${stringify(badge.color)} cursor-pointer bg-transparent focus:outline-none`\n },\n ($$renderer3) => {\n $$renderer3.option({ value: \"player\", class: \"bg-surface-800 text-text-primary\" }, ($$renderer4) => {\n $$renderer4.push(`Player`);\n });\n $$renderer3.option({ value: \"referee\", class: \"bg-surface-800 text-text-primary\" }, ($$renderer4) => {\n $$renderer4.push(`Referee`);\n });\n $$renderer3.option({ value: \"admin\", class: \"bg-surface-800 text-text-primary\" }, ($$renderer4) => {\n $$renderer4.push(`Admin`);\n });\n }\n );\n $$renderer2.push(`
`);\n }\n $$renderer2.push(`
`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;AAQA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AAC1B,IAAI,MAAM,SAAS,GAAG;AACtB,MAAM,MAAM,EAAE;AACd,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,MAAM,OAAO,EAAE;AACf,QAAQ,KAAK,EAAE,SAAS;AACxB,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,MAAM,KAAK,EAAE;AACb,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,KAAK,EAAE;AACf;AACA,KAAK;AACL,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,8IAA8I,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;AACpR,IAAI;AACJ,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,gfAAgf,CAAC,CAAC;AACxgB,IAAI,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE;AACvF,MAAM,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;AACjC,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM;AACzD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,6HAA6H,CAAC,CAAC;AACvJ,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE;AACnB,QAAQ,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,sCAAsC,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,uHAAuH,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AACvM,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,mEAAmE,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qDAAqD,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yEAAyE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,4FAA4F,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sCAAsC,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,yHAAyH,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/lB,MAAM,WAAW,CAAC,MAAM;AACxB,QAAQ;AACR,UAAU,IAAI,EAAE,MAAM;AACtB,UAAU,KAAK,EAAE,CAAC,CAAC,IAAI;AACvB,UAAU,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE;AAChE,UAAU,KAAK,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,iDAAiD;AACzI,SAAS;AACT,QAAQ,CAAC,WAAW,KAAK;AACzB,UAAU,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,CAAC,WAAW,KAAK;AAC9G,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACtC,UAAU,CAAC,CAAC;AACZ,UAAU,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,CAAC,WAAW,KAAK;AAC/G,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AACvC,UAAU,CAAC,CAAC;AACZ,UAAU,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,CAAC,WAAW,KAAK;AAC7G,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACrC,UAAU,CAAC,CAAC;AACZ,QAAQ;AACR,OAAO;AACP,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AACvC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC5C,EAAE,CAAC,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-B33-skqO.js b/build/server/chunks/_page.svelte-B33-skqO.js deleted file mode 100644 index 6b92b2c..0000000 --- a/build/server/chunks/_page.svelte-B33-skqO.js +++ /dev/null @@ -1,136 +0,0 @@ -import { a6 as escape_html, a8 as ensure_array_like, a9 as attr, aa as attr_class, ab as stringify, a1 as derived } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - let expandedTeam = null; - let addingMemberTo = null; - let memberUsername = ""; - const myTeams = derived(() => data.teams.filter((t) => t.members.some((m) => m.userId === data.userId))); - const otherTeams = derived(() => data.teams.filter((t) => !t.members.some((m) => m.userId === data.userId))); - function isOwner(t) { - return t.ownerId === data.userId; - } - $$renderer2.push(`

Teams

${escape_html(data.teams.length)} team${escape_html(data.teams.length !== 1 ? "s" : "")}

`); - { - $$renderer2.push(""); - } - $$renderer2.push(` `); - { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (myTeams().length > 0) { - $$renderer2.push(""); - $$renderer2.push(`

My Teams

`); - const each_array = ensure_array_like(myTeams()); - for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) { - let t = each_array[$$index_1]; - $$renderer2.push(`
`); - if (expandedTeam === t.id) { - $$renderer2.push(""); - $$renderer2.push(`
`); - const each_array_1 = ensure_array_like(t.members); - for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) { - let member = each_array_1[$$index]; - $$renderer2.push(`
`); - if (member.user?.image) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - $$renderer2.push(`
`); - } - $$renderer2.push(` ${escape_html(member.user?.name ?? "Unknown")} ${escape_html(member.role)} `); - if (isOwner(t) && member.userId !== data.userId) { - $$renderer2.push(""); - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - } - $$renderer2.push(`
`); - if (isOwner(t) && !t.isPersonal) { - $$renderer2.push(""); - if (addingMemberTo === t.id) { - $$renderer2.push(""); - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - $$renderer2.push(``); - } - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (isOwner(t) && !t.isPersonal) { - $$renderer2.push(""); - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (otherTeams().length > 0) { - $$renderer2.push(""); - $$renderer2.push(`

Other Teams

`); - const each_array_2 = ensure_array_like(otherTeams()); - for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) { - let t = each_array_2[$$index_2]; - $$renderer2.push(`
`); - if (t.avatarUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - $$renderer2.push(`
${escape_html(t.name.charAt(0).toUpperCase())}
`); - } - $$renderer2.push(`
${escape_html(t.name)}

${escape_html(t.members.length)} member${escape_html(t.members.length !== 1 ? "s" : "")}

`); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (data.teams.length === 0) { - $$renderer2.push(""); - $$renderer2.push(`

No teams yet. Your personal team is created when you sign in.

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-B33-skqO.js.map diff --git a/build/server/chunks/_page.svelte-B33-skqO.js.map b/build/server/chunks/_page.svelte-B33-skqO.js.map deleted file mode 100644 index a0f9352..0000000 --- a/build/server/chunks/_page.svelte-B33-skqO.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-B33-skqO.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/teams/_page.svelte.js"],"sourcesContent":["import { e as escape_html, a as ensure_array_like, b as attr, c as attr_class, s as stringify, d as derived } from \"../../../../chunks/index3.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../chunks/url.js\";\nimport \"../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../chunks/root.js\";\nimport \"../../../../chunks/exports.js\";\nimport \"../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n let expandedTeam = null;\n let addingMemberTo = null;\n let memberUsername = \"\";\n const myTeams = derived(() => data.teams.filter((t) => t.members.some((m) => m.userId === data.userId)));\n const otherTeams = derived(() => data.teams.filter((t) => !t.members.some((m) => m.userId === data.userId)));\n function isOwner(t) {\n return t.ownerId === data.userId;\n }\n $$renderer2.push(`

Teams

${escape_html(data.teams.length)} team${escape_html(data.teams.length !== 1 ? \"s\" : \"\")}

`);\n {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (myTeams().length > 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

My Teams

`);\n const each_array = ensure_array_like(myTeams());\n for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {\n let t = each_array[$$index_1];\n $$renderer2.push(`
`);\n if (expandedTeam === t.id) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n const each_array_1 = ensure_array_like(t.members);\n for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) {\n let member = each_array_1[$$index];\n $$renderer2.push(`
`);\n if (member.user?.image) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n }\n $$renderer2.push(` ${escape_html(member.user?.name ?? \"Unknown\")} ${escape_html(member.role)} `);\n if (isOwner(t) && member.userId !== data.userId) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n }\n $$renderer2.push(`
`);\n if (isOwner(t) && !t.isPersonal) {\n $$renderer2.push(\"\");\n if (addingMemberTo === t.id) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n }\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (isOwner(t) && !t.isPersonal) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (otherTeams().length > 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Other Teams

`);\n const each_array_2 = ensure_array_like(otherTeams());\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let t = each_array_2[$$index_2];\n $$renderer2.push(`
`);\n if (t.avatarUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`
${escape_html(t.name.charAt(0).toUpperCase())}
`);\n }\n $$renderer2.push(`
${escape_html(t.name)}

${escape_html(t.members.length)} member${escape_html(t.members.length !== 1 ? \"s\" : \"\")}

`);\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (data.teams.length === 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

No teams yet. Your personal team is created when you sign in.

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;AAQA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AAC1B,IAAI,IAAI,YAAY,GAAG,IAAI;AAC3B,IAAI,IAAI,cAAc,GAAG,IAAI;AAC7B,IAAI,IAAI,cAAc,GAAG,EAAE;AAC3B,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5G,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAChH,IAAI,SAAS,OAAO,CAAC,CAAC,EAAE;AACxB,MAAM,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM;AACtC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,uLAAuL,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,oIAAoI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACrd,IAAI;AACJ,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI;AACJ,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,IAAI,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,+HAA+H,CAAC,CAAC;AACzJ,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC;AACrD,MAAM,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE;AAC/F,QAAQ,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,kLAAkL,CAAC,CAAC;AAC9M,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE;AACzB,UAAU,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,wCAAwC,CAAC,CAAC;AACrG,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,yHAAyH,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3M,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,iGAAiG,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3J,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE;AAC1B,UAAU,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,uGAAuG,CAAC,CAAC;AACrI,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,6DAA6D,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,iDAAiD,EAAE,SAAS,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC5U,QAAQ,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,EAAE;AACnC,UAAU,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,4FAA4F,CAAC,CAAC;AAC1H,UAAU,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3D,UAAU,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,EAAE;AACjG,YAAY,IAAI,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC;AAC9C,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,yEAAyE,CAAC,CAAC;AACzG,YAAY,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;AACpC,cAAc,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,sCAAsC,CAAC,CAAC;AAC7G,YAAY,CAAC,MAAM;AACnB,cAAc,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,uDAAuD,CAAC,CAAC;AACzF,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,sCAAsC,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC,kDAAkD,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzM,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AAC7D,cAAc,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,gFAAgF,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,uHAAuH,CAAC,CAAC;AACpQ,YAAY,CAAC,MAAM;AACnB,cAAc,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAC9C,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AAC7C,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AAC3C,YAAY,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,YAAY,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,EAAE;AACzC,cAAc,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,mGAAmG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,qCAAqC,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,8eAA8e,CAAC,CAAC;AAC9sB,YAAY,CAAC,MAAM;AACnB,cAAc,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,2LAA2L,CAAC,CAAC;AAC7N,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxC,UAAU,CAAC,MAAM;AACjB,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACvC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AAC3C,YAAY,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,4EAA4E,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,sIAAsI,CAAC,CAAC;AACxQ,UAAU,CAAC,MAAM;AACjB,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5C,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAC1C,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC9C,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,IAAI,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,kIAAkI,CAAC,CAAC;AAC5J,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;AAC1D,MAAM,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE;AACjG,QAAQ,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC;AACvC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,wFAAwF,CAAC,CAAC;AACpH,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE;AACzB,UAAU,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,sCAAsC,CAAC,CAAC;AACnG,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,uHAAuH,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AACzM,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,4DAA4D,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,+CAA+C,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACrQ,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC9C,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gMAAgM,CAAC,CAAC;AAC1N,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACtC,EAAE,CAAC,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-Be6BiSzg.js b/build/server/chunks/_page.svelte-Be6BiSzg.js deleted file mode 100644 index fe0deb3..0000000 --- a/build/server/chunks/_page.svelte-Be6BiSzg.js +++ /dev/null @@ -1,96 +0,0 @@ -import { a6 as escape_html, a8 as ensure_array_like, a9 as attr, aa as attr_class, a1 as derived, ab as stringify } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - const categories = ["NM", "HD", "HR", "DT", "FM", "TB"]; - let addingCategory = "NM"; - let beatmapInput = ""; - const grouped = derived(() => () => { - const groups = {}; - for (const cat of categories) { - const slots = data.pool.slots.filter((s) => s.category === cat); - if (slots.length > 0) groups[cat] = slots; - } - return groups; - }); - function formatLength(seconds) { - const m = Math.floor(seconds / 60); - const s = seconds % 60; - return `${m}:${s.toString().padStart(2, "0")}`; - } - const categoryColors = { - NM: "bg-blue-500/20 text-blue-400 border-blue-500/30", - HD: "bg-yellow-500/20 text-yellow-400 border-yellow-500/30", - HR: "bg-red-500/20 text-red-400 border-red-500/30", - DT: "bg-purple-500/20 text-purple-400 border-purple-500/30", - FM: "bg-green-500/20 text-green-400 border-green-500/30", - TB: "bg-pink-500/20 text-pink-400 border-pink-500/30" - }; - $$renderer2.push(`
←

${escape_html(data.pool.name)}

${escape_html(data.pool.slots.length)} map${escape_html(data.pool.slots.length !== 1 ? "s" : "")}

Add Map

`); - $$renderer2.select( - { - name: "category", - value: addingCategory, - class: "rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none" - }, - ($$renderer3) => { - $$renderer3.push(``); - const each_array = ensure_array_like(categories); - for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) { - let cat = each_array[$$index]; - $$renderer3.option({ value: cat }, ($$renderer4) => { - $$renderer4.push(`${escape_html(cat)}`); - }); - } - $$renderer3.push(``); - } - ); - $$renderer2.push(`
`); - { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - const each_array_1 = ensure_array_like(Object.entries(grouped()())); - if (each_array_1.length !== 0) { - $$renderer2.push(""); - for (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) { - let [category, slots] = each_array_1[$$index_2]; - $$renderer2.push(`
${escape_html(category)} ${escape_html(slots.length)} map${escape_html(slots.length !== 1 ? "s" : "")}
`); - const each_array_2 = ensure_array_like(slots); - for (let i = 0, $$length2 = each_array_2.length; i < $$length2; i++) { - let slot = each_array_2[i]; - $$renderer2.push(`
`); - if (slot.beatmap?.coverUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - $$renderer2.push(`
No cover
`); - } - $$renderer2.push(`
`); - if (slot.beatmap) { - $$renderer2.push(""); - $$renderer2.push(`${escape_html(slot.beatmap.artist)} - ${escape_html(slot.beatmap.title)}
[${escape_html(slot.beatmap.version)}] ★ ${escape_html(slot.beatmap.starRating.toFixed(2))} ${escape_html(slot.beatmap.bpm)} BPM ${escape_html(formatLength(slot.beatmap.totalLength))}
`); - } else { - $$renderer2.push(""); - $$renderer2.push(`

Beatmap #${escape_html(slot.beatmapId)}

`); - } - $$renderer2.push(`
${escape_html(category)}${escape_html(i + 1)}
`); - } - $$renderer2.push(`
`); - } - } else { - $$renderer2.push(""); - $$renderer2.push(`

No maps yet. Add your first map above.

`); - } - $$renderer2.push(`
`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-Be6BiSzg.js.map diff --git a/build/server/chunks/_page.svelte-Be6BiSzg.js.map b/build/server/chunks/_page.svelte-Be6BiSzg.js.map deleted file mode 100644 index c7437aa..0000000 --- a/build/server/chunks/_page.svelte-Be6BiSzg.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-Be6BiSzg.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/mappools/_id_/_page.svelte.js"],"sourcesContent":["import { e as escape_html, a as ensure_array_like, b as attr, c as attr_class, d as derived, s as stringify } from \"../../../../../chunks/index3.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../../chunks/url.js\";\nimport \"../../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../../chunks/root.js\";\nimport \"../../../../../chunks/exports.js\";\nimport \"../../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const categories = [\"NM\", \"HD\", \"HR\", \"DT\", \"FM\", \"TB\"];\n let addingCategory = \"NM\";\n let beatmapInput = \"\";\n const grouped = derived(() => () => {\n const groups = {};\n for (const cat of categories) {\n const slots = data.pool.slots.filter((s) => s.category === cat);\n if (slots.length > 0) groups[cat] = slots;\n }\n return groups;\n });\n function formatLength(seconds) {\n const m = Math.floor(seconds / 60);\n const s = seconds % 60;\n return `${m}:${s.toString().padStart(2, \"0\")}`;\n }\n const categoryColors = {\n NM: \"bg-blue-500/20 text-blue-400 border-blue-500/30\",\n HD: \"bg-yellow-500/20 text-yellow-400 border-yellow-500/30\",\n HR: \"bg-red-500/20 text-red-400 border-red-500/30\",\n DT: \"bg-purple-500/20 text-purple-400 border-purple-500/30\",\n FM: \"bg-green-500/20 text-green-400 border-green-500/30\",\n TB: \"bg-pink-500/20 text-pink-400 border-pink-500/30\"\n };\n $$renderer2.push(`
←

${escape_html(data.pool.name)}

${escape_html(data.pool.slots.length)} map${escape_html(data.pool.slots.length !== 1 ? \"s\" : \"\")}

Add Map

`);\n $$renderer2.select(\n {\n name: \"category\",\n value: addingCategory,\n class: \"rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none\"\n },\n ($$renderer3) => {\n $$renderer3.push(``);\n const each_array = ensure_array_like(categories);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let cat = each_array[$$index];\n $$renderer3.option({ value: cat }, ($$renderer4) => {\n $$renderer4.push(`${escape_html(cat)}`);\n });\n }\n $$renderer3.push(``);\n }\n );\n $$renderer2.push(`
`);\n {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n const each_array_1 = ensure_array_like(Object.entries(grouped()()));\n if (each_array_1.length !== 0) {\n $$renderer2.push(\"\");\n for (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) {\n let [category, slots] = each_array_1[$$index_2];\n $$renderer2.push(`
${escape_html(category)} ${escape_html(slots.length)} map${escape_html(slots.length !== 1 ? \"s\" : \"\")}
`);\n const each_array_2 = ensure_array_like(slots);\n for (let i = 0, $$length2 = each_array_2.length; i < $$length2; i++) {\n let slot = each_array_2[i];\n $$renderer2.push(`
`);\n if (slot.beatmap?.coverUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`
No cover
`);\n }\n $$renderer2.push(`
`);\n if (slot.beatmap) {\n $$renderer2.push(\"\");\n $$renderer2.push(`${escape_html(slot.beatmap.artist)} - ${escape_html(slot.beatmap.title)}
[${escape_html(slot.beatmap.version)}] ★ ${escape_html(slot.beatmap.starRating.toFixed(2))} ${escape_html(slot.beatmap.bpm)} BPM ${escape_html(formatLength(slot.beatmap.totalLength))}
`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Beatmap #${escape_html(slot.beatmapId)}

`);\n }\n $$renderer2.push(`
${escape_html(category)}${escape_html(i + 1)}
`);\n }\n $$renderer2.push(`
`);\n }\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`

No maps yet. Add your first map above.

`);\n }\n $$renderer2.push(`
`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-Bj4oURhW.js b/build/server/chunks/_page.svelte-Bj4oURhW.js deleted file mode 100644 index 4d8257b..0000000 --- a/build/server/chunks/_page.svelte-Bj4oURhW.js +++ /dev/null @@ -1,162 +0,0 @@ -import { a6 as escape_html, a8 as ensure_array_like, a9 as attr, ab as stringify, aa as attr_class, a1 as derived } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - const stateConfig = { - CREATED: { label: "Created", color: "text-text-secondary border-border" }, - LOBBY: { - label: "In Lobby", - color: "text-yellow-400 border-yellow-500/30" - }, - ROLLING: { - label: "Rolling", - color: "text-yellow-400 border-yellow-500/30", - dot: "bg-yellow-400" - }, - PICKING: { - label: "Picking", - color: "text-blue-400 border-blue-500/30", - dot: "bg-blue-400" - }, - PLAYING: { - label: "Live", - color: "text-green-400 border-green-500/30", - dot: "bg-green-400" - }, - FINISHED: { - label: "Finished", - color: "text-text-secondary border-border" - }, - CANCELLED: { label: "Cancelled", color: "text-red-400 border-red-500/30" } - }; - const liveStates = ["LOBBY", "ROLLING", "PICKING", "PLAYING"]; - const liveMatches = derived(() => data.matches.filter((m) => liveStates.includes(m.state))); - const recentMatches = derived(() => data.matches.filter((m) => !liveStates.includes(m.state))); - function teamDisplay(m) { - const p1 = m.participants[0]; - const p2 = m.participants[1]; - return { p1, p2 }; - } - function timeAgo(date) { - const d = new Date(date); - const diff = Date.now() - d.getTime(); - const mins = Math.floor(diff / 6e4); - if (mins < 1) return "just now"; - if (mins < 60) return `${mins}m ago`; - const hours = Math.floor(mins / 60); - if (hours < 24) return `${hours}h ago`; - const days = Math.floor(hours / 24); - return `${days}d ago`; - } - $$renderer2.push(`

Matches

${escape_html(data.matches.length)} match${escape_html(data.matches.length !== 1 ? "es" : "")} `); - if (liveMatches().length > 0) { - $$renderer2.push(""); - $$renderer2.push(`· ${escape_html(liveMatches().length)} live`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`

`); - { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (liveMatches().length > 0) { - $$renderer2.push(""); - $$renderer2.push(`

Live Now

`); - const each_array_4 = ensure_array_like(liveMatches()); - for (let $$index_4 = 0, $$length = each_array_4.length; $$index_4 < $$length; $$index_4++) { - let m = each_array_4[$$index_4]; - const { p1, p2 } = teamDisplay(m); - const sc = stateConfig[m.state]; - $$renderer2.push(`
`); - if (p1?.team.avatarUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` ${escape_html(p1?.team.name ?? "?")}
${escape_html(p1?.score ?? 0)} vs ${escape_html(p2?.score ?? 0)}
${escape_html(p2?.team.name ?? "?")} `); - if (p2?.team.avatarUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - if (sc?.dot) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` ${escape_html(sc?.label ?? m.state)}`); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - if (liveMatches().length > 0) { - $$renderer2.push(""); - $$renderer2.push(`

Past Matches

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - const each_array_5 = ensure_array_like(recentMatches()); - if (each_array_5.length !== 0) { - $$renderer2.push(""); - for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) { - let m = each_array_5[$$index_5]; - const { p1, p2 } = teamDisplay(m); - const config = m.config; - const sc = stateConfig[m.state]; - $$renderer2.push(`
${escape_html(p1?.team.name ?? "?")} `); - if (m.state === "FINISHED") { - $$renderer2.push(""); - $$renderer2.push(` (p2?.score ?? 0) ? "text-green-400" : "text-text-secondary")}`)}>${escape_html(p1?.score ?? 0)} - (p1?.score ?? 0) ? "text-green-400" : "text-text-secondary")}`)}>${escape_html(p2?.score ?? 0)}`); - } else { - $$renderer2.push(""); - $$renderer2.push(`vs`); - } - $$renderer2.push(` ${escape_html(p2?.team.name ?? "?")}

${escape_html(m.name ? `${m.name} · ` : "")}BO${escape_html(config.bestOf)} `); - if (m.finishedAt) { - $$renderer2.push(""); - $$renderer2.push(`· ${escape_html(timeAgo(m.finishedAt))}`); - } else if (m.createdAt) { - $$renderer2.push(""); - $$renderer2.push(`· ${escape_html(timeAgo(m.createdAt))}`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`

`); - if (m.state === "FINISHED" && m.winnerId) { - $$renderer2.push(""); - const winner = m.participants.find((p) => p.teamId === m.winnerId); - $$renderer2.push(`🏆 ${escape_html(winner?.team.name)}`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` ${escape_html(sc?.label ?? m.state)}`); - } - } else { - $$renderer2.push(""); - if (liveMatches().length === 0) { - $$renderer2.push(""); - $$renderer2.push(`

No matches yet. Create one to get started.

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(``); - } - $$renderer2.push(`
`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-Bj4oURhW.js.map diff --git a/build/server/chunks/_page.svelte-Bj4oURhW.js.map b/build/server/chunks/_page.svelte-Bj4oURhW.js.map deleted file mode 100644 index 3035ef8..0000000 --- a/build/server/chunks/_page.svelte-Bj4oURhW.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-Bj4oURhW.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/matches/_page.svelte.js"],"sourcesContent":["import { e as escape_html, a as ensure_array_like, b as attr, s as stringify, c as attr_class, d as derived } from \"../../../../chunks/index3.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../chunks/url.js\";\nimport \"../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../chunks/root.js\";\nimport \"../../../../chunks/exports.js\";\nimport \"../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const stateConfig = {\n CREATED: { label: \"Created\", color: \"text-text-secondary border-border\" },\n LOBBY: {\n label: \"In Lobby\",\n color: \"text-yellow-400 border-yellow-500/30\"\n },\n ROLLING: {\n label: \"Rolling\",\n color: \"text-yellow-400 border-yellow-500/30\",\n dot: \"bg-yellow-400\"\n },\n PICKING: {\n label: \"Picking\",\n color: \"text-blue-400 border-blue-500/30\",\n dot: \"bg-blue-400\"\n },\n PLAYING: {\n label: \"Live\",\n color: \"text-green-400 border-green-500/30\",\n dot: \"bg-green-400\"\n },\n FINISHED: {\n label: \"Finished\",\n color: \"text-text-secondary border-border\"\n },\n CANCELLED: { label: \"Cancelled\", color: \"text-red-400 border-red-500/30\" }\n };\n const liveStates = [\"LOBBY\", \"ROLLING\", \"PICKING\", \"PLAYING\"];\n const liveMatches = derived(() => data.matches.filter((m) => liveStates.includes(m.state)));\n const recentMatches = derived(() => data.matches.filter((m) => !liveStates.includes(m.state)));\n function teamDisplay(m) {\n const p1 = m.participants[0];\n const p2 = m.participants[1];\n return { p1, p2 };\n }\n function timeAgo(date) {\n const d = new Date(date);\n const diff = Date.now() - d.getTime();\n const mins = Math.floor(diff / 6e4);\n if (mins < 1) return \"just now\";\n if (mins < 60) return `${mins}m ago`;\n const hours = Math.floor(mins / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n return `${days}d ago`;\n }\n $$renderer2.push(`

Matches

${escape_html(data.matches.length)} match${escape_html(data.matches.length !== 1 ? \"es\" : \"\")} `);\n if (liveMatches().length > 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`· ${escape_html(liveMatches().length)} live`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`

`);\n {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (liveMatches().length > 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Live Now

`);\n const each_array_4 = ensure_array_like(liveMatches());\n for (let $$index_4 = 0, $$length = each_array_4.length; $$index_4 < $$length; $$index_4++) {\n let m = each_array_4[$$index_4];\n const { p1, p2 } = teamDisplay(m);\n const sc = stateConfig[m.state];\n $$renderer2.push(`
`);\n if (p1?.team.avatarUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` ${escape_html(p1?.team.name ?? \"?\")}
${escape_html(p1?.score ?? 0)} vs ${escape_html(p2?.score ?? 0)}
${escape_html(p2?.team.name ?? \"?\")} `);\n if (p2?.team.avatarUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n if (sc?.dot) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` ${escape_html(sc?.label ?? m.state)}`);\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n if (liveMatches().length > 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Past Matches

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n const each_array_5 = ensure_array_like(recentMatches());\n if (each_array_5.length !== 0) {\n $$renderer2.push(\"\");\n for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {\n let m = each_array_5[$$index_5];\n const { p1, p2 } = teamDisplay(m);\n const config = m.config;\n const sc = stateConfig[m.state];\n $$renderer2.push(`
${escape_html(p1?.team.name ?? \"?\")} `);\n if (m.state === \"FINISHED\") {\n $$renderer2.push(\"\");\n $$renderer2.push(` (p2?.score ?? 0) ? \"text-green-400\" : \"text-text-secondary\")}`)}>${escape_html(p1?.score ?? 0)} - (p1?.score ?? 0) ? \"text-green-400\" : \"text-text-secondary\")}`)}>${escape_html(p2?.score ?? 0)}`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`vs`);\n }\n $$renderer2.push(` ${escape_html(p2?.team.name ?? \"?\")}

${escape_html(m.name ? `${m.name} · ` : \"\")}BO${escape_html(config.bestOf)} `);\n if (m.finishedAt) {\n $$renderer2.push(\"\");\n $$renderer2.push(`· ${escape_html(timeAgo(m.finishedAt))}`);\n } else if (m.createdAt) {\n $$renderer2.push(\"\");\n $$renderer2.push(`· ${escape_html(timeAgo(m.createdAt))}`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`

`);\n if (m.state === \"FINISHED\" && m.winnerId) {\n $$renderer2.push(\"\");\n const winner = m.participants.find((p) => p.teamId === m.winnerId);\n $$renderer2.push(`🏆 ${escape_html(winner?.team.name)}`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` ${escape_html(sc?.label ?? m.state)}`);\n }\n } else {\n $$renderer2.push(\"\");\n if (liveMatches().length === 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

No matches yet. Create one to get started.

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(``);\n }\n $$renderer2.push(`
`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-C-71W7Xe.js b/build/server/chunks/_page.svelte-C-71W7Xe.js deleted file mode 100644 index 670d099..0000000 --- a/build/server/chunks/_page.svelte-C-71W7Xe.js +++ /dev/null @@ -1,119 +0,0 @@ -import { a6 as escape_html, a8 as ensure_array_like, a9 as attr, ab as stringify, aa as attr_class } from './index3-C4geC3K_.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - const stateConfig = { - CREATED: { label: "Created", color: "text-text-secondary" }, - LOBBY: { label: "In Lobby", color: "text-yellow-400" }, - ROLLING: { - label: "Rolling", - color: "text-yellow-400", - dot: "bg-yellow-400" - }, - PICKING: { label: "Picking", color: "text-blue-400", dot: "bg-blue-400" }, - PLAYING: { label: "Live", color: "text-green-400", dot: "bg-green-400" }, - FINISHED: { label: "Finished", color: "text-text-secondary" }, - CANCELLED: { label: "Cancelled", color: "text-red-400" } - }; - let queueLoading = false; - function timeAgo(date) { - const d = new Date(date); - const diff = Date.now() - d.getTime(); - const mins = Math.floor(diff / 6e4); - if (mins < 1) return "just now"; - if (mins < 60) return `${mins}m ago`; - const hours = Math.floor(mins / 60); - if (hours < 24) return `${hours}h ago`; - const days = Math.floor(hours / 24); - return `${days}d ago`; - } - if (!data.user) { - $$renderer2.push(""); - $$renderer2.push(`
V

Welcome to Vash Esports

Automated tournament match management for osu! — lobbies, mappools, picks, bans, and - ELO tracking all in one place.

Sign in with osu!

Uses your osu! account. No extra registration needed.

`); - } else { - $$renderer2.push(""); - $$renderer2.push(`

Welcome back, ${escape_html(data.user.name)}

Automated esports match management for osu!

${escape_html(data.stats.matches)}

Total Matches

${escape_html(data.stats.finished)}

Completed

${escape_html(data.stats.teams)}

Teams

${escape_html(data.stats.mappools)}

Mappools

`); - if (data.liveMatches.length > 0) { - $$renderer2.push(""); - $$renderer2.push(`

Live Now

`); - const each_array = ensure_array_like(data.liveMatches); - for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) { - let m = each_array[$$index]; - const p1 = m.participants[0]; - const p2 = m.participants[1]; - const sc = stateConfig[m.state]; - $$renderer2.push(`
`); - if (p1?.team.avatarUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` ${escape_html(p1?.team.name ?? "?")}
${escape_html(p1?.score ?? 0)} vs ${escape_html(p2?.score ?? 0)}
${escape_html(p2?.team.name ?? "?")} `); - if (p2?.team.avatarUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - if (sc?.dot) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` ${escape_html(sc?.label)}`); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`

Ranked Queue

Find a match at your skill level

`); - { - $$renderer2.push(""); - $$renderer2.push(`${escape_html("Find Match")}`); - } - $$renderer2.push(`

Recent Matches

`); - const each_array_1 = ensure_array_like(data.recentMatches); - if (each_array_1.length !== 0) { - $$renderer2.push(""); - for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) { - let m = each_array_1[$$index_1]; - const p1 = m.participants[0]; - const p2 = m.participants[1]; - const config = m.config; - const sc = stateConfig[m.state]; - $$renderer2.push(`
${escape_html(p1?.team.name ?? "?")} `); - if (m.state === "FINISHED") { - $$renderer2.push(""); - $$renderer2.push(` (p2?.score ?? 0) ? "text-green-400" : "text-text-secondary")}`)}>${escape_html(p1?.score ?? 0)} - (p1?.score ?? 0) ? "text-green-400" : "text-text-secondary")}`)}>${escape_html(p2?.score ?? 0)}`); - } else { - $$renderer2.push(""); - $$renderer2.push(`vs`); - } - $$renderer2.push(` ${escape_html(p2?.team.name ?? "?")}

${escape_html(m.name ? `${m.name} · ` : "")}BO${escape_html(config.bestOf)} - · ${escape_html(timeAgo(m.finishedAt ?? m.createdAt))}

`); - if (m.state === "FINISHED" && m.winnerId) { - $$renderer2.push(""); - const winner = m.participants.find((p) => p.teamId === m.winnerId); - $$renderer2.push(`🏆 ${escape_html(winner?.team.name)}`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` ${escape_html(sc?.label)}`); - } - } else { - $$renderer2.push(""); - $$renderer2.push(`

No matches yet. Create one

`); - } - $$renderer2.push(`
`); - } - $$renderer2.push(``); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-C-71W7Xe.js.map diff --git a/build/server/chunks/_page.svelte-C-71W7Xe.js.map b/build/server/chunks/_page.svelte-C-71W7Xe.js.map deleted file mode 100644 index 42b187d..0000000 --- a/build/server/chunks/_page.svelte-C-71W7Xe.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-C-71W7Xe.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/_page.svelte.js"],"sourcesContent":["import { e as escape_html, a as ensure_array_like, b as attr, s as stringify, c as attr_class } from \"../../../chunks/index3.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const stateConfig = {\n CREATED: { label: \"Created\", color: \"text-text-secondary\" },\n LOBBY: { label: \"In Lobby\", color: \"text-yellow-400\" },\n ROLLING: {\n label: \"Rolling\",\n color: \"text-yellow-400\",\n dot: \"bg-yellow-400\"\n },\n PICKING: { label: \"Picking\", color: \"text-blue-400\", dot: \"bg-blue-400\" },\n PLAYING: { label: \"Live\", color: \"text-green-400\", dot: \"bg-green-400\" },\n FINISHED: { label: \"Finished\", color: \"text-text-secondary\" },\n CANCELLED: { label: \"Cancelled\", color: \"text-red-400\" }\n };\n let queueLoading = false;\n function timeAgo(date) {\n const d = new Date(date);\n const diff = Date.now() - d.getTime();\n const mins = Math.floor(diff / 6e4);\n if (mins < 1) return \"just now\";\n if (mins < 60) return `${mins}m ago`;\n const hours = Math.floor(mins / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n return `${days}d ago`;\n }\n if (!data.user) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
V

Welcome to Vash Esports

Automated tournament match management for osu! — lobbies, mappools, picks, bans, and\n\t\t\tELO tracking all in one place.

Sign in with osu!

Uses your osu! account. No extra registration needed.

`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Welcome back, ${escape_html(data.user.name)}

Automated esports match management for osu!

${escape_html(data.stats.matches)}

Total Matches

${escape_html(data.stats.finished)}

Completed

${escape_html(data.stats.teams)}

Teams

${escape_html(data.stats.mappools)}

Mappools

`);\n if (data.liveMatches.length > 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Live Now

`);\n const each_array = ensure_array_like(data.liveMatches);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let m = each_array[$$index];\n const p1 = m.participants[0];\n const p2 = m.participants[1];\n const sc = stateConfig[m.state];\n $$renderer2.push(`
`);\n if (p1?.team.avatarUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` ${escape_html(p1?.team.name ?? \"?\")}
${escape_html(p1?.score ?? 0)} vs ${escape_html(p2?.score ?? 0)}
${escape_html(p2?.team.name ?? \"?\")} `);\n if (p2?.team.avatarUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n if (sc?.dot) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` ${escape_html(sc?.label)}`);\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`

Ranked Queue

Find a match at your skill level

`);\n {\n $$renderer2.push(\"\");\n $$renderer2.push(`${escape_html(\"Find Match\")}`);\n }\n $$renderer2.push(`

Recent Matches

`);\n const each_array_1 = ensure_array_like(data.recentMatches);\n if (each_array_1.length !== 0) {\n $$renderer2.push(\"\");\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let m = each_array_1[$$index_1];\n const p1 = m.participants[0];\n const p2 = m.participants[1];\n const config = m.config;\n const sc = stateConfig[m.state];\n $$renderer2.push(`
${escape_html(p1?.team.name ?? \"?\")} `);\n if (m.state === \"FINISHED\") {\n $$renderer2.push(\"\");\n $$renderer2.push(` (p2?.score ?? 0) ? \"text-green-400\" : \"text-text-secondary\")}`)}>${escape_html(p1?.score ?? 0)} - (p1?.score ?? 0) ? \"text-green-400\" : \"text-text-secondary\")}`)}>${escape_html(p2?.score ?? 0)}`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`vs`);\n }\n $$renderer2.push(` ${escape_html(p2?.team.name ?? \"?\")}

${escape_html(m.name ? `${m.name} · ` : \"\")}BO${escape_html(config.bestOf)}\n\t\t\t\t\t\t\t\t\t· ${escape_html(timeAgo(m.finishedAt ?? m.createdAt))}

`);\n if (m.state === \"FINISHED\" && m.winnerId) {\n $$renderer2.push(\"\");\n const winner = m.participants.find((p) => p.teamId === m.winnerId);\n $$renderer2.push(`🏆 ${escape_html(winner?.team.name)}`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` ${escape_html(sc?.label)}`);\n }\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`

No matches yet. Create one

`);\n }\n $$renderer2.push(`
`);\n }\n $$renderer2.push(``);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-C5eWfXqa.js b/build/server/chunks/_page.svelte-C5eWfXqa.js deleted file mode 100644 index 298961f..0000000 --- a/build/server/chunks/_page.svelte-C5eWfXqa.js +++ /dev/null @@ -1,29 +0,0 @@ -import { a9 as attr } from './index3-C4geC3K_.js'; -import { e as resolve_route, i as initial_base, b as base } from './routing-NqiTWnxU.js'; -import { t as try_get_request_store } from './root-D12ma0No.js'; - -function resolve(id, params) { - const resolved = resolve_route( - id, - /** @type {Record} */ - params - ); - { - const store = try_get_request_store(); - if (store && !store.state.prerendering?.fallback) { - const after_base = store.event.url.pathname.slice(initial_base.length); - const segments = after_base.split("/").slice(2); - const prefix = segments.map(() => "..").join("/") || "."; - return prefix + resolved; - } - } - return base + resolved; -} -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`better-auth`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-C5eWfXqa.js.map diff --git a/build/server/chunks/_page.svelte-C5eWfXqa.js.map b/build/server/chunks/_page.svelte-C5eWfXqa.js.map deleted file mode 100644 index a261bd2..0000000 --- a/build/server/chunks/_page.svelte-C5eWfXqa.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-C5eWfXqa.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/demo/_page.svelte.js"],"sourcesContent":["import { b as attr } from \"../../../chunks/index3.js\";\nimport { i as initial_base, b as base } from \"../../../chunks/server.js\";\nimport { r as resolve_route } from \"../../../chunks/routing.js\";\nimport \"../../../chunks/url.js\";\nimport { try_get_request_store } from \"@sveltejs/kit/internal/server\";\nimport \"../../../chunks/root.js\";\nfunction resolve(id, params) {\n const resolved = resolve_route(\n id,\n /** @type {Record} */\n params\n );\n {\n const store = try_get_request_store();\n if (store && !store.state.prerendering?.fallback) {\n const after_base = store.event.url.pathname.slice(initial_base.length);\n const segments = after_base.split(\"/\").slice(2);\n const prefix = segments.map(() => \"..\").join(\"/\") || \".\";\n return prefix + resolved;\n }\n }\n return base + resolved;\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`better-auth`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;AAMA,SAAS,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE;AAC7B,EAAE,MAAM,QAAQ,GAAG,aAAa;AAChC,IAAI,EAAE;AACN;AACA,IAAI;AACJ,GAAG;AACH,EAAE;AACF,IAAI,MAAM,KAAK,GAAG,qBAAqB,EAAE;AACzC,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE;AACtD,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;AAC5E,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG;AAC9D,MAAM,OAAO,MAAM,GAAG,QAAQ;AAC9B,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI,GAAG,QAAQ;AACxB;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACvF,EAAE,CAAC,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-Ctzd-tuM.js b/build/server/chunks/_page.svelte-Ctzd-tuM.js deleted file mode 100644 index b860105..0000000 --- a/build/server/chunks/_page.svelte-Ctzd-tuM.js +++ /dev/null @@ -1,15 +0,0 @@ -import { a6 as escape_html } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - $$renderer2.push(`

Hi, ${escape_html(data.user.name)}!

Your user ID is ${escape_html(data.user.id)}.

`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-Ctzd-tuM.js.map diff --git a/build/server/chunks/_page.svelte-Ctzd-tuM.js.map b/build/server/chunks/_page.svelte-Ctzd-tuM.js.map deleted file mode 100644 index 2b356e7..0000000 --- a/build/server/chunks/_page.svelte-Ctzd-tuM.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-Ctzd-tuM.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/demo/better-auth/_page.svelte.js"],"sourcesContent":["import { e as escape_html } from \"../../../../chunks/index3.js\";\nimport \"clsx\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../chunks/url.js\";\nimport \"../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../chunks/root.js\";\nimport \"../../../../chunks/exports.js\";\nimport \"../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n $$renderer2.push(`

Hi, ${escape_html(data.user.name)}!

Your user ID is ${escape_html(data.user.id)}.

`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;AASA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AAC1B,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,8JAA8J,CAAC,CAAC;AAClR,EAAE,CAAC,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-D23V0tpa.js b/build/server/chunks/_page.svelte-D23V0tpa.js deleted file mode 100644 index 6a55cbb..0000000 --- a/build/server/chunks/_page.svelte-D23V0tpa.js +++ /dev/null @@ -1,46 +0,0 @@ -import { a9 as attr, a6 as escape_html, aa as attr_class, ab as stringify, a1 as derived } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - const roleBadge = { - player: { label: "Player", color: "bg-surface-600 text-text-secondary" }, - referee: { label: "Referee", color: "bg-yellow-500/20 text-yellow-400" }, - admin: { label: "Admin", color: "bg-red-500/20 text-red-400" } - }; - const badge = derived(() => roleBadge[data.profile.role] ?? roleBadge.player); - const winRate = derived(() => data.rating.wins + data.rating.losses > 0 ? (data.rating.wins / (data.rating.wins + data.rating.losses) * 100).toFixed(1) : "—"); - $$renderer2.push(`

Settings

Your profile and account settings

`); - if (data.profile.image) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - $$renderer2.push(`
${escape_html(data.profile.name.charAt(0).toUpperCase())}
`); - } - $$renderer2.push(`

${escape_html(data.profile.name)}

${escape_html(badge().label)}

${escape_html(data.profile.email)}

Connected Accounts

🎮

osu!

`); - if (data.hasOsuLinked) { - $$renderer2.push(""); - $$renderer2.push(`Connected as ${escape_html(data.profile.name)}`); - } else { - $$renderer2.push(""); - $$renderer2.push(`Not connected`); - } - $$renderer2.push(`

`); - if (data.hasOsuLinked) { - $$renderer2.push(""); - $$renderer2.push(`Linked`); - } else { - $$renderer2.push(""); - $$renderer2.push(`Connect`); - } - $$renderer2.push(`

Ranked Stats

${escape_html(data.rating.elo)}

ELO Rating

${escape_html(data.rating.wins)}

Wins

${escape_html(data.rating.losses)}

Losses

${escape_html(winRate())}${escape_html(winRate() !== "—" ? "%" : "")}

Win Rate

Account

`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-D23V0tpa.js.map diff --git a/build/server/chunks/_page.svelte-D23V0tpa.js.map b/build/server/chunks/_page.svelte-D23V0tpa.js.map deleted file mode 100644 index bb2b311..0000000 --- a/build/server/chunks/_page.svelte-D23V0tpa.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-D23V0tpa.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/settings/_page.svelte.js"],"sourcesContent":["import { b as attr, e as escape_html, c as attr_class, s as stringify, d as derived } from \"../../../../chunks/index3.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../chunks/url.js\";\nimport \"../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../chunks/root.js\";\nimport \"../../../../chunks/exports.js\";\nimport \"../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const roleBadge = {\n player: { label: \"Player\", color: \"bg-surface-600 text-text-secondary\" },\n referee: { label: \"Referee\", color: \"bg-yellow-500/20 text-yellow-400\" },\n admin: { label: \"Admin\", color: \"bg-red-500/20 text-red-400\" }\n };\n const badge = derived(() => roleBadge[data.profile.role] ?? roleBadge.player);\n const winRate = derived(() => data.rating.wins + data.rating.losses > 0 ? (data.rating.wins / (data.rating.wins + data.rating.losses) * 100).toFixed(1) : \"—\");\n $$renderer2.push(`

Settings

Your profile and account settings

`);\n if (data.profile.image) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`
${escape_html(data.profile.name.charAt(0).toUpperCase())}
`);\n }\n $$renderer2.push(`

${escape_html(data.profile.name)}

${escape_html(badge().label)}

${escape_html(data.profile.email)}

Connected Accounts

🎮

osu!

`);\n if (data.hasOsuLinked) {\n $$renderer2.push(\"\");\n $$renderer2.push(`Connected as ${escape_html(data.profile.name)}`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`Not connected`);\n }\n $$renderer2.push(`

`);\n if (data.hasOsuLinked) {\n $$renderer2.push(\"\");\n $$renderer2.push(`Linked`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`Connect`);\n }\n $$renderer2.push(`

Ranked Stats

${escape_html(data.rating.elo)}

ELO Rating

${escape_html(data.rating.wins)}

Wins

${escape_html(data.rating.losses)}

Losses

${escape_html(winRate())}${escape_html(winRate() !== \"—\" ? \"%\" : \"\")}

Win Rate

Account

`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-G6sWOX7O.js b/build/server/chunks/_page.svelte-G6sWOX7O.js deleted file mode 100644 index a314606..0000000 --- a/build/server/chunks/_page.svelte-G6sWOX7O.js +++ /dev/null @@ -1,321 +0,0 @@ -import { a6 as escape_html, a9 as attr, ab as stringify, aa as attr_class, a8 as ensure_array_like, a1 as derived } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - let m = derived(() => data.match); - let p1 = derived(() => m().participants[0]); - let p2 = derived(() => m().participants[1]); - const config = derived(() => m().config); - const winsNeeded = derived(() => Math.ceil(config().bestOf / 2)); - const playedSlotIds = derived(() => new Set(m().games.map((g) => g.mappoolSlotId))); - const sortedByPick = derived(() => [...m().participants].sort((a, b) => (a.pickOrder ?? 99) - (b.pickOrder ?? 99))); - const expectedPickerIdx = derived(() => m().games.length % sortedByPick().length); - const expectedPicker = derived(() => sortedByPick()[expectedPickerIdx()]); - const canRoll = derived(() => m().state === "ROLLING" && m().participants.some((p) => p.rollValue === null)); - const catColors = { - NM: "bg-blue-500/20 text-blue-400 border-blue-500/30", - HD: "bg-yellow-500/20 text-yellow-400 border-yellow-500/30", - HR: "bg-red-500/20 text-red-400 border-red-500/30", - DT: "bg-purple-500/20 text-purple-400 border-purple-500/30", - FM: "bg-green-500/20 text-green-400 border-green-500/30", - TB: "bg-pink-500/20 text-pink-400 border-pink-500/30" - }; - const groupedSlots = derived(() => () => { - if (!m().mappool?.slots) return {}; - const groups = {}; - for (const slot of m().mappool.slots) { - if (!groups[slot.category]) groups[slot.category] = []; - groups[slot.category].push(slot); - } - for (const cat of Object.keys(groups)) { - groups[cat].sort((a, b) => a.orderInCategory - b.orderInCategory); - } - return groups; - }); - let rolling = false; - let picking = false; - let forceStarting = false; - function formatLength(seconds) { - const mins = Math.floor(seconds / 60); - const secs = seconds % 60; - return `${mins}:${secs.toString().padStart(2, "0")}`; - } - function stateLabel(s) { - return { - CREATED: "Waiting", - LOBBY: "In Lobby", - ROLLING: "Rolling", - PICKING: "Pick Phase", - PLAYING: "Playing", - FINISHED: "Finished", - CANCELLED: "Cancelled" - }[s] ?? s; - } - function stateBorder(s) { - return { - ROLLING: "border-yellow-500/30", - PICKING: "border-blue-500/30", - PLAYING: "border-green-500/30", - FINISHED: "border-accent/30" - }[s] ?? "border-border"; - } - $$renderer2.push(`
←

${escape_html(m().name || "Match")}

Best of ${escape_html(config().bestOf)} · First to ${escape_html(winsNeeded())} `); - if (m().osuLobbyId) { - $$renderer2.push(""); - $$renderer2.push(`· osu! mp/${escape_html(m().osuLobbyId)}`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`

${escape_html(stateLabel(m().state))} `); - if (!["FINISHED", "CANCELLED"].includes(m().state)) { - $$renderer2.push(""); - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - if (p1() && p2()) { - $$renderer2.push(""); - $$renderer2.push(`
`); - if (p1().team.avatarUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`

${escape_html(p1().team.name)}

`); - if (p1().rollValue != null) { - $$renderer2.push(""); - $$renderer2.push(`

Roll: ${escape_html(p1().rollValue)}${escape_html(p1().pickOrder === 1 ? " ★" : "")}

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
= winsNeeded() ? "text-green-400" : "text-text-primary")}`)}>${escape_html(p1().score)}
vs = winsNeeded() ? "text-green-400" : "text-text-primary")}`)}>${escape_html(p2().score)}

${escape_html(p2().team.name)}

`); - if (p2().rollValue != null) { - $$renderer2.push(""); - $$renderer2.push(`

${escape_html(p2().pickOrder === 1 ? "★ " : "")}Roll: ${escape_html(p2().rollValue)}

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - if (p2().team.avatarUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (["LOBBY", "ROLLING", "PICKING", "PLAYING"].includes(m().state)) { - $$renderer2.push(""); - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().state === "ROLLING") { - $$renderer2.push(""); - $$renderer2.push(`

🎲 Roll Phase

Highest roll picks first

`); - const each_array = ensure_array_like(m().participants); - for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) { - let p = each_array[$$index]; - $$renderer2.push(`

${escape_html(p.team.name)}

`); - if (p.rollValue != null) { - $$renderer2.push(""); - $$renderer2.push(`

${escape_html(p.rollValue)}

`); - } else { - $$renderer2.push(""); - $$renderer2.push(`

—

`); - } - $$renderer2.push(`
`); - } - $$renderer2.push(`
`); - if (canRoll()) { - $$renderer2.push(""); - $$renderer2.push(`

or type !roll in osu! chat

`); - } else { - $$renderer2.push(""); - $$renderer2.push(`

Waiting for all rolls...

`); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().state === "PICKING") { - $$renderer2.push(""); - $$renderer2.push(`

🎯 Pick a Map

${escape_html(expectedPicker()?.team.name)}'s turn to pick

or type !pick NM1 in osu! chat

`); - { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - const each_array_1 = ensure_array_like(Object.entries(groupedSlots()())); - for (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) { - let [category, slots] = each_array_1[$$index_2]; - $$renderer2.push(`
${escape_html(category)}
`); - const each_array_2 = ensure_array_like(slots); - for (let i = 0, $$length2 = each_array_2.length; i < $$length2; i++) { - let slot = each_array_2[i]; - const bm = data.beatmapCache[slot.beatmapId]; - const isPlayed = playedSlotIds().has(slot.id); - $$renderer2.push(`
`); - } - $$renderer2.push(`
`); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().state === "PLAYING") { - $$renderer2.push(""); - const currentGame = m().games[m().games.length - 1]; - const bm = currentGame ? data.beatmapCache[currentGame.slot?.beatmapId] : null; - $$renderer2.push(`
Now Playing
`); - if (bm) { - $$renderer2.push(""); - $$renderer2.push(`

${escape_html(bm.artist)} - ${escape_html(bm.title)} [${escape_html(bm.version)}]

★${escape_html(bm.starRating.toFixed(1))} · ${escape_html(bm.bpm)}bpm · ${escape_html(formatLength(bm.totalLength))}

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`

Waiting for players to ready up & play in osu!...

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().state === "FINISHED") { - $$renderer2.push(""); - const winner = m().participants.find((p) => p.teamId === m().winnerId); - $$renderer2.push(`
🏆

${escape_html(winner?.team.name)} wins!

${escape_html(p1()?.score)} – ${escape_html(p2()?.score)}

`); - const each_array_3 = ensure_array_like(m().games); - for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) { - let game = each_array_3[$$index_3]; - const bm = data.beatmapCache[game.slot?.beatmapId]; - const winnerP = m().participants.find((p) => p.id === game.winnerParticipantId); - $$renderer2.push(`
${escape_html(game.slot?.category)}${escape_html(game.slot?.orderInCategory)} ${escape_html(bm ? `${bm.artist} - ${bm.title}` : `#${game.slot?.beatmapId}`)} ${escape_html(winnerP?.team.name)}
`); - } - $$renderer2.push(`
Back to Dashboard
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().games.length > 0) { - $$renderer2.push(""); - $$renderer2.push(`

Games Played

`); - const each_array_4 = ensure_array_like(m().games); - for (let $$index_4 = 0, $$length = each_array_4.length; $$index_4 < $$length; $$index_4++) { - let game = each_array_4[$$index_4]; - const bm = data.beatmapCache[game.slot?.beatmapId]; - const pickerTeam = m().participants.find((p) => p.id === game.pickedByParticipantId)?.team; - const winnerTeam = m().participants.find((p) => p.id === game.winnerParticipantId)?.team; - $$renderer2.push(`
${escape_html(game.gameNumber)} `); - if (bm?.listCoverUrl) { - $$renderer2.push(""); - $$renderer2.push(``); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - if (bm) { - $$renderer2.push(""); - $$renderer2.push(`

${escape_html(bm.artist)} - ${escape_html(bm.title)} [${escape_html(bm.version)}]

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
${escape_html(game.slot?.category)}${escape_html(game.slot?.orderInCategory)} `); - if (pickerTeam) { - $$renderer2.push(""); - $$renderer2.push(`Picked by ${escape_html(pickerTeam.name)}`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - if (game.state === "FINISHED" && p1() && p2()) { - $$renderer2.push(""); - const p1Score = game.scores.filter((s) => s.player?.participantId === p1().id).reduce((sum, s) => sum + s.score, 0); - const p2Score = game.scores.filter((s) => s.player?.participantId === p2().id).reduce((sum, s) => sum + s.score, 0); - $$renderer2.push(`
p2Score ? "font-700 text-green-400" : "text-text-secondary")}>${escape_html(p1Score.toLocaleString())} - p1Score ? "font-700 text-green-400" : "text-text-secondary")}>${escape_html(p2Score.toLocaleString())}
`); - } else if (game.state === "PLAYING") { - $$renderer2.push(""); - $$renderer2.push(`Live`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (winnerTeam) { - $$renderer2.push(""); - $$renderer2.push(`✓ ${escape_html(winnerTeam.name)}`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().state === "CREATED") { - $$renderer2.push(""); - $$renderer2.push(`

Creating osu! lobby...

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().state === "LOBBY") { - $$renderer2.push(""); - $$renderer2.push(`

Lobby created. Waiting for players to join...

`); - if (m().osuLobbyId) { - $$renderer2.push(""); - $$renderer2.push(`

osu! mp/${escape_html(m().osuLobbyId)}

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(` `); - if (m().state === "CANCELLED") { - $$renderer2.push(""); - $$renderer2.push(`

This match was cancelled.

`); - } else { - $$renderer2.push(""); - } - $$renderer2.push(``); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-G6sWOX7O.js.map diff --git a/build/server/chunks/_page.svelte-G6sWOX7O.js.map b/build/server/chunks/_page.svelte-G6sWOX7O.js.map deleted file mode 100644 index 7236601..0000000 --- a/build/server/chunks/_page.svelte-G6sWOX7O.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-G6sWOX7O.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/matches/_id_/_page.svelte.js"],"sourcesContent":["import { e as escape_html, b as attr, s as stringify, c as attr_class, a as ensure_array_like, d as derived } from \"../../../../../chunks/index3.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../../chunks/url.js\";\nimport \"../../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../../chunks/root.js\";\nimport \"../../../../../chunks/exports.js\";\nimport \"../../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n let m = derived(() => data.match);\n let p1 = derived(() => m().participants[0]);\n let p2 = derived(() => m().participants[1]);\n const config = derived(() => m().config);\n const winsNeeded = derived(() => Math.ceil(config().bestOf / 2));\n const playedSlotIds = derived(() => new Set(m().games.map((g) => g.mappoolSlotId)));\n const sortedByPick = derived(() => [...m().participants].sort((a, b) => (a.pickOrder ?? 99) - (b.pickOrder ?? 99)));\n const expectedPickerIdx = derived(() => m().games.length % sortedByPick().length);\n const expectedPicker = derived(() => sortedByPick()[expectedPickerIdx()]);\n const canRoll = derived(() => m().state === \"ROLLING\" && m().participants.some((p) => p.rollValue === null));\n const catColors = {\n NM: \"bg-blue-500/20 text-blue-400 border-blue-500/30\",\n HD: \"bg-yellow-500/20 text-yellow-400 border-yellow-500/30\",\n HR: \"bg-red-500/20 text-red-400 border-red-500/30\",\n DT: \"bg-purple-500/20 text-purple-400 border-purple-500/30\",\n FM: \"bg-green-500/20 text-green-400 border-green-500/30\",\n TB: \"bg-pink-500/20 text-pink-400 border-pink-500/30\"\n };\n const groupedSlots = derived(() => () => {\n if (!m().mappool?.slots) return {};\n const groups = {};\n for (const slot of m().mappool.slots) {\n if (!groups[slot.category]) groups[slot.category] = [];\n groups[slot.category].push(slot);\n }\n for (const cat of Object.keys(groups)) {\n groups[cat].sort((a, b) => a.orderInCategory - b.orderInCategory);\n }\n return groups;\n });\n let rolling = false;\n let picking = false;\n let forceStarting = false;\n function formatLength(seconds) {\n const mins = Math.floor(seconds / 60);\n const secs = seconds % 60;\n return `${mins}:${secs.toString().padStart(2, \"0\")}`;\n }\n function stateLabel(s) {\n return {\n CREATED: \"Waiting\",\n LOBBY: \"In Lobby\",\n ROLLING: \"Rolling\",\n PICKING: \"Pick Phase\",\n PLAYING: \"Playing\",\n FINISHED: \"Finished\",\n CANCELLED: \"Cancelled\"\n }[s] ?? s;\n }\n function stateBorder(s) {\n return {\n ROLLING: \"border-yellow-500/30\",\n PICKING: \"border-blue-500/30\",\n PLAYING: \"border-green-500/30\",\n FINISHED: \"border-accent/30\"\n }[s] ?? \"border-border\";\n }\n $$renderer2.push(`
←

${escape_html(m().name || \"Match\")}

Best of ${escape_html(config().bestOf)} · First to ${escape_html(winsNeeded())} `);\n if (m().osuLobbyId) {\n $$renderer2.push(\"\");\n $$renderer2.push(`· osu! mp/${escape_html(m().osuLobbyId)}`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`

${escape_html(stateLabel(m().state))} `);\n if (![\"FINISHED\", \"CANCELLED\"].includes(m().state)) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n if (p1() && p2()) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n if (p1().team.avatarUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`

${escape_html(p1().team.name)}

`);\n if (p1().rollValue != null) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Roll: ${escape_html(p1().rollValue)}${escape_html(p1().pickOrder === 1 ? \" ★\" : \"\")}

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
= winsNeeded() ? \"text-green-400\" : \"text-text-primary\")}`)}>${escape_html(p1().score)}
vs = winsNeeded() ? \"text-green-400\" : \"text-text-primary\")}`)}>${escape_html(p2().score)}

${escape_html(p2().team.name)}

`);\n if (p2().rollValue != null) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

${escape_html(p2().pickOrder === 1 ? \"★ \" : \"\")}Roll: ${escape_html(p2().rollValue)}

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n if (p2().team.avatarUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if ([\"LOBBY\", \"ROLLING\", \"PICKING\", \"PLAYING\"].includes(m().state)) {\n $$renderer2.push(\"\");\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().state === \"ROLLING\") {\n $$renderer2.push(\"\");\n $$renderer2.push(`

🎲 Roll Phase

Highest roll picks first

`);\n const each_array = ensure_array_like(m().participants);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let p = each_array[$$index];\n $$renderer2.push(`

${escape_html(p.team.name)}

`);\n if (p.rollValue != null) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

${escape_html(p.rollValue)}

`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`

—

`);\n }\n $$renderer2.push(`
`);\n }\n $$renderer2.push(`
`);\n if (canRoll()) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

or type !roll in osu! chat

`);\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Waiting for all rolls...

`);\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().state === \"PICKING\") {\n $$renderer2.push(\"\");\n $$renderer2.push(`

🎯 Pick a Map

${escape_html(expectedPicker()?.team.name)}'s turn to pick

or type !pick NM1 in osu! chat

`);\n {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n const each_array_1 = ensure_array_like(Object.entries(groupedSlots()()));\n for (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) {\n let [category, slots] = each_array_1[$$index_2];\n $$renderer2.push(`
${escape_html(category)}
`);\n const each_array_2 = ensure_array_like(slots);\n for (let i = 0, $$length2 = each_array_2.length; i < $$length2; i++) {\n let slot = each_array_2[i];\n const bm = data.beatmapCache[slot.beatmapId];\n const isPlayed = playedSlotIds().has(slot.id);\n $$renderer2.push(`
`);\n }\n $$renderer2.push(`
`);\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().state === \"PLAYING\") {\n $$renderer2.push(\"\");\n const currentGame = m().games[m().games.length - 1];\n const bm = currentGame ? data.beatmapCache[currentGame.slot?.beatmapId] : null;\n $$renderer2.push(`
Now Playing
`);\n if (bm) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

${escape_html(bm.artist)} - ${escape_html(bm.title)} [${escape_html(bm.version)}]

★${escape_html(bm.starRating.toFixed(1))} · ${escape_html(bm.bpm)}bpm · ${escape_html(formatLength(bm.totalLength))}

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`

Waiting for players to ready up & play in osu!...

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().state === \"FINISHED\") {\n $$renderer2.push(\"\");\n const winner = m().participants.find((p) => p.teamId === m().winnerId);\n $$renderer2.push(`
🏆

${escape_html(winner?.team.name)} wins!

${escape_html(p1()?.score)} – ${escape_html(p2()?.score)}

`);\n const each_array_3 = ensure_array_like(m().games);\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let game = each_array_3[$$index_3];\n const bm = data.beatmapCache[game.slot?.beatmapId];\n const winnerP = m().participants.find((p) => p.id === game.winnerParticipantId);\n $$renderer2.push(`
${escape_html(game.slot?.category)}${escape_html(game.slot?.orderInCategory)} ${escape_html(bm ? `${bm.artist} - ${bm.title}` : `#${game.slot?.beatmapId}`)} ${escape_html(winnerP?.team.name)}
`);\n }\n $$renderer2.push(`
Back to Dashboard
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().games.length > 0) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Games Played

`);\n const each_array_4 = ensure_array_like(m().games);\n for (let $$index_4 = 0, $$length = each_array_4.length; $$index_4 < $$length; $$index_4++) {\n let game = each_array_4[$$index_4];\n const bm = data.beatmapCache[game.slot?.beatmapId];\n const pickerTeam = m().participants.find((p) => p.id === game.pickedByParticipantId)?.team;\n const winnerTeam = m().participants.find((p) => p.id === game.winnerParticipantId)?.team;\n $$renderer2.push(`
${escape_html(game.gameNumber)} `);\n if (bm?.listCoverUrl) {\n $$renderer2.push(\"\");\n $$renderer2.push(``);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n if (bm) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

${escape_html(bm.artist)} - ${escape_html(bm.title)} [${escape_html(bm.version)}]

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
${escape_html(game.slot?.category)}${escape_html(game.slot?.orderInCategory)} `);\n if (pickerTeam) {\n $$renderer2.push(\"\");\n $$renderer2.push(`Picked by ${escape_html(pickerTeam.name)}`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n if (game.state === \"FINISHED\" && p1() && p2()) {\n $$renderer2.push(\"\");\n const p1Score = game.scores.filter((s) => s.player?.participantId === p1().id).reduce((sum, s) => sum + s.score, 0);\n const p2Score = game.scores.filter((s) => s.player?.participantId === p2().id).reduce((sum, s) => sum + s.score, 0);\n $$renderer2.push(`
p2Score ? \"font-700 text-green-400\" : \"text-text-secondary\")}>${escape_html(p1Score.toLocaleString())} - p1Score ? \"font-700 text-green-400\" : \"text-text-secondary\")}>${escape_html(p2Score.toLocaleString())}
`);\n } else if (game.state === \"PLAYING\") {\n $$renderer2.push(\"\");\n $$renderer2.push(`Live`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (winnerTeam) {\n $$renderer2.push(\"\");\n $$renderer2.push(`✓ ${escape_html(winnerTeam.name)}`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().state === \"CREATED\") {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Creating osu! lobby...

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().state === \"LOBBY\") {\n $$renderer2.push(\"\");\n $$renderer2.push(`

Lobby created. Waiting for players to join...

`);\n if (m().osuLobbyId) {\n $$renderer2.push(\"\");\n $$renderer2.push(`

osu! mp/${escape_html(m().osuLobbyId)}

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(` `);\n if (m().state === \"CANCELLED\") {\n $$renderer2.push(\"\");\n $$renderer2.push(`

This match was cancelled.

`);\n } else {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(``);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-ad4cZnqC.js b/build/server/chunks/_page.svelte-ad4cZnqC.js deleted file mode 100644 index 9102aff..0000000 --- a/build/server/chunks/_page.svelte-ad4cZnqC.js +++ /dev/null @@ -1,15 +0,0 @@ -import { a6 as escape_html } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { form } = $$props; - $$renderer2.push(`

Login

${escape_html(form?.message ?? "")}


`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-ad4cZnqC.js.map diff --git a/build/server/chunks/_page.svelte-ad4cZnqC.js.map b/build/server/chunks/_page.svelte-ad4cZnqC.js.map deleted file mode 100644 index ed59653..0000000 --- a/build/server/chunks/_page.svelte-ad4cZnqC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-ad4cZnqC.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/demo/better-auth/login/_page.svelte.js"],"sourcesContent":["import { e as escape_html } from \"../../../../../chunks/index3.js\";\nimport \"clsx\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../../chunks/url.js\";\nimport \"../../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../../chunks/root.js\";\nimport \"../../../../../chunks/exports.js\";\nimport \"../../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { form } = $$props;\n $$renderer2.push(`

Login

${escape_html(form?.message ?? \"\")}


`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;AASA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AAC1B,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,87BAA87B,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,qTAAqT,CAAC,CAAC;AAC9yC,EAAE,CAAC,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_page.svelte-ijSwFWFX.js b/build/server/chunks/_page.svelte-ijSwFWFX.js deleted file mode 100644 index 973a0f6..0000000 --- a/build/server/chunks/_page.svelte-ijSwFWFX.js +++ /dev/null @@ -1,32 +0,0 @@ -import { a6 as escape_html, a8 as ensure_array_like, a9 as attr, ab as stringify } from './index3-C4geC3K_.js'; -import './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './exports-B5ORJhfK.js'; -import './state.svelte-DvHRBIfo.js'; - -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { data } = $$props; - $$renderer2.push(`

Mappools

Create and manage your beatmap pools

`); - { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - const each_array = ensure_array_like(data.mappools); - if (each_array.length !== 0) { - $$renderer2.push(""); - for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) { - let pool = each_array[$$index]; - $$renderer2.push(`

${escape_html(pool.name)}

${escape_html(pool.slots.length)} map${escape_html(pool.slots.length !== 1 ? "s" : "")} - · Created ${escape_html(new Date(pool.createdAt).toLocaleDateString())}

→`); - } - } else { - $$renderer2.push(""); - $$renderer2.push(`

No mappools yet. Create one to get started.

`); - } - $$renderer2.push(`
`); - }); -} - -export { _page as default }; -//# sourceMappingURL=_page.svelte-ijSwFWFX.js.map diff --git a/build/server/chunks/_page.svelte-ijSwFWFX.js.map b/build/server/chunks/_page.svelte-ijSwFWFX.js.map deleted file mode 100644 index 72b8547..0000000 --- a/build/server/chunks/_page.svelte-ijSwFWFX.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_page.svelte-ijSwFWFX.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(app)/mappools/_page.svelte.js"],"sourcesContent":["import { e as escape_html, a as ensure_array_like, b as attr, s as stringify } from \"../../../../chunks/index3.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../chunks/url.js\";\nimport \"../../../../chunks/utils.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../chunks/root.js\";\nimport \"../../../../chunks/exports.js\";\nimport \"../../../../chunks/state.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n $$renderer2.push(`

Mappools

Create and manage your beatmap pools

`);\n {\n $$renderer2.push(\"\");\n }\n $$renderer2.push(`
`);\n const each_array = ensure_array_like(data.mappools);\n if (each_array.length !== 0) {\n $$renderer2.push(\"\");\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let pool = each_array[$$index];\n $$renderer2.push(`

${escape_html(pool.name)}

${escape_html(pool.slots.length)} map${escape_html(pool.slots.length !== 1 ? \"s\" : \"\")}\n\t\t\t\t\t\t· Created ${escape_html(new Date(pool.createdAt).toLocaleDateString())}

→`);\n }\n } else {\n $$renderer2.push(\"\");\n $$renderer2.push(`

No mappools yet. Create one to get started.

`);\n }\n $$renderer2.push(`
`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;AAQA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AAC1B,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,kWAAkW,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACpa,IAAI;AACJ,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,+CAA+C,CAAC,CAAC;AACvE,IAAI,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvD,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE;AACzF,QAAQ,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;AACtC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,oMAAoM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kDAAkD,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACnb,gBAAgB,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,mGAAmG,CAAC,CAAC;AAClL,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,yKAAyK,CAAC,CAAC;AACnM,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC5C,EAAE,CAAC,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-BEoJR5yQ.js b/build/server/chunks/_server.ts-BEoJR5yQ.js deleted file mode 100644 index cdbf3b2..0000000 --- a/build/server/chunks/_server.ts-BEoJR5yQ.js +++ /dev/null @@ -1,39 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { d as db } from './index2-B7hVh_Qf.js'; -import { c as createMatch } from './engine-DiCmv1C-.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const GET = async ({ locals }) => { - if (!locals.user) error(401, "Not logged in"); - const matches = await db.query.match.findMany({ - with: { - participants: { with: { team: true } } - }, - orderBy: (m, { desc }) => [desc(m.createdAt)] - }); - return json(matches); -}; -const POST = async ({ request, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const body = await request.json(); - const { name, config, mappoolId, teams } = body; - if (!name || !config || !mappoolId || !teams?.length) { - error(400, "Missing required fields"); - } - try { - const result = await createMatch({ - name, - config, - mappoolId, - teams, - createdBy: locals.user.id - }); - return json(result, { status: 201 }); - } catch (e) { - error(400, e.message); - } -}; - -export { GET, POST }; -//# sourceMappingURL=_server.ts-BEoJR5yQ.js.map diff --git a/build/server/chunks/_server.ts-BEoJR5yQ.js.map b/build/server/chunks/_server.ts-BEoJR5yQ.js.map deleted file mode 100644 index dbd775e..0000000 --- a/build/server/chunks/_server.ts-BEoJR5yQ.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-BEoJR5yQ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/matches/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { d as db } from \"../../../../chunks/index2.js\";\nimport { c as createMatch } from \"../../../../chunks/engine.js\";\nconst GET = async ({ locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const matches = await db.query.match.findMany({\n with: {\n participants: { with: { team: true } }\n },\n orderBy: (m, { desc }) => [desc(m.createdAt)]\n });\n return json(matches);\n};\nconst POST = async ({ request, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const body = await request.json();\n const { name, config, mappoolId, teams } = body;\n if (!name || !config || !mappoolId || !teams?.length) {\n error(400, \"Missing required fields\");\n }\n try {\n const result = await createMatch({\n name,\n config,\n mappoolId,\n teams,\n createdBy: locals.user.id\n });\n return json(result, { status: 201 });\n } catch (e) {\n error(400, e.message);\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AAChD,IAAI,IAAI,EAAE;AACV,MAAM,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC1C,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC5C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI;AACjD,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACxD,IAAI,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACzC,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;AACrC,MAAM,IAAI;AACV,MAAM,MAAM;AACZ,MAAM,SAAS;AACf,MAAM,KAAK;AACX,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;AAC7B,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-BKWDSPwT.js b/build/server/chunks/_server.ts-BKWDSPwT.js deleted file mode 100644 index 41d4190..0000000 --- a/build/server/chunks/_server.ts-BKWDSPwT.js +++ /dev/null @@ -1,22 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { p as pickMap } from './engine-DiCmv1C-.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const POST = async ({ params, request, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const { participantId, mappoolSlotId } = await request.json(); - if (!participantId || !mappoolSlotId) { - error(400, "participantId and mappoolSlotId required"); - } - try { - const game = await pickMap(params.id, participantId, mappoolSlotId); - return json(game); - } catch (e) { - error(400, e.message); - } -}; - -export { POST }; -//# sourceMappingURL=_server.ts-BKWDSPwT.js.map diff --git a/build/server/chunks/_server.ts-BKWDSPwT.js.map b/build/server/chunks/_server.ts-BKWDSPwT.js.map deleted file mode 100644 index ea6e160..0000000 --- a/build/server/chunks/_server.ts-BKWDSPwT.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-BKWDSPwT.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/matches/_id_/pick/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { p as pickMap } from \"../../../../../../chunks/engine.js\";\nconst POST = async ({ params, request, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const { participantId, mappoolSlotId } = await request.json();\n if (!participantId || !mappoolSlotId) {\n error(400, \"participantId and mappoolSlotId required\");\n }\n try {\n const game = await pickMap(params.id, participantId, mappoolSlotId);\n return json(game);\n } catch (e) {\n error(400, e.message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/D,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE;AACxC,IAAI,KAAK,CAAC,GAAG,EAAE,0CAA0C,CAAC;AAC1D,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC;AACvE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-C5pGCspz.js b/build/server/chunks/_server.ts-C5pGCspz.js deleted file mode 100644 index 7b207bd..0000000 --- a/build/server/chunks/_server.ts-C5pGCspz.js +++ /dev/null @@ -1,22 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { b as submitGameScores } from './engine-DiCmv1C-.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const POST = async ({ request, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const { matchGameId, scores } = await request.json(); - if (!matchGameId || !scores?.length) { - error(400, "matchGameId and scores required"); - } - try { - const m = await submitGameScores(matchGameId, scores); - return json(m); - } catch (e) { - error(400, e.message); - } -}; - -export { POST }; -//# sourceMappingURL=_server.ts-C5pGCspz.js.map diff --git a/build/server/chunks/_server.ts-C5pGCspz.js.map b/build/server/chunks/_server.ts-C5pGCspz.js.map deleted file mode 100644 index 7fdb38b..0000000 --- a/build/server/chunks/_server.ts-C5pGCspz.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-C5pGCspz.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/matches/_id_/score/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { d as submitGameScores } from \"../../../../../../chunks/engine.js\";\nconst POST = async ({ request, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const { matchGameId, scores } = await request.json();\n if (!matchGameId || !scores?.length) {\n error(400, \"matchGameId and scores required\");\n }\n try {\n const m = await submitGameScores(matchGameId, scores);\n return json(m);\n } catch (e) {\n error(400, e.message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC5C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACtD,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;AACvC,IAAI,KAAK,CAAC,GAAG,EAAE,iCAAiC,CAAC;AACjD,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;AACzD,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-CYhG9EuN.js b/build/server/chunks/_server.ts-CYhG9EuN.js deleted file mode 100644 index 87eb676..0000000 --- a/build/server/chunks/_server.ts-CYhG9EuN.js +++ /dev/null @@ -1,25 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { d as db, b as mappool, e as eq, c as mappoolSlot } from './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const GET = async ({ params, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const pool = await db.query.mappool.findFirst({ - where: eq(mappool.id, params.id) - }); - if (!pool) error(404, "Mappool not found"); - const slots = await db.query.mappoolSlot.findMany({ - where: eq(mappoolSlot.mappoolId, params.id), - orderBy: (s, { asc }) => [asc(s.category), asc(s.orderInCategory)] - }); - return json({ ...pool, slots }); -}; -const DELETE = async ({ params, locals }) => { - if (!locals.user) error(401, "Not logged in"); - await db.delete(mappool).where(eq(mappool.id, params.id)); - return json({ ok: true }); -}; - -export { DELETE, GET }; -//# sourceMappingURL=_server.ts-CYhG9EuN.js.map diff --git a/build/server/chunks/_server.ts-CYhG9EuN.js.map b/build/server/chunks/_server.ts-CYhG9EuN.js.map deleted file mode 100644 index e07d641..0000000 --- a/build/server/chunks/_server.ts-CYhG9EuN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-CYhG9EuN.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mappools/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { d as db, m as mappool, a as mappoolSlot } from \"../../../../../chunks/index2.js\";\nimport { eq } from \"drizzle-orm\";\nconst GET = async ({ params, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const pool = await db.query.mappool.findFirst({\n where: eq(mappool.id, params.id)\n });\n if (!pool) error(404, \"Mappool not found\");\n const slots = await db.query.mappoolSlot.findMany({\n where: eq(mappoolSlot.mappoolId, params.id),\n orderBy: (s, { asc }) => [asc(s.category), asc(s.orderInCategory)]\n });\n return json({ ...pool, slots });\n};\nconst DELETE = async ({ params, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n await db.delete(mappool).where(eq(mappool.id, params.id));\n return json({ ok: true });\n};\nexport {\n DELETE,\n GET\n};\n"],"names":[],"mappings":";;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AAChD,IAAI,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;AACnC,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AAC5C,EAAE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;AACpD,IAAI,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AAC/C,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;AACrE,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC;AACjC;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3D,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-CgeuSTTA.js b/build/server/chunks/_server.ts-CgeuSTTA.js deleted file mode 100644 index 5b5eaed..0000000 --- a/build/server/chunks/_server.ts-CgeuSTTA.js +++ /dev/null @@ -1,19 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { m as moveToLobby } from './engine-DiCmv1C-.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const POST = async ({ params, request, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const body = await request.json().catch(() => ({})); - try { - const m = await moveToLobby(params.id, body.osuLobbyId); - return json(m); - } catch (e) { - error(400, e.message); - } -}; - -export { POST }; -//# sourceMappingURL=_server.ts-CgeuSTTA.js.map diff --git a/build/server/chunks/_server.ts-CgeuSTTA.js.map b/build/server/chunks/_server.ts-CgeuSTTA.js.map deleted file mode 100644 index b02dc3a..0000000 --- a/build/server/chunks/_server.ts-CgeuSTTA.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-CgeuSTTA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/matches/_id_/lobby/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { m as moveToLobby } from \"../../../../../../chunks/engine.js\";\nconst POST = async ({ params, request, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const body = await request.json().catch(() => ({}));\n try {\n const m = await moveToLobby(params.id, body.osuLobbyId);\n return json(m);\n } catch (e) {\n error(400, e.message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACrD,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC;AAC3D,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-Chr3sGwY.js b/build/server/chunks/_server.ts-Chr3sGwY.js deleted file mode 100644 index b6e06de..0000000 --- a/build/server/chunks/_server.ts-Chr3sGwY.js +++ /dev/null @@ -1,29 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { d as db, f as and, e as eq, c as mappoolSlot } from './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const POST = async ({ params, request, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const { beatmapId, category, mods } = await request.json(); - if (!beatmapId || !category) { - error(400, "beatmapId and category are required"); - } - const existing = await db.query.mappoolSlot.findMany({ - where: and( - eq(mappoolSlot.mappoolId, params.id), - eq(mappoolSlot.category, category.toUpperCase()) - ) - }); - const [created] = await db.insert(mappoolSlot).values({ - mappoolId: params.id, - beatmapId: String(beatmapId), - category: category.toUpperCase(), - orderInCategory: existing.length + 1, - mods: mods ?? [] - }).returning(); - return json(created, { status: 201 }); -}; - -export { POST }; -//# sourceMappingURL=_server.ts-Chr3sGwY.js.map diff --git a/build/server/chunks/_server.ts-Chr3sGwY.js.map b/build/server/chunks/_server.ts-Chr3sGwY.js.map deleted file mode 100644 index f825b74..0000000 --- a/build/server/chunks/_server.ts-Chr3sGwY.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-Chr3sGwY.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mappools/_id_/slots/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { d as db, a as mappoolSlot } from \"../../../../../../chunks/index2.js\";\nimport { and, eq } from \"drizzle-orm\";\nconst POST = async ({ params, request, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const { beatmapId, category, mods } = await request.json();\n if (!beatmapId || !category) {\n error(400, \"beatmapId and category are required\");\n }\n const existing = await db.query.mappoolSlot.findMany({\n where: and(\n eq(mappoolSlot.mappoolId, params.id),\n eq(mappoolSlot.category, category.toUpperCase())\n )\n });\n const [created] = await db.insert(mappoolSlot).values({\n mappoolId: params.id,\n beatmapId: String(beatmapId),\n category: category.toUpperCase(),\n orderInCategory: existing.length + 1,\n mods: mods ?? []\n }).returning();\n return json(created, { status: 201 });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC5D,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;AAC/B,IAAI,KAAK,CAAC,GAAG,EAAE,qCAAqC,CAAC;AACrD,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;AACvD,IAAI,KAAK,EAAE,GAAG;AACd,MAAM,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AAC1C,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;AACrD;AACA,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AACxD,IAAI,SAAS,EAAE,MAAM,CAAC,EAAE;AACxB,IAAI,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;AAChC,IAAI,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;AACpC,IAAI,eAAe,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;AACxC,IAAI,IAAI,EAAE,IAAI,IAAI;AAClB,GAAG,CAAC,CAAC,SAAS,EAAE;AAChB,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACvC;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-CknVZIWY.js b/build/server/chunks/_server.ts-CknVZIWY.js deleted file mode 100644 index 193c624..0000000 --- a/build/server/chunks/_server.ts-CknVZIWY.js +++ /dev/null @@ -1,25 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { d as db, b as mappool } from './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const GET = async ({ locals }) => { - if (!locals.user) error(401, "Not logged in"); - const mappools = await db.query.mappool.findMany({ - orderBy: (m, { desc }) => [desc(m.createdAt)] - }); - return json(mappools); -}; -const POST = async ({ request, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const { name } = await request.json(); - if (!name?.trim()) error(400, "Name is required"); - const [created] = await db.insert(mappool).values({ - name: name.trim(), - createdBy: locals.user.id - }).returning(); - return json(created, { status: 201 }); -}; - -export { GET, POST }; -//# sourceMappingURL=_server.ts-CknVZIWY.js.map diff --git a/build/server/chunks/_server.ts-CknVZIWY.js.map b/build/server/chunks/_server.ts-CknVZIWY.js.map deleted file mode 100644 index c4732e2..0000000 --- a/build/server/chunks/_server.ts-CknVZIWY.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-CknVZIWY.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mappools/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { d as db, m as mappool } from \"../../../../chunks/index2.js\";\nconst GET = async ({ locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const mappools = await db.query.mappool.findMany({\n orderBy: (m, { desc }) => [desc(m.createdAt)]\n });\n return json(mappools);\n};\nconst POST = async ({ request, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const { name } = await request.json();\n if (!name?.trim()) error(400, \"Name is required\");\n const [created] = await db.insert(mappool).values({\n name: name.trim(),\n createdBy: locals.user.id\n }).returning();\n return json(created, { status: 201 });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC5C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACvC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACnD,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACpD,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACrB,IAAI,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;AAC3B,GAAG,CAAC,CAAC,SAAS,EAAE;AAChB,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACvC;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-Cp6RS2Xl.js b/build/server/chunks/_server.ts-Cp6RS2Xl.js deleted file mode 100644 index 205f88e..0000000 --- a/build/server/chunks/_server.ts-Cp6RS2Xl.js +++ /dev/null @@ -1,27 +0,0 @@ -import { j as json } from './index-B2LGyy1l.js'; -import { d as db, x as sql } from './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const GET = async () => { - try { - await db.execute(sql`SELECT 1`); - return json({ - status: "ok", - timestamp: (/* @__PURE__ */ new Date()).toISOString(), - uptime: process.uptime() - }); - } catch (e) { - return json( - { - status: "error", - error: "Database connection failed", - timestamp: (/* @__PURE__ */ new Date()).toISOString() - }, - { status: 503 } - ); - } -}; - -export { GET }; -//# sourceMappingURL=_server.ts-Cp6RS2Xl.js.map diff --git a/build/server/chunks/_server.ts-Cp6RS2Xl.js.map b/build/server/chunks/_server.ts-Cp6RS2Xl.js.map deleted file mode 100644 index a88f65f..0000000 --- a/build/server/chunks/_server.ts-Cp6RS2Xl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-Cp6RS2Xl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { d as db } from \"../../../../chunks/index2.js\";\nimport { sql } from \"drizzle-orm\";\nconst GET = async () => {\n try {\n await db.execute(sql`SELECT 1`);\n return json({\n status: \"ok\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n uptime: process.uptime()\n });\n } catch (e) {\n return json(\n {\n status: \"error\",\n error: \"Database connection failed\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n },\n { status: 503 }\n );\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;AAGK,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AAC3D,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM;AAC5B,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,IAAI;AACf,MAAM;AACN,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,KAAK,EAAE,4BAA4B;AAC3C,QAAQ,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AAC3D,OAAO;AACP,MAAM,EAAE,MAAM,EAAE,GAAG;AACnB,KAAK;AACL,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-DLwKwHxp.js b/build/server/chunks/_server.ts-DLwKwHxp.js deleted file mode 100644 index 08be600..0000000 --- a/build/server/chunks/_server.ts-DLwKwHxp.js +++ /dev/null @@ -1,18 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { g as getBeatmap } from './api-DYV1cRWY.js'; -import './shared-server-DaWdgxVh.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; - -const GET = async ({ params, locals }) => { - if (!locals.user) error(401, "Not logged in"); - try { - const beatmap = await getBeatmap(params.id); - return json(beatmap); - } catch { - error(404, "Beatmap not found"); - } -}; - -export { GET }; -//# sourceMappingURL=_server.ts-DLwKwHxp.js.map diff --git a/build/server/chunks/_server.ts-DLwKwHxp.js.map b/build/server/chunks/_server.ts-DLwKwHxp.js.map deleted file mode 100644 index ed468c0..0000000 --- a/build/server/chunks/_server.ts-DLwKwHxp.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-DLwKwHxp.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/osu/beatmap/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { g as getBeatmap } from \"../../../../../../chunks/api.js\";\nconst GET = async ({ params, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n try {\n const beatmap = await getBeatmap(params.id);\n return json(beatmap);\n } catch {\n error(404, \"Beatmap not found\");\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,IAAI;AACN,IAAI,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACnC,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-DRKvzZ51.js b/build/server/chunks/_server.ts-DRKvzZ51.js deleted file mode 100644 index d6138b8..0000000 --- a/build/server/chunks/_server.ts-DRKvzZ51.js +++ /dev/null @@ -1,36 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { l as leaveQueue, e as getQueueStatus, j as joinQueue } from './engine-DiCmv1C-.js'; -import { d as db, e as eq, j as teamMember } from './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const GET = async ({ locals }) => { - if (!locals.user) error(401, "Not logged in"); - const status = await getQueueStatus(locals.user.id); - return json(status); -}; -const POST = async ({ locals }) => { - if (!locals.user) error(401, "Not logged in"); - const membership = await db.query.teamMember.findFirst({ - where: eq(teamMember.userId, locals.user.id), - with: { team: true } - }); - const personalTeam = membership?.team; - if (!personalTeam?.isPersonal) { - error(400, "No personal team found"); - } - try { - const result = await joinQueue(locals.user.id, personalTeam.id); - return json({ matched: !!result, match: result }); - } catch (e) { - error(400, e.message); - } -}; -const DELETE = async ({ locals }) => { - if (!locals.user) error(401, "Not logged in"); - await leaveQueue(locals.user.id); - return json({ ok: true }); -}; - -export { DELETE, GET, POST }; -//# sourceMappingURL=_server.ts-DRKvzZ51.js.map diff --git a/build/server/chunks/_server.ts-DRKvzZ51.js.map b/build/server/chunks/_server.ts-DRKvzZ51.js.map deleted file mode 100644 index f49b678..0000000 --- a/build/server/chunks/_server.ts-DRKvzZ51.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-DRKvzZ51.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/queue/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { l as leaveQueue, e as getQueueStatus, j as joinQueue } from \"../../../../chunks/engine.js\";\nimport { d as db, t as teamMember } from \"../../../../chunks/index2.js\";\nimport { eq } from \"drizzle-orm\";\nconst GET = async ({ locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const status = await getQueueStatus(locals.user.id);\n return json(status);\n};\nconst POST = async ({ locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const membership = await db.query.teamMember.findFirst({\n where: eq(teamMember.userId, locals.user.id),\n with: { team: true }\n });\n const personalTeam = membership?.team;\n if (!personalTeam?.isPersonal) {\n error(400, \"No personal team found\");\n }\n try {\n const result = await joinQueue(locals.user.id, personalTeam.id);\n return json({ matched: !!result, match: result });\n } catch (e) {\n error(400, e.message);\n }\n};\nconst DELETE = async ({ locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n await leaveQueue(locals.user.id);\n return json({ ok: true });\n};\nexport {\n DELETE,\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;AAIK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;AACzD,IAAI,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAChD,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI;AACtB,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,UAAU,EAAE,IAAI;AACvC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE;AACjC,IAAI,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AACxC,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC;AACnE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACrD,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACrC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAClC,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-KSG0NbEr.js b/build/server/chunks/_server.ts-KSG0NbEr.js deleted file mode 100644 index 9dc83b3..0000000 --- a/build/server/chunks/_server.ts-KSG0NbEr.js +++ /dev/null @@ -1,27 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { a as cancelMatch, g as getMatchFull } from './engine-DiCmv1C-.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const GET = async ({ params, locals }) => { - if (!locals.user) error(401, "Not logged in"); - try { - const m = await getMatchFull(params.id); - return json(m); - } catch (e) { - error(404, e.message); - } -}; -const DELETE = async ({ params, locals }) => { - if (!locals.user) error(401, "Not logged in"); - try { - const m = await cancelMatch(params.id); - return json(m); - } catch (e) { - error(400, e.message); - } -}; - -export { DELETE, GET }; -//# sourceMappingURL=_server.ts-KSG0NbEr.js.map diff --git a/build/server/chunks/_server.ts-KSG0NbEr.js.map b/build/server/chunks/_server.ts-KSG0NbEr.js.map deleted file mode 100644 index f99c5ff..0000000 --- a/build/server/chunks/_server.ts-KSG0NbEr.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-KSG0NbEr.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/matches/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { a as cancelMatch, g as getMatchFull } from \"../../../../../chunks/engine.js\";\nconst GET = async ({ params, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n try {\n const m = await getMatchFull(params.id);\n return json(m);\n } catch (e) {\n error(404, e.message);\n }\n};\nconst DELETE = async ({ params, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n try {\n const m = await cancelMatch(params.id);\n return json(m);\n } catch (e) {\n error(400, e.message);\n }\n};\nexport {\n DELETE,\n GET\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;AAC3C,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1C,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-M_0oeLSe.js b/build/server/chunks/_server.ts-M_0oeLSe.js deleted file mode 100644 index 95ec190..0000000 --- a/build/server/chunks/_server.ts-M_0oeLSe.js +++ /dev/null @@ -1,18 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { d as moveToRolling } from './engine-DiCmv1C-.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const POST = async ({ params, locals }) => { - if (!locals.user) error(401, "Not logged in"); - try { - const m = await moveToRolling(params.id); - return json(m); - } catch (e) { - error(400, e.message); - } -}; - -export { POST }; -//# sourceMappingURL=_server.ts-M_0oeLSe.js.map diff --git a/build/server/chunks/_server.ts-M_0oeLSe.js.map b/build/server/chunks/_server.ts-M_0oeLSe.js.map deleted file mode 100644 index f1ddeac..0000000 --- a/build/server/chunks/_server.ts-M_0oeLSe.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-M_0oeLSe.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/matches/_id_/rolling/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { b as moveToRolling } from \"../../../../../../chunks/engine.js\";\nconst POST = async ({ params, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n try {\n const m = await moveToRolling(params.id);\n return json(m);\n } catch (e) {\n error(400, e.message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5C,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-kIjYmsyw.js b/build/server/chunks/_server.ts-kIjYmsyw.js deleted file mode 100644 index 6086706..0000000 --- a/build/server/chunks/_server.ts-kIjYmsyw.js +++ /dev/null @@ -1,22 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { s as submitRoll } from './engine-DiCmv1C-.js'; -import './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const POST = async ({ params, request, locals }) => { - if (!locals.user) error(401, "Not logged in"); - const { participantId, value } = await request.json(); - if (!participantId || value == null) { - error(400, "participantId and value required"); - } - try { - const m = await submitRoll(params.id, participantId, value); - return json(m); - } catch (e) { - error(400, e.message); - } -}; - -export { POST }; -//# sourceMappingURL=_server.ts-kIjYmsyw.js.map diff --git a/build/server/chunks/_server.ts-kIjYmsyw.js.map b/build/server/chunks/_server.ts-kIjYmsyw.js.map deleted file mode 100644 index 51a486a..0000000 --- a/build/server/chunks/_server.ts-kIjYmsyw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-kIjYmsyw.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/matches/_id_/roll/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { s as submitRoll } from \"../../../../../../chunks/engine.js\";\nconst POST = async ({ params, request, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n const { participantId, value } = await request.json();\n if (!participantId || value == null) {\n error(400, \"participantId and value required\");\n }\n try {\n const m = await submitRoll(params.id, participantId, value);\n return json(m);\n } catch (e) {\n error(400, e.message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACvD,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK,IAAI,IAAI,EAAE;AACvC,IAAI,KAAK,CAAC,GAAG,EAAE,kCAAkC,CAAC;AAClD,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC;AAC/D,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE;AACF;;;;"} \ No newline at end of file diff --git a/build/server/chunks/_server.ts-wwm7Wb6_.js b/build/server/chunks/_server.ts-wwm7Wb6_.js deleted file mode 100644 index 65bb5d1..0000000 --- a/build/server/chunks/_server.ts-wwm7Wb6_.js +++ /dev/null @@ -1,13 +0,0 @@ -import { e as error, j as json } from './index-B2LGyy1l.js'; -import { d as db, c as mappoolSlot, e as eq } from './index2-B7hVh_Qf.js'; -import 'postgres'; -import './shared-server-DaWdgxVh.js'; - -const DELETE = async ({ params, locals }) => { - if (!locals.user) error(401, "Not logged in"); - await db.delete(mappoolSlot).where(eq(mappoolSlot.id, params.slotId)); - return json({ ok: true }); -}; - -export { DELETE }; -//# sourceMappingURL=_server.ts-wwm7Wb6_.js.map diff --git a/build/server/chunks/_server.ts-wwm7Wb6_.js.map b/build/server/chunks/_server.ts-wwm7Wb6_.js.map deleted file mode 100644 index c6dc62c..0000000 --- a/build/server/chunks/_server.ts-wwm7Wb6_.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_server.ts-wwm7Wb6_.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mappools/_id_/slots/_slotId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { d as db, a as mappoolSlot } from \"../../../../../../../chunks/index2.js\";\nimport { eq } from \"drizzle-orm\";\nconst DELETE = async ({ params, locals }) => {\n if (!locals.user) error(401, \"Not logged in\");\n await db.delete(mappoolSlot).where(eq(mappoolSlot.id, params.slotId));\n return json({ ok: true });\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;AAGK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;AAC/C,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvE,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B;;;;"} \ No newline at end of file diff --git a/build/server/chunks/aggregate-CrXc04Dg.js b/build/server/chunks/aggregate-CrXc04Dg.js deleted file mode 100644 index 13ebf3e..0000000 --- a/build/server/chunks/aggregate-CrXc04Dg.js +++ /dev/null @@ -1,8 +0,0 @@ -import { x as sql } from './index2-B7hVh_Qf.js'; - -function count(expression) { - return sql`count(${sql.raw("*")})`.mapWith(Number); -} - -export { count as c }; -//# sourceMappingURL=aggregate-CrXc04Dg.js.map diff --git a/build/server/chunks/aggregate-CrXc04Dg.js.map b/build/server/chunks/aggregate-CrXc04Dg.js.map deleted file mode 100644 index 2647584..0000000 --- a/build/server/chunks/aggregate-CrXc04Dg.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"aggregate-CrXc04Dg.js","sources":["../../../node_modules/drizzle-orm/sql/functions/aggregate.js"],"sourcesContent":["import { Column } from \"../../column.js\";\nimport { is } from \"../../entity.js\";\nimport { sql } from \"../sql.js\";\nfunction count(expression) {\n return sql`count(${expression || sql.raw(\"*\")})`.mapWith(Number);\n}\nfunction countDistinct(expression) {\n return sql`count(distinct ${expression})`.mapWith(Number);\n}\nfunction avg(expression) {\n return sql`avg(${expression})`.mapWith(String);\n}\nfunction avgDistinct(expression) {\n return sql`avg(distinct ${expression})`.mapWith(String);\n}\nfunction sum(expression) {\n return sql`sum(${expression})`.mapWith(String);\n}\nfunction sumDistinct(expression) {\n return sql`sum(distinct ${expression})`.mapWith(String);\n}\nfunction max(expression) {\n return sql`max(${expression})`.mapWith(is(expression, Column) ? expression : String);\n}\nfunction min(expression) {\n return sql`min(${expression})`.mapWith(is(expression, Column) ? expression : String);\n}\nexport {\n avg,\n avgDistinct,\n count,\n countDistinct,\n max,\n min,\n sum,\n sumDistinct\n};\n//# sourceMappingURL=aggregate.js.map"],"names":[],"mappings":";;AAGA,SAAS,KAAK,CAAC,UAAU,EAAE;AAC3B,EAAE,OAAO,GAAG,CAAC,MAAM,EAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AAClE;;;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/build/server/chunks/api-DYV1cRWY.js b/build/server/chunks/api-DYV1cRWY.js deleted file mode 100644 index 607c94c..0000000 --- a/build/server/chunks/api-DYV1cRWY.js +++ /dev/null @@ -1,70 +0,0 @@ -import { b as private_env } from './shared-server-DaWdgxVh.js'; -import './index2-B7hVh_Qf.js'; - -const CACHE_TTL = 10 * 60 * 1e3; -const MAX_ENTRIES = 500; -const cache = /* @__PURE__ */ new Map(); -function getCached(key) { - const entry = cache.get(key); - if (!entry) return null; - if (Date.now() > entry.expiresAt) { - cache.delete(key); - return null; - } - return entry.data; -} -function setCache(key, data, ttl = CACHE_TTL) { - if (cache.size >= MAX_ENTRIES) { - const firstKey = cache.keys().next().value; - if (firstKey) cache.delete(firstKey); - } - cache.set(key, { data, expiresAt: Date.now() + ttl }); -} -let clientToken = null; -let clientTokenExpiresAt = 0; -async function getClientToken() { - if (clientToken && Date.now() < clientTokenExpiresAt - 6e4) { - return clientToken; - } - const res = await fetch("https://osu.ppy.sh/oauth/token", { - method: "POST", - headers: { - Accept: "application/json", - "Content-Type": "application/x-www-form-urlencoded" - }, - body: new URLSearchParams({ - client_id: private_env.OSU_CLIENT_ID, - client_secret: private_env.OSU_CLIENT_SECRET, - grant_type: "client_credentials", - scope: "identify public" - }) - }); - if (!res.ok) { - throw new Error(`Failed to get osu! client token: ${res.status} ${res.statusText}`); - } - const data = await res.json(); - clientToken = data.access_token; - clientTokenExpiresAt = Date.now() + data.expires_in * 1e3; - return clientToken; -} -async function osuFetch(path, token) { - const t = await getClientToken(); - const res = await fetch(`https://osu.ppy.sh/api/v2${path}`, { - headers: { Authorization: `Bearer ${t}` } - }); - if (!res.ok) { - throw new Error(`osu! API ${path}: ${res.status} ${res.statusText}`); - } - return res.json(); -} -async function getBeatmap(beatmapId) { - const cacheKey = `beatmap:${beatmapId}`; - const cached = getCached(cacheKey); - if (cached) return cached; - const data = await osuFetch(`/beatmaps/${beatmapId}`); - setCache(cacheKey, data); - return data; -} - -export { getBeatmap as g }; -//# sourceMappingURL=api-DYV1cRWY.js.map diff --git a/build/server/chunks/api-DYV1cRWY.js.map b/build/server/chunks/api-DYV1cRWY.js.map deleted file mode 100644 index 4fb9f4c..0000000 --- a/build/server/chunks/api-DYV1cRWY.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"api-DYV1cRWY.js","sources":["../../../.svelte-kit/adapter-node/chunks/api.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport \"./index2.js\";\nconst CACHE_TTL = 10 * 60 * 1e3;\nconst MAX_ENTRIES = 500;\nconst cache = /* @__PURE__ */ new Map();\nfunction getCached(key) {\n const entry = cache.get(key);\n if (!entry) return null;\n if (Date.now() > entry.expiresAt) {\n cache.delete(key);\n return null;\n }\n return entry.data;\n}\nfunction setCache(key, data, ttl = CACHE_TTL) {\n if (cache.size >= MAX_ENTRIES) {\n const firstKey = cache.keys().next().value;\n if (firstKey) cache.delete(firstKey);\n }\n cache.set(key, { data, expiresAt: Date.now() + ttl });\n}\nlet clientToken = null;\nlet clientTokenExpiresAt = 0;\nasync function getClientToken() {\n if (clientToken && Date.now() < clientTokenExpiresAt - 6e4) {\n return clientToken;\n }\n const res = await fetch(\"https://osu.ppy.sh/oauth/token\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: new URLSearchParams({\n client_id: private_env.OSU_CLIENT_ID,\n client_secret: private_env.OSU_CLIENT_SECRET,\n grant_type: \"client_credentials\",\n scope: \"identify public\"\n })\n });\n if (!res.ok) {\n throw new Error(`Failed to get osu! client token: ${res.status} ${res.statusText}`);\n }\n const data = await res.json();\n clientToken = data.access_token;\n clientTokenExpiresAt = Date.now() + data.expires_in * 1e3;\n return clientToken;\n}\nasync function osuFetch(path, token) {\n const t = await getClientToken();\n const res = await fetch(`https://osu.ppy.sh/api/v2${path}`, {\n headers: { Authorization: `Bearer ${t}` }\n });\n if (!res.ok) {\n throw new Error(`osu! API ${path}: ${res.status} ${res.statusText}`);\n }\n return res.json();\n}\nasync function getBeatmap(beatmapId) {\n const cacheKey = `beatmap:${beatmapId}`;\n const cached = getCached(cacheKey);\n if (cached) return cached;\n const data = await osuFetch(`/beatmaps/${beatmapId}`);\n setCache(cacheKey, data);\n return data;\n}\nexport {\n getBeatmap as g\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/server/chunks/auth-CAP7sZek.js b/build/server/chunks/auth-CAP7sZek.js deleted file mode 100644 index a3c6245..0000000 --- a/build/server/chunks/auth-CAP7sZek.js +++ /dev/null @@ -1,51503 +0,0 @@ -import { b as private_env } from './shared-server-DaWdgxVh.js'; -import { g as getRequestEvent } from './root-D12ma0No.js'; -import './utils-D_bK1W85.js'; -import './index-B2LGyy1l.js'; -import './shared-DWC9PG0H.js'; -import { a as desc, k as asc, i as inArray, n as notInArray, l as like, o as lt$1, q as lte, r as ne, s as gt, v as gte, e as eq, f as and, w as or, x as sql$1, d as db, t as team, j as teamMember } from './index2-B7hVh_Qf.js'; -import { c as count } from './aggregate-CrXc04Dg.js'; - -//#region src/env/env-impl.ts -const _envShim = Object.create(null); -const _getEnv = (useShim) => globalThis.process?.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (useShim ? _envShim : globalThis); -const env = new Proxy(_envShim, { - get(_, prop) { - return _getEnv()[prop] ?? _envShim[prop]; - }, - has(_, prop) { - return prop in _getEnv() || prop in _envShim; - }, - set(_, prop, value) { - const env$1 = _getEnv(true); - env$1[prop] = value; - return true; - }, - deleteProperty(_, prop) { - if (!prop) return false; - const env$1 = _getEnv(true); - delete env$1[prop]; - return true; - }, - ownKeys() { - const env$1 = _getEnv(true); - return Object.keys(env$1); - } -}); -function toBoolean(val) { - return val ? val !== "false" : false; -} -const nodeENV = typeof process !== "undefined" && process.env && process.env.NODE_ENV || ""; -/** Detect if `NODE_ENV` environment variable is `production` */ -const isProduction = nodeENV === "production"; -/** Detect if `NODE_ENV` environment variable is `dev` or `development` */ -const isDevelopment = () => nodeENV === "dev" || nodeENV === "development"; -/** Detect if `NODE_ENV` environment variable is `test` */ -const isTest = () => nodeENV === "test" || toBoolean(env.TEST); -/** -* Get environment variable with fallback -*/ -function getEnvVar(key, fallback) { - if (typeof process !== "undefined" && process.env) return process.env[key] ?? fallback; - if (typeof Deno !== "undefined") return Deno.env.get(key) ?? fallback; - if (typeof Bun !== "undefined") return Bun.env[key] ?? fallback; - return fallback; -} -/** -* Get boolean environment variable -*/ -function getBooleanEnvVar(key, fallback = true) { - const value = getEnvVar(key); - if (!value) return fallback; - return value !== "0" && value.toLowerCase() !== "false" && value !== ""; -} -/** -* Common environment variables used in Better Auth -*/ -const ENV = Object.freeze({ - get BETTER_AUTH_SECRET() { - return getEnvVar("BETTER_AUTH_SECRET"); - }, - get AUTH_SECRET() { - return getEnvVar("AUTH_SECRET"); - }, - get BETTER_AUTH_TELEMETRY() { - return getEnvVar("BETTER_AUTH_TELEMETRY"); - }, - get BETTER_AUTH_TELEMETRY_ID() { - return getEnvVar("BETTER_AUTH_TELEMETRY_ID"); - }, - get NODE_ENV() { - return getEnvVar("NODE_ENV", "development"); - }, - get PACKAGE_VERSION() { - return getEnvVar("PACKAGE_VERSION", "0.0.0"); - }, - get BETTER_AUTH_TELEMETRY_ENDPOINT() { - return getEnvVar("BETTER_AUTH_TELEMETRY_ENDPOINT", ""); - } -}); - -//#region src/env/color-depth.ts -const COLORS_2 = 1; -const COLORS_16 = 4; -const COLORS_256 = 8; -const COLORS_16m = 24; -const TERM_ENVS = { - eterm: COLORS_16, - cons25: COLORS_16, - console: COLORS_16, - cygwin: COLORS_16, - dtterm: COLORS_16, - gnome: COLORS_16, - hurd: COLORS_16, - jfbterm: COLORS_16, - konsole: COLORS_16, - kterm: COLORS_16, - mlterm: COLORS_16, - mosh: COLORS_16m, - putty: COLORS_16, - st: COLORS_16, - "rxvt-unicode-24bit": COLORS_16m, - terminator: COLORS_16m, - "xterm-kitty": COLORS_16m -}; -const CI_ENVS_MAP = new Map(Object.entries({ - APPVEYOR: COLORS_256, - BUILDKITE: COLORS_256, - CIRCLECI: COLORS_16m, - DRONE: COLORS_256, - GITEA_ACTIONS: COLORS_16m, - GITHUB_ACTIONS: COLORS_16m, - GITLAB_CI: COLORS_256, - TRAVIS: COLORS_256 -})); -const TERM_ENVS_REG_EXP = [ - /ansi/, - /color/, - /linux/, - /direct/, - /^con[0-9]*x[0-9]/, - /^rxvt/, - /^screen/, - /^xterm/, - /^vt100/, - /^vt220/ -]; -function getColorDepth() { - if (getEnvVar("FORCE_COLOR") !== void 0) switch (getEnvVar("FORCE_COLOR")) { - case "": - case "1": - case "true": return COLORS_16; - case "2": return COLORS_256; - case "3": return COLORS_16m; - default: return COLORS_2; - } - if (getEnvVar("NODE_DISABLE_COLORS") !== void 0 && getEnvVar("NODE_DISABLE_COLORS") !== "" || getEnvVar("NO_COLOR") !== void 0 && getEnvVar("NO_COLOR") !== "" || getEnvVar("TERM") === "dumb") return COLORS_2; - if (getEnvVar("TMUX")) return COLORS_16m; - if ("TF_BUILD" in env && "AGENT_NAME" in env) return COLORS_16; - if ("CI" in env) { - for (const { 0: envName, 1: colors } of CI_ENVS_MAP) if (envName in env) return colors; - if (getEnvVar("CI_NAME") === "codeship") return COLORS_256; - return COLORS_2; - } - if ("TEAMCITY_VERSION" in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(getEnvVar("TEAMCITY_VERSION")) !== null ? COLORS_16 : COLORS_2; - switch (getEnvVar("TERM_PROGRAM")) { - case "iTerm.app": - if (!getEnvVar("TERM_PROGRAM_VERSION") || /^[0-2]\./.exec(getEnvVar("TERM_PROGRAM_VERSION")) !== null) return COLORS_256; - return COLORS_16m; - case "HyperTerm": - case "MacTerm": return COLORS_16m; - case "Apple_Terminal": return COLORS_256; - } - if (getEnvVar("COLORTERM") === "truecolor" || getEnvVar("COLORTERM") === "24bit") return COLORS_16m; - if (getEnvVar("TERM")) { - if (/truecolor/.exec(getEnvVar("TERM")) !== null) return COLORS_16m; - if (/^xterm-256/.exec(getEnvVar("TERM")) !== null) return COLORS_256; - const termEnv = getEnvVar("TERM").toLowerCase(); - if (TERM_ENVS[termEnv]) return TERM_ENVS[termEnv]; - if (TERM_ENVS_REG_EXP.some((term) => term.exec(termEnv) !== null)) return COLORS_16; - } - if (getEnvVar("COLORTERM")) return COLORS_16; - return COLORS_2; -} - -//#region src/env/logger.ts -const TTY_COLORS = { - reset: "\x1B[0m", - bright: "\x1B[1m", - dim: "\x1B[2m", - fg: { - red: "\x1B[31m", - green: "\x1B[32m", - yellow: "\x1B[33m", - blue: "\x1B[34m", - magenta: "\x1B[35m"}, - bg: { - black: "\x1B[40m"} -}; -const levels = [ - "debug", - "info", - "success", - "warn", - "error" -]; -function shouldPublishLog(currentLogLevel, logLevel) { - return levels.indexOf(logLevel) >= levels.indexOf(currentLogLevel); -} -const levelColors = { - info: TTY_COLORS.fg.blue, - success: TTY_COLORS.fg.green, - warn: TTY_COLORS.fg.yellow, - error: TTY_COLORS.fg.red, - debug: TTY_COLORS.fg.magenta -}; -const formatMessage = (level, message, colorsEnabled) => { - const timestamp = (/* @__PURE__ */ new Date()).toISOString(); - if (colorsEnabled) return `${TTY_COLORS.dim}${timestamp}${TTY_COLORS.reset} ${levelColors[level]}${level.toUpperCase()}${TTY_COLORS.reset} ${TTY_COLORS.bright}[Better Auth]:${TTY_COLORS.reset} ${message}`; - return `${timestamp} ${level.toUpperCase()} [Better Auth]: ${message}`; -}; -const createLogger = (options) => { - const enabled = options?.disabled !== true; - const logLevel = options?.level ?? "warn"; - const colorsEnabled = options?.disableColors !== void 0 ? !options.disableColors : getColorDepth() !== 1; - const LogFunc = (level, message, args = []) => { - if (!enabled || !shouldPublishLog(logLevel, level)) return; - const formattedMessage = formatMessage(level, message, colorsEnabled); - if (!options || typeof options.log !== "function") { - if (level === "error") console.error(formattedMessage, ...args); - else if (level === "warn") console.warn(formattedMessage, ...args); - else console.log(formattedMessage, ...args); - return; - } - options.log(level === "success" ? "info" : level, message, ...args); - }; - return { - ...Object.fromEntries(levels.map((level) => [level, (...[message, ...args]) => LogFunc(level, message, args)])), - get level() { - return logLevel; - } - }; -}; -const logger = createLogger(); - -//#region src/utils/error-codes.ts -function defineErrorCodes(codes) { - return codes; -} - -//#region src/utils/db.ts -/** -* Filters output data by removing fields with the `returned: false` attribute. -* This ensures sensitive fields are not exposed in API responses. -*/ -function filterOutputFields(data, additionalFields) { - if (!data || !additionalFields) return data; - const returnFiltered = Object.entries(additionalFields).filter(([, { returned }]) => returned === false).map(([key]) => key); - return Object.entries(structuredClone(data)).filter(([key]) => !returnFiltered.includes(key)).reduce((acc, [key, value]) => ({ - ...acc, - [key]: value - }), {}); -} - -//#region src/utils/deprecate.ts -/** -* Wraps a function to log a deprecation warning at once. -*/ -function deprecate(fn, message, logger) { - let warned = false; - return function(...args) { - if (!warned) { - (logger?.warn ?? console.warn)(`[Deprecation] ${message}`); - warned = true; - } - return fn.apply(this, args); - }; -} - -function expandAlphabet(alphabet) { - switch (alphabet) { - case "a-z": - return "abcdefghijklmnopqrstuvwxyz"; - case "A-Z": - return "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - case "0-9": - return "0123456789"; - case "-_": - return "-_"; - default: - throw new Error(`Unsupported alphabet: ${alphabet}`); - } -} -function createRandomStringGenerator(...baseAlphabets) { - const baseCharSet = baseAlphabets.map(expandAlphabet).join(""); - if (baseCharSet.length === 0) { - throw new Error( - "No valid characters provided for random string generation." - ); - } - const baseCharSetLength = baseCharSet.length; - return (length, ...alphabets) => { - if (length <= 0) { - throw new Error("Length must be a positive integer."); - } - let charSet = baseCharSet; - let charSetLength = baseCharSetLength; - if (alphabets.length > 0) { - charSet = alphabets.map(expandAlphabet).join(""); - charSetLength = charSet.length; - } - const maxValid = Math.floor(256 / charSetLength) * charSetLength; - const buf = new Uint8Array(length * 2); - const bufLength = buf.length; - let result = ""; - let bufIndex = bufLength; - let rand; - while (result.length < length) { - if (bufIndex >= bufLength) { - crypto.getRandomValues(buf); - bufIndex = 0; - } - rand = buf[bufIndex++]; - if (rand < maxValid) { - result += charSet[rand % charSetLength]; - } - } - return result; - }; -} - -//#region src/utils/id.ts -const generateId$1 = (size) => { - return createRandomStringGenerator("a-z", "A-Z", "0-9")(size || 32); -}; - -/** A special constant with type `never` */ -const NEVER = Object.freeze({ - status: "aborted", -}); -function $constructor(name, initializer, params) { - function init(inst, def) { - if (!inst._zod) { - Object.defineProperty(inst, "_zod", { - value: { - def, - constr: _, - traits: new Set(), - }, - enumerable: false, - }); - } - if (inst._zod.traits.has(name)) { - return; - } - inst._zod.traits.add(name); - initializer(inst, def); - // support prototype modifications - const proto = _.prototype; - const keys = Object.keys(proto); - for (let i = 0; i < keys.length; i++) { - const k = keys[i]; - if (!(k in inst)) { - inst[k] = proto[k].bind(inst); - } - } - } - // doesn't work if Parent has a constructor with arguments - const Parent = params?.Parent ?? Object; - class Definition extends Parent { - } - Object.defineProperty(Definition, "name", { value: name }); - function _(def) { - var _a; - const inst = params?.Parent ? new Definition() : this; - init(inst, def); - (_a = inst._zod).deferred ?? (_a.deferred = []); - for (const fn of inst._zod.deferred) { - fn(); - } - return inst; - } - Object.defineProperty(_, "init", { value: init }); - Object.defineProperty(_, Symbol.hasInstance, { - value: (inst) => { - if (params?.Parent && inst instanceof params.Parent) - return true; - return inst?._zod?.traits?.has(name); - }, - }); - Object.defineProperty(_, "name", { value: name }); - return _; -} -////////////////////////////// UTILITIES /////////////////////////////////////// -const $brand = Symbol("zod_brand"); -class $ZodAsyncError extends Error { - constructor() { - super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); - } -} -class $ZodEncodeError extends Error { - constructor(name) { - super(`Encountered unidirectional transform during encode: ${name}`); - this.name = "ZodEncodeError"; - } -} -const globalConfig = {}; -function config$1(newConfig) { - if (newConfig) - Object.assign(globalConfig, newConfig); - return globalConfig; -} - -// functions -function assertEqual(val) { - return val; -} -function assertNotEqual(val) { - return val; -} -function assertIs(_arg) { } -function assertNever(_x) { - throw new Error("Unexpected value in exhaustive check"); -} -function assert(_) { } -function getEnumValues(entries) { - const numericValues = Object.values(entries).filter((v) => typeof v === "number"); - const values = Object.entries(entries) - .filter(([k, _]) => numericValues.indexOf(+k) === -1) - .map(([_, v]) => v); - return values; -} -function joinValues(array, separator = "|") { - return array.map((val) => stringifyPrimitive(val)).join(separator); -} -function jsonStringifyReplacer(_, value) { - if (typeof value === "bigint") - return value.toString(); - return value; -} -function cached(getter) { - return { - get value() { - { - const value = getter(); - Object.defineProperty(this, "value", { value }); - return value; - } - }, - }; -} -function nullish$1(input) { - return input === null || input === undefined; -} -function cleanRegex(source) { - const start = source.startsWith("^") ? 1 : 0; - const end = source.endsWith("$") ? source.length - 1 : source.length; - return source.slice(start, end); -} -function floatSafeRemainder(val, step) { - const valDecCount = (val.toString().split(".")[1] || "").length; - const stepString = step.toString(); - let stepDecCount = (stepString.split(".")[1] || "").length; - if (stepDecCount === 0 && /\d?e-\d?/.test(stepString)) { - const match = stepString.match(/\d?e-(\d?)/); - if (match?.[1]) { - stepDecCount = Number.parseInt(match[1]); - } - } - const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; - const valInt = Number.parseInt(val.toFixed(decCount).replace(".", "")); - const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", "")); - return (valInt % stepInt) / 10 ** decCount; -} -const EVALUATING = Symbol("evaluating"); -function defineLazy(object, key, getter) { - let value = undefined; - Object.defineProperty(object, key, { - get() { - if (value === EVALUATING) { - // Circular reference detected, return undefined to break the cycle - return undefined; - } - if (value === undefined) { - value = EVALUATING; - value = getter(); - } - return value; - }, - set(v) { - Object.defineProperty(object, key, { - value: v, - // configurable: true, - }); - // object[key] = v; - }, - configurable: true, - }); -} -function objectClone(obj) { - return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj)); -} -function assignProp(target, prop, value) { - Object.defineProperty(target, prop, { - value, - writable: true, - enumerable: true, - configurable: true, - }); -} -function mergeDefs(...defs) { - const mergedDescriptors = {}; - for (const def of defs) { - const descriptors = Object.getOwnPropertyDescriptors(def); - Object.assign(mergedDescriptors, descriptors); - } - return Object.defineProperties({}, mergedDescriptors); -} -function cloneDef(schema) { - return mergeDefs(schema._zod.def); -} -function getElementAtPath(obj, path) { - if (!path) - return obj; - return path.reduce((acc, key) => acc?.[key], obj); -} -function promiseAllObject(promisesObj) { - const keys = Object.keys(promisesObj); - const promises = keys.map((key) => promisesObj[key]); - return Promise.all(promises).then((results) => { - const resolvedObj = {}; - for (let i = 0; i < keys.length; i++) { - resolvedObj[keys[i]] = results[i]; - } - return resolvedObj; - }); -} -function randomString$1(length = 10) { - const chars = "abcdefghijklmnopqrstuvwxyz"; - let str = ""; - for (let i = 0; i < length; i++) { - str += chars[Math.floor(Math.random() * chars.length)]; - } - return str; -} -function esc(str) { - return JSON.stringify(str); -} -function slugify(input) { - return input - .toLowerCase() - .trim() - .replace(/[^\w\s-]/g, "") - .replace(/[\s_-]+/g, "-") - .replace(/^-+|-+$/g, ""); -} -const captureStackTrace = ("captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => { }); -function isObject$2(data) { - return typeof data === "object" && data !== null && !Array.isArray(data); -} -const allowsEval = cached(() => { - // @ts-ignore - if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) { - return false; - } - try { - const F = Function; - new F(""); - return true; - } - catch (_) { - return false; - } -}); -function isPlainObject$1(o) { - if (isObject$2(o) === false) - return false; - // modified constructor - const ctor = o.constructor; - if (ctor === undefined) - return true; - if (typeof ctor !== "function") - return true; - // modified prototype - const prot = ctor.prototype; - if (isObject$2(prot) === false) - return false; - // ctor doesn't have static `isPrototypeOf` - if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) { - return false; - } - return true; -} -function shallowClone(o) { - if (isPlainObject$1(o)) - return { ...o }; - if (Array.isArray(o)) - return [...o]; - return o; -} -function numKeys(data) { - let keyCount = 0; - for (const key in data) { - if (Object.prototype.hasOwnProperty.call(data, key)) { - keyCount++; - } - } - return keyCount; -} -const getParsedType = (data) => { - const t = typeof data; - switch (t) { - case "undefined": - return "undefined"; - case "string": - return "string"; - case "number": - return Number.isNaN(data) ? "nan" : "number"; - case "boolean": - return "boolean"; - case "function": - return "function"; - case "bigint": - return "bigint"; - case "symbol": - return "symbol"; - case "object": - if (Array.isArray(data)) { - return "array"; - } - if (data === null) { - return "null"; - } - if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { - return "promise"; - } - if (typeof Map !== "undefined" && data instanceof Map) { - return "map"; - } - if (typeof Set !== "undefined" && data instanceof Set) { - return "set"; - } - if (typeof Date !== "undefined" && data instanceof Date) { - return "date"; - } - // @ts-ignore - if (typeof File !== "undefined" && data instanceof File) { - return "file"; - } - return "object"; - default: - throw new Error(`Unknown data type: ${t}`); - } -}; -const propertyKeyTypes = new Set(["string", "number", "symbol"]); -const primitiveTypes = new Set(["string", "number", "bigint", "boolean", "symbol", "undefined"]); -function escapeRegex(str) { - return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); -} -// zod-specific utils -function clone(inst, def, params) { - const cl = new inst._zod.constr(def ?? inst._zod.def); - if (!def || params?.parent) - cl._zod.parent = inst; - return cl; -} -function normalizeParams(_params) { - const params = _params; - if (!params) - return {}; - if (typeof params === "string") - return { error: () => params }; - if (params?.message !== undefined) { - if (params?.error !== undefined) - throw new Error("Cannot specify both `message` and `error` params"); - params.error = params.message; - } - delete params.message; - if (typeof params.error === "string") - return { ...params, error: () => params.error }; - return params; -} -function createTransparentProxy(getter) { - let target; - return new Proxy({}, { - get(_, prop, receiver) { - target ?? (target = getter()); - return Reflect.get(target, prop, receiver); - }, - set(_, prop, value, receiver) { - target ?? (target = getter()); - return Reflect.set(target, prop, value, receiver); - }, - has(_, prop) { - target ?? (target = getter()); - return Reflect.has(target, prop); - }, - deleteProperty(_, prop) { - target ?? (target = getter()); - return Reflect.deleteProperty(target, prop); - }, - ownKeys(_) { - target ?? (target = getter()); - return Reflect.ownKeys(target); - }, - getOwnPropertyDescriptor(_, prop) { - target ?? (target = getter()); - return Reflect.getOwnPropertyDescriptor(target, prop); - }, - defineProperty(_, prop, descriptor) { - target ?? (target = getter()); - return Reflect.defineProperty(target, prop, descriptor); - }, - }); -} -function stringifyPrimitive(value) { - if (typeof value === "bigint") - return value.toString() + "n"; - if (typeof value === "string") - return `"${value}"`; - return `${value}`; -} -function optionalKeys(shape) { - return Object.keys(shape).filter((k) => { - return shape[k]._zod.optin === "optional" && shape[k]._zod.optout === "optional"; - }); -} -const NUMBER_FORMAT_RANGES = { - safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], - int32: [-2147483648, 2147483647], - uint32: [0, 4294967295], - float32: [-34028234663852886e22, 3.4028234663852886e38], - float64: [-Number.MAX_VALUE, Number.MAX_VALUE], -}; -const BIGINT_FORMAT_RANGES = { - int64: [/* @__PURE__*/ BigInt("-9223372036854775808"), /* @__PURE__*/ BigInt("9223372036854775807")], - uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt("18446744073709551615")], -}; -function pick(schema, mask) { - const currDef = schema._zod.def; - const checks = currDef.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - throw new Error(".pick() cannot be used on object schemas containing refinements"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const newShape = {}; - for (const key in mask) { - if (!(key in currDef.shape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - newShape[key] = currDef.shape[key]; - } - assignProp(this, "shape", newShape); // self-caching - return newShape; - }, - checks: [], - }); - return clone(schema, def); -} -function omit(schema, mask) { - const currDef = schema._zod.def; - const checks = currDef.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - throw new Error(".omit() cannot be used on object schemas containing refinements"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const newShape = { ...schema._zod.def.shape }; - for (const key in mask) { - if (!(key in currDef.shape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - delete newShape[key]; - } - assignProp(this, "shape", newShape); // self-caching - return newShape; - }, - checks: [], - }); - return clone(schema, def); -} -function extend(schema, shape) { - if (!isPlainObject$1(shape)) { - throw new Error("Invalid input to extend: expected a plain object"); - } - const checks = schema._zod.def.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - // Only throw if new shape overlaps with existing shape - // Use getOwnPropertyDescriptor to check key existence without accessing values - const existingShape = schema._zod.def.shape; - for (const key in shape) { - if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) { - throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead."); - } - } - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const _shape = { ...schema._zod.def.shape, ...shape }; - assignProp(this, "shape", _shape); // self-caching - return _shape; - }, - }); - return clone(schema, def); -} -function safeExtend(schema, shape) { - if (!isPlainObject$1(shape)) { - throw new Error("Invalid input to safeExtend: expected a plain object"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const _shape = { ...schema._zod.def.shape, ...shape }; - assignProp(this, "shape", _shape); // self-caching - return _shape; - }, - }); - return clone(schema, def); -} -function merge(a, b) { - const def = mergeDefs(a._zod.def, { - get shape() { - const _shape = { ...a._zod.def.shape, ...b._zod.def.shape }; - assignProp(this, "shape", _shape); // self-caching - return _shape; - }, - get catchall() { - return b._zod.def.catchall; - }, - checks: [], // delete existing checks - }); - return clone(a, def); -} -function partial(Class, schema, mask) { - const currDef = schema._zod.def; - const checks = currDef.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - throw new Error(".partial() cannot be used on object schemas containing refinements"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const oldShape = schema._zod.def.shape; - const shape = { ...oldShape }; - if (mask) { - for (const key in mask) { - if (!(key in oldShape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - // if (oldShape[key]!._zod.optin === "optional") continue; - shape[key] = Class - ? new Class({ - type: "optional", - innerType: oldShape[key], - }) - : oldShape[key]; - } - } - else { - for (const key in oldShape) { - // if (oldShape[key]!._zod.optin === "optional") continue; - shape[key] = Class - ? new Class({ - type: "optional", - innerType: oldShape[key], - }) - : oldShape[key]; - } - } - assignProp(this, "shape", shape); // self-caching - return shape; - }, - checks: [], - }); - return clone(schema, def); -} -function required(Class, schema, mask) { - const def = mergeDefs(schema._zod.def, { - get shape() { - const oldShape = schema._zod.def.shape; - const shape = { ...oldShape }; - if (mask) { - for (const key in mask) { - if (!(key in shape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - // overwrite with non-optional - shape[key] = new Class({ - type: "nonoptional", - innerType: oldShape[key], - }); - } - } - else { - for (const key in oldShape) { - // overwrite with non-optional - shape[key] = new Class({ - type: "nonoptional", - innerType: oldShape[key], - }); - } - } - assignProp(this, "shape", shape); // self-caching - return shape; - }, - }); - return clone(schema, def); -} -// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom -function aborted(x, startIndex = 0) { - if (x.aborted === true) - return true; - for (let i = startIndex; i < x.issues.length; i++) { - if (x.issues[i]?.continue !== true) { - return true; - } - } - return false; -} -function prefixIssues(path, issues) { - return issues.map((iss) => { - var _a; - (_a = iss).path ?? (_a.path = []); - iss.path.unshift(path); - return iss; - }); -} -function unwrapMessage(message) { - return typeof message === "string" ? message : message?.message; -} -function finalizeIssue(iss, ctx, config) { - const full = { ...iss, path: iss.path ?? [] }; - // for backwards compatibility - if (!iss.message) { - const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? - unwrapMessage(ctx?.error?.(iss)) ?? - unwrapMessage(config.customError?.(iss)) ?? - unwrapMessage(config.localeError?.(iss)) ?? - "Invalid input"; - full.message = message; - } - // delete (full as any).def; - delete full.inst; - delete full.continue; - if (!ctx?.reportInput) { - delete full.input; - } - return full; -} -function getSizableOrigin(input) { - if (input instanceof Set) - return "set"; - if (input instanceof Map) - return "map"; - // @ts-ignore - if (input instanceof File) - return "file"; - return "unknown"; -} -function getLengthableOrigin(input) { - if (Array.isArray(input)) - return "array"; - if (typeof input === "string") - return "string"; - return "unknown"; -} -function parsedType(data) { - const t = typeof data; - switch (t) { - case "number": { - return Number.isNaN(data) ? "nan" : "number"; - } - case "object": { - if (data === null) { - return "null"; - } - if (Array.isArray(data)) { - return "array"; - } - const obj = data; - if (obj && Object.getPrototypeOf(obj) !== Object.prototype && "constructor" in obj && obj.constructor) { - return obj.constructor.name; - } - } - } - return t; -} -function issue(...args) { - const [iss, input, inst] = args; - if (typeof iss === "string") { - return { - message: iss, - code: "custom", - input, - inst, - }; - } - return { ...iss }; -} -function cleanEnum(obj) { - return Object.entries(obj) - .filter(([k, _]) => { - // return true if NaN, meaning it's not a number, thus a string key - return Number.isNaN(Number.parseInt(k, 10)); - }) - .map((el) => el[1]); -} -// Codec utility functions -function base64ToUint8Array(base64) { - const binaryString = atob(base64); - const bytes = new Uint8Array(binaryString.length); - for (let i = 0; i < binaryString.length; i++) { - bytes[i] = binaryString.charCodeAt(i); - } - return bytes; -} -function uint8ArrayToBase64(bytes) { - let binaryString = ""; - for (let i = 0; i < bytes.length; i++) { - binaryString += String.fromCharCode(bytes[i]); - } - return btoa(binaryString); -} -function base64urlToUint8Array(base64url) { - const base64 = base64url.replace(/-/g, "+").replace(/_/g, "/"); - const padding = "=".repeat((4 - (base64.length % 4)) % 4); - return base64ToUint8Array(base64 + padding); -} -function uint8ArrayToBase64url(bytes) { - return uint8ArrayToBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, ""); -} -function hexToUint8Array(hex) { - const cleanHex = hex.replace(/^0x/, ""); - if (cleanHex.length % 2 !== 0) { - throw new Error("Invalid hex string length"); - } - const bytes = new Uint8Array(cleanHex.length / 2); - for (let i = 0; i < cleanHex.length; i += 2) { - bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16); - } - return bytes; -} -function uint8ArrayToHex(bytes) { - return Array.from(bytes) - .map((b) => b.toString(16).padStart(2, "0")) - .join(""); -} -// instanceof -class Class { - constructor(..._args) { } -} - -var util = /*#__PURE__*/Object.freeze({ - __proto__: null, - BIGINT_FORMAT_RANGES: BIGINT_FORMAT_RANGES, - Class: Class, - NUMBER_FORMAT_RANGES: NUMBER_FORMAT_RANGES, - aborted: aborted, - allowsEval: allowsEval, - assert: assert, - assertEqual: assertEqual, - assertIs: assertIs, - assertNever: assertNever, - assertNotEqual: assertNotEqual, - assignProp: assignProp, - base64ToUint8Array: base64ToUint8Array, - base64urlToUint8Array: base64urlToUint8Array, - cached: cached, - captureStackTrace: captureStackTrace, - cleanEnum: cleanEnum, - cleanRegex: cleanRegex, - clone: clone, - cloneDef: cloneDef, - createTransparentProxy: createTransparentProxy, - defineLazy: defineLazy, - esc: esc, - escapeRegex: escapeRegex, - extend: extend, - finalizeIssue: finalizeIssue, - floatSafeRemainder: floatSafeRemainder, - getElementAtPath: getElementAtPath, - getEnumValues: getEnumValues, - getLengthableOrigin: getLengthableOrigin, - getParsedType: getParsedType, - getSizableOrigin: getSizableOrigin, - hexToUint8Array: hexToUint8Array, - isObject: isObject$2, - isPlainObject: isPlainObject$1, - issue: issue, - joinValues: joinValues, - jsonStringifyReplacer: jsonStringifyReplacer, - merge: merge, - mergeDefs: mergeDefs, - normalizeParams: normalizeParams, - nullish: nullish$1, - numKeys: numKeys, - objectClone: objectClone, - omit: omit, - optionalKeys: optionalKeys, - parsedType: parsedType, - partial: partial, - pick: pick, - prefixIssues: prefixIssues, - primitiveTypes: primitiveTypes, - promiseAllObject: promiseAllObject, - propertyKeyTypes: propertyKeyTypes, - randomString: randomString$1, - required: required, - safeExtend: safeExtend, - shallowClone: shallowClone, - slugify: slugify, - stringifyPrimitive: stringifyPrimitive, - uint8ArrayToBase64: uint8ArrayToBase64, - uint8ArrayToBase64url: uint8ArrayToBase64url, - uint8ArrayToHex: uint8ArrayToHex, - unwrapMessage: unwrapMessage -}); - -const initializer$1 = (inst, def) => { - inst.name = "$ZodError"; - Object.defineProperty(inst, "_zod", { - value: inst._zod, - enumerable: false, - }); - Object.defineProperty(inst, "issues", { - value: def, - enumerable: false, - }); - inst.message = JSON.stringify(def, jsonStringifyReplacer, 2); - Object.defineProperty(inst, "toString", { - value: () => inst.message, - enumerable: false, - }); -}; -const $ZodError = $constructor("$ZodError", initializer$1); -const $ZodRealError = $constructor("$ZodError", initializer$1, { Parent: Error }); -function flattenError(error, mapper = (issue) => issue.message) { - const fieldErrors = {}; - const formErrors = []; - for (const sub of error.issues) { - if (sub.path.length > 0) { - fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; - fieldErrors[sub.path[0]].push(mapper(sub)); - } - else { - formErrors.push(mapper(sub)); - } - } - return { formErrors, fieldErrors }; -} -function formatError(error, mapper = (issue) => issue.message) { - const fieldErrors = { _errors: [] }; - const processError = (error) => { - for (const issue of error.issues) { - if (issue.code === "invalid_union" && issue.errors.length) { - issue.errors.map((issues) => processError({ issues })); - } - else if (issue.code === "invalid_key") { - processError({ issues: issue.issues }); - } - else if (issue.code === "invalid_element") { - processError({ issues: issue.issues }); - } - else if (issue.path.length === 0) { - fieldErrors._errors.push(mapper(issue)); - } - else { - let curr = fieldErrors; - let i = 0; - while (i < issue.path.length) { - const el = issue.path[i]; - const terminal = i === issue.path.length - 1; - if (!terminal) { - curr[el] = curr[el] || { _errors: [] }; - } - else { - curr[el] = curr[el] || { _errors: [] }; - curr[el]._errors.push(mapper(issue)); - } - curr = curr[el]; - i++; - } - } - } - }; - processError(error); - return fieldErrors; -} -function treeifyError(error, mapper = (issue) => issue.message) { - const result = { errors: [] }; - const processError = (error, path = []) => { - var _a, _b; - for (const issue of error.issues) { - if (issue.code === "invalid_union" && issue.errors.length) { - // regular union error - issue.errors.map((issues) => processError({ issues }, issue.path)); - } - else if (issue.code === "invalid_key") { - processError({ issues: issue.issues }, issue.path); - } - else if (issue.code === "invalid_element") { - processError({ issues: issue.issues }, issue.path); - } - else { - const fullpath = [...path, ...issue.path]; - if (fullpath.length === 0) { - result.errors.push(mapper(issue)); - continue; - } - let curr = result; - let i = 0; - while (i < fullpath.length) { - const el = fullpath[i]; - const terminal = i === fullpath.length - 1; - if (typeof el === "string") { - curr.properties ?? (curr.properties = {}); - (_a = curr.properties)[el] ?? (_a[el] = { errors: [] }); - curr = curr.properties[el]; - } - else { - curr.items ?? (curr.items = []); - (_b = curr.items)[el] ?? (_b[el] = { errors: [] }); - curr = curr.items[el]; - } - if (terminal) { - curr.errors.push(mapper(issue)); - } - i++; - } - } - } - }; - processError(error); - return result; -} -/** Format a ZodError as a human-readable string in the following form. - * - * From - * - * ```ts - * ZodError { - * issues: [ - * { - * expected: 'string', - * code: 'invalid_type', - * path: [ 'username' ], - * message: 'Invalid input: expected string' - * }, - * { - * expected: 'number', - * code: 'invalid_type', - * path: [ 'favoriteNumbers', 1 ], - * message: 'Invalid input: expected number' - * } - * ]; - * } - * ``` - * - * to - * - * ``` - * username - * ✖ Expected number, received string at "username - * favoriteNumbers[0] - * ✖ Invalid input: expected number - * ``` - */ -function toDotPath(_path) { - const segs = []; - const path = _path.map((seg) => (typeof seg === "object" ? seg.key : seg)); - for (const seg of path) { - if (typeof seg === "number") - segs.push(`[${seg}]`); - else if (typeof seg === "symbol") - segs.push(`[${JSON.stringify(String(seg))}]`); - else if (/[^\w$]/.test(seg)) - segs.push(`[${JSON.stringify(seg)}]`); - else { - if (segs.length) - segs.push("."); - segs.push(seg); - } - } - return segs.join(""); -} -function prettifyError(error) { - const lines = []; - // sort by path length - const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length); - // Process each issue - for (const issue of issues) { - lines.push(`✖ ${issue.message}`); - if (issue.path?.length) - lines.push(` → at ${toDotPath(issue.path)}`); - } - // Convert Map to formatted string - return lines.join("\n"); -} - -const _parse = (_Err) => (schema, value, _ctx, _params) => { - const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false }; - const result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) { - throw new $ZodAsyncError(); - } - if (result.issues.length) { - const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config$1()))); - captureStackTrace(e, _params?.callee); - throw e; - } - return result.value; -}; -const parse$2 = /* @__PURE__*/ _parse($ZodRealError); -const _parseAsync = (_Err) => async (schema, value, _ctx, params) => { - const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true }; - let result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) - result = await result; - if (result.issues.length) { - const e = new (params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config$1()))); - captureStackTrace(e, params?.callee); - throw e; - } - return result.value; -}; -const parseAsync$1 = /* @__PURE__*/ _parseAsync($ZodRealError); -const _safeParse = (_Err) => (schema, value, _ctx) => { - const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; - const result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) { - throw new $ZodAsyncError(); - } - return result.issues.length - ? { - success: false, - error: new (_Err ?? $ZodError)(result.issues.map((iss) => finalizeIssue(iss, ctx, config$1()))), - } - : { success: true, data: result.value }; -}; -const safeParse$1 = /* @__PURE__*/ _safeParse($ZodRealError); -const _safeParseAsync = (_Err) => async (schema, value, _ctx) => { - const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true }; - let result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) - result = await result; - return result.issues.length - ? { - success: false, - error: new _Err(result.issues.map((iss) => finalizeIssue(iss, ctx, config$1()))), - } - : { success: true, data: result.value }; -}; -const safeParseAsync$1 = /* @__PURE__*/ _safeParseAsync($ZodRealError); -const _encode = (_Err) => (schema, value, _ctx) => { - const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" }; - return _parse(_Err)(schema, value, ctx); -}; -const encode$3 = /* @__PURE__*/ _encode($ZodRealError); -const _decode = (_Err) => (schema, value, _ctx) => { - return _parse(_Err)(schema, value, _ctx); -}; -const decode$2 = /* @__PURE__*/ _decode($ZodRealError); -const _encodeAsync = (_Err) => async (schema, value, _ctx) => { - const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" }; - return _parseAsync(_Err)(schema, value, ctx); -}; -const encodeAsync$1 = /* @__PURE__*/ _encodeAsync($ZodRealError); -const _decodeAsync = (_Err) => async (schema, value, _ctx) => { - return _parseAsync(_Err)(schema, value, _ctx); -}; -const decodeAsync$1 = /* @__PURE__*/ _decodeAsync($ZodRealError); -const _safeEncode = (_Err) => (schema, value, _ctx) => { - const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" }; - return _safeParse(_Err)(schema, value, ctx); -}; -const safeEncode$1 = /* @__PURE__*/ _safeEncode($ZodRealError); -const _safeDecode = (_Err) => (schema, value, _ctx) => { - return _safeParse(_Err)(schema, value, _ctx); -}; -const safeDecode$1 = /* @__PURE__*/ _safeDecode($ZodRealError); -const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => { - const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" }; - return _safeParseAsync(_Err)(schema, value, ctx); -}; -const safeEncodeAsync$1 = /* @__PURE__*/ _safeEncodeAsync($ZodRealError); -const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => { - return _safeParseAsync(_Err)(schema, value, _ctx); -}; -const safeDecodeAsync$1 = /* @__PURE__*/ _safeDecodeAsync($ZodRealError); - -const cuid$1 = /^[cC][^\s-]{8,}$/; -const cuid2$1 = /^[0-9a-z]+$/; -const ulid$1 = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/; -const xid$1 = /^[0-9a-vA-V]{20}$/; -const ksuid$1 = /^[A-Za-z0-9]{27}$/; -const nanoid$1 = /^[a-zA-Z0-9_-]{21}$/; -/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */ -const duration$1 = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/; -/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */ -const extendedDuration = /^[-+]?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)?)??$/; -/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */ -const guid$1 = /^([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})$/; -/** Returns a regex for validating an RFC 9562/4122 UUID. - * - * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */ -const uuid$1 = (version) => { - if (!version) - return /^([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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/; - return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`); -}; -const uuid4 = /*@__PURE__*/ uuid$1(4); -const uuid6 = /*@__PURE__*/ uuid$1(6); -const uuid7 = /*@__PURE__*/ uuid$1(7); -/** Practical email validation */ -const email$1 = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/; -/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */ -const html5Email = /^[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])?)*$/; -/** The classic emailregex.com regex for RFC 5322-compliant emails */ -const rfc5322Email = /^(([^<>()\[\]\\.,;:\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,}))$/; -/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */ -const unicodeEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u; -const idnEmail = unicodeEmail; -const browserEmail = /^[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])?)*$/; -// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression -const _emoji$1 = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; -function emoji$1() { - return new RegExp(_emoji$1, "u"); -} -const ipv4$1 = /^(?:(?: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])$/; -const ipv6$1 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; -const mac$1 = (delimiter) => { - const escapedDelim = escapeRegex(delimiter ?? ":"); - return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`); -}; -const cidrv4$1 = /^((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])$/; -const cidrv6$1 = /^(([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])$/; -// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript -const base64$2 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/; -const base64url$1 = /^[A-Za-z0-9_-]*$/; -// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address -// export const hostname: RegExp = /^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/; -const hostname$1 = /^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/; -const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/; -// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces) -// E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15 -const e164$1 = /^\+[1-9]\d{6,14}$/; -// const dateSource = `((\\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])))`; -const dateSource = `(?:(?:\\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])))`; -const date$3 = /*@__PURE__*/ new RegExp(`^${dateSource}$`); -function timeSource(args) { - const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`; - const regex = typeof args.precision === "number" - ? args.precision === -1 - ? `${hhmm}` - : args.precision === 0 - ? `${hhmm}:[0-5]\\d` - : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` - : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`; - return regex; -} -function time$1(args) { - return new RegExp(`^${timeSource(args)}$`); -} -// Adapted from https://stackoverflow.com/a/3143231 -function datetime$1(args) { - const time = timeSource({ precision: args.precision }); - const opts = ["Z"]; - if (args.local) - opts.push(""); - // if (args.offset) opts.push(`([+-]\\d{2}:\\d{2})`); - if (args.offset) - opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`); - const timeRegex = `${time}(?:${opts.join("|")})`; - return new RegExp(`^${dateSource}T(?:${timeRegex})$`); -} -const string$2 = (params) => { - const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`; - return new RegExp(`^${regex}$`); -}; -const bigint$2 = /^-?\d+n?$/; -const integer = /^-?\d+$/; -const number$2 = /^-?\d+(?:\.\d+)?$/; -const boolean$2 = /^(?:true|false)$/i; -const _null$2 = /^null$/i; -const _undefined$2 = /^undefined$/i; -// regex for string with no uppercase letters -const lowercase = /^[^A-Z]*$/; -// regex for string with no lowercase letters -const uppercase = /^[^a-z]*$/; -// regex for hexadecimal strings (any length) -const hex$2 = /^[0-9a-fA-F]*$/; -// Hash regexes for different algorithms and encodings -// Helper function to create base64 regex with exact length and padding -function fixedBase64(bodyLength, padding) { - return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`); -} -// Helper function to create base64url regex with exact length (no padding) -function fixedBase64url(length) { - return new RegExp(`^[A-Za-z0-9_-]{${length}}$`); -} -// MD5 (16 bytes): base64 = 24 chars total (22 + "==") -const md5_hex = /^[0-9a-fA-F]{32}$/; -const md5_base64 = /*@__PURE__*/ fixedBase64(22, "=="); -const md5_base64url = /*@__PURE__*/ fixedBase64url(22); -// SHA1 (20 bytes): base64 = 28 chars total (27 + "=") -const sha1_hex = /^[0-9a-fA-F]{40}$/; -const sha1_base64 = /*@__PURE__*/ fixedBase64(27, "="); -const sha1_base64url = /*@__PURE__*/ fixedBase64url(27); -// SHA256 (32 bytes): base64 = 44 chars total (43 + "=") -const sha256_hex = /^[0-9a-fA-F]{64}$/; -const sha256_base64 = /*@__PURE__*/ fixedBase64(43, "="); -const sha256_base64url = /*@__PURE__*/ fixedBase64url(43); -// SHA384 (48 bytes): base64 = 64 chars total (no padding) -const sha384_hex = /^[0-9a-fA-F]{96}$/; -const sha384_base64 = /*@__PURE__*/ fixedBase64(64, ""); -const sha384_base64url = /*@__PURE__*/ fixedBase64url(64); -// SHA512 (64 bytes): base64 = 88 chars total (86 + "==") -const sha512_hex = /^[0-9a-fA-F]{128}$/; -const sha512_base64 = /*@__PURE__*/ fixedBase64(86, "=="); -const sha512_base64url = /*@__PURE__*/ fixedBase64url(86); - -var regexes = /*#__PURE__*/Object.freeze({ - __proto__: null, - base64: base64$2, - base64url: base64url$1, - bigint: bigint$2, - boolean: boolean$2, - browserEmail: browserEmail, - cidrv4: cidrv4$1, - cidrv6: cidrv6$1, - cuid: cuid$1, - cuid2: cuid2$1, - date: date$3, - datetime: datetime$1, - domain: domain, - duration: duration$1, - e164: e164$1, - email: email$1, - emoji: emoji$1, - extendedDuration: extendedDuration, - guid: guid$1, - hex: hex$2, - hostname: hostname$1, - html5Email: html5Email, - idnEmail: idnEmail, - integer: integer, - ipv4: ipv4$1, - ipv6: ipv6$1, - ksuid: ksuid$1, - lowercase: lowercase, - mac: mac$1, - md5_base64: md5_base64, - md5_base64url: md5_base64url, - md5_hex: md5_hex, - nanoid: nanoid$1, - null: _null$2, - number: number$2, - rfc5322Email: rfc5322Email, - sha1_base64: sha1_base64, - sha1_base64url: sha1_base64url, - sha1_hex: sha1_hex, - sha256_base64: sha256_base64, - sha256_base64url: sha256_base64url, - sha256_hex: sha256_hex, - sha384_base64: sha384_base64, - sha384_base64url: sha384_base64url, - sha384_hex: sha384_hex, - sha512_base64: sha512_base64, - sha512_base64url: sha512_base64url, - sha512_hex: sha512_hex, - string: string$2, - time: time$1, - ulid: ulid$1, - undefined: _undefined$2, - unicodeEmail: unicodeEmail, - uppercase: uppercase, - uuid: uuid$1, - uuid4: uuid4, - uuid6: uuid6, - uuid7: uuid7, - xid: xid$1 -}); - -// import { $ZodType } from "./schemas.js"; -const $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => { - var _a; - inst._zod ?? (inst._zod = {}); - inst._zod.def = def; - (_a = inst._zod).onattach ?? (_a.onattach = []); -}); -const numericOriginMap = { - number: "number", - bigint: "bigint", - object: "date", -}; -const $ZodCheckLessThan = /*@__PURE__*/ $constructor("$ZodCheckLessThan", (inst, def) => { - $ZodCheck.init(inst, def); - const origin = numericOriginMap[typeof def.value]; - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY; - if (def.value < curr) { - if (def.inclusive) - bag.maximum = def.value; - else - bag.exclusiveMaximum = def.value; - } - }); - inst._zod.check = (payload) => { - if (def.inclusive ? payload.value <= def.value : payload.value < def.value) { - return; - } - payload.issues.push({ - origin, - code: "too_big", - maximum: typeof def.value === "object" ? def.value.getTime() : def.value, - input: payload.value, - inclusive: def.inclusive, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckGreaterThan = /*@__PURE__*/ $constructor("$ZodCheckGreaterThan", (inst, def) => { - $ZodCheck.init(inst, def); - const origin = numericOriginMap[typeof def.value]; - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY; - if (def.value > curr) { - if (def.inclusive) - bag.minimum = def.value; - else - bag.exclusiveMinimum = def.value; - } - }); - inst._zod.check = (payload) => { - if (def.inclusive ? payload.value >= def.value : payload.value > def.value) { - return; - } - payload.issues.push({ - origin, - code: "too_small", - minimum: typeof def.value === "object" ? def.value.getTime() : def.value, - input: payload.value, - inclusive: def.inclusive, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckMultipleOf = -/*@__PURE__*/ $constructor("$ZodCheckMultipleOf", (inst, def) => { - $ZodCheck.init(inst, def); - inst._zod.onattach.push((inst) => { - var _a; - (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value); - }); - inst._zod.check = (payload) => { - if (typeof payload.value !== typeof def.value) - throw new Error("Cannot mix number and bigint in multiple_of check."); - const isMultiple = typeof payload.value === "bigint" - ? payload.value % def.value === BigInt(0) - : floatSafeRemainder(payload.value, def.value) === 0; - if (isMultiple) - return; - payload.issues.push({ - origin: typeof payload.value, - code: "not_multiple_of", - divisor: def.value, - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckNumberFormat = /*@__PURE__*/ $constructor("$ZodCheckNumberFormat", (inst, def) => { - $ZodCheck.init(inst, def); // no format checks - def.format = def.format || "float64"; - const isInt = def.format?.includes("int"); - const origin = isInt ? "int" : "number"; - const [minimum, maximum] = NUMBER_FORMAT_RANGES[def.format]; - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.format = def.format; - bag.minimum = minimum; - bag.maximum = maximum; - if (isInt) - bag.pattern = integer; - }); - inst._zod.check = (payload) => { - const input = payload.value; - if (isInt) { - if (!Number.isInteger(input)) { - // invalid_format issue - // payload.issues.push({ - // expected: def.format, - // format: def.format, - // code: "invalid_format", - // input, - // inst, - // }); - // invalid_type issue - payload.issues.push({ - expected: origin, - format: def.format, - code: "invalid_type", - continue: false, - input, - inst, - }); - return; - // not_multiple_of issue - // payload.issues.push({ - // code: "not_multiple_of", - // origin: "number", - // input, - // inst, - // divisor: 1, - // }); - } - if (!Number.isSafeInteger(input)) { - if (input > 0) { - // too_big - payload.issues.push({ - input, - code: "too_big", - maximum: Number.MAX_SAFE_INTEGER, - note: "Integers must be within the safe integer range.", - inst, - origin, - inclusive: true, - continue: !def.abort, - }); - } - else { - // too_small - payload.issues.push({ - input, - code: "too_small", - minimum: Number.MIN_SAFE_INTEGER, - note: "Integers must be within the safe integer range.", - inst, - origin, - inclusive: true, - continue: !def.abort, - }); - } - return; - } - } - if (input < minimum) { - payload.issues.push({ - origin: "number", - input, - code: "too_small", - minimum, - inclusive: true, - inst, - continue: !def.abort, - }); - } - if (input > maximum) { - payload.issues.push({ - origin: "number", - input, - code: "too_big", - maximum, - inclusive: true, - inst, - continue: !def.abort, - }); - } - }; -}); -const $ZodCheckBigIntFormat = /*@__PURE__*/ $constructor("$ZodCheckBigIntFormat", (inst, def) => { - $ZodCheck.init(inst, def); // no format checks - const [minimum, maximum] = BIGINT_FORMAT_RANGES[def.format]; - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.format = def.format; - bag.minimum = minimum; - bag.maximum = maximum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - if (input < minimum) { - payload.issues.push({ - origin: "bigint", - input, - code: "too_small", - minimum: minimum, - inclusive: true, - inst, - continue: !def.abort, - }); - } - if (input > maximum) { - payload.issues.push({ - origin: "bigint", - input, - code: "too_big", - maximum, - inclusive: true, - inst, - continue: !def.abort, - }); - } - }; -}); -const $ZodCheckMaxSize = /*@__PURE__*/ $constructor("$ZodCheckMaxSize", (inst, def) => { - var _a; - $ZodCheck.init(inst, def); - (_a = inst._zod.def).when ?? (_a.when = (payload) => { - const val = payload.value; - return !nullish$1(val) && val.size !== undefined; - }); - inst._zod.onattach.push((inst) => { - const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY); - if (def.maximum < curr) - inst._zod.bag.maximum = def.maximum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const size = input.size; - if (size <= def.maximum) - return; - payload.issues.push({ - origin: getSizableOrigin(input), - code: "too_big", - maximum: def.maximum, - inclusive: true, - input, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckMinSize = /*@__PURE__*/ $constructor("$ZodCheckMinSize", (inst, def) => { - var _a; - $ZodCheck.init(inst, def); - (_a = inst._zod.def).when ?? (_a.when = (payload) => { - const val = payload.value; - return !nullish$1(val) && val.size !== undefined; - }); - inst._zod.onattach.push((inst) => { - const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY); - if (def.minimum > curr) - inst._zod.bag.minimum = def.minimum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const size = input.size; - if (size >= def.minimum) - return; - payload.issues.push({ - origin: getSizableOrigin(input), - code: "too_small", - minimum: def.minimum, - inclusive: true, - input, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckSizeEquals = /*@__PURE__*/ $constructor("$ZodCheckSizeEquals", (inst, def) => { - var _a; - $ZodCheck.init(inst, def); - (_a = inst._zod.def).when ?? (_a.when = (payload) => { - const val = payload.value; - return !nullish$1(val) && val.size !== undefined; - }); - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.minimum = def.size; - bag.maximum = def.size; - bag.size = def.size; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const size = input.size; - if (size === def.size) - return; - const tooBig = size > def.size; - payload.issues.push({ - origin: getSizableOrigin(input), - ...(tooBig ? { code: "too_big", maximum: def.size } : { code: "too_small", minimum: def.size }), - inclusive: true, - exact: true, - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckMaxLength = /*@__PURE__*/ $constructor("$ZodCheckMaxLength", (inst, def) => { - var _a; - $ZodCheck.init(inst, def); - (_a = inst._zod.def).when ?? (_a.when = (payload) => { - const val = payload.value; - return !nullish$1(val) && val.length !== undefined; - }); - inst._zod.onattach.push((inst) => { - const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY); - if (def.maximum < curr) - inst._zod.bag.maximum = def.maximum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const length = input.length; - if (length <= def.maximum) - return; - const origin = getLengthableOrigin(input); - payload.issues.push({ - origin, - code: "too_big", - maximum: def.maximum, - inclusive: true, - input, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckMinLength = /*@__PURE__*/ $constructor("$ZodCheckMinLength", (inst, def) => { - var _a; - $ZodCheck.init(inst, def); - (_a = inst._zod.def).when ?? (_a.when = (payload) => { - const val = payload.value; - return !nullish$1(val) && val.length !== undefined; - }); - inst._zod.onattach.push((inst) => { - const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY); - if (def.minimum > curr) - inst._zod.bag.minimum = def.minimum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const length = input.length; - if (length >= def.minimum) - return; - const origin = getLengthableOrigin(input); - payload.issues.push({ - origin, - code: "too_small", - minimum: def.minimum, - inclusive: true, - input, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckLengthEquals = /*@__PURE__*/ $constructor("$ZodCheckLengthEquals", (inst, def) => { - var _a; - $ZodCheck.init(inst, def); - (_a = inst._zod.def).when ?? (_a.when = (payload) => { - const val = payload.value; - return !nullish$1(val) && val.length !== undefined; - }); - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.minimum = def.length; - bag.maximum = def.length; - bag.length = def.length; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const length = input.length; - if (length === def.length) - return; - const origin = getLengthableOrigin(input); - const tooBig = length > def.length; - payload.issues.push({ - origin, - ...(tooBig ? { code: "too_big", maximum: def.length } : { code: "too_small", minimum: def.length }), - inclusive: true, - exact: true, - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckStringFormat = /*@__PURE__*/ $constructor("$ZodCheckStringFormat", (inst, def) => { - var _a, _b; - $ZodCheck.init(inst, def); - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.format = def.format; - if (def.pattern) { - bag.patterns ?? (bag.patterns = new Set()); - bag.patterns.add(def.pattern); - } - }); - if (def.pattern) - (_a = inst._zod).check ?? (_a.check = (payload) => { - def.pattern.lastIndex = 0; - if (def.pattern.test(payload.value)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: def.format, - input: payload.value, - ...(def.pattern ? { pattern: def.pattern.toString() } : {}), - inst, - continue: !def.abort, - }); - }); - else - (_b = inst._zod).check ?? (_b.check = () => { }); -}); -const $ZodCheckRegex = /*@__PURE__*/ $constructor("$ZodCheckRegex", (inst, def) => { - $ZodCheckStringFormat.init(inst, def); - inst._zod.check = (payload) => { - def.pattern.lastIndex = 0; - if (def.pattern.test(payload.value)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "regex", - input: payload.value, - pattern: def.pattern.toString(), - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckLowerCase = /*@__PURE__*/ $constructor("$ZodCheckLowerCase", (inst, def) => { - def.pattern ?? (def.pattern = lowercase); - $ZodCheckStringFormat.init(inst, def); -}); -const $ZodCheckUpperCase = /*@__PURE__*/ $constructor("$ZodCheckUpperCase", (inst, def) => { - def.pattern ?? (def.pattern = uppercase); - $ZodCheckStringFormat.init(inst, def); -}); -const $ZodCheckIncludes = /*@__PURE__*/ $constructor("$ZodCheckIncludes", (inst, def) => { - $ZodCheck.init(inst, def); - const escapedRegex = escapeRegex(def.includes); - const pattern = new RegExp(typeof def.position === "number" ? `^.{${def.position}}${escapedRegex}` : escapedRegex); - def.pattern = pattern; - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.patterns ?? (bag.patterns = new Set()); - bag.patterns.add(pattern); - }); - inst._zod.check = (payload) => { - if (payload.value.includes(def.includes, def.position)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "includes", - includes: def.includes, - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckStartsWith = /*@__PURE__*/ $constructor("$ZodCheckStartsWith", (inst, def) => { - $ZodCheck.init(inst, def); - const pattern = new RegExp(`^${escapeRegex(def.prefix)}.*`); - def.pattern ?? (def.pattern = pattern); - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.patterns ?? (bag.patterns = new Set()); - bag.patterns.add(pattern); - }); - inst._zod.check = (payload) => { - if (payload.value.startsWith(def.prefix)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "starts_with", - prefix: def.prefix, - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckEndsWith = /*@__PURE__*/ $constructor("$ZodCheckEndsWith", (inst, def) => { - $ZodCheck.init(inst, def); - const pattern = new RegExp(`.*${escapeRegex(def.suffix)}$`); - def.pattern ?? (def.pattern = pattern); - inst._zod.onattach.push((inst) => { - const bag = inst._zod.bag; - bag.patterns ?? (bag.patterns = new Set()); - bag.patterns.add(pattern); - }); - inst._zod.check = (payload) => { - if (payload.value.endsWith(def.suffix)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "ends_with", - suffix: def.suffix, - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -/////////////////////////////////// -///// $ZodCheckProperty ///// -/////////////////////////////////// -function handleCheckPropertyResult(result, payload, property) { - if (result.issues.length) { - payload.issues.push(...prefixIssues(property, result.issues)); - } -} -const $ZodCheckProperty = /*@__PURE__*/ $constructor("$ZodCheckProperty", (inst, def) => { - $ZodCheck.init(inst, def); - inst._zod.check = (payload) => { - const result = def.schema._zod.run({ - value: payload.value[def.property], - issues: [], - }, {}); - if (result instanceof Promise) { - return result.then((result) => handleCheckPropertyResult(result, payload, def.property)); - } - handleCheckPropertyResult(result, payload, def.property); - return; - }; -}); -const $ZodCheckMimeType = /*@__PURE__*/ $constructor("$ZodCheckMimeType", (inst, def) => { - $ZodCheck.init(inst, def); - const mimeSet = new Set(def.mime); - inst._zod.onattach.push((inst) => { - inst._zod.bag.mime = def.mime; - }); - inst._zod.check = (payload) => { - if (mimeSet.has(payload.value.type)) - return; - payload.issues.push({ - code: "invalid_value", - values: def.mime, - input: payload.value.type, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCheckOverwrite = /*@__PURE__*/ $constructor("$ZodCheckOverwrite", (inst, def) => { - $ZodCheck.init(inst, def); - inst._zod.check = (payload) => { - payload.value = def.tx(payload.value); - }; -}); - -class Doc { - constructor(args = []) { - this.content = []; - this.indent = 0; - if (this) - this.args = args; - } - indented(fn) { - this.indent += 1; - fn(this); - this.indent -= 1; - } - write(arg) { - if (typeof arg === "function") { - arg(this, { execution: "sync" }); - arg(this, { execution: "async" }); - return; - } - const content = arg; - const lines = content.split("\n").filter((x) => x); - const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); - const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); - for (const line of dedented) { - this.content.push(line); - } - } - compile() { - const F = Function; - const args = this?.args; - const content = this?.content ?? [``]; - const lines = [...content.map((x) => ` ${x}`)]; - // console.log(lines.join("\n")); - return new F(...args, lines.join("\n")); - } -} - -const version = { - major: 4, - minor: 3, - patch: 6, -}; - -const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => { - var _a; - inst ?? (inst = {}); - inst._zod.def = def; // set _def property - inst._zod.bag = inst._zod.bag || {}; // initialize _bag object - inst._zod.version = version; - const checks = [...(inst._zod.def.checks ?? [])]; - // if inst is itself a checks.$ZodCheck, run it as a check - if (inst._zod.traits.has("$ZodCheck")) { - checks.unshift(inst); - } - for (const ch of checks) { - for (const fn of ch._zod.onattach) { - fn(inst); - } - } - if (checks.length === 0) { - // deferred initializer - // inst._zod.parse is not yet defined - (_a = inst._zod).deferred ?? (_a.deferred = []); - inst._zod.deferred?.push(() => { - inst._zod.run = inst._zod.parse; - }); - } - else { - const runChecks = (payload, checks, ctx) => { - let isAborted = aborted(payload); - let asyncResult; - for (const ch of checks) { - if (ch._zod.def.when) { - const shouldRun = ch._zod.def.when(payload); - if (!shouldRun) - continue; - } - else if (isAborted) { - continue; - } - const currLen = payload.issues.length; - const _ = ch._zod.check(payload); - if (_ instanceof Promise && ctx?.async === false) { - throw new $ZodAsyncError(); - } - if (asyncResult || _ instanceof Promise) { - asyncResult = (asyncResult ?? Promise.resolve()).then(async () => { - await _; - const nextLen = payload.issues.length; - if (nextLen === currLen) - return; - if (!isAborted) - isAborted = aborted(payload, currLen); - }); - } - else { - const nextLen = payload.issues.length; - if (nextLen === currLen) - continue; - if (!isAborted) - isAborted = aborted(payload, currLen); - } - } - if (asyncResult) { - return asyncResult.then(() => { - return payload; - }); - } - return payload; - }; - const handleCanaryResult = (canary, payload, ctx) => { - // abort if the canary is aborted - if (aborted(canary)) { - canary.aborted = true; - return canary; - } - // run checks first, then - const checkResult = runChecks(payload, checks, ctx); - if (checkResult instanceof Promise) { - if (ctx.async === false) - throw new $ZodAsyncError(); - return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx)); - } - return inst._zod.parse(checkResult, ctx); - }; - inst._zod.run = (payload, ctx) => { - if (ctx.skipChecks) { - return inst._zod.parse(payload, ctx); - } - if (ctx.direction === "backward") { - // run canary - // initial pass (no checks) - const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true }); - if (canary instanceof Promise) { - return canary.then((canary) => { - return handleCanaryResult(canary, payload, ctx); - }); - } - return handleCanaryResult(canary, payload, ctx); - } - // forward - const result = inst._zod.parse(payload, ctx); - if (result instanceof Promise) { - if (ctx.async === false) - throw new $ZodAsyncError(); - return result.then((result) => runChecks(result, checks, ctx)); - } - return runChecks(result, checks, ctx); - }; - } - // Lazy initialize ~standard to avoid creating objects for every schema - defineLazy(inst, "~standard", () => ({ - validate: (value) => { - try { - const r = safeParse$1(inst, value); - return r.success ? { value: r.data } : { issues: r.error?.issues }; - } - catch (_) { - return safeParseAsync$1(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues })); - } - }, - vendor: "zod", - version: 1, - })); -}); -const $ZodString = /*@__PURE__*/ $constructor("$ZodString", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? string$2(inst._zod.bag); - inst._zod.parse = (payload, _) => { - if (def.coerce) - try { - payload.value = String(payload.value); - } - catch (_) { } - if (typeof payload.value === "string") - return payload; - payload.issues.push({ - expected: "string", - code: "invalid_type", - input: payload.value, - inst, - }); - return payload; - }; -}); -const $ZodStringFormat = /*@__PURE__*/ $constructor("$ZodStringFormat", (inst, def) => { - // check initialization must come first - $ZodCheckStringFormat.init(inst, def); - $ZodString.init(inst, def); -}); -const $ZodGUID = /*@__PURE__*/ $constructor("$ZodGUID", (inst, def) => { - def.pattern ?? (def.pattern = guid$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodUUID = /*@__PURE__*/ $constructor("$ZodUUID", (inst, def) => { - if (def.version) { - const versionMap = { - v1: 1, - v2: 2, - v3: 3, - v4: 4, - v5: 5, - v6: 6, - v7: 7, - v8: 8, - }; - const v = versionMap[def.version]; - if (v === undefined) - throw new Error(`Invalid UUID version: "${def.version}"`); - def.pattern ?? (def.pattern = uuid$1(v)); - } - else - def.pattern ?? (def.pattern = uuid$1()); - $ZodStringFormat.init(inst, def); -}); -const $ZodEmail = /*@__PURE__*/ $constructor("$ZodEmail", (inst, def) => { - def.pattern ?? (def.pattern = email$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodURL = /*@__PURE__*/ $constructor("$ZodURL", (inst, def) => { - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - try { - // Trim whitespace from input - const trimmed = payload.value.trim(); - // @ts-ignore - const url = new URL(trimmed); - if (def.hostname) { - def.hostname.lastIndex = 0; - if (!def.hostname.test(url.hostname)) { - payload.issues.push({ - code: "invalid_format", - format: "url", - note: "Invalid hostname", - pattern: def.hostname.source, - input: payload.value, - inst, - continue: !def.abort, - }); - } - } - if (def.protocol) { - def.protocol.lastIndex = 0; - if (!def.protocol.test(url.protocol.endsWith(":") ? url.protocol.slice(0, -1) : url.protocol)) { - payload.issues.push({ - code: "invalid_format", - format: "url", - note: "Invalid protocol", - pattern: def.protocol.source, - input: payload.value, - inst, - continue: !def.abort, - }); - } - } - // Set the output value based on normalize flag - if (def.normalize) { - // Use normalized URL - payload.value = url.href; - } - else { - // Preserve the original input (trimmed) - payload.value = trimmed; - } - return; - } - catch (_) { - payload.issues.push({ - code: "invalid_format", - format: "url", - input: payload.value, - inst, - continue: !def.abort, - }); - } - }; -}); -const $ZodEmoji = /*@__PURE__*/ $constructor("$ZodEmoji", (inst, def) => { - def.pattern ?? (def.pattern = emoji$1()); - $ZodStringFormat.init(inst, def); -}); -const $ZodNanoID = /*@__PURE__*/ $constructor("$ZodNanoID", (inst, def) => { - def.pattern ?? (def.pattern = nanoid$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodCUID = /*@__PURE__*/ $constructor("$ZodCUID", (inst, def) => { - def.pattern ?? (def.pattern = cuid$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodCUID2 = /*@__PURE__*/ $constructor("$ZodCUID2", (inst, def) => { - def.pattern ?? (def.pattern = cuid2$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodULID = /*@__PURE__*/ $constructor("$ZodULID", (inst, def) => { - def.pattern ?? (def.pattern = ulid$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodXID = /*@__PURE__*/ $constructor("$ZodXID", (inst, def) => { - def.pattern ?? (def.pattern = xid$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodKSUID = /*@__PURE__*/ $constructor("$ZodKSUID", (inst, def) => { - def.pattern ?? (def.pattern = ksuid$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodISODateTime = /*@__PURE__*/ $constructor("$ZodISODateTime", (inst, def) => { - def.pattern ?? (def.pattern = datetime$1(def)); - $ZodStringFormat.init(inst, def); -}); -const $ZodISODate = /*@__PURE__*/ $constructor("$ZodISODate", (inst, def) => { - def.pattern ?? (def.pattern = date$3); - $ZodStringFormat.init(inst, def); -}); -const $ZodISOTime = /*@__PURE__*/ $constructor("$ZodISOTime", (inst, def) => { - def.pattern ?? (def.pattern = time$1(def)); - $ZodStringFormat.init(inst, def); -}); -const $ZodISODuration = /*@__PURE__*/ $constructor("$ZodISODuration", (inst, def) => { - def.pattern ?? (def.pattern = duration$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodIPv4 = /*@__PURE__*/ $constructor("$ZodIPv4", (inst, def) => { - def.pattern ?? (def.pattern = ipv4$1); - $ZodStringFormat.init(inst, def); - inst._zod.bag.format = `ipv4`; -}); -const $ZodIPv6 = /*@__PURE__*/ $constructor("$ZodIPv6", (inst, def) => { - def.pattern ?? (def.pattern = ipv6$1); - $ZodStringFormat.init(inst, def); - inst._zod.bag.format = `ipv6`; - inst._zod.check = (payload) => { - try { - // @ts-ignore - new URL(`http://[${payload.value}]`); - // return; - } - catch { - payload.issues.push({ - code: "invalid_format", - format: "ipv6", - input: payload.value, - inst, - continue: !def.abort, - }); - } - }; -}); -const $ZodMAC = /*@__PURE__*/ $constructor("$ZodMAC", (inst, def) => { - def.pattern ?? (def.pattern = mac$1(def.delimiter)); - $ZodStringFormat.init(inst, def); - inst._zod.bag.format = `mac`; -}); -const $ZodCIDRv4 = /*@__PURE__*/ $constructor("$ZodCIDRv4", (inst, def) => { - def.pattern ?? (def.pattern = cidrv4$1); - $ZodStringFormat.init(inst, def); -}); -const $ZodCIDRv6 = /*@__PURE__*/ $constructor("$ZodCIDRv6", (inst, def) => { - def.pattern ?? (def.pattern = cidrv6$1); // not used for validation - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - const parts = payload.value.split("/"); - try { - if (parts.length !== 2) - throw new Error(); - const [address, prefix] = parts; - if (!prefix) - throw new Error(); - const prefixNum = Number(prefix); - if (`${prefixNum}` !== prefix) - throw new Error(); - if (prefixNum < 0 || prefixNum > 128) - throw new Error(); - // @ts-ignore - new URL(`http://[${address}]`); - } - catch { - payload.issues.push({ - code: "invalid_format", - format: "cidrv6", - input: payload.value, - inst, - continue: !def.abort, - }); - } - }; -}); -////////////////////////////// ZodBase64 ////////////////////////////// -function isValidBase64(data) { - if (data === "") - return true; - if (data.length % 4 !== 0) - return false; - try { - // @ts-ignore - atob(data); - return true; - } - catch { - return false; - } -} -const $ZodBase64 = /*@__PURE__*/ $constructor("$ZodBase64", (inst, def) => { - def.pattern ?? (def.pattern = base64$2); - $ZodStringFormat.init(inst, def); - inst._zod.bag.contentEncoding = "base64"; - inst._zod.check = (payload) => { - if (isValidBase64(payload.value)) - return; - payload.issues.push({ - code: "invalid_format", - format: "base64", - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -////////////////////////////// ZodBase64 ////////////////////////////// -function isValidBase64URL(data) { - if (!base64url$1.test(data)) - return false; - const base64 = data.replace(/[-_]/g, (c) => (c === "-" ? "+" : "/")); - const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, "="); - return isValidBase64(padded); -} -const $ZodBase64URL = /*@__PURE__*/ $constructor("$ZodBase64URL", (inst, def) => { - def.pattern ?? (def.pattern = base64url$1); - $ZodStringFormat.init(inst, def); - inst._zod.bag.contentEncoding = "base64url"; - inst._zod.check = (payload) => { - if (isValidBase64URL(payload.value)) - return; - payload.issues.push({ - code: "invalid_format", - format: "base64url", - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodE164 = /*@__PURE__*/ $constructor("$ZodE164", (inst, def) => { - def.pattern ?? (def.pattern = e164$1); - $ZodStringFormat.init(inst, def); -}); -////////////////////////////// ZodJWT ////////////////////////////// -function isValidJWT(token, algorithm = null) { - try { - const tokensParts = token.split("."); - if (tokensParts.length !== 3) - return false; - const [header] = tokensParts; - if (!header) - return false; - // @ts-ignore - const parsedHeader = JSON.parse(atob(header)); - if ("typ" in parsedHeader && parsedHeader?.typ !== "JWT") - return false; - if (!parsedHeader.alg) - return false; - if (algorithm && (!("alg" in parsedHeader) || parsedHeader.alg !== algorithm)) - return false; - return true; - } - catch { - return false; - } -} -const $ZodJWT = /*@__PURE__*/ $constructor("$ZodJWT", (inst, def) => { - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - if (isValidJWT(payload.value, def.alg)) - return; - payload.issues.push({ - code: "invalid_format", - format: "jwt", - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodCustomStringFormat = /*@__PURE__*/ $constructor("$ZodCustomStringFormat", (inst, def) => { - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - if (def.fn(payload.value)) - return; - payload.issues.push({ - code: "invalid_format", - format: def.format, - input: payload.value, - inst, - continue: !def.abort, - }); - }; -}); -const $ZodNumber = /*@__PURE__*/ $constructor("$ZodNumber", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = inst._zod.bag.pattern ?? number$2; - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) - try { - payload.value = Number(payload.value); - } - catch (_) { } - const input = payload.value; - if (typeof input === "number" && !Number.isNaN(input) && Number.isFinite(input)) { - return payload; - } - const received = typeof input === "number" - ? Number.isNaN(input) - ? "NaN" - : !Number.isFinite(input) - ? "Infinity" - : undefined - : undefined; - payload.issues.push({ - expected: "number", - code: "invalid_type", - input, - inst, - ...(received ? { received } : {}), - }); - return payload; - }; -}); -const $ZodNumberFormat = /*@__PURE__*/ $constructor("$ZodNumberFormat", (inst, def) => { - $ZodCheckNumberFormat.init(inst, def); - $ZodNumber.init(inst, def); // no format checks -}); -const $ZodBoolean = /*@__PURE__*/ $constructor("$ZodBoolean", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = boolean$2; - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) - try { - payload.value = Boolean(payload.value); - } - catch (_) { } - const input = payload.value; - if (typeof input === "boolean") - return payload; - payload.issues.push({ - expected: "boolean", - code: "invalid_type", - input, - inst, - }); - return payload; - }; -}); -const $ZodBigInt = /*@__PURE__*/ $constructor("$ZodBigInt", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = bigint$2; - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) - try { - payload.value = BigInt(payload.value); - } - catch (_) { } - if (typeof payload.value === "bigint") - return payload; - payload.issues.push({ - expected: "bigint", - code: "invalid_type", - input: payload.value, - inst, - }); - return payload; - }; -}); -const $ZodBigIntFormat = /*@__PURE__*/ $constructor("$ZodBigIntFormat", (inst, def) => { - $ZodCheckBigIntFormat.init(inst, def); - $ZodBigInt.init(inst, def); // no format checks -}); -const $ZodSymbol = /*@__PURE__*/ $constructor("$ZodSymbol", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (typeof input === "symbol") - return payload; - payload.issues.push({ - expected: "symbol", - code: "invalid_type", - input, - inst, - }); - return payload; - }; -}); -const $ZodUndefined = /*@__PURE__*/ $constructor("$ZodUndefined", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = _undefined$2; - inst._zod.values = new Set([undefined]); - inst._zod.optin = "optional"; - inst._zod.optout = "optional"; - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (typeof input === "undefined") - return payload; - payload.issues.push({ - expected: "undefined", - code: "invalid_type", - input, - inst, - }); - return payload; - }; -}); -const $ZodNull = /*@__PURE__*/ $constructor("$ZodNull", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = _null$2; - inst._zod.values = new Set([null]); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (input === null) - return payload; - payload.issues.push({ - expected: "null", - code: "invalid_type", - input, - inst, - }); - return payload; - }; -}); -const $ZodAny = /*@__PURE__*/ $constructor("$ZodAny", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload) => payload; -}); -const $ZodUnknown = /*@__PURE__*/ $constructor("$ZodUnknown", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload) => payload; -}); -const $ZodNever = /*@__PURE__*/ $constructor("$ZodNever", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - payload.issues.push({ - expected: "never", - code: "invalid_type", - input: payload.value, - inst, - }); - return payload; - }; -}); -const $ZodVoid = /*@__PURE__*/ $constructor("$ZodVoid", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (typeof input === "undefined") - return payload; - payload.issues.push({ - expected: "void", - code: "invalid_type", - input, - inst, - }); - return payload; - }; -}); -const $ZodDate = /*@__PURE__*/ $constructor("$ZodDate", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) { - try { - payload.value = new Date(payload.value); - } - catch (_err) { } - } - const input = payload.value; - const isDate = input instanceof Date; - const isValidDate = isDate && !Number.isNaN(input.getTime()); - if (isValidDate) - return payload; - payload.issues.push({ - expected: "date", - code: "invalid_type", - input, - ...(isDate ? { received: "Invalid Date" } : {}), - inst, - }); - return payload; - }; -}); -function handleArrayResult(result, final, index) { - if (result.issues.length) { - final.issues.push(...prefixIssues(index, result.issues)); - } - final.value[index] = result.value; -} -const $ZodArray = /*@__PURE__*/ $constructor("$ZodArray", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!Array.isArray(input)) { - payload.issues.push({ - expected: "array", - code: "invalid_type", - input, - inst, - }); - return payload; - } - payload.value = Array(input.length); - const proms = []; - for (let i = 0; i < input.length; i++) { - const item = input[i]; - const result = def.element._zod.run({ - value: item, - issues: [], - }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result) => handleArrayResult(result, payload, i))); - } - else { - handleArrayResult(result, payload, i); - } - } - if (proms.length) { - return Promise.all(proms).then(() => payload); - } - return payload; //handleArrayResultsAsync(parseResults, final); - }; -}); -function handlePropertyResult(result, final, key, input, isOptionalOut) { - if (result.issues.length) { - // For optional-out schemas, ignore errors on absent keys - if (isOptionalOut && !(key in input)) { - return; - } - final.issues.push(...prefixIssues(key, result.issues)); - } - if (result.value === undefined) { - if (key in input) { - final.value[key] = undefined; - } - } - else { - final.value[key] = result.value; - } -} -function normalizeDef(def) { - const keys = Object.keys(def.shape); - for (const k of keys) { - if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) { - throw new Error(`Invalid element at key "${k}": expected a Zod schema`); - } - } - const okeys = optionalKeys(def.shape); - return { - ...def, - keys, - keySet: new Set(keys), - numKeys: keys.length, - optionalKeys: new Set(okeys), - }; -} -function handleCatchall(proms, input, payload, ctx, def, inst) { - const unrecognized = []; - // iterate over input keys - const keySet = def.keySet; - const _catchall = def.catchall._zod; - const t = _catchall.def.type; - const isOptionalOut = _catchall.optout === "optional"; - for (const key in input) { - if (keySet.has(key)) - continue; - if (t === "never") { - unrecognized.push(key); - continue; - } - const r = _catchall.run({ value: input[key], issues: [] }, ctx); - if (r instanceof Promise) { - proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalOut))); - } - else { - handlePropertyResult(r, payload, key, input, isOptionalOut); - } - } - if (unrecognized.length) { - payload.issues.push({ - code: "unrecognized_keys", - keys: unrecognized, - input, - inst, - }); - } - if (!proms.length) - return payload; - return Promise.all(proms).then(() => { - return payload; - }); -} -const $ZodObject = /*@__PURE__*/ $constructor("$ZodObject", (inst, def) => { - // requires cast because technically $ZodObject doesn't extend - $ZodType.init(inst, def); - // const sh = def.shape; - const desc = Object.getOwnPropertyDescriptor(def, "shape"); - if (!desc?.get) { - const sh = def.shape; - Object.defineProperty(def, "shape", { - get: () => { - const newSh = { ...sh }; - Object.defineProperty(def, "shape", { - value: newSh, - }); - return newSh; - }, - }); - } - const _normalized = cached(() => normalizeDef(def)); - defineLazy(inst._zod, "propValues", () => { - const shape = def.shape; - const propValues = {}; - for (const key in shape) { - const field = shape[key]._zod; - if (field.values) { - propValues[key] ?? (propValues[key] = new Set()); - for (const v of field.values) - propValues[key].add(v); - } - } - return propValues; - }); - const isObject = isObject$2; - const catchall = def.catchall; - let value; - inst._zod.parse = (payload, ctx) => { - value ?? (value = _normalized.value); - const input = payload.value; - if (!isObject(input)) { - payload.issues.push({ - expected: "object", - code: "invalid_type", - input, - inst, - }); - return payload; - } - payload.value = {}; - const proms = []; - const shape = value.shape; - for (const key of value.keys) { - const el = shape[key]; - const isOptionalOut = el._zod.optout === "optional"; - const r = el._zod.run({ value: input[key], issues: [] }, ctx); - if (r instanceof Promise) { - proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalOut))); - } - else { - handlePropertyResult(r, payload, key, input, isOptionalOut); - } - } - if (!catchall) { - return proms.length ? Promise.all(proms).then(() => payload) : payload; - } - return handleCatchall(proms, input, payload, ctx, _normalized.value, inst); - }; -}); -const $ZodObjectJIT = /*@__PURE__*/ $constructor("$ZodObjectJIT", (inst, def) => { - // requires cast because technically $ZodObject doesn't extend - $ZodObject.init(inst, def); - const superParse = inst._zod.parse; - const _normalized = cached(() => normalizeDef(def)); - const generateFastpass = (shape) => { - const doc = new Doc(["shape", "payload", "ctx"]); - const normalized = _normalized.value; - const parseStr = (key) => { - const k = esc(key); - return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`; - }; - doc.write(`const input = payload.value;`); - const ids = Object.create(null); - let counter = 0; - for (const key of normalized.keys) { - ids[key] = `key_${counter++}`; - } - // A: preserve key order { - doc.write(`const newResult = {};`); - for (const key of normalized.keys) { - const id = ids[key]; - const k = esc(key); - const schema = shape[key]; - const isOptionalOut = schema?._zod?.optout === "optional"; - doc.write(`const ${id} = ${parseStr(key)};`); - if (isOptionalOut) { - // For optional-out schemas, ignore errors on absent keys - doc.write(` - if (${id}.issues.length) { - if (${k} in input) { - payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${k}, ...iss.path] : [${k}] - }))); - } - } - - if (${id}.value === undefined) { - if (${k} in input) { - newResult[${k}] = undefined; - } - } else { - newResult[${k}] = ${id}.value; - } - - `); - } - else { - doc.write(` - if (${id}.issues.length) { - payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${k}, ...iss.path] : [${k}] - }))); - } - - if (${id}.value === undefined) { - if (${k} in input) { - newResult[${k}] = undefined; - } - } else { - newResult[${k}] = ${id}.value; - } - - `); - } - } - doc.write(`payload.value = newResult;`); - doc.write(`return payload;`); - const fn = doc.compile(); - return (payload, ctx) => fn(shape, payload, ctx); - }; - let fastpass; - const isObject = isObject$2; - const jit = !globalConfig.jitless; - const allowsEval$1 = allowsEval; - const fastEnabled = jit && allowsEval$1.value; // && !def.catchall; - const catchall = def.catchall; - let value; - inst._zod.parse = (payload, ctx) => { - value ?? (value = _normalized.value); - const input = payload.value; - if (!isObject(input)) { - payload.issues.push({ - expected: "object", - code: "invalid_type", - input, - inst, - }); - return payload; - } - if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) { - // always synchronous - if (!fastpass) - fastpass = generateFastpass(def.shape); - payload = fastpass(payload, ctx); - if (!catchall) - return payload; - return handleCatchall([], input, payload, ctx, value, inst); - } - return superParse(payload, ctx); - }; -}); -function handleUnionResults(results, final, inst, ctx) { - for (const result of results) { - if (result.issues.length === 0) { - final.value = result.value; - return final; - } - } - const nonaborted = results.filter((r) => !aborted(r)); - if (nonaborted.length === 1) { - final.value = nonaborted[0].value; - return nonaborted[0]; - } - final.issues.push({ - code: "invalid_union", - input: final.value, - inst, - errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config$1()))), - }); - return final; -} -const $ZodUnion = /*@__PURE__*/ $constructor("$ZodUnion", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "optin", () => def.options.some((o) => o._zod.optin === "optional") ? "optional" : undefined); - defineLazy(inst._zod, "optout", () => def.options.some((o) => o._zod.optout === "optional") ? "optional" : undefined); - defineLazy(inst._zod, "values", () => { - if (def.options.every((o) => o._zod.values)) { - return new Set(def.options.flatMap((option) => Array.from(option._zod.values))); - } - return undefined; - }); - defineLazy(inst._zod, "pattern", () => { - if (def.options.every((o) => o._zod.pattern)) { - const patterns = def.options.map((o) => o._zod.pattern); - return new RegExp(`^(${patterns.map((p) => cleanRegex(p.source)).join("|")})$`); - } - return undefined; - }); - const single = def.options.length === 1; - const first = def.options[0]._zod.run; - inst._zod.parse = (payload, ctx) => { - if (single) { - return first(payload, ctx); - } - let async = false; - const results = []; - for (const option of def.options) { - const result = option._zod.run({ - value: payload.value, - issues: [], - }, ctx); - if (result instanceof Promise) { - results.push(result); - async = true; - } - else { - if (result.issues.length === 0) - return result; - results.push(result); - } - } - if (!async) - return handleUnionResults(results, payload, inst, ctx); - return Promise.all(results).then((results) => { - return handleUnionResults(results, payload, inst, ctx); - }); - }; -}); -function handleExclusiveUnionResults(results, final, inst, ctx) { - const successes = results.filter((r) => r.issues.length === 0); - if (successes.length === 1) { - final.value = successes[0].value; - return final; - } - if (successes.length === 0) { - // No matches - same as regular union - final.issues.push({ - code: "invalid_union", - input: final.value, - inst, - errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config$1()))), - }); - } - else { - // Multiple matches - exclusive union failure - final.issues.push({ - code: "invalid_union", - input: final.value, - inst, - errors: [], - inclusive: false, - }); - } - return final; -} -const $ZodXor = /*@__PURE__*/ $constructor("$ZodXor", (inst, def) => { - $ZodUnion.init(inst, def); - def.inclusive = false; - const single = def.options.length === 1; - const first = def.options[0]._zod.run; - inst._zod.parse = (payload, ctx) => { - if (single) { - return first(payload, ctx); - } - let async = false; - const results = []; - for (const option of def.options) { - const result = option._zod.run({ - value: payload.value, - issues: [], - }, ctx); - if (result instanceof Promise) { - results.push(result); - async = true; - } - else { - results.push(result); - } - } - if (!async) - return handleExclusiveUnionResults(results, payload, inst, ctx); - return Promise.all(results).then((results) => { - return handleExclusiveUnionResults(results, payload, inst, ctx); - }); - }; -}); -const $ZodDiscriminatedUnion = -/*@__PURE__*/ -$constructor("$ZodDiscriminatedUnion", (inst, def) => { - def.inclusive = false; - $ZodUnion.init(inst, def); - const _super = inst._zod.parse; - defineLazy(inst._zod, "propValues", () => { - const propValues = {}; - for (const option of def.options) { - const pv = option._zod.propValues; - if (!pv || Object.keys(pv).length === 0) - throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`); - for (const [k, v] of Object.entries(pv)) { - if (!propValues[k]) - propValues[k] = new Set(); - for (const val of v) { - propValues[k].add(val); - } - } - } - return propValues; - }); - const disc = cached(() => { - const opts = def.options; - const map = new Map(); - for (const o of opts) { - const values = o._zod.propValues?.[def.discriminator]; - if (!values || values.size === 0) - throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(o)}"`); - for (const v of values) { - if (map.has(v)) { - throw new Error(`Duplicate discriminator value "${String(v)}"`); - } - map.set(v, o); - } - } - return map; - }); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!isObject$2(input)) { - payload.issues.push({ - code: "invalid_type", - expected: "object", - input, - inst, - }); - return payload; - } - const opt = disc.value.get(input?.[def.discriminator]); - if (opt) { - return opt._zod.run(payload, ctx); - } - if (def.unionFallback) { - return _super(payload, ctx); - } - // no matching discriminator - payload.issues.push({ - code: "invalid_union", - errors: [], - note: "No matching discriminator", - discriminator: def.discriminator, - input, - path: [def.discriminator], - inst, - }); - return payload; - }; -}); -const $ZodIntersection = /*@__PURE__*/ $constructor("$ZodIntersection", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - const left = def.left._zod.run({ value: input, issues: [] }, ctx); - const right = def.right._zod.run({ value: input, issues: [] }, ctx); - const async = left instanceof Promise || right instanceof Promise; - if (async) { - return Promise.all([left, right]).then(([left, right]) => { - return handleIntersectionResults(payload, left, right); - }); - } - return handleIntersectionResults(payload, left, right); - }; -}); -function mergeValues(a, b) { - // const aType = parse.t(a); - // const bType = parse.t(b); - if (a === b) { - return { valid: true, data: a }; - } - if (a instanceof Date && b instanceof Date && +a === +b) { - return { valid: true, data: a }; - } - if (isPlainObject$1(a) && isPlainObject$1(b)) { - const bKeys = Object.keys(b); - const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1); - const newObj = { ...a, ...b }; - for (const key of sharedKeys) { - const sharedValue = mergeValues(a[key], b[key]); - if (!sharedValue.valid) { - return { - valid: false, - mergeErrorPath: [key, ...sharedValue.mergeErrorPath], - }; - } - newObj[key] = sharedValue.data; - } - return { valid: true, data: newObj }; - } - if (Array.isArray(a) && Array.isArray(b)) { - if (a.length !== b.length) { - return { valid: false, mergeErrorPath: [] }; - } - const newArray = []; - for (let index = 0; index < a.length; index++) { - const itemA = a[index]; - const itemB = b[index]; - const sharedValue = mergeValues(itemA, itemB); - if (!sharedValue.valid) { - return { - valid: false, - mergeErrorPath: [index, ...sharedValue.mergeErrorPath], - }; - } - newArray.push(sharedValue.data); - } - return { valid: true, data: newArray }; - } - return { valid: false, mergeErrorPath: [] }; -} -function handleIntersectionResults(result, left, right) { - // Track which side(s) report each key as unrecognized - const unrecKeys = new Map(); - let unrecIssue; - for (const iss of left.issues) { - if (iss.code === "unrecognized_keys") { - unrecIssue ?? (unrecIssue = iss); - for (const k of iss.keys) { - if (!unrecKeys.has(k)) - unrecKeys.set(k, {}); - unrecKeys.get(k).l = true; - } - } - else { - result.issues.push(iss); - } - } - for (const iss of right.issues) { - if (iss.code === "unrecognized_keys") { - for (const k of iss.keys) { - if (!unrecKeys.has(k)) - unrecKeys.set(k, {}); - unrecKeys.get(k).r = true; - } - } - else { - result.issues.push(iss); - } - } - // Report only keys unrecognized by BOTH sides - const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k); - if (bothKeys.length && unrecIssue) { - result.issues.push({ ...unrecIssue, keys: bothKeys }); - } - if (aborted(result)) - return result; - const merged = mergeValues(left.value, right.value); - if (!merged.valid) { - throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`); - } - result.value = merged.data; - return result; -} -const $ZodTuple = /*@__PURE__*/ $constructor("$ZodTuple", (inst, def) => { - $ZodType.init(inst, def); - const items = def.items; - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!Array.isArray(input)) { - payload.issues.push({ - input, - inst, - expected: "tuple", - code: "invalid_type", - }); - return payload; - } - payload.value = []; - const proms = []; - const reversedIndex = [...items].reverse().findIndex((item) => item._zod.optin !== "optional"); - const optStart = reversedIndex === -1 ? 0 : items.length - reversedIndex; - if (!def.rest) { - const tooBig = input.length > items.length; - const tooSmall = input.length < optStart - 1; - if (tooBig || tooSmall) { - payload.issues.push({ - ...(tooBig - ? { code: "too_big", maximum: items.length, inclusive: true } - : { code: "too_small", minimum: items.length }), - input, - inst, - origin: "array", - }); - return payload; - } - } - let i = -1; - for (const item of items) { - i++; - if (i >= input.length) - if (i >= optStart) - continue; - const result = item._zod.run({ - value: input[i], - issues: [], - }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result) => handleTupleResult(result, payload, i))); - } - else { - handleTupleResult(result, payload, i); - } - } - if (def.rest) { - const rest = input.slice(items.length); - for (const el of rest) { - i++; - const result = def.rest._zod.run({ - value: el, - issues: [], - }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result) => handleTupleResult(result, payload, i))); - } - else { - handleTupleResult(result, payload, i); - } - } - } - if (proms.length) - return Promise.all(proms).then(() => payload); - return payload; - }; -}); -function handleTupleResult(result, final, index) { - if (result.issues.length) { - final.issues.push(...prefixIssues(index, result.issues)); - } - final.value[index] = result.value; -} -const $ZodRecord = /*@__PURE__*/ $constructor("$ZodRecord", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!isPlainObject$1(input)) { - payload.issues.push({ - expected: "record", - code: "invalid_type", - input, - inst, - }); - return payload; - } - const proms = []; - const values = def.keyType._zod.values; - if (values) { - payload.value = {}; - const recordKeys = new Set(); - for (const key of values) { - if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") { - recordKeys.add(typeof key === "number" ? key.toString() : key); - const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result) => { - if (result.issues.length) { - payload.issues.push(...prefixIssues(key, result.issues)); - } - payload.value[key] = result.value; - })); - } - else { - if (result.issues.length) { - payload.issues.push(...prefixIssues(key, result.issues)); - } - payload.value[key] = result.value; - } - } - } - let unrecognized; - for (const key in input) { - if (!recordKeys.has(key)) { - unrecognized = unrecognized ?? []; - unrecognized.push(key); - } - } - if (unrecognized && unrecognized.length > 0) { - payload.issues.push({ - code: "unrecognized_keys", - input, - inst, - keys: unrecognized, - }); - } - } - else { - payload.value = {}; - for (const key of Reflect.ownKeys(input)) { - if (key === "__proto__") - continue; - let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); - if (keyResult instanceof Promise) { - throw new Error("Async schemas not supported in object keys currently"); - } - // Numeric string fallback: if key is a numeric string and failed, retry with Number(key) - // This handles z.number(), z.literal([1, 2, 3]), and unions containing numeric literals - const checkNumericKey = typeof key === "string" && number$2.test(key) && keyResult.issues.length; - if (checkNumericKey) { - const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx); - if (retryResult instanceof Promise) { - throw new Error("Async schemas not supported in object keys currently"); - } - if (retryResult.issues.length === 0) { - keyResult = retryResult; - } - } - if (keyResult.issues.length) { - if (def.mode === "loose") { - // Pass through unchanged - payload.value[key] = input[key]; - } - else { - // Default "strict" behavior: error on invalid key - payload.issues.push({ - code: "invalid_key", - origin: "record", - issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config$1())), - input: key, - path: [key], - inst, - }); - } - continue; - } - const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result) => { - if (result.issues.length) { - payload.issues.push(...prefixIssues(key, result.issues)); - } - payload.value[keyResult.value] = result.value; - })); - } - else { - if (result.issues.length) { - payload.issues.push(...prefixIssues(key, result.issues)); - } - payload.value[keyResult.value] = result.value; - } - } - } - if (proms.length) { - return Promise.all(proms).then(() => payload); - } - return payload; - }; -}); -const $ZodMap = /*@__PURE__*/ $constructor("$ZodMap", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!(input instanceof Map)) { - payload.issues.push({ - expected: "map", - code: "invalid_type", - input, - inst, - }); - return payload; - } - const proms = []; - payload.value = new Map(); - for (const [key, value] of input) { - const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); - const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx); - if (keyResult instanceof Promise || valueResult instanceof Promise) { - proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => { - handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx); - })); - } - else { - handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx); - } - } - if (proms.length) - return Promise.all(proms).then(() => payload); - return payload; - }; -}); -function handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) { - if (keyResult.issues.length) { - if (propertyKeyTypes.has(typeof key)) { - final.issues.push(...prefixIssues(key, keyResult.issues)); - } - else { - final.issues.push({ - code: "invalid_key", - origin: "map", - input, - inst, - issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config$1())), - }); - } - } - if (valueResult.issues.length) { - if (propertyKeyTypes.has(typeof key)) { - final.issues.push(...prefixIssues(key, valueResult.issues)); - } - else { - final.issues.push({ - origin: "map", - code: "invalid_element", - input, - inst, - key: key, - issues: valueResult.issues.map((iss) => finalizeIssue(iss, ctx, config$1())), - }); - } - } - final.value.set(keyResult.value, valueResult.value); -} -const $ZodSet = /*@__PURE__*/ $constructor("$ZodSet", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!(input instanceof Set)) { - payload.issues.push({ - input, - inst, - expected: "set", - code: "invalid_type", - }); - return payload; - } - const proms = []; - payload.value = new Set(); - for (const item of input) { - const result = def.valueType._zod.run({ value: item, issues: [] }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result) => handleSetResult(result, payload))); - } - else - handleSetResult(result, payload); - } - if (proms.length) - return Promise.all(proms).then(() => payload); - return payload; - }; -}); -function handleSetResult(result, final) { - if (result.issues.length) { - final.issues.push(...result.issues); - } - final.value.add(result.value); -} -const $ZodEnum = /*@__PURE__*/ $constructor("$ZodEnum", (inst, def) => { - $ZodType.init(inst, def); - const values = getEnumValues(def.entries); - const valuesSet = new Set(values); - inst._zod.values = valuesSet; - inst._zod.pattern = new RegExp(`^(${values - .filter((k) => propertyKeyTypes.has(typeof k)) - .map((o) => (typeof o === "string" ? escapeRegex(o) : o.toString())) - .join("|")})$`); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (valuesSet.has(input)) { - return payload; - } - payload.issues.push({ - code: "invalid_value", - values, - input, - inst, - }); - return payload; - }; -}); -const $ZodLiteral = /*@__PURE__*/ $constructor("$ZodLiteral", (inst, def) => { - $ZodType.init(inst, def); - if (def.values.length === 0) { - throw new Error("Cannot create literal schema with no valid values"); - } - const values = new Set(def.values); - inst._zod.values = values; - inst._zod.pattern = new RegExp(`^(${def.values - .map((o) => (typeof o === "string" ? escapeRegex(o) : o ? escapeRegex(o.toString()) : String(o))) - .join("|")})$`); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (values.has(input)) { - return payload; - } - payload.issues.push({ - code: "invalid_value", - values: def.values, - input, - inst, - }); - return payload; - }; -}); -const $ZodFile = /*@__PURE__*/ $constructor("$ZodFile", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - // @ts-ignore - if (input instanceof File) - return payload; - payload.issues.push({ - expected: "file", - code: "invalid_type", - input, - inst, - }); - return payload; - }; -}); -const $ZodTransform = /*@__PURE__*/ $constructor("$ZodTransform", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - throw new $ZodEncodeError(inst.constructor.name); - } - const _out = def.transform(payload.value, payload); - if (ctx.async) { - const output = _out instanceof Promise ? _out : Promise.resolve(_out); - return output.then((output) => { - payload.value = output; - return payload; - }); - } - if (_out instanceof Promise) { - throw new $ZodAsyncError(); - } - payload.value = _out; - return payload; - }; -}); -function handleOptionalResult(result, input) { - if (result.issues.length && input === undefined) { - return { issues: [], value: undefined }; - } - return result; -} -const $ZodOptional = /*@__PURE__*/ $constructor("$ZodOptional", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - inst._zod.optout = "optional"; - defineLazy(inst._zod, "values", () => { - return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined; - }); - defineLazy(inst._zod, "pattern", () => { - const pattern = def.innerType._zod.pattern; - return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : undefined; - }); - inst._zod.parse = (payload, ctx) => { - if (def.innerType._zod.optin === "optional") { - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) - return result.then((r) => handleOptionalResult(r, payload.value)); - return handleOptionalResult(result, payload.value); - } - if (payload.value === undefined) { - return payload; - } - return def.innerType._zod.run(payload, ctx); - }; -}); -const $ZodExactOptional = /*@__PURE__*/ $constructor("$ZodExactOptional", (inst, def) => { - // Call parent init - inherits optin/optout = "optional" - $ZodOptional.init(inst, def); - // Override values/pattern to NOT add undefined - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - defineLazy(inst._zod, "pattern", () => def.innerType._zod.pattern); - // Override parse to just delegate (no undefined handling) - inst._zod.parse = (payload, ctx) => { - return def.innerType._zod.run(payload, ctx); - }; -}); -const $ZodNullable = /*@__PURE__*/ $constructor("$ZodNullable", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "optin", () => def.innerType._zod.optin); - defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); - defineLazy(inst._zod, "pattern", () => { - const pattern = def.innerType._zod.pattern; - return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : undefined; - }); - defineLazy(inst._zod, "values", () => { - return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined; - }); - inst._zod.parse = (payload, ctx) => { - // Forward direction (decode): allow null to pass through - if (payload.value === null) - return payload; - return def.innerType._zod.run(payload, ctx); - }; -}); -const $ZodDefault = /*@__PURE__*/ $constructor("$ZodDefault", (inst, def) => { - $ZodType.init(inst, def); - // inst._zod.qin = "true"; - inst._zod.optin = "optional"; - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - // Forward direction (decode): apply defaults for undefined input - if (payload.value === undefined) { - payload.value = def.defaultValue; - /** - * $ZodDefault returns the default value immediately in forward direction. - * It doesn't pass the default value into the validator ("prefault"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a "prefault" for the pipe. */ - return payload; - } - // Forward direction: continue with default handling - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result) => handleDefaultResult(result, def)); - } - return handleDefaultResult(result, def); - }; -}); -function handleDefaultResult(payload, def) { - if (payload.value === undefined) { - payload.value = def.defaultValue; - } - return payload; -} -const $ZodPrefault = /*@__PURE__*/ $constructor("$ZodPrefault", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - // Forward direction (decode): apply prefault for undefined input - if (payload.value === undefined) { - payload.value = def.defaultValue; - } - return def.innerType._zod.run(payload, ctx); - }; -}); -const $ZodNonOptional = /*@__PURE__*/ $constructor("$ZodNonOptional", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "values", () => { - const v = def.innerType._zod.values; - return v ? new Set([...v].filter((x) => x !== undefined)) : undefined; - }); - inst._zod.parse = (payload, ctx) => { - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result) => handleNonOptionalResult(result, inst)); - } - return handleNonOptionalResult(result, inst); - }; -}); -function handleNonOptionalResult(payload, inst) { - if (!payload.issues.length && payload.value === undefined) { - payload.issues.push({ - code: "invalid_type", - expected: "nonoptional", - input: payload.value, - inst, - }); - } - return payload; -} -const $ZodSuccess = /*@__PURE__*/ $constructor("$ZodSuccess", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - throw new $ZodEncodeError("ZodSuccess"); - } - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result) => { - payload.value = result.issues.length === 0; - return payload; - }); - } - payload.value = result.issues.length === 0; - return payload; - }; -}); -const $ZodCatch = /*@__PURE__*/ $constructor("$ZodCatch", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "optin", () => def.innerType._zod.optin); - defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - // Forward direction (decode): apply catch logic - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result) => { - payload.value = result.value; - if (result.issues.length) { - payload.value = def.catchValue({ - ...payload, - error: { - issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config$1())), - }, - input: payload.value, - }); - payload.issues = []; - } - return payload; - }); - } - payload.value = result.value; - if (result.issues.length) { - payload.value = def.catchValue({ - ...payload, - error: { - issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config$1())), - }, - input: payload.value, - }); - payload.issues = []; - } - return payload; - }; -}); -const $ZodNaN = /*@__PURE__*/ $constructor("$ZodNaN", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - if (typeof payload.value !== "number" || !Number.isNaN(payload.value)) { - payload.issues.push({ - input: payload.value, - inst, - expected: "nan", - code: "invalid_type", - }); - return payload; - } - return payload; - }; -}); -const $ZodPipe = /*@__PURE__*/ $constructor("$ZodPipe", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "values", () => def.in._zod.values); - defineLazy(inst._zod, "optin", () => def.in._zod.optin); - defineLazy(inst._zod, "optout", () => def.out._zod.optout); - defineLazy(inst._zod, "propValues", () => def.in._zod.propValues); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - const right = def.out._zod.run(payload, ctx); - if (right instanceof Promise) { - return right.then((right) => handlePipeResult(right, def.in, ctx)); - } - return handlePipeResult(right, def.in, ctx); - } - const left = def.in._zod.run(payload, ctx); - if (left instanceof Promise) { - return left.then((left) => handlePipeResult(left, def.out, ctx)); - } - return handlePipeResult(left, def.out, ctx); - }; -}); -function handlePipeResult(left, next, ctx) { - if (left.issues.length) { - // prevent further checks - left.aborted = true; - return left; - } - return next._zod.run({ value: left.value, issues: left.issues }, ctx); -} -const $ZodCodec = /*@__PURE__*/ $constructor("$ZodCodec", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "values", () => def.in._zod.values); - defineLazy(inst._zod, "optin", () => def.in._zod.optin); - defineLazy(inst._zod, "optout", () => def.out._zod.optout); - defineLazy(inst._zod, "propValues", () => def.in._zod.propValues); - inst._zod.parse = (payload, ctx) => { - const direction = ctx.direction || "forward"; - if (direction === "forward") { - const left = def.in._zod.run(payload, ctx); - if (left instanceof Promise) { - return left.then((left) => handleCodecAResult(left, def, ctx)); - } - return handleCodecAResult(left, def, ctx); - } - else { - const right = def.out._zod.run(payload, ctx); - if (right instanceof Promise) { - return right.then((right) => handleCodecAResult(right, def, ctx)); - } - return handleCodecAResult(right, def, ctx); - } - }; -}); -function handleCodecAResult(result, def, ctx) { - if (result.issues.length) { - // prevent further checks - result.aborted = true; - return result; - } - const direction = ctx.direction || "forward"; - if (direction === "forward") { - const transformed = def.transform(result.value, result); - if (transformed instanceof Promise) { - return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx)); - } - return handleCodecTxResult(result, transformed, def.out, ctx); - } - else { - const transformed = def.reverseTransform(result.value, result); - if (transformed instanceof Promise) { - return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx)); - } - return handleCodecTxResult(result, transformed, def.in, ctx); - } -} -function handleCodecTxResult(left, value, nextSchema, ctx) { - // Check if transform added any issues - if (left.issues.length) { - left.aborted = true; - return left; - } - return nextSchema._zod.run({ value, issues: left.issues }, ctx); -} -const $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues); - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - defineLazy(inst._zod, "optin", () => def.innerType?._zod?.optin); - defineLazy(inst._zod, "optout", () => def.innerType?._zod?.optout); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then(handleReadonlyResult); - } - return handleReadonlyResult(result); - }; -}); -function handleReadonlyResult(payload) { - payload.value = Object.freeze(payload.value); - return payload; -} -const $ZodTemplateLiteral = /*@__PURE__*/ $constructor("$ZodTemplateLiteral", (inst, def) => { - $ZodType.init(inst, def); - const regexParts = []; - for (const part of def.parts) { - if (typeof part === "object" && part !== null) { - // is Zod schema - if (!part._zod.pattern) { - // if (!source) - throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`); - } - const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern; - if (!source) - throw new Error(`Invalid template literal part: ${part._zod.traits}`); - const start = source.startsWith("^") ? 1 : 0; - const end = source.endsWith("$") ? source.length - 1 : source.length; - regexParts.push(source.slice(start, end)); - } - else if (part === null || primitiveTypes.has(typeof part)) { - regexParts.push(escapeRegex(`${part}`)); - } - else { - throw new Error(`Invalid template literal part: ${part}`); - } - } - inst._zod.pattern = new RegExp(`^${regexParts.join("")}$`); - inst._zod.parse = (payload, _ctx) => { - if (typeof payload.value !== "string") { - payload.issues.push({ - input: payload.value, - inst, - expected: "string", - code: "invalid_type", - }); - return payload; - } - inst._zod.pattern.lastIndex = 0; - if (!inst._zod.pattern.test(payload.value)) { - payload.issues.push({ - input: payload.value, - inst, - code: "invalid_format", - format: def.format ?? "template_literal", - pattern: inst._zod.pattern.source, - }); - return payload; - } - return payload; - }; -}); -const $ZodFunction = /*@__PURE__*/ $constructor("$ZodFunction", (inst, def) => { - $ZodType.init(inst, def); - inst._def = def; - inst._zod.def = def; - inst.implement = (func) => { - if (typeof func !== "function") { - throw new Error("implement() must be called with a function"); - } - return function (...args) { - const parsedArgs = inst._def.input ? parse$2(inst._def.input, args) : args; - const result = Reflect.apply(func, this, parsedArgs); - if (inst._def.output) { - return parse$2(inst._def.output, result); - } - return result; - }; - }; - inst.implementAsync = (func) => { - if (typeof func !== "function") { - throw new Error("implementAsync() must be called with a function"); - } - return async function (...args) { - const parsedArgs = inst._def.input ? await parseAsync$1(inst._def.input, args) : args; - const result = await Reflect.apply(func, this, parsedArgs); - if (inst._def.output) { - return await parseAsync$1(inst._def.output, result); - } - return result; - }; - }; - inst._zod.parse = (payload, _ctx) => { - if (typeof payload.value !== "function") { - payload.issues.push({ - code: "invalid_type", - expected: "function", - input: payload.value, - inst, - }); - return payload; - } - // Check if output is a promise type to determine if we should use async implementation - const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === "promise"; - if (hasPromiseOutput) { - payload.value = inst.implementAsync(payload.value); - } - else { - payload.value = inst.implement(payload.value); - } - return payload; - }; - inst.input = (...args) => { - const F = inst.constructor; - if (Array.isArray(args[0])) { - return new F({ - type: "function", - input: new $ZodTuple({ - type: "tuple", - items: args[0], - rest: args[1], - }), - output: inst._def.output, - }); - } - return new F({ - type: "function", - input: args[0], - output: inst._def.output, - }); - }; - inst.output = (output) => { - const F = inst.constructor; - return new F({ - type: "function", - input: inst._def.input, - output, - }); - }; - return inst; -}); -const $ZodPromise = /*@__PURE__*/ $constructor("$ZodPromise", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx)); - }; -}); -const $ZodLazy = /*@__PURE__*/ $constructor("$ZodLazy", (inst, def) => { - $ZodType.init(inst, def); - // let _innerType!: any; - // util.defineLazy(def, "getter", () => { - // if (!_innerType) { - // _innerType = def.getter(); - // } - // return () => _innerType; - // }); - defineLazy(inst._zod, "innerType", () => def.getter()); - defineLazy(inst._zod, "pattern", () => inst._zod.innerType?._zod?.pattern); - defineLazy(inst._zod, "propValues", () => inst._zod.innerType?._zod?.propValues); - defineLazy(inst._zod, "optin", () => inst._zod.innerType?._zod?.optin ?? undefined); - defineLazy(inst._zod, "optout", () => inst._zod.innerType?._zod?.optout ?? undefined); - inst._zod.parse = (payload, ctx) => { - const inner = inst._zod.innerType; - return inner._zod.run(payload, ctx); - }; -}); -const $ZodCustom = /*@__PURE__*/ $constructor("$ZodCustom", (inst, def) => { - $ZodCheck.init(inst, def); - $ZodType.init(inst, def); - inst._zod.parse = (payload, _) => { - return payload; - }; - inst._zod.check = (payload) => { - const input = payload.value; - const r = def.fn(input); - if (r instanceof Promise) { - return r.then((r) => handleRefineResult(r, payload, input, inst)); - } - handleRefineResult(r, payload, input, inst); - return; - }; -}); -function handleRefineResult(result, payload, input, inst) { - if (!result) { - const _iss = { - code: "custom", - input, - inst, // incorporates params.error into issue reporting - path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting - continue: !inst._zod.def.abort, - // params: inst._zod.def.params, - }; - if (inst._zod.def.params) - _iss.params = inst._zod.def.params; - payload.issues.push(issue(_iss)); - } -} - -const error$L = () => { - const Sizable = { - string: { unit: "حرف", verb: "أن يحوي" }, - file: { unit: "بايت", verb: "أن يحوي" }, - array: { unit: "عنصر", verb: "أن يحوي" }, - set: { unit: "عنصر", verb: "أن يحوي" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "مدخل", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `مدخلات غير مقبولة: يفترض إدخال instanceof ${issue.expected}، ولكن تم إدخال ${received}`; - } - return `مدخلات غير مقبولة: يفترض إدخال ${expected}، ولكن تم إدخال ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `مدخلات غير مقبولة: يفترض إدخال ${stringifyPrimitive(issue.values[0])}`; - return `اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return ` أكبر من اللازم: يفترض أن تكون ${issue.origin ?? "القيمة"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? "عنصر"}`; - return `أكبر من اللازم: يفترض أن تكون ${issue.origin ?? "القيمة"} ${adj} ${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`; - } - return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `نَص غير مقبول: يجب أن يبدأ بـ "${issue.prefix}"`; - if (_issue.format === "ends_with") - return `نَص غير مقبول: يجب أن ينتهي بـ "${_issue.suffix}"`; - if (_issue.format === "includes") - return `نَص غير مقبول: يجب أن يتضمَّن "${_issue.includes}"`; - if (_issue.format === "regex") - return `نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`; - return `${FormatDictionary[_issue.format] ?? issue.format} غير مقبول`; - } - case "not_multiple_of": - return `رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`; - case "unrecognized_keys": - return `معرف${issue.keys.length > 1 ? "ات" : ""} غريب${issue.keys.length > 1 ? "ة" : ""}: ${joinValues(issue.keys, "، ")}`; - case "invalid_key": - return `معرف غير مقبول في ${issue.origin}`; - case "invalid_union": - return "مدخل غير مقبول"; - case "invalid_element": - return `مدخل غير مقبول في ${issue.origin}`; - default: - return "مدخل غير مقبول"; - } - }; -}; -function ar () { - return { - localeError: error$L(), - }; -} - -const error$K = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Yanlış dəyər: gözlənilən instanceof ${issue.expected}, daxil olan ${received}`; - } - return `Yanlış dəyər: gözlənilən ${expected}, daxil olan ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Yanlış dəyər: gözlənilən ${stringifyPrimitive(issue.values[0])}`; - return `Yanlış seçim: aşağıdakılardan biri olmalıdır: ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Çox böyük: gözlənilən ${issue.origin ?? "dəyər"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "element"}`; - return `Çox böyük: gözlənilən ${issue.origin ?? "dəyər"} ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Yanlış mətn: "${_issue.prefix}" ilə başlamalıdır`; - if (_issue.format === "ends_with") - return `Yanlış mətn: "${_issue.suffix}" ilə bitməlidir`; - if (_issue.format === "includes") - return `Yanlış mətn: "${_issue.includes}" daxil olmalıdır`; - if (_issue.format === "regex") - return `Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`; - return `Yanlış ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`; - case "unrecognized_keys": - return `Tanınmayan açar${issue.keys.length > 1 ? "lar" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `${issue.origin} daxilində yanlış açar`; - case "invalid_union": - return "Yanlış dəyər"; - case "invalid_element": - return `${issue.origin} daxilində yanlış dəyər`; - default: - return `Yanlış dəyər`; - } - }; -}; -function az () { - return { - localeError: error$K(), - }; -} - -function getBelarusianPlural(count, one, few, many) { - const absCount = Math.abs(count); - const lastDigit = absCount % 10; - const lastTwoDigits = absCount % 100; - if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { - return many; - } - if (lastDigit === 1) { - return one; - } - if (lastDigit >= 2 && lastDigit <= 4) { - return few; - } - return many; -} -const error$J = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "увод", - }; - const TypeDictionary = { - nan: "NaN", - number: "лік", - array: "масіў", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Няправільны ўвод: чакаўся instanceof ${issue.expected}, атрымана ${received}`; - } - return `Няправільны ўвод: чакаўся ${expected}, атрымана ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Няправільны ўвод: чакалася ${stringifyPrimitive(issue.values[0])}`; - return `Няправільны варыянт: чакаўся адзін з ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - const maxValue = Number(issue.maximum); - const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `Занадта вялікі: чакалася, што ${issue.origin ?? "значэнне"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`; - } - return `Занадта вялікі: чакалася, што ${issue.origin ?? "значэнне"} павінна быць ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - const minValue = Number(issue.minimum); - const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`; - } - return `Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Няправільны радок: павінен пачынацца з "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Няправільны радок: павінен заканчвацца на "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Няправільны радок: павінен змяшчаць "${_issue.includes}"`; - if (_issue.format === "regex") - return `Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`; - return `Няправільны ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Няправільны лік: павінен быць кратным ${issue.divisor}`; - case "unrecognized_keys": - return `Нераспазнаны ${issue.keys.length > 1 ? "ключы" : "ключ"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Няправільны ключ у ${issue.origin}`; - case "invalid_union": - return "Няправільны ўвод"; - case "invalid_element": - return `Няправільнае значэнне ў ${issue.origin}`; - default: - return `Няправільны ўвод`; - } - }; -}; -function be () { - return { - localeError: error$J(), - }; -} - -const error$I = () => { - const Sizable = { - string: { unit: "символа", verb: "да съдържа" }, - file: { unit: "байта", verb: "да съдържа" }, - array: { unit: "елемента", verb: "да съдържа" }, - set: { unit: "елемента", verb: "да съдържа" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "вход", - }; - const TypeDictionary = { - nan: "NaN", - number: "число", - array: "масив", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Невалиден вход: очакван instanceof ${issue.expected}, получен ${received}`; - } - return `Невалиден вход: очакван ${expected}, получен ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Невалиден вход: очакван ${stringifyPrimitive(issue.values[0])}`; - return `Невалидна опция: очаквано едно от ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Твърде голямо: очаква се ${issue.origin ?? "стойност"} да съдържа ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елемента"}`; - return `Твърде голямо: очаква се ${issue.origin ?? "стойност"} да бъде ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Твърде малко: очаква се ${issue.origin} да съдържа ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Твърде малко: очаква се ${issue.origin} да бъде ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Невалиден низ: трябва да започва с "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Невалиден низ: трябва да завършва с "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Невалиден низ: трябва да включва "${_issue.includes}"`; - if (_issue.format === "regex") - return `Невалиден низ: трябва да съвпада с ${_issue.pattern}`; - let invalid_adj = "Невалиден"; - if (_issue.format === "emoji") - invalid_adj = "Невалидно"; - if (_issue.format === "datetime") - invalid_adj = "Невалидно"; - if (_issue.format === "date") - invalid_adj = "Невалидна"; - if (_issue.format === "time") - invalid_adj = "Невалидно"; - if (_issue.format === "duration") - invalid_adj = "Невалидна"; - return `${invalid_adj} ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Невалидно число: трябва да бъде кратно на ${issue.divisor}`; - case "unrecognized_keys": - return `Неразпознат${issue.keys.length > 1 ? "и" : ""} ключ${issue.keys.length > 1 ? "ове" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Невалиден ключ в ${issue.origin}`; - case "invalid_union": - return "Невалиден вход"; - case "invalid_element": - return `Невалидна стойност в ${issue.origin}`; - default: - return `Невалиден вход`; - } - }; -}; -function bg () { - return { - localeError: error$I(), - }; -} - -const error$H = () => { - const Sizable = { - string: { unit: "caràcters", verb: "contenir" }, - file: { unit: "bytes", verb: "contenir" }, - array: { unit: "elements", verb: "contenir" }, - set: { unit: "elements", verb: "contenir" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Tipus invàlid: s'esperava instanceof ${issue.expected}, s'ha rebut ${received}`; - } - return `Tipus invàlid: s'esperava ${expected}, s'ha rebut ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Valor invàlid: s'esperava ${stringifyPrimitive(issue.values[0])}`; - return `Opció invàlida: s'esperava una de ${joinValues(issue.values, " o ")}`; - case "too_big": { - const adj = issue.inclusive ? "com a màxim" : "menys de"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Massa gran: s'esperava que ${issue.origin ?? "el valor"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit ?? "elements"}`; - return `Massa gran: s'esperava que ${issue.origin ?? "el valor"} fos ${adj} ${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? "com a mínim" : "més de"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`; - } - return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Format invàlid: ha de començar amb "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Format invàlid: ha d'acabar amb "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Format invàlid: ha d'incloure "${_issue.includes}"`; - if (_issue.format === "regex") - return `Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`; - return `Format invàlid per a ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Número invàlid: ha de ser múltiple de ${issue.divisor}`; - case "unrecognized_keys": - return `Clau${issue.keys.length > 1 ? "s" : ""} no reconeguda${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Clau invàlida a ${issue.origin}`; - case "invalid_union": - return "Entrada invàlida"; // Could also be "Tipus d'unió invàlid" but "Entrada invàlida" is more general - case "invalid_element": - return `Element invàlid a ${issue.origin}`; - default: - return `Entrada invàlida`; - } - }; -}; -function ca () { - return { - localeError: error$H(), - }; -} - -const error$G = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "číslo", - string: "řetězec", - function: "funkce", - array: "pole", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Neplatný vstup: očekáváno instanceof ${issue.expected}, obdrženo ${received}`; - } - return `Neplatný vstup: očekáváno ${expected}, obdrženo ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Neplatný vstup: očekáváno ${stringifyPrimitive(issue.values[0])}`; - return `Neplatná možnost: očekávána jedna z hodnot ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Hodnota je příliš velká: ${issue.origin ?? "hodnota"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit ?? "prvků"}`; - } - return `Hodnota je příliš velká: ${issue.origin ?? "hodnota"} musí být ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Hodnota je příliš malá: ${issue.origin ?? "hodnota"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit ?? "prvků"}`; - } - return `Hodnota je příliš malá: ${issue.origin ?? "hodnota"} musí být ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Neplatný řetězec: musí začínat na "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Neplatný řetězec: musí končit na "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Neplatný řetězec: musí obsahovat "${_issue.includes}"`; - if (_issue.format === "regex") - return `Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`; - return `Neplatný formát ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Neplatné číslo: musí být násobkem ${issue.divisor}`; - case "unrecognized_keys": - return `Neznámé klíče: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Neplatný klíč v ${issue.origin}`; - case "invalid_union": - return "Neplatný vstup"; - case "invalid_element": - return `Neplatná hodnota v ${issue.origin}`; - default: - return `Neplatný vstup`; - } - }; -}; -function cs () { - return { - localeError: error$G(), - }; -} - -const error$F = () => { - const Sizable = { - string: { unit: "tegn", verb: "havde" }, - file: { unit: "bytes", verb: "havde" }, - array: { unit: "elementer", verb: "indeholdt" }, - set: { unit: "elementer", verb: "indeholdt" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - regex: "input", - email: "e-mailadresse", - 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 klokkeslæt", - date: "ISO-dato", - time: "ISO-klokkeslæt", - duration: "ISO-varighed", - ipv4: "IPv4-område", - ipv6: "IPv6-område", - cidrv4: "IPv4-spektrum", - cidrv6: "IPv6-spektrum", - base64: "base64-kodet streng", - base64url: "base64url-kodet streng", - json_string: "JSON-streng", - e164: "E.164-nummer", - jwt: "JWT", - template_literal: "input", - }; - const TypeDictionary = { - nan: "NaN", - string: "streng", - number: "tal", - boolean: "boolean", - array: "liste", - object: "objekt", - set: "sæt", - file: "fil", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Ugyldigt input: forventede instanceof ${issue.expected}, fik ${received}`; - } - return `Ugyldigt input: forventede ${expected}, fik ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Ugyldig værdi: forventede ${stringifyPrimitive(issue.values[0])}`; - return `Ugyldigt valg: forventede en af følgende ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - const origin = TypeDictionary[issue.origin] ?? issue.origin; - if (sizing) - return `For stor: forventede ${origin ?? "value"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? "elementer"}`; - return `For stor: forventede ${origin ?? "value"} havde ${adj} ${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - const origin = TypeDictionary[issue.origin] ?? issue.origin; - if (sizing) { - return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`; - } - return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Ugyldig streng: skal starte med "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Ugyldig streng: skal ende med "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ugyldig streng: skal indeholde "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ugyldig streng: skal matche mønsteret ${_issue.pattern}`; - return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Ugyldigt tal: skal være deleligt med ${issue.divisor}`; - case "unrecognized_keys": - return `${issue.keys.length > 1 ? "Ukendte nøgler" : "Ukendt nøgle"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Ugyldig nøgle i ${issue.origin}`; - case "invalid_union": - return "Ugyldigt input: matcher ingen af de tilladte typer"; - case "invalid_element": - return `Ugyldig værdi i ${issue.origin}`; - default: - return `Ugyldigt input`; - } - }; -}; -function da () { - return { - localeError: error$F(), - }; -} - -const error$E = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "Zahl", - array: "Array", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Ungültige Eingabe: erwartet instanceof ${issue.expected}, erhalten ${received}`; - } - return `Ungültige Eingabe: erwartet ${expected}, erhalten ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Ungültige Eingabe: erwartet ${stringifyPrimitive(issue.values[0])}`; - return `Ungültige Option: erwartet eine von ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Zu groß: erwartet, dass ${issue.origin ?? "Wert"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "Elemente"} hat`; - return `Zu groß: erwartet, dass ${issue.origin ?? "Wert"} ${adj}${issue.maximum.toString()} ist`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`; - } - return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Ungültiger String: muss mit "${_issue.prefix}" beginnen`; - if (_issue.format === "ends_with") - return `Ungültiger String: muss mit "${_issue.suffix}" enden`; - if (_issue.format === "includes") - return `Ungültiger String: muss "${_issue.includes}" enthalten`; - if (_issue.format === "regex") - return `Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`; - return `Ungültig: ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`; - case "unrecognized_keys": - return `${issue.keys.length > 1 ? "Unbekannte Schlüssel" : "Unbekannter Schlüssel"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Ungültiger Schlüssel in ${issue.origin}`; - case "invalid_union": - return "Ungültige Eingabe"; - case "invalid_element": - return `Ungültiger Wert in ${issue.origin}`; - default: - return `Ungültige Eingabe`; - } - }; -}; -function de () { - return { - localeError: error$E(), - }; -} - -const error$D = () => { - const Sizable = { - string: { unit: "characters", verb: "to have" }, - file: { unit: "bytes", verb: "to have" }, - array: { unit: "items", verb: "to have" }, - set: { unit: "items", verb: "to have" }, - map: { unit: "entries", verb: "to have" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - mac: "MAC 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", - }; - // type names: missing keys = do not translate (use raw value via ?? fallback) - const TypeDictionary = { - // Compatibility: "nan" -> "NaN" for display - nan: "NaN", - // All other type names omitted - they fall back to raw values via ?? operator - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - return `Invalid input: expected ${expected}, received ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Invalid input: expected ${stringifyPrimitive(issue.values[0])}`; - return `Invalid option: expected one of ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Too big: expected ${issue.origin ?? "value"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elements"}`; - return `Too big: expected ${issue.origin ?? "value"} to be ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Invalid string: must start with "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Invalid string: must end with "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Invalid string: must include "${_issue.includes}"`; - if (_issue.format === "regex") - return `Invalid string: must match pattern ${_issue.pattern}`; - return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Invalid number: must be a multiple of ${issue.divisor}`; - case "unrecognized_keys": - return `Unrecognized key${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Invalid key in ${issue.origin}`; - case "invalid_union": - return "Invalid input"; - case "invalid_element": - return `Invalid value in ${issue.origin}`; - default: - return `Invalid input`; - } - }; -}; -function en () { - return { - localeError: error$D(), - }; -} - -const error$C = () => { - const Sizable = { - string: { unit: "karaktrojn", verb: "havi" }, - file: { unit: "bajtojn", verb: "havi" }, - array: { unit: "elementojn", verb: "havi" }, - set: { unit: "elementojn", verb: "havi" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "nombro", - array: "tabelo", - null: "senvalora", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Nevalida enigo: atendiĝis instanceof ${issue.expected}, riceviĝis ${received}`; - } - return `Nevalida enigo: atendiĝis ${expected}, riceviĝis ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Nevalida enigo: atendiĝis ${stringifyPrimitive(issue.values[0])}`; - return `Nevalida opcio: atendiĝis unu el ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Tro granda: atendiĝis ke ${issue.origin ?? "valoro"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementojn"}`; - return `Tro granda: atendiĝis ke ${issue.origin ?? "valoro"} havu ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Nevalida karaktraro: devas komenciĝi per "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Nevalida karaktraro: devas finiĝi per "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Nevalida karaktraro: devas inkluzivi "${_issue.includes}"`; - if (_issue.format === "regex") - return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`; - return `Nevalida ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Nevalida nombro: devas esti oblo de ${issue.divisor}`; - case "unrecognized_keys": - return `Nekonata${issue.keys.length > 1 ? "j" : ""} ŝlosilo${issue.keys.length > 1 ? "j" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Nevalida ŝlosilo en ${issue.origin}`; - case "invalid_union": - return "Nevalida enigo"; - case "invalid_element": - return `Nevalida valoro en ${issue.origin}`; - default: - return `Nevalida enigo`; - } - }; -}; -function eo () { - return { - localeError: error$C(), - }; -} - -const error$B = () => { - const Sizable = { - string: { unit: "caracteres", verb: "tener" }, - file: { unit: "bytes", verb: "tener" }, - array: { unit: "elementos", verb: "tener" }, - set: { unit: "elementos", verb: "tener" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - string: "texto", - number: "número", - boolean: "booleano", - array: "arreglo", - object: "objeto", - set: "conjunto", - file: "archivo", - date: "fecha", - bigint: "número grande", - symbol: "símbolo", - undefined: "indefinido", - null: "nulo", - function: "función", - map: "mapa", - record: "registro", - tuple: "tupla", - enum: "enumeración", - union: "unión", - literal: "literal", - promise: "promesa", - void: "vacío", - never: "nunca", - unknown: "desconocido", - any: "cualquiera", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Entrada inválida: se esperaba instanceof ${issue.expected}, recibido ${received}`; - } - return `Entrada inválida: se esperaba ${expected}, recibido ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Entrada inválida: se esperaba ${stringifyPrimitive(issue.values[0])}`; - return `Opción inválida: se esperaba una de ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - const origin = TypeDictionary[issue.origin] ?? issue.origin; - if (sizing) - return `Demasiado grande: se esperaba que ${origin ?? "valor"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementos"}`; - return `Demasiado grande: se esperaba que ${origin ?? "valor"} fuera ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - const origin = TypeDictionary[issue.origin] ?? issue.origin; - if (sizing) { - return `Demasiado pequeño: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Demasiado pequeño: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Cadena inválida: debe comenzar con "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Cadena inválida: debe terminar en "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Cadena inválida: debe incluir "${_issue.includes}"`; - if (_issue.format === "regex") - return `Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`; - return `Inválido ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Número inválido: debe ser múltiplo de ${issue.divisor}`; - case "unrecognized_keys": - return `Llave${issue.keys.length > 1 ? "s" : ""} desconocida${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Llave inválida en ${TypeDictionary[issue.origin] ?? issue.origin}`; - case "invalid_union": - return "Entrada inválida"; - case "invalid_element": - return `Valor inválido en ${TypeDictionary[issue.origin] ?? issue.origin}`; - default: - return `Entrada inválida`; - } - }; -}; -function es () { - return { - localeError: error$B(), - }; -} - -const error$A = () => { - const Sizable = { - string: { unit: "کاراکتر", verb: "داشته باشد" }, - file: { unit: "بایت", verb: "داشته باشد" }, - array: { unit: "آیتم", verb: "داشته باشد" }, - set: { unit: "آیتم", verb: "داشته باشد" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "ورودی", - }; - const TypeDictionary = { - nan: "NaN", - number: "عدد", - array: "آرایه", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `ورودی نامعتبر: می‌بایست instanceof ${issue.expected} می‌بود، ${received} دریافت شد`; - } - return `ورودی نامعتبر: می‌بایست ${expected} می‌بود، ${received} دریافت شد`; - } - case "invalid_value": - if (issue.values.length === 1) { - return `ورودی نامعتبر: می‌بایست ${stringifyPrimitive(issue.values[0])} می‌بود`; - } - return `گزینه نامعتبر: می‌بایست یکی از ${joinValues(issue.values, "|")} می‌بود`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `خیلی بزرگ: ${issue.origin ?? "مقدار"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? "عنصر"} باشد`; - } - return `خیلی بزرگ: ${issue.origin ?? "مقدار"} باید ${adj}${issue.maximum.toString()} باشد`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`; - } - return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `رشته نامعتبر: باید با "${_issue.prefix}" شروع شود`; - } - if (_issue.format === "ends_with") { - return `رشته نامعتبر: باید با "${_issue.suffix}" تمام شود`; - } - if (_issue.format === "includes") { - return `رشته نامعتبر: باید شامل "${_issue.includes}" باشد`; - } - if (_issue.format === "regex") { - return `رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`; - } - return `${FormatDictionary[_issue.format] ?? issue.format} نامعتبر`; - } - case "not_multiple_of": - return `عدد نامعتبر: باید مضرب ${issue.divisor} باشد`; - case "unrecognized_keys": - return `کلید${issue.keys.length > 1 ? "های" : ""} ناشناس: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `کلید ناشناس در ${issue.origin}`; - case "invalid_union": - return `ورودی نامعتبر`; - case "invalid_element": - return `مقدار نامعتبر در ${issue.origin}`; - default: - return `ورودی نامعتبر`; - } - }; -}; -function fa () { - return { - localeError: error$A(), - }; -} - -const error$z = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Virheellinen tyyppi: odotettiin instanceof ${issue.expected}, oli ${received}`; - } - return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Virheellinen syöte: täytyy olla ${stringifyPrimitive(issue.values[0])}`; - return `Virheellinen valinta: täytyy olla yksi seuraavista: ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim(); - } - return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim(); - } - return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Virheellinen syöte: täytyy alkaa "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Virheellinen syöte: täytyy loppua "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Virheellinen syöte: täytyy sisältää "${_issue.includes}"`; - if (_issue.format === "regex") { - return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`; - } - return `Virheellinen ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`; - case "unrecognized_keys": - return `${issue.keys.length > 1 ? "Tuntemattomat avaimet" : "Tuntematon avain"}: ${joinValues(issue.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 fi () { - return { - localeError: error$z(), - }; -} - -const error$y = () => { - const Sizable = { - string: { unit: "caractères", verb: "avoir" }, - file: { unit: "octets", verb: "avoir" }, - array: { unit: "éléments", verb: "avoir" }, - set: { unit: "éléments", verb: "avoir" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "nombre", - array: "tableau", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Entrée invalide : instanceof ${issue.expected} attendu, ${received} reçu`; - } - return `Entrée invalide : ${expected} attendu, ${received} reçu`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Entrée invalide : ${stringifyPrimitive(issue.values[0])} attendu`; - return `Option invalide : une valeur parmi ${joinValues(issue.values, "|")} attendue`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Trop grand : ${issue.origin ?? "valeur"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "élément(s)"}`; - return `Trop grand : ${issue.origin ?? "valeur"} doit être ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Trop petit : ${issue.origin} doit être ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Chaîne invalide : doit commencer par "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Chaîne invalide : doit se terminer par "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Chaîne invalide : doit inclure "${_issue.includes}"`; - if (_issue.format === "regex") - return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`; - return `${FormatDictionary[_issue.format] ?? issue.format} invalide`; - } - case "not_multiple_of": - return `Nombre invalide : doit être un multiple de ${issue.divisor}`; - case "unrecognized_keys": - return `Clé${issue.keys.length > 1 ? "s" : ""} non reconnue${issue.keys.length > 1 ? "s" : ""} : ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Clé invalide dans ${issue.origin}`; - case "invalid_union": - return "Entrée invalide"; - case "invalid_element": - return `Valeur invalide dans ${issue.origin}`; - default: - return `Entrée invalide`; - } - }; -}; -function fr () { - return { - localeError: error$y(), - }; -} - -const error$x = () => { - const Sizable = { - string: { unit: "caractères", verb: "avoir" }, - file: { unit: "octets", verb: "avoir" }, - array: { unit: "éléments", verb: "avoir" }, - set: { unit: "éléments", verb: "avoir" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Entrée invalide : attendu instanceof ${issue.expected}, reçu ${received}`; - } - return `Entrée invalide : attendu ${expected}, reçu ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Entrée invalide : attendu ${stringifyPrimitive(issue.values[0])}`; - return `Option invalide : attendu l'une des valeurs suivantes ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "≤" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Trop grand : attendu que ${issue.origin ?? "la valeur"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`; - return `Trop grand : attendu que ${issue.origin ?? "la valeur"} soit ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? "≥" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Chaîne invalide : doit commencer par "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Chaîne invalide : doit se terminer par "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Chaîne invalide : doit inclure "${_issue.includes}"`; - if (_issue.format === "regex") - return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`; - return `${FormatDictionary[_issue.format] ?? issue.format} invalide`; - } - case "not_multiple_of": - return `Nombre invalide : doit être un multiple de ${issue.divisor}`; - case "unrecognized_keys": - return `Clé${issue.keys.length > 1 ? "s" : ""} non reconnue${issue.keys.length > 1 ? "s" : ""} : ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Clé invalide dans ${issue.origin}`; - case "invalid_union": - return "Entrée invalide"; - case "invalid_element": - return `Valeur invalide dans ${issue.origin}`; - default: - return `Entrée invalide`; - } - }; -}; -function frCA () { - return { - localeError: error$x(), - }; -} - -const error$w = () => { - // Hebrew labels + grammatical gender - const TypeNames = { - string: { label: "מחרוזת", gender: "f" }, - number: { label: "מספר", gender: "m" }, - boolean: { label: "ערך בוליאני", gender: "m" }, - bigint: { label: "BigInt", gender: "m" }, - date: { label: "תאריך", gender: "m" }, - array: { label: "מערך", gender: "m" }, - object: { label: "אובייקט", gender: "m" }, - null: { label: "ערך ריק (null)", gender: "m" }, - undefined: { label: "ערך לא מוגדר (undefined)", gender: "m" }, - symbol: { label: "סימבול (Symbol)", gender: "m" }, - function: { label: "פונקציה", gender: "f" }, - map: { label: "מפה (Map)", gender: "f" }, - set: { label: "קבוצה (Set)", gender: "f" }, - file: { label: "קובץ", gender: "m" }, - promise: { label: "Promise", gender: "m" }, - NaN: { label: "NaN", gender: "m" }, - unknown: { label: "ערך לא ידוע", gender: "m" }, - value: { label: "ערך", gender: "m" }, - }; - // Sizing units for size-related messages + localized origin labels - const Sizable = { - string: { unit: "תווים", shortLabel: "קצר", longLabel: "ארוך" }, - file: { unit: "בייטים", shortLabel: "קטן", longLabel: "גדול" }, - array: { unit: "פריטים", shortLabel: "קטן", longLabel: "גדול" }, - set: { unit: "פריטים", shortLabel: "קטן", longLabel: "גדול" }, - number: { unit: "", shortLabel: "קטן", longLabel: "גדול" }, // no unit - }; - // Helpers — labels, articles, and verbs - const typeEntry = (t) => (t ? TypeNames[t] : undefined); - const typeLabel = (t) => { - const e = typeEntry(t); - if (e) - return e.label; - // fallback: show raw string if unknown - return t ?? TypeNames.unknown.label; - }; - const withDefinite = (t) => `ה${typeLabel(t)}`; - const verbFor = (t) => { - const e = typeEntry(t); - const gender = e?.gender ?? "m"; - return gender === "f" ? "צריכה להיות" : "צריך להיות"; - }; - const getSizing = (origin) => { - if (!origin) - return null; - return Sizable[origin] ?? null; - }; - const FormatDictionary = { - regex: { label: "קלט", gender: "m" }, - email: { label: "כתובת אימייל", gender: "f" }, - url: { label: "כתובת רשת", gender: "f" }, - emoji: { label: "אימוג'י", gender: "m" }, - uuid: { label: "UUID", gender: "m" }, - nanoid: { label: "nanoid", gender: "m" }, - guid: { label: "GUID", gender: "m" }, - cuid: { label: "cuid", gender: "m" }, - cuid2: { label: "cuid2", gender: "m" }, - ulid: { label: "ULID", gender: "m" }, - xid: { label: "XID", gender: "m" }, - ksuid: { label: "KSUID", gender: "m" }, - datetime: { label: "תאריך וזמן ISO", gender: "m" }, - date: { label: "תאריך ISO", gender: "m" }, - time: { label: "זמן ISO", gender: "m" }, - duration: { label: "משך זמן ISO", gender: "m" }, - ipv4: { label: "כתובת IPv4", gender: "f" }, - ipv6: { label: "כתובת IPv6", gender: "f" }, - cidrv4: { label: "טווח IPv4", gender: "m" }, - cidrv6: { label: "טווח IPv6", gender: "m" }, - base64: { label: "מחרוזת בבסיס 64", gender: "f" }, - base64url: { label: "מחרוזת בבסיס 64 לכתובות רשת", gender: "f" }, - json_string: { label: "מחרוזת JSON", gender: "f" }, - e164: { label: "מספר E.164", gender: "m" }, - jwt: { label: "JWT", gender: "m" }, - ends_with: { label: "קלט", gender: "m" }, - includes: { label: "קלט", gender: "m" }, - lowercase: { label: "קלט", gender: "m" }, - starts_with: { label: "קלט", gender: "m" }, - uppercase: { label: "קלט", gender: "m" }, - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - // Expected type: show without definite article for clearer Hebrew - const expectedKey = issue.expected; - const expected = TypeDictionary[expectedKey ?? ""] ?? typeLabel(expectedKey); - // Received: show localized label if known, otherwise constructor/raw - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? TypeNames[receivedType]?.label ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `קלט לא תקין: צריך להיות instanceof ${issue.expected}, התקבל ${received}`; - } - return `קלט לא תקין: צריך להיות ${expected}, התקבל ${received}`; - } - case "invalid_value": { - if (issue.values.length === 1) { - return `ערך לא תקין: הערך חייב להיות ${stringifyPrimitive(issue.values[0])}`; - } - // Join values with proper Hebrew formatting - const stringified = issue.values.map((v) => stringifyPrimitive(v)); - if (issue.values.length === 2) { - return `ערך לא תקין: האפשרויות המתאימות הן ${stringified[0]} או ${stringified[1]}`; - } - // For 3+ values: "a", "b" או "c" - const lastValue = stringified[stringified.length - 1]; - const restValues = stringified.slice(0, -1).join(", "); - return `ערך לא תקין: האפשרויות המתאימות הן ${restValues} או ${lastValue}`; - } - case "too_big": { - const sizing = getSizing(issue.origin); - const subject = withDefinite(issue.origin ?? "value"); - if (issue.origin === "string") { - // Special handling for strings - more natural Hebrew - return `${sizing?.longLabel ?? "ארוך"} מדי: ${subject} צריכה להכיל ${issue.maximum.toString()} ${sizing?.unit ?? ""} ${issue.inclusive ? "או פחות" : "לכל היותר"}`.trim(); - } - if (issue.origin === "number") { - // Natural Hebrew for numbers - const comparison = issue.inclusive ? `קטן או שווה ל-${issue.maximum}` : `קטן מ-${issue.maximum}`; - return `גדול מדי: ${subject} צריך להיות ${comparison}`; - } - if (issue.origin === "array" || issue.origin === "set") { - // Natural Hebrew for arrays and sets - const verb = issue.origin === "set" ? "צריכה" : "צריך"; - const comparison = issue.inclusive - ? `${issue.maximum} ${sizing?.unit ?? ""} או פחות` - : `פחות מ-${issue.maximum} ${sizing?.unit ?? ""}`; - return `גדול מדי: ${subject} ${verb} להכיל ${comparison}`.trim(); - } - const adj = issue.inclusive ? "<=" : "<"; - const be = verbFor(issue.origin ?? "value"); - if (sizing?.unit) { - return `${sizing.longLabel} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()} ${sizing.unit}`; - } - return `${sizing?.longLabel ?? "גדול"} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const sizing = getSizing(issue.origin); - const subject = withDefinite(issue.origin ?? "value"); - if (issue.origin === "string") { - // Special handling for strings - more natural Hebrew - return `${sizing?.shortLabel ?? "קצר"} מדי: ${subject} צריכה להכיל ${issue.minimum.toString()} ${sizing?.unit ?? ""} ${issue.inclusive ? "או יותר" : "לפחות"}`.trim(); - } - if (issue.origin === "number") { - // Natural Hebrew for numbers - const comparison = issue.inclusive ? `גדול או שווה ל-${issue.minimum}` : `גדול מ-${issue.minimum}`; - return `קטן מדי: ${subject} צריך להיות ${comparison}`; - } - if (issue.origin === "array" || issue.origin === "set") { - // Natural Hebrew for arrays and sets - const verb = issue.origin === "set" ? "צריכה" : "צריך"; - // Special case for singular (minimum === 1) - if (issue.minimum === 1 && issue.inclusive) { - const singularPhrase = issue.origin === "set" ? "לפחות פריט אחד" : "לפחות פריט אחד"; - return `קטן מדי: ${subject} ${verb} להכיל ${singularPhrase}`; - } - const comparison = issue.inclusive - ? `${issue.minimum} ${sizing?.unit ?? ""} או יותר` - : `יותר מ-${issue.minimum} ${sizing?.unit ?? ""}`; - return `קטן מדי: ${subject} ${verb} להכיל ${comparison}`.trim(); - } - const adj = issue.inclusive ? ">=" : ">"; - const be = verbFor(issue.origin ?? "value"); - if (sizing?.unit) { - return `${sizing.shortLabel} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `${sizing?.shortLabel ?? "קטן"} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - // These apply to strings — use feminine grammar + ה׳ הידיעה - if (_issue.format === "starts_with") - return `המחרוזת חייבת להתחיל ב "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `המחרוזת חייבת להסתיים ב "${_issue.suffix}"`; - if (_issue.format === "includes") - return `המחרוזת חייבת לכלול "${_issue.includes}"`; - if (_issue.format === "regex") - return `המחרוזת חייבת להתאים לתבנית ${_issue.pattern}`; - // Handle gender agreement for formats - const nounEntry = FormatDictionary[_issue.format]; - const noun = nounEntry?.label ?? _issue.format; - const gender = nounEntry?.gender ?? "m"; - const adjective = gender === "f" ? "תקינה" : "תקין"; - return `${noun} לא ${adjective}`; - } - case "not_multiple_of": - return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`; - case "unrecognized_keys": - return `מפתח${issue.keys.length > 1 ? "ות" : ""} לא מזוה${issue.keys.length > 1 ? "ים" : "ה"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": { - return `שדה לא תקין באובייקט`; - } - case "invalid_union": - return "קלט לא תקין"; - case "invalid_element": { - const place = withDefinite(issue.origin ?? "array"); - return `ערך לא תקין ב${place}`; - } - default: - return `קלט לא תקין`; - } - }; -}; -function he () { - return { - localeError: error$w(), - }; -} - -const error$v = () => { - const Sizable = { - string: { unit: "karakter", verb: "legyen" }, - file: { unit: "byte", verb: "legyen" }, - array: { unit: "elem", verb: "legyen" }, - set: { unit: "elem", verb: "legyen" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "szám", - array: "tömb", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Érvénytelen bemenet: a várt érték instanceof ${issue.expected}, a kapott érték ${received}`; - } - return `Érvénytelen bemenet: a várt érték ${expected}, a kapott érték ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Érvénytelen bemenet: a várt érték ${stringifyPrimitive(issue.values[0])}`; - return `Érvénytelen opció: valamelyik érték várt ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Túl nagy: ${issue.origin ?? "érték"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elem"}`; - return `Túl nagy: a bemeneti érték ${issue.origin ?? "érték"} túl nagy: ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Érvénytelen string: "${_issue.prefix}" értékkel kell kezdődnie`; - if (_issue.format === "ends_with") - return `Érvénytelen string: "${_issue.suffix}" értékkel kell végződnie`; - if (_issue.format === "includes") - return `Érvénytelen string: "${_issue.includes}" értéket kell tartalmaznia`; - if (_issue.format === "regex") - return `Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`; - return `Érvénytelen ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`; - case "unrecognized_keys": - return `Ismeretlen kulcs${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Érvénytelen kulcs ${issue.origin}`; - case "invalid_union": - return "Érvénytelen bemenet"; - case "invalid_element": - return `Érvénytelen érték: ${issue.origin}`; - default: - return `Érvénytelen bemenet`; - } - }; -}; -function hu () { - return { - localeError: error$v(), - }; -} - -function getArmenianPlural(count, one, many) { - return Math.abs(count) === 1 ? one : many; -} -function withDefiniteArticle(word) { - if (!word) - return ""; - const vowels = ["ա", "ե", "ը", "ի", "ո", "ու", "օ"]; - const lastChar = word[word.length - 1]; - return word + (vowels.includes(lastChar) ? "ն" : "ը"); -} -const error$u = () => { - const Sizable = { - string: { - unit: { - one: "նշան", - many: "նշաններ", - }, - verb: "ունենալ", - }, - file: { - unit: { - one: "բայթ", - many: "բայթեր", - }, - verb: "ունենալ", - }, - array: { - unit: { - one: "տարր", - many: "տարրեր", - }, - verb: "ունենալ", - }, - set: { - unit: { - one: "տարր", - many: "տարրեր", - }, - verb: "ունենալ", - }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "մուտք", - }; - const TypeDictionary = { - nan: "NaN", - number: "թիվ", - array: "զանգված", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Սխալ մուտքագրում․ սպասվում էր instanceof ${issue.expected}, ստացվել է ${received}`; - } - return `Սխալ մուտքագրում․ սպասվում էր ${expected}, ստացվել է ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Սխալ մուտքագրում․ սպասվում էր ${stringifyPrimitive(issue.values[1])}`; - return `Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - const maxValue = Number(issue.maximum); - const unit = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many); - return `Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin ?? "արժեք")} կունենա ${adj}${issue.maximum.toString()} ${unit}`; - } - return `Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin ?? "արժեք")} լինի ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - const minValue = Number(issue.minimum); - const unit = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many); - return `Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin)} կունենա ${adj}${issue.minimum.toString()} ${unit}`; - } - return `Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin)} լինի ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Սխալ տող․ պետք է սկսվի "${_issue.prefix}"-ով`; - if (_issue.format === "ends_with") - return `Սխալ տող․ պետք է ավարտվի "${_issue.suffix}"-ով`; - if (_issue.format === "includes") - return `Սխալ տող․ պետք է պարունակի "${_issue.includes}"`; - if (_issue.format === "regex") - return `Սխալ տող․ պետք է համապատասխանի ${_issue.pattern} ձևաչափին`; - return `Սխալ ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Սխալ թիվ․ պետք է բազմապատիկ լինի ${issue.divisor}-ի`; - case "unrecognized_keys": - return `Չճանաչված բանալի${issue.keys.length > 1 ? "ներ" : ""}. ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Սխալ բանալի ${withDefiniteArticle(issue.origin)}-ում`; - case "invalid_union": - return "Սխալ մուտքագրում"; - case "invalid_element": - return `Սխալ արժեք ${withDefiniteArticle(issue.origin)}-ում`; - default: - return `Սխալ մուտքագրում`; - } - }; -}; -function hy () { - return { - localeError: error$u(), - }; -} - -const error$t = () => { - const Sizable = { - string: { unit: "karakter", verb: "memiliki" }, - file: { unit: "byte", verb: "memiliki" }, - array: { unit: "item", verb: "memiliki" }, - set: { unit: "item", verb: "memiliki" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Input tidak valid: diharapkan instanceof ${issue.expected}, diterima ${received}`; - } - return `Input tidak valid: diharapkan ${expected}, diterima ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Input tidak valid: diharapkan ${stringifyPrimitive(issue.values[0])}`; - return `Pilihan tidak valid: diharapkan salah satu dari ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Terlalu besar: diharapkan ${issue.origin ?? "value"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elemen"}`; - return `Terlalu besar: diharapkan ${issue.origin ?? "value"} menjadi ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `String tidak valid: harus dimulai dengan "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `String tidak valid: harus berakhir dengan "${_issue.suffix}"`; - if (_issue.format === "includes") - return `String tidak valid: harus menyertakan "${_issue.includes}"`; - if (_issue.format === "regex") - return `String tidak valid: harus sesuai pola ${_issue.pattern}`; - return `${FormatDictionary[_issue.format] ?? issue.format} tidak valid`; - } - case "not_multiple_of": - return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`; - case "unrecognized_keys": - return `Kunci tidak dikenali ${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Kunci tidak valid di ${issue.origin}`; - case "invalid_union": - return "Input tidak valid"; - case "invalid_element": - return `Nilai tidak valid di ${issue.origin}`; - default: - return `Input tidak valid`; - } - }; -}; -function id () { - return { - localeError: error$t(), - }; -} - -const error$s = () => { - const Sizable = { - string: { unit: "stafi", verb: "að hafa" }, - file: { unit: "bæti", verb: "að hafa" }, - array: { unit: "hluti", verb: "að hafa" }, - set: { unit: "hluti", verb: "að hafa" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - regex: "gildi", - email: "netfang", - url: "vefslóð", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO dagsetning og tími", - date: "ISO dagsetning", - time: "ISO tími", - duration: "ISO tímalengd", - ipv4: "IPv4 address", - ipv6: "IPv6 address", - cidrv4: "IPv4 range", - cidrv6: "IPv6 range", - base64: "base64-encoded strengur", - base64url: "base64url-encoded strengur", - json_string: "JSON strengur", - e164: "E.164 tölugildi", - jwt: "JWT", - template_literal: "gildi", - }; - const TypeDictionary = { - nan: "NaN", - number: "númer", - array: "fylki", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Rangt gildi: Þú slóst inn ${received} þar sem á að vera instanceof ${issue.expected}`; - } - return `Rangt gildi: Þú slóst inn ${received} þar sem á að vera ${expected}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Rangt gildi: gert ráð fyrir ${stringifyPrimitive(issue.values[0])}`; - return `Ógilt val: má vera eitt af eftirfarandi ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Of stórt: gert er ráð fyrir að ${issue.origin ?? "gildi"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? "hluti"}`; - return `Of stórt: gert er ráð fyrir að ${issue.origin ?? "gildi"} sé ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Of lítið: gert er ráð fyrir að ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Of lítið: gert er ráð fyrir að ${issue.origin} sé ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Ógildur strengur: verður að byrja á "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Ógildur strengur: verður að enda á "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ógildur strengur: verður að innihalda "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ógildur strengur: verður að fylgja mynstri ${_issue.pattern}`; - return `Rangt ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Röng tala: verður að vera margfeldi af ${issue.divisor}`; - case "unrecognized_keys": - return `Óþekkt ${issue.keys.length > 1 ? "ir lyklar" : "ur lykill"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Rangur lykill í ${issue.origin}`; - case "invalid_union": - return "Rangt gildi"; - case "invalid_element": - return `Rangt gildi í ${issue.origin}`; - default: - return `Rangt gildi`; - } - }; -}; -function is () { - return { - localeError: error$s(), - }; -} - -const error$r = () => { - const Sizable = { - string: { unit: "caratteri", verb: "avere" }, - file: { unit: "byte", verb: "avere" }, - array: { unit: "elementi", verb: "avere" }, - set: { unit: "elementi", verb: "avere" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "numero", - array: "vettore", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Input non valido: atteso instanceof ${issue.expected}, ricevuto ${received}`; - } - return `Input non valido: atteso ${expected}, ricevuto ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Input non valido: atteso ${stringifyPrimitive(issue.values[0])}`; - return `Opzione non valida: atteso uno tra ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Troppo grande: ${issue.origin ?? "valore"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementi"}`; - return `Troppo grande: ${issue.origin ?? "valore"} deve essere ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Stringa non valida: deve iniziare con "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Stringa non valida: deve terminare con "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Stringa non valida: deve includere "${_issue.includes}"`; - if (_issue.format === "regex") - return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`; - return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Numero non valido: deve essere un multiplo di ${issue.divisor}`; - case "unrecognized_keys": - return `Chiav${issue.keys.length > 1 ? "i" : "e"} non riconosciut${issue.keys.length > 1 ? "e" : "a"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Chiave non valida in ${issue.origin}`; - case "invalid_union": - return "Input non valido"; - case "invalid_element": - return `Valore non valido in ${issue.origin}`; - default: - return `Input non valido`; - } - }; -}; -function it () { - return { - localeError: error$r(), - }; -} - -const error$q = () => { - const Sizable = { - string: { unit: "文字", verb: "である" }, - file: { unit: "バイト", verb: "である" }, - array: { unit: "要素", verb: "である" }, - set: { unit: "要素", verb: "である" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "入力値", - }; - const TypeDictionary = { - nan: "NaN", - number: "数値", - array: "配列", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `無効な入力: instanceof ${issue.expected}が期待されましたが、${received}が入力されました`; - } - return `無効な入力: ${expected}が期待されましたが、${received}が入力されました`; - } - case "invalid_value": - if (issue.values.length === 1) - return `無効な入力: ${stringifyPrimitive(issue.values[0])}が期待されました`; - return `無効な選択: ${joinValues(issue.values, "、")}のいずれかである必要があります`; - case "too_big": { - const adj = issue.inclusive ? "以下である" : "より小さい"; - const sizing = getSizing(issue.origin); - if (sizing) - return `大きすぎる値: ${issue.origin ?? "値"}は${issue.maximum.toString()}${sizing.unit ?? "要素"}${adj}必要があります`; - return `大きすぎる値: ${issue.origin ?? "値"}は${issue.maximum.toString()}${adj}必要があります`; - } - case "too_small": { - const adj = issue.inclusive ? "以上である" : "より大きい"; - const sizing = getSizing(issue.origin); - if (sizing) - return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`; - return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `無効な文字列: "${_issue.prefix}"で始まる必要があります`; - if (_issue.format === "ends_with") - return `無効な文字列: "${_issue.suffix}"で終わる必要があります`; - if (_issue.format === "includes") - return `無効な文字列: "${_issue.includes}"を含む必要があります`; - if (_issue.format === "regex") - return `無効な文字列: パターン${_issue.pattern}に一致する必要があります`; - return `無効な${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `無効な数値: ${issue.divisor}の倍数である必要があります`; - case "unrecognized_keys": - return `認識されていないキー${issue.keys.length > 1 ? "群" : ""}: ${joinValues(issue.keys, "、")}`; - case "invalid_key": - return `${issue.origin}内の無効なキー`; - case "invalid_union": - return "無効な入力"; - case "invalid_element": - return `${issue.origin}内の無効な値`; - default: - return `無効な入力`; - } - }; -}; -function ja () { - return { - localeError: error$q(), - }; -} - -const error$p = () => { - const Sizable = { - string: { unit: "სიმბოლო", verb: "უნდა შეიცავდეს" }, - file: { unit: "ბაიტი", verb: "უნდა შეიცავდეს" }, - array: { unit: "ელემენტი", verb: "უნდა შეიცავდეს" }, - set: { unit: "ელემენტი", verb: "უნდა შეიცავდეს" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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-კოდირებული სტრინგი", - base64url: "base64url-კოდირებული სტრინგი", - json_string: "JSON სტრინგი", - e164: "E.164 ნომერი", - jwt: "JWT", - template_literal: "შეყვანა", - }; - const TypeDictionary = { - nan: "NaN", - number: "რიცხვი", - string: "სტრინგი", - boolean: "ბულეანი", - function: "ფუნქცია", - array: "მასივი", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `არასწორი შეყვანა: მოსალოდნელი instanceof ${issue.expected}, მიღებული ${received}`; - } - return `არასწორი შეყვანა: მოსალოდნელი ${expected}, მიღებული ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `არასწორი შეყვანა: მოსალოდნელი ${stringifyPrimitive(issue.values[0])}`; - return `არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${joinValues(issue.values, "|")}-დან`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `ზედმეტად დიდი: მოსალოდნელი ${issue.origin ?? "მნიშვნელობა"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`; - return `ზედმეტად დიდი: მოსალოდნელი ${issue.origin ?? "მნიშვნელობა"} იყოს ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `ზედმეტად პატარა: მოსალოდნელი ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `ზედმეტად პატარა: მოსალოდნელი ${issue.origin} იყოს ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `არასწორი სტრინგი: უნდა იწყებოდეს "${_issue.prefix}"-ით`; - } - if (_issue.format === "ends_with") - return `არასწორი სტრინგი: უნდა მთავრდებოდეს "${_issue.suffix}"-ით`; - if (_issue.format === "includes") - return `არასწორი სტრინგი: უნდა შეიცავდეს "${_issue.includes}"-ს`; - if (_issue.format === "regex") - return `არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${_issue.pattern}`; - return `არასწორი ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `არასწორი რიცხვი: უნდა იყოს ${issue.divisor}-ის ჯერადი`; - case "unrecognized_keys": - return `უცნობი გასაღებ${issue.keys.length > 1 ? "ები" : "ი"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `არასწორი გასაღები ${issue.origin}-ში`; - case "invalid_union": - return "არასწორი შეყვანა"; - case "invalid_element": - return `არასწორი მნიშვნელობა ${issue.origin}-ში`; - default: - return `არასწორი შეყვანა`; - } - }; -}; -function ka () { - return { - localeError: error$p(), - }; -} - -const error$o = () => { - const Sizable = { - string: { unit: "តួអក្សរ", verb: "គួរមាន" }, - file: { unit: "បៃ", verb: "គួរមាន" }, - array: { unit: "ធាតុ", verb: "គួរមាន" }, - set: { unit: "ធាតុ", verb: "គួរមាន" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "ទិន្នន័យបញ្ចូល", - }; - const TypeDictionary = { - nan: "NaN", - number: "លេខ", - array: "អារេ (Array)", - null: "គ្មានតម្លៃ (null)", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${issue.expected} ប៉ុន្តែទទួលបាន ${received}`; - } - return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${expected} ប៉ុន្តែទទួលបាន ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${stringifyPrimitive(issue.values[0])}`; - return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `ធំពេក៖ ត្រូវការ ${issue.origin ?? "តម្លៃ"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? "ធាតុ"}`; - return `ធំពេក៖ ត្រូវការ ${issue.origin ?? "តម្លៃ"} ${adj} ${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`; - } - return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${_issue.suffix}"`; - if (_issue.format === "includes") - return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${_issue.includes}"`; - if (_issue.format === "regex") - return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`; - return `មិនត្រឹមត្រូវ៖ ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`; - case "unrecognized_keys": - return `រកឃើញសោមិនស្គាល់៖ ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`; - case "invalid_union": - return `ទិន្នន័យមិនត្រឹមត្រូវ`; - case "invalid_element": - return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`; - default: - return `ទិន្នន័យមិនត្រឹមត្រូវ`; - } - }; -}; -function km () { - return { - localeError: error$o(), - }; -} - -/** @deprecated Use `km` instead. */ -function kh () { - return km(); -} - -const error$n = () => { - const Sizable = { - string: { unit: "문자", verb: "to have" }, - file: { unit: "바이트", verb: "to have" }, - array: { unit: "개", verb: "to have" }, - set: { unit: "개", verb: "to have" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "입력", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `잘못된 입력: 예상 타입은 instanceof ${issue.expected}, 받은 타입은 ${received}입니다`; - } - return `잘못된 입력: 예상 타입은 ${expected}, 받은 타입은 ${received}입니다`; - } - case "invalid_value": - if (issue.values.length === 1) - return `잘못된 입력: 값은 ${stringifyPrimitive(issue.values[0])} 이어야 합니다`; - return `잘못된 옵션: ${joinValues(issue.values, "또는 ")} 중 하나여야 합니다`; - case "too_big": { - const adj = issue.inclusive ? "이하" : "미만"; - const suffix = adj === "미만" ? "이어야 합니다" : "여야 합니다"; - const sizing = getSizing(issue.origin); - const unit = sizing?.unit ?? "요소"; - if (sizing) - return `${issue.origin ?? "값"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`; - return `${issue.origin ?? "값"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`; - } - case "too_small": { - const adj = issue.inclusive ? "이상" : "초과"; - const suffix = adj === "이상" ? "이어야 합니다" : "여야 합니다"; - const sizing = getSizing(issue.origin); - const unit = sizing?.unit ?? "요소"; - if (sizing) { - return `${issue.origin ?? "값"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`; - } - return `${issue.origin ?? "값"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `잘못된 문자열: "${_issue.prefix}"(으)로 시작해야 합니다`; - } - if (_issue.format === "ends_with") - return `잘못된 문자열: "${_issue.suffix}"(으)로 끝나야 합니다`; - if (_issue.format === "includes") - return `잘못된 문자열: "${_issue.includes}"을(를) 포함해야 합니다`; - if (_issue.format === "regex") - return `잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`; - return `잘못된 ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `잘못된 숫자: ${issue.divisor}의 배수여야 합니다`; - case "unrecognized_keys": - return `인식할 수 없는 키: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `잘못된 키: ${issue.origin}`; - case "invalid_union": - return `잘못된 입력`; - case "invalid_element": - return `잘못된 값: ${issue.origin}`; - default: - return `잘못된 입력`; - } - }; -}; -function ko () { - return { - localeError: error$n(), - }; -} - -const capitalizeFirstCharacter = (text) => { - return text.charAt(0).toUpperCase() + text.slice(1); -}; -function getUnitTypeFromNumber(number) { - const abs = Math.abs(number); - const last = abs % 10; - const last2 = abs % 100; - if ((last2 >= 11 && last2 <= 19) || last === 0) - return "many"; - if (last === 1) - return "one"; - return "few"; -} -const error$m = () => { - const Sizable = { - string: { - unit: { - one: "simbolis", - few: "simboliai", - many: "simbolių", - }, - verb: { - smaller: { - inclusive: "turi būti ne ilgesnė kaip", - notInclusive: "turi būti trumpesnė kaip", - }, - bigger: { - inclusive: "turi būti ne trumpesnė kaip", - notInclusive: "turi būti ilgesnė kaip", - }, - }, - }, - file: { - unit: { - one: "baitas", - few: "baitai", - many: "baitų", - }, - verb: { - smaller: { - inclusive: "turi būti ne didesnis kaip", - notInclusive: "turi būti mažesnis kaip", - }, - bigger: { - inclusive: "turi būti ne mažesnis kaip", - notInclusive: "turi būti didesnis kaip", - }, - }, - }, - array: { - unit: { - one: "elementą", - few: "elementus", - many: "elementų", - }, - verb: { - smaller: { - inclusive: "turi turėti ne daugiau kaip", - notInclusive: "turi turėti mažiau kaip", - }, - bigger: { - inclusive: "turi turėti ne mažiau kaip", - notInclusive: "turi turėti daugiau kaip", - }, - }, - }, - set: { - unit: { - one: "elementą", - few: "elementus", - many: "elementų", - }, - verb: { - smaller: { - inclusive: "turi turėti ne daugiau kaip", - notInclusive: "turi turėti mažiau kaip", - }, - bigger: { - inclusive: "turi turėti ne mažiau kaip", - notInclusive: "turi turėti daugiau kaip", - }, - }, - }, - }; - function getSizing(origin, unitType, inclusive, targetShouldBe) { - const result = Sizable[origin] ?? null; - if (result === null) - return result; - return { - unit: result.unit[unitType], - verb: result.verb[targetShouldBe][inclusive ? "inclusive" : "notInclusive"], - }; - } - const FormatDictionary = { - regex: "įvestis", - email: "el. pašto adresas", - url: "URL", - emoji: "jaustukas", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO data ir laikas", - date: "ISO data", - time: "ISO laikas", - duration: "ISO trukmė", - ipv4: "IPv4 adresas", - ipv6: "IPv6 adresas", - cidrv4: "IPv4 tinklo prefiksas (CIDR)", - cidrv6: "IPv6 tinklo prefiksas (CIDR)", - base64: "base64 užkoduota eilutė", - base64url: "base64url užkoduota eilutė", - json_string: "JSON eilutė", - e164: "E.164 numeris", - jwt: "JWT", - template_literal: "įvestis", - }; - const TypeDictionary = { - nan: "NaN", - number: "skaičius", - bigint: "sveikasis skaičius", - string: "eilutė", - boolean: "loginė reikšmė", - undefined: "neapibrėžta reikšmė", - function: "funkcija", - symbol: "simbolis", - array: "masyvas", - object: "objektas", - null: "nulinė reikšmė", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Gautas tipas ${received}, o tikėtasi - instanceof ${issue.expected}`; - } - return `Gautas tipas ${received}, o tikėtasi - ${expected}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Privalo būti ${stringifyPrimitive(issue.values[0])}`; - return `Privalo būti vienas iš ${joinValues(issue.values, "|")} pasirinkimų`; - case "too_big": { - const origin = TypeDictionary[issue.origin] ?? issue.origin; - const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, "smaller"); - if (sizing?.verb) - return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? "elementų"}`; - const adj = issue.inclusive ? "ne didesnis kaip" : "mažesnis kaip"; - return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} turi būti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`; - } - case "too_small": { - const origin = TypeDictionary[issue.origin] ?? issue.origin; - const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, "bigger"); - if (sizing?.verb) - return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? "elementų"}`; - const adj = issue.inclusive ? "ne mažesnis kaip" : "didesnis kaip"; - return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} turi būti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Eilutė privalo prasidėti "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Eilutė privalo pasibaigti "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Eilutė privalo įtraukti "${_issue.includes}"`; - if (_issue.format === "regex") - return `Eilutė privalo atitikti ${_issue.pattern}`; - return `Neteisingas ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Skaičius privalo būti ${issue.divisor} kartotinis.`; - case "unrecognized_keys": - return `Neatpažint${issue.keys.length > 1 ? "i" : "as"} rakt${issue.keys.length > 1 ? "ai" : "as"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return "Rastas klaidingas raktas"; - case "invalid_union": - return "Klaidinga įvestis"; - case "invalid_element": { - const origin = TypeDictionary[issue.origin] ?? issue.origin; - return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} turi klaidingą įvestį`; - } - default: - return "Klaidinga įvestis"; - } - }; -}; -function lt () { - return { - localeError: error$m(), - }; -} - -const error$l = () => { - const Sizable = { - string: { unit: "знаци", verb: "да имаат" }, - file: { unit: "бајти", verb: "да имаат" }, - array: { unit: "ставки", verb: "да имаат" }, - set: { unit: "ставки", verb: "да имаат" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "внес", - }; - const TypeDictionary = { - nan: "NaN", - number: "број", - array: "низа", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Грешен внес: се очекува instanceof ${issue.expected}, примено ${received}`; - } - return `Грешен внес: се очекува ${expected}, примено ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Invalid input: expected ${stringifyPrimitive(issue.values[0])}`; - return `Грешана опција: се очекува една ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Премногу голем: се очекува ${issue.origin ?? "вредноста"} да има ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементи"}`; - return `Премногу голем: се очекува ${issue.origin ?? "вредноста"} да биде ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Неважечка низа: мора да започнува со "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Неважечка низа: мора да завршува со "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Неважечка низа: мора да вклучува "${_issue.includes}"`; - if (_issue.format === "regex") - return `Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`; - return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Грешен број: мора да биде делив со ${issue.divisor}`; - case "unrecognized_keys": - return `${issue.keys.length > 1 ? "Непрепознаени клучеви" : "Непрепознаен клуч"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Грешен клуч во ${issue.origin}`; - case "invalid_union": - return "Грешен внес"; - case "invalid_element": - return `Грешна вредност во ${issue.origin}`; - default: - return `Грешен внес`; - } - }; -}; -function mk () { - return { - localeError: error$l(), - }; -} - -const error$k = () => { - const Sizable = { - string: { unit: "aksara", verb: "mempunyai" }, - file: { unit: "bait", verb: "mempunyai" }, - array: { unit: "elemen", verb: "mempunyai" }, - set: { unit: "elemen", verb: "mempunyai" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "nombor", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Input tidak sah: dijangka instanceof ${issue.expected}, diterima ${received}`; - } - return `Input tidak sah: dijangka ${expected}, diterima ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Input tidak sah: dijangka ${stringifyPrimitive(issue.values[0])}`; - return `Pilihan tidak sah: dijangka salah satu daripada ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Terlalu besar: dijangka ${issue.origin ?? "nilai"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elemen"}`; - return `Terlalu besar: dijangka ${issue.origin ?? "nilai"} adalah ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `String tidak sah: mesti bermula dengan "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `String tidak sah: mesti berakhir dengan "${_issue.suffix}"`; - if (_issue.format === "includes") - return `String tidak sah: mesti mengandungi "${_issue.includes}"`; - if (_issue.format === "regex") - return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`; - return `${FormatDictionary[_issue.format] ?? issue.format} tidak sah`; - } - case "not_multiple_of": - return `Nombor tidak sah: perlu gandaan ${issue.divisor}`; - case "unrecognized_keys": - return `Kunci tidak dikenali: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Kunci tidak sah dalam ${issue.origin}`; - case "invalid_union": - return "Input tidak sah"; - case "invalid_element": - return `Nilai tidak sah dalam ${issue.origin}`; - default: - return `Input tidak sah`; - } - }; -}; -function ms$1 () { - return { - localeError: error$k(), - }; -} - -const error$j = () => { - const Sizable = { - string: { unit: "tekens", verb: "heeft" }, - file: { unit: "bytes", verb: "heeft" }, - array: { unit: "elementen", verb: "heeft" }, - set: { unit: "elementen", verb: "heeft" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "getal", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`; - } - return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Ongeldige invoer: verwacht ${stringifyPrimitive(issue.values[0])}`; - return `Ongeldige optie: verwacht één van ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - const longName = issue.origin === "date" ? "laat" : issue.origin === "string" ? "lang" : "groot"; - if (sizing) - return `Te ${longName}: verwacht dat ${issue.origin ?? "waarde"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementen"} ${sizing.verb}`; - return `Te ${longName}: verwacht dat ${issue.origin ?? "waarde"} ${adj}${issue.maximum.toString()} is`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - const shortName = issue.origin === "date" ? "vroeg" : issue.origin === "string" ? "kort" : "klein"; - if (sizing) { - return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`; - } - return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Ongeldige tekst: moet met "${_issue.prefix}" beginnen`; - } - if (_issue.format === "ends_with") - return `Ongeldige tekst: moet op "${_issue.suffix}" eindigen`; - if (_issue.format === "includes") - return `Ongeldige tekst: moet "${_issue.includes}" bevatten`; - if (_issue.format === "regex") - return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`; - return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`; - case "unrecognized_keys": - return `Onbekende key${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Ongeldige key in ${issue.origin}`; - case "invalid_union": - return "Ongeldige invoer"; - case "invalid_element": - return `Ongeldige waarde in ${issue.origin}`; - default: - return `Ongeldige invoer`; - } - }; -}; -function nl () { - return { - localeError: error$j(), - }; -} - -const error$i = () => { - const Sizable = { - string: { unit: "tegn", verb: "å ha" }, - file: { unit: "bytes", verb: "å ha" }, - array: { unit: "elementer", verb: "å inneholde" }, - set: { unit: "elementer", verb: "å inneholde" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "tall", - array: "liste", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`; - } - return `Ugyldig input: forventet ${expected}, fikk ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Ugyldig verdi: forventet ${stringifyPrimitive(issue.values[0])}`; - return `Ugyldig valg: forventet en av ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `For stor(t): forventet ${issue.origin ?? "value"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementer"}`; - return `For stor(t): forventet ${issue.origin ?? "value"} til å ha ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Ugyldig streng: må starte med "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Ugyldig streng: må ende med "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ugyldig streng: må inneholde "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`; - return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Ugyldig tall: må være et multiplum av ${issue.divisor}`; - case "unrecognized_keys": - return `${issue.keys.length > 1 ? "Ukjente nøkler" : "Ukjent nøkkel"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Ugyldig nøkkel i ${issue.origin}`; - case "invalid_union": - return "Ugyldig input"; - case "invalid_element": - return `Ugyldig verdi i ${issue.origin}`; - default: - return `Ugyldig input`; - } - }; -}; -function no () { - return { - localeError: error$i(), - }; -} - -const error$h = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "numara", - array: "saf", - null: "gayb", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Fâsit giren: umulan instanceof ${issue.expected}, alınan ${received}`; - } - return `Fâsit giren: umulan ${expected}, alınan ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Fâsit giren: umulan ${stringifyPrimitive(issue.values[0])}`; - return `Fâsit tercih: mûteberler ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Fazla büyük: ${issue.origin ?? "value"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elements"} sahip olmalıydı.`; - return `Fazla büyük: ${issue.origin ?? "value"}, ${adj}${issue.maximum.toString()} olmalıydı.`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`; - } - return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Fâsit metin: "${_issue.prefix}" ile başlamalı.`; - if (_issue.format === "ends_with") - return `Fâsit metin: "${_issue.suffix}" ile bitmeli.`; - if (_issue.format === "includes") - return `Fâsit metin: "${_issue.includes}" ihtivâ etmeli.`; - if (_issue.format === "regex") - return `Fâsit metin: ${_issue.pattern} nakşına uymalı.`; - return `Fâsit ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Fâsit sayı: ${issue.divisor} katı olmalıydı.`; - case "unrecognized_keys": - return `Tanınmayan anahtar ${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `${issue.origin} için tanınmayan anahtar var.`; - case "invalid_union": - return "Giren tanınamadı."; - case "invalid_element": - return `${issue.origin} için tanınmayan kıymet var.`; - default: - return `Kıymet tanınamadı.`; - } - }; -}; -function ota () { - return { - localeError: error$h(), - }; -} - -const error$g = () => { - const Sizable = { - string: { unit: "توکي", verb: "ولري" }, - file: { unit: "بایټس", verb: "ولري" }, - array: { unit: "توکي", verb: "ولري" }, - set: { unit: "توکي", verb: "ولري" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "ورودي", - }; - const TypeDictionary = { - nan: "NaN", - number: "عدد", - array: "ارې", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `ناسم ورودي: باید instanceof ${issue.expected} وای, مګر ${received} ترلاسه شو`; - } - return `ناسم ورودي: باید ${expected} وای, مګر ${received} ترلاسه شو`; - } - case "invalid_value": - if (issue.values.length === 1) { - return `ناسم ورودي: باید ${stringifyPrimitive(issue.values[0])} وای`; - } - return `ناسم انتخاب: باید یو له ${joinValues(issue.values, "|")} څخه وای`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `ډیر لوی: ${issue.origin ?? "ارزښت"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? "عنصرونه"} ولري`; - } - return `ډیر لوی: ${issue.origin ?? "ارزښت"} باید ${adj}${issue.maximum.toString()} وي`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`; - } - return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `ناسم متن: باید د "${_issue.prefix}" سره پیل شي`; - } - if (_issue.format === "ends_with") { - return `ناسم متن: باید د "${_issue.suffix}" سره پای ته ورسيږي`; - } - if (_issue.format === "includes") { - return `ناسم متن: باید "${_issue.includes}" ولري`; - } - if (_issue.format === "regex") { - return `ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`; - } - return `${FormatDictionary[_issue.format] ?? issue.format} ناسم دی`; - } - case "not_multiple_of": - return `ناسم عدد: باید د ${issue.divisor} مضرب وي`; - case "unrecognized_keys": - return `ناسم ${issue.keys.length > 1 ? "کلیډونه" : "کلیډ"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `ناسم کلیډ په ${issue.origin} کې`; - case "invalid_union": - return `ناسمه ورودي`; - case "invalid_element": - return `ناسم عنصر په ${issue.origin} کې`; - default: - return `ناسمه ورودي`; - } - }; -}; -function ps () { - return { - localeError: error$g(), - }; -} - -const error$f = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "liczba", - array: "tablica", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Nieprawidłowe dane wejściowe: oczekiwano instanceof ${issue.expected}, otrzymano ${received}`; - } - return `Nieprawidłowe dane wejściowe: oczekiwano ${expected}, otrzymano ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Nieprawidłowe dane wejściowe: oczekiwano ${stringifyPrimitive(issue.values[0])}`; - return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Za duża wartość: oczekiwano, że ${issue.origin ?? "wartość"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementów"}`; - } - return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? "wartość"} będzie wynosić ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Za mała wartość: oczekiwano, że ${issue.origin ?? "wartość"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? "elementów"}`; - } - return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? "wartość"} będzie wynosić ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Nieprawidłowy ciąg znaków: musi zaczynać się od "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Nieprawidłowy ciąg znaków: musi kończyć się na "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Nieprawidłowy ciąg znaków: musi zawierać "${_issue.includes}"`; - if (_issue.format === "regex") - return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`; - return `Nieprawidłow(y/a/e) ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`; - case "unrecognized_keys": - return `Nierozpoznane klucze${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Nieprawidłowy klucz w ${issue.origin}`; - case "invalid_union": - return "Nieprawidłowe dane wejściowe"; - case "invalid_element": - return `Nieprawidłowa wartość w ${issue.origin}`; - default: - return `Nieprawidłowe dane wejściowe`; - } - }; -}; -function pl () { - return { - localeError: error$f(), - }; -} - -const error$e = () => { - const Sizable = { - string: { unit: "caracteres", verb: "ter" }, - file: { unit: "bytes", verb: "ter" }, - array: { unit: "itens", verb: "ter" }, - set: { unit: "itens", verb: "ter" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "número", - null: "nulo", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Tipo inválido: esperado instanceof ${issue.expected}, recebido ${received}`; - } - return `Tipo inválido: esperado ${expected}, recebido ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Entrada inválida: esperado ${stringifyPrimitive(issue.values[0])}`; - return `Opção inválida: esperada uma das ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Muito grande: esperado que ${issue.origin ?? "valor"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementos"}`; - return `Muito grande: esperado que ${issue.origin ?? "valor"} fosse ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Texto inválido: deve começar com "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Texto inválido: deve terminar com "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Texto inválido: deve incluir "${_issue.includes}"`; - if (_issue.format === "regex") - return `Texto inválido: deve corresponder ao padrão ${_issue.pattern}`; - return `${FormatDictionary[_issue.format] ?? issue.format} inválido`; - } - case "not_multiple_of": - return `Número inválido: deve ser múltiplo de ${issue.divisor}`; - case "unrecognized_keys": - return `Chave${issue.keys.length > 1 ? "s" : ""} desconhecida${issue.keys.length > 1 ? "s" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Chave inválida em ${issue.origin}`; - case "invalid_union": - return "Entrada inválida"; - case "invalid_element": - return `Valor inválido em ${issue.origin}`; - default: - return `Campo inválido`; - } - }; -}; -function pt () { - return { - localeError: error$e(), - }; -} - -function getRussianPlural(count, one, few, many) { - const absCount = Math.abs(count); - const lastDigit = absCount % 10; - const lastTwoDigits = absCount % 100; - if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { - return many; - } - if (lastDigit === 1) { - return one; - } - if (lastDigit >= 2 && lastDigit <= 4) { - return few; - } - return many; -} -const error$d = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "ввод", - }; - const TypeDictionary = { - nan: "NaN", - number: "число", - array: "массив", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Неверный ввод: ожидалось instanceof ${issue.expected}, получено ${received}`; - } - return `Неверный ввод: ожидалось ${expected}, получено ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Неверный ввод: ожидалось ${stringifyPrimitive(issue.values[0])}`; - return `Неверный вариант: ожидалось одно из ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - const maxValue = Number(issue.maximum); - const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `Слишком большое значение: ожидалось, что ${issue.origin ?? "значение"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`; - } - return `Слишком большое значение: ожидалось, что ${issue.origin ?? "значение"} будет ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - const minValue = Number(issue.minimum); - const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`; - } - return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Неверная строка: должна начинаться с "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Неверная строка: должна заканчиваться на "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Неверная строка: должна содержать "${_issue.includes}"`; - if (_issue.format === "regex") - return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`; - return `Неверный ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Неверное число: должно быть кратным ${issue.divisor}`; - case "unrecognized_keys": - return `Нераспознанн${issue.keys.length > 1 ? "ые" : "ый"} ключ${issue.keys.length > 1 ? "и" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Неверный ключ в ${issue.origin}`; - case "invalid_union": - return "Неверные входные данные"; - case "invalid_element": - return `Неверное значение в ${issue.origin}`; - default: - return `Неверные входные данные`; - } - }; -}; -function ru () { - return { - localeError: error$d(), - }; -} - -const error$c = () => { - const Sizable = { - string: { unit: "znakov", verb: "imeti" }, - file: { unit: "bajtov", verb: "imeti" }, - array: { unit: "elementov", verb: "imeti" }, - set: { unit: "elementov", verb: "imeti" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "število", - array: "tabela", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Neveljaven vnos: pričakovano instanceof ${issue.expected}, prejeto ${received}`; - } - return `Neveljaven vnos: pričakovano ${expected}, prejeto ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Neveljaven vnos: pričakovano ${stringifyPrimitive(issue.values[0])}`; - return `Neveljavna možnost: pričakovano eno izmed ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Preveliko: pričakovano, da bo ${issue.origin ?? "vrednost"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementov"}`; - return `Preveliko: pričakovano, da bo ${issue.origin ?? "vrednost"} ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Neveljaven niz: mora se začeti z "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Neveljaven niz: mora se končati z "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Neveljaven niz: mora vsebovati "${_issue.includes}"`; - if (_issue.format === "regex") - return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`; - return `Neveljaven ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Neveljavno število: mora biti večkratnik ${issue.divisor}`; - case "unrecognized_keys": - return `Neprepoznan${issue.keys.length > 1 ? "i ključi" : " ključ"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Neveljaven ključ v ${issue.origin}`; - case "invalid_union": - return "Neveljaven vnos"; - case "invalid_element": - return `Neveljavna vrednost v ${issue.origin}`; - default: - return "Neveljaven vnos"; - } - }; -}; -function sl () { - return { - localeError: error$c(), - }; -} - -const error$b = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "antal", - array: "lista", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Ogiltig inmatning: förväntat instanceof ${issue.expected}, fick ${received}`; - } - return `Ogiltig inmatning: förväntat ${expected}, fick ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Ogiltig inmatning: förväntat ${stringifyPrimitive(issue.values[0])}`; - return `Ogiltigt val: förväntade en av ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `För stor(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? "element"}`; - } - return `För stor(t): förväntat ${issue.origin ?? "värdet"} att ha ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `För lite(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `För lite(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `Ogiltig sträng: måste börja med "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Ogiltig sträng: måste sluta med "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ogiltig sträng: måste innehålla "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ogiltig sträng: måste matcha mönstret "${_issue.pattern}"`; - return `Ogiltig(t) ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`; - case "unrecognized_keys": - return `${issue.keys.length > 1 ? "Okända nycklar" : "Okänd nyckel"}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Ogiltig nyckel i ${issue.origin ?? "värdet"}`; - case "invalid_union": - return "Ogiltig input"; - case "invalid_element": - return `Ogiltigt värde i ${issue.origin ?? "värdet"}`; - default: - return `Ogiltig input`; - } - }; -}; -function sv () { - return { - localeError: error$b(), - }; -} - -const error$a = () => { - const Sizable = { - string: { unit: "எழுத்துக்கள்", verb: "கொண்டிருக்க வேண்டும்" }, - file: { unit: "பைட்டுகள்", verb: "கொண்டிருக்க வேண்டும்" }, - array: { unit: "உறுப்புகள்", verb: "கொண்டிருக்க வேண்டும்" }, - set: { unit: "உறுப்புகள்", verb: "கொண்டிருக்க வேண்டும்" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "எண்", - array: "அணி", - null: "வெறுமை", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${issue.expected}, பெறப்பட்டது ${received}`; - } - return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${expected}, பெறப்பட்டது ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${stringifyPrimitive(issue.values[0])}`; - return `தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${joinValues(issue.values, "|")} இல் ஒன்று`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? "மதிப்பு"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "உறுப்புகள்"} ஆக இருக்க வேண்டும்`; - } - return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? "மதிப்பு"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`; // - } - return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `தவறான சரம்: "${_issue.prefix}" இல் தொடங்க வேண்டும்`; - if (_issue.format === "ends_with") - return `தவறான சரம்: "${_issue.suffix}" இல் முடிவடைய வேண்டும்`; - if (_issue.format === "includes") - return `தவறான சரம்: "${_issue.includes}" ஐ உள்ளடக்க வேண்டும்`; - if (_issue.format === "regex") - return `தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`; - return `தவறான ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`; - case "unrecognized_keys": - return `அடையாளம் தெரியாத விசை${issue.keys.length > 1 ? "கள்" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `${issue.origin} இல் தவறான விசை`; - case "invalid_union": - return "தவறான உள்ளீடு"; - case "invalid_element": - return `${issue.origin} இல் தவறான மதிப்பு`; - default: - return `தவறான உள்ளீடு`; - } - }; -}; -function ta () { - return { - localeError: error$a(), - }; -} - -const error$9 = () => { - const Sizable = { - string: { unit: "ตัวอักษร", verb: "ควรมี" }, - file: { unit: "ไบต์", verb: "ควรมี" }, - array: { unit: "รายการ", verb: "ควรมี" }, - set: { unit: "รายการ", verb: "ควรมี" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "ข้อมูลที่ป้อน", - }; - const TypeDictionary = { - nan: "NaN", - number: "ตัวเลข", - array: "อาร์เรย์ (Array)", - null: "ไม่มีค่า (null)", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${issue.expected} แต่ได้รับ ${received}`; - } - return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${expected} แต่ได้รับ ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `ค่าไม่ถูกต้อง: ควรเป็น ${stringifyPrimitive(issue.values[0])}`; - return `ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "ไม่เกิน" : "น้อยกว่า"; - const sizing = getSizing(issue.origin); - if (sizing) - return `เกินกำหนด: ${issue.origin ?? "ค่า"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit ?? "รายการ"}`; - return `เกินกำหนด: ${issue.origin ?? "ค่า"} ควรมี${adj} ${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? "อย่างน้อย" : "มากกว่า"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`; - } - return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${_issue.suffix}"`; - if (_issue.format === "includes") - return `รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${_issue.includes}" อยู่ในข้อความ`; - if (_issue.format === "regex") - return `รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`; - return `รูปแบบไม่ถูกต้อง: ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`; - case "unrecognized_keys": - return `พบคีย์ที่ไม่รู้จัก: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `คีย์ไม่ถูกต้องใน ${issue.origin}`; - case "invalid_union": - return "ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้"; - case "invalid_element": - return `ข้อมูลไม่ถูกต้องใน ${issue.origin}`; - default: - return `ข้อมูลไม่ถูกต้อง`; - } - }; -}; -function th () { - return { - localeError: error$9(), - }; -} - -const error$8 = () => { - const Sizable = { - string: { unit: "karakter", verb: "olmalı" }, - file: { unit: "bayt", verb: "olmalı" }, - array: { unit: "öğe", verb: "olmalı" }, - set: { unit: "öğe", verb: "olmalı" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Geçersiz değer: beklenen instanceof ${issue.expected}, alınan ${received}`; - } - return `Geçersiz değer: beklenen ${expected}, alınan ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Geçersiz değer: beklenen ${stringifyPrimitive(issue.values[0])}`; - return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Çok büyük: beklenen ${issue.origin ?? "değer"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "öğe"}`; - return `Çok büyük: beklenen ${issue.origin ?? "değer"} ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Geçersiz metin: "${_issue.prefix}" ile başlamalı`; - if (_issue.format === "ends_with") - return `Geçersiz metin: "${_issue.suffix}" ile bitmeli`; - if (_issue.format === "includes") - return `Geçersiz metin: "${_issue.includes}" içermeli`; - if (_issue.format === "regex") - return `Geçersiz metin: ${_issue.pattern} desenine uymalı`; - return `Geçersiz ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`; - case "unrecognized_keys": - return `Tanınmayan anahtar${issue.keys.length > 1 ? "lar" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `${issue.origin} içinde geçersiz anahtar`; - case "invalid_union": - return "Geçersiz değer"; - case "invalid_element": - return `${issue.origin} içinde geçersiz değer`; - default: - return `Geçersiz değer`; - } - }; -}; -function tr () { - return { - localeError: error$8(), - }; -} - -const error$7 = () => { - const Sizable = { - string: { unit: "символів", verb: "матиме" }, - file: { unit: "байтів", verb: "матиме" }, - array: { unit: "елементів", verb: "матиме" }, - set: { unit: "елементів", verb: "матиме" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "вхідні дані", - }; - const TypeDictionary = { - nan: "NaN", - number: "число", - array: "масив", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Неправильні вхідні дані: очікується instanceof ${issue.expected}, отримано ${received}`; - } - return `Неправильні вхідні дані: очікується ${expected}, отримано ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Неправильні вхідні дані: очікується ${stringifyPrimitive(issue.values[0])}`; - return `Неправильна опція: очікується одне з ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`; - return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Неправильний рядок: повинен містити "${_issue.includes}"`; - if (_issue.format === "regex") - return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`; - return `Неправильний ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Неправильне число: повинно бути кратним ${issue.divisor}`; - case "unrecognized_keys": - return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Неправильний ключ у ${issue.origin}`; - case "invalid_union": - return "Неправильні вхідні дані"; - case "invalid_element": - return `Неправильне значення у ${issue.origin}`; - default: - return `Неправильні вхідні дані`; - } - }; -}; -function uk () { - return { - localeError: error$7(), - }; -} - -/** @deprecated Use `uk` instead. */ -function ua () { - return uk(); -} - -const error$6 = () => { - const Sizable = { - string: { unit: "حروف", verb: "ہونا" }, - file: { unit: "بائٹس", verb: "ہونا" }, - array: { unit: "آئٹمز", verb: "ہونا" }, - set: { unit: "آئٹمز", verb: "ہونا" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "ان پٹ", - }; - const TypeDictionary = { - nan: "NaN", - number: "نمبر", - array: "آرے", - null: "نل", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `غلط ان پٹ: instanceof ${issue.expected} متوقع تھا، ${received} موصول ہوا`; - } - return `غلط ان پٹ: ${expected} متوقع تھا، ${received} موصول ہوا`; - } - case "invalid_value": - if (issue.values.length === 1) - return `غلط ان پٹ: ${stringifyPrimitive(issue.values[0])} متوقع تھا`; - return `غلط آپشن: ${joinValues(issue.values, "|")} میں سے ایک متوقع تھا`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `بہت بڑا: ${issue.origin ?? "ویلیو"} کے ${adj}${issue.maximum.toString()} ${sizing.unit ?? "عناصر"} ہونے متوقع تھے`; - return `بہت بڑا: ${issue.origin ?? "ویلیو"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`; - } - return `بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `غلط سٹرنگ: "${_issue.prefix}" سے شروع ہونا چاہیے`; - } - if (_issue.format === "ends_with") - return `غلط سٹرنگ: "${_issue.suffix}" پر ختم ہونا چاہیے`; - if (_issue.format === "includes") - return `غلط سٹرنگ: "${_issue.includes}" شامل ہونا چاہیے`; - if (_issue.format === "regex") - return `غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`; - return `غلط ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`; - case "unrecognized_keys": - return `غیر تسلیم شدہ کی${issue.keys.length > 1 ? "ز" : ""}: ${joinValues(issue.keys, "، ")}`; - case "invalid_key": - return `${issue.origin} میں غلط کی`; - case "invalid_union": - return "غلط ان پٹ"; - case "invalid_element": - return `${issue.origin} میں غلط ویلیو`; - default: - return `غلط ان پٹ`; - } - }; -}; -function ur () { - return { - localeError: error$6(), - }; -} - -const error$5 = () => { - const Sizable = { - string: { unit: "belgi", verb: "bo‘lishi kerak" }, - file: { unit: "bayt", verb: "bo‘lishi kerak" }, - array: { unit: "element", verb: "bo‘lishi kerak" }, - set: { unit: "element", verb: "bo‘lishi kerak" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - regex: "kirish", - email: "elektron pochta manzili", - 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 sana va vaqti", - date: "ISO sana", - time: "ISO vaqt", - duration: "ISO davomiylik", - ipv4: "IPv4 manzil", - ipv6: "IPv6 manzil", - mac: "MAC manzil", - cidrv4: "IPv4 diapazon", - cidrv6: "IPv6 diapazon", - base64: "base64 kodlangan satr", - base64url: "base64url kodlangan satr", - json_string: "JSON satr", - e164: "E.164 raqam", - jwt: "JWT", - template_literal: "kirish", - }; - const TypeDictionary = { - nan: "NaN", - number: "raqam", - array: "massiv", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Noto‘g‘ri kirish: kutilgan instanceof ${issue.expected}, qabul qilingan ${received}`; - } - return `Noto‘g‘ri kirish: kutilgan ${expected}, qabul qilingan ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Noto‘g‘ri kirish: kutilgan ${stringifyPrimitive(issue.values[0])}`; - return `Noto‘g‘ri variant: quyidagilardan biri kutilgan ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Juda katta: kutilgan ${issue.origin ?? "qiymat"} ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`; - return `Juda katta: kutilgan ${issue.origin ?? "qiymat"} ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`; - } - return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Noto‘g‘ri satr: "${_issue.prefix}" bilan boshlanishi kerak`; - if (_issue.format === "ends_with") - return `Noto‘g‘ri satr: "${_issue.suffix}" bilan tugashi kerak`; - if (_issue.format === "includes") - return `Noto‘g‘ri satr: "${_issue.includes}" ni o‘z ichiga olishi kerak`; - if (_issue.format === "regex") - return `Noto‘g‘ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`; - return `Noto‘g‘ri ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Noto‘g‘ri raqam: ${issue.divisor} ning karralisi bo‘lishi kerak`; - case "unrecognized_keys": - return `Noma’lum kalit${issue.keys.length > 1 ? "lar" : ""}: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `${issue.origin} dagi kalit noto‘g‘ri`; - case "invalid_union": - return "Noto‘g‘ri kirish"; - case "invalid_element": - return `${issue.origin} da noto‘g‘ri qiymat`; - default: - return `Noto‘g‘ri kirish`; - } - }; -}; -function uz () { - return { - localeError: error$5(), - }; -} - -const error$4 = () => { - const Sizable = { - 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 getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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", - }; - const TypeDictionary = { - nan: "NaN", - number: "số", - array: "mảng", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Đầu vào không hợp lệ: mong đợi instanceof ${issue.expected}, nhận được ${received}`; - } - return `Đầu vào không hợp lệ: mong đợi ${expected}, nhận được ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Đầu vào không hợp lệ: mong đợi ${stringifyPrimitive(issue.values[0])}`; - return `Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Quá lớn: mong đợi ${issue.origin ?? "giá trị"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "phần tử"}`; - return `Quá lớn: mong đợi ${issue.origin ?? "giá trị"} ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Chuỗi không hợp lệ: phải bắt đầu bằng "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Chuỗi không hợp lệ: phải kết thúc bằng "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Chuỗi không hợp lệ: phải bao gồm "${_issue.includes}"`; - if (_issue.format === "regex") - return `Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`; - return `${FormatDictionary[_issue.format] ?? issue.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 ${issue.divisor}`; - case "unrecognized_keys": - return `Khóa không được nhận dạng: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Khóa không hợp lệ trong ${issue.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 ${issue.origin}`; - default: - return `Đầu vào không hợp lệ`; - } - }; -}; -function vi () { - return { - localeError: error$4(), - }; -} - -const error$3 = () => { - const Sizable = { - string: { unit: "字符", verb: "包含" }, - file: { unit: "字节", verb: "包含" }, - array: { unit: "项", verb: "包含" }, - set: { unit: "项", verb: "包含" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "输入", - }; - const TypeDictionary = { - nan: "NaN", - number: "数字", - array: "数组", - null: "空值(null)", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `无效输入:期望 instanceof ${issue.expected},实际接收 ${received}`; - } - return `无效输入:期望 ${expected},实际接收 ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `无效输入:期望 ${stringifyPrimitive(issue.values[0])}`; - return `无效选项:期望以下之一 ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `数值过大:期望 ${issue.origin ?? "值"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "个元素"}`; - return `数值过大:期望 ${issue.origin ?? "值"} ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `无效字符串:必须以 "${_issue.prefix}" 开头`; - if (_issue.format === "ends_with") - return `无效字符串:必须以 "${_issue.suffix}" 结尾`; - if (_issue.format === "includes") - return `无效字符串:必须包含 "${_issue.includes}"`; - if (_issue.format === "regex") - return `无效字符串:必须满足正则表达式 ${_issue.pattern}`; - return `无效${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `无效数字:必须是 ${issue.divisor} 的倍数`; - case "unrecognized_keys": - return `出现未知的键(key): ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `${issue.origin} 中的键(key)无效`; - case "invalid_union": - return "无效输入"; - case "invalid_element": - return `${issue.origin} 中包含无效值(value)`; - default: - return `无效输入`; - } - }; -}; -function zhCN () { - return { - localeError: error$3(), - }; -} - -const error$2 = () => { - const Sizable = { - string: { unit: "字元", verb: "擁有" }, - file: { unit: "位元組", verb: "擁有" }, - array: { unit: "項目", verb: "擁有" }, - set: { unit: "項目", verb: "擁有" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - 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: "輸入", - }; - const TypeDictionary = { - nan: "NaN", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `無效的輸入值:預期為 instanceof ${issue.expected},但收到 ${received}`; - } - return `無效的輸入值:預期為 ${expected},但收到 ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `無效的輸入值:預期為 ${stringifyPrimitive(issue.values[0])}`; - return `無效的選項:預期為以下其中之一 ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `數值過大:預期 ${issue.origin ?? "值"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? "個元素"}`; - return `數值過大:預期 ${issue.origin ?? "值"} 應為 ${adj}${issue.maximum.toString()}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) { - return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`; - } - return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") { - return `無效的字串:必須以 "${_issue.prefix}" 開頭`; - } - if (_issue.format === "ends_with") - return `無效的字串:必須以 "${_issue.suffix}" 結尾`; - if (_issue.format === "includes") - return `無效的字串:必須包含 "${_issue.includes}"`; - if (_issue.format === "regex") - return `無效的字串:必須符合格式 ${_issue.pattern}`; - return `無效的 ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `無效的數字:必須為 ${issue.divisor} 的倍數`; - case "unrecognized_keys": - return `無法識別的鍵值${issue.keys.length > 1 ? "們" : ""}:${joinValues(issue.keys, "、")}`; - case "invalid_key": - return `${issue.origin} 中有無效的鍵值`; - case "invalid_union": - return "無效的輸入值"; - case "invalid_element": - return `${issue.origin} 中有無效的值`; - default: - return `無效的輸入值`; - } - }; -}; -function zhTW () { - return { - localeError: error$2(), - }; -} - -const error$1 = () => { - const Sizable = { - string: { unit: "àmi", verb: "ní" }, - file: { unit: "bytes", verb: "ní" }, - array: { unit: "nkan", verb: "ní" }, - set: { unit: "nkan", verb: "ní" }, - }; - function getSizing(origin) { - return Sizable[origin] ?? null; - } - const FormatDictionary = { - regex: "ẹ̀rọ ìbáwọlé", - email: "àdírẹ́sì ìmẹ́lì", - 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: "àkókò ISO", - date: "ọjọ́ ISO", - time: "àkókò ISO", - duration: "àkókò tó pé ISO", - ipv4: "àdírẹ́sì IPv4", - ipv6: "àdírẹ́sì IPv6", - cidrv4: "àgbègbè IPv4", - cidrv6: "àgbègbè IPv6", - base64: "ọ̀rọ̀ tí a kọ́ ní base64", - base64url: "ọ̀rọ̀ base64url", - json_string: "ọ̀rọ̀ JSON", - e164: "nọ́mbà E.164", - jwt: "JWT", - template_literal: "ẹ̀rọ ìbáwọlé", - }; - const TypeDictionary = { - nan: "NaN", - number: "nọ́mbà", - array: "akopọ", - }; - return (issue) => { - switch (issue.code) { - case "invalid_type": { - const expected = TypeDictionary[issue.expected] ?? issue.expected; - const receivedType = parsedType(issue.input); - const received = TypeDictionary[receivedType] ?? receivedType; - if (/^[A-Z]/.test(issue.expected)) { - return `Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${issue.expected}, àmọ̀ a rí ${received}`; - } - return `Ìbáwọlé aṣìṣe: a ní láti fi ${expected}, àmọ̀ a rí ${received}`; - } - case "invalid_value": - if (issue.values.length === 1) - return `Ìbáwọlé aṣìṣe: a ní láti fi ${stringifyPrimitive(issue.values[0])}`; - return `Àṣàyàn aṣìṣe: yan ọ̀kan lára ${joinValues(issue.values, "|")}`; - case "too_big": { - const adj = issue.inclusive ? "<=" : "<"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Tó pọ̀ jù: a ní láti jẹ́ pé ${issue.origin ?? "iye"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`; - return `Tó pọ̀ jù: a ní láti jẹ́ ${adj}${issue.maximum}`; - } - case "too_small": { - const adj = issue.inclusive ? ">=" : ">"; - const sizing = getSizing(issue.origin); - if (sizing) - return `Kéré ju: a ní láti jẹ́ pé ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`; - return `Kéré ju: a ní láti jẹ́ ${adj}${issue.minimum}`; - } - case "invalid_format": { - const _issue = issue; - if (_issue.format === "starts_with") - return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${_issue.pattern}`; - return `Aṣìṣe: ${FormatDictionary[_issue.format] ?? issue.format}`; - } - case "not_multiple_of": - return `Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${issue.divisor}`; - case "unrecognized_keys": - return `Bọtìnì àìmọ̀: ${joinValues(issue.keys, ", ")}`; - case "invalid_key": - return `Bọtìnì aṣìṣe nínú ${issue.origin}`; - case "invalid_union": - return "Ìbáwọlé aṣìṣe"; - case "invalid_element": - return `Iye aṣìṣe nínú ${issue.origin}`; - default: - return "Ìbáwọlé aṣìṣe"; - } - }; -}; -function yo () { - return { - localeError: error$1(), - }; -} - -var index$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - ar: ar, - az: az, - be: be, - bg: bg, - ca: ca, - cs: cs, - da: da, - de: de, - en: en, - eo: eo, - es: es, - fa: fa, - fi: fi, - fr: fr, - frCA: frCA, - he: he, - hu: hu, - hy: hy, - id: id, - is: is, - it: it, - ja: ja, - ka: ka, - kh: kh, - km: km, - ko: ko, - lt: lt, - mk: mk, - ms: ms$1, - nl: nl, - no: no, - ota: ota, - pl: pl, - ps: ps, - pt: pt, - ru: ru, - sl: sl, - sv: sv, - ta: ta, - th: th, - tr: tr, - ua: ua, - uk: uk, - ur: ur, - uz: uz, - vi: vi, - yo: yo, - zhCN: zhCN, - zhTW: zhTW -}); - -var _a; -const $output = Symbol("ZodOutput"); -const $input = Symbol("ZodInput"); -class $ZodRegistry { - constructor() { - this._map = new WeakMap(); - this._idmap = new Map(); - } - add(schema, ..._meta) { - const meta = _meta[0]; - this._map.set(schema, meta); - if (meta && typeof meta === "object" && "id" in meta) { - this._idmap.set(meta.id, schema); - } - return this; - } - clear() { - this._map = new WeakMap(); - this._idmap = new Map(); - return this; - } - remove(schema) { - const meta = this._map.get(schema); - if (meta && typeof meta === "object" && "id" in meta) { - this._idmap.delete(meta.id); - } - this._map.delete(schema); - return this; - } - get(schema) { - // return this._map.get(schema) as any; - // inherit metadata - const p = schema._zod.parent; - if (p) { - const pm = { ...(this.get(p) ?? {}) }; - delete pm.id; // do not inherit id - const f = { ...pm, ...this._map.get(schema) }; - return Object.keys(f).length ? f : undefined; - } - return this._map.get(schema); - } - has(schema) { - return this._map.has(schema); - } -} -// registries -function registry() { - return new $ZodRegistry(); -} -(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry()); -const globalRegistry = globalThis.__zod_globalRegistry; - -// @__NO_SIDE_EFFECTS__ -function _string(Class, params) { - return new Class({ - type: "string", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _coercedString(Class, params) { - return new Class({ - type: "string", - coerce: true, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _email(Class, params) { - return new Class({ - type: "string", - format: "email", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _guid(Class, params) { - return new Class({ - type: "string", - format: "guid", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _uuid(Class, params) { - return new Class({ - type: "string", - format: "uuid", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _uuidv4(Class, params) { - return new Class({ - type: "string", - format: "uuid", - check: "string_format", - abort: false, - version: "v4", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _uuidv6(Class, params) { - return new Class({ - type: "string", - format: "uuid", - check: "string_format", - abort: false, - version: "v6", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _uuidv7(Class, params) { - return new Class({ - type: "string", - format: "uuid", - check: "string_format", - abort: false, - version: "v7", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _url(Class, params) { - return new Class({ - type: "string", - format: "url", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _emoji(Class, params) { - return new Class({ - type: "string", - format: "emoji", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _nanoid(Class, params) { - return new Class({ - type: "string", - format: "nanoid", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _cuid(Class, params) { - return new Class({ - type: "string", - format: "cuid", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _cuid2(Class, params) { - return new Class({ - type: "string", - format: "cuid2", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _ulid(Class, params) { - return new Class({ - type: "string", - format: "ulid", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _xid(Class, params) { - return new Class({ - type: "string", - format: "xid", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _ksuid(Class, params) { - return new Class({ - type: "string", - format: "ksuid", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _ipv4(Class, params) { - return new Class({ - type: "string", - format: "ipv4", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _ipv6(Class, params) { - return new Class({ - type: "string", - format: "ipv6", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _mac(Class, params) { - return new Class({ - type: "string", - format: "mac", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _cidrv4(Class, params) { - return new Class({ - type: "string", - format: "cidrv4", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _cidrv6(Class, params) { - return new Class({ - type: "string", - format: "cidrv6", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _base64(Class, params) { - return new Class({ - type: "string", - format: "base64", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _base64url(Class, params) { - return new Class({ - type: "string", - format: "base64url", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _e164(Class, params) { - return new Class({ - type: "string", - format: "e164", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _jwt(Class, params) { - return new Class({ - type: "string", - format: "jwt", - check: "string_format", - abort: false, - ...normalizeParams(params), - }); -} -const TimePrecision = { - Any: null, - Minute: -1, - Second: 0, - Millisecond: 3, - Microsecond: 6, -}; -// @__NO_SIDE_EFFECTS__ -function _isoDateTime(Class, params) { - return new Class({ - type: "string", - format: "datetime", - check: "string_format", - offset: false, - local: false, - precision: null, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _isoDate(Class, params) { - return new Class({ - type: "string", - format: "date", - check: "string_format", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _isoTime(Class, params) { - return new Class({ - type: "string", - format: "time", - check: "string_format", - precision: null, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _isoDuration(Class, params) { - return new Class({ - type: "string", - format: "duration", - check: "string_format", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _number(Class, params) { - return new Class({ - type: "number", - checks: [], - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _coercedNumber(Class, params) { - return new Class({ - type: "number", - coerce: true, - checks: [], - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _int(Class, params) { - return new Class({ - type: "number", - check: "number_format", - abort: false, - format: "safeint", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _float32(Class, params) { - return new Class({ - type: "number", - check: "number_format", - abort: false, - format: "float32", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _float64(Class, params) { - return new Class({ - type: "number", - check: "number_format", - abort: false, - format: "float64", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _int32(Class, params) { - return new Class({ - type: "number", - check: "number_format", - abort: false, - format: "int32", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _uint32(Class, params) { - return new Class({ - type: "number", - check: "number_format", - abort: false, - format: "uint32", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _boolean(Class, params) { - return new Class({ - type: "boolean", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _coercedBoolean(Class, params) { - return new Class({ - type: "boolean", - coerce: true, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _bigint(Class, params) { - return new Class({ - type: "bigint", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _coercedBigint(Class, params) { - return new Class({ - type: "bigint", - coerce: true, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _int64(Class, params) { - return new Class({ - type: "bigint", - check: "bigint_format", - abort: false, - format: "int64", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _uint64(Class, params) { - return new Class({ - type: "bigint", - check: "bigint_format", - abort: false, - format: "uint64", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _symbol(Class, params) { - return new Class({ - type: "symbol", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _undefined$1(Class, params) { - return new Class({ - type: "undefined", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _null$1(Class, params) { - return new Class({ - type: "null", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _any(Class) { - return new Class({ - type: "any", - }); -} -// @__NO_SIDE_EFFECTS__ -function _unknown(Class) { - return new Class({ - type: "unknown", - }); -} -// @__NO_SIDE_EFFECTS__ -function _never(Class, params) { - return new Class({ - type: "never", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _void$1(Class, params) { - return new Class({ - type: "void", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _date(Class, params) { - return new Class({ - type: "date", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _coercedDate(Class, params) { - return new Class({ - type: "date", - coerce: true, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _nan(Class, params) { - return new Class({ - type: "nan", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _lt(value, params) { - return new $ZodCheckLessThan({ - check: "less_than", - ...normalizeParams(params), - value, - inclusive: false, - }); -} -// @__NO_SIDE_EFFECTS__ -function _lte(value, params) { - return new $ZodCheckLessThan({ - check: "less_than", - ...normalizeParams(params), - value, - inclusive: true, - }); -} -// @__NO_SIDE_EFFECTS__ -function _gt(value, params) { - return new $ZodCheckGreaterThan({ - check: "greater_than", - ...normalizeParams(params), - value, - inclusive: false, - }); -} -// @__NO_SIDE_EFFECTS__ -function _gte(value, params) { - return new $ZodCheckGreaterThan({ - check: "greater_than", - ...normalizeParams(params), - value, - inclusive: true, - }); -} -// @__NO_SIDE_EFFECTS__ -function _positive(params) { - return _gt(0, params); -} -// negative -// @__NO_SIDE_EFFECTS__ -function _negative(params) { - return _lt(0, params); -} -// nonpositive -// @__NO_SIDE_EFFECTS__ -function _nonpositive(params) { - return _lte(0, params); -} -// nonnegative -// @__NO_SIDE_EFFECTS__ -function _nonnegative(params) { - return _gte(0, params); -} -// @__NO_SIDE_EFFECTS__ -function _multipleOf(value, params) { - return new $ZodCheckMultipleOf({ - check: "multiple_of", - ...normalizeParams(params), - value, - }); -} -// @__NO_SIDE_EFFECTS__ -function _maxSize(maximum, params) { - return new $ZodCheckMaxSize({ - check: "max_size", - ...normalizeParams(params), - maximum, - }); -} -// @__NO_SIDE_EFFECTS__ -function _minSize(minimum, params) { - return new $ZodCheckMinSize({ - check: "min_size", - ...normalizeParams(params), - minimum, - }); -} -// @__NO_SIDE_EFFECTS__ -function _size(size, params) { - return new $ZodCheckSizeEquals({ - check: "size_equals", - ...normalizeParams(params), - size, - }); -} -// @__NO_SIDE_EFFECTS__ -function _maxLength(maximum, params) { - const ch = new $ZodCheckMaxLength({ - check: "max_length", - ...normalizeParams(params), - maximum, - }); - return ch; -} -// @__NO_SIDE_EFFECTS__ -function _minLength(minimum, params) { - return new $ZodCheckMinLength({ - check: "min_length", - ...normalizeParams(params), - minimum, - }); -} -// @__NO_SIDE_EFFECTS__ -function _length(length, params) { - return new $ZodCheckLengthEquals({ - check: "length_equals", - ...normalizeParams(params), - length, - }); -} -// @__NO_SIDE_EFFECTS__ -function _regex(pattern, params) { - return new $ZodCheckRegex({ - check: "string_format", - format: "regex", - ...normalizeParams(params), - pattern, - }); -} -// @__NO_SIDE_EFFECTS__ -function _lowercase(params) { - return new $ZodCheckLowerCase({ - check: "string_format", - format: "lowercase", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _uppercase(params) { - return new $ZodCheckUpperCase({ - check: "string_format", - format: "uppercase", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _includes(includes, params) { - return new $ZodCheckIncludes({ - check: "string_format", - format: "includes", - ...normalizeParams(params), - includes, - }); -} -// @__NO_SIDE_EFFECTS__ -function _startsWith(prefix, params) { - return new $ZodCheckStartsWith({ - check: "string_format", - format: "starts_with", - ...normalizeParams(params), - prefix, - }); -} -// @__NO_SIDE_EFFECTS__ -function _endsWith(suffix, params) { - return new $ZodCheckEndsWith({ - check: "string_format", - format: "ends_with", - ...normalizeParams(params), - suffix, - }); -} -// @__NO_SIDE_EFFECTS__ -function _property(property, schema, params) { - return new $ZodCheckProperty({ - check: "property", - property, - schema, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _mime(types, params) { - return new $ZodCheckMimeType({ - check: "mime_type", - mime: types, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _overwrite(tx) { - return new $ZodCheckOverwrite({ - check: "overwrite", - tx, - }); -} -// normalize -// @__NO_SIDE_EFFECTS__ -function _normalize(form) { - return _overwrite((input) => input.normalize(form)); -} -// trim -// @__NO_SIDE_EFFECTS__ -function _trim() { - return _overwrite((input) => input.trim()); -} -// toLowerCase -// @__NO_SIDE_EFFECTS__ -function _toLowerCase() { - return _overwrite((input) => input.toLowerCase()); -} -// toUpperCase -// @__NO_SIDE_EFFECTS__ -function _toUpperCase() { - return _overwrite((input) => input.toUpperCase()); -} -// slugify -// @__NO_SIDE_EFFECTS__ -function _slugify() { - return _overwrite((input) => slugify(input)); -} -// @__NO_SIDE_EFFECTS__ -function _array(Class, element, params) { - return new Class({ - type: "array", - element, - // get element() { - // return element; - // }, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _union(Class, options, params) { - return new Class({ - type: "union", - options, - ...normalizeParams(params), - }); -} -function _xor(Class, options, params) { - return new Class({ - type: "union", - options, - inclusive: false, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _discriminatedUnion(Class, discriminator, options, params) { - return new Class({ - type: "union", - options, - discriminator, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _intersection(Class, left, right) { - return new Class({ - type: "intersection", - left, - right, - }); -} -// export function _tuple( -// Class: util.SchemaClass, -// items: [], -// params?: string | $ZodTupleParams -// ): schemas.$ZodTuple<[], null>; -// @__NO_SIDE_EFFECTS__ -function _tuple(Class, items, _paramsOrRest, _params) { - const hasRest = _paramsOrRest instanceof $ZodType; - const params = hasRest ? _params : _paramsOrRest; - const rest = hasRest ? _paramsOrRest : null; - return new Class({ - type: "tuple", - items, - rest, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _record(Class, keyType, valueType, params) { - return new Class({ - type: "record", - keyType, - valueType, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _map(Class, keyType, valueType, params) { - return new Class({ - type: "map", - keyType, - valueType, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _set(Class, valueType, params) { - return new Class({ - type: "set", - valueType, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _enum$1(Class, values, params) { - const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; - // if (Array.isArray(values)) { - // for (const value of values) { - // entries[value] = value; - // } - // } else { - // Object.assign(entries, values); - // } - // const entries: util.EnumLike = {}; - // for (const val of values) { - // entries[val] = val; - // } - return new Class({ - type: "enum", - entries, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead. - * - * ```ts - * enum Colors { red, green, blue } - * z.enum(Colors); - * ``` - */ -function _nativeEnum(Class, entries, params) { - return new Class({ - type: "enum", - entries, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _literal(Class, value, params) { - return new Class({ - type: "literal", - values: Array.isArray(value) ? value : [value], - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _file(Class, params) { - return new Class({ - type: "file", - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _transform(Class, fn) { - return new Class({ - type: "transform", - transform: fn, - }); -} -// @__NO_SIDE_EFFECTS__ -function _optional(Class, innerType) { - return new Class({ - type: "optional", - innerType, - }); -} -// @__NO_SIDE_EFFECTS__ -function _nullable(Class, innerType) { - return new Class({ - type: "nullable", - innerType, - }); -} -// @__NO_SIDE_EFFECTS__ -function _default$1(Class, innerType, defaultValue) { - return new Class({ - type: "default", - innerType, - get defaultValue() { - return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); - }, - }); -} -// @__NO_SIDE_EFFECTS__ -function _nonoptional(Class, innerType, params) { - return new Class({ - type: "nonoptional", - innerType, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _success(Class, innerType) { - return new Class({ - type: "success", - innerType, - }); -} -// @__NO_SIDE_EFFECTS__ -function _catch$1(Class, innerType, catchValue) { - return new Class({ - type: "catch", - innerType, - catchValue: (typeof catchValue === "function" ? catchValue : () => catchValue), - }); -} -// @__NO_SIDE_EFFECTS__ -function _pipe(Class, in_, out) { - return new Class({ - type: "pipe", - in: in_, - out, - }); -} -// @__NO_SIDE_EFFECTS__ -function _readonly(Class, innerType) { - return new Class({ - type: "readonly", - innerType, - }); -} -// @__NO_SIDE_EFFECTS__ -function _templateLiteral(Class, parts, params) { - return new Class({ - type: "template_literal", - parts, - ...normalizeParams(params), - }); -} -// @__NO_SIDE_EFFECTS__ -function _lazy(Class, getter) { - return new Class({ - type: "lazy", - getter, - }); -} -// @__NO_SIDE_EFFECTS__ -function _promise(Class, innerType) { - return new Class({ - type: "promise", - innerType, - }); -} -// @__NO_SIDE_EFFECTS__ -function _custom(Class, fn, _params) { - const norm = normalizeParams(_params); - norm.abort ?? (norm.abort = true); // default to abort:false - const schema = new Class({ - type: "custom", - check: "custom", - fn: fn, - ...norm, - }); - return schema; -} -// same as _custom but defaults to abort:false -// @__NO_SIDE_EFFECTS__ -function _refine(Class, fn, _params) { - const schema = new Class({ - type: "custom", - check: "custom", - fn: fn, - ...normalizeParams(_params), - }); - return schema; -} -// @__NO_SIDE_EFFECTS__ -function _superRefine(fn) { - const ch = _check((payload) => { - payload.addIssue = (issue$1) => { - if (typeof issue$1 === "string") { - payload.issues.push(issue(issue$1, payload.value, ch._zod.def)); - } - else { - // for Zod 3 backwards compatibility - const _issue = issue$1; - if (_issue.fatal) - _issue.continue = false; - _issue.code ?? (_issue.code = "custom"); - _issue.input ?? (_issue.input = payload.value); - _issue.inst ?? (_issue.inst = ch); - _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true... - payload.issues.push(issue(_issue)); - } - }; - return fn(payload.value, payload); - }); - return ch; -} -// @__NO_SIDE_EFFECTS__ -function _check(fn, params) { - const ch = new $ZodCheck({ - check: "custom", - ...normalizeParams(params), - }); - ch._zod.check = fn; - return ch; -} -// @__NO_SIDE_EFFECTS__ -function describe$1(description) { - const ch = new $ZodCheck({ check: "describe" }); - ch._zod.onattach = [ - (inst) => { - const existing = globalRegistry.get(inst) ?? {}; - globalRegistry.add(inst, { ...existing, description }); - }, - ]; - ch._zod.check = () => { }; // no-op check - return ch; -} -// @__NO_SIDE_EFFECTS__ -function meta$1(metadata) { - const ch = new $ZodCheck({ check: "meta" }); - ch._zod.onattach = [ - (inst) => { - const existing = globalRegistry.get(inst) ?? {}; - globalRegistry.add(inst, { ...existing, ...metadata }); - }, - ]; - ch._zod.check = () => { }; // no-op check - return ch; -} -// @__NO_SIDE_EFFECTS__ -function _stringbool(Classes, _params) { - const params = normalizeParams(_params); - let truthyArray = params.truthy ?? ["true", "1", "yes", "on", "y", "enabled"]; - let falsyArray = params.falsy ?? ["false", "0", "no", "off", "n", "disabled"]; - if (params.case !== "sensitive") { - truthyArray = truthyArray.map((v) => (typeof v === "string" ? v.toLowerCase() : v)); - falsyArray = falsyArray.map((v) => (typeof v === "string" ? v.toLowerCase() : v)); - } - const truthySet = new Set(truthyArray); - const falsySet = new Set(falsyArray); - const _Codec = Classes.Codec ?? $ZodCodec; - const _Boolean = Classes.Boolean ?? $ZodBoolean; - const _String = Classes.String ?? $ZodString; - const stringSchema = new _String({ type: "string", error: params.error }); - const booleanSchema = new _Boolean({ type: "boolean", error: params.error }); - const codec = new _Codec({ - type: "pipe", - in: stringSchema, - out: booleanSchema, - transform: ((input, payload) => { - let data = input; - if (params.case !== "sensitive") - data = data.toLowerCase(); - if (truthySet.has(data)) { - return true; - } - else if (falsySet.has(data)) { - return false; - } - else { - payload.issues.push({ - code: "invalid_value", - expected: "stringbool", - values: [...truthySet, ...falsySet], - input: payload.value, - inst: codec, - continue: false, - }); - return {}; - } - }), - reverseTransform: ((input, _payload) => { - if (input === true) { - return truthyArray[0] || "true"; - } - else { - return falsyArray[0] || "false"; - } - }), - error: params.error, - }); - return codec; -} -// @__NO_SIDE_EFFECTS__ -function _stringFormat(Class, format, fnOrRegex, _params = {}) { - const params = normalizeParams(_params); - const def = { - ...normalizeParams(_params), - check: "string_format", - type: "string", - format, - fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val), - ...params, - }; - if (fnOrRegex instanceof RegExp) { - def.pattern = fnOrRegex; - } - const inst = new Class(def); - return inst; -} - -// function initializeContext(inputs: JSONSchemaGeneratorParams): ToJSONSchemaContext { -// return { -// processor: inputs.processor, -// metadataRegistry: inputs.metadata ?? globalRegistry, -// target: inputs.target ?? "draft-2020-12", -// unrepresentable: inputs.unrepresentable ?? "throw", -// }; -// } -function initializeContext(params) { - // Normalize target: convert old non-hyphenated versions to hyphenated versions - let target = params?.target ?? "draft-2020-12"; - if (target === "draft-4") - target = "draft-04"; - if (target === "draft-7") - target = "draft-07"; - return { - processors: params.processors ?? {}, - metadataRegistry: params?.metadata ?? globalRegistry, - target, - unrepresentable: params?.unrepresentable ?? "throw", - override: params?.override ?? (() => { }), - io: params?.io ?? "output", - counter: 0, - seen: new Map(), - cycles: params?.cycles ?? "ref", - reused: params?.reused ?? "inline", - external: params?.external ?? undefined, - }; -} -function process$1(schema, ctx, _params = { path: [], schemaPath: [] }) { - var _a; - const def = schema._zod.def; - // check for schema in seens - const seen = ctx.seen.get(schema); - if (seen) { - seen.count++; - // check if cycle - const isCycle = _params.schemaPath.includes(schema); - if (isCycle) { - seen.cycle = _params.path; - } - return seen.schema; - } - // initialize - const result = { schema: {}, count: 1, cycle: undefined, path: _params.path }; - ctx.seen.set(schema, result); - // custom method overrides default behavior - const overrideSchema = schema._zod.toJSONSchema?.(); - if (overrideSchema) { - result.schema = overrideSchema; - } - else { - const params = { - ..._params, - schemaPath: [..._params.schemaPath, schema], - path: _params.path, - }; - if (schema._zod.processJSONSchema) { - schema._zod.processJSONSchema(ctx, result.schema, params); - } - else { - const _json = result.schema; - const processor = ctx.processors[def.type]; - if (!processor) { - throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); - } - processor(schema, ctx, _json, params); - } - const parent = schema._zod.parent; - if (parent) { - // Also set ref if processor didn't (for inheritance) - if (!result.ref) - result.ref = parent; - process$1(parent, ctx, params); - ctx.seen.get(parent).isParent = true; - } - } - // metadata - const meta = ctx.metadataRegistry.get(schema); - if (meta) - Object.assign(result.schema, meta); - if (ctx.io === "input" && isTransforming(schema)) { - // examples/defaults only apply to output type of pipe - delete result.schema.examples; - delete result.schema.default; - } - // set prefault as default - if (ctx.io === "input" && result.schema._prefault) - (_a = result.schema).default ?? (_a.default = result.schema._prefault); - delete result.schema._prefault; - // pulling fresh from ctx.seen in case it was overwritten - const _result = ctx.seen.get(schema); - return _result.schema; -} -function extractDefs(ctx, schema -// params: EmitParams -) { - // iterate over seen map; - const root = ctx.seen.get(schema); - if (!root) - throw new Error("Unprocessed schema. This is a bug in Zod."); - // Track ids to detect duplicates across different schemas - const idToSchema = new Map(); - for (const entry of ctx.seen.entries()) { - const id = ctx.metadataRegistry.get(entry[0])?.id; - if (id) { - const existing = idToSchema.get(id); - if (existing && existing !== entry[0]) { - throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); - } - idToSchema.set(id, entry[0]); - } - } - // returns a ref to the schema - // defId will be empty if the ref points to an external schema (or #) - const makeURI = (entry) => { - // comparing the seen objects because sometimes - // multiple schemas map to the same seen object. - // e.g. lazy - // external is configured - const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; - if (ctx.external) { - const externalId = ctx.external.registry.get(entry[0])?.id; // ?? "__shared";// `__schema${ctx.counter++}`; - // check if schema is in the external registry - const uriGenerator = ctx.external.uri ?? ((id) => id); - if (externalId) { - return { ref: uriGenerator(externalId) }; - } - // otherwise, add to __shared - const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`; - entry[1].defId = id; // set defId so it will be reused if needed - return { defId: id, ref: `${uriGenerator("__shared")}#/${defsSegment}/${id}` }; - } - if (entry[1] === root) { - return { ref: "#" }; - } - // self-contained schema - const uriPrefix = `#`; - const defUriPrefix = `${uriPrefix}/${defsSegment}/`; - const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`; - return { defId, ref: defUriPrefix + defId }; - }; - // stored cached version in `def` property - // remove all properties, set $ref - const extractToDef = (entry) => { - // if the schema is already a reference, do not extract it - if (entry[1].schema.$ref) { - return; - } - const seen = entry[1]; - const { ref, defId } = makeURI(entry); - seen.def = { ...seen.schema }; - // defId won't be set if the schema is a reference to an external schema - // or if the schema is the root schema - if (defId) - seen.defId = defId; - // wipe away all properties except $ref - const schema = seen.schema; - for (const key in schema) { - delete schema[key]; - } - schema.$ref = ref; - }; - // throw on cycles - // break cycles - if (ctx.cycles === "throw") { - for (const entry of ctx.seen.entries()) { - const seen = entry[1]; - if (seen.cycle) { - throw new Error("Cycle detected: " + - `#/${seen.cycle?.join("/")}/` + - '\n\nSet the `cycles` parameter to `"ref"` to resolve cyclical schemas with defs.'); - } - } - } - // extract schemas into $defs - for (const entry of ctx.seen.entries()) { - const seen = entry[1]; - // convert root schema to # $ref - if (schema === entry[0]) { - extractToDef(entry); // this has special handling for the root schema - continue; - } - // extract schemas that are in the external registry - if (ctx.external) { - const ext = ctx.external.registry.get(entry[0])?.id; - if (schema !== entry[0] && ext) { - extractToDef(entry); - continue; - } - } - // extract schemas with `id` meta - const id = ctx.metadataRegistry.get(entry[0])?.id; - if (id) { - extractToDef(entry); - continue; - } - // break cycles - if (seen.cycle) { - // any - extractToDef(entry); - continue; - } - // extract reused schemas - if (seen.count > 1) { - if (ctx.reused === "ref") { - extractToDef(entry); - // biome-ignore lint: - continue; - } - } - } -} -function finalize(ctx, schema) { - const root = ctx.seen.get(schema); - if (!root) - throw new Error("Unprocessed schema. This is a bug in Zod."); - // flatten refs - inherit properties from parent schemas - const flattenRef = (zodSchema) => { - const seen = ctx.seen.get(zodSchema); - // already processed - if (seen.ref === null) - return; - const schema = seen.def ?? seen.schema; - const _cached = { ...schema }; - const ref = seen.ref; - seen.ref = null; // prevent infinite recursion - if (ref) { - flattenRef(ref); - const refSeen = ctx.seen.get(ref); - const refSchema = refSeen.schema; - // merge referenced schema into current - if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { - // older drafts can't combine $ref with other properties - schema.allOf = schema.allOf ?? []; - schema.allOf.push(refSchema); - } - else { - Object.assign(schema, refSchema); - } - // restore child's own properties (child wins) - Object.assign(schema, _cached); - const isParentRef = zodSchema._zod.parent === ref; - // For parent chain, child is a refinement - remove parent-only properties - if (isParentRef) { - for (const key in schema) { - if (key === "$ref" || key === "allOf") - continue; - if (!(key in _cached)) { - delete schema[key]; - } - } - } - // When ref was extracted to $defs, remove properties that match the definition - if (refSchema.$ref && refSeen.def) { - for (const key in schema) { - if (key === "$ref" || key === "allOf") - continue; - if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) { - delete schema[key]; - } - } - } - } - // If parent was extracted (has $ref), propagate $ref to this schema - // This handles cases like: readonly().meta({id}).describe() - // where processor sets ref to innerType but parent should be referenced - const parent = zodSchema._zod.parent; - if (parent && parent !== ref) { - // Ensure parent is processed first so its def has inherited properties - flattenRef(parent); - const parentSeen = ctx.seen.get(parent); - if (parentSeen?.schema.$ref) { - schema.$ref = parentSeen.schema.$ref; - // De-duplicate with parent's definition - if (parentSeen.def) { - for (const key in schema) { - if (key === "$ref" || key === "allOf") - continue; - if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) { - delete schema[key]; - } - } - } - } - } - // execute overrides - ctx.override({ - zodSchema: zodSchema, - jsonSchema: schema, - path: seen.path ?? [], - }); - }; - for (const entry of [...ctx.seen.entries()].reverse()) { - flattenRef(entry[0]); - } - const result = {}; - if (ctx.target === "draft-2020-12") { - result.$schema = "https://json-schema.org/draft/2020-12/schema"; - } - else if (ctx.target === "draft-07") { - result.$schema = "http://json-schema.org/draft-07/schema#"; - } - else if (ctx.target === "draft-04") { - result.$schema = "http://json-schema.org/draft-04/schema#"; - } - else if (ctx.target === "openapi-3.0") ; - else ; - if (ctx.external?.uri) { - const id = ctx.external.registry.get(schema)?.id; - if (!id) - throw new Error("Schema is missing an `id` property"); - result.$id = ctx.external.uri(id); - } - Object.assign(result, root.def ?? root.schema); - // build defs object - const defs = ctx.external?.defs ?? {}; - for (const entry of ctx.seen.entries()) { - const seen = entry[1]; - if (seen.def && seen.defId) { - defs[seen.defId] = seen.def; - } - } - // set definitions in result - if (ctx.external) ; - else { - if (Object.keys(defs).length > 0) { - if (ctx.target === "draft-2020-12") { - result.$defs = defs; - } - else { - result.definitions = defs; - } - } - } - try { - // this "finalizes" this schema and ensures all cycles are removed - // each call to finalize() is functionally independent - // though the seen map is shared - const finalized = JSON.parse(JSON.stringify(result)); - Object.defineProperty(finalized, "~standard", { - value: { - ...schema["~standard"], - jsonSchema: { - input: createStandardJSONSchemaMethod(schema, "input", ctx.processors), - output: createStandardJSONSchemaMethod(schema, "output", ctx.processors), - }, - }, - enumerable: false, - writable: false, - }); - return finalized; - } - catch (_err) { - throw new Error("Error converting schema to JSON."); - } -} -function isTransforming(_schema, _ctx) { - const ctx = _ctx ?? { seen: new Set() }; - if (ctx.seen.has(_schema)) - return false; - ctx.seen.add(_schema); - const def = _schema._zod.def; - if (def.type === "transform") - return true; - if (def.type === "array") - return isTransforming(def.element, ctx); - if (def.type === "set") - return isTransforming(def.valueType, ctx); - if (def.type === "lazy") - return isTransforming(def.getter(), ctx); - if (def.type === "promise" || - def.type === "optional" || - def.type === "nonoptional" || - def.type === "nullable" || - def.type === "readonly" || - def.type === "default" || - def.type === "prefault") { - return isTransforming(def.innerType, ctx); - } - if (def.type === "intersection") { - return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); - } - if (def.type === "record" || def.type === "map") { - return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); - } - if (def.type === "pipe") { - return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); - } - if (def.type === "object") { - for (const key in def.shape) { - if (isTransforming(def.shape[key], ctx)) - return true; - } - return false; - } - if (def.type === "union") { - for (const option of def.options) { - if (isTransforming(option, ctx)) - return true; - } - return false; - } - if (def.type === "tuple") { - for (const item of def.items) { - if (isTransforming(item, ctx)) - return true; - } - if (def.rest && isTransforming(def.rest, ctx)) - return true; - return false; - } - return false; -} -/** - * Creates a toJSONSchema method for a schema instance. - * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing. - */ -const createToJSONSchemaMethod = (schema, processors = {}) => (params) => { - const ctx = initializeContext({ ...params, processors }); - process$1(schema, ctx); - extractDefs(ctx, schema); - return finalize(ctx, schema); -}; -const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => { - const { libraryOptions, target } = params ?? {}; - const ctx = initializeContext({ ...(libraryOptions ?? {}), target, io, processors }); - process$1(schema, ctx); - extractDefs(ctx, schema); - return finalize(ctx, schema); -}; - -const formatMap = { - guid: "uuid", - url: "uri", - datetime: "date-time", - json_string: "json-string", - regex: "", // do not set -}; -// ==================== SIMPLE TYPE PROCESSORS ==================== -const stringProcessor = (schema, ctx, _json, _params) => { - const json = _json; - json.type = "string"; - const { minimum, maximum, format, patterns, contentEncoding } = schema._zod - .bag; - if (typeof minimum === "number") - json.minLength = minimum; - if (typeof maximum === "number") - json.maxLength = maximum; - // custom pattern overrides format - if (format) { - json.format = formatMap[format] ?? format; - if (json.format === "") - delete json.format; // empty format is not valid - // JSON Schema format: "time" requires a full time with offset or Z - // z.iso.time() does not include timezone information, so format: "time" should never be used - if (format === "time") { - delete json.format; - } - } - if (contentEncoding) - json.contentEncoding = contentEncoding; - if (patterns && patterns.size > 0) { - const regexes = [...patterns]; - if (regexes.length === 1) - json.pattern = regexes[0].source; - else if (regexes.length > 1) { - json.allOf = [ - ...regexes.map((regex) => ({ - ...(ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" - ? { type: "string" } - : {}), - pattern: regex.source, - })), - ]; - } - } -}; -const numberProcessor = (schema, ctx, _json, _params) => { - const json = _json; - const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag; - if (typeof format === "string" && format.includes("int")) - json.type = "integer"; - else - json.type = "number"; - if (typeof exclusiveMinimum === "number") { - if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") { - json.minimum = exclusiveMinimum; - json.exclusiveMinimum = true; - } - else { - json.exclusiveMinimum = exclusiveMinimum; - } - } - if (typeof minimum === "number") { - json.minimum = minimum; - if (typeof exclusiveMinimum === "number" && ctx.target !== "draft-04") { - if (exclusiveMinimum >= minimum) - delete json.minimum; - else - delete json.exclusiveMinimum; - } - } - if (typeof exclusiveMaximum === "number") { - if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") { - json.maximum = exclusiveMaximum; - json.exclusiveMaximum = true; - } - else { - json.exclusiveMaximum = exclusiveMaximum; - } - } - if (typeof maximum === "number") { - json.maximum = maximum; - if (typeof exclusiveMaximum === "number" && ctx.target !== "draft-04") { - if (exclusiveMaximum <= maximum) - delete json.maximum; - else - delete json.exclusiveMaximum; - } - } - if (typeof multipleOf === "number") - json.multipleOf = multipleOf; -}; -const booleanProcessor = (_schema, _ctx, json, _params) => { - json.type = "boolean"; -}; -const bigintProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("BigInt cannot be represented in JSON Schema"); - } -}; -const symbolProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Symbols cannot be represented in JSON Schema"); - } -}; -const nullProcessor = (_schema, ctx, json, _params) => { - if (ctx.target === "openapi-3.0") { - json.type = "string"; - json.nullable = true; - json.enum = [null]; - } - else { - json.type = "null"; - } -}; -const undefinedProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Undefined cannot be represented in JSON Schema"); - } -}; -const voidProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Void cannot be represented in JSON Schema"); - } -}; -const neverProcessor = (_schema, _ctx, json, _params) => { - json.not = {}; -}; -const anyProcessor = (_schema, _ctx, _json, _params) => { - // empty schema accepts anything -}; -const unknownProcessor = (_schema, _ctx, _json, _params) => { - // empty schema accepts anything -}; -const dateProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Date cannot be represented in JSON Schema"); - } -}; -const enumProcessor = (schema, _ctx, json, _params) => { - const def = schema._zod.def; - const values = getEnumValues(def.entries); - // Number enums can have both string and number values - if (values.every((v) => typeof v === "number")) - json.type = "number"; - if (values.every((v) => typeof v === "string")) - json.type = "string"; - json.enum = values; -}; -const literalProcessor = (schema, ctx, json, _params) => { - const def = schema._zod.def; - const vals = []; - for (const val of def.values) { - if (val === undefined) { - if (ctx.unrepresentable === "throw") { - throw new Error("Literal `undefined` cannot be represented in JSON Schema"); - } - } - else if (typeof val === "bigint") { - if (ctx.unrepresentable === "throw") { - throw new Error("BigInt literals cannot be represented in JSON Schema"); - } - else { - vals.push(Number(val)); - } - } - else { - vals.push(val); - } - } - if (vals.length === 0) ; - else if (vals.length === 1) { - const val = vals[0]; - json.type = val === null ? "null" : typeof val; - if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") { - json.enum = [val]; - } - else { - json.const = val; - } - } - else { - if (vals.every((v) => typeof v === "number")) - json.type = "number"; - if (vals.every((v) => typeof v === "string")) - json.type = "string"; - if (vals.every((v) => typeof v === "boolean")) - json.type = "boolean"; - if (vals.every((v) => v === null)) - json.type = "null"; - json.enum = vals; - } -}; -const nanProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("NaN cannot be represented in JSON Schema"); - } -}; -const templateLiteralProcessor = (schema, _ctx, json, _params) => { - const _json = json; - const pattern = schema._zod.pattern; - if (!pattern) - throw new Error("Pattern not found in template literal"); - _json.type = "string"; - _json.pattern = pattern.source; -}; -const fileProcessor = (schema, _ctx, json, _params) => { - const _json = json; - const file = { - type: "string", - format: "binary", - contentEncoding: "binary", - }; - const { minimum, maximum, mime } = schema._zod.bag; - if (minimum !== undefined) - file.minLength = minimum; - if (maximum !== undefined) - file.maxLength = maximum; - if (mime) { - if (mime.length === 1) { - file.contentMediaType = mime[0]; - Object.assign(_json, file); - } - else { - Object.assign(_json, file); // shared props at root - _json.anyOf = mime.map((m) => ({ contentMediaType: m })); // only contentMediaType differs - } - } - else { - Object.assign(_json, file); - } -}; -const successProcessor = (_schema, _ctx, json, _params) => { - json.type = "boolean"; -}; -const customProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Custom types cannot be represented in JSON Schema"); - } -}; -const functionProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Function types cannot be represented in JSON Schema"); - } -}; -const transformProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Transforms cannot be represented in JSON Schema"); - } -}; -const mapProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Map cannot be represented in JSON Schema"); - } -}; -const setProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Set cannot be represented in JSON Schema"); - } -}; -// ==================== COMPOSITE TYPE PROCESSORS ==================== -const arrayProcessor = (schema, ctx, _json, params) => { - const json = _json; - const def = schema._zod.def; - const { minimum, maximum } = schema._zod.bag; - if (typeof minimum === "number") - json.minItems = minimum; - if (typeof maximum === "number") - json.maxItems = maximum; - json.type = "array"; - json.items = process$1(def.element, ctx, { ...params, path: [...params.path, "items"] }); -}; -const objectProcessor = (schema, ctx, _json, params) => { - const json = _json; - const def = schema._zod.def; - json.type = "object"; - json.properties = {}; - const shape = def.shape; - for (const key in shape) { - json.properties[key] = process$1(shape[key], ctx, { - ...params, - path: [...params.path, "properties", key], - }); - } - // required keys - const allKeys = new Set(Object.keys(shape)); - const requiredKeys = new Set([...allKeys].filter((key) => { - const v = def.shape[key]._zod; - if (ctx.io === "input") { - return v.optin === undefined; - } - else { - return v.optout === undefined; - } - })); - if (requiredKeys.size > 0) { - json.required = Array.from(requiredKeys); - } - // catchall - if (def.catchall?._zod.def.type === "never") { - // strict - json.additionalProperties = false; - } - else if (!def.catchall) { - // regular - if (ctx.io === "output") - json.additionalProperties = false; - } - else if (def.catchall) { - json.additionalProperties = process$1(def.catchall, ctx, { - ...params, - path: [...params.path, "additionalProperties"], - }); - } -}; -const unionProcessor = (schema, ctx, json, params) => { - const def = schema._zod.def; - // Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches) - // This includes both z.xor() and discriminated unions - const isExclusive = def.inclusive === false; - const options = def.options.map((x, i) => process$1(x, ctx, { - ...params, - path: [...params.path, isExclusive ? "oneOf" : "anyOf", i], - })); - if (isExclusive) { - json.oneOf = options; - } - else { - json.anyOf = options; - } -}; -const intersectionProcessor = (schema, ctx, json, params) => { - const def = schema._zod.def; - const a = process$1(def.left, ctx, { - ...params, - path: [...params.path, "allOf", 0], - }); - const b = process$1(def.right, ctx, { - ...params, - path: [...params.path, "allOf", 1], - }); - const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1; - const allOf = [ - ...(isSimpleIntersection(a) ? a.allOf : [a]), - ...(isSimpleIntersection(b) ? b.allOf : [b]), - ]; - json.allOf = allOf; -}; -const tupleProcessor = (schema, ctx, _json, params) => { - const json = _json; - const def = schema._zod.def; - json.type = "array"; - const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items"; - const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems"; - const prefixItems = def.items.map((x, i) => process$1(x, ctx, { - ...params, - path: [...params.path, prefixPath, i], - })); - const rest = def.rest - ? process$1(def.rest, ctx, { - ...params, - path: [...params.path, restPath, ...(ctx.target === "openapi-3.0" ? [def.items.length] : [])], - }) - : null; - if (ctx.target === "draft-2020-12") { - json.prefixItems = prefixItems; - if (rest) { - json.items = rest; - } - } - else if (ctx.target === "openapi-3.0") { - json.items = { - anyOf: prefixItems, - }; - if (rest) { - json.items.anyOf.push(rest); - } - json.minItems = prefixItems.length; - if (!rest) { - json.maxItems = prefixItems.length; - } - } - else { - json.items = prefixItems; - if (rest) { - json.additionalItems = rest; - } - } - // length - const { minimum, maximum } = schema._zod.bag; - if (typeof minimum === "number") - json.minItems = minimum; - if (typeof maximum === "number") - json.maxItems = maximum; -}; -const recordProcessor = (schema, ctx, _json, params) => { - const json = _json; - const def = schema._zod.def; - json.type = "object"; - // For looseRecord with regex patterns, use patternProperties - // This correctly represents "only validate keys matching the pattern" semantics - // and composes well with allOf (intersections) - const keyType = def.keyType; - const keyBag = keyType._zod.bag; - const patterns = keyBag?.patterns; - if (def.mode === "loose" && patterns && patterns.size > 0) { - // Use patternProperties for looseRecord with regex patterns - const valueSchema = process$1(def.valueType, ctx, { - ...params, - path: [...params.path, "patternProperties", "*"], - }); - json.patternProperties = {}; - for (const pattern of patterns) { - json.patternProperties[pattern.source] = valueSchema; - } - } - else { - // Default behavior: use propertyNames + additionalProperties - if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") { - json.propertyNames = process$1(def.keyType, ctx, { - ...params, - path: [...params.path, "propertyNames"], - }); - } - json.additionalProperties = process$1(def.valueType, ctx, { - ...params, - path: [...params.path, "additionalProperties"], - }); - } - // Add required for keys with discrete values (enum, literal, etc.) - const keyValues = keyType._zod.values; - if (keyValues) { - const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); - if (validKeyValues.length > 0) { - json.required = validKeyValues; - } - } -}; -const nullableProcessor = (schema, ctx, json, params) => { - const def = schema._zod.def; - const inner = process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - if (ctx.target === "openapi-3.0") { - seen.ref = def.innerType; - json.nullable = true; - } - else { - json.anyOf = [inner, { type: "null" }]; - } -}; -const nonoptionalProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; -}; -const defaultProcessor = (schema, ctx, json, params) => { - const def = schema._zod.def; - process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - json.default = JSON.parse(JSON.stringify(def.defaultValue)); -}; -const prefaultProcessor = (schema, ctx, json, params) => { - const def = schema._zod.def; - process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - if (ctx.io === "input") - json._prefault = JSON.parse(JSON.stringify(def.defaultValue)); -}; -const catchProcessor = (schema, ctx, json, params) => { - const def = schema._zod.def; - process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - let catchValue; - try { - catchValue = def.catchValue(undefined); - } - catch { - throw new Error("Dynamic catch values are not supported in JSON Schema"); - } - json.default = catchValue; -}; -const pipeProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - const innerType = ctx.io === "input" ? (def.in._zod.def.type === "transform" ? def.out : def.in) : def.out; - process$1(innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = innerType; -}; -const readonlyProcessor = (schema, ctx, json, params) => { - const def = schema._zod.def; - process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - json.readOnly = true; -}; -const promiseProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; -}; -const optionalProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - process$1(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; -}; -const lazyProcessor = (schema, ctx, _json, params) => { - const innerType = schema._zod.innerType; - process$1(innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = innerType; -}; -// ==================== ALL PROCESSORS ==================== -const allProcessors = { - string: stringProcessor, - number: numberProcessor, - boolean: booleanProcessor, - bigint: bigintProcessor, - symbol: symbolProcessor, - null: nullProcessor, - undefined: undefinedProcessor, - void: voidProcessor, - never: neverProcessor, - any: anyProcessor, - unknown: unknownProcessor, - date: dateProcessor, - enum: enumProcessor, - literal: literalProcessor, - nan: nanProcessor, - template_literal: templateLiteralProcessor, - file: fileProcessor, - success: successProcessor, - custom: customProcessor, - function: functionProcessor, - transform: transformProcessor, - map: mapProcessor, - set: setProcessor, - array: arrayProcessor, - object: objectProcessor, - union: unionProcessor, - intersection: intersectionProcessor, - tuple: tupleProcessor, - record: recordProcessor, - nullable: nullableProcessor, - nonoptional: nonoptionalProcessor, - default: defaultProcessor, - prefault: prefaultProcessor, - catch: catchProcessor, - pipe: pipeProcessor, - readonly: readonlyProcessor, - promise: promiseProcessor, - optional: optionalProcessor, - lazy: lazyProcessor, -}; -function toJSONSchema(input, params) { - if ("_idmap" in input) { - // Registry case - const registry = input; - const ctx = initializeContext({ ...params, processors: allProcessors }); - const defs = {}; - // First pass: process all schemas to build the seen map - for (const entry of registry._idmap.entries()) { - const [_, schema] = entry; - process$1(schema, ctx); - } - const schemas = {}; - const external = { - registry, - uri: params?.uri, - defs, - }; - // Update the context with external configuration - ctx.external = external; - // Second pass: emit each schema - for (const entry of registry._idmap.entries()) { - const [key, schema] = entry; - extractDefs(ctx, schema); - schemas[key] = finalize(ctx, schema); - } - if (Object.keys(defs).length > 0) { - const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; - schemas.__shared = { - [defsSegment]: defs, - }; - } - return { schemas }; - } - // Single schema case - const ctx = initializeContext({ ...params, processors: allProcessors }); - process$1(input, ctx); - extractDefs(ctx, input); - return finalize(ctx, input); -} - -/** - * Legacy class-based interface for JSON Schema generation. - * This class wraps the new functional implementation to provide backward compatibility. - * - * @deprecated Use the `toJSONSchema` function instead for new code. - * - * @example - * ```typescript - * // Legacy usage (still supported) - * const gen = new JSONSchemaGenerator({ target: "draft-07" }); - * gen.process(schema); - * const result = gen.emit(schema); - * - * // Preferred modern usage - * const result = toJSONSchema(schema, { target: "draft-07" }); - * ``` - */ -class JSONSchemaGenerator { - /** @deprecated Access via ctx instead */ - get metadataRegistry() { - return this.ctx.metadataRegistry; - } - /** @deprecated Access via ctx instead */ - get target() { - return this.ctx.target; - } - /** @deprecated Access via ctx instead */ - get unrepresentable() { - return this.ctx.unrepresentable; - } - /** @deprecated Access via ctx instead */ - get override() { - return this.ctx.override; - } - /** @deprecated Access via ctx instead */ - get io() { - return this.ctx.io; - } - /** @deprecated Access via ctx instead */ - get counter() { - return this.ctx.counter; - } - set counter(value) { - this.ctx.counter = value; - } - /** @deprecated Access via ctx instead */ - get seen() { - return this.ctx.seen; - } - constructor(params) { - // Normalize target for internal context - let normalizedTarget = params?.target ?? "draft-2020-12"; - if (normalizedTarget === "draft-4") - normalizedTarget = "draft-04"; - if (normalizedTarget === "draft-7") - normalizedTarget = "draft-07"; - this.ctx = initializeContext({ - processors: allProcessors, - target: normalizedTarget, - ...(params?.metadata && { metadata: params.metadata }), - ...(params?.unrepresentable && { unrepresentable: params.unrepresentable }), - ...(params?.override && { override: params.override }), - ...(params?.io && { io: params.io }), - }); - } - /** - * Process a schema to prepare it for JSON Schema generation. - * This must be called before emit(). - */ - process(schema, _params = { path: [], schemaPath: [] }) { - return process$1(schema, this.ctx, _params); - } - /** - * Emit the final JSON Schema after processing. - * Must call process() first. - */ - emit(schema, _params) { - // Apply emit params to the context - if (_params) { - if (_params.cycles) - this.ctx.cycles = _params.cycles; - if (_params.reused) - this.ctx.reused = _params.reused; - if (_params.external) - this.ctx.external = _params.external; - } - extractDefs(this.ctx, schema); - const result = finalize(this.ctx, schema); - // Strip ~standard property to match old implementation's return type - const { "~standard": _, ...plainResult } = result; - return plainResult; - } -} - -var jsonSchema = /*#__PURE__*/Object.freeze({ - __proto__: null -}); - -var index = /*#__PURE__*/Object.freeze({ - __proto__: null, - $ZodAny: $ZodAny, - $ZodArray: $ZodArray, - $ZodAsyncError: $ZodAsyncError, - $ZodBase64: $ZodBase64, - $ZodBase64URL: $ZodBase64URL, - $ZodBigInt: $ZodBigInt, - $ZodBigIntFormat: $ZodBigIntFormat, - $ZodBoolean: $ZodBoolean, - $ZodCIDRv4: $ZodCIDRv4, - $ZodCIDRv6: $ZodCIDRv6, - $ZodCUID: $ZodCUID, - $ZodCUID2: $ZodCUID2, - $ZodCatch: $ZodCatch, - $ZodCheck: $ZodCheck, - $ZodCheckBigIntFormat: $ZodCheckBigIntFormat, - $ZodCheckEndsWith: $ZodCheckEndsWith, - $ZodCheckGreaterThan: $ZodCheckGreaterThan, - $ZodCheckIncludes: $ZodCheckIncludes, - $ZodCheckLengthEquals: $ZodCheckLengthEquals, - $ZodCheckLessThan: $ZodCheckLessThan, - $ZodCheckLowerCase: $ZodCheckLowerCase, - $ZodCheckMaxLength: $ZodCheckMaxLength, - $ZodCheckMaxSize: $ZodCheckMaxSize, - $ZodCheckMimeType: $ZodCheckMimeType, - $ZodCheckMinLength: $ZodCheckMinLength, - $ZodCheckMinSize: $ZodCheckMinSize, - $ZodCheckMultipleOf: $ZodCheckMultipleOf, - $ZodCheckNumberFormat: $ZodCheckNumberFormat, - $ZodCheckOverwrite: $ZodCheckOverwrite, - $ZodCheckProperty: $ZodCheckProperty, - $ZodCheckRegex: $ZodCheckRegex, - $ZodCheckSizeEquals: $ZodCheckSizeEquals, - $ZodCheckStartsWith: $ZodCheckStartsWith, - $ZodCheckStringFormat: $ZodCheckStringFormat, - $ZodCheckUpperCase: $ZodCheckUpperCase, - $ZodCodec: $ZodCodec, - $ZodCustom: $ZodCustom, - $ZodCustomStringFormat: $ZodCustomStringFormat, - $ZodDate: $ZodDate, - $ZodDefault: $ZodDefault, - $ZodDiscriminatedUnion: $ZodDiscriminatedUnion, - $ZodE164: $ZodE164, - $ZodEmail: $ZodEmail, - $ZodEmoji: $ZodEmoji, - $ZodEncodeError: $ZodEncodeError, - $ZodEnum: $ZodEnum, - $ZodError: $ZodError, - $ZodExactOptional: $ZodExactOptional, - $ZodFile: $ZodFile, - $ZodFunction: $ZodFunction, - $ZodGUID: $ZodGUID, - $ZodIPv4: $ZodIPv4, - $ZodIPv6: $ZodIPv6, - $ZodISODate: $ZodISODate, - $ZodISODateTime: $ZodISODateTime, - $ZodISODuration: $ZodISODuration, - $ZodISOTime: $ZodISOTime, - $ZodIntersection: $ZodIntersection, - $ZodJWT: $ZodJWT, - $ZodKSUID: $ZodKSUID, - $ZodLazy: $ZodLazy, - $ZodLiteral: $ZodLiteral, - $ZodMAC: $ZodMAC, - $ZodMap: $ZodMap, - $ZodNaN: $ZodNaN, - $ZodNanoID: $ZodNanoID, - $ZodNever: $ZodNever, - $ZodNonOptional: $ZodNonOptional, - $ZodNull: $ZodNull, - $ZodNullable: $ZodNullable, - $ZodNumber: $ZodNumber, - $ZodNumberFormat: $ZodNumberFormat, - $ZodObject: $ZodObject, - $ZodObjectJIT: $ZodObjectJIT, - $ZodOptional: $ZodOptional, - $ZodPipe: $ZodPipe, - $ZodPrefault: $ZodPrefault, - $ZodPromise: $ZodPromise, - $ZodReadonly: $ZodReadonly, - $ZodRealError: $ZodRealError, - $ZodRecord: $ZodRecord, - $ZodRegistry: $ZodRegistry, - $ZodSet: $ZodSet, - $ZodString: $ZodString, - $ZodStringFormat: $ZodStringFormat, - $ZodSuccess: $ZodSuccess, - $ZodSymbol: $ZodSymbol, - $ZodTemplateLiteral: $ZodTemplateLiteral, - $ZodTransform: $ZodTransform, - $ZodTuple: $ZodTuple, - $ZodType: $ZodType, - $ZodULID: $ZodULID, - $ZodURL: $ZodURL, - $ZodUUID: $ZodUUID, - $ZodUndefined: $ZodUndefined, - $ZodUnion: $ZodUnion, - $ZodUnknown: $ZodUnknown, - $ZodVoid: $ZodVoid, - $ZodXID: $ZodXID, - $ZodXor: $ZodXor, - $brand: $brand, - $constructor: $constructor, - $input: $input, - $output: $output, - Doc: Doc, - JSONSchema: jsonSchema, - JSONSchemaGenerator: JSONSchemaGenerator, - NEVER: NEVER, - TimePrecision: TimePrecision, - _any: _any, - _array: _array, - _base64: _base64, - _base64url: _base64url, - _bigint: _bigint, - _boolean: _boolean, - _catch: _catch$1, - _check: _check, - _cidrv4: _cidrv4, - _cidrv6: _cidrv6, - _coercedBigint: _coercedBigint, - _coercedBoolean: _coercedBoolean, - _coercedDate: _coercedDate, - _coercedNumber: _coercedNumber, - _coercedString: _coercedString, - _cuid: _cuid, - _cuid2: _cuid2, - _custom: _custom, - _date: _date, - _decode: _decode, - _decodeAsync: _decodeAsync, - _default: _default$1, - _discriminatedUnion: _discriminatedUnion, - _e164: _e164, - _email: _email, - _emoji: _emoji, - _encode: _encode, - _encodeAsync: _encodeAsync, - _endsWith: _endsWith, - _enum: _enum$1, - _file: _file, - _float32: _float32, - _float64: _float64, - _gt: _gt, - _gte: _gte, - _guid: _guid, - _includes: _includes, - _int: _int, - _int32: _int32, - _int64: _int64, - _intersection: _intersection, - _ipv4: _ipv4, - _ipv6: _ipv6, - _isoDate: _isoDate, - _isoDateTime: _isoDateTime, - _isoDuration: _isoDuration, - _isoTime: _isoTime, - _jwt: _jwt, - _ksuid: _ksuid, - _lazy: _lazy, - _length: _length, - _literal: _literal, - _lowercase: _lowercase, - _lt: _lt, - _lte: _lte, - _mac: _mac, - _map: _map, - _max: _lte, - _maxLength: _maxLength, - _maxSize: _maxSize, - _mime: _mime, - _min: _gte, - _minLength: _minLength, - _minSize: _minSize, - _multipleOf: _multipleOf, - _nan: _nan, - _nanoid: _nanoid, - _nativeEnum: _nativeEnum, - _negative: _negative, - _never: _never, - _nonnegative: _nonnegative, - _nonoptional: _nonoptional, - _nonpositive: _nonpositive, - _normalize: _normalize, - _null: _null$1, - _nullable: _nullable, - _number: _number, - _optional: _optional, - _overwrite: _overwrite, - _parse: _parse, - _parseAsync: _parseAsync, - _pipe: _pipe, - _positive: _positive, - _promise: _promise, - _property: _property, - _readonly: _readonly, - _record: _record, - _refine: _refine, - _regex: _regex, - _safeDecode: _safeDecode, - _safeDecodeAsync: _safeDecodeAsync, - _safeEncode: _safeEncode, - _safeEncodeAsync: _safeEncodeAsync, - _safeParse: _safeParse, - _safeParseAsync: _safeParseAsync, - _set: _set, - _size: _size, - _slugify: _slugify, - _startsWith: _startsWith, - _string: _string, - _stringFormat: _stringFormat, - _stringbool: _stringbool, - _success: _success, - _superRefine: _superRefine, - _symbol: _symbol, - _templateLiteral: _templateLiteral, - _toLowerCase: _toLowerCase, - _toUpperCase: _toUpperCase, - _transform: _transform, - _trim: _trim, - _tuple: _tuple, - _uint32: _uint32, - _uint64: _uint64, - _ulid: _ulid, - _undefined: _undefined$1, - _union: _union, - _unknown: _unknown, - _uppercase: _uppercase, - _url: _url, - _uuid: _uuid, - _uuidv4: _uuidv4, - _uuidv6: _uuidv6, - _uuidv7: _uuidv7, - _void: _void$1, - _xid: _xid, - _xor: _xor, - clone: clone, - config: config$1, - createStandardJSONSchemaMethod: createStandardJSONSchemaMethod, - createToJSONSchemaMethod: createToJSONSchemaMethod, - decode: decode$2, - decodeAsync: decodeAsync$1, - describe: describe$1, - encode: encode$3, - encodeAsync: encodeAsync$1, - extractDefs: extractDefs, - finalize: finalize, - flattenError: flattenError, - formatError: formatError, - globalConfig: globalConfig, - globalRegistry: globalRegistry, - initializeContext: initializeContext, - isValidBase64: isValidBase64, - isValidBase64URL: isValidBase64URL, - isValidJWT: isValidJWT, - locales: index$1, - meta: meta$1, - parse: parse$2, - parseAsync: parseAsync$1, - prettifyError: prettifyError, - process: process$1, - regexes: regexes, - registry: registry, - safeDecode: safeDecode$1, - safeDecodeAsync: safeDecodeAsync$1, - safeEncode: safeEncode$1, - safeEncodeAsync: safeEncodeAsync$1, - safeParse: safeParse$1, - safeParseAsync: safeParseAsync$1, - toDotPath: toDotPath, - toJSONSchema: toJSONSchema, - treeifyError: treeifyError, - util: util, - version: version -}); - -var _checks = /*#__PURE__*/Object.freeze({ - __proto__: null, - endsWith: _endsWith, - gt: _gt, - gte: _gte, - includes: _includes, - length: _length, - lowercase: _lowercase, - lt: _lt, - lte: _lte, - maxLength: _maxLength, - maxSize: _maxSize, - mime: _mime, - minLength: _minLength, - minSize: _minSize, - multipleOf: _multipleOf, - negative: _negative, - nonnegative: _nonnegative, - nonpositive: _nonpositive, - normalize: _normalize, - overwrite: _overwrite, - positive: _positive, - property: _property, - regex: _regex, - size: _size, - slugify: _slugify, - startsWith: _startsWith, - toLowerCase: _toLowerCase, - toUpperCase: _toUpperCase, - trim: _trim, - uppercase: _uppercase -}); - -const ZodISODateTime = /*@__PURE__*/ $constructor("ZodISODateTime", (inst, def) => { - $ZodISODateTime.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function datetime(params) { - return _isoDateTime(ZodISODateTime, params); -} -const ZodISODate = /*@__PURE__*/ $constructor("ZodISODate", (inst, def) => { - $ZodISODate.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function date$2(params) { - return _isoDate(ZodISODate, params); -} -const ZodISOTime = /*@__PURE__*/ $constructor("ZodISOTime", (inst, def) => { - $ZodISOTime.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function time(params) { - return _isoTime(ZodISOTime, params); -} -const ZodISODuration = /*@__PURE__*/ $constructor("ZodISODuration", (inst, def) => { - $ZodISODuration.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function duration(params) { - return _isoDuration(ZodISODuration, params); -} - -var _iso = /*#__PURE__*/Object.freeze({ - __proto__: null, - ZodISODate: ZodISODate, - ZodISODateTime: ZodISODateTime, - ZodISODuration: ZodISODuration, - ZodISOTime: ZodISOTime, - date: date$2, - datetime: datetime, - duration: duration, - time: time -}); - -const initializer = (inst, issues) => { - $ZodError.init(inst, issues); - inst.name = "ZodError"; - Object.defineProperties(inst, { - format: { - value: (mapper) => formatError(inst, mapper), - // enumerable: false, - }, - flatten: { - value: (mapper) => flattenError(inst, mapper), - // enumerable: false, - }, - addIssue: { - value: (issue) => { - inst.issues.push(issue); - inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); - }, - // enumerable: false, - }, - addIssues: { - value: (issues) => { - inst.issues.push(...issues); - inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); - }, - // enumerable: false, - }, - isEmpty: { - get() { - return inst.issues.length === 0; - }, - // enumerable: false, - }, - }); - // Object.defineProperty(inst, "isEmpty", { - // get() { - // return inst.issues.length === 0; - // }, - // }); -}; -const ZodError = $constructor("ZodError", initializer); -const ZodRealError = $constructor("ZodError", initializer, { - Parent: Error, -}); -// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */ -// export type ErrorMapCtx = core.$ZodErrorMapCtx; - -const parse$1 = /* @__PURE__ */ _parse(ZodRealError); -const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError); -const safeParse = /* @__PURE__ */ _safeParse(ZodRealError); -const safeParseAsync = /* @__PURE__ */ _safeParseAsync(ZodRealError); -// Codec functions -const encode$2 = /* @__PURE__ */ _encode(ZodRealError); -const decode$1 = /* @__PURE__ */ _decode(ZodRealError); -const encodeAsync = /* @__PURE__ */ _encodeAsync(ZodRealError); -const decodeAsync = /* @__PURE__ */ _decodeAsync(ZodRealError); -const safeEncode = /* @__PURE__ */ _safeEncode(ZodRealError); -const safeDecode = /* @__PURE__ */ _safeDecode(ZodRealError); -const safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError); -const safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError); - -const ZodType = /*@__PURE__*/ $constructor("ZodType", (inst, def) => { - $ZodType.init(inst, def); - Object.assign(inst["~standard"], { - jsonSchema: { - input: createStandardJSONSchemaMethod(inst, "input"), - output: createStandardJSONSchemaMethod(inst, "output"), - }, - }); - inst.toJSONSchema = createToJSONSchemaMethod(inst, {}); - inst.def = def; - inst.type = def.type; - Object.defineProperty(inst, "_def", { value: def }); - // base methods - inst.check = (...checks) => { - return inst.clone(mergeDefs(def, { - checks: [ - ...(def.checks ?? []), - ...checks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch), - ], - }), { - parent: true, - }); - }; - inst.with = inst.check; - inst.clone = (def, params) => clone(inst, def, params); - inst.brand = () => inst; - inst.register = ((reg, meta) => { - reg.add(inst, meta); - return inst; - }); - // parsing - inst.parse = (data, params) => parse$1(inst, data, params, { callee: inst.parse }); - inst.safeParse = (data, params) => safeParse(inst, data, params); - inst.parseAsync = async (data, params) => parseAsync(inst, data, params, { callee: inst.parseAsync }); - inst.safeParseAsync = async (data, params) => safeParseAsync(inst, data, params); - inst.spa = inst.safeParseAsync; - // encoding/decoding - inst.encode = (data, params) => encode$2(inst, data, params); - inst.decode = (data, params) => decode$1(inst, data, params); - inst.encodeAsync = async (data, params) => encodeAsync(inst, data, params); - inst.decodeAsync = async (data, params) => decodeAsync(inst, data, params); - inst.safeEncode = (data, params) => safeEncode(inst, data, params); - inst.safeDecode = (data, params) => safeDecode(inst, data, params); - inst.safeEncodeAsync = async (data, params) => safeEncodeAsync(inst, data, params); - inst.safeDecodeAsync = async (data, params) => safeDecodeAsync(inst, data, params); - // refinements - inst.refine = (check, params) => inst.check(refine(check, params)); - inst.superRefine = (refinement) => inst.check(superRefine(refinement)); - inst.overwrite = (fn) => inst.check(_overwrite(fn)); - // wrappers - inst.optional = () => optional(inst); - inst.exactOptional = () => exactOptional(inst); - inst.nullable = () => nullable(inst); - inst.nullish = () => optional(nullable(inst)); - inst.nonoptional = (params) => nonoptional(inst, params); - inst.array = () => array(inst); - inst.or = (arg) => union([inst, arg]); - inst.and = (arg) => intersection(inst, arg); - inst.transform = (tx) => pipe(inst, transform$1(tx)); - inst.default = (def) => _default(inst, def); - inst.prefault = (def) => prefault(inst, def); - // inst.coalesce = (def, params) => coalesce(inst, def, params); - inst.catch = (params) => _catch(inst, params); - inst.pipe = (target) => pipe(inst, target); - inst.readonly = () => readonly(inst); - // meta - inst.describe = (description) => { - const cl = inst.clone(); - globalRegistry.add(cl, { description }); - return cl; - }; - Object.defineProperty(inst, "description", { - get() { - return globalRegistry.get(inst)?.description; - }, - configurable: true, - }); - inst.meta = (...args) => { - if (args.length === 0) { - return globalRegistry.get(inst); - } - const cl = inst.clone(); - globalRegistry.add(cl, args[0]); - return cl; - }; - // helpers - inst.isOptional = () => inst.safeParse(undefined).success; - inst.isNullable = () => inst.safeParse(null).success; - inst.apply = (fn) => fn(inst); - return inst; -}); -/** @internal */ -const _ZodString = /*@__PURE__*/ $constructor("_ZodString", (inst, def) => { - $ZodString.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => stringProcessor(inst, ctx, json); - const bag = inst._zod.bag; - inst.format = bag.format ?? null; - inst.minLength = bag.minimum ?? null; - inst.maxLength = bag.maximum ?? null; - // validations - inst.regex = (...args) => inst.check(_regex(...args)); - inst.includes = (...args) => inst.check(_includes(...args)); - inst.startsWith = (...args) => inst.check(_startsWith(...args)); - inst.endsWith = (...args) => inst.check(_endsWith(...args)); - inst.min = (...args) => inst.check(_minLength(...args)); - inst.max = (...args) => inst.check(_maxLength(...args)); - inst.length = (...args) => inst.check(_length(...args)); - inst.nonempty = (...args) => inst.check(_minLength(1, ...args)); - inst.lowercase = (params) => inst.check(_lowercase(params)); - inst.uppercase = (params) => inst.check(_uppercase(params)); - // transforms - inst.trim = () => inst.check(_trim()); - inst.normalize = (...args) => inst.check(_normalize(...args)); - inst.toLowerCase = () => inst.check(_toLowerCase()); - inst.toUpperCase = () => inst.check(_toUpperCase()); - inst.slugify = () => inst.check(_slugify()); -}); -const ZodString = /*@__PURE__*/ $constructor("ZodString", (inst, def) => { - $ZodString.init(inst, def); - _ZodString.init(inst, def); - inst.email = (params) => inst.check(_email(ZodEmail, params)); - inst.url = (params) => inst.check(_url(ZodURL, params)); - inst.jwt = (params) => inst.check(_jwt(ZodJWT, params)); - inst.emoji = (params) => inst.check(_emoji(ZodEmoji, params)); - inst.guid = (params) => inst.check(_guid(ZodGUID, params)); - inst.uuid = (params) => inst.check(_uuid(ZodUUID, params)); - inst.uuidv4 = (params) => inst.check(_uuidv4(ZodUUID, params)); - inst.uuidv6 = (params) => inst.check(_uuidv6(ZodUUID, params)); - inst.uuidv7 = (params) => inst.check(_uuidv7(ZodUUID, params)); - inst.nanoid = (params) => inst.check(_nanoid(ZodNanoID, params)); - inst.guid = (params) => inst.check(_guid(ZodGUID, params)); - inst.cuid = (params) => inst.check(_cuid(ZodCUID, params)); - inst.cuid2 = (params) => inst.check(_cuid2(ZodCUID2, params)); - inst.ulid = (params) => inst.check(_ulid(ZodULID, params)); - inst.base64 = (params) => inst.check(_base64(ZodBase64, params)); - inst.base64url = (params) => inst.check(_base64url(ZodBase64URL, params)); - inst.xid = (params) => inst.check(_xid(ZodXID, params)); - inst.ksuid = (params) => inst.check(_ksuid(ZodKSUID, params)); - inst.ipv4 = (params) => inst.check(_ipv4(ZodIPv4, params)); - inst.ipv6 = (params) => inst.check(_ipv6(ZodIPv6, params)); - inst.cidrv4 = (params) => inst.check(_cidrv4(ZodCIDRv4, params)); - inst.cidrv6 = (params) => inst.check(_cidrv6(ZodCIDRv6, params)); - inst.e164 = (params) => inst.check(_e164(ZodE164, params)); - // iso - inst.datetime = (params) => inst.check(datetime(params)); - inst.date = (params) => inst.check(date$2(params)); - inst.time = (params) => inst.check(time(params)); - inst.duration = (params) => inst.check(duration(params)); -}); -function string$1(params) { - return _string(ZodString, params); -} -const ZodStringFormat = /*@__PURE__*/ $constructor("ZodStringFormat", (inst, def) => { - $ZodStringFormat.init(inst, def); - _ZodString.init(inst, def); -}); -const ZodEmail = /*@__PURE__*/ $constructor("ZodEmail", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodEmail.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function email(params) { - return _email(ZodEmail, params); -} -const ZodGUID = /*@__PURE__*/ $constructor("ZodGUID", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodGUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function guid(params) { - return _guid(ZodGUID, params); -} -const ZodUUID = /*@__PURE__*/ $constructor("ZodUUID", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodUUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function uuid(params) { - return _uuid(ZodUUID, params); -} -function uuidv4(params) { - return _uuidv4(ZodUUID, params); -} -// ZodUUIDv6 -function uuidv6(params) { - return _uuidv6(ZodUUID, params); -} -// ZodUUIDv7 -function uuidv7(params) { - return _uuidv7(ZodUUID, params); -} -const ZodURL = /*@__PURE__*/ $constructor("ZodURL", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodURL.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function url(params) { - return _url(ZodURL, params); -} -function httpUrl(params) { - return _url(ZodURL, { - protocol: /^https?$/, - hostname: domain, - ...normalizeParams(params), - }); -} -const ZodEmoji = /*@__PURE__*/ $constructor("ZodEmoji", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodEmoji.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function emoji(params) { - return _emoji(ZodEmoji, params); -} -const ZodNanoID = /*@__PURE__*/ $constructor("ZodNanoID", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodNanoID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function nanoid(params) { - return _nanoid(ZodNanoID, params); -} -const ZodCUID = /*@__PURE__*/ $constructor("ZodCUID", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodCUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cuid(params) { - return _cuid(ZodCUID, params); -} -const ZodCUID2 = /*@__PURE__*/ $constructor("ZodCUID2", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodCUID2.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cuid2(params) { - return _cuid2(ZodCUID2, params); -} -const ZodULID = /*@__PURE__*/ $constructor("ZodULID", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodULID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ulid(params) { - return _ulid(ZodULID, params); -} -const ZodXID = /*@__PURE__*/ $constructor("ZodXID", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodXID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function xid(params) { - return _xid(ZodXID, params); -} -const ZodKSUID = /*@__PURE__*/ $constructor("ZodKSUID", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodKSUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ksuid(params) { - return _ksuid(ZodKSUID, params); -} -const ZodIPv4 = /*@__PURE__*/ $constructor("ZodIPv4", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodIPv4.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ipv4(params) { - return _ipv4(ZodIPv4, params); -} -const ZodMAC = /*@__PURE__*/ $constructor("ZodMAC", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodMAC.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function mac(params) { - return _mac(ZodMAC, params); -} -const ZodIPv6 = /*@__PURE__*/ $constructor("ZodIPv6", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodIPv6.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ipv6(params) { - return _ipv6(ZodIPv6, params); -} -const ZodCIDRv4 = /*@__PURE__*/ $constructor("ZodCIDRv4", (inst, def) => { - $ZodCIDRv4.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cidrv4(params) { - return _cidrv4(ZodCIDRv4, params); -} -const ZodCIDRv6 = /*@__PURE__*/ $constructor("ZodCIDRv6", (inst, def) => { - $ZodCIDRv6.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cidrv6(params) { - return _cidrv6(ZodCIDRv6, params); -} -const ZodBase64 = /*@__PURE__*/ $constructor("ZodBase64", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodBase64.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function base64$1(params) { - return _base64(ZodBase64, params); -} -const ZodBase64URL = /*@__PURE__*/ $constructor("ZodBase64URL", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodBase64URL.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function base64url(params) { - return _base64url(ZodBase64URL, params); -} -const ZodE164 = /*@__PURE__*/ $constructor("ZodE164", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodE164.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function e164(params) { - return _e164(ZodE164, params); -} -const ZodJWT = /*@__PURE__*/ $constructor("ZodJWT", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodJWT.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function jwt(params) { - return _jwt(ZodJWT, params); -} -const ZodCustomStringFormat = /*@__PURE__*/ $constructor("ZodCustomStringFormat", (inst, def) => { - // ZodStringFormat.init(inst, def); - $ZodCustomStringFormat.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function stringFormat(format, fnOrRegex, _params = {}) { - return _stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params); -} -function hostname(_params) { - return _stringFormat(ZodCustomStringFormat, "hostname", hostname$1, _params); -} -function hex$1(_params) { - return _stringFormat(ZodCustomStringFormat, "hex", hex$2, _params); -} -function hash(alg, params) { - const enc = params?.enc ?? "hex"; - const format = `${alg}_${enc}`; - const regex = regexes[format]; - if (!regex) - throw new Error(`Unrecognized hash format: ${format}`); - return _stringFormat(ZodCustomStringFormat, format, regex, params); -} -const ZodNumber = /*@__PURE__*/ $constructor("ZodNumber", (inst, def) => { - $ZodNumber.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => numberProcessor(inst, ctx, json); - inst.gt = (value, params) => inst.check(_gt(value, params)); - inst.gte = (value, params) => inst.check(_gte(value, params)); - inst.min = (value, params) => inst.check(_gte(value, params)); - inst.lt = (value, params) => inst.check(_lt(value, params)); - inst.lte = (value, params) => inst.check(_lte(value, params)); - inst.max = (value, params) => inst.check(_lte(value, params)); - inst.int = (params) => inst.check(int(params)); - inst.safe = (params) => inst.check(int(params)); - inst.positive = (params) => inst.check(_gt(0, params)); - inst.nonnegative = (params) => inst.check(_gte(0, params)); - inst.negative = (params) => inst.check(_lt(0, params)); - inst.nonpositive = (params) => inst.check(_lte(0, params)); - inst.multipleOf = (value, params) => inst.check(_multipleOf(value, params)); - inst.step = (value, params) => inst.check(_multipleOf(value, params)); - // inst.finite = (params) => inst.check(core.finite(params)); - inst.finite = () => inst; - const bag = inst._zod.bag; - inst.minValue = - Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null; - inst.maxValue = - Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null; - inst.isInt = (bag.format ?? "").includes("int") || Number.isSafeInteger(bag.multipleOf ?? 0.5); - inst.isFinite = true; - inst.format = bag.format ?? null; -}); -function number$1(params) { - return _number(ZodNumber, params); -} -const ZodNumberFormat = /*@__PURE__*/ $constructor("ZodNumberFormat", (inst, def) => { - $ZodNumberFormat.init(inst, def); - ZodNumber.init(inst, def); -}); -function int(params) { - return _int(ZodNumberFormat, params); -} -function float32(params) { - return _float32(ZodNumberFormat, params); -} -function float64(params) { - return _float64(ZodNumberFormat, params); -} -function int32(params) { - return _int32(ZodNumberFormat, params); -} -function uint32(params) { - return _uint32(ZodNumberFormat, params); -} -const ZodBoolean = /*@__PURE__*/ $constructor("ZodBoolean", (inst, def) => { - $ZodBoolean.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => booleanProcessor(inst, ctx, json); -}); -function boolean$1(params) { - return _boolean(ZodBoolean, params); -} -const ZodBigInt = /*@__PURE__*/ $constructor("ZodBigInt", (inst, def) => { - $ZodBigInt.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => bigintProcessor(inst, ctx); - inst.gte = (value, params) => inst.check(_gte(value, params)); - inst.min = (value, params) => inst.check(_gte(value, params)); - inst.gt = (value, params) => inst.check(_gt(value, params)); - inst.gte = (value, params) => inst.check(_gte(value, params)); - inst.min = (value, params) => inst.check(_gte(value, params)); - inst.lt = (value, params) => inst.check(_lt(value, params)); - inst.lte = (value, params) => inst.check(_lte(value, params)); - inst.max = (value, params) => inst.check(_lte(value, params)); - inst.positive = (params) => inst.check(_gt(BigInt(0), params)); - inst.negative = (params) => inst.check(_lt(BigInt(0), params)); - inst.nonpositive = (params) => inst.check(_lte(BigInt(0), params)); - inst.nonnegative = (params) => inst.check(_gte(BigInt(0), params)); - inst.multipleOf = (value, params) => inst.check(_multipleOf(value, params)); - const bag = inst._zod.bag; - inst.minValue = bag.minimum ?? null; - inst.maxValue = bag.maximum ?? null; - inst.format = bag.format ?? null; -}); -function bigint$1(params) { - return _bigint(ZodBigInt, params); -} -const ZodBigIntFormat = /*@__PURE__*/ $constructor("ZodBigIntFormat", (inst, def) => { - $ZodBigIntFormat.init(inst, def); - ZodBigInt.init(inst, def); -}); -// int64 -function int64(params) { - return _int64(ZodBigIntFormat, params); -} -// uint64 -function uint64(params) { - return _uint64(ZodBigIntFormat, params); -} -const ZodSymbol = /*@__PURE__*/ $constructor("ZodSymbol", (inst, def) => { - $ZodSymbol.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => symbolProcessor(inst, ctx); -}); -function symbol$1(params) { - return _symbol(ZodSymbol, params); -} -const ZodUndefined = /*@__PURE__*/ $constructor("ZodUndefined", (inst, def) => { - $ZodUndefined.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => undefinedProcessor(inst, ctx); -}); -function _undefined(params) { - return _undefined$1(ZodUndefined, params); -} -const ZodNull = /*@__PURE__*/ $constructor("ZodNull", (inst, def) => { - $ZodNull.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nullProcessor(inst, ctx, json); -}); -function _null(params) { - return _null$1(ZodNull, params); -} -const ZodAny = /*@__PURE__*/ $constructor("ZodAny", (inst, def) => { - $ZodAny.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => anyProcessor(); -}); -function any() { - return _any(ZodAny); -} -const ZodUnknown = /*@__PURE__*/ $constructor("ZodUnknown", (inst, def) => { - $ZodUnknown.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => unknownProcessor(); -}); -function unknown() { - return _unknown(ZodUnknown); -} -const ZodNever = /*@__PURE__*/ $constructor("ZodNever", (inst, def) => { - $ZodNever.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => neverProcessor(inst, ctx, json); -}); -function never(params) { - return _never(ZodNever, params); -} -const ZodVoid = /*@__PURE__*/ $constructor("ZodVoid", (inst, def) => { - $ZodVoid.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => voidProcessor(inst, ctx); -}); -function _void(params) { - return _void$1(ZodVoid, params); -} -const ZodDate = /*@__PURE__*/ $constructor("ZodDate", (inst, def) => { - $ZodDate.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => dateProcessor(inst, ctx); - inst.min = (value, params) => inst.check(_gte(value, params)); - inst.max = (value, params) => inst.check(_lte(value, params)); - const c = inst._zod.bag; - inst.minDate = c.minimum ? new Date(c.minimum) : null; - inst.maxDate = c.maximum ? new Date(c.maximum) : null; -}); -function date$1(params) { - return _date(ZodDate, params); -} -const ZodArray = /*@__PURE__*/ $constructor("ZodArray", (inst, def) => { - $ZodArray.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => arrayProcessor(inst, ctx, json, params); - inst.element = def.element; - inst.min = (minLength, params) => inst.check(_minLength(minLength, params)); - inst.nonempty = (params) => inst.check(_minLength(1, params)); - inst.max = (maxLength, params) => inst.check(_maxLength(maxLength, params)); - inst.length = (len, params) => inst.check(_length(len, params)); - inst.unwrap = () => inst.element; -}); -function array(element, params) { - return _array(ZodArray, element, params); -} -// .keyof -function keyof(schema) { - const shape = schema._zod.def.shape; - return _enum(Object.keys(shape)); -} -const ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => { - $ZodObjectJIT.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => objectProcessor(inst, ctx, json, params); - defineLazy(inst, "shape", () => { - return def.shape; - }); - inst.keyof = () => _enum(Object.keys(inst._zod.def.shape)); - inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall }); - inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() }); - inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() }); - inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() }); - inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined }); - inst.extend = (incoming) => { - return extend(inst, incoming); - }; - inst.safeExtend = (incoming) => { - return safeExtend(inst, incoming); - }; - inst.merge = (other) => merge(inst, other); - inst.pick = (mask) => pick(inst, mask); - inst.omit = (mask) => omit(inst, mask); - inst.partial = (...args) => partial(ZodOptional, inst, args[0]); - inst.required = (...args) => required(ZodNonOptional, inst, args[0]); -}); -function object(shape, params) { - const def = { - type: "object", - shape: shape ?? {}, - ...normalizeParams(params), - }; - return new ZodObject(def); -} -// strictObject -function strictObject(shape, params) { - return new ZodObject({ - type: "object", - shape, - catchall: never(), - ...normalizeParams(params), - }); -} -// looseObject -function looseObject(shape, params) { - return new ZodObject({ - type: "object", - shape, - catchall: unknown(), - ...normalizeParams(params), - }); -} -const ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => { - $ZodUnion.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params); - inst.options = def.options; -}); -function union(options, params) { - return new ZodUnion({ - type: "union", - options: options, - ...normalizeParams(params), - }); -} -const ZodXor = /*@__PURE__*/ $constructor("ZodXor", (inst, def) => { - ZodUnion.init(inst, def); - $ZodXor.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params); - inst.options = def.options; -}); -/** Creates an exclusive union (XOR) where exactly one option must match. - * Unlike regular unions that succeed when any option matches, xor fails if - * zero or more than one option matches the input. */ -function xor(options, params) { - return new ZodXor({ - type: "union", - options: options, - inclusive: false, - ...normalizeParams(params), - }); -} -const ZodDiscriminatedUnion = /*@__PURE__*/ $constructor("ZodDiscriminatedUnion", (inst, def) => { - ZodUnion.init(inst, def); - $ZodDiscriminatedUnion.init(inst, def); -}); -function discriminatedUnion(discriminator, options, params) { - // const [options, params] = args; - return new ZodDiscriminatedUnion({ - type: "union", - options, - discriminator, - ...normalizeParams(params), - }); -} -const ZodIntersection = /*@__PURE__*/ $constructor("ZodIntersection", (inst, def) => { - $ZodIntersection.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => intersectionProcessor(inst, ctx, json, params); -}); -function intersection(left, right) { - return new ZodIntersection({ - type: "intersection", - left: left, - right: right, - }); -} -const ZodTuple = /*@__PURE__*/ $constructor("ZodTuple", (inst, def) => { - $ZodTuple.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => tupleProcessor(inst, ctx, json, params); - inst.rest = (rest) => inst.clone({ - ...inst._zod.def, - rest: rest, - }); -}); -function tuple(items, _paramsOrRest, _params) { - const hasRest = _paramsOrRest instanceof $ZodType; - const params = hasRest ? _params : _paramsOrRest; - const rest = hasRest ? _paramsOrRest : null; - return new ZodTuple({ - type: "tuple", - items: items, - rest, - ...normalizeParams(params), - }); -} -const ZodRecord = /*@__PURE__*/ $constructor("ZodRecord", (inst, def) => { - $ZodRecord.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => recordProcessor(inst, ctx, json, params); - inst.keyType = def.keyType; - inst.valueType = def.valueType; -}); -function record(keyType, valueType, params) { - return new ZodRecord({ - type: "record", - keyType, - valueType: valueType, - ...normalizeParams(params), - }); -} -// type alksjf = core.output; -function partialRecord(keyType, valueType, params) { - const k = clone(keyType); - k._zod.values = undefined; - return new ZodRecord({ - type: "record", - keyType: k, - valueType: valueType, - ...normalizeParams(params), - }); -} -function looseRecord(keyType, valueType, params) { - return new ZodRecord({ - type: "record", - keyType, - valueType: valueType, - mode: "loose", - ...normalizeParams(params), - }); -} -const ZodMap = /*@__PURE__*/ $constructor("ZodMap", (inst, def) => { - $ZodMap.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => mapProcessor(inst, ctx); - inst.keyType = def.keyType; - inst.valueType = def.valueType; - inst.min = (...args) => inst.check(_minSize(...args)); - inst.nonempty = (params) => inst.check(_minSize(1, params)); - inst.max = (...args) => inst.check(_maxSize(...args)); - inst.size = (...args) => inst.check(_size(...args)); -}); -function map$1(keyType, valueType, params) { - return new ZodMap({ - type: "map", - keyType: keyType, - valueType: valueType, - ...normalizeParams(params), - }); -} -const ZodSet = /*@__PURE__*/ $constructor("ZodSet", (inst, def) => { - $ZodSet.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => setProcessor(inst, ctx); - inst.min = (...args) => inst.check(_minSize(...args)); - inst.nonempty = (params) => inst.check(_minSize(1, params)); - inst.max = (...args) => inst.check(_maxSize(...args)); - inst.size = (...args) => inst.check(_size(...args)); -}); -function set(valueType, params) { - return new ZodSet({ - type: "set", - valueType: valueType, - ...normalizeParams(params), - }); -} -const ZodEnum = /*@__PURE__*/ $constructor("ZodEnum", (inst, def) => { - $ZodEnum.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => enumProcessor(inst, ctx, json); - inst.enum = def.entries; - inst.options = Object.values(def.entries); - const keys = new Set(Object.keys(def.entries)); - inst.extract = (values, params) => { - const newEntries = {}; - for (const value of values) { - if (keys.has(value)) { - newEntries[value] = def.entries[value]; - } - else - throw new Error(`Key ${value} not found in enum`); - } - return new ZodEnum({ - ...def, - checks: [], - ...normalizeParams(params), - entries: newEntries, - }); - }; - inst.exclude = (values, params) => { - const newEntries = { ...def.entries }; - for (const value of values) { - if (keys.has(value)) { - delete newEntries[value]; - } - else - throw new Error(`Key ${value} not found in enum`); - } - return new ZodEnum({ - ...def, - checks: [], - ...normalizeParams(params), - entries: newEntries, - }); - }; -}); -function _enum(values, params) { - const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; - return new ZodEnum({ - type: "enum", - entries, - ...normalizeParams(params), - }); -} -/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead. - * - * ```ts - * enum Colors { red, green, blue } - * z.enum(Colors); - * ``` - */ -function nativeEnum(entries, params) { - return new ZodEnum({ - type: "enum", - entries, - ...normalizeParams(params), - }); -} -const ZodLiteral = /*@__PURE__*/ $constructor("ZodLiteral", (inst, def) => { - $ZodLiteral.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => literalProcessor(inst, ctx, json); - inst.values = new Set(def.values); - Object.defineProperty(inst, "value", { - get() { - if (def.values.length > 1) { - throw new Error("This schema contains multiple valid literal values. Use `.values` instead."); - } - return def.values[0]; - }, - }); -}); -function literal(value, params) { - return new ZodLiteral({ - type: "literal", - values: Array.isArray(value) ? value : [value], - ...normalizeParams(params), - }); -} -const ZodFile = /*@__PURE__*/ $constructor("ZodFile", (inst, def) => { - $ZodFile.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => fileProcessor(inst, ctx, json); - inst.min = (size, params) => inst.check(_minSize(size, params)); - inst.max = (size, params) => inst.check(_maxSize(size, params)); - inst.mime = (types, params) => inst.check(_mime(Array.isArray(types) ? types : [types], params)); -}); -function file(params) { - return _file(ZodFile, params); -} -const ZodTransform = /*@__PURE__*/ $constructor("ZodTransform", (inst, def) => { - $ZodTransform.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => transformProcessor(inst, ctx); - inst._zod.parse = (payload, _ctx) => { - if (_ctx.direction === "backward") { - throw new $ZodEncodeError(inst.constructor.name); - } - payload.addIssue = (issue$1) => { - if (typeof issue$1 === "string") { - payload.issues.push(issue(issue$1, payload.value, def)); - } - else { - // for Zod 3 backwards compatibility - const _issue = issue$1; - if (_issue.fatal) - _issue.continue = false; - _issue.code ?? (_issue.code = "custom"); - _issue.input ?? (_issue.input = payload.value); - _issue.inst ?? (_issue.inst = inst); - // _issue.continue ??= true; - payload.issues.push(issue(_issue)); - } - }; - const output = def.transform(payload.value, payload); - if (output instanceof Promise) { - return output.then((output) => { - payload.value = output; - return payload; - }); - } - payload.value = output; - return payload; - }; -}); -function transform$1(fn) { - return new ZodTransform({ - type: "transform", - transform: fn, - }); -} -const ZodOptional = /*@__PURE__*/ $constructor("ZodOptional", (inst, def) => { - $ZodOptional.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function optional(innerType) { - return new ZodOptional({ - type: "optional", - innerType: innerType, - }); -} -const ZodExactOptional = /*@__PURE__*/ $constructor("ZodExactOptional", (inst, def) => { - $ZodExactOptional.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function exactOptional(innerType) { - return new ZodExactOptional({ - type: "optional", - innerType: innerType, - }); -} -const ZodNullable = /*@__PURE__*/ $constructor("ZodNullable", (inst, def) => { - $ZodNullable.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nullableProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function nullable(innerType) { - return new ZodNullable({ - type: "nullable", - innerType: innerType, - }); -} -// nullish -function nullish(innerType) { - return optional(nullable(innerType)); -} -const ZodDefault = /*@__PURE__*/ $constructor("ZodDefault", (inst, def) => { - $ZodDefault.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => defaultProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; - inst.removeDefault = inst.unwrap; -}); -function _default(innerType, defaultValue) { - return new ZodDefault({ - type: "default", - innerType: innerType, - get defaultValue() { - return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); - }, - }); -} -const ZodPrefault = /*@__PURE__*/ $constructor("ZodPrefault", (inst, def) => { - $ZodPrefault.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => prefaultProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function prefault(innerType, defaultValue) { - return new ZodPrefault({ - type: "prefault", - innerType: innerType, - get defaultValue() { - return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); - }, - }); -} -const ZodNonOptional = /*@__PURE__*/ $constructor("ZodNonOptional", (inst, def) => { - $ZodNonOptional.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nonoptionalProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function nonoptional(innerType, params) { - return new ZodNonOptional({ - type: "nonoptional", - innerType: innerType, - ...normalizeParams(params), - }); -} -const ZodSuccess = /*@__PURE__*/ $constructor("ZodSuccess", (inst, def) => { - $ZodSuccess.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => successProcessor(inst, ctx, json); - inst.unwrap = () => inst._zod.def.innerType; -}); -function success(innerType) { - return new ZodSuccess({ - type: "success", - innerType: innerType, - }); -} -const ZodCatch = /*@__PURE__*/ $constructor("ZodCatch", (inst, def) => { - $ZodCatch.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => catchProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; - inst.removeCatch = inst.unwrap; -}); -function _catch(innerType, catchValue) { - return new ZodCatch({ - type: "catch", - innerType: innerType, - catchValue: (typeof catchValue === "function" ? catchValue : () => catchValue), - }); -} -const ZodNaN = /*@__PURE__*/ $constructor("ZodNaN", (inst, def) => { - $ZodNaN.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nanProcessor(inst, ctx); -}); -function nan(params) { - return _nan(ZodNaN, params); -} -const ZodPipe = /*@__PURE__*/ $constructor("ZodPipe", (inst, def) => { - $ZodPipe.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => pipeProcessor(inst, ctx, json, params); - inst.in = def.in; - inst.out = def.out; -}); -function pipe(in_, out) { - return new ZodPipe({ - type: "pipe", - in: in_, - out: out, - // ...util.normalizeParams(params), - }); -} -const ZodCodec = /*@__PURE__*/ $constructor("ZodCodec", (inst, def) => { - ZodPipe.init(inst, def); - $ZodCodec.init(inst, def); -}); -function codec(in_, out, params) { - return new ZodCodec({ - type: "pipe", - in: in_, - out: out, - transform: params.decode, - reverseTransform: params.encode, - }); -} -const ZodReadonly = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => { - $ZodReadonly.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => readonlyProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function readonly(innerType) { - return new ZodReadonly({ - type: "readonly", - innerType: innerType, - }); -} -const ZodTemplateLiteral = /*@__PURE__*/ $constructor("ZodTemplateLiteral", (inst, def) => { - $ZodTemplateLiteral.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => templateLiteralProcessor(inst, ctx, json); -}); -function templateLiteral(parts, params) { - return new ZodTemplateLiteral({ - type: "template_literal", - parts, - ...normalizeParams(params), - }); -} -const ZodLazy = /*@__PURE__*/ $constructor("ZodLazy", (inst, def) => { - $ZodLazy.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => lazyProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.getter(); -}); -function lazy(getter) { - return new ZodLazy({ - type: "lazy", - getter: getter, - }); -} -const ZodPromise = /*@__PURE__*/ $constructor("ZodPromise", (inst, def) => { - $ZodPromise.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => promiseProcessor(inst, ctx, json, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function promise(innerType) { - return new ZodPromise({ - type: "promise", - innerType: innerType, - }); -} -const ZodFunction = /*@__PURE__*/ $constructor("ZodFunction", (inst, def) => { - $ZodFunction.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => functionProcessor(inst, ctx); -}); -function _function(params) { - return new ZodFunction({ - type: "function", - input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())), - output: params?.output ?? unknown(), - }); -} -const ZodCustom = /*@__PURE__*/ $constructor("ZodCustom", (inst, def) => { - $ZodCustom.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx); -}); -// custom checks -function check$1(fn) { - const ch = new $ZodCheck({ - check: "custom", - // ...util.normalizeParams(params), - }); - ch._zod.check = fn; - return ch; -} -function custom(fn, _params) { - return _custom(ZodCustom, fn ?? (() => true), _params); -} -function refine(fn, _params = {}) { - return _refine(ZodCustom, fn, _params); -} -// superRefine -function superRefine(fn) { - return _superRefine(fn); -} -// Re-export describe and meta from core -const describe = describe$1; -const meta = meta$1; -function _instanceof(cls, params = {}) { - const inst = new ZodCustom({ - type: "custom", - check: "custom", - fn: (data) => data instanceof cls, - abort: true, - ...normalizeParams(params), - }); - inst._zod.bag.Class = cls; - // Override check to emit invalid_type instead of custom - inst._zod.check = (payload) => { - if (!(payload.value instanceof cls)) { - payload.issues.push({ - code: "invalid_type", - expected: cls.name, - input: payload.value, - inst, - path: [...(inst._zod.def.path ?? [])], - }); - } - }; - return inst; -} -// stringbool -const stringbool = (...args) => _stringbool({ - Codec: ZodCodec, - Boolean: ZodBoolean, - String: ZodString, -}, ...args); -function json(params) { - const jsonSchema = lazy(() => { - return union([string$1(params), number$1(), boolean$1(), _null(), array(jsonSchema), record(string$1(), jsonSchema)]); - }); - return jsonSchema; -} -// preprocess -// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */ -function preprocess(fn, schema) { - return pipe(transform$1(fn), schema); -} - -var _schemas = /*#__PURE__*/Object.freeze({ - __proto__: null, - ZodAny: ZodAny, - ZodArray: ZodArray, - ZodBase64: ZodBase64, - ZodBase64URL: ZodBase64URL, - ZodBigInt: ZodBigInt, - ZodBigIntFormat: ZodBigIntFormat, - ZodBoolean: ZodBoolean, - ZodCIDRv4: ZodCIDRv4, - ZodCIDRv6: ZodCIDRv6, - ZodCUID: ZodCUID, - ZodCUID2: ZodCUID2, - ZodCatch: ZodCatch, - ZodCodec: ZodCodec, - ZodCustom: ZodCustom, - ZodCustomStringFormat: ZodCustomStringFormat, - ZodDate: ZodDate, - ZodDefault: ZodDefault, - ZodDiscriminatedUnion: ZodDiscriminatedUnion, - ZodE164: ZodE164, - ZodEmail: ZodEmail, - ZodEmoji: ZodEmoji, - ZodEnum: ZodEnum, - ZodExactOptional: ZodExactOptional, - ZodFile: ZodFile, - ZodFunction: ZodFunction, - ZodGUID: ZodGUID, - ZodIPv4: ZodIPv4, - ZodIPv6: ZodIPv6, - ZodIntersection: ZodIntersection, - ZodJWT: ZodJWT, - ZodKSUID: ZodKSUID, - ZodLazy: ZodLazy, - ZodLiteral: ZodLiteral, - ZodMAC: ZodMAC, - ZodMap: ZodMap, - ZodNaN: ZodNaN, - ZodNanoID: ZodNanoID, - ZodNever: ZodNever, - ZodNonOptional: ZodNonOptional, - ZodNull: ZodNull, - ZodNullable: ZodNullable, - ZodNumber: ZodNumber, - ZodNumberFormat: ZodNumberFormat, - ZodObject: ZodObject, - ZodOptional: ZodOptional, - ZodPipe: ZodPipe, - ZodPrefault: ZodPrefault, - ZodPromise: ZodPromise, - ZodReadonly: ZodReadonly, - ZodRecord: ZodRecord, - ZodSet: ZodSet, - ZodString: ZodString, - ZodStringFormat: ZodStringFormat, - ZodSuccess: ZodSuccess, - ZodSymbol: ZodSymbol, - ZodTemplateLiteral: ZodTemplateLiteral, - ZodTransform: ZodTransform, - ZodTuple: ZodTuple, - ZodType: ZodType, - ZodULID: ZodULID, - ZodURL: ZodURL, - ZodUUID: ZodUUID, - ZodUndefined: ZodUndefined, - ZodUnion: ZodUnion, - ZodUnknown: ZodUnknown, - ZodVoid: ZodVoid, - ZodXID: ZodXID, - ZodXor: ZodXor, - _ZodString: _ZodString, - _default: _default, - _function: _function, - any: any, - array: array, - base64: base64$1, - base64url: base64url, - bigint: bigint$1, - boolean: boolean$1, - catch: _catch, - check: check$1, - cidrv4: cidrv4, - cidrv6: cidrv6, - codec: codec, - cuid: cuid, - cuid2: cuid2, - custom: custom, - date: date$1, - describe: describe, - discriminatedUnion: discriminatedUnion, - e164: e164, - email: email, - emoji: emoji, - enum: _enum, - exactOptional: exactOptional, - file: file, - float32: float32, - float64: float64, - function: _function, - guid: guid, - hash: hash, - hex: hex$1, - hostname: hostname, - httpUrl: httpUrl, - instanceof: _instanceof, - int: int, - int32: int32, - int64: int64, - intersection: intersection, - ipv4: ipv4, - ipv6: ipv6, - json: json, - jwt: jwt, - keyof: keyof, - ksuid: ksuid, - lazy: lazy, - literal: literal, - looseObject: looseObject, - looseRecord: looseRecord, - mac: mac, - map: map$1, - meta: meta, - nan: nan, - nanoid: nanoid, - nativeEnum: nativeEnum, - never: never, - nonoptional: nonoptional, - null: _null, - nullable: nullable, - nullish: nullish, - number: number$1, - object: object, - optional: optional, - partialRecord: partialRecord, - pipe: pipe, - prefault: prefault, - preprocess: preprocess, - promise: promise, - readonly: readonly, - record: record, - refine: refine, - set: set, - strictObject: strictObject, - string: string$1, - stringFormat: stringFormat, - stringbool: stringbool, - success: success, - superRefine: superRefine, - symbol: symbol$1, - templateLiteral: templateLiteral, - transform: transform$1, - tuple: tuple, - uint32: uint32, - uint64: uint64, - ulid: ulid, - undefined: _undefined, - union: union, - unknown: unknown, - url: url, - uuid: uuid, - uuidv4: uuidv4, - uuidv6: uuidv6, - uuidv7: uuidv7, - void: _void, - xid: xid, - xor: xor -}); - -// Zod 3 compat layer -/** @deprecated Use the raw string literal codes instead, e.g. "invalid_type". */ -const ZodIssueCode = { - 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", -}; -/** @deprecated Use `z.config(params)` instead. */ -function setErrorMap(map) { - config$1({ - customError: map, - }); -} -/** @deprecated Use `z.config()` instead. */ -function getErrorMap() { - return config$1().customError; -} -/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */ -var ZodFirstPartyTypeKind; -(function (ZodFirstPartyTypeKind) { -})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); - -// Local z object to avoid circular dependency with ../index.js -const z$2 = { - ..._schemas, - ..._checks, - iso: _iso, -}; -// Keys that are recognized and handled by the conversion logic -const RECOGNIZED_KEYS = new Set([ - // Schema identification - "$schema", - "$ref", - "$defs", - "definitions", - // Core schema keywords - "$id", - "id", - "$comment", - "$anchor", - "$vocabulary", - "$dynamicRef", - "$dynamicAnchor", - // Type - "type", - "enum", - "const", - // Composition - "anyOf", - "oneOf", - "allOf", - "not", - // Object - "properties", - "required", - "additionalProperties", - "patternProperties", - "propertyNames", - "minProperties", - "maxProperties", - // Array - "items", - "prefixItems", - "additionalItems", - "minItems", - "maxItems", - "uniqueItems", - "contains", - "minContains", - "maxContains", - // String - "minLength", - "maxLength", - "pattern", - "format", - // Number - "minimum", - "maximum", - "exclusiveMinimum", - "exclusiveMaximum", - "multipleOf", - // Already handled metadata - "description", - "default", - // Content - "contentEncoding", - "contentMediaType", - "contentSchema", - // Unsupported (error-throwing) - "unevaluatedItems", - "unevaluatedProperties", - "if", - "then", - "else", - "dependentSchemas", - "dependentRequired", - // OpenAPI - "nullable", - "readOnly", -]); -function detectVersion(schema, defaultTarget) { - const $schema = schema.$schema; - if ($schema === "https://json-schema.org/draft/2020-12/schema") { - return "draft-2020-12"; - } - if ($schema === "http://json-schema.org/draft-07/schema#") { - return "draft-7"; - } - if ($schema === "http://json-schema.org/draft-04/schema#") { - return "draft-4"; - } - // Use defaultTarget if provided, otherwise default to draft-2020-12 - return defaultTarget ?? "draft-2020-12"; -} -function resolveRef(ref, ctx) { - if (!ref.startsWith("#")) { - throw new Error("External $ref is not supported, only local refs (#/...) are allowed"); - } - const path = ref.slice(1).split("/").filter(Boolean); - // Handle root reference "#" - if (path.length === 0) { - return ctx.rootSchema; - } - const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions"; - if (path[0] === defsKey) { - const key = path[1]; - if (!key || !ctx.defs[key]) { - throw new Error(`Reference not found: ${ref}`); - } - return ctx.defs[key]; - } - throw new Error(`Reference not found: ${ref}`); -} -function convertBaseSchema(schema, ctx) { - // Handle unsupported features - if (schema.not !== undefined) { - // Special case: { not: {} } represents never - if (typeof schema.not === "object" && Object.keys(schema.not).length === 0) { - return z$2.never(); - } - throw new Error("not is not supported in Zod (except { not: {} } for never)"); - } - if (schema.unevaluatedItems !== undefined) { - throw new Error("unevaluatedItems is not supported"); - } - if (schema.unevaluatedProperties !== undefined) { - throw new Error("unevaluatedProperties is not supported"); - } - if (schema.if !== undefined || schema.then !== undefined || schema.else !== undefined) { - throw new Error("Conditional schemas (if/then/else) are not supported"); - } - if (schema.dependentSchemas !== undefined || schema.dependentRequired !== undefined) { - throw new Error("dependentSchemas and dependentRequired are not supported"); - } - // Handle $ref - if (schema.$ref) { - const refPath = schema.$ref; - if (ctx.refs.has(refPath)) { - return ctx.refs.get(refPath); - } - if (ctx.processing.has(refPath)) { - // Circular reference - use lazy - return z$2.lazy(() => { - if (!ctx.refs.has(refPath)) { - throw new Error(`Circular reference not resolved: ${refPath}`); - } - return ctx.refs.get(refPath); - }); - } - ctx.processing.add(refPath); - const resolved = resolveRef(refPath, ctx); - const zodSchema = convertSchema(resolved, ctx); - ctx.refs.set(refPath, zodSchema); - ctx.processing.delete(refPath); - return zodSchema; - } - // Handle enum - if (schema.enum !== undefined) { - const enumValues = schema.enum; - // Special case: OpenAPI 3.0 null representation { type: "string", nullable: true, enum: [null] } - if (ctx.version === "openapi-3.0" && - schema.nullable === true && - enumValues.length === 1 && - enumValues[0] === null) { - return z$2.null(); - } - if (enumValues.length === 0) { - return z$2.never(); - } - if (enumValues.length === 1) { - return z$2.literal(enumValues[0]); - } - // Check if all values are strings - if (enumValues.every((v) => typeof v === "string")) { - return z$2.enum(enumValues); - } - // Mixed types - use union of literals - const literalSchemas = enumValues.map((v) => z$2.literal(v)); - if (literalSchemas.length < 2) { - return literalSchemas[0]; - } - return z$2.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]); - } - // Handle const - if (schema.const !== undefined) { - return z$2.literal(schema.const); - } - // Handle type - const type = schema.type; - if (Array.isArray(type)) { - // Expand type array into anyOf union - const typeSchemas = type.map((t) => { - const typeSchema = { ...schema, type: t }; - return convertBaseSchema(typeSchema, ctx); - }); - if (typeSchemas.length === 0) { - return z$2.never(); - } - if (typeSchemas.length === 1) { - return typeSchemas[0]; - } - return z$2.union(typeSchemas); - } - if (!type) { - // No type specified - empty schema (any) - return z$2.any(); - } - let zodSchema; - switch (type) { - case "string": { - let stringSchema = z$2.string(); - // Apply format using .check() with Zod format functions - if (schema.format) { - const format = schema.format; - // Map common formats to Zod check functions - if (format === "email") { - stringSchema = stringSchema.check(z$2.email()); - } - else if (format === "uri" || format === "uri-reference") { - stringSchema = stringSchema.check(z$2.url()); - } - else if (format === "uuid" || format === "guid") { - stringSchema = stringSchema.check(z$2.uuid()); - } - else if (format === "date-time") { - stringSchema = stringSchema.check(z$2.iso.datetime()); - } - else if (format === "date") { - stringSchema = stringSchema.check(z$2.iso.date()); - } - else if (format === "time") { - stringSchema = stringSchema.check(z$2.iso.time()); - } - else if (format === "duration") { - stringSchema = stringSchema.check(z$2.iso.duration()); - } - else if (format === "ipv4") { - stringSchema = stringSchema.check(z$2.ipv4()); - } - else if (format === "ipv6") { - stringSchema = stringSchema.check(z$2.ipv6()); - } - else if (format === "mac") { - stringSchema = stringSchema.check(z$2.mac()); - } - else if (format === "cidr") { - stringSchema = stringSchema.check(z$2.cidrv4()); - } - else if (format === "cidr-v6") { - stringSchema = stringSchema.check(z$2.cidrv6()); - } - else if (format === "base64") { - stringSchema = stringSchema.check(z$2.base64()); - } - else if (format === "base64url") { - stringSchema = stringSchema.check(z$2.base64url()); - } - else if (format === "e164") { - stringSchema = stringSchema.check(z$2.e164()); - } - else if (format === "jwt") { - stringSchema = stringSchema.check(z$2.jwt()); - } - else if (format === "emoji") { - stringSchema = stringSchema.check(z$2.emoji()); - } - else if (format === "nanoid") { - stringSchema = stringSchema.check(z$2.nanoid()); - } - else if (format === "cuid") { - stringSchema = stringSchema.check(z$2.cuid()); - } - else if (format === "cuid2") { - stringSchema = stringSchema.check(z$2.cuid2()); - } - else if (format === "ulid") { - stringSchema = stringSchema.check(z$2.ulid()); - } - else if (format === "xid") { - stringSchema = stringSchema.check(z$2.xid()); - } - else if (format === "ksuid") { - stringSchema = stringSchema.check(z$2.ksuid()); - } - // Note: json-string format is not currently supported by Zod - // Custom formats are ignored - keep as plain string - } - // Apply constraints - if (typeof schema.minLength === "number") { - stringSchema = stringSchema.min(schema.minLength); - } - if (typeof schema.maxLength === "number") { - stringSchema = stringSchema.max(schema.maxLength); - } - if (schema.pattern) { - // JSON Schema patterns are not implicitly anchored (match anywhere in string) - stringSchema = stringSchema.regex(new RegExp(schema.pattern)); - } - zodSchema = stringSchema; - break; - } - case "number": - case "integer": { - let numberSchema = type === "integer" ? z$2.number().int() : z$2.number(); - // Apply constraints - if (typeof schema.minimum === "number") { - numberSchema = numberSchema.min(schema.minimum); - } - if (typeof schema.maximum === "number") { - numberSchema = numberSchema.max(schema.maximum); - } - if (typeof schema.exclusiveMinimum === "number") { - numberSchema = numberSchema.gt(schema.exclusiveMinimum); - } - else if (schema.exclusiveMinimum === true && typeof schema.minimum === "number") { - numberSchema = numberSchema.gt(schema.minimum); - } - if (typeof schema.exclusiveMaximum === "number") { - numberSchema = numberSchema.lt(schema.exclusiveMaximum); - } - else if (schema.exclusiveMaximum === true && typeof schema.maximum === "number") { - numberSchema = numberSchema.lt(schema.maximum); - } - if (typeof schema.multipleOf === "number") { - numberSchema = numberSchema.multipleOf(schema.multipleOf); - } - zodSchema = numberSchema; - break; - } - case "boolean": { - zodSchema = z$2.boolean(); - break; - } - case "null": { - zodSchema = z$2.null(); - break; - } - case "object": { - const shape = {}; - const properties = schema.properties || {}; - const requiredSet = new Set(schema.required || []); - // Convert properties - mark optional ones - for (const [key, propSchema] of Object.entries(properties)) { - const propZodSchema = convertSchema(propSchema, ctx); - // If not in required array, make it optional - shape[key] = requiredSet.has(key) ? propZodSchema : propZodSchema.optional(); - } - // Handle propertyNames - if (schema.propertyNames) { - const keySchema = convertSchema(schema.propertyNames, ctx); - const valueSchema = schema.additionalProperties && typeof schema.additionalProperties === "object" - ? convertSchema(schema.additionalProperties, ctx) - : z$2.any(); - // Case A: No properties (pure record) - if (Object.keys(shape).length === 0) { - zodSchema = z$2.record(keySchema, valueSchema); - break; - } - // Case B: With properties (intersection of object and looseRecord) - const objectSchema = z$2.object(shape).passthrough(); - const recordSchema = z$2.looseRecord(keySchema, valueSchema); - zodSchema = z$2.intersection(objectSchema, recordSchema); - break; - } - // Handle patternProperties - if (schema.patternProperties) { - // patternProperties: keys matching pattern must satisfy corresponding schema - // Use loose records so non-matching keys pass through - const patternProps = schema.patternProperties; - const patternKeys = Object.keys(patternProps); - const looseRecords = []; - for (const pattern of patternKeys) { - const patternValue = convertSchema(patternProps[pattern], ctx); - const keySchema = z$2.string().regex(new RegExp(pattern)); - looseRecords.push(z$2.looseRecord(keySchema, patternValue)); - } - // Build intersection: object schema + all pattern property records - const schemasToIntersect = []; - if (Object.keys(shape).length > 0) { - // Use passthrough so patternProperties can validate additional keys - schemasToIntersect.push(z$2.object(shape).passthrough()); - } - schemasToIntersect.push(...looseRecords); - if (schemasToIntersect.length === 0) { - zodSchema = z$2.object({}).passthrough(); - } - else if (schemasToIntersect.length === 1) { - zodSchema = schemasToIntersect[0]; - } - else { - // Chain intersections: (A & B) & C & D ... - let result = z$2.intersection(schemasToIntersect[0], schemasToIntersect[1]); - for (let i = 2; i < schemasToIntersect.length; i++) { - result = z$2.intersection(result, schemasToIntersect[i]); - } - zodSchema = result; - } - break; - } - // Handle additionalProperties - // In JSON Schema, additionalProperties defaults to true (allow any extra properties) - // In Zod, objects strip unknown keys by default, so we need to handle this explicitly - const objectSchema = z$2.object(shape); - if (schema.additionalProperties === false) { - // Strict mode - no extra properties allowed - zodSchema = objectSchema.strict(); - } - else if (typeof schema.additionalProperties === "object") { - // Extra properties must match the specified schema - zodSchema = objectSchema.catchall(convertSchema(schema.additionalProperties, ctx)); - } - else { - // additionalProperties is true or undefined - allow any extra properties (passthrough) - zodSchema = objectSchema.passthrough(); - } - break; - } - case "array": { - // TODO: uniqueItems is not supported - // TODO: contains/minContains/maxContains are not supported - // Check if this is a tuple (prefixItems or items as array) - const prefixItems = schema.prefixItems; - const items = schema.items; - if (prefixItems && Array.isArray(prefixItems)) { - // Tuple with prefixItems (draft-2020-12) - const tupleItems = prefixItems.map((item) => convertSchema(item, ctx)); - const rest = items && typeof items === "object" && !Array.isArray(items) - ? convertSchema(items, ctx) - : undefined; - if (rest) { - zodSchema = z$2.tuple(tupleItems).rest(rest); - } - else { - zodSchema = z$2.tuple(tupleItems); - } - // Apply minItems/maxItems constraints to tuples - if (typeof schema.minItems === "number") { - zodSchema = zodSchema.check(z$2.minLength(schema.minItems)); - } - if (typeof schema.maxItems === "number") { - zodSchema = zodSchema.check(z$2.maxLength(schema.maxItems)); - } - } - else if (Array.isArray(items)) { - // Tuple with items array (draft-7) - const tupleItems = items.map((item) => convertSchema(item, ctx)); - const rest = schema.additionalItems && typeof schema.additionalItems === "object" - ? convertSchema(schema.additionalItems, ctx) - : undefined; // additionalItems: false means no rest, handled by default tuple behavior - if (rest) { - zodSchema = z$2.tuple(tupleItems).rest(rest); - } - else { - zodSchema = z$2.tuple(tupleItems); - } - // Apply minItems/maxItems constraints to tuples - if (typeof schema.minItems === "number") { - zodSchema = zodSchema.check(z$2.minLength(schema.minItems)); - } - if (typeof schema.maxItems === "number") { - zodSchema = zodSchema.check(z$2.maxLength(schema.maxItems)); - } - } - else if (items !== undefined) { - // Regular array - const element = convertSchema(items, ctx); - let arraySchema = z$2.array(element); - // Apply constraints - if (typeof schema.minItems === "number") { - arraySchema = arraySchema.min(schema.minItems); - } - if (typeof schema.maxItems === "number") { - arraySchema = arraySchema.max(schema.maxItems); - } - zodSchema = arraySchema; - } - else { - // No items specified - array of any - zodSchema = z$2.array(z$2.any()); - } - break; - } - default: - throw new Error(`Unsupported type: ${type}`); - } - // Apply metadata - if (schema.description) { - zodSchema = zodSchema.describe(schema.description); - } - if (schema.default !== undefined) { - zodSchema = zodSchema.default(schema.default); - } - return zodSchema; -} -function convertSchema(schema, ctx) { - if (typeof schema === "boolean") { - return schema ? z$2.any() : z$2.never(); - } - // Convert base schema first (ignoring composition keywords) - let baseSchema = convertBaseSchema(schema, ctx); - const hasExplicitType = schema.type || schema.enum !== undefined || schema.const !== undefined; - // Process composition keywords LAST (they can appear together) - // Handle anyOf - wrap base schema with union - if (schema.anyOf && Array.isArray(schema.anyOf)) { - const options = schema.anyOf.map((s) => convertSchema(s, ctx)); - const anyOfUnion = z$2.union(options); - baseSchema = hasExplicitType ? z$2.intersection(baseSchema, anyOfUnion) : anyOfUnion; - } - // Handle oneOf - exclusive union (exactly one must match) - if (schema.oneOf && Array.isArray(schema.oneOf)) { - const options = schema.oneOf.map((s) => convertSchema(s, ctx)); - const oneOfUnion = z$2.xor(options); - baseSchema = hasExplicitType ? z$2.intersection(baseSchema, oneOfUnion) : oneOfUnion; - } - // Handle allOf - wrap base schema with intersection - if (schema.allOf && Array.isArray(schema.allOf)) { - if (schema.allOf.length === 0) { - baseSchema = hasExplicitType ? baseSchema : z$2.any(); - } - else { - let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx); - const startIdx = hasExplicitType ? 0 : 1; - for (let i = startIdx; i < schema.allOf.length; i++) { - result = z$2.intersection(result, convertSchema(schema.allOf[i], ctx)); - } - baseSchema = result; - } - } - // Handle nullable (OpenAPI 3.0) - if (schema.nullable === true && ctx.version === "openapi-3.0") { - baseSchema = z$2.nullable(baseSchema); - } - // Handle readOnly - if (schema.readOnly === true) { - baseSchema = z$2.readonly(baseSchema); - } - // Collect metadata: core schema keywords and unrecognized keys - const extraMeta = {}; - // Core schema keywords that should be captured as metadata - const coreMetadataKeys = ["$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor"]; - for (const key of coreMetadataKeys) { - if (key in schema) { - extraMeta[key] = schema[key]; - } - } - // Content keywords - store as metadata - const contentMetadataKeys = ["contentEncoding", "contentMediaType", "contentSchema"]; - for (const key of contentMetadataKeys) { - if (key in schema) { - extraMeta[key] = schema[key]; - } - } - // Unrecognized keys (custom metadata) - for (const key of Object.keys(schema)) { - if (!RECOGNIZED_KEYS.has(key)) { - extraMeta[key] = schema[key]; - } - } - if (Object.keys(extraMeta).length > 0) { - ctx.registry.add(baseSchema, extraMeta); - } - return baseSchema; -} -/** - * Converts a JSON Schema to a Zod schema. This function should be considered semi-experimental. It's behavior is liable to change. */ -function fromJSONSchema(schema, params) { - // Handle boolean schemas - if (typeof schema === "boolean") { - return schema ? z$2.any() : z$2.never(); - } - const version = detectVersion(schema, params?.defaultTarget); - const defs = (schema.$defs || schema.definitions || {}); - const ctx = { - version, - defs, - refs: new Map(), - processing: new Set(), - rootSchema: schema, - registry: params?.registry ?? globalRegistry, - }; - return convertSchema(schema, ctx); -} - -function string(params) { - return _coercedString(ZodString, params); -} -function number(params) { - return _coercedNumber(ZodNumber, params); -} -function boolean(params) { - return _coercedBoolean(ZodBoolean, params); -} -function bigint(params) { - return _coercedBigint(ZodBigInt, params); -} -function date(params) { - return _coercedDate(ZodDate, params); -} - -var coerce = /*#__PURE__*/Object.freeze({ - __proto__: null, - bigint: bigint, - boolean: boolean, - date: date, - number: number, - string: string -}); - -config$1(en()); - -var z$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - $brand: $brand, - $input: $input, - $output: $output, - NEVER: NEVER, - TimePrecision: TimePrecision, - ZodAny: ZodAny, - ZodArray: ZodArray, - ZodBase64: ZodBase64, - ZodBase64URL: ZodBase64URL, - ZodBigInt: ZodBigInt, - ZodBigIntFormat: ZodBigIntFormat, - ZodBoolean: ZodBoolean, - ZodCIDRv4: ZodCIDRv4, - ZodCIDRv6: ZodCIDRv6, - ZodCUID: ZodCUID, - ZodCUID2: ZodCUID2, - ZodCatch: ZodCatch, - ZodCodec: ZodCodec, - ZodCustom: ZodCustom, - ZodCustomStringFormat: ZodCustomStringFormat, - ZodDate: ZodDate, - ZodDefault: ZodDefault, - ZodDiscriminatedUnion: ZodDiscriminatedUnion, - ZodE164: ZodE164, - ZodEmail: ZodEmail, - ZodEmoji: ZodEmoji, - ZodEnum: ZodEnum, - ZodError: ZodError, - ZodExactOptional: ZodExactOptional, - ZodFile: ZodFile, - get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; }, - ZodFunction: ZodFunction, - ZodGUID: ZodGUID, - ZodIPv4: ZodIPv4, - ZodIPv6: ZodIPv6, - ZodISODate: ZodISODate, - ZodISODateTime: ZodISODateTime, - ZodISODuration: ZodISODuration, - ZodISOTime: ZodISOTime, - ZodIntersection: ZodIntersection, - ZodIssueCode: ZodIssueCode, - ZodJWT: ZodJWT, - ZodKSUID: ZodKSUID, - ZodLazy: ZodLazy, - ZodLiteral: ZodLiteral, - ZodMAC: ZodMAC, - ZodMap: ZodMap, - ZodNaN: ZodNaN, - ZodNanoID: ZodNanoID, - ZodNever: ZodNever, - ZodNonOptional: ZodNonOptional, - ZodNull: ZodNull, - ZodNullable: ZodNullable, - ZodNumber: ZodNumber, - ZodNumberFormat: ZodNumberFormat, - ZodObject: ZodObject, - ZodOptional: ZodOptional, - ZodPipe: ZodPipe, - ZodPrefault: ZodPrefault, - ZodPromise: ZodPromise, - ZodReadonly: ZodReadonly, - ZodRealError: ZodRealError, - ZodRecord: ZodRecord, - ZodSet: ZodSet, - ZodString: ZodString, - ZodStringFormat: ZodStringFormat, - ZodSuccess: ZodSuccess, - ZodSymbol: ZodSymbol, - ZodTemplateLiteral: ZodTemplateLiteral, - ZodTransform: ZodTransform, - ZodTuple: ZodTuple, - ZodType: ZodType, - ZodULID: ZodULID, - ZodURL: ZodURL, - ZodUUID: ZodUUID, - ZodUndefined: ZodUndefined, - ZodUnion: ZodUnion, - ZodUnknown: ZodUnknown, - ZodVoid: ZodVoid, - ZodXID: ZodXID, - ZodXor: ZodXor, - _ZodString: _ZodString, - _default: _default, - _function: _function, - any: any, - array: array, - base64: base64$1, - base64url: base64url, - bigint: bigint$1, - boolean: boolean$1, - catch: _catch, - check: check$1, - cidrv4: cidrv4, - cidrv6: cidrv6, - clone: clone, - codec: codec, - coerce: coerce, - config: config$1, - core: index, - cuid: cuid, - cuid2: cuid2, - custom: custom, - date: date$1, - decode: decode$1, - decodeAsync: decodeAsync, - describe: describe, - discriminatedUnion: discriminatedUnion, - e164: e164, - email: email, - emoji: emoji, - encode: encode$2, - encodeAsync: encodeAsync, - endsWith: _endsWith, - enum: _enum, - exactOptional: exactOptional, - file: file, - flattenError: flattenError, - float32: float32, - float64: float64, - formatError: formatError, - fromJSONSchema: fromJSONSchema, - function: _function, - getErrorMap: getErrorMap, - globalRegistry: globalRegistry, - gt: _gt, - gte: _gte, - guid: guid, - hash: hash, - hex: hex$1, - hostname: hostname, - httpUrl: httpUrl, - includes: _includes, - instanceof: _instanceof, - int: int, - int32: int32, - int64: int64, - intersection: intersection, - ipv4: ipv4, - ipv6: ipv6, - iso: _iso, - json: json, - jwt: jwt, - keyof: keyof, - ksuid: ksuid, - lazy: lazy, - length: _length, - literal: literal, - locales: index$1, - looseObject: looseObject, - looseRecord: looseRecord, - lowercase: _lowercase, - lt: _lt, - lte: _lte, - mac: mac, - map: map$1, - maxLength: _maxLength, - maxSize: _maxSize, - meta: meta, - mime: _mime, - minLength: _minLength, - minSize: _minSize, - multipleOf: _multipleOf, - nan: nan, - nanoid: nanoid, - nativeEnum: nativeEnum, - negative: _negative, - never: never, - nonnegative: _nonnegative, - nonoptional: nonoptional, - nonpositive: _nonpositive, - normalize: _normalize, - null: _null, - nullable: nullable, - nullish: nullish, - number: number$1, - object: object, - optional: optional, - overwrite: _overwrite, - parse: parse$1, - parseAsync: parseAsync, - partialRecord: partialRecord, - pipe: pipe, - positive: _positive, - prefault: prefault, - preprocess: preprocess, - prettifyError: prettifyError, - promise: promise, - property: _property, - readonly: readonly, - record: record, - refine: refine, - regex: _regex, - regexes: regexes, - registry: registry, - safeDecode: safeDecode, - safeDecodeAsync: safeDecodeAsync, - safeEncode: safeEncode, - safeEncodeAsync: safeEncodeAsync, - safeParse: safeParse, - safeParseAsync: safeParseAsync, - set: set, - setErrorMap: setErrorMap, - size: _size, - slugify: _slugify, - startsWith: _startsWith, - strictObject: strictObject, - string: string$1, - stringFormat: stringFormat, - stringbool: stringbool, - success: success, - superRefine: superRefine, - symbol: symbol$1, - templateLiteral: templateLiteral, - toJSONSchema: toJSONSchema, - toLowerCase: _toLowerCase, - toUpperCase: _toUpperCase, - transform: transform$1, - treeifyError: treeifyError, - trim: _trim, - tuple: tuple, - uint32: uint32, - uint64: uint64, - ulid: ulid, - undefined: _undefined, - union: union, - unknown: unknown, - uppercase: _uppercase, - url: url, - util: util, - uuid: uuid, - uuidv4: uuidv4, - uuidv6: uuidv6, - uuidv7: uuidv7, - void: _void, - xid: xid, - xor: xor -}); - -var z = /*#__PURE__*/Object.freeze({ - __proto__: null, - $brand: $brand, - $input: $input, - $output: $output, - NEVER: NEVER, - TimePrecision: TimePrecision, - ZodAny: ZodAny, - ZodArray: ZodArray, - ZodBase64: ZodBase64, - ZodBase64URL: ZodBase64URL, - ZodBigInt: ZodBigInt, - ZodBigIntFormat: ZodBigIntFormat, - ZodBoolean: ZodBoolean, - ZodCIDRv4: ZodCIDRv4, - ZodCIDRv6: ZodCIDRv6, - ZodCUID: ZodCUID, - ZodCUID2: ZodCUID2, - ZodCatch: ZodCatch, - ZodCodec: ZodCodec, - ZodCustom: ZodCustom, - ZodCustomStringFormat: ZodCustomStringFormat, - ZodDate: ZodDate, - ZodDefault: ZodDefault, - ZodDiscriminatedUnion: ZodDiscriminatedUnion, - ZodE164: ZodE164, - ZodEmail: ZodEmail, - ZodEmoji: ZodEmoji, - ZodEnum: ZodEnum, - ZodError: ZodError, - ZodExactOptional: ZodExactOptional, - ZodFile: ZodFile, - get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; }, - ZodFunction: ZodFunction, - ZodGUID: ZodGUID, - ZodIPv4: ZodIPv4, - ZodIPv6: ZodIPv6, - ZodISODate: ZodISODate, - ZodISODateTime: ZodISODateTime, - ZodISODuration: ZodISODuration, - ZodISOTime: ZodISOTime, - ZodIntersection: ZodIntersection, - ZodIssueCode: ZodIssueCode, - ZodJWT: ZodJWT, - ZodKSUID: ZodKSUID, - ZodLazy: ZodLazy, - ZodLiteral: ZodLiteral, - ZodMAC: ZodMAC, - ZodMap: ZodMap, - ZodNaN: ZodNaN, - ZodNanoID: ZodNanoID, - ZodNever: ZodNever, - ZodNonOptional: ZodNonOptional, - ZodNull: ZodNull, - ZodNullable: ZodNullable, - ZodNumber: ZodNumber, - ZodNumberFormat: ZodNumberFormat, - ZodObject: ZodObject, - ZodOptional: ZodOptional, - ZodPipe: ZodPipe, - ZodPrefault: ZodPrefault, - ZodPromise: ZodPromise, - ZodReadonly: ZodReadonly, - ZodRealError: ZodRealError, - ZodRecord: ZodRecord, - ZodSet: ZodSet, - ZodString: ZodString, - ZodStringFormat: ZodStringFormat, - ZodSuccess: ZodSuccess, - ZodSymbol: ZodSymbol, - ZodTemplateLiteral: ZodTemplateLiteral, - ZodTransform: ZodTransform, - ZodTuple: ZodTuple, - ZodType: ZodType, - ZodULID: ZodULID, - ZodURL: ZodURL, - ZodUUID: ZodUUID, - ZodUndefined: ZodUndefined, - ZodUnion: ZodUnion, - ZodUnknown: ZodUnknown, - ZodVoid: ZodVoid, - ZodXID: ZodXID, - ZodXor: ZodXor, - _ZodString: _ZodString, - _default: _default, - _function: _function, - any: any, - array: array, - base64: base64$1, - base64url: base64url, - bigint: bigint$1, - boolean: boolean$1, - catch: _catch, - check: check$1, - cidrv4: cidrv4, - cidrv6: cidrv6, - clone: clone, - codec: codec, - coerce: coerce, - config: config$1, - core: index, - cuid: cuid, - cuid2: cuid2, - custom: custom, - date: date$1, - decode: decode$1, - decodeAsync: decodeAsync, - default: z$1, - describe: describe, - discriminatedUnion: discriminatedUnion, - e164: e164, - email: email, - emoji: emoji, - encode: encode$2, - encodeAsync: encodeAsync, - endsWith: _endsWith, - enum: _enum, - exactOptional: exactOptional, - file: file, - flattenError: flattenError, - float32: float32, - float64: float64, - formatError: formatError, - fromJSONSchema: fromJSONSchema, - function: _function, - getErrorMap: getErrorMap, - globalRegistry: globalRegistry, - gt: _gt, - gte: _gte, - guid: guid, - hash: hash, - hex: hex$1, - hostname: hostname, - httpUrl: httpUrl, - includes: _includes, - instanceof: _instanceof, - int: int, - int32: int32, - int64: int64, - intersection: intersection, - ipv4: ipv4, - ipv6: ipv6, - iso: _iso, - json: json, - jwt: jwt, - keyof: keyof, - ksuid: ksuid, - lazy: lazy, - length: _length, - literal: literal, - locales: index$1, - looseObject: looseObject, - looseRecord: looseRecord, - lowercase: _lowercase, - lt: _lt, - lte: _lte, - mac: mac, - map: map$1, - maxLength: _maxLength, - maxSize: _maxSize, - meta: meta, - mime: _mime, - minLength: _minLength, - minSize: _minSize, - multipleOf: _multipleOf, - nan: nan, - nanoid: nanoid, - nativeEnum: nativeEnum, - negative: _negative, - never: never, - nonnegative: _nonnegative, - nonoptional: nonoptional, - nonpositive: _nonpositive, - normalize: _normalize, - null: _null, - nullable: nullable, - nullish: nullish, - number: number$1, - object: object, - optional: optional, - overwrite: _overwrite, - parse: parse$1, - parseAsync: parseAsync, - partialRecord: partialRecord, - pipe: pipe, - positive: _positive, - prefault: prefault, - preprocess: preprocess, - prettifyError: prettifyError, - promise: promise, - property: _property, - readonly: readonly, - record: record, - refine: refine, - regex: _regex, - regexes: regexes, - registry: registry, - safeDecode: safeDecode, - safeDecodeAsync: safeDecodeAsync, - safeEncode: safeEncode, - safeEncodeAsync: safeEncodeAsync, - safeParse: safeParse, - safeParseAsync: safeParseAsync, - set: set, - setErrorMap: setErrorMap, - size: _size, - slugify: _slugify, - startsWith: _startsWith, - strictObject: strictObject, - string: string$1, - stringFormat: stringFormat, - stringbool: stringbool, - success: success, - superRefine: superRefine, - symbol: symbol$1, - templateLiteral: templateLiteral, - toJSONSchema: toJSONSchema, - toLowerCase: _toLowerCase, - toUpperCase: _toUpperCase, - transform: transform$1, - treeifyError: treeifyError, - trim: _trim, - tuple: tuple, - uint32: uint32, - uint64: uint64, - ulid: ulid, - undefined: _undefined, - union: union, - unknown: unknown, - uppercase: _uppercase, - url: url, - util: util, - uuid: uuid, - uuidv4: uuidv4, - uuidv6: uuidv6, - uuidv7: uuidv7, - void: _void, - xid: xid, - xor: xor, - z: z$1 -}); - -//#region src/utils/ip.ts -/** -* Checks if an IP is valid IPv4 or IPv6 -*/ -function isValidIP(ip) { - return ipv4().safeParse(ip).success || ipv6().safeParse(ip).success; -} -/** -* Checks if an IP is IPv6 -*/ -function isIPv6(ip) { - return ipv6().safeParse(ip).success; -} -/** -* Converts IPv4-mapped IPv6 address to IPv4 -* e.g., "::ffff:192.0.2.1" -> "192.0.2.1" -*/ -function extractIPv4FromMapped(ipv6) { - const lower = ipv6.toLowerCase(); - if (lower.startsWith("::ffff:")) { - const ipv4Part = lower.substring(7); - if (ipv4().safeParse(ipv4Part).success) return ipv4Part; - } - const parts = ipv6.split(":"); - if (parts.length === 7 && parts[5]?.toLowerCase() === "ffff") { - const ipv4Part = parts[6]; - if (ipv4Part && ipv4().safeParse(ipv4Part).success) return ipv4Part; - } - if (lower.includes("::ffff:") || lower.includes(":ffff:")) { - const groups = expandIPv6(ipv6); - if (groups.length === 8 && groups[0] === "0000" && groups[1] === "0000" && groups[2] === "0000" && groups[3] === "0000" && groups[4] === "0000" && groups[5] === "ffff" && groups[6] && groups[7]) return `${Number.parseInt(groups[6].substring(0, 2), 16)}.${Number.parseInt(groups[6].substring(2, 4), 16)}.${Number.parseInt(groups[7].substring(0, 2), 16)}.${Number.parseInt(groups[7].substring(2, 4), 16)}`; - } - return null; -} -/** -* Expands a compressed IPv6 address to full form -* e.g., "2001:db8::1" -> ["2001", "0db8", "0000", "0000", "0000", "0000", "0000", "0001"] -*/ -function expandIPv6(ipv6) { - if (ipv6.includes("::")) { - const sides = ipv6.split("::"); - const left = sides[0] ? sides[0].split(":") : []; - const right = sides[1] ? sides[1].split(":") : []; - const missingGroups = 8 - left.length - right.length; - const zeros = Array(missingGroups).fill("0000"); - const paddedLeft = left.map((g) => g.padStart(4, "0")); - const paddedRight = right.map((g) => g.padStart(4, "0")); - return [ - ...paddedLeft, - ...zeros, - ...paddedRight - ]; - } - return ipv6.split(":").map((g) => g.padStart(4, "0")); -} -/** -* Normalizes an IPv6 address to canonical form -* e.g., "2001:DB8::1" -> "2001:0db8:0000:0000:0000:0000:0000:0001" -*/ -function normalizeIPv6(ipv6, subnetPrefix) { - const groups = expandIPv6(ipv6); - if (subnetPrefix < 128) { - let bitsRemaining = subnetPrefix; - return groups.map((group) => { - if (bitsRemaining <= 0) return "0000"; - if (bitsRemaining >= 16) { - bitsRemaining -= 16; - return group; - } - const masked = Number.parseInt(group, 16) & (65535 << 16 - bitsRemaining & 65535); - bitsRemaining = 0; - return masked.toString(16).padStart(4, "0"); - }).join(":").toLowerCase(); - } - return groups.join(":").toLowerCase(); -} -/** -* Normalizes an IP address (IPv4 or IPv6) for consistent rate limiting. -* -* @param ip - The IP address to normalize -* @param options - Normalization options -* @returns Normalized IP address -* -* @example -* normalizeIP("2001:DB8::1") -* // -> "2001:0db8:0000:0000:0000:0000:0000:0000" -* -* @example -* normalizeIP("::ffff:192.0.2.1") -* // -> "192.0.2.1" (converted to IPv4) -* -* @example -* normalizeIP("2001:db8::1", { ipv6Subnet: 64 }) -* // -> "2001:0db8:0000:0000:0000:0000:0000:0000" (subnet /64) -*/ -function normalizeIP(ip, options = {}) { - if (ipv4().safeParse(ip).success) return ip.toLowerCase(); - if (!isIPv6(ip)) return ip.toLowerCase(); - const ipv4$1 = extractIPv4FromMapped(ip); - if (ipv4$1) return ipv4$1.toLowerCase(); - return normalizeIPv6(ip, options.ipv6Subnet || 64); -} -/** -* Creates a rate limit key from IP and path -* Uses a separator to prevent collision attacks -* -* @param ip - The IP address (should be normalized) -* @param path - The request path -* @returns Rate limit key -*/ -function createRateLimitKey(ip, path) { - return `${ip}|${path}`; -} - -//#region src/utils/json.ts -function safeJSONParse(data) { - function reviver(_, value) { - if (typeof value === "string") { - if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/.test(value)) { - const date = new Date(value); - if (!isNaN(date.getTime())) return date; - } - } - return value; - } - try { - if (typeof data !== "string") return data; - return JSON.parse(data, reviver); - } catch (e) { - logger.error("Error parsing JSON", { error: e }); - return null; - } -} - -//#region src/utils/url.ts -/** -* Normalizes a request pathname by removing the basePath prefix and trailing slashes. -* This is useful for matching paths against configured path lists. -* -* @param requestUrl - The full request URL -* @param basePath - The base path of the auth API (e.g., "/api/auth") -* @returns The normalized path without basePath prefix or trailing slashes, -* or "/" if URL parsing fails -* -* @example -* normalizePathname("http://localhost:3000/api/auth/sso/saml2/callback/provider1", "/api/auth") -* // Returns: "/sso/saml2/callback/provider1" -* -* normalizePathname("http://localhost:3000/sso/saml2/callback/provider1/", "/") -* // Returns: "/sso/saml2/callback/provider1" -*/ -function normalizePathname(requestUrl, basePath) { - let pathname; - try { - pathname = new URL(requestUrl).pathname.replace(/\/+$/, "") || "/"; - } catch { - return "/"; - } - if (basePath === "/" || basePath === "") return pathname; - if (pathname === basePath) return "/"; - if (pathname.startsWith(basePath + "/")) return pathname.slice(basePath.length).replace(/\/+$/, "") || "/"; - return pathname; -} - -//#region src/error/codes.ts -const BASE_ERROR_CODES = defineErrorCodes({ - USER_NOT_FOUND: "User not found", - FAILED_TO_CREATE_USER: "Failed to create user", - FAILED_TO_CREATE_SESSION: "Failed to create session", - FAILED_TO_UPDATE_USER: "Failed to update user", - FAILED_TO_GET_SESSION: "Failed to get session", - INVALID_PASSWORD: "Invalid password", - INVALID_EMAIL: "Invalid email", - INVALID_EMAIL_OR_PASSWORD: "Invalid email or password", - SOCIAL_ACCOUNT_ALREADY_LINKED: "Social account already linked", - PROVIDER_NOT_FOUND: "Provider not found", - INVALID_TOKEN: "Invalid token", - ID_TOKEN_NOT_SUPPORTED: "id_token not supported", - FAILED_TO_GET_USER_INFO: "Failed to get user info", - USER_EMAIL_NOT_FOUND: "User email not found", - EMAIL_NOT_VERIFIED: "Email not verified", - PASSWORD_TOO_SHORT: "Password too short", - PASSWORD_TOO_LONG: "Password too long", - USER_ALREADY_EXISTS: "User already exists.", - USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: "User already exists. Use another email.", - EMAIL_CAN_NOT_BE_UPDATED: "Email can not be updated", - CREDENTIAL_ACCOUNT_NOT_FOUND: "Credential account not found", - SESSION_EXPIRED: "Session expired. Re-authenticate to perform this action.", - FAILED_TO_UNLINK_LAST_ACCOUNT: "You can't unlink your last account", - ACCOUNT_NOT_FOUND: "Account not found", - USER_ALREADY_HAS_PASSWORD: "User already has a password. Provide that to delete the account.", - CROSS_SITE_NAVIGATION_LOGIN_BLOCKED: "Cross-site navigation login blocked. This request appears to be a CSRF attack.", - VERIFICATION_EMAIL_NOT_ENABLED: "Verification email isn't enabled", - EMAIL_ALREADY_VERIFIED: "Email is already verified", - EMAIL_MISMATCH: "Email mismatch", - SESSION_NOT_FRESH: "Session is not fresh", - LINKED_ACCOUNT_ALREADY_EXISTS: "Linked account already exists", - INVALID_ORIGIN: "Invalid origin", - INVALID_CALLBACK_URL: "Invalid callbackURL", - INVALID_REDIRECT_URL: "Invalid redirectURL", - INVALID_ERROR_CALLBACK_URL: "Invalid errorCallbackURL", - INVALID_NEW_USER_CALLBACK_URL: "Invalid newUserCallbackURL", - MISSING_OR_NULL_ORIGIN: "Missing or null Origin", - CALLBACK_URL_REQUIRED: "callbackURL is required", - FAILED_TO_CREATE_VERIFICATION: "Unable to create verification", - FIELD_NOT_ALLOWED: "Field not allowed to be set", - ASYNC_VALIDATION_NOT_SUPPORTED: "Async validation is not supported", - VALIDATION_ERROR: "Validation Error", - MISSING_FIELD: "Field is required" -}); - -//#region src/error/index.ts -var BetterAuthError = class extends Error { - constructor(message, options) { - super(message, options); - this.name = "BetterAuthError"; - this.message = message; - this.stack = ""; - } -}; - -//#region src/context/global.ts -const symbol = Symbol.for("better-auth:global"); -let bind = null; -const __context = {}; -const __betterAuthVersion = "1.4.19"; -/** -* We store context instance in the globalThis. -* -* The reason we do this is that some bundlers, web framework, or package managers might -* create multiple copies of BetterAuth in the same process intentionally or unintentionally. -* -* For example, yarn v1, Next.js, SSR, Vite... -* -* @internal -*/ -function __getBetterAuthGlobal() { - if (!globalThis[symbol]) { - globalThis[symbol] = { - version: __betterAuthVersion, - epoch: 1, - context: __context - }; - bind = globalThis[symbol]; - } - bind = globalThis[symbol]; - if (bind.version !== __betterAuthVersion) { - bind.version = __betterAuthVersion; - bind.epoch++; - } - return globalThis[symbol]; -} -function getBetterAuthVersion() { - return __getBetterAuthGlobal().version; -} - -//#region src/async_hooks/index.ts -const AsyncLocalStoragePromise = import( - /* @vite-ignore */ - /* webpackIgnore: true */ - 'node:async_hooks' -).then((mod) => mod.AsyncLocalStorage).catch((err) => { - if ("AsyncLocalStorage" in globalThis) return globalThis.AsyncLocalStorage; - if (typeof window !== "undefined") return null; - console.warn("[better-auth] Warning: AsyncLocalStorage is not available in this environment. Some features may not work as expected."); - console.warn("[better-auth] Please read more about this warning at https://better-auth.com/docs/installation#mount-handler"); - console.warn("[better-auth] If you are using Cloudflare Workers, please see: https://developers.cloudflare.com/workers/configuration/compatibility-flags/#nodejs-compatibility-flag"); - throw err; -}); -async function getAsyncLocalStorage() { - const mod = await AsyncLocalStoragePromise; - if (mod === null) throw new Error("getAsyncLocalStorage is only available in server code"); - else return mod; -} - -//#region src/context/endpoint-context.ts -const ensureAsyncStorage$2 = async () => { - const betterAuthGlobal = __getBetterAuthGlobal(); - if (!betterAuthGlobal.context.endpointContextAsyncStorage) { - const AsyncLocalStorage$1 = await getAsyncLocalStorage(); - betterAuthGlobal.context.endpointContextAsyncStorage = new AsyncLocalStorage$1(); - } - return betterAuthGlobal.context.endpointContextAsyncStorage; -}; -async function getCurrentAuthContext() { - const context = (await ensureAsyncStorage$2()).getStore(); - if (!context) throw new Error("No auth context found. Please make sure you are calling this function within a `runWithEndpointContext` callback."); - return context; -} -async function runWithEndpointContext(context, fn) { - return (await ensureAsyncStorage$2()).run(context, fn); -} - -//#region src/context/request-state.ts -const ensureAsyncStorage$1 = async () => { - const betterAuthGlobal = __getBetterAuthGlobal(); - if (!betterAuthGlobal.context.requestStateAsyncStorage) { - const AsyncLocalStorage$1 = await getAsyncLocalStorage(); - betterAuthGlobal.context.requestStateAsyncStorage = new AsyncLocalStorage$1(); - } - return betterAuthGlobal.context.requestStateAsyncStorage; -}; -async function hasRequestState() { - return (await ensureAsyncStorage$1()).getStore() !== void 0; -} -async function getCurrentRequestState() { - const store = (await ensureAsyncStorage$1()).getStore(); - if (!store) throw new Error("No request state found. Please make sure you are calling this function within a `runWithRequestState` callback."); - return store; -} -async function runWithRequestState(store, fn) { - return (await ensureAsyncStorage$1()).run(store, fn); -} -function defineRequestState(initFn) { - const ref = Object.freeze({}); - return { - get ref() { - return ref; - }, - async get() { - const store = await getCurrentRequestState(); - if (!store.has(ref)) { - const initialValue = await initFn(); - store.set(ref, initialValue); - return initialValue; - } - return store.get(ref); - }, - async set(value) { - (await getCurrentRequestState()).set(ref, value); - } - }; -} - -//#region src/context/transaction.ts -const ensureAsyncStorage = async () => { - const betterAuthGlobal = __getBetterAuthGlobal(); - if (!betterAuthGlobal.context.adapterAsyncStorage) { - const AsyncLocalStorage$1 = await getAsyncLocalStorage(); - betterAuthGlobal.context.adapterAsyncStorage = new AsyncLocalStorage$1(); - } - return betterAuthGlobal.context.adapterAsyncStorage; -}; -const getCurrentAdapter = async (fallback) => { - return ensureAsyncStorage().then((als) => { - return als.getStore() || fallback; - }).catch(() => { - return fallback; - }); -}; -const runWithAdapter = async (adapter, fn) => { - let called = true; - return ensureAsyncStorage().then((als) => { - called = true; - return als.run(adapter, fn); - }).catch((err) => { - if (!called) return fn(); - throw err; - }); -}; -const runWithTransaction = async (adapter, fn) => { - let called = true; - return ensureAsyncStorage().then((als) => { - called = true; - return adapter.transaction(async (trx) => { - return als.run(trx, fn); - }); - }).catch((err) => { - if (!called) return fn(); - throw err; - }); -}; - -//#region src/error.ts -function isErrorStackTraceLimitWritable() { - const desc = Object.getOwnPropertyDescriptor(Error, "stackTraceLimit"); - if (desc === void 0) return Object.isExtensible(Error); - return Object.prototype.hasOwnProperty.call(desc, "writable") ? desc.writable : desc.set !== void 0; -} -/** -* Hide internal stack frames from the error stack trace. -*/ -function hideInternalStackFrames(stack) { - const lines = stack.split("\n at "); - if (lines.length <= 1) return stack; - lines.splice(1, 1); - return lines.join("\n at "); -} -/** -* Creates a custom error class that hides stack frames. -*/ -function makeErrorForHideStackFrame(Base, clazz) { - class HideStackFramesError extends Base { - #hiddenStack; - constructor(...args) { - if (isErrorStackTraceLimitWritable()) { - const limit = Error.stackTraceLimit; - Error.stackTraceLimit = 0; - super(...args); - Error.stackTraceLimit = limit; - } else super(...args); - const stack = (/* @__PURE__ */ new Error()).stack; - if (stack) this.#hiddenStack = hideInternalStackFrames(stack.replace(/^Error/, this.name)); - } - get errorStack() { - return this.#hiddenStack; - } - } - Object.defineProperty(HideStackFramesError.prototype, "constructor", { - get() { - return clazz; - }, - enumerable: false, - configurable: true - }); - return HideStackFramesError; -} -const statusCodes = { - OK: 200, - CREATED: 201, - ACCEPTED: 202, - NO_CONTENT: 204, - MULTIPLE_CHOICES: 300, - MOVED_PERMANENTLY: 301, - FOUND: 302, - SEE_OTHER: 303, - NOT_MODIFIED: 304, - TEMPORARY_REDIRECT: 307, - BAD_REQUEST: 400, - UNAUTHORIZED: 401, - PAYMENT_REQUIRED: 402, - FORBIDDEN: 403, - NOT_FOUND: 404, - METHOD_NOT_ALLOWED: 405, - NOT_ACCEPTABLE: 406, - PROXY_AUTHENTICATION_REQUIRED: 407, - REQUEST_TIMEOUT: 408, - CONFLICT: 409, - GONE: 410, - LENGTH_REQUIRED: 411, - PRECONDITION_FAILED: 412, - PAYLOAD_TOO_LARGE: 413, - URI_TOO_LONG: 414, - UNSUPPORTED_MEDIA_TYPE: 415, - RANGE_NOT_SATISFIABLE: 416, - EXPECTATION_FAILED: 417, - "I'M_A_TEAPOT": 418, - MISDIRECTED_REQUEST: 421, - UNPROCESSABLE_ENTITY: 422, - LOCKED: 423, - FAILED_DEPENDENCY: 424, - TOO_EARLY: 425, - UPGRADE_REQUIRED: 426, - PRECONDITION_REQUIRED: 428, - TOO_MANY_REQUESTS: 429, - REQUEST_HEADER_FIELDS_TOO_LARGE: 431, - UNAVAILABLE_FOR_LEGAL_REASONS: 451, - INTERNAL_SERVER_ERROR: 500, - NOT_IMPLEMENTED: 501, - BAD_GATEWAY: 502, - SERVICE_UNAVAILABLE: 503, - GATEWAY_TIMEOUT: 504, - HTTP_VERSION_NOT_SUPPORTED: 505, - VARIANT_ALSO_NEGOTIATES: 506, - INSUFFICIENT_STORAGE: 507, - LOOP_DETECTED: 508, - NOT_EXTENDED: 510, - NETWORK_AUTHENTICATION_REQUIRED: 511 -}; -var InternalAPIError = class extends Error { - constructor(status = "INTERNAL_SERVER_ERROR", body = void 0, headers = {}, statusCode = typeof status === "number" ? status : statusCodes[status]) { - super(body?.message, body?.cause ? { cause: body.cause } : void 0); - this.status = status; - this.body = body; - this.headers = headers; - this.statusCode = statusCode; - this.name = "APIError"; - this.status = status; - this.headers = headers; - this.statusCode = statusCode; - this.body = body ? { - code: body?.message?.toUpperCase().replace(/ /g, "_").replace(/[^A-Z0-9_]/g, ""), - ...body - } : void 0; - } -}; -var ValidationError$1 = class ValidationError extends InternalAPIError { - constructor(message, issues) { - super(400, { - message, - code: "VALIDATION_ERROR" - }); - this.message = message; - this.issues = issues; - this.issues = issues; - } -}; -var BetterCallError = class extends Error { - constructor(message) { - super(message); - this.name = "BetterCallError"; - } -}; -const APIError = makeErrorForHideStackFrame(InternalAPIError, Error); - -//#region src/utils.ts -const jsonContentTypeRegex = /^application\/([a-z0-9.+-]*\+)?json/i; -async function getBody$1(request, allowedMediaTypes) { - const contentType = request.headers.get("content-type") || ""; - const normalizedContentType = contentType.toLowerCase(); - if (!request.body) return; - if (allowedMediaTypes && allowedMediaTypes.length > 0) { - if (!allowedMediaTypes.some((allowed) => { - const normalizedContentTypeBase = normalizedContentType.split(";")[0].trim(); - const normalizedAllowed = allowed.toLowerCase().trim(); - return normalizedContentTypeBase === normalizedAllowed || normalizedContentTypeBase.includes(normalizedAllowed); - })) { - if (!normalizedContentType) throw new APIError(415, { - message: `Content-Type is required. Allowed types: ${allowedMediaTypes.join(", ")}`, - code: "UNSUPPORTED_MEDIA_TYPE" - }); - throw new APIError(415, { - message: `Content-Type "${contentType}" is not allowed. Allowed types: ${allowedMediaTypes.join(", ")}`, - code: "UNSUPPORTED_MEDIA_TYPE" - }); - } - } - if (jsonContentTypeRegex.test(normalizedContentType)) return await request.json(); - if (normalizedContentType.includes("application/x-www-form-urlencoded")) { - const formData = await request.formData(); - const result = {}; - formData.forEach((value, key) => { - result[key] = value.toString(); - }); - return result; - } - if (normalizedContentType.includes("multipart/form-data")) { - const formData = await request.formData(); - const result = {}; - formData.forEach((value, key) => { - result[key] = value; - }); - return result; - } - if (normalizedContentType.includes("text/plain")) return await request.text(); - if (normalizedContentType.includes("application/octet-stream")) return await request.arrayBuffer(); - if (normalizedContentType.includes("application/pdf") || normalizedContentType.includes("image/") || normalizedContentType.includes("video/")) return await request.blob(); - if (normalizedContentType.includes("application/stream") || request.body instanceof ReadableStream) return request.body; - return await request.text(); -} -function isAPIError(error) { - return error instanceof APIError || error?.name === "APIError"; -} -function tryDecode(str) { - try { - return str.includes("%") ? decodeURIComponent(str) : str; - } catch { - return str; - } -} -async function tryCatch(promise) { - try { - return { - data: await promise, - error: null - }; - } catch (error) { - return { - data: null, - error - }; - } -} -/** -* Check if an object is a `Request` -* - `instanceof`: works for native Request instances -* - `toString`: handles where instanceof check fails but the object is still a valid Request -*/ -function isRequest(obj) { - return obj instanceof Request || Object.prototype.toString.call(obj) === "[object Request]"; -} - -//#region src/to-response.ts -function isJSONSerializable$1(value) { - if (value === void 0) return false; - const t = typeof value; - if (t === "string" || t === "number" || t === "boolean" || t === null) return true; - if (t !== "object") return false; - if (Array.isArray(value)) return true; - if (value.buffer) return false; - return value.constructor && value.constructor.name === "Object" || typeof value.toJSON === "function"; -} -function safeStringify(obj, replacer, space) { - let id = 0; - const seen = /* @__PURE__ */ new WeakMap(); - const safeReplacer = (key, value) => { - if (typeof value === "bigint") return value.toString(); - if (typeof value === "object" && value !== null) { - if (seen.has(value)) return `[Circular ref-${seen.get(value)}]`; - seen.set(value, id++); - } - return value; - }; - return JSON.stringify(obj, safeReplacer, space); -} -function isJSONResponse(value) { - if (!value || typeof value !== "object") return false; - return "_flag" in value && value._flag === "json"; -} -function toResponse(data, init) { - if (data instanceof Response) { - if (init?.headers instanceof Headers) init.headers.forEach((value, key) => { - data.headers.set(key, value); - }); - return data; - } - if (isJSONResponse(data)) { - const body$1 = data.body; - const routerResponse = data.routerResponse; - if (routerResponse instanceof Response) return routerResponse; - const headers$1 = new Headers(); - if (routerResponse?.headers) { - const headers$2 = new Headers(routerResponse.headers); - for (const [key, value] of headers$2.entries()) headers$2.set(key, value); - } - if (data.headers) for (const [key, value] of new Headers(data.headers).entries()) headers$1.set(key, value); - if (init?.headers) for (const [key, value] of new Headers(init.headers).entries()) headers$1.set(key, value); - headers$1.set("Content-Type", "application/json"); - return new Response(JSON.stringify(body$1), { - ...routerResponse, - headers: headers$1, - status: data.status ?? init?.status ?? routerResponse?.status, - statusText: init?.statusText ?? routerResponse?.statusText - }); - } - if (isAPIError(data)) return toResponse(data.body, { - status: init?.status ?? data.statusCode, - statusText: data.status.toString(), - headers: init?.headers || data.headers - }); - let body = data; - let headers = new Headers(init?.headers); - if (!data) { - if (data === null) body = JSON.stringify(null); - headers.set("content-type", "application/json"); - } else if (typeof data === "string") { - body = data; - headers.set("Content-Type", "text/plain"); - } else if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) { - body = data; - headers.set("Content-Type", "application/octet-stream"); - } else if (data instanceof Blob) { - body = data; - headers.set("Content-Type", data.type || "application/octet-stream"); - } else if (data instanceof FormData) body = data; - else if (data instanceof URLSearchParams) { - body = data; - headers.set("Content-Type", "application/x-www-form-urlencoded"); - } else if (data instanceof ReadableStream) { - body = data; - headers.set("Content-Type", "application/octet-stream"); - } else if (isJSONSerializable$1(data)) { - body = safeStringify(data); - headers.set("Content-Type", "application/json"); - } - return new Response(body, { - ...init, - headers - }); -} - -function getWebcryptoSubtle() { - const cr = typeof globalThis !== "undefined" && globalThis.crypto; - if (cr && typeof cr.subtle === "object" && cr.subtle != null) - return cr.subtle; - throw new Error("crypto.subtle must be defined"); -} - -//#region src/crypto.ts -const algorithm = { - name: "HMAC", - hash: "SHA-256" -}; -const getCryptoKey$2 = async (secret) => { - const secretBuf = typeof secret === "string" ? new TextEncoder().encode(secret) : secret; - return await getWebcryptoSubtle().importKey("raw", secretBuf, algorithm, false, ["sign", "verify"]); -}; -const verifySignature = async (base64Signature, value, secret) => { - try { - const signatureBinStr = atob(base64Signature); - const signature = new Uint8Array(signatureBinStr.length); - for (let i = 0, len = signatureBinStr.length; i < len; i++) signature[i] = signatureBinStr.charCodeAt(i); - return await getWebcryptoSubtle().verify(algorithm, secret, signature, new TextEncoder().encode(value)); - } catch (e) { - return false; - } -}; -const makeSignature = async (value, secret) => { - const key = await getCryptoKey$2(secret); - const signature = await getWebcryptoSubtle().sign(algorithm.name, key, new TextEncoder().encode(value)); - return btoa(String.fromCharCode(...new Uint8Array(signature))); -}; -const signCookieValue = async (value, secret) => { - const signature = await makeSignature(value, secret); - value = `${value}.${signature}`; - value = encodeURIComponent(value); - return value; -}; - -//#region src/cookies.ts -const getCookieKey = (key, prefix) => { - let finalKey = key; - if (prefix) if (prefix === "secure") finalKey = "__Secure-" + key; - else if (prefix === "host") finalKey = "__Host-" + key; - else return; - return finalKey; -}; -/** -* Parse an HTTP Cookie header string and returning an object of all cookie -* name-value pairs. -* -* Inspired by https://github.com/unjs/cookie-es/blob/main/src/cookie/parse.ts -* -* @param str the string representing a `Cookie` header value -*/ -function parseCookies(str) { - if (typeof str !== "string") throw new TypeError("argument str must be a string"); - const cookies = /* @__PURE__ */ new Map(); - let index = 0; - while (index < str.length) { - const eqIdx = str.indexOf("=", index); - if (eqIdx === -1) break; - let endIdx = str.indexOf(";", index); - if (endIdx === -1) endIdx = str.length; - else if (endIdx < eqIdx) { - index = str.lastIndexOf(";", eqIdx - 1) + 1; - continue; - } - const key = str.slice(index, eqIdx).trim(); - if (!cookies.has(key)) { - let val = str.slice(eqIdx + 1, endIdx).trim(); - if (val.codePointAt(0) === 34) val = val.slice(1, -1); - cookies.set(key, tryDecode(val)); - } - index = endIdx + 1; - } - return cookies; -} -const _serialize = (key, value, opt = {}) => { - let cookie; - if (opt?.prefix === "secure") cookie = `${`__Secure-${key}`}=${value}`; - else if (opt?.prefix === "host") cookie = `${`__Host-${key}`}=${value}`; - else cookie = `${key}=${value}`; - if (key.startsWith("__Secure-") && !opt.secure) opt.secure = true; - if (key.startsWith("__Host-")) { - if (!opt.secure) opt.secure = true; - if (opt.path !== "/") opt.path = "/"; - if (opt.domain) opt.domain = void 0; - } - if (opt && typeof opt.maxAge === "number" && opt.maxAge >= 0) { - if (opt.maxAge > 3456e4) throw new Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration."); - cookie += `; Max-Age=${Math.floor(opt.maxAge)}`; - } - if (opt.domain && opt.prefix !== "host") cookie += `; Domain=${opt.domain}`; - if (opt.path) cookie += `; Path=${opt.path}`; - if (opt.expires) { - if (opt.expires.getTime() - Date.now() > 3456e7) throw new Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future."); - cookie += `; Expires=${opt.expires.toUTCString()}`; - } - if (opt.httpOnly) cookie += "; HttpOnly"; - if (opt.secure) cookie += "; Secure"; - if (opt.sameSite) cookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`; - if (opt.partitioned) { - if (!opt.secure) opt.secure = true; - cookie += "; Partitioned"; - } - return cookie; -}; -const serializeCookie = (key, value, opt) => { - value = encodeURIComponent(value); - return _serialize(key, value, opt); -}; -const serializeSignedCookie = async (key, value, secret, opt) => { - value = await signCookieValue(value, secret); - return _serialize(key, value, opt); -}; - -//#region src/validator.ts -/** -* Runs validation on body and query -* @returns error and data object -*/ -async function runValidation(options, context = {}) { - let request = { - body: context.body, - query: context.query - }; - if (options.body) { - const result = await options.body["~standard"].validate(context.body); - if (result.issues) return { - data: null, - error: fromError(result.issues, "body") - }; - request.body = result.value; - } - if (options.query) { - const result = await options.query["~standard"].validate(context.query); - if (result.issues) return { - data: null, - error: fromError(result.issues, "query") - }; - request.query = result.value; - } - if (options.requireHeaders && !context.headers) return { - data: null, - error: { - message: "Headers is required", - issues: [] - } - }; - if (options.requireRequest && !context.request) return { - data: null, - error: { - message: "Request is required", - issues: [] - } - }; - return { - data: request, - error: null - }; -} -function fromError(error, validating) { - return { - message: error.map((e) => { - return `[${e.path?.length ? `${validating}.` + e.path.map((x) => typeof x === "object" ? x.key : x).join(".") : validating}] ${e.message}`; - }).join("; "), - issues: error - }; -} - -//#region src/context.ts -const createInternalContext = async (context, { options, path }) => { - const headers = new Headers(); - let responseStatus = void 0; - const { data, error } = await runValidation(options, context); - if (error) throw new ValidationError$1(error.message, error.issues); - const requestHeaders = "headers" in context ? context.headers instanceof Headers ? context.headers : new Headers(context.headers) : "request" in context && isRequest(context.request) ? context.request.headers : null; - const requestCookies = requestHeaders?.get("cookie"); - const parsedCookies = requestCookies ? parseCookies(requestCookies) : void 0; - const internalContext = { - ...context, - body: data.body, - query: data.query, - path: context.path || path || "virtual:", - context: "context" in context && context.context ? context.context : {}, - returned: void 0, - headers: context?.headers, - request: context?.request, - params: "params" in context ? context.params : void 0, - method: context.method ?? (Array.isArray(options.method) ? options.method[0] : options.method === "*" ? "GET" : options.method), - setHeader: (key, value) => { - headers.set(key, value); - }, - getHeader: (key) => { - if (!requestHeaders) return null; - return requestHeaders.get(key); - }, - getCookie: (key, prefix) => { - const finalKey = getCookieKey(key, prefix); - if (!finalKey) return null; - return parsedCookies?.get(finalKey) || null; - }, - getSignedCookie: async (key, secret, prefix) => { - const finalKey = getCookieKey(key, prefix); - if (!finalKey) return null; - const value = parsedCookies?.get(finalKey); - if (!value) return null; - const signatureStartPos = value.lastIndexOf("."); - if (signatureStartPos < 1) return null; - const signedValue = value.substring(0, signatureStartPos); - const signature = value.substring(signatureStartPos + 1); - if (signature.length !== 44 || !signature.endsWith("=")) return null; - return await verifySignature(signature, signedValue, await getCryptoKey$2(secret)) ? signedValue : false; - }, - setCookie: (key, value, options$1) => { - const cookie = serializeCookie(key, value, options$1); - headers.append("set-cookie", cookie); - return cookie; - }, - setSignedCookie: async (key, value, secret, options$1) => { - const cookie = await serializeSignedCookie(key, value, secret, options$1); - headers.append("set-cookie", cookie); - return cookie; - }, - redirect: (url) => { - headers.set("location", url); - return new APIError("FOUND", void 0, headers); - }, - error: (status, body, headers$1) => { - return new APIError(status, body, headers$1); - }, - setStatus: (status) => { - responseStatus = status; - }, - json: (json, routerResponse) => { - if (!context.asResponse) return json; - return { - body: routerResponse?.body || json, - routerResponse, - _flag: "json" - }; - }, - responseHeaders: headers, - get responseStatus() { - return responseStatus; - } - }; - for (const middleware of options.use || []) { - const response = await middleware({ - ...internalContext, - returnHeaders: true, - asResponse: false - }); - if (response.response) Object.assign(internalContext.context, response.response); - /** - * Apply headers from the middleware to the endpoint headers - */ - if (response.headers) response.headers.forEach((value, key) => { - internalContext.responseHeaders.set(key, value); - }); - } - return internalContext; -}; - -//#region src/endpoint.ts -function createEndpoint(pathOrOptions, handlerOrOptions, handlerOrNever) { - const path = typeof pathOrOptions === "string" ? pathOrOptions : void 0; - const options = typeof handlerOrOptions === "object" ? handlerOrOptions : pathOrOptions; - const handler = typeof handlerOrOptions === "function" ? handlerOrOptions : handlerOrNever; - if ((options.method === "GET" || options.method === "HEAD") && options.body) throw new BetterCallError("Body is not allowed with GET or HEAD methods"); - if (path && /\/{2,}/.test(path)) throw new BetterCallError("Path cannot contain consecutive slashes"); - const internalHandler = async (...inputCtx) => { - const context = inputCtx[0] || {}; - const { data: internalContext, error: validationError } = await tryCatch(createInternalContext(context, { - options, - path - })); - if (validationError) { - if (!(validationError instanceof ValidationError$1)) throw validationError; - if (options.onValidationError) await options.onValidationError({ - message: validationError.message, - issues: validationError.issues - }); - throw new APIError(400, { - message: validationError.message, - code: "VALIDATION_ERROR" - }); - } - const response = await handler(internalContext).catch(async (e) => { - if (isAPIError(e)) { - const onAPIError = options.onAPIError; - if (onAPIError) await onAPIError(e); - if (context.asResponse) return e; - } - throw e; - }); - const headers = internalContext.responseHeaders; - const status = internalContext.responseStatus; - return context.asResponse ? toResponse(response, { - headers, - status - }) : context.returnHeaders ? context.returnStatus ? { - headers, - response, - status - } : { - headers, - response - } : context.returnStatus ? { - response, - status - } : response; - }; - internalHandler.options = options; - internalHandler.path = path; - return internalHandler; -} -createEndpoint.create = (opts) => { - return (path, options, handler) => { - return createEndpoint(path, { - ...options, - use: [...options?.use || [], ...opts?.use || []] - }, handler); - }; -}; - -//#region src/middleware.ts -function createMiddleware(optionsOrHandler, handler) { - const internalHandler = async (inputCtx) => { - const context = inputCtx; - const _handler = typeof optionsOrHandler === "function" ? optionsOrHandler : handler; - const internalContext = await createInternalContext(context, { - options: typeof optionsOrHandler === "function" ? {} : optionsOrHandler, - path: "/" - }); - if (!_handler) throw new Error("handler must be defined"); - const response = await _handler(internalContext); - const headers = internalContext.responseHeaders; - return context.returnHeaders ? { - headers, - response - } : response; - }; - internalHandler.options = typeof optionsOrHandler === "function" ? {} : optionsOrHandler; - return internalHandler; -} -createMiddleware.create = (opts) => { - function fn(optionsOrHandler, handler) { - if (typeof optionsOrHandler === "function") return createMiddleware({ use: opts?.use }, optionsOrHandler); - if (!handler) throw new Error("Middleware handler is required"); - return createMiddleware({ - ...optionsOrHandler, - method: "*", - use: [...opts?.use || [], ...optionsOrHandler.use || []] - }, handler); - } - return fn; -}; - -//#region src/openapi.ts -const paths = {}; -function getTypeFromZodType(zodType) { - switch (zodType.constructor.name) { - case "ZodString": return "string"; - case "ZodNumber": return "number"; - case "ZodBoolean": return "boolean"; - case "ZodObject": return "object"; - case "ZodArray": return "array"; - default: return "string"; - } -} -function getParameters(options) { - const parameters = []; - if (options.metadata?.openapi?.parameters) { - parameters.push(...options.metadata.openapi.parameters); - return parameters; - } - if (options.query instanceof ZodObject) Object.entries(options.query.shape).forEach(([key, value]) => { - if (value instanceof ZodObject) parameters.push({ - name: key, - in: "query", - schema: { - type: getTypeFromZodType(value), - ..."minLength" in value && value.minLength ? { minLength: value.minLength } : {}, - description: value.description - } - }); - }); - return parameters; -} -function getRequestBody(options) { - if (options.metadata?.openapi?.requestBody) return options.metadata.openapi.requestBody; - if (!options.body) return void 0; - if (options.body instanceof ZodObject || options.body instanceof ZodOptional) { - const shape = options.body.shape; - if (!shape) return void 0; - const properties = {}; - const required = []; - Object.entries(shape).forEach(([key, value]) => { - if (value instanceof ZodObject) { - properties[key] = { - type: getTypeFromZodType(value), - description: value.description - }; - if (!(value instanceof ZodOptional)) required.push(key); - } - }); - return { - required: options.body instanceof ZodOptional ? false : options.body ? true : false, - content: { "application/json": { schema: { - type: "object", - properties, - required - } } } - }; - } -} -function getResponse(responses) { - return { - "400": { - content: { "application/json": { schema: { - type: "object", - properties: { message: { type: "string" } }, - required: ["message"] - } } }, - description: "Bad Request. Usually due to missing parameters, or invalid parameters." - }, - "401": { - content: { "application/json": { schema: { - type: "object", - properties: { message: { type: "string" } }, - required: ["message"] - } } }, - description: "Unauthorized. Due to missing or invalid authentication." - }, - "403": { - content: { "application/json": { schema: { - type: "object", - properties: { message: { type: "string" } } - } } }, - description: "Forbidden. You do not have permission to access this resource or to perform this action." - }, - "404": { - content: { "application/json": { schema: { - type: "object", - properties: { message: { type: "string" } } - } } }, - description: "Not Found. The requested resource was not found." - }, - "429": { - content: { "application/json": { schema: { - type: "object", - properties: { message: { type: "string" } } - } } }, - description: "Too Many Requests. You have exceeded the rate limit. Try again later." - }, - "500": { - content: { "application/json": { schema: { - type: "object", - properties: { message: { type: "string" } } - } } }, - description: "Internal Server Error. This is a problem with the server that you cannot fix." - }, - ...responses - }; -} -async function generator(endpoints, config) { - const components = { schemas: {} }; - Object.entries(endpoints).forEach(([_, value]) => { - const options = value.options; - if (!value.path || options.metadata?.SERVER_ONLY) return; - if (options.method === "GET") paths[value.path] = { get: { - tags: ["Default", ...options.metadata?.openapi?.tags || []], - description: options.metadata?.openapi?.description, - operationId: options.metadata?.openapi?.operationId, - security: [{ bearerAuth: [] }], - parameters: getParameters(options), - responses: getResponse(options.metadata?.openapi?.responses) - } }; - if (options.method === "POST") { - const body = getRequestBody(options); - paths[value.path] = { post: { - tags: ["Default", ...options.metadata?.openapi?.tags || []], - description: options.metadata?.openapi?.description, - operationId: options.metadata?.openapi?.operationId, - security: [{ bearerAuth: [] }], - parameters: getParameters(options), - ...body ? { requestBody: body } : { requestBody: { content: { "application/json": { schema: { - type: "object", - properties: {} - } } } } }, - responses: getResponse(options.metadata?.openapi?.responses) - } }; - } - }); - return { - openapi: "3.1.1", - info: { - title: "Better Auth", - description: "API Reference for your Better Auth Instance", - version: "1.1.0" - }, - components, - security: [{ apiKeyCookie: [] }], - servers: [{ url: config?.url }], - tags: [{ - name: "Default", - description: "Default endpoints that are included with Better Auth by default. These endpoints are not part of any plugin." - }], - paths - }; -} -const getHTML = (apiReference, config) => ` - - - Scalar API Reference - - - - -