summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-01-03 10:15:20 -0300
committerSebastian <sebasjm@gmail.com>2024-01-03 10:15:20 -0300
commit7ea433b5928a5319ca9b5e1510738374dbb45b2e (patch)
tree1473036dfbca7d42e77ffc2bb70eb79ddb453498
parent1b76ec350b6a6e3092f96939c2cfa1e16d5ca2bd (diff)
downloadwallet-core-7ea433b5928a5319ca9b5e1510738374dbb45b2e.tar.gz
wallet-core-7ea433b5928a5319ca9b5e1510738374dbb45b2e.tar.bz2
wallet-core-7ea433b5928a5319ca9b5e1510738374dbb45b2e.zip
built from 609ad091e332e4150b4d472284e5a9518cbe7571
-rw-r--r--aml-backoffice/bof2
-rw-r--r--aml-backoffice/index.css373
-rw-r--r--aml-backoffice/index.css.map4
-rw-r--r--aml-backoffice/index.js30893
-rw-r--r--aml-backoffice/index.js.map8
5 files changed, 7968 insertions, 23312 deletions
diff --git a/aml-backoffice/bof b/aml-backoffice/bof
index 982baeea4..0ed549b5f 100644
--- a/aml-backoffice/bof
+++ b/aml-backoffice/bof
@@ -1,7 +1,5 @@
-home-T6CEYIGI.svg
index.css
index.css.map
index.html
index.js
index.js.map
-people-RQ47M3B2.svg
diff --git a/aml-backoffice/index.css b/aml-backoffice/index.css
index bf6e59ab2..99bf15a26 100644
--- a/aml-backoffice/index.css
+++ b/aml-backoffice/index.css
@@ -614,24 +614,42 @@ select {
top: 0px;
bottom: 0px;
}
+.-left-\[15px\] {
+ left: -15px;
+}
+.-top-\[21px\] {
+ top: -21px;
+}
.bottom-0 {
bottom: 0px;
}
+.bottom-1\/2 {
+ bottom: 50%;
+}
.bottom-4 {
bottom: 1rem;
}
.left-0 {
left: 0px;
}
+.left-1\/2 {
+ left: 50%;
+}
.left-4 {
left: 1rem;
}
+.left-\[calc\(50\%-1px\)\] {
+ left: calc(50% - 1px);
+}
.right-0 {
right: 0px;
}
.top-0 {
top: 0px;
}
+.top-1\/2 {
+ top: 50%;
+}
.top-4 {
top: 1rem;
}
@@ -650,6 +668,12 @@ select {
.m-0 {
margin: 0px;
}
+.m-1 {
+ margin: 0.25rem;
+}
+.m-1\.5 {
+ margin: 0.375rem;
+}
.m-4 {
margin: 1rem;
}
@@ -657,14 +681,6 @@ select {
margin-left: -0.5rem;
margin-right: -0.5rem;
}
-.-mx-4 {
- margin-left: -1rem;
- margin-right: -1rem;
-}
-.-my-2 {
- margin-top: -0.5rem;
- margin-bottom: -0.5rem;
-}
.mx-4 {
margin-left: 1rem;
margin-right: 1rem;
@@ -677,6 +693,10 @@ select {
margin-left: auto;
margin-right: auto;
}
+.my-0 {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
.my-2 {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
@@ -685,6 +705,9 @@ select {
margin-top: 1rem;
margin-bottom: 1rem;
}
+.-ml-10 {
+ margin-left: -2.5rem;
+}
.-ml-px {
margin-left: -1px;
}
@@ -697,9 +720,6 @@ select {
.-mt-5 {
margin-top: -1.25rem;
}
-.-mt-px {
- margin-top: -1px;
-}
.mb-2 {
margin-bottom: 0.5rem;
}
@@ -721,9 +741,6 @@ select {
.mr-2 {
margin-right: 0.5rem;
}
-.mr-3 {
- margin-right: 0.75rem;
-}
.mt-0 {
margin-top: 0px;
}
@@ -751,6 +768,9 @@ select {
.mt-auto {
margin-top: auto;
}
+.box-content {
+ box-sizing: content-box;
+}
.block {
display: block;
}
@@ -790,6 +810,9 @@ select {
.h-16 {
height: 4rem;
}
+.h-2\/5 {
+ height: 40%;
+}
.h-24 {
height: 6rem;
}
@@ -811,18 +834,33 @@ select {
.h-8 {
height: 2rem;
}
+.h-\[260px\] {
+ height: 260px;
+}
+.h-\[32px\] {
+ height: 32px;
+}
+.h-\[4px\] {
+ height: 4px;
+}
+.h-\[56px\] {
+ height: 56px;
+}
+.h-\[6px\] {
+ height: 6px;
+}
.h-full {
height: 100%;
}
.max-h-60 {
max-height: 15rem;
}
+.min-h-\[305px\] {
+ min-height: 305px;
+}
.min-h-full {
min-height: 100%;
}
-.w-0 {
- width: 0px;
-}
.w-1 {
width: 0.25rem;
}
@@ -835,14 +873,17 @@ select {
.w-12 {
width: 3rem;
}
+.w-28 {
+ width: 7rem;
+}
.w-3 {
width: 0.75rem;
}
.w-4 {
width: 1rem;
}
-.w-48 {
- width: 12rem;
+.w-40 {
+ width: 10rem;
}
.w-5 {
width: 1.25rem;
@@ -850,9 +891,30 @@ select {
.w-6 {
width: 1.5rem;
}
+.w-7 {
+ width: 1.75rem;
+}
.w-8 {
width: 2rem;
}
+.w-80 {
+ width: 20rem;
+}
+.w-\[260px\] {
+ width: 260px;
+}
+.w-\[2px\] {
+ width: 2px;
+}
+.w-\[32px\] {
+ width: 32px;
+}
+.w-\[4px\] {
+ width: 4px;
+}
+.w-\[6px\] {
+ width: 6px;
+}
.w-auto {
width: auto;
}
@@ -869,12 +931,22 @@ select {
.min-w-0 {
min-width: 0px;
}
+.min-w-\[310px\] {
+ min-width: 310px;
+}
.min-w-full {
min-width: 100%;
}
+.min-w-min {
+ min-width: -moz-min-content;
+ min-width: min-content;
+}
.max-w-2xl {
max-width: 42rem;
}
+.max-w-\[325px\] {
+ max-width: 325px;
+}
.max-w-full {
max-width: 100%;
}
@@ -890,6 +962,9 @@ select {
.flex-auto {
flex: 1 1 auto;
}
+.flex-none {
+ flex: none;
+}
.flex-shrink-0 {
flex-shrink: 0;
}
@@ -902,6 +977,17 @@ select {
.grow {
flex-grow: 1;
}
+.origin-\[center_bottom_0\] {
+ transform-origin: center bottom 0;
+}
+.-translate-x-1\/2 {
+ --tw-translate-x: -50%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.-translate-y-1\/2 {
+ --tw-translate-y: -50%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
.translate-x-5 {
--tw-translate-x: 1.25rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -913,6 +999,9 @@ select {
.transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
+.animate-\[show-up-clock_350ms_linear\] {
+ animation: show-up-clock 350ms linear;
+}
.cursor-default {
cursor: default;
}
@@ -930,6 +1019,9 @@ select {
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
+.grid-cols-7 {
+ grid-template-columns: repeat(7, minmax(0, 1fr));
+}
.flex-row {
flex-direction: row;
}
@@ -957,6 +1049,15 @@ select {
.justify-between {
justify-content: space-between;
}
+.justify-around {
+ justify-content: space-around;
+}
+.justify-evenly {
+ justify-content: space-evenly;
+}
+.gap-px {
+ gap: 1px;
+}
.gap-x-0 {
-moz-column-gap: 0px;
column-gap: 0px;
@@ -988,9 +1089,6 @@ select {
.gap-y-2 {
row-gap: 0.5rem;
}
-.gap-y-5 {
- row-gap: 1.25rem;
-}
.gap-y-7 {
row-gap: 1.75rem;
}
@@ -1059,6 +1157,9 @@ select {
.overflow-y-auto {
overflow-y: auto;
}
+.overflow-x-hidden {
+ overflow-x: hidden;
+}
.overflow-x-clip {
overflow-x: clip;
}
@@ -1082,6 +1183,12 @@ select {
.rounded {
border-radius: 0.25rem;
}
+.rounded-\[100\%\] {
+ border-radius: 100%;
+}
+.rounded-\[50\%\] {
+ border-radius: 50%;
+}
.rounded-full {
border-radius: 9999px;
}
@@ -1097,6 +1204,10 @@ select {
.rounded-sm {
border-radius: 0.125rem;
}
+.rounded-b-lg {
+ border-bottom-right-radius: 0.5rem;
+ border-bottom-left-radius: 0.5rem;
+}
.rounded-l-md {
border-top-left-radius: 0.375rem;
border-bottom-left-radius: 0.375rem;
@@ -1109,6 +1220,14 @@ select {
border-top-right-radius: 0.375rem;
border-bottom-right-radius: 0.375rem;
}
+.rounded-t-lg {
+ border-top-left-radius: 0.5rem;
+ border-top-right-radius: 0.5rem;
+}
+.rounded-t-sm {
+ border-top-left-radius: 0.125rem;
+ border-top-right-radius: 0.125rem;
+}
.rounded-bl-md {
border-bottom-left-radius: 0.375rem;
}
@@ -1130,6 +1249,9 @@ select {
.border-2 {
border-width: 2px;
}
+.border-\[14px\] {
+ border-width: 14px;
+}
.border-b {
border-bottom-width: 1px;
}
@@ -1142,12 +1264,22 @@ select {
.border-r-2 {
border-right-width: 2px;
}
-.border-t-2 {
- border-top-width: 2px;
+.border-t {
+ border-top-width: 1px;
+}
+.border-solid {
+ border-style: solid;
}
.border-dashed {
border-style: dashed;
}
+.border-none {
+ border-style: none;
+}
+.border-\[\#3b71ca\] {
+ --tw-border-opacity: 1;
+ border-color: rgb(59 113 202 / var(--tw-border-opacity));
+}
.border-gray-200 {
--tw-border-opacity: 1;
border-color: rgb(229 231 235 / var(--tw-border-opacity));
@@ -1167,10 +1299,6 @@ select {
--tw-border-opacity: 1;
border-color: rgb(129 140 248 / var(--tw-border-opacity));
}
-.border-indigo-500 {
- --tw-border-opacity: 1;
- border-color: rgb(99 102 241 / var(--tw-border-opacity));
-}
.border-indigo-600 {
--tw-border-opacity: 1;
border-color: rgb(79 70 229 / var(--tw-border-opacity));
@@ -1184,6 +1312,13 @@ select {
.border-opacity-25 {
--tw-border-opacity: 0.25;
}
+.bg-\[\#00000012\] {
+ background-color: #00000012;
+}
+.bg-\[\#3b71ca\] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(59 113 202 / var(--tw-bg-opacity));
+}
.bg-black {
--tw-bg-opacity: 1;
background-color: rgb(0 0 0 / var(--tw-bg-opacity));
@@ -1200,6 +1335,10 @@ select {
--tw-bg-opacity: 1;
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}
+.bg-gray-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(107 114 128 / var(--tw-bg-opacity));
+}
.bg-green-50 {
--tw-bg-opacity: 1;
background-color: rgb(240 253 244 / var(--tw-bg-opacity));
@@ -1239,6 +1378,9 @@ select {
--tw-bg-opacity: 1;
background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}
+.bg-opacity-75 {
+ --tw-bg-opacity: 0.75;
+}
.stroke-gray-700\/50 {
stroke: rgb(55 65 81 / 0.5);
}
@@ -1246,9 +1388,18 @@ select {
-o-object-fit: cover;
object-fit: cover;
}
+.p-0 {
+ padding: 0px;
+}
.p-1 {
padding: 0.25rem;
}
+.p-1\.5 {
+ padding: 0.375rem;
+}
+.p-12 {
+ padding: 3rem;
+}
.p-2 {
padding: 0.5rem;
}
@@ -1278,6 +1429,10 @@ select {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
+.px-\[12px\] {
+ padding-left: 12px;
+ padding-right: 12px;
+}
.py-1 {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
@@ -1331,9 +1486,6 @@ select {
.pl-3 {
padding-left: 0.75rem;
}
-.pr-1 {
- padding-right: 0.25rem;
-}
.pr-10 {
padding-right: 2.5rem;
}
@@ -1404,6 +1556,15 @@ select {
.text-\[0\.625rem\] {
font-size: 0.625rem;
}
+.text-\[1\.1rem\] {
+ font-size: 1.1rem;
+}
+.text-\[18px\] {
+ font-size: 18px;
+}
+.text-\[3\.75rem\] {
+ font-size: 3.75rem;
+}
.text-base {
font-size: 1rem;
line-height: 1.5rem;
@@ -1427,6 +1588,9 @@ select {
.font-bold {
font-weight: 700;
}
+.font-light {
+ font-weight: 300;
+}
.font-medium {
font-weight: 500;
}
@@ -1457,12 +1621,18 @@ select {
.leading-9 {
line-height: 2.25rem;
}
+.leading-\[1\.2\] {
+ line-height: 1.2;
+}
.leading-none {
line-height: 1;
}
.tracking-tight {
letter-spacing: -0.025em;
}
+.text-\[\#ffffff8a\] {
+ color: #ffffff8a;
+}
.text-black {
--tw-text-opacity: 1;
color: rgb(0 0 0 / var(--tw-text-opacity));
@@ -1530,6 +1700,9 @@ select {
.opacity-0 {
opacity: 0;
}
+.opacity-\[\.54\] {
+ opacity: .54;
+}
.shadow {
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
@@ -1662,6 +1835,11 @@ select {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
+.transition-all {
+ transition-property: all;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
.transition-colors {
transition-property:
color,
@@ -1673,6 +1851,11 @@ select {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
+.transition-opacity {
+ transition-property: opacity;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
.duration-200 {
transition-duration: 200ms;
}
@@ -1682,6 +1865,18 @@ select {
.ease-in-out {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
+.selection\:bg-transparent *::-moz-selection {
+ background-color: transparent;
+}
+.selection\:bg-transparent *::selection {
+ background-color: transparent;
+}
+.selection\:bg-transparent::-moz-selection {
+ background-color: transparent;
+}
+.selection\:bg-transparent::selection {
+ background-color: transparent;
+}
.placeholder\:text-gray-400::-moz-placeholder {
--tw-text-opacity: 1;
color: rgb(156 163 175 / var(--tw-text-opacity));
@@ -1720,9 +1915,8 @@ select {
.focus-within\:ring-offset-2:focus-within {
--tw-ring-offset-width: 2px;
}
-.hover\:border-gray-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-border-opacity));
+.hover\:bg-\[\#00000026\]:hover {
+ background-color: #00000026;
}
.hover\:bg-gray-100:hover {
--tw-bg-opacity: 1;
@@ -1739,6 +1933,10 @@ select {
.hover\:bg-gray-500\/20:hover {
background-color: rgb(107 114 128 / 0.2);
}
+.hover\:bg-gray-700:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity));
+}
.hover\:bg-indigo-500:hover {
--tw-bg-opacity: 1;
background-color: rgb(99 102 241 / var(--tw-bg-opacity));
@@ -1766,10 +1964,6 @@ select {
--tw-text-opacity: 1;
color: rgb(107 114 128 / var(--tw-text-opacity));
}
-.hover\:text-gray-700:hover {
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
-}
.hover\:text-indigo-500:hover {
--tw-text-opacity: 1;
color: rgb(99 102 241 / var(--tw-text-opacity));
@@ -1789,6 +1983,10 @@ select {
.hover\:opacity-70:hover {
opacity: 0.7;
}
+.hover\:outline-none:hover {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
.hover\:ring-indigo-500:hover {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
@@ -1796,6 +1994,9 @@ select {
.focus\:z-10:focus {
z-index: 10;
}
+.focus\:bg-\[\#00000026\]:focus {
+ background-color: #00000026;
+}
.focus\:outline-none:focus {
outline: 2px solid transparent;
outline-offset: 2px;
@@ -1839,6 +2040,9 @@ select {
.focus-visible\:outline-2:focus-visible {
outline-width: 2px;
}
+.focus-visible\:outline-offset-0:focus-visible {
+ outline-offset: 0px;
+}
.focus-visible\:outline-offset-2:focus-visible {
outline-offset: 2px;
}
@@ -1848,6 +2052,10 @@ select {
.disabled\:cursor-not-allowed:disabled {
cursor: not-allowed;
}
+.disabled\:bg-gray-100:disabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity));
+}
.disabled\:bg-gray-50:disabled {
--tw-bg-opacity: 1;
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
@@ -1946,30 +2154,93 @@ select {
--tw-translate-x: 0px;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
+.data-\[ok\=true\]\:cursor-pointer[data-ok=true] {
+ cursor: pointer;
+}
.data-\[enabled\=false\]\:bg-gray-200[data-enabled=false] {
--tw-bg-opacity: 1;
background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
+.data-\[month\=false\]\:bg-gray-100[data-month=false] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity));
+}
+.data-\[month\=true\]\:bg-white[data-month=true] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
+}
+.data-\[selected\=true\]\:\!bg-blue-400[data-selected=true] {
+ --tw-bg-opacity: 1 !important;
+ background-color: rgb(96 165 250 / var(--tw-bg-opacity)) !important;
+}
+.data-\[selected\=true\]\:bg-\[\#3b71ca\][data-selected=true] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(59 113 202 / var(--tw-bg-opacity));
+}
.data-\[selected\=true\]\:bg-indigo-700[data-selected=true] {
--tw-bg-opacity: 1;
background-color: rgb(67 56 202 / var(--tw-bg-opacity));
}
+.data-\[today\=true\]\:bg-red-300[data-today=true] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(252 165 165 / var(--tw-bg-opacity));
+}
+.data-\[selected\=true\]\:font-normal[data-selected=true] {
+ font-weight: 400;
+}
+.data-\[today\=true\]\:font-semibold[data-today=true] {
+ font-weight: 600;
+}
+.data-\[month\=true\]\:text-gray-900[data-month=true] {
+ --tw-text-opacity: 1;
+ color: rgb(17 24 39 / var(--tw-text-opacity));
+}
.data-\[selected\=true\]\:text-white[data-selected=true] {
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity));
}
+.data-\[month\=true\]\:hover\:bg-gray-200:hover[data-month=true] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity));
+}
+.data-\[selected\=true\]\:hover\:\!bg-blue-300:hover[data-selected=true] {
+ --tw-bg-opacity: 1 !important;
+ background-color: rgb(147 197 253 / var(--tw-bg-opacity)) !important;
+}
+.data-\[today\=true\]\:hover\:bg-red-200:hover[data-today=true] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(254 202 202 / var(--tw-bg-opacity));
+}
+:is([dir=rtl] .rtl\:\!left-auto) {
+ left: auto !important;
+}
+:is([dir=rtl] .rtl\:\!origin-\[50\%_50\%_0\]) {
+ transform-origin: 50% 50% 0 !important;
+}
+@media (prefers-color-scheme: dark) {
+ .dark\:bg-zinc-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(113 113 122 / var(--tw-bg-opacity));
+ }
+ .dark\:bg-zinc-600\/50 {
+ background-color: rgb(82 82 91 / 0.5);
+ }
+ .dark\:bg-zinc-700 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(63 63 70 / var(--tw-bg-opacity));
+ }
+}
@media (min-width: 640px) {
.sm\:col-span-6 {
grid-column: span 6 / span 6;
}
- .sm\:-mx-6 {
- margin-left: -1.5rem;
- margin-right: -1.5rem;
- }
.sm\:mx-auto {
margin-left: auto;
margin-right: auto;
}
+ .sm\:block {
+ display: block;
+ }
.sm\:inline {
display: inline;
}
@@ -1997,6 +2268,9 @@ select {
.sm\:items-center {
align-items: center;
}
+ .sm\:justify-end {
+ justify-content: flex-end;
+ }
.sm\:justify-between {
justify-content: space-between;
}
@@ -2015,6 +2289,10 @@ select {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
+ .sm\:px-8 {
+ padding-left: 2rem;
+ padding-right: 2rem;
+ }
.sm\:py-6 {
padding-top: 1.5rem;
padding-bottom: 1.5rem;
@@ -2031,21 +2309,14 @@ select {
.md\:col-span-2 {
grid-column: span 2 / span 2;
}
- .md\:-mt-px {
- margin-top: -1px;
- }
- .md\:flex {
- display: flex;
+ .md\:inline {
+ display: inline;
}
.md\:grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (min-width: 1024px) {
- .lg\:-mx-8 {
- margin-left: -2rem;
- margin-right: -2rem;
- }
.lg\:max-w-lg {
max-width: 32rem;
}
diff --git a/aml-backoffice/index.css.map b/aml-backoffice/index.css.map
index 8988ebf50..60b909a84 100644
--- a/aml-backoffice/index.css.map
+++ b/aml-backoffice/index.css.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../src/scss/main.css"],
- "sourcesContent": ["/*\n! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple] {\n background-image: initial;\n background-position: initial;\n background-repeat: unset;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: unset;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: unset;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: unset;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.\\!container {\n width: 100% !important;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n\n .\\!container {\n max-width: 640px !important;\n }\n\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n\n .\\!container {\n max-width: 768px !important;\n }\n\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n\n .\\!container {\n max-width: 1024px !important;\n }\n\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n\n .\\!container {\n max-width: 1280px !important;\n }\n\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n\n .\\!container {\n max-width: 1536px !important;\n }\n\n .container {\n max-width: 1536px;\n }\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.-inset-0 {\n inset: -0px;\n}\n.-inset-0\\.5 {\n inset: -0.125rem;\n}\n.-inset-1 {\n inset: -0.25rem;\n}\n.-inset-2 {\n inset: -0.5rem;\n}\n.-inset-2\\.5 {\n inset: -0.625rem;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-4 {\n bottom: 1rem;\n}\n.left-0 {\n left: 0px;\n}\n.left-4 {\n left: 1rem;\n}\n.right-0 {\n right: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.top-4 {\n top: 1rem;\n}\n.isolate {\n isolation: isolate;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.col-span-full {\n grid-column: 1 / -1;\n}\n.m-0 {\n margin: 0px;\n}\n.m-4 {\n margin: 1rem;\n}\n.-mx-2 {\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n}\n.-mx-4 {\n margin-left: -1rem;\n margin-right: -1rem;\n}\n.-my-2 {\n margin-top: -0.5rem;\n margin-bottom: -0.5rem;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.-ml-px {\n margin-left: -1px;\n}\n.-mt-2 {\n margin-top: -0.5rem;\n}\n.-mt-32 {\n margin-top: -8rem;\n}\n.-mt-5 {\n margin-top: -1.25rem;\n}\n.-mt-px {\n margin-top: -1px;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n.ml-3 {\n margin-left: 0.75rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.ml-6 {\n margin-left: 1.5rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mr-3 {\n margin-right: 0.75rem;\n}\n.mt-0 {\n margin-top: 0px;\n}\n.mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-10 {\n margin-top: 2.5rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.mt-8 {\n margin-top: 2rem;\n}\n.mt-auto {\n margin-top: auto;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.flow-root {\n display: flow-root;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.\\!hidden {\n display: none !important;\n}\n.hidden {\n display: none;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-12 {\n height: 3rem;\n}\n.h-16 {\n height: 4rem;\n}\n.h-24 {\n height: 6rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-full {\n height: 100%;\n}\n.max-h-60 {\n max-height: 15rem;\n}\n.min-h-full {\n min-height: 100%;\n}\n.w-0 {\n width: 0px;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-11 {\n width: 2.75rem;\n}\n.w-12 {\n width: 3rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-48 {\n width: 12rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-screen {\n width: 100vw;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-full {\n min-width: 100%;\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.max-w-xl {\n max-width: 36rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-auto {\n flex: 1 1 auto;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.grow {\n flex-grow: 1;\n}\n.translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.rotate-45 {\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-center {\n align-items: center;\n}\n.items-stretch {\n align-items: stretch;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-x-0 {\n -moz-column-gap: 0px;\n column-gap: 0px;\n}\n.gap-x-0\\.5 {\n -moz-column-gap: 0.125rem;\n column-gap: 0.125rem;\n}\n.gap-x-1 {\n -moz-column-gap: 0.25rem;\n column-gap: 0.25rem;\n}\n.gap-x-1\\.5 {\n -moz-column-gap: 0.375rem;\n column-gap: 0.375rem;\n}\n.gap-x-3 {\n -moz-column-gap: 0.75rem;\n column-gap: 0.75rem;\n}\n.gap-x-6 {\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n.gap-x-8 {\n -moz-column-gap: 2rem;\n column-gap: 2rem;\n}\n.gap-y-2 {\n row-gap: 0.5rem;\n}\n.gap-y-5 {\n row-gap: 1.25rem;\n}\n.gap-y-7 {\n row-gap: 1.75rem;\n}\n.gap-y-8 {\n row-gap: 2rem;\n}\n.-space-y-px > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(-1px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(-1px * var(--tw-space-y-reverse));\n}\n.space-x-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.75rem * var(--tw-space-x-reverse));\n margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-10 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.divide-cyan-800 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(21 94 117 / var(--tw-divide-opacity));\n}\n.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-divide-opacity));\n}\n.divide-gray-300 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-divide-opacity));\n}\n.divide-gray-900\\/10 > :not([hidden]) ~ :not([hidden]) {\n border-color: rgb(17 24 39 / 0.1);\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overflow-x-clip {\n overflow-x: clip;\n}\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.whitespace-break-spaces {\n white-space: break-spaces;\n}\n.break-all {\n word-break: break-all;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-sm {\n border-radius: 0.125rem;\n}\n.rounded-l-md {\n border-top-left-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n.rounded-r-lg {\n border-top-right-radius: 0.5rem;\n border-bottom-right-radius: 0.5rem;\n}\n.rounded-r-md {\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem;\n}\n.rounded-bl-md {\n border-bottom-left-radius: 0.375rem;\n}\n.rounded-br-md {\n border-bottom-right-radius: 0.375rem;\n}\n.rounded-tl-md {\n border-top-left-radius: 0.375rem;\n}\n.rounded-tr-md {\n border-top-right-radius: 0.375rem;\n}\n.border {\n border-width: 1px;\n}\n.border-0 {\n border-width: 0px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-l-0 {\n border-left-width: 0px;\n}\n.border-r-0 {\n border-right-width: 0px;\n}\n.border-r-2 {\n border-right-width: 2px;\n}\n.border-t-2 {\n border-top-width: 2px;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity));\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity));\n}\n.border-gray-900\\/25 {\n border-color: rgb(17 24 39 / 0.25);\n}\n.border-indigo-200 {\n --tw-border-opacity: 1;\n border-color: rgb(199 210 254 / var(--tw-border-opacity));\n}\n.border-indigo-400 {\n --tw-border-opacity: 1;\n border-color: rgb(129 140 248 / var(--tw-border-opacity));\n}\n.border-indigo-500 {\n --tw-border-opacity: 1;\n border-color: rgb(99 102 241 / var(--tw-border-opacity));\n}\n.border-indigo-600 {\n --tw-border-opacity: 1;\n border-color: rgb(79 70 229 / var(--tw-border-opacity));\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-white\\/5 {\n border-color: rgb(255 255 255 / 0.05);\n}\n.border-opacity-25 {\n --tw-border-opacity: 0.25;\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n.bg-green-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 253 244 / var(--tw-bg-opacity));\n}\n.bg-indigo-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(238 242 255 / var(--tw-bg-opacity));\n}\n.bg-indigo-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(79 70 229 / var(--tw-bg-opacity));\n}\n.bg-indigo-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity));\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity));\n}\n.bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.bg-yellow-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 252 232 / var(--tw-bg-opacity));\n}\n.stroke-gray-700\\/50 {\n stroke: rgb(55 65 81 / 0.5);\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-3\\.5 {\n padding-top: 0.875rem;\n padding-bottom: 0.875rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.pb-32 {\n padding-bottom: 8rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pl-1 {\n padding-left: 0.25rem;\n}\n.pl-10 {\n padding-left: 2.5rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-3 {\n padding-left: 0.75rem;\n}\n.pr-1 {\n padding-right: 0.25rem;\n}\n.pr-10 {\n padding-right: 2.5rem;\n}\n.pr-12 {\n padding-right: 3rem;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pr-4 {\n padding-right: 1rem;\n}\n.pr-9 {\n padding-right: 2.25rem;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-1\\.5 {\n padding-top: 0.375rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-\\[0\\.625rem\\] {\n font-size: 0.625rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.lowercase {\n text-transform: lowercase;\n}\n.leading-5 {\n line-height: 1.25rem;\n}\n.leading-6 {\n line-height: 1.5rem;\n}\n.leading-7 {\n line-height: 1.75rem;\n}\n.leading-8 {\n line-height: 2rem;\n}\n.leading-9 {\n line-height: 2.25rem;\n}\n.leading-none {\n line-height: 1;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.text-gray-300 {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity));\n}\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity));\n}\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n.text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity));\n}\n.text-indigo-200 {\n --tw-text-opacity: 1;\n color: rgb(199 210 254 / var(--tw-text-opacity));\n}\n.text-indigo-600 {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity));\n}\n.text-indigo-700 {\n --tw-text-opacity: 1;\n color: rgb(67 56 202 / var(--tw-text-opacity));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity));\n}\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity));\n}\n.text-red-900 {\n --tw-text-opacity: 1;\n color: rgb(127 29 29 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.text-yellow-700 {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity));\n}\n.opacity-0 {\n opacity: 0;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-inset {\n --tw-ring-inset: inset;\n}\n.ring-black {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));\n}\n.ring-gray-200 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));\n}\n.ring-gray-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));\n}\n.ring-gray-900\\/5 {\n --tw-ring-color: rgb(17 24 39 / 0.05);\n}\n.ring-green-600\\/20 {\n --tw-ring-color: rgb(22 163 74 / 0.2);\n}\n.ring-indigo-600 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));\n}\n.ring-red-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity));\n}\n.ring-opacity-5 {\n --tw-ring-opacity: 0.05;\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.placeholder\\:text-gray-400::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.placeholder\\:text-gray-400::placeholder {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.placeholder\\:text-red-300::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity));\n}\n.placeholder\\:text-red-300::placeholder {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity));\n}\n.focus-within\\:z-10:focus-within {\n z-index: 10;\n}\n.focus-within\\:outline-none:focus-within {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-within\\:ring-2:focus-within {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-within\\:ring-indigo-600:focus-within {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));\n}\n.focus-within\\:ring-offset-2:focus-within {\n --tw-ring-offset-width: 2px;\n}\n.hover\\:border-gray-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity));\n}\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.hover\\:bg-gray-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.hover\\:bg-gray-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n.hover\\:bg-gray-500\\/20:hover {\n background-color: rgb(107 114 128 / 0.2);\n}\n.hover\\:bg-indigo-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(99 102 241 / var(--tw-bg-opacity));\n}\n.hover\\:bg-indigo-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(79 70 229 / var(--tw-bg-opacity));\n}\n.hover\\:bg-indigo-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.hover\\:bg-red-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.hover\\:bg-opacity-75:hover {\n --tw-bg-opacity: 0.75;\n}\n.hover\\:text-gray-400:hover {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.hover\\:text-gray-500:hover {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.hover\\:text-gray-700:hover {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity));\n}\n.hover\\:text-indigo-500:hover {\n --tw-text-opacity: 1;\n color: rgb(99 102 241 / var(--tw-text-opacity));\n}\n.hover\\:text-indigo-600:hover {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity));\n}\n.hover\\:text-indigo-900:hover {\n --tw-text-opacity: 1;\n color: rgb(49 46 129 / var(--tw-text-opacity));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.hover\\:opacity-70:hover {\n opacity: 0.7;\n}\n.hover\\:ring-indigo-500:hover {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));\n}\n.focus\\:z-10:focus {\n z-index: 10;\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-inset:focus {\n --tw-ring-inset: inset;\n}\n.focus\\:ring-indigo-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));\n}\n.focus\\:ring-indigo-600:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));\n}\n.focus\\:ring-red-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));\n}\n.focus\\:ring-white:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus\\:ring-offset-indigo-600:focus {\n --tw-ring-offset-color: #4f46e5;\n}\n.focus-visible\\:outline:focus-visible {\n outline-style: solid;\n}\n.focus-visible\\:outline-2:focus-visible {\n outline-width: 2px;\n}\n.focus-visible\\:outline-offset-2:focus-visible {\n outline-offset: 2px;\n}\n.focus-visible\\:outline-indigo-600:focus-visible {\n outline-color: #4f46e5;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:bg-gray-50:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n.disabled\\:text-gray-500:disabled {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.disabled\\:ring-gray-200:disabled {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));\n}\n.group:hover .group-hover\\:flex {\n display: flex;\n}\n.group:hover .group-hover\\:border-indigo-600 {\n --tw-border-opacity: 1;\n border-color: rgb(79 70 229 / var(--tw-border-opacity));\n}\n.group:hover .group-hover\\:stroke-gray-700\\/75 {\n stroke: rgb(55 65 81 / 0.75);\n}\n.group:hover .group-hover\\:text-indigo-600 {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity));\n}\n.group:hover .group-hover\\:text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:bg-blue-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:bg-green-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 253 244 / var(--tw-bg-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:bg-yellow-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 252 232 / var(--tw-bg-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:text-red-400 {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:text-red-800 {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:text-blue-400 {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:text-blue-700 {\n --tw-text-opacity: 1;\n color: rgb(29 78 216 / var(--tw-text-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:text-blue-800 {\n --tw-text-opacity: 1;\n color: rgb(30 64 175 / var(--tw-text-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:text-green-400 {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:text-green-800 {\n --tw-text-opacity: 1;\n color: rgb(22 101 52 / var(--tw-text-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:text-yellow-400 {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:text-yellow-700 {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:text-yellow-800 {\n --tw-text-opacity: 1;\n color: rgb(133 77 14 / var(--tw-text-opacity));\n}\n.data-\\[enabled\\=false\\]\\:translate-x-0[data-enabled=false] {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[enabled\\=false\\]\\:bg-gray-200[data-enabled=false] {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.data-\\[selected\\=true\\]\\:bg-indigo-700[data-selected=true] {\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.data-\\[selected\\=true\\]\\:text-white[data-selected=true] {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n@media (min-width: 640px) {\n\n .sm\\:col-span-6 {\n grid-column: span 6 / span 6;\n }\n\n .sm\\:-mx-6 {\n margin-left: -1.5rem;\n margin-right: -1.5rem;\n }\n\n .sm\\:mx-auto {\n margin-left: auto;\n margin-right: auto;\n }\n\n .sm\\:inline {\n display: inline;\n }\n\n .sm\\:flex {\n display: flex;\n }\n\n .sm\\:hidden {\n display: none;\n }\n\n .sm\\:w-full {\n width: 100%;\n }\n\n .sm\\:max-w-\\[480px\\] {\n max-width: 480px;\n }\n\n .sm\\:max-w-md {\n max-width: 28rem;\n }\n\n .sm\\:flex-auto {\n flex: 1 1 auto;\n }\n\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n\n .sm\\:items-center {\n align-items: center;\n }\n\n .sm\\:justify-between {\n justify-content: space-between;\n }\n\n .sm\\:rounded-lg {\n border-radius: 0.5rem;\n }\n\n .sm\\:px-0 {\n padding-left: 0px;\n padding-right: 0px;\n }\n\n .sm\\:px-12 {\n padding-left: 3rem;\n padding-right: 3rem;\n }\n\n .sm\\:px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n }\n\n .sm\\:py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n .sm\\:leading-6 {\n line-height: 1.5rem;\n }\n}\n@media (min-width: 768px) {\n\n .md\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n\n .md\\:-mt-px {\n margin-top: -1px;\n }\n\n .md\\:flex {\n display: flex;\n }\n\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 1024px) {\n\n .lg\\:-mx-8 {\n margin-left: -2rem;\n margin-right: -2rem;\n }\n\n .lg\\:max-w-lg {\n max-width: 32rem;\n }\n\n .lg\\:px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n }\n}\n"],
- "mappings": ";AAOA;AAAA;AAAA;AAGE;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAEE;AAAA;AAYF;AACE;AACA;AACA;AACA;AACG;AACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAQF;AACE;AACA;AAAA;AASF;AACE;AACA;AACA;AAAA;AAOF;AACE;AACQ;AAAA;AAOV;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AACA;AAAA;AAOF;AACE;AACA;AAAA;AAOF;AAAA;AAEE;AAAA;AAQF;AAAA;AAAA;AAAA;AAIE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAOF;AACE;AAAA;AAOF;AAAA;AAEE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AASF;AACE;AACA;AACA;AAAA;AASF;AAAA;AAAA;AAAA;AAAA;AAKE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAOF;AAAA;AAEE;AAAA;AAQF;AAAA;AAAA;AAAA;AAIE;AACA;AACA;AAAA;AAOF;AACE;AAAA;AAOF;AACE;AAAA;AAOF;AACE;AAAA;AAOF;AAAA;AAEE;AAAA;AAQF;AACE;AACA;AAAA;AAOF;AACE;AAAA;AAQF;AACE;AACA;AAAA;AAOF;AACE;AAAA;AAOF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AAAA;AAGE;AACA;AACA;AAAA;AAOF;AACE;AAAA;AAQF;AAAA;AACE;AACA;AAAA;AAGF;AAAA;AAEE;AACA;AAAA;AAOF;AAAA;AAEE;AAAA;AAMF;AACE;AAAA;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQE;AACA;AAAA;AAOF;AAAA;AAEE;AACA;AAAA;AAIF;AACE;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACE;AACG;AACK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAGF;AAAA;AACE;AACA;AAAA;AAGF;AAAA;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACQ;AAAA;AAGV;AACE;AACA;AACA;AACA;AACA;AACA;AACQ;AAAA;AAGV;AAAA;AACE;AACG;AACK;AACR;AACA;AACQ;AACR;AACA;AACA;AACA;AACG;AACK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAGF;AAAA;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AAAA;AAAA;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AACE;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AAAA;AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAAA;AAGJ;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAAA;AAGJ;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAAA;AAGJ;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAAA;AAGJ;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAAA;AAGJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACG;AACK;AAAA;AAEV;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACK;AAAA;AAEP;AACE;AACK;AAAA;AAEP;AACE;AACK;AAAA;AAEP;AACE;AACK;AAAA;AAEP;AACE;AACK;AAAA;AAEP;AACE;AACK;AAAA;AAEP;AACE;AACK;AAAA;AAEP;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACG;AAAA;AAEL;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AAEE;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAAA;AAGJ;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAAA;AAGJ;AAEE;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAAA;",
+ "sourcesContent": ["/*\n! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple] {\n background-image: initial;\n background-position: initial;\n background-repeat: unset;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: unset;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: unset;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: unset;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.\\!container {\n width: 100% !important;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n\n .\\!container {\n max-width: 640px !important;\n }\n\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n\n .\\!container {\n max-width: 768px !important;\n }\n\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n\n .\\!container {\n max-width: 1024px !important;\n }\n\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n\n .\\!container {\n max-width: 1280px !important;\n }\n\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n\n .\\!container {\n max-width: 1536px !important;\n }\n\n .container {\n max-width: 1536px;\n }\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.-inset-0 {\n inset: -0px;\n}\n.-inset-0\\.5 {\n inset: -0.125rem;\n}\n.-inset-1 {\n inset: -0.25rem;\n}\n.-inset-2 {\n inset: -0.5rem;\n}\n.-inset-2\\.5 {\n inset: -0.625rem;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.-left-\\[15px\\] {\n left: -15px;\n}\n.-top-\\[21px\\] {\n top: -21px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-1\\/2 {\n bottom: 50%;\n}\n.bottom-4 {\n bottom: 1rem;\n}\n.left-0 {\n left: 0px;\n}\n.left-1\\/2 {\n left: 50%;\n}\n.left-4 {\n left: 1rem;\n}\n.left-\\[calc\\(50\\%-1px\\)\\] {\n left: calc(50% - 1px);\n}\n.right-0 {\n right: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-4 {\n top: 1rem;\n}\n.isolate {\n isolation: isolate;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.col-span-full {\n grid-column: 1 / -1;\n}\n.m-0 {\n margin: 0px;\n}\n.m-1 {\n margin: 0.25rem;\n}\n.m-1\\.5 {\n margin: 0.375rem;\n}\n.m-4 {\n margin: 1rem;\n}\n.-mx-2 {\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-0 {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.-ml-10 {\n margin-left: -2.5rem;\n}\n.-ml-px {\n margin-left: -1px;\n}\n.-mt-2 {\n margin-top: -0.5rem;\n}\n.-mt-32 {\n margin-top: -8rem;\n}\n.-mt-5 {\n margin-top: -1.25rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n.ml-3 {\n margin-left: 0.75rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.ml-6 {\n margin-left: 1.5rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mt-0 {\n margin-top: 0px;\n}\n.mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-10 {\n margin-top: 2.5rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.mt-8 {\n margin-top: 2rem;\n}\n.mt-auto {\n margin-top: auto;\n}\n.box-content {\n box-sizing: content-box;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.flow-root {\n display: flow-root;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.\\!hidden {\n display: none !important;\n}\n.hidden {\n display: none;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-12 {\n height: 3rem;\n}\n.h-16 {\n height: 4rem;\n}\n.h-2\\/5 {\n height: 40%;\n}\n.h-24 {\n height: 6rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-\\[260px\\] {\n height: 260px;\n}\n.h-\\[32px\\] {\n height: 32px;\n}\n.h-\\[4px\\] {\n height: 4px;\n}\n.h-\\[56px\\] {\n height: 56px;\n}\n.h-\\[6px\\] {\n height: 6px;\n}\n.h-full {\n height: 100%;\n}\n.max-h-60 {\n max-height: 15rem;\n}\n.min-h-\\[305px\\] {\n min-height: 305px;\n}\n.min-h-full {\n min-height: 100%;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-11 {\n width: 2.75rem;\n}\n.w-12 {\n width: 3rem;\n}\n.w-28 {\n width: 7rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-40 {\n width: 10rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-7 {\n width: 1.75rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-80 {\n width: 20rem;\n}\n.w-\\[260px\\] {\n width: 260px;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-\\[32px\\] {\n width: 32px;\n}\n.w-\\[4px\\] {\n width: 4px;\n}\n.w-\\[6px\\] {\n width: 6px;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-screen {\n width: 100vw;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-\\[310px\\] {\n min-width: 310px;\n}\n.min-w-full {\n min-width: 100%;\n}\n.min-w-min {\n min-width: -moz-min-content;\n min-width: min-content;\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-\\[325px\\] {\n max-width: 325px;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.max-w-xl {\n max-width: 36rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-auto {\n flex: 1 1 auto;\n}\n.flex-none {\n flex: none;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.grow {\n flex-grow: 1;\n}\n.origin-\\[center_bottom_0\\] {\n transform-origin: center bottom 0;\n}\n.-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.rotate-45 {\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.animate-\\[show-up-clock_350ms_linear\\] {\n animation: show-up-clock 350ms linear;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-center {\n align-items: center;\n}\n.items-stretch {\n align-items: stretch;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.justify-around {\n justify-content: space-around;\n}\n.justify-evenly {\n justify-content: space-evenly;\n}\n.gap-px {\n gap: 1px;\n}\n.gap-x-0 {\n -moz-column-gap: 0px;\n column-gap: 0px;\n}\n.gap-x-0\\.5 {\n -moz-column-gap: 0.125rem;\n column-gap: 0.125rem;\n}\n.gap-x-1 {\n -moz-column-gap: 0.25rem;\n column-gap: 0.25rem;\n}\n.gap-x-1\\.5 {\n -moz-column-gap: 0.375rem;\n column-gap: 0.375rem;\n}\n.gap-x-3 {\n -moz-column-gap: 0.75rem;\n column-gap: 0.75rem;\n}\n.gap-x-6 {\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n.gap-x-8 {\n -moz-column-gap: 2rem;\n column-gap: 2rem;\n}\n.gap-y-2 {\n row-gap: 0.5rem;\n}\n.gap-y-7 {\n row-gap: 1.75rem;\n}\n.gap-y-8 {\n row-gap: 2rem;\n}\n.-space-y-px > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(-1px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(-1px * var(--tw-space-y-reverse));\n}\n.space-x-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.75rem * var(--tw-space-x-reverse));\n margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-10 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.divide-cyan-800 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(21 94 117 / var(--tw-divide-opacity));\n}\n.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-divide-opacity));\n}\n.divide-gray-300 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-divide-opacity));\n}\n.divide-gray-900\\/10 > :not([hidden]) ~ :not([hidden]) {\n border-color: rgb(17 24 39 / 0.1);\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n.overflow-x-clip {\n overflow-x: clip;\n}\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.whitespace-break-spaces {\n white-space: break-spaces;\n}\n.break-all {\n word-break: break-all;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-\\[100\\%\\] {\n border-radius: 100%;\n}\n.rounded-\\[50\\%\\] {\n border-radius: 50%;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-sm {\n border-radius: 0.125rem;\n}\n.rounded-b-lg {\n border-bottom-right-radius: 0.5rem;\n border-bottom-left-radius: 0.5rem;\n}\n.rounded-l-md {\n border-top-left-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n.rounded-r-lg {\n border-top-right-radius: 0.5rem;\n border-bottom-right-radius: 0.5rem;\n}\n.rounded-r-md {\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem;\n}\n.rounded-t-lg {\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n.rounded-t-sm {\n border-top-left-radius: 0.125rem;\n border-top-right-radius: 0.125rem;\n}\n.rounded-bl-md {\n border-bottom-left-radius: 0.375rem;\n}\n.rounded-br-md {\n border-bottom-right-radius: 0.375rem;\n}\n.rounded-tl-md {\n border-top-left-radius: 0.375rem;\n}\n.rounded-tr-md {\n border-top-right-radius: 0.375rem;\n}\n.border {\n border-width: 1px;\n}\n.border-0 {\n border-width: 0px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-\\[14px\\] {\n border-width: 14px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-l-0 {\n border-left-width: 0px;\n}\n.border-r-0 {\n border-right-width: 0px;\n}\n.border-r-2 {\n border-right-width: 2px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-solid {\n border-style: solid;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-none {\n border-style: none;\n}\n.border-\\[\\#3b71ca\\] {\n --tw-border-opacity: 1;\n border-color: rgb(59 113 202 / var(--tw-border-opacity));\n}\n.border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity));\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity));\n}\n.border-gray-900\\/25 {\n border-color: rgb(17 24 39 / 0.25);\n}\n.border-indigo-200 {\n --tw-border-opacity: 1;\n border-color: rgb(199 210 254 / var(--tw-border-opacity));\n}\n.border-indigo-400 {\n --tw-border-opacity: 1;\n border-color: rgb(129 140 248 / var(--tw-border-opacity));\n}\n.border-indigo-600 {\n --tw-border-opacity: 1;\n border-color: rgb(79 70 229 / var(--tw-border-opacity));\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-white\\/5 {\n border-color: rgb(255 255 255 / 0.05);\n}\n.border-opacity-25 {\n --tw-border-opacity: 0.25;\n}\n.bg-\\[\\#00000012\\] {\n background-color: #00000012;\n}\n.bg-\\[\\#3b71ca\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(59 113 202 / var(--tw-bg-opacity));\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n.bg-gray-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(107 114 128 / var(--tw-bg-opacity));\n}\n.bg-green-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 253 244 / var(--tw-bg-opacity));\n}\n.bg-indigo-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(238 242 255 / var(--tw-bg-opacity));\n}\n.bg-indigo-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(79 70 229 / var(--tw-bg-opacity));\n}\n.bg-indigo-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity));\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity));\n}\n.bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.bg-yellow-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 252 232 / var(--tw-bg-opacity));\n}\n.bg-opacity-75 {\n --tw-bg-opacity: 0.75;\n}\n.stroke-gray-700\\/50 {\n stroke: rgb(55 65 81 / 0.5);\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-12 {\n padding: 3rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.px-\\[12px\\] {\n padding-left: 12px;\n padding-right: 12px;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-3\\.5 {\n padding-top: 0.875rem;\n padding-bottom: 0.875rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.pb-32 {\n padding-bottom: 8rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pl-1 {\n padding-left: 0.25rem;\n}\n.pl-10 {\n padding-left: 2.5rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-3 {\n padding-left: 0.75rem;\n}\n.pr-10 {\n padding-right: 2.5rem;\n}\n.pr-12 {\n padding-right: 3rem;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pr-4 {\n padding-right: 1rem;\n}\n.pr-9 {\n padding-right: 2.25rem;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-1\\.5 {\n padding-top: 0.375rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-\\[0\\.625rem\\] {\n font-size: 0.625rem;\n}\n.text-\\[1\\.1rem\\] {\n font-size: 1.1rem;\n}\n.text-\\[18px\\] {\n font-size: 18px;\n}\n.text-\\[3\\.75rem\\] {\n font-size: 3.75rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-light {\n font-weight: 300;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.lowercase {\n text-transform: lowercase;\n}\n.leading-5 {\n line-height: 1.25rem;\n}\n.leading-6 {\n line-height: 1.5rem;\n}\n.leading-7 {\n line-height: 1.75rem;\n}\n.leading-8 {\n line-height: 2rem;\n}\n.leading-9 {\n line-height: 2.25rem;\n}\n.leading-\\[1\\.2\\] {\n line-height: 1.2;\n}\n.leading-none {\n line-height: 1;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.text-\\[\\#ffffff8a\\] {\n color: #ffffff8a;\n}\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.text-gray-300 {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity));\n}\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity));\n}\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n.text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity));\n}\n.text-indigo-200 {\n --tw-text-opacity: 1;\n color: rgb(199 210 254 / var(--tw-text-opacity));\n}\n.text-indigo-600 {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity));\n}\n.text-indigo-700 {\n --tw-text-opacity: 1;\n color: rgb(67 56 202 / var(--tw-text-opacity));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity));\n}\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity));\n}\n.text-red-900 {\n --tw-text-opacity: 1;\n color: rgb(127 29 29 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.text-yellow-700 {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity));\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-\\[\\.54\\] {\n opacity: .54;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-inset {\n --tw-ring-inset: inset;\n}\n.ring-black {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));\n}\n.ring-gray-200 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));\n}\n.ring-gray-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));\n}\n.ring-gray-900\\/5 {\n --tw-ring-color: rgb(17 24 39 / 0.05);\n}\n.ring-green-600\\/20 {\n --tw-ring-color: rgb(22 163 74 / 0.2);\n}\n.ring-indigo-600 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));\n}\n.ring-red-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity));\n}\n.ring-opacity-5 {\n --tw-ring-opacity: 0.05;\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.selection\\:bg-transparent *::-moz-selection {\n background-color: transparent;\n}\n.selection\\:bg-transparent *::selection {\n background-color: transparent;\n}\n.selection\\:bg-transparent::-moz-selection {\n background-color: transparent;\n}\n.selection\\:bg-transparent::selection {\n background-color: transparent;\n}\n.placeholder\\:text-gray-400::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.placeholder\\:text-gray-400::placeholder {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.placeholder\\:text-red-300::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity));\n}\n.placeholder\\:text-red-300::placeholder {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity));\n}\n.focus-within\\:z-10:focus-within {\n z-index: 10;\n}\n.focus-within\\:outline-none:focus-within {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-within\\:ring-2:focus-within {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-within\\:ring-indigo-600:focus-within {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));\n}\n.focus-within\\:ring-offset-2:focus-within {\n --tw-ring-offset-width: 2px;\n}\n.hover\\:bg-\\[\\#00000026\\]:hover {\n background-color: #00000026;\n}\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.hover\\:bg-gray-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.hover\\:bg-gray-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n.hover\\:bg-gray-500\\/20:hover {\n background-color: rgb(107 114 128 / 0.2);\n}\n.hover\\:bg-gray-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity));\n}\n.hover\\:bg-indigo-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(99 102 241 / var(--tw-bg-opacity));\n}\n.hover\\:bg-indigo-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(79 70 229 / var(--tw-bg-opacity));\n}\n.hover\\:bg-indigo-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.hover\\:bg-red-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.hover\\:bg-opacity-75:hover {\n --tw-bg-opacity: 0.75;\n}\n.hover\\:text-gray-400:hover {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.hover\\:text-gray-500:hover {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.hover\\:text-indigo-500:hover {\n --tw-text-opacity: 1;\n color: rgb(99 102 241 / var(--tw-text-opacity));\n}\n.hover\\:text-indigo-600:hover {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity));\n}\n.hover\\:text-indigo-900:hover {\n --tw-text-opacity: 1;\n color: rgb(49 46 129 / var(--tw-text-opacity));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.hover\\:opacity-70:hover {\n opacity: 0.7;\n}\n.hover\\:outline-none:hover {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.hover\\:ring-indigo-500:hover {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));\n}\n.focus\\:z-10:focus {\n z-index: 10;\n}\n.focus\\:bg-\\[\\#00000026\\]:focus {\n background-color: #00000026;\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-inset:focus {\n --tw-ring-inset: inset;\n}\n.focus\\:ring-indigo-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));\n}\n.focus\\:ring-indigo-600:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));\n}\n.focus\\:ring-red-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));\n}\n.focus\\:ring-white:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus\\:ring-offset-indigo-600:focus {\n --tw-ring-offset-color: #4f46e5;\n}\n.focus-visible\\:outline:focus-visible {\n outline-style: solid;\n}\n.focus-visible\\:outline-2:focus-visible {\n outline-width: 2px;\n}\n.focus-visible\\:outline-offset-0:focus-visible {\n outline-offset: 0px;\n}\n.focus-visible\\:outline-offset-2:focus-visible {\n outline-offset: 2px;\n}\n.focus-visible\\:outline-indigo-600:focus-visible {\n outline-color: #4f46e5;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:bg-gray-100:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.disabled\\:bg-gray-50:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n.disabled\\:text-gray-500:disabled {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.disabled\\:ring-gray-200:disabled {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));\n}\n.group:hover .group-hover\\:flex {\n display: flex;\n}\n.group:hover .group-hover\\:border-indigo-600 {\n --tw-border-opacity: 1;\n border-color: rgb(79 70 229 / var(--tw-border-opacity));\n}\n.group:hover .group-hover\\:stroke-gray-700\\/75 {\n stroke: rgb(55 65 81 / 0.75);\n}\n.group:hover .group-hover\\:text-indigo-600 {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity));\n}\n.group:hover .group-hover\\:text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:bg-blue-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:bg-green-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 253 244 / var(--tw-bg-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:bg-yellow-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 252 232 / var(--tw-bg-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:text-red-400 {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity));\n}\n.group.attention-danger .group-\\[\\.attention-danger\\]\\:text-red-800 {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:text-blue-400 {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:text-blue-700 {\n --tw-text-opacity: 1;\n color: rgb(29 78 216 / var(--tw-text-opacity));\n}\n.group.attention-info .group-\\[\\.attention-info\\]\\:text-blue-800 {\n --tw-text-opacity: 1;\n color: rgb(30 64 175 / var(--tw-text-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:text-green-400 {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity));\n}\n.group.attention-success .group-\\[\\.attention-success\\]\\:text-green-800 {\n --tw-text-opacity: 1;\n color: rgb(22 101 52 / var(--tw-text-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:text-yellow-400 {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:text-yellow-700 {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity));\n}\n.group.attention-warning .group-\\[\\.attention-warning\\]\\:text-yellow-800 {\n --tw-text-opacity: 1;\n color: rgb(133 77 14 / var(--tw-text-opacity));\n}\n.data-\\[enabled\\=false\\]\\:translate-x-0[data-enabled=false] {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[ok\\=true\\]\\:cursor-pointer[data-ok=true] {\n cursor: pointer;\n}\n.data-\\[enabled\\=false\\]\\:bg-gray-200[data-enabled=false] {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.data-\\[month\\=false\\]\\:bg-gray-100[data-month=false] {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.data-\\[month\\=true\\]\\:bg-white[data-month=true] {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.data-\\[selected\\=true\\]\\:\\!bg-blue-400[data-selected=true] {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(96 165 250 / var(--tw-bg-opacity)) !important;\n}\n.data-\\[selected\\=true\\]\\:bg-\\[\\#3b71ca\\][data-selected=true] {\n --tw-bg-opacity: 1;\n background-color: rgb(59 113 202 / var(--tw-bg-opacity));\n}\n.data-\\[selected\\=true\\]\\:bg-indigo-700[data-selected=true] {\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.data-\\[today\\=true\\]\\:bg-red-300[data-today=true] {\n --tw-bg-opacity: 1;\n background-color: rgb(252 165 165 / var(--tw-bg-opacity));\n}\n.data-\\[selected\\=true\\]\\:font-normal[data-selected=true] {\n font-weight: 400;\n}\n.data-\\[today\\=true\\]\\:font-semibold[data-today=true] {\n font-weight: 600;\n}\n.data-\\[month\\=true\\]\\:text-gray-900[data-month=true] {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n.data-\\[selected\\=true\\]\\:text-white[data-selected=true] {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.data-\\[month\\=true\\]\\:hover\\:bg-gray-200:hover[data-month=true] {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.data-\\[selected\\=true\\]\\:hover\\:\\!bg-blue-300:hover[data-selected=true] {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(147 197 253 / var(--tw-bg-opacity)) !important;\n}\n.data-\\[today\\=true\\]\\:hover\\:bg-red-200:hover[data-today=true] {\n --tw-bg-opacity: 1;\n background-color: rgb(254 202 202 / var(--tw-bg-opacity));\n}\n:is([dir=\"rtl\"] .rtl\\:\\!left-auto) {\n left: auto !important;\n}\n:is([dir=\"rtl\"] .rtl\\:\\!origin-\\[50\\%_50\\%_0\\]) {\n transform-origin: 50% 50% 0 !important;\n}\n@media (prefers-color-scheme: dark) {\n\n .dark\\:bg-zinc-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(113 113 122 / var(--tw-bg-opacity));\n }\n\n .dark\\:bg-zinc-600\\/50 {\n background-color: rgb(82 82 91 / 0.5);\n }\n\n .dark\\:bg-zinc-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(63 63 70 / var(--tw-bg-opacity));\n }\n}\n@media (min-width: 640px) {\n\n .sm\\:col-span-6 {\n grid-column: span 6 / span 6;\n }\n\n .sm\\:mx-auto {\n margin-left: auto;\n margin-right: auto;\n }\n\n .sm\\:block {\n display: block;\n }\n\n .sm\\:inline {\n display: inline;\n }\n\n .sm\\:flex {\n display: flex;\n }\n\n .sm\\:hidden {\n display: none;\n }\n\n .sm\\:w-full {\n width: 100%;\n }\n\n .sm\\:max-w-\\[480px\\] {\n max-width: 480px;\n }\n\n .sm\\:max-w-md {\n max-width: 28rem;\n }\n\n .sm\\:flex-auto {\n flex: 1 1 auto;\n }\n\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n\n .sm\\:items-center {\n align-items: center;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:justify-between {\n justify-content: space-between;\n }\n\n .sm\\:rounded-lg {\n border-radius: 0.5rem;\n }\n\n .sm\\:px-0 {\n padding-left: 0px;\n padding-right: 0px;\n }\n\n .sm\\:px-12 {\n padding-left: 3rem;\n padding-right: 3rem;\n }\n\n .sm\\:px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n }\n\n .sm\\:px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n }\n\n .sm\\:py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n .sm\\:leading-6 {\n line-height: 1.5rem;\n }\n}\n@media (min-width: 768px) {\n\n .md\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n\n .md\\:inline {\n display: inline;\n }\n\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 1024px) {\n\n .lg\\:max-w-lg {\n max-width: 32rem;\n }\n\n .lg\\:px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n }\n}\n"],
+ "mappings": "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AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,OAAK;AACL,UAAQ;AACV;AACA,CAAC;AACC,QAAM;AACR;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,QAAM;AACR;AACA,CAAC;AACC,QAAM;AACR;AACA,CAAC;AACC,QAAM;AACR;AACA,CAAC;AACC,QAAM,KAAK,IAAI,EAAE;AACnB;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,eAAa,EAAE,EAAE;AACnB;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,cAAY;AACZ,iBAAe;AACjB;AACA,CAAC;AACC,cAAY;AACZ,iBAAe;AACjB;AACA,CAAC;AACC,cAAY;AACZ,iBAAe;AACjB;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACP,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACX,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,QAAM,EAAE,EAAE;AACZ;AACA,CAAC;AACC,QAAM,EAAE,EAAE;AACZ;AACA,CAAC;AACC,QAAM;AACR;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,oBAAkB,OAAO,OAAO;AAClC;AACA,CAAC;AACC,oBAAkB;AAClB,aAAW,UAAU,IAAI,iBAAiB,EAAE,IAAI,mBAAmB,OAAO,IAAI,cAAc,MAAM,IAAI,cAAc,MAAM,IAAI,cAAc,OAAO,IAAI,eAAe,OAAO,IAAI;AACnL;AACA,CAAC;AACC,oBAAkB;AAClB,aAAW,UAAU,IAAI,iBAAiB,EAAE,IAAI,mBAAmB,OAAO,IAAI,cAAc,MAAM,IAAI,cAAc,MAA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AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,kBAAgB;AAClB;AACA,CAAC;AACC,kBAAgB;AAClB;AACA,CAAC;AACC,kBAAgB;AAClB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,kBAAgB;AAClB;AACA,C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",
"names": []
}
diff --git a/aml-backoffice/index.js b/aml-backoffice/index.js
index 0e663ea64..e7b0f9694 100644
--- a/aml-backoffice/index.js
+++ b/aml-backoffice/index.js
@@ -10,30 +10,18 @@ var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __pow = Math.pow;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a5, b4) => {
- for (var prop in b4 || (b4 = {}))
- if (__hasOwnProp.call(b4, prop))
- __defNormalProp(a5, prop, b4[prop]);
+var __spreadValues = (a6, b5) => {
+ for (var prop in b5 || (b5 = {}))
+ if (__hasOwnProp.call(b5, prop))
+ __defNormalProp(a6, prop, b5[prop]);
if (__getOwnPropSymbols)
- for (var prop of __getOwnPropSymbols(b4)) {
- if (__propIsEnum.call(b4, prop))
- __defNormalProp(a5, prop, b4[prop]);
+ for (var prop of __getOwnPropSymbols(b5)) {
+ if (__propIsEnum.call(b5, prop))
+ __defNormalProp(a6, prop, b5[prop]);
}
- return a5;
-};
-var __spreadProps = (a5, b4) => __defProps(a5, __getOwnPropDescs(b4));
-var __objRest = (source, exclude) => {
- var target = {};
- for (var prop in source)
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
- target[prop] = source[prop];
- if (source != null && __getOwnPropSymbols)
- for (var prop of __getOwnPropSymbols(source)) {
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
- target[prop] = source[prop];
- }
- return target;
+ return a6;
};
+var __spreadProps = (a6, b5) => __defProps(a6, __getOwnPropDescs(b5));
var __esm = (fn2, res) => function __init() {
return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res;
};
@@ -66,25 +54,25 @@ var __async = (__this, __arguments, generator) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
- } catch (e4) {
- reject(e4);
+ } catch (e5) {
+ reject(e5);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
- } catch (e4) {
- reject(e4);
+ } catch (e5) {
+ reject(e5);
}
};
- var step = (x6) => x6.done ? resolve(x6.value) : Promise.resolve(x6.value).then(fulfilled, rejected);
+ var step = (x7) => x7.done ? resolve(x7.value) : Promise.resolve(x7.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
-// ../../node_modules/.pnpm/big-integer@1.6.51/node_modules/big-integer/BigInteger.js
+// ../../node_modules/.pnpm/big-integer@1.6.52/node_modules/big-integer/BigInteger.js
var require_BigInteger = __commonJS({
- "../../node_modules/.pnpm/big-integer@1.6.51/node_modules/big-integer/BigInteger.js"(exports, module) {
+ "../../node_modules/.pnpm/big-integer@1.6.52/node_modules/big-integer/BigInteger.js"(exports, module) {
var bigInt = function(undefined2) {
"use strict";
var BASE = 1e7, LOG_BASE = 7, MAX_INT = 9007199254740992, MAX_INT_ARR = smallToArray(MAX_INT), DEFAULT_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz";
@@ -140,55 +128,55 @@ var require_BigInteger = __commonJS({
return arr;
}
function trim(v3) {
- var i5 = v3.length;
- while (v3[--i5] === 0)
+ var i6 = v3.length;
+ while (v3[--i6] === 0)
;
- v3.length = i5 + 1;
+ v3.length = i6 + 1;
}
function createArray(length) {
- var x6 = new Array(length);
- var i5 = -1;
- while (++i5 < length) {
- x6[i5] = 0;
+ var x7 = new Array(length);
+ var i6 = -1;
+ while (++i6 < length) {
+ x7[i6] = 0;
}
- return x6;
+ return x7;
}
function truncate(n2) {
if (n2 > 0)
return Math.floor(n2);
return Math.ceil(n2);
}
- function add2(a5, b4) {
- var l_a = a5.length, l_b = b4.length, r3 = new Array(l_a), carry = 0, base2 = BASE, sum, i5;
- for (i5 = 0; i5 < l_b; i5++) {
- sum = a5[i5] + b4[i5] + carry;
+ function add3(a6, b5) {
+ var l_a = a6.length, l_b = b5.length, r3 = new Array(l_a), carry = 0, base2 = BASE, sum, i6;
+ for (i6 = 0; i6 < l_b; i6++) {
+ sum = a6[i6] + b5[i6] + carry;
carry = sum >= base2 ? 1 : 0;
- r3[i5] = sum - carry * base2;
+ r3[i6] = sum - carry * base2;
}
- while (i5 < l_a) {
- sum = a5[i5] + carry;
+ while (i6 < l_a) {
+ sum = a6[i6] + carry;
carry = sum === base2 ? 1 : 0;
- r3[i5++] = sum - carry * base2;
+ r3[i6++] = sum - carry * base2;
}
if (carry > 0)
r3.push(carry);
return r3;
}
- function addAny(a5, b4) {
- if (a5.length >= b4.length)
- return add2(a5, b4);
- return add2(b4, a5);
+ function addAny(a6, b5) {
+ if (a6.length >= b5.length)
+ return add3(a6, b5);
+ return add3(b5, a6);
}
- function addSmall(a5, carry) {
- var l3 = a5.length, r3 = new Array(l3), base2 = BASE, sum, i5;
- for (i5 = 0; i5 < l3; i5++) {
- sum = a5[i5] - base2 + carry;
+ function addSmall(a6, carry) {
+ var l3 = a6.length, r3 = new Array(l3), base2 = BASE, sum, i6;
+ for (i6 = 0; i6 < l3; i6++) {
+ sum = a6[i6] - base2 + carry;
carry = Math.floor(sum / base2);
- r3[i5] = sum - carry * base2;
+ r3[i6] = sum - carry * base2;
carry += 1;
}
while (carry > 0) {
- r3[i5++] = carry % base2;
+ r3[i6++] = carry % base2;
carry = Math.floor(carry / base2);
}
return r3;
@@ -198,65 +186,65 @@ var require_BigInteger = __commonJS({
if (this.sign !== n2.sign) {
return this.subtract(n2.negate());
}
- var a5 = this.value, b4 = n2.value;
+ var a6 = this.value, b5 = n2.value;
if (n2.isSmall) {
- return new BigInteger(addSmall(a5, Math.abs(b4)), this.sign);
+ return new BigInteger(addSmall(a6, Math.abs(b5)), this.sign);
}
- return new BigInteger(addAny(a5, b4), this.sign);
+ return new BigInteger(addAny(a6, b5), this.sign);
};
BigInteger.prototype.plus = BigInteger.prototype.add;
SmallInteger.prototype.add = function(v3) {
var n2 = parseValue(v3);
- var a5 = this.value;
- if (a5 < 0 !== n2.sign) {
+ var a6 = this.value;
+ if (a6 < 0 !== n2.sign) {
return this.subtract(n2.negate());
}
- var b4 = n2.value;
+ var b5 = n2.value;
if (n2.isSmall) {
- if (isPrecise(a5 + b4))
- return new SmallInteger(a5 + b4);
- b4 = smallToArray(Math.abs(b4));
+ if (isPrecise(a6 + b5))
+ return new SmallInteger(a6 + b5);
+ b5 = smallToArray(Math.abs(b5));
}
- return new BigInteger(addSmall(b4, Math.abs(a5)), a5 < 0);
+ return new BigInteger(addSmall(b5, Math.abs(a6)), a6 < 0);
};
SmallInteger.prototype.plus = SmallInteger.prototype.add;
NativeBigInt.prototype.add = function(v3) {
return new NativeBigInt(this.value + parseValue(v3).value);
};
NativeBigInt.prototype.plus = NativeBigInt.prototype.add;
- function subtract(a5, b4) {
- var a_l = a5.length, b_l = b4.length, r3 = new Array(a_l), borrow = 0, base2 = BASE, i5, difference;
- for (i5 = 0; i5 < b_l; i5++) {
- difference = a5[i5] - borrow - b4[i5];
+ function subtract(a6, b5) {
+ var a_l = a6.length, b_l = b5.length, r3 = new Array(a_l), borrow = 0, base2 = BASE, i6, difference;
+ for (i6 = 0; i6 < b_l; i6++) {
+ difference = a6[i6] - borrow - b5[i6];
if (difference < 0) {
difference += base2;
borrow = 1;
} else
borrow = 0;
- r3[i5] = difference;
+ r3[i6] = difference;
}
- for (i5 = b_l; i5 < a_l; i5++) {
- difference = a5[i5] - borrow;
+ for (i6 = b_l; i6 < a_l; i6++) {
+ difference = a6[i6] - borrow;
if (difference < 0)
difference += base2;
else {
- r3[i5++] = difference;
+ r3[i6++] = difference;
break;
}
- r3[i5] = difference;
+ r3[i6] = difference;
}
- for (; i5 < a_l; i5++) {
- r3[i5] = a5[i5];
+ for (; i6 < a_l; i6++) {
+ r3[i6] = a6[i6];
}
trim(r3);
return r3;
}
- function subtractAny(a5, b4, sign2) {
+ function subtractAny(a6, b5, sign2) {
var value;
- if (compareAbs(a5, b4) >= 0) {
- value = subtract(a5, b4);
+ if (compareAbs(a6, b5) >= 0) {
+ value = subtract(a6, b5);
} else {
- value = subtract(b4, a5);
+ value = subtract(b5, a6);
sign2 = !sign2;
}
value = arrayToSmall(value);
@@ -267,13 +255,13 @@ var require_BigInteger = __commonJS({
}
return new BigInteger(value, sign2);
}
- function subtractSmall(a5, b4, sign2) {
- var l3 = a5.length, r3 = new Array(l3), carry = -b4, base2 = BASE, i5, difference;
- for (i5 = 0; i5 < l3; i5++) {
- difference = a5[i5] + carry;
+ function subtractSmall(a6, b5, sign2) {
+ var l3 = a6.length, r3 = new Array(l3), carry = -b5, base2 = BASE, i6, difference;
+ for (i6 = 0; i6 < l3; i6++) {
+ difference = a6[i6] + carry;
carry = Math.floor(difference / base2);
difference %= base2;
- r3[i5] = difference < 0 ? difference + base2 : difference;
+ r3[i6] = difference < 0 ? difference + base2 : difference;
}
r3 = arrayToSmall(r3);
if (typeof r3 === "number") {
@@ -288,23 +276,23 @@ var require_BigInteger = __commonJS({
if (this.sign !== n2.sign) {
return this.add(n2.negate());
}
- var a5 = this.value, b4 = n2.value;
+ var a6 = this.value, b5 = n2.value;
if (n2.isSmall)
- return subtractSmall(a5, Math.abs(b4), this.sign);
- return subtractAny(a5, b4, this.sign);
+ return subtractSmall(a6, Math.abs(b5), this.sign);
+ return subtractAny(a6, b5, this.sign);
};
BigInteger.prototype.minus = BigInteger.prototype.subtract;
SmallInteger.prototype.subtract = function(v3) {
var n2 = parseValue(v3);
- var a5 = this.value;
- if (a5 < 0 !== n2.sign) {
+ var a6 = this.value;
+ if (a6 < 0 !== n2.sign) {
return this.add(n2.negate());
}
- var b4 = n2.value;
+ var b5 = n2.value;
if (n2.isSmall) {
- return new SmallInteger(a5 - b4);
+ return new SmallInteger(a6 - b5);
}
- return subtractSmall(b4, Math.abs(a5), a5 >= 0);
+ return subtractSmall(b5, Math.abs(a6), a6 >= 0);
};
SmallInteger.prototype.minus = SmallInteger.prototype.subtract;
NativeBigInt.prototype.subtract = function(v3) {
@@ -332,47 +320,47 @@ var require_BigInteger = __commonJS({
NativeBigInt.prototype.abs = function() {
return new NativeBigInt(this.value >= 0 ? this.value : -this.value);
};
- function multiplyLong(a5, b4) {
- var a_l = a5.length, b_l = b4.length, l3 = a_l + b_l, r3 = createArray(l3), base2 = BASE, product, carry, i5, a_i, b_j;
- for (i5 = 0; i5 < a_l; ++i5) {
- a_i = a5[i5];
+ function multiplyLong(a6, b5) {
+ var a_l = a6.length, b_l = b5.length, l3 = a_l + b_l, r3 = createArray(l3), base2 = BASE, product, carry, i6, a_i, b_j;
+ for (i6 = 0; i6 < a_l; ++i6) {
+ a_i = a6[i6];
for (var j4 = 0; j4 < b_l; ++j4) {
- b_j = b4[j4];
- product = a_i * b_j + r3[i5 + j4];
+ b_j = b5[j4];
+ product = a_i * b_j + r3[i6 + j4];
carry = Math.floor(product / base2);
- r3[i5 + j4] = product - carry * base2;
- r3[i5 + j4 + 1] += carry;
+ r3[i6 + j4] = product - carry * base2;
+ r3[i6 + j4 + 1] += carry;
}
}
trim(r3);
return r3;
}
- function multiplySmall(a5, b4) {
- var l3 = a5.length, r3 = new Array(l3), base2 = BASE, carry = 0, product, i5;
- for (i5 = 0; i5 < l3; i5++) {
- product = a5[i5] * b4 + carry;
+ function multiplySmall(a6, b5) {
+ var l3 = a6.length, r3 = new Array(l3), base2 = BASE, carry = 0, product, i6;
+ for (i6 = 0; i6 < l3; i6++) {
+ product = a6[i6] * b5 + carry;
carry = Math.floor(product / base2);
- r3[i5] = product - carry * base2;
+ r3[i6] = product - carry * base2;
}
while (carry > 0) {
- r3[i5++] = carry % base2;
+ r3[i6++] = carry % base2;
carry = Math.floor(carry / base2);
}
return r3;
}
- function shiftLeft(x6, n2) {
+ function shiftLeft(x7, n2) {
var r3 = [];
while (n2-- > 0)
r3.push(0);
- return r3.concat(x6);
+ return r3.concat(x7);
}
- function multiplyKaratsuba(x6, y5) {
- var n2 = Math.max(x6.length, y5.length);
+ function multiplyKaratsuba(x7, y6) {
+ var n2 = Math.max(x7.length, y6.length);
if (n2 <= 30)
- return multiplyLong(x6, y5);
+ return multiplyLong(x7, y6);
n2 = Math.ceil(n2 / 2);
- var b4 = x6.slice(n2), a5 = x6.slice(0, n2), d5 = y5.slice(n2), c4 = y5.slice(0, n2);
- var ac = multiplyKaratsuba(a5, c4), bd = multiplyKaratsuba(b4, d5), abcd = multiplyKaratsuba(addAny(a5, b4), addAny(c4, d5));
+ var b5 = x7.slice(n2), a6 = x7.slice(0, n2), d6 = y6.slice(n2), c5 = y6.slice(0, n2);
+ var ac = multiplyKaratsuba(a6, c5), bd = multiplyKaratsuba(b5, d6), abcd = multiplyKaratsuba(addAny(a6, b5), addAny(c5, d6));
var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n2)), shiftLeft(bd, 2 * n2));
trim(product);
return product;
@@ -381,45 +369,45 @@ var require_BigInteger = __commonJS({
return -0.012 * l1 - 0.012 * l22 + 15e-6 * l1 * l22 > 0;
}
BigInteger.prototype.multiply = function(v3) {
- var n2 = parseValue(v3), a5 = this.value, b4 = n2.value, sign2 = this.sign !== n2.sign, abs;
+ var n2 = parseValue(v3), a6 = this.value, b5 = n2.value, sign2 = this.sign !== n2.sign, abs;
if (n2.isSmall) {
- if (b4 === 0)
+ if (b5 === 0)
return Integer[0];
- if (b4 === 1)
+ if (b5 === 1)
return this;
- if (b4 === -1)
+ if (b5 === -1)
return this.negate();
- abs = Math.abs(b4);
+ abs = Math.abs(b5);
if (abs < BASE) {
- return new BigInteger(multiplySmall(a5, abs), sign2);
+ return new BigInteger(multiplySmall(a6, abs), sign2);
}
- b4 = smallToArray(abs);
+ b5 = smallToArray(abs);
}
- if (useKaratsuba(a5.length, b4.length))
- return new BigInteger(multiplyKaratsuba(a5, b4), sign2);
- return new BigInteger(multiplyLong(a5, b4), sign2);
+ if (useKaratsuba(a6.length, b5.length))
+ return new BigInteger(multiplyKaratsuba(a6, b5), sign2);
+ return new BigInteger(multiplyLong(a6, b5), sign2);
};
BigInteger.prototype.times = BigInteger.prototype.multiply;
- function multiplySmallAndArray(a5, b4, sign2) {
- if (a5 < BASE) {
- return new BigInteger(multiplySmall(b4, a5), sign2);
+ function multiplySmallAndArray(a6, b5, sign2) {
+ if (a6 < BASE) {
+ return new BigInteger(multiplySmall(b5, a6), sign2);
}
- return new BigInteger(multiplyLong(b4, smallToArray(a5)), sign2);
+ return new BigInteger(multiplyLong(b5, smallToArray(a6)), sign2);
}
- SmallInteger.prototype._multiplyBySmall = function(a5) {
- if (isPrecise(a5.value * this.value)) {
- return new SmallInteger(a5.value * this.value);
+ SmallInteger.prototype._multiplyBySmall = function(a6) {
+ if (isPrecise(a6.value * this.value)) {
+ return new SmallInteger(a6.value * this.value);
}
- return multiplySmallAndArray(Math.abs(a5.value), smallToArray(Math.abs(this.value)), this.sign !== a5.sign);
+ return multiplySmallAndArray(Math.abs(a6.value), smallToArray(Math.abs(this.value)), this.sign !== a6.sign);
};
- BigInteger.prototype._multiplyBySmall = function(a5) {
- if (a5.value === 0)
+ BigInteger.prototype._multiplyBySmall = function(a6) {
+ if (a6.value === 0)
return Integer[0];
- if (a5.value === 1)
+ if (a6.value === 1)
return this;
- if (a5.value === -1)
+ if (a6.value === -1)
return this.negate();
- return multiplySmallAndArray(Math.abs(a5.value), this.value, this.sign !== a5.sign);
+ return multiplySmallAndArray(Math.abs(a6.value), this.value, this.sign !== a6.sign);
};
SmallInteger.prototype.multiply = function(v3) {
return parseValue(v3)._multiplyBySmall(this);
@@ -429,18 +417,18 @@ var require_BigInteger = __commonJS({
return new NativeBigInt(this.value * parseValue(v3).value);
};
NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;
- function square(a5) {
- var l3 = a5.length, r3 = createArray(l3 + l3), base2 = BASE, product, carry, i5, a_i, a_j;
- for (i5 = 0; i5 < l3; i5++) {
- a_i = a5[i5];
+ function square(a6) {
+ var l3 = a6.length, r3 = createArray(l3 + l3), base2 = BASE, product, carry, i6, a_i, a_j;
+ for (i6 = 0; i6 < l3; i6++) {
+ a_i = a6[i6];
carry = 0 - a_i * a_i;
- for (var j4 = i5; j4 < l3; j4++) {
- a_j = a5[j4];
- product = 2 * (a_i * a_j) + r3[i5 + j4] + carry;
+ for (var j4 = i6; j4 < l3; j4++) {
+ a_j = a6[j4];
+ product = 2 * (a_i * a_j) + r3[i6 + j4] + carry;
carry = Math.floor(product / base2);
- r3[i5 + j4] = product - carry * base2;
+ r3[i6 + j4] = product - carry * base2;
}
- r3[i5 + l3] = carry;
+ r3[i6 + l3] = carry;
}
trim(r3);
return r3;
@@ -457,8 +445,8 @@ var require_BigInteger = __commonJS({
NativeBigInt.prototype.square = function(v3) {
return new NativeBigInt(this.value * this.value);
};
- function divMod1(a5, b4) {
- var a_l = a5.length, b_l = b4.length, base2 = BASE, result = createArray(b4.length), divisorMostSignificantDigit = b4[b_l - 1], lambda = Math.ceil(base2 / (2 * divisorMostSignificantDigit)), remainder = multiplySmall(a5, lambda), divisor = multiplySmall(b4, lambda), quotientDigit, shift, carry, borrow, i5, l3, q5;
+ function divMod1(a6, b5) {
+ var a_l = a6.length, b_l = b5.length, base2 = BASE, result = createArray(b5.length), divisorMostSignificantDigit = b5[b_l - 1], lambda = Math.ceil(base2 / (2 * divisorMostSignificantDigit)), remainder = multiplySmall(a6, lambda), divisor = multiplySmall(b5, lambda), quotientDigit, shift, carry, borrow, i6, l3, q6;
if (remainder.length <= a_l)
remainder.push(0);
divisor.push(0);
@@ -471,29 +459,29 @@ var require_BigInteger = __commonJS({
carry = 0;
borrow = 0;
l3 = divisor.length;
- for (i5 = 0; i5 < l3; i5++) {
- carry += quotientDigit * divisor[i5];
- q5 = Math.floor(carry / base2);
- borrow += remainder[shift + i5] - (carry - q5 * base2);
- carry = q5;
+ for (i6 = 0; i6 < l3; i6++) {
+ carry += quotientDigit * divisor[i6];
+ q6 = Math.floor(carry / base2);
+ borrow += remainder[shift + i6] - (carry - q6 * base2);
+ carry = q6;
if (borrow < 0) {
- remainder[shift + i5] = borrow + base2;
+ remainder[shift + i6] = borrow + base2;
borrow = -1;
} else {
- remainder[shift + i5] = borrow;
+ remainder[shift + i6] = borrow;
borrow = 0;
}
}
while (borrow !== 0) {
quotientDigit -= 1;
carry = 0;
- for (i5 = 0; i5 < l3; i5++) {
- carry += remainder[shift + i5] - base2 + divisor[i5];
+ for (i6 = 0; i6 < l3; i6++) {
+ carry += remainder[shift + i6] - base2 + divisor[i6];
if (carry < 0) {
- remainder[shift + i5] = carry + base2;
+ remainder[shift + i6] = carry + base2;
carry = 0;
} else {
- remainder[shift + i5] = carry;
+ remainder[shift + i6] = carry;
carry = 1;
}
}
@@ -504,24 +492,24 @@ var require_BigInteger = __commonJS({
remainder = divModSmall(remainder, lambda)[0];
return [arrayToSmall(result), arrayToSmall(remainder)];
}
- function divMod2(a5, b4) {
- var a_l = a5.length, b_l = b4.length, result = [], part = [], base2 = BASE, guess, xlen, highx, highy, check;
+ function divMod2(a6, b5) {
+ var a_l = a6.length, b_l = b5.length, result = [], part = [], base2 = BASE, guess, xlen, highx, highy, check;
while (a_l) {
- part.unshift(a5[--a_l]);
+ part.unshift(a6[--a_l]);
trim(part);
- if (compareAbs(part, b4) < 0) {
+ if (compareAbs(part, b5) < 0) {
result.push(0);
continue;
}
xlen = part.length;
highx = part[xlen - 1] * base2 + part[xlen - 2];
- highy = b4[b_l - 1] * base2 + b4[b_l - 2];
+ highy = b5[b_l - 1] * base2 + b5[b_l - 2];
if (xlen > b_l) {
highx = (highx + 1) * base2;
}
guess = Math.ceil(highx / highy);
do {
- check = multiplySmall(b4, guess);
+ check = multiplySmall(b5, guess);
if (compareAbs(check, part) <= 0)
break;
guess--;
@@ -533,13 +521,13 @@ var require_BigInteger = __commonJS({
return [arrayToSmall(result), arrayToSmall(part)];
}
function divModSmall(value, lambda) {
- var length = value.length, quotient = createArray(length), base2 = BASE, i5, q5, remainder, divisor;
+ var length = value.length, quotient = createArray(length), base2 = BASE, i6, q6, remainder, divisor;
remainder = 0;
- for (i5 = length - 1; i5 >= 0; --i5) {
- divisor = remainder * base2 + value[i5];
- q5 = truncate(divisor / lambda);
- remainder = divisor - q5 * lambda;
- quotient[i5] = q5 | 0;
+ for (i6 = length - 1; i6 >= 0; --i6) {
+ divisor = remainder * base2 + value[i6];
+ q6 = truncate(divisor / lambda);
+ remainder = divisor - q6 * lambda;
+ quotient[i6] = q6 | 0;
}
return [quotient, remainder | 0];
}
@@ -548,24 +536,24 @@ var require_BigInteger = __commonJS({
if (supportsNativeBigInt) {
return [new NativeBigInt(self2.value / n2.value), new NativeBigInt(self2.value % n2.value)];
}
- var a5 = self2.value, b4 = n2.value;
+ var a6 = self2.value, b5 = n2.value;
var quotient;
- if (b4 === 0)
+ if (b5 === 0)
throw new Error("Cannot divide by zero");
if (self2.isSmall) {
if (n2.isSmall) {
- return [new SmallInteger(truncate(a5 / b4)), new SmallInteger(a5 % b4)];
+ return [new SmallInteger(truncate(a6 / b5)), new SmallInteger(a6 % b5)];
}
return [Integer[0], self2];
}
if (n2.isSmall) {
- if (b4 === 1)
+ if (b5 === 1)
return [self2, Integer[0]];
- if (b4 == -1)
+ if (b5 == -1)
return [self2.negate(), Integer[0]];
- var abs = Math.abs(b4);
+ var abs = Math.abs(b5);
if (abs < BASE) {
- value = divModSmall(a5, abs);
+ value = divModSmall(a6, abs);
quotient = arrayToSmall(value[0]);
var remainder = value[1];
if (self2.sign)
@@ -577,17 +565,17 @@ var require_BigInteger = __commonJS({
}
return [new BigInteger(quotient, self2.sign !== n2.sign), new SmallInteger(remainder)];
}
- b4 = smallToArray(abs);
+ b5 = smallToArray(abs);
}
- var comparison = compareAbs(a5, b4);
+ var comparison = compareAbs(a6, b5);
if (comparison === -1)
return [Integer[0], self2];
if (comparison === 0)
return [Integer[self2.sign === n2.sign ? 1 : -1], Integer[0]];
- if (a5.length + b4.length <= 200)
- value = divMod1(a5, b4);
+ if (a6.length + b5.length <= 200)
+ value = divMod1(a6, b5);
else
- value = divMod2(a5, b4);
+ value = divMod2(a6, b5);
quotient = value[0];
var qSign = self2.sign !== n2.sign, mod = value[1], mSign = self2.sign;
if (typeof quotient === "number") {
@@ -627,14 +615,14 @@ var require_BigInteger = __commonJS({
};
SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;
BigInteger.prototype.pow = function(v3) {
- var n2 = parseValue(v3), a5 = this.value, b4 = n2.value, value, x6, y5;
- if (b4 === 0)
+ var n2 = parseValue(v3), a6 = this.value, b5 = n2.value, value, x7, y6;
+ if (b5 === 0)
return Integer[1];
- if (a5 === 0)
+ if (a6 === 0)
return Integer[0];
- if (a5 === 1)
+ if (a6 === 1)
return Integer[1];
- if (a5 === -1)
+ if (a6 === -1)
return n2.isEven() ? Integer[1] : Integer[-1];
if (n2.sign) {
return Integer[0];
@@ -642,51 +630,51 @@ var require_BigInteger = __commonJS({
if (!n2.isSmall)
throw new Error("The exponent " + n2.toString() + " is too large.");
if (this.isSmall) {
- if (isPrecise(value = Math.pow(a5, b4)))
+ if (isPrecise(value = Math.pow(a6, b5)))
return new SmallInteger(truncate(value));
}
- x6 = this;
- y5 = Integer[1];
+ x7 = this;
+ y6 = Integer[1];
while (true) {
- if (b4 & true) {
- y5 = y5.times(x6);
- --b4;
+ if (b5 & true) {
+ y6 = y6.times(x7);
+ --b5;
}
- if (b4 === 0)
+ if (b5 === 0)
break;
- b4 /= 2;
- x6 = x6.square();
+ b5 /= 2;
+ x7 = x7.square();
}
- return y5;
+ return y6;
};
SmallInteger.prototype.pow = BigInteger.prototype.pow;
NativeBigInt.prototype.pow = function(v3) {
var n2 = parseValue(v3);
- var a5 = this.value, b4 = n2.value;
+ var a6 = this.value, b5 = n2.value;
var _0 = BigInt(0), _1 = BigInt(1), _22 = BigInt(2);
- if (b4 === _0)
+ if (b5 === _0)
return Integer[1];
- if (a5 === _0)
+ if (a6 === _0)
return Integer[0];
- if (a5 === _1)
+ if (a6 === _1)
return Integer[1];
- if (a5 === BigInt(-1))
+ if (a6 === BigInt(-1))
return n2.isEven() ? Integer[1] : Integer[-1];
if (n2.isNegative())
return new NativeBigInt(_0);
- var x6 = this;
- var y5 = Integer[1];
+ var x7 = this;
+ var y6 = Integer[1];
while (true) {
- if ((b4 & _1) === _1) {
- y5 = y5.times(x6);
- --b4;
+ if ((b5 & _1) === _1) {
+ y6 = y6.times(x7);
+ --b5;
}
- if (b4 === _0)
+ if (b5 === _0)
break;
- b4 /= _22;
- x6 = x6.square();
+ b5 /= _22;
+ x7 = x7.square();
}
- return y5;
+ return y6;
};
BigInteger.prototype.modPow = function(exp, mod) {
exp = parseValue(exp);
@@ -709,36 +697,36 @@ var require_BigInteger = __commonJS({
return r3;
};
NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;
- function compareAbs(a5, b4) {
- if (a5.length !== b4.length) {
- return a5.length > b4.length ? 1 : -1;
+ function compareAbs(a6, b5) {
+ if (a6.length !== b5.length) {
+ return a6.length > b5.length ? 1 : -1;
}
- for (var i5 = a5.length - 1; i5 >= 0; i5--) {
- if (a5[i5] !== b4[i5])
- return a5[i5] > b4[i5] ? 1 : -1;
+ for (var i6 = a6.length - 1; i6 >= 0; i6--) {
+ if (a6[i6] !== b5[i6])
+ return a6[i6] > b5[i6] ? 1 : -1;
}
return 0;
}
BigInteger.prototype.compareAbs = function(v3) {
- var n2 = parseValue(v3), a5 = this.value, b4 = n2.value;
+ var n2 = parseValue(v3), a6 = this.value, b5 = n2.value;
if (n2.isSmall)
return 1;
- return compareAbs(a5, b4);
+ return compareAbs(a6, b5);
};
SmallInteger.prototype.compareAbs = function(v3) {
- var n2 = parseValue(v3), a5 = Math.abs(this.value), b4 = n2.value;
+ var n2 = parseValue(v3), a6 = Math.abs(this.value), b5 = n2.value;
if (n2.isSmall) {
- b4 = Math.abs(b4);
- return a5 === b4 ? 0 : a5 > b4 ? 1 : -1;
+ b5 = Math.abs(b5);
+ return a6 === b5 ? 0 : a6 > b5 ? 1 : -1;
}
return -1;
};
NativeBigInt.prototype.compareAbs = function(v3) {
- var a5 = this.value;
- var b4 = parseValue(v3).value;
- a5 = a5 >= 0 ? a5 : -a5;
- b4 = b4 >= 0 ? b4 : -b4;
- return a5 === b4 ? 0 : a5 > b4 ? 1 : -1;
+ var a6 = this.value;
+ var b5 = parseValue(v3).value;
+ a6 = a6 >= 0 ? a6 : -a6;
+ b5 = b5 >= 0 ? b5 : -b5;
+ return a6 === b5 ? 0 : a6 > b5 ? 1 : -1;
};
BigInteger.prototype.compare = function(v3) {
if (v3 === Infinity) {
@@ -747,14 +735,14 @@ var require_BigInteger = __commonJS({
if (v3 === -Infinity) {
return 1;
}
- var n2 = parseValue(v3), a5 = this.value, b4 = n2.value;
+ var n2 = parseValue(v3), a6 = this.value, b5 = n2.value;
if (this.sign !== n2.sign) {
return n2.sign ? 1 : -1;
}
if (n2.isSmall) {
return this.sign ? -1 : 1;
}
- return compareAbs(a5, b4) * (this.sign ? -1 : 1);
+ return compareAbs(a6, b5) * (this.sign ? -1 : 1);
};
BigInteger.prototype.compareTo = BigInteger.prototype.compare;
SmallInteger.prototype.compare = function(v3) {
@@ -764,14 +752,14 @@ var require_BigInteger = __commonJS({
if (v3 === -Infinity) {
return 1;
}
- var n2 = parseValue(v3), a5 = this.value, b4 = n2.value;
+ var n2 = parseValue(v3), a6 = this.value, b5 = n2.value;
if (n2.isSmall) {
- return a5 == b4 ? 0 : a5 > b4 ? 1 : -1;
+ return a6 == b5 ? 0 : a6 > b5 ? 1 : -1;
}
- if (a5 < 0 !== n2.sign) {
- return a5 < 0 ? -1 : 1;
+ if (a6 < 0 !== n2.sign) {
+ return a6 < 0 ? -1 : 1;
}
- return a5 < 0 ? 1 : -1;
+ return a6 < 0 ? 1 : -1;
};
SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;
NativeBigInt.prototype.compare = function(v3) {
@@ -781,9 +769,9 @@ var require_BigInteger = __commonJS({
if (v3 === -Infinity) {
return 1;
}
- var a5 = this.value;
- var b4 = parseValue(v3).value;
- return a5 === b4 ? 0 : a5 > b4 ? 1 : -1;
+ var a6 = this.value;
+ var b5 = parseValue(v3).value;
+ return a6 === b5 ? 0 : a6 > b5 ? 1 : -1;
};
NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;
BigInteger.prototype.equals = function(v3) {
@@ -882,22 +870,22 @@ var require_BigInteger = __commonJS({
if (n2.lesser(49))
return true;
}
- function millerRabinTest(n2, a5) {
- var nPrev = n2.prev(), b4 = nPrev, r3 = 0, d5, t4, i5, x6;
- while (b4.isEven())
- b4 = b4.divide(2), r3++;
+ function millerRabinTest(n2, a6) {
+ var nPrev = n2.prev(), b5 = nPrev, r3 = 0, d6, t5, i6, x7;
+ while (b5.isEven())
+ b5 = b5.divide(2), r3++;
next:
- for (i5 = 0; i5 < a5.length; i5++) {
- if (n2.lesser(a5[i5]))
+ for (i6 = 0; i6 < a6.length; i6++) {
+ if (n2.lesser(a6[i6]))
continue;
- x6 = bigInt(a5[i5]).modPow(b4, n2);
- if (x6.isUnit() || x6.equals(nPrev))
+ x7 = bigInt(a6[i6]).modPow(b5, n2);
+ if (x7.isUnit() || x7.equals(nPrev))
continue;
- for (d5 = r3 - 1; d5 != 0; d5--) {
- x6 = x6.square().mod(n2);
- if (x6.isUnit())
+ for (d6 = r3 - 1; d6 != 0; d6--) {
+ x7 = x7.square().mod(n2);
+ if (x7.isUnit())
return false;
- if (x6.equals(nPrev))
+ if (x7.equals(nPrev))
continue next;
}
return false;
@@ -913,11 +901,11 @@ var require_BigInteger = __commonJS({
if (bits <= 64)
return millerRabinTest(n2, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);
var logN = Math.log(2) * bits.toJSNumber();
- var t4 = Math.ceil(strict === true ? 2 * Math.pow(logN, 2) : logN);
- for (var a5 = [], i5 = 0; i5 < t4; i5++) {
- a5.push(bigInt(i5 + 2));
+ var t5 = Math.ceil(strict === true ? 2 * Math.pow(logN, 2) : logN);
+ for (var a6 = [], i6 = 0; i6 < t5; i6++) {
+ a6.push(bigInt(i6 + 2));
}
- return millerRabinTest(n2, a5);
+ return millerRabinTest(n2, a6);
};
NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;
BigInteger.prototype.isProbablePrime = function(iterations, rng) {
@@ -925,33 +913,33 @@ var require_BigInteger = __commonJS({
if (isPrime !== undefined2)
return isPrime;
var n2 = this.abs();
- var t4 = iterations === undefined2 ? 5 : iterations;
- for (var a5 = [], i5 = 0; i5 < t4; i5++) {
- a5.push(bigInt.randBetween(2, n2.minus(2), rng));
+ var t5 = iterations === undefined2 ? 5 : iterations;
+ for (var a6 = [], i6 = 0; i6 < t5; i6++) {
+ a6.push(bigInt.randBetween(2, n2.minus(2), rng));
}
- return millerRabinTest(n2, a5);
+ return millerRabinTest(n2, a6);
};
NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;
BigInteger.prototype.modInv = function(n2) {
- var t4 = bigInt.zero, newT = bigInt.one, r3 = parseValue(n2), newR = this.abs(), q5, lastT, lastR;
+ var t5 = bigInt.zero, newT = bigInt.one, r3 = parseValue(n2), newR = this.abs(), q6, lastT, lastR;
while (!newR.isZero()) {
- q5 = r3.divide(newR);
- lastT = t4;
+ q6 = r3.divide(newR);
+ lastT = t5;
lastR = r3;
- t4 = newT;
+ t5 = newT;
r3 = newR;
- newT = lastT.subtract(q5.multiply(newT));
- newR = lastR.subtract(q5.multiply(newR));
+ newT = lastT.subtract(q6.multiply(newT));
+ newR = lastR.subtract(q6.multiply(newR));
}
if (!r3.isUnit())
throw new Error(this.toString() + " and " + n2.toString() + " are not co-prime");
- if (t4.compare(0) === -1) {
- t4 = t4.add(n2);
+ if (t5.compare(0) === -1) {
+ t5 = t5.add(n2);
}
if (this.isNegative()) {
- return t4.negate();
+ return t5.negate();
}
- return t4;
+ return t5;
};
NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;
BigInteger.prototype.next = function() {
@@ -1030,10 +1018,10 @@ var require_BigInteger = __commonJS({
return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];
};
NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;
- function bitwise(x6, y5, fn2) {
- y5 = parseValue(y5);
- var xSign = x6.isNegative(), ySign = y5.isNegative();
- var xRem = xSign ? x6.not() : x6, yRem = ySign ? y5.not() : y5;
+ function bitwise(x7, y6, fn2) {
+ y6 = parseValue(y6);
+ var xSign = x7.isNegative(), ySign = y6.isNegative();
+ var xRem = xSign ? x7.not() : x7, yRem = ySign ? y6.not() : y6;
var xDigit = 0, yDigit = 0;
var xDivMod = null, yDivMod = null;
var result = [];
@@ -1053,8 +1041,8 @@ var require_BigInteger = __commonJS({
result.push(fn2(xDigit, yDigit));
}
var sum = fn2(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);
- for (var i5 = result.length - 1; i5 >= 0; i5 -= 1) {
- sum = sum.multiply(highestPower2).add(bigInt(result[i5]));
+ for (var i6 = result.length - 1; i6 >= 0; i6 -= 1) {
+ sum = sum.multiply(highestPower2).add(bigInt(result[i6]));
}
return sum;
}
@@ -1063,35 +1051,35 @@ var require_BigInteger = __commonJS({
};
NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;
BigInteger.prototype.and = function(n2) {
- return bitwise(this, n2, function(a5, b4) {
- return a5 & b4;
+ return bitwise(this, n2, function(a6, b5) {
+ return a6 & b5;
});
};
NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;
BigInteger.prototype.or = function(n2) {
- return bitwise(this, n2, function(a5, b4) {
- return a5 | b4;
+ return bitwise(this, n2, function(a6, b5) {
+ return a6 | b5;
});
};
NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;
BigInteger.prototype.xor = function(n2) {
- return bitwise(this, n2, function(a5, b4) {
- return a5 ^ b4;
+ return bitwise(this, n2, function(a6, b5) {
+ return a6 ^ b5;
});
};
NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;
var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;
function roughLOB(n2) {
- var v3 = n2.value, x6 = typeof v3 === "number" ? v3 | LOBMASK_I : typeof v3 === "bigint" ? v3 | BigInt(LOBMASK_I) : v3[0] + v3[1] * BASE | LOBMASK_BI;
- return x6 & -x6;
+ var v3 = n2.value, x7 = typeof v3 === "number" ? v3 | LOBMASK_I : typeof v3 === "bigint" ? v3 | BigInt(LOBMASK_I) : v3[0] + v3[1] * BASE | LOBMASK_BI;
+ return x7 & -x7;
}
function integerLogarithm(value, base2) {
if (base2.compareTo(value) <= 0) {
var tmp = integerLogarithm(value, base2.square(base2));
var p4 = tmp.p;
- var e4 = tmp.e;
- var t4 = p4.multiply(base2);
- return t4.compareTo(value) <= 0 ? { p: t4, e: e4 * 2 + 1 } : { p: p4, e: e4 * 2 };
+ var e5 = tmp.e;
+ var t5 = p4.multiply(base2);
+ return t5.compareTo(value) <= 0 ? { p: t5, e: e5 * 2 + 1 } : { p: p4, e: e5 * 2 };
}
return { p: bigInt(1), e: 0 };
}
@@ -1106,68 +1094,68 @@ var require_BigInteger = __commonJS({
return bigInt(integerLogarithm(n2, bigInt(2)).e).add(bigInt(1));
};
NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;
- function max(a5, b4) {
- a5 = parseValue(a5);
- b4 = parseValue(b4);
- return a5.greater(b4) ? a5 : b4;
- }
- function min(a5, b4) {
- a5 = parseValue(a5);
- b4 = parseValue(b4);
- return a5.lesser(b4) ? a5 : b4;
- }
- function gcd(a5, b4) {
- a5 = parseValue(a5).abs();
- b4 = parseValue(b4).abs();
- if (a5.equals(b4))
- return a5;
- if (a5.isZero())
- return b4;
- if (b4.isZero())
- return a5;
- var c4 = Integer[1], d5, t4;
- while (a5.isEven() && b4.isEven()) {
- d5 = min(roughLOB(a5), roughLOB(b4));
- a5 = a5.divide(d5);
- b4 = b4.divide(d5);
- c4 = c4.multiply(d5);
- }
- while (a5.isEven()) {
- a5 = a5.divide(roughLOB(a5));
+ function max(a6, b5) {
+ a6 = parseValue(a6);
+ b5 = parseValue(b5);
+ return a6.greater(b5) ? a6 : b5;
+ }
+ function min(a6, b5) {
+ a6 = parseValue(a6);
+ b5 = parseValue(b5);
+ return a6.lesser(b5) ? a6 : b5;
+ }
+ function gcd(a6, b5) {
+ a6 = parseValue(a6).abs();
+ b5 = parseValue(b5).abs();
+ if (a6.equals(b5))
+ return a6;
+ if (a6.isZero())
+ return b5;
+ if (b5.isZero())
+ return a6;
+ var c5 = Integer[1], d6, t5;
+ while (a6.isEven() && b5.isEven()) {
+ d6 = min(roughLOB(a6), roughLOB(b5));
+ a6 = a6.divide(d6);
+ b5 = b5.divide(d6);
+ c5 = c5.multiply(d6);
+ }
+ while (a6.isEven()) {
+ a6 = a6.divide(roughLOB(a6));
}
do {
- while (b4.isEven()) {
- b4 = b4.divide(roughLOB(b4));
- }
- if (a5.greater(b4)) {
- t4 = b4;
- b4 = a5;
- a5 = t4;
- }
- b4 = b4.subtract(a5);
- } while (!b4.isZero());
- return c4.isUnit() ? a5 : a5.multiply(c4);
- }
- function lcm(a5, b4) {
- a5 = parseValue(a5).abs();
- b4 = parseValue(b4).abs();
- return a5.divide(gcd(a5, b4)).multiply(b4);
- }
- function randBetween(a5, b4, rng) {
- a5 = parseValue(a5);
- b4 = parseValue(b4);
+ while (b5.isEven()) {
+ b5 = b5.divide(roughLOB(b5));
+ }
+ if (a6.greater(b5)) {
+ t5 = b5;
+ b5 = a6;
+ a6 = t5;
+ }
+ b5 = b5.subtract(a6);
+ } while (!b5.isZero());
+ return c5.isUnit() ? a6 : a6.multiply(c5);
+ }
+ function lcm(a6, b5) {
+ a6 = parseValue(a6).abs();
+ b5 = parseValue(b5).abs();
+ return a6.divide(gcd(a6, b5)).multiply(b5);
+ }
+ function randBetween(a6, b5, rng) {
+ a6 = parseValue(a6);
+ b5 = parseValue(b5);
var usedRNG = rng || Math.random;
- var low = min(a5, b4), high = max(a5, b4);
+ var low = min(a6, b5), high = max(a6, b5);
var range = high.subtract(low).add(1);
if (range.isSmall)
return low.add(Math.floor(usedRNG() * range));
var digits = toBase(range, BASE).value;
var result = [], restricted = true;
- for (var i5 = 0; i5 < digits.length; i5++) {
- var top = restricted ? digits[i5] + (i5 + 1 < digits.length ? digits[i5 + 1] / BASE : 0) : BASE;
+ for (var i6 = 0; i6 < digits.length; i6++) {
+ var top = restricted ? digits[i6] + (i6 + 1 < digits.length ? digits[i6 + 1] / BASE : 0) : BASE;
var digit = truncate(usedRNG() * top);
result.push(digit);
- if (digit < digits[i5])
+ if (digit < digits[i6])
restricted = false;
}
return low.add(Integer.fromArray(result, BASE, false));
@@ -1180,46 +1168,46 @@ var require_BigInteger = __commonJS({
alphabet = alphabet.toLowerCase();
}
var length = text.length;
- var i5;
+ var i6;
var absBase = Math.abs(base2);
var alphabetValues = {};
- for (i5 = 0; i5 < alphabet.length; i5++) {
- alphabetValues[alphabet[i5]] = i5;
+ for (i6 = 0; i6 < alphabet.length; i6++) {
+ alphabetValues[alphabet[i6]] = i6;
}
- for (i5 = 0; i5 < length; i5++) {
- var c4 = text[i5];
- if (c4 === "-")
+ for (i6 = 0; i6 < length; i6++) {
+ var c5 = text[i6];
+ if (c5 === "-")
continue;
- if (c4 in alphabetValues) {
- if (alphabetValues[c4] >= absBase) {
- if (c4 === "1" && absBase === 1)
+ if (c5 in alphabetValues) {
+ if (alphabetValues[c5] >= absBase) {
+ if (c5 === "1" && absBase === 1)
continue;
- throw new Error(c4 + " is not a valid digit in base " + base2 + ".");
+ throw new Error(c5 + " is not a valid digit in base " + base2 + ".");
}
}
}
base2 = parseValue(base2);
var digits = [];
var isNegative = text[0] === "-";
- for (i5 = isNegative ? 1 : 0; i5 < text.length; i5++) {
- var c4 = text[i5];
- if (c4 in alphabetValues)
- digits.push(parseValue(alphabetValues[c4]));
- else if (c4 === "<") {
- var start = i5;
+ for (i6 = isNegative ? 1 : 0; i6 < text.length; i6++) {
+ var c5 = text[i6];
+ if (c5 in alphabetValues)
+ digits.push(parseValue(alphabetValues[c5]));
+ else if (c5 === "<") {
+ var start = i6;
do {
- i5++;
- } while (text[i5] !== ">" && i5 < text.length);
- digits.push(parseValue(text.slice(start + 1, i5)));
+ i6++;
+ } while (text[i6] !== ">" && i6 < text.length);
+ digits.push(parseValue(text.slice(start + 1, i6)));
} else
- throw new Error(c4 + " is not a valid character");
+ throw new Error(c5 + " is not a valid character");
}
return parseBaseFromArray(digits, base2, isNegative);
};
function parseBaseFromArray(digits, base2, isNegative) {
- var val = Integer[0], pow = Integer[1], i5;
- for (i5 = digits.length - 1; i5 >= 0; i5--) {
- val = val.add(digits[i5].times(pow));
+ var val = Integer[0], pow = Integer[1], i6;
+ for (i6 = digits.length - 1; i6 >= 0; i6--) {
+ val = val.add(digits[i6].times(pow));
pow = pow.times(base2);
}
return isNegative ? val.negate() : val;
@@ -1286,8 +1274,8 @@ var require_BigInteger = __commonJS({
}
function toBaseString(n2, base2, alphabet) {
var arr = toBase(n2, base2);
- return (arr.isNegative ? "-" : "") + arr.value.map(function(x6) {
- return stringify(x6, alphabet);
+ return (arr.isNegative ? "-" : "") + arr.value.map(function(x7) {
+ return stringify(x7, alphabet);
}).join("");
}
BigInteger.prototype.toArray = function(radix) {
@@ -1302,7 +1290,7 @@ var require_BigInteger = __commonJS({
BigInteger.prototype.toString = function(radix, alphabet) {
if (radix === undefined2)
radix = 10;
- if (radix !== 10)
+ if (radix !== 10 || alphabet)
return toBaseString(this, radix, alphabet);
var v3 = this.value, l3 = v3.length, str = String(v3[--l3]), zeros = "0000000", digit;
while (--l3 >= 0) {
@@ -1315,7 +1303,7 @@ var require_BigInteger = __commonJS({
SmallInteger.prototype.toString = function(radix, alphabet) {
if (radix === undefined2)
radix = 10;
- if (radix != 10)
+ if (radix != 10 || alphabet)
return toBaseString(this, radix, alphabet);
return String(this.value);
};
@@ -1336,9 +1324,9 @@ var require_BigInteger = __commonJS({
};
function parseStringValue(v3) {
if (isPrecise(+v3)) {
- var x6 = +v3;
- if (x6 === truncate(x6))
- return supportsNativeBigInt ? new NativeBigInt(BigInt(x6)) : new SmallInteger(x6);
+ var x7 = +v3;
+ if (x7 === truncate(x7))
+ return supportsNativeBigInt ? new NativeBigInt(BigInt(x7)) : new SmallInteger(x7);
throw new Error("Invalid integer: " + v3);
}
var sign2 = v3[0] === "-";
@@ -1365,8 +1353,8 @@ var require_BigInteger = __commonJS({
text += new Array(exp + 1).join("0");
v3 = text;
}
- var isValid2 = /^([0-9][0-9]*)$/.test(v3);
- if (!isValid2)
+ var isValid3 = /^([0-9][0-9]*)$/.test(v3);
+ if (!isValid3)
throw new Error("Invalid integer: " + v3);
if (supportsNativeBigInt) {
return new NativeBigInt(BigInt(sign2 ? "-" + v3 : v3));
@@ -1405,10 +1393,10 @@ var require_BigInteger = __commonJS({
}
return v3;
}
- for (var i4 = 0; i4 < 1e3; i4++) {
- Integer[i4] = parseValue(i4);
- if (i4 > 0)
- Integer[-i4] = parseValue(-i4);
+ for (var i5 = 0; i5 < 1e3; i5++) {
+ Integer[i5] = parseValue(i5);
+ if (i5 > 0)
+ Integer[-i5] = parseValue(-i5);
}
Integer.one = Integer[1];
Integer.zero = Integer[0];
@@ -1417,8 +1405,8 @@ var require_BigInteger = __commonJS({
Integer.min = min;
Integer.gcd = gcd;
Integer.lcm = lcm;
- Integer.isInstance = function(x6) {
- return x6 instanceof BigInteger || x6 instanceof SmallInteger || x6 instanceof NativeBigInt;
+ Integer.isInstance = function(x7) {
+ return x7 instanceof BigInteger || x7 instanceof SmallInteger || x7 instanceof NativeBigInt;
};
Integer.randBetween = randBetween;
Integer.fromArray = function(digits, base2, isNegative) {
@@ -1444,15 +1432,15 @@ var require_jed = __commonJS({
var ArrayProto = Array.prototype, ObjProto = Object.prototype, slice = ArrayProto.slice, hasOwnProp = ObjProto.hasOwnProperty, nativeForEach = ArrayProto.forEach, breaker = {};
var _3 = {
forEach: function(obj, iterator, context) {
- var i4, l3, key;
+ var i5, l3, key;
if (obj === null) {
return;
}
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
- for (i4 = 0, l3 = obj.length; i4 < l3; i4++) {
- if (i4 in obj && iterator.call(context, obj[i4], i4, obj) === breaker) {
+ for (i5 = 0, l3 = obj.length; i5 < l3; i5++) {
+ if (i5 in obj && iterator.call(context, obj[i5], i5, obj) === breaker) {
return;
}
}
@@ -1524,8 +1512,8 @@ var require_jed = __commonJS({
if ({}.toString.call(sArr) != "[object Array]") {
sArr = [].slice.call(arguments, 0);
}
- return (sArr && sArr.length ? Jed2.sprintf : function(x6) {
- return x6;
+ return (sArr && sArr.length ? Jed2.sprintf : function(x7) {
+ return x7;
})(
this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val),
sArr
@@ -1652,20 +1640,20 @@ var require_jed = __commonJS({
return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
};
str_format.format = function(parse_tree, argv) {
- var cursor = 1, tree_length = parse_tree.length, node_type = "", arg, output = [], i4, k5, match3, pad, pad_character, pad_length;
- for (i4 = 0; i4 < tree_length; i4++) {
- node_type = get_type(parse_tree[i4]);
+ var cursor = 1, tree_length = parse_tree.length, node_type = "", arg, output = [], i5, k6, match3, pad, pad_character, pad_length;
+ for (i5 = 0; i5 < tree_length; i5++) {
+ node_type = get_type(parse_tree[i5]);
if (node_type === "string") {
- output.push(parse_tree[i4]);
+ output.push(parse_tree[i5]);
} else if (node_type === "array") {
- match3 = parse_tree[i4];
+ match3 = parse_tree[i5];
if (match3[2]) {
arg = argv[cursor];
- for (k5 = 0; k5 < match3[2].length; k5++) {
- if (!arg.hasOwnProperty(match3[2][k5])) {
- throw sprintf('[sprintf] property "%s" does not exist', match3[2][k5]);
+ for (k6 = 0; k6 < match3[2].length; k6++) {
+ if (!arg.hasOwnProperty(match3[2][k6])) {
+ throw sprintf('[sprintf] property "%s" does not exist', match3[2][k6]);
}
- arg = arg[match3[2][k5]];
+ arg = arg[match3[2][k6]];
}
} else if (match3[1]) {
arg = argv[match3[1]];
@@ -1933,7 +1921,7 @@ var require_jed = __commonJS({
}
return token;
}
- var symbol, preErrorSymbol, state, action, a5, r3, yyval = {}, p4, len, newState, expected;
+ var symbol, preErrorSymbol, state, action, a6, r3, yyval = {}, p4, len, newState, expected;
while (true) {
state = stack[stack.length - 1];
if (this.defaultActions[state]) {
@@ -2093,8 +2081,8 @@ var require_jed = __commonJS({
},
showPosition: function() {
var pre = this.pastInput();
- var c4 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c4 + "^";
+ var c5 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c5 + "^";
},
next: function() {
if (this.done) {
@@ -2108,8 +2096,8 @@ var require_jed = __commonJS({
this.match = "";
}
var rules = this._currentRules();
- for (var i4 = 0; i4 < rules.length; i4++) {
- match3 = this._input.match(this.rules[rules[i4]]);
+ for (var i5 = 0; i5 < rules.length; i5++) {
+ match3 = this._input.match(this.rules[rules[i5]]);
if (match3) {
lines = match3[0].match(/\n.*/g);
if (lines)
@@ -2127,7 +2115,7 @@ var require_jed = __commonJS({
this._more = false;
this._input = this._input.slice(match3[0].length);
this.matched += match3[0];
- token = this.performAction.call(this, this.yy, this, rules[i4], this.conditionStack[this.conditionStack.length - 1]);
+ token = this.performAction.call(this, this.yy, this, rules[i5], this.conditionStack[this.conditionStack.length - 1]);
if (token)
return token;
else
@@ -2251,25 +2239,25 @@ var require_jed = __commonJS({
// ../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/dist/preact.module.js
function s(n2, l3) {
- for (var u4 in l3)
- n2[u4] = l3[u4];
+ for (var u5 in l3)
+ n2[u5] = l3[u5];
return n2;
}
function a(n2) {
var l3 = n2.parentNode;
l3 && l3.removeChild(n2);
}
-function h(l3, u4, i4) {
- var t4, o3, r3, f3 = {};
- for (r3 in u4)
- "key" == r3 ? t4 = u4[r3] : "ref" == r3 ? o3 = u4[r3] : f3[r3] = u4[r3];
- if (arguments.length > 2 && (f3.children = arguments.length > 3 ? n.call(arguments, 2) : i4), "function" == typeof l3 && null != l3.defaultProps)
+function h(l3, u5, i5) {
+ var t5, o3, r3, f3 = {};
+ for (r3 in u5)
+ "key" == r3 ? t5 = u5[r3] : "ref" == r3 ? o3 = u5[r3] : f3[r3] = u5[r3];
+ if (arguments.length > 2 && (f3.children = arguments.length > 3 ? n.call(arguments, 2) : i5), "function" == typeof l3 && null != l3.defaultProps)
for (r3 in l3.defaultProps)
void 0 === f3[r3] && (f3[r3] = l3.defaultProps[r3]);
- return v(l3, f3, t4, o3, null);
+ return v(l3, f3, t5, o3, null);
}
-function v(n2, i4, t4, o3, r3) {
- var f3 = { type: n2, props: i4, key: t4, ref: o3, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: null == r3 ? ++u : r3 };
+function v(n2, i5, t5, o3, r3) {
+ var f3 = { type: n2, props: i5, key: t5, ref: o3, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: null == r3 ? ++u : r3 };
return null == r3 && null != l.vnode && l.vnode(f3), f3;
}
function y() {
@@ -2284,17 +2272,17 @@ function d(n2, l3) {
function _(n2, l3) {
if (null == l3)
return n2.__ ? _(n2.__, n2.__.__k.indexOf(n2) + 1) : null;
- for (var u4; l3 < n2.__k.length; l3++)
- if (null != (u4 = n2.__k[l3]) && null != u4.__e)
- return u4.__e;
+ for (var u5; l3 < n2.__k.length; l3++)
+ if (null != (u5 = n2.__k[l3]) && null != u5.__e)
+ return u5.__e;
return "function" == typeof n2.type ? _(n2) : null;
}
function k(n2) {
- var l3, u4;
+ var l3, u5;
if (null != (n2 = n2.__) && null != n2.__c) {
for (n2.__e = n2.__c.base = null, l3 = 0; l3 < n2.__k.length; l3++)
- if (null != (u4 = n2.__k[l3]) && null != u4.__e) {
- n2.__e = n2.__c.base = u4.__e;
+ if (null != (u5 = n2.__k[l3]) && null != u5.__e) {
+ n2.__e = n2.__c.base = u5.__e;
break;
}
return k(n2);
@@ -2308,35 +2296,35 @@ function g() {
n2 = t.sort(function(n3, l3) {
return n3.__v.__b - l3.__v.__b;
}), t = [], n2.some(function(n3) {
- var l3, u4, i4, t4, o3, r3;
- n3.__d && (o3 = (t4 = (l3 = n3).__v).__e, (r3 = l3.__P) && (u4 = [], (i4 = s({}, t4)).__v = t4.__v + 1, j(r3, t4, i4, l3.__n, void 0 !== r3.ownerSVGElement, null != t4.__h ? [o3] : null, u4, null == o3 ? _(t4) : o3, t4.__h), z(u4, t4), t4.__e != o3 && k(t4)));
+ var l3, u5, i5, t5, o3, r3;
+ n3.__d && (o3 = (t5 = (l3 = n3).__v).__e, (r3 = l3.__P) && (u5 = [], (i5 = s({}, t5)).__v = t5.__v + 1, j(r3, t5, i5, l3.__n, void 0 !== r3.ownerSVGElement, null != t5.__h ? [o3] : null, u5, null == o3 ? _(t5) : o3, t5.__h), z(u5, t5), t5.__e != o3 && k(t5)));
});
}
-function w(n2, l3, u4, i4, t4, o3, r3, c4, s5, a5) {
- var h5, y5, d5, k5, b4, g4, w5, x6 = i4 && i4.__k || e, C3 = x6.length;
- for (u4.__k = [], h5 = 0; h5 < l3.length; h5++)
- if (null != (k5 = u4.__k[h5] = null == (k5 = l3[h5]) || "boolean" == typeof k5 ? null : "string" == typeof k5 || "number" == typeof k5 || "bigint" == typeof k5 ? v(null, k5, null, null, k5) : Array.isArray(k5) ? v(p2, { children: k5 }, null, null, null) : k5.__b > 0 ? v(k5.type, k5.props, k5.key, k5.ref ? k5.ref : null, k5.__v) : k5)) {
- if (k5.__ = u4, k5.__b = u4.__b + 1, null === (d5 = x6[h5]) || d5 && k5.key == d5.key && k5.type === d5.type)
- x6[h5] = void 0;
+function w(n2, l3, u5, i5, t5, o3, r3, c5, s6, a6) {
+ var h5, y6, d6, k6, b5, g4, w6, x7 = i5 && i5.__k || e, C3 = x7.length;
+ for (u5.__k = [], h5 = 0; h5 < l3.length; h5++)
+ if (null != (k6 = u5.__k[h5] = null == (k6 = l3[h5]) || "boolean" == typeof k6 ? null : "string" == typeof k6 || "number" == typeof k6 || "bigint" == typeof k6 ? v(null, k6, null, null, k6) : Array.isArray(k6) ? v(p2, { children: k6 }, null, null, null) : k6.__b > 0 ? v(k6.type, k6.props, k6.key, k6.ref ? k6.ref : null, k6.__v) : k6)) {
+ if (k6.__ = u5, k6.__b = u5.__b + 1, null === (d6 = x7[h5]) || d6 && k6.key == d6.key && k6.type === d6.type)
+ x7[h5] = void 0;
else
- for (y5 = 0; y5 < C3; y5++) {
- if ((d5 = x6[y5]) && k5.key == d5.key && k5.type === d5.type) {
- x6[y5] = void 0;
+ for (y6 = 0; y6 < C3; y6++) {
+ if ((d6 = x7[y6]) && k6.key == d6.key && k6.type === d6.type) {
+ x7[y6] = void 0;
break;
}
- d5 = null;
+ d6 = null;
}
- j(n2, k5, d5 = d5 || f, t4, o3, r3, c4, s5, a5), b4 = k5.__e, (y5 = k5.ref) && d5.ref != y5 && (w5 || (w5 = []), d5.ref && w5.push(d5.ref, null, k5), w5.push(y5, k5.__c || b4, k5)), null != b4 ? (null == g4 && (g4 = b4), "function" == typeof k5.type && k5.__k === d5.__k ? k5.__d = s5 = m(k5, s5, n2) : s5 = A2(n2, k5, d5, x6, b4, s5), "function" == typeof u4.type && (u4.__d = s5)) : s5 && d5.__e == s5 && s5.parentNode != n2 && (s5 = _(d5));
+ j(n2, k6, d6 = d6 || f, t5, o3, r3, c5, s6, a6), b5 = k6.__e, (y6 = k6.ref) && d6.ref != y6 && (w6 || (w6 = []), d6.ref && w6.push(d6.ref, null, k6), w6.push(y6, k6.__c || b5, k6)), null != b5 ? (null == g4 && (g4 = b5), "function" == typeof k6.type && k6.__k === d6.__k ? k6.__d = s6 = m(k6, s6, n2) : s6 = A2(n2, k6, d6, x7, b5, s6), "function" == typeof u5.type && (u5.__d = s6)) : s6 && d6.__e == s6 && s6.parentNode != n2 && (s6 = _(d6));
}
- for (u4.__e = g4, h5 = C3; h5--; )
- null != x6[h5] && N(x6[h5], x6[h5]);
- if (w5)
- for (h5 = 0; h5 < w5.length; h5++)
- M2(w5[h5], w5[++h5], w5[++h5]);
+ for (u5.__e = g4, h5 = C3; h5--; )
+ null != x7[h5] && N(x7[h5], x7[h5]);
+ if (w6)
+ for (h5 = 0; h5 < w6.length; h5++)
+ M2(w6[h5], w6[++h5], w6[++h5]);
}
-function m(n2, l3, u4) {
- for (var i4, t4 = n2.__k, o3 = 0; t4 && o3 < t4.length; o3++)
- (i4 = t4[o3]) && (i4.__ = n2, l3 = "function" == typeof i4.type ? m(i4, l3, u4) : A2(u4, i4, i4, t4, i4.__e, l3));
+function m(n2, l3, u5) {
+ for (var i5, t5 = n2.__k, o3 = 0; t5 && o3 < t5.length; o3++)
+ (i5 = t5[o3]) && (i5.__ = n2, l3 = "function" == typeof i5.type ? m(i5, l3, u5) : A2(u5, i5, i5, t5, i5.__e, l3));
return l3;
}
function x2(n2, l3) {
@@ -2344,58 +2332,58 @@ function x2(n2, l3) {
x2(n3, l3);
}) : l3.push(n2)), l3;
}
-function A2(n2, l3, u4, i4, t4, o3) {
- var r3, f3, e4;
+function A2(n2, l3, u5, i5, t5, o3) {
+ var r3, f3, e5;
if (void 0 !== l3.__d)
r3 = l3.__d, l3.__d = void 0;
- else if (null == u4 || t4 != o3 || null == t4.parentNode)
+ else if (null == u5 || t5 != o3 || null == t5.parentNode)
n:
if (null == o3 || o3.parentNode !== n2)
- n2.appendChild(t4), r3 = null;
+ n2.appendChild(t5), r3 = null;
else {
- for (f3 = o3, e4 = 0; (f3 = f3.nextSibling) && e4 < i4.length; e4 += 1)
- if (f3 == t4)
+ for (f3 = o3, e5 = 0; (f3 = f3.nextSibling) && e5 < i5.length; e5 += 1)
+ if (f3 == t5)
break n;
- n2.insertBefore(t4, o3), r3 = o3;
+ n2.insertBefore(t5, o3), r3 = o3;
}
- return void 0 !== r3 ? r3 : t4.nextSibling;
+ return void 0 !== r3 ? r3 : t5.nextSibling;
}
-function C(n2, l3, u4, i4, t4) {
+function C(n2, l3, u5, i5, t5) {
var o3;
- for (o3 in u4)
- "children" === o3 || "key" === o3 || o3 in l3 || H(n2, o3, null, u4[o3], i4);
+ for (o3 in u5)
+ "children" === o3 || "key" === o3 || o3 in l3 || H(n2, o3, null, u5[o3], i5);
for (o3 in l3)
- t4 && "function" != typeof l3[o3] || "children" === o3 || "key" === o3 || "value" === o3 || "checked" === o3 || u4[o3] === l3[o3] || H(n2, o3, l3[o3], u4[o3], i4);
+ t5 && "function" != typeof l3[o3] || "children" === o3 || "key" === o3 || "value" === o3 || "checked" === o3 || u5[o3] === l3[o3] || H(n2, o3, l3[o3], u5[o3], i5);
}
-function $(n2, l3, u4) {
- "-" === l3[0] ? n2.setProperty(l3, u4) : n2[l3] = null == u4 ? "" : "number" != typeof u4 || c.test(l3) ? u4 : u4 + "px";
+function $(n2, l3, u5) {
+ "-" === l3[0] ? n2.setProperty(l3, u5) : n2[l3] = null == u5 ? "" : "number" != typeof u5 || c.test(l3) ? u5 : u5 + "px";
}
-function H(n2, l3, u4, i4, t4) {
+function H(n2, l3, u5, i5, t5) {
var o3;
n:
if ("style" === l3)
- if ("string" == typeof u4)
- n2.style.cssText = u4;
+ if ("string" == typeof u5)
+ n2.style.cssText = u5;
else {
- if ("string" == typeof i4 && (n2.style.cssText = i4 = ""), i4)
- for (l3 in i4)
- u4 && l3 in u4 || $(n2.style, l3, "");
- if (u4)
- for (l3 in u4)
- i4 && u4[l3] === i4[l3] || $(n2.style, l3, u4[l3]);
+ if ("string" == typeof i5 && (n2.style.cssText = i5 = ""), i5)
+ for (l3 in i5)
+ u5 && l3 in u5 || $(n2.style, l3, "");
+ if (u5)
+ for (l3 in u5)
+ i5 && u5[l3] === i5[l3] || $(n2.style, l3, u5[l3]);
}
else if ("o" === l3[0] && "n" === l3[1])
- o3 = l3 !== (l3 = l3.replace(/Capture$/, "")), l3 = l3.toLowerCase() in n2 ? l3.toLowerCase().slice(2) : l3.slice(2), n2.l || (n2.l = {}), n2.l[l3 + o3] = u4, u4 ? i4 || n2.addEventListener(l3, o3 ? T : I2, o3) : n2.removeEventListener(l3, o3 ? T : I2, o3);
+ o3 = l3 !== (l3 = l3.replace(/Capture$/, "")), l3 = l3.toLowerCase() in n2 ? l3.toLowerCase().slice(2) : l3.slice(2), n2.l || (n2.l = {}), n2.l[l3 + o3] = u5, u5 ? i5 || n2.addEventListener(l3, o3 ? T : I2, o3) : n2.removeEventListener(l3, o3 ? T : I2, o3);
else if ("dangerouslySetInnerHTML" !== l3) {
- if (t4)
+ if (t5)
l3 = l3.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s");
else if ("href" !== l3 && "list" !== l3 && "form" !== l3 && "tabIndex" !== l3 && "download" !== l3 && l3 in n2)
try {
- n2[l3] = null == u4 ? "" : u4;
+ n2[l3] = null == u5 ? "" : u5;
break n;
} catch (n3) {
}
- "function" == typeof u4 || (null == u4 || false === u4 && -1 == l3.indexOf("-") ? n2.removeAttribute(l3) : n2.setAttribute(l3, u4));
+ "function" == typeof u5 || (null == u5 || false === u5 && -1 == l3.indexOf("-") ? n2.removeAttribute(l3) : n2.setAttribute(l3, u5));
}
}
function I2(n2) {
@@ -2404,145 +2392,145 @@ function I2(n2) {
function T(n2) {
this.l[n2.type + true](l.event ? l.event(n2) : n2);
}
-function j(n2, u4, i4, t4, o3, r3, f3, e4, c4) {
- var a5, h5, v3, y5, _3, k5, b4, g4, m5, x6, A5, C3, $3, H5, I5, T5 = u4.type;
- if (void 0 !== u4.constructor)
+function j(n2, u5, i5, t5, o3, r3, f3, e5, c5) {
+ var a6, h5, v3, y6, _3, k6, b5, g4, m6, x7, A5, C3, $3, H6, I6, T6 = u5.type;
+ if (void 0 !== u5.constructor)
return null;
- null != i4.__h && (c4 = i4.__h, e4 = u4.__e = i4.__e, u4.__h = null, r3 = [e4]), (a5 = l.__b) && a5(u4);
+ null != i5.__h && (c5 = i5.__h, e5 = u5.__e = i5.__e, u5.__h = null, r3 = [e5]), (a6 = l.__b) && a6(u5);
try {
n:
- if ("function" == typeof T5) {
- if (g4 = u4.props, m5 = (a5 = T5.contextType) && t4[a5.__c], x6 = a5 ? m5 ? m5.props.value : a5.__ : t4, i4.__c ? b4 = (h5 = u4.__c = i4.__c).__ = h5.__E : ("prototype" in T5 && T5.prototype.render ? u4.__c = h5 = new T5(g4, x6) : (u4.__c = h5 = new d(g4, x6), h5.constructor = T5, h5.render = O), m5 && m5.sub(h5), h5.props = g4, h5.state || (h5.state = {}), h5.context = x6, h5.__n = t4, v3 = h5.__d = true, h5.__h = [], h5._sb = []), null == h5.__s && (h5.__s = h5.state), null != T5.getDerivedStateFromProps && (h5.__s == h5.state && (h5.__s = s({}, h5.__s)), s(h5.__s, T5.getDerivedStateFromProps(g4, h5.__s))), y5 = h5.props, _3 = h5.state, v3)
- null == T5.getDerivedStateFromProps && null != h5.componentWillMount && h5.componentWillMount(), null != h5.componentDidMount && h5.__h.push(h5.componentDidMount);
+ if ("function" == typeof T6) {
+ if (g4 = u5.props, m6 = (a6 = T6.contextType) && t5[a6.__c], x7 = a6 ? m6 ? m6.props.value : a6.__ : t5, i5.__c ? b5 = (h5 = u5.__c = i5.__c).__ = h5.__E : ("prototype" in T6 && T6.prototype.render ? u5.__c = h5 = new T6(g4, x7) : (u5.__c = h5 = new d(g4, x7), h5.constructor = T6, h5.render = O), m6 && m6.sub(h5), h5.props = g4, h5.state || (h5.state = {}), h5.context = x7, h5.__n = t5, v3 = h5.__d = true, h5.__h = [], h5._sb = []), null == h5.__s && (h5.__s = h5.state), null != T6.getDerivedStateFromProps && (h5.__s == h5.state && (h5.__s = s({}, h5.__s)), s(h5.__s, T6.getDerivedStateFromProps(g4, h5.__s))), y6 = h5.props, _3 = h5.state, v3)
+ null == T6.getDerivedStateFromProps && null != h5.componentWillMount && h5.componentWillMount(), null != h5.componentDidMount && h5.__h.push(h5.componentDidMount);
else {
- if (null == T5.getDerivedStateFromProps && g4 !== y5 && null != h5.componentWillReceiveProps && h5.componentWillReceiveProps(g4, x6), !h5.__e && null != h5.shouldComponentUpdate && false === h5.shouldComponentUpdate(g4, h5.__s, x6) || u4.__v === i4.__v) {
- for (h5.props = g4, h5.state = h5.__s, u4.__v !== i4.__v && (h5.__d = false), h5.__v = u4, u4.__e = i4.__e, u4.__k = i4.__k, u4.__k.forEach(function(n3) {
- n3 && (n3.__ = u4);
+ if (null == T6.getDerivedStateFromProps && g4 !== y6 && null != h5.componentWillReceiveProps && h5.componentWillReceiveProps(g4, x7), !h5.__e && null != h5.shouldComponentUpdate && false === h5.shouldComponentUpdate(g4, h5.__s, x7) || u5.__v === i5.__v) {
+ for (h5.props = g4, h5.state = h5.__s, u5.__v !== i5.__v && (h5.__d = false), h5.__v = u5, u5.__e = i5.__e, u5.__k = i5.__k, u5.__k.forEach(function(n3) {
+ n3 && (n3.__ = u5);
}), A5 = 0; A5 < h5._sb.length; A5++)
h5.__h.push(h5._sb[A5]);
h5._sb = [], h5.__h.length && f3.push(h5);
break n;
}
- null != h5.componentWillUpdate && h5.componentWillUpdate(g4, h5.__s, x6), null != h5.componentDidUpdate && h5.__h.push(function() {
- h5.componentDidUpdate(y5, _3, k5);
+ null != h5.componentWillUpdate && h5.componentWillUpdate(g4, h5.__s, x7), null != h5.componentDidUpdate && h5.__h.push(function() {
+ h5.componentDidUpdate(y6, _3, k6);
});
}
- if (h5.context = x6, h5.props = g4, h5.__v = u4, h5.__P = n2, C3 = l.__r, $3 = 0, "prototype" in T5 && T5.prototype.render) {
- for (h5.state = h5.__s, h5.__d = false, C3 && C3(u4), a5 = h5.render(h5.props, h5.state, h5.context), H5 = 0; H5 < h5._sb.length; H5++)
- h5.__h.push(h5._sb[H5]);
+ if (h5.context = x7, h5.props = g4, h5.__v = u5, h5.__P = n2, C3 = l.__r, $3 = 0, "prototype" in T6 && T6.prototype.render) {
+ for (h5.state = h5.__s, h5.__d = false, C3 && C3(u5), a6 = h5.render(h5.props, h5.state, h5.context), H6 = 0; H6 < h5._sb.length; H6++)
+ h5.__h.push(h5._sb[H6]);
h5._sb = [];
} else
do {
- h5.__d = false, C3 && C3(u4), a5 = h5.render(h5.props, h5.state, h5.context), h5.state = h5.__s;
+ h5.__d = false, C3 && C3(u5), a6 = h5.render(h5.props, h5.state, h5.context), h5.state = h5.__s;
} while (h5.__d && ++$3 < 25);
- h5.state = h5.__s, null != h5.getChildContext && (t4 = s(s({}, t4), h5.getChildContext())), v3 || null == h5.getSnapshotBeforeUpdate || (k5 = h5.getSnapshotBeforeUpdate(y5, _3)), I5 = null != a5 && a5.type === p2 && null == a5.key ? a5.props.children : a5, w(n2, Array.isArray(I5) ? I5 : [I5], u4, i4, t4, o3, r3, f3, e4, c4), h5.base = u4.__e, u4.__h = null, h5.__h.length && f3.push(h5), b4 && (h5.__E = h5.__ = null), h5.__e = false;
+ h5.state = h5.__s, null != h5.getChildContext && (t5 = s(s({}, t5), h5.getChildContext())), v3 || null == h5.getSnapshotBeforeUpdate || (k6 = h5.getSnapshotBeforeUpdate(y6, _3)), I6 = null != a6 && a6.type === p2 && null == a6.key ? a6.props.children : a6, w(n2, Array.isArray(I6) ? I6 : [I6], u5, i5, t5, o3, r3, f3, e5, c5), h5.base = u5.__e, u5.__h = null, h5.__h.length && f3.push(h5), b5 && (h5.__E = h5.__ = null), h5.__e = false;
} else
- null == r3 && u4.__v === i4.__v ? (u4.__k = i4.__k, u4.__e = i4.__e) : u4.__e = L2(i4.__e, u4, i4, t4, o3, r3, f3, c4);
- (a5 = l.diffed) && a5(u4);
+ null == r3 && u5.__v === i5.__v ? (u5.__k = i5.__k, u5.__e = i5.__e) : u5.__e = L2(i5.__e, u5, i5, t5, o3, r3, f3, c5);
+ (a6 = l.diffed) && a6(u5);
} catch (n3) {
- u4.__v = null, (c4 || null != r3) && (u4.__e = e4, u4.__h = !!c4, r3[r3.indexOf(e4)] = null), l.__e(n3, u4, i4);
+ u5.__v = null, (c5 || null != r3) && (u5.__e = e5, u5.__h = !!c5, r3[r3.indexOf(e5)] = null), l.__e(n3, u5, i5);
}
}
-function z(n2, u4) {
- l.__c && l.__c(u4, n2), n2.some(function(u5) {
+function z(n2, u5) {
+ l.__c && l.__c(u5, n2), n2.some(function(u6) {
try {
- n2 = u5.__h, u5.__h = [], n2.some(function(n3) {
- n3.call(u5);
+ n2 = u6.__h, u6.__h = [], n2.some(function(n3) {
+ n3.call(u6);
});
} catch (n3) {
- l.__e(n3, u5.__v);
+ l.__e(n3, u6.__v);
}
});
}
-function L2(l3, u4, i4, t4, o3, r3, e4, c4) {
- var s5, h5, v3, y5 = i4.props, p4 = u4.props, d5 = u4.type, k5 = 0;
- if ("svg" === d5 && (o3 = true), null != r3) {
- for (; k5 < r3.length; k5++)
- if ((s5 = r3[k5]) && "setAttribute" in s5 == !!d5 && (d5 ? s5.localName === d5 : 3 === s5.nodeType)) {
- l3 = s5, r3[k5] = null;
+function L2(l3, u5, i5, t5, o3, r3, e5, c5) {
+ var s6, h5, v3, y6 = i5.props, p4 = u5.props, d6 = u5.type, k6 = 0;
+ if ("svg" === d6 && (o3 = true), null != r3) {
+ for (; k6 < r3.length; k6++)
+ if ((s6 = r3[k6]) && "setAttribute" in s6 == !!d6 && (d6 ? s6.localName === d6 : 3 === s6.nodeType)) {
+ l3 = s6, r3[k6] = null;
break;
}
}
if (null == l3) {
- if (null === d5)
+ if (null === d6)
return document.createTextNode(p4);
- l3 = o3 ? document.createElementNS("http://www.w3.org/2000/svg", d5) : document.createElement(d5, p4.is && p4), r3 = null, c4 = false;
+ l3 = o3 ? document.createElementNS("http://www.w3.org/2000/svg", d6) : document.createElement(d6, p4.is && p4), r3 = null, c5 = false;
}
- if (null === d5)
- y5 === p4 || c4 && l3.data === p4 || (l3.data = p4);
+ if (null === d6)
+ y6 === p4 || c5 && l3.data === p4 || (l3.data = p4);
else {
- if (r3 = r3 && n.call(l3.childNodes), h5 = (y5 = i4.props || f).dangerouslySetInnerHTML, v3 = p4.dangerouslySetInnerHTML, !c4) {
+ if (r3 = r3 && n.call(l3.childNodes), h5 = (y6 = i5.props || f).dangerouslySetInnerHTML, v3 = p4.dangerouslySetInnerHTML, !c5) {
if (null != r3)
- for (y5 = {}, k5 = 0; k5 < l3.attributes.length; k5++)
- y5[l3.attributes[k5].name] = l3.attributes[k5].value;
+ for (y6 = {}, k6 = 0; k6 < l3.attributes.length; k6++)
+ y6[l3.attributes[k6].name] = l3.attributes[k6].value;
(v3 || h5) && (v3 && (h5 && v3.__html == h5.__html || v3.__html === l3.innerHTML) || (l3.innerHTML = v3 && v3.__html || ""));
}
- if (C(l3, p4, y5, o3, c4), v3)
- u4.__k = [];
- else if (k5 = u4.props.children, w(l3, Array.isArray(k5) ? k5 : [k5], u4, i4, t4, o3 && "foreignObject" !== d5, r3, e4, r3 ? r3[0] : i4.__k && _(i4, 0), c4), null != r3)
- for (k5 = r3.length; k5--; )
- null != r3[k5] && a(r3[k5]);
- c4 || ("value" in p4 && void 0 !== (k5 = p4.value) && (k5 !== l3.value || "progress" === d5 && !k5 || "option" === d5 && k5 !== y5.value) && H(l3, "value", k5, y5.value, false), "checked" in p4 && void 0 !== (k5 = p4.checked) && k5 !== l3.checked && H(l3, "checked", k5, y5.checked, false));
+ if (C(l3, p4, y6, o3, c5), v3)
+ u5.__k = [];
+ else if (k6 = u5.props.children, w(l3, Array.isArray(k6) ? k6 : [k6], u5, i5, t5, o3 && "foreignObject" !== d6, r3, e5, r3 ? r3[0] : i5.__k && _(i5, 0), c5), null != r3)
+ for (k6 = r3.length; k6--; )
+ null != r3[k6] && a(r3[k6]);
+ c5 || ("value" in p4 && void 0 !== (k6 = p4.value) && (k6 !== l3.value || "progress" === d6 && !k6 || "option" === d6 && k6 !== y6.value) && H(l3, "value", k6, y6.value, false), "checked" in p4 && void 0 !== (k6 = p4.checked) && k6 !== l3.checked && H(l3, "checked", k6, y6.checked, false));
}
return l3;
}
-function M2(n2, u4, i4) {
+function M2(n2, u5, i5) {
try {
- "function" == typeof n2 ? n2(u4) : n2.current = u4;
+ "function" == typeof n2 ? n2(u5) : n2.current = u5;
} catch (n3) {
- l.__e(n3, i4);
+ l.__e(n3, i5);
}
}
-function N(n2, u4, i4) {
- var t4, o3;
- if (l.unmount && l.unmount(n2), (t4 = n2.ref) && (t4.current && t4.current !== n2.__e || M2(t4, null, u4)), null != (t4 = n2.__c)) {
- if (t4.componentWillUnmount)
+function N(n2, u5, i5) {
+ var t5, o3;
+ if (l.unmount && l.unmount(n2), (t5 = n2.ref) && (t5.current && t5.current !== n2.__e || M2(t5, null, u5)), null != (t5 = n2.__c)) {
+ if (t5.componentWillUnmount)
try {
- t4.componentWillUnmount();
+ t5.componentWillUnmount();
} catch (n3) {
- l.__e(n3, u4);
+ l.__e(n3, u5);
}
- t4.base = t4.__P = null, n2.__c = void 0;
+ t5.base = t5.__P = null, n2.__c = void 0;
}
- if (t4 = n2.__k)
- for (o3 = 0; o3 < t4.length; o3++)
- t4[o3] && N(t4[o3], u4, i4 || "function" != typeof n2.type);
- i4 || null == n2.__e || a(n2.__e), n2.__ = n2.__e = n2.__d = void 0;
+ if (t5 = n2.__k)
+ for (o3 = 0; o3 < t5.length; o3++)
+ t5[o3] && N(t5[o3], u5, i5 || "function" != typeof n2.type);
+ i5 || null == n2.__e || a(n2.__e), n2.__ = n2.__e = n2.__d = void 0;
}
-function O(n2, l3, u4) {
- return this.constructor(n2, u4);
+function O(n2, l3, u5) {
+ return this.constructor(n2, u5);
}
-function P(u4, i4, t4) {
- var o3, r3, e4;
- l.__ && l.__(u4, i4), r3 = (o3 = "function" == typeof t4) ? null : t4 && t4.__k || i4.__k, e4 = [], j(i4, u4 = (!o3 && t4 || i4).__k = h(p2, null, [u4]), r3 || f, f, void 0 !== i4.ownerSVGElement, !o3 && t4 ? [t4] : r3 ? null : i4.firstChild ? n.call(i4.childNodes) : null, e4, !o3 && t4 ? t4 : r3 ? r3.__e : i4.firstChild, o3), z(e4, u4);
+function P(u5, i5, t5) {
+ var o3, r3, e5;
+ l.__ && l.__(u5, i5), r3 = (o3 = "function" == typeof t5) ? null : t5 && t5.__k || i5.__k, e5 = [], j(i5, u5 = (!o3 && t5 || i5).__k = h(p2, null, [u5]), r3 || f, f, void 0 !== i5.ownerSVGElement, !o3 && t5 ? [t5] : r3 ? null : i5.firstChild ? n.call(i5.childNodes) : null, e5, !o3 && t5 ? t5 : r3 ? r3.__e : i5.firstChild, o3), z(e5, u5);
}
function S2(n2, l3) {
P(n2, l3, S2);
}
-function q(l3, u4, i4) {
- var t4, o3, r3, f3 = s({}, l3.props);
- for (r3 in u4)
- "key" == r3 ? t4 = u4[r3] : "ref" == r3 ? o3 = u4[r3] : f3[r3] = u4[r3];
- return arguments.length > 2 && (f3.children = arguments.length > 3 ? n.call(arguments, 2) : i4), v(l3.type, f3, t4 || l3.key, o3 || l3.ref, null);
+function q(l3, u5, i5) {
+ var t5, o3, r3, f3 = s({}, l3.props);
+ for (r3 in u5)
+ "key" == r3 ? t5 = u5[r3] : "ref" == r3 ? o3 = u5[r3] : f3[r3] = u5[r3];
+ return arguments.length > 2 && (f3.children = arguments.length > 3 ? n.call(arguments, 2) : i5), v(l3.type, f3, t5 || l3.key, o3 || l3.ref, null);
}
function B(n2, l3) {
- var u4 = { __c: l3 = "__cC" + r++, __: n2, Consumer: function(n3, l4) {
+ var u5 = { __c: l3 = "__cC" + r++, __: n2, Consumer: function(n3, l4) {
return n3.children(l4);
}, Provider: function(n3) {
- var u5, i4;
- return this.getChildContext || (u5 = [], (i4 = {})[l3] = this, this.getChildContext = function() {
- return i4;
+ var u6, i5;
+ return this.getChildContext || (u6 = [], (i5 = {})[l3] = this, this.getChildContext = function() {
+ return i5;
}, this.shouldComponentUpdate = function(n4) {
- this.props.value !== n4.value && u5.some(b);
+ this.props.value !== n4.value && u6.some(b);
}, this.sub = function(n4) {
- u5.push(n4);
+ u6.push(n4);
var l4 = n4.componentWillUnmount;
n4.componentWillUnmount = function() {
- u5.splice(u5.indexOf(n4), 1), l4 && l4.call(n4);
+ u6.splice(u6.indexOf(n4), 1), l4 && l4.call(n4);
};
}), n3.children;
} };
- return u4.Provider.__ = u4.Consumer.contextType = u4;
+ return u5.Provider.__ = u5.Consumer.contextType = u5;
}
var n, l, u, i, t, o, r, f, e, c;
var init_preact_module = __esm({
@@ -2550,12 +2538,12 @@ var init_preact_module = __esm({
f = {};
e = [];
c = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
- n = e.slice, l = { __e: function(n2, l3, u4, i4) {
- for (var t4, o3, r3; l3 = l3.__; )
- if ((t4 = l3.__c) && !t4.__)
+ n = e.slice, l = { __e: function(n2, l3, u5, i5) {
+ for (var t5, o3, r3; l3 = l3.__; )
+ if ((t5 = l3.__c) && !t5.__)
try {
- if ((o3 = t4.constructor) && null != o3.getDerivedStateFromError && (t4.setState(o3.getDerivedStateFromError(n2)), r3 = t4.__d), null != t4.componentDidCatch && (t4.componentDidCatch(n2, i4 || {}), r3 = t4.__d), r3)
- return t4.__E = t4;
+ if ((o3 = t5.constructor) && null != o3.getDerivedStateFromError && (t5.setState(o3.getDerivedStateFromError(n2)), r3 = t5.__d), null != t5.componentDidCatch && (t5.componentDidCatch(n2, i5 || {}), r3 = t5.__d), r3)
+ return t5.__E = t5;
} catch (l4) {
n2 = l4;
}
@@ -2563,8 +2551,8 @@ var init_preact_module = __esm({
} }, u = 0, i = function(n2) {
return null != n2 && void 0 === n2.constructor;
}, d.prototype.setState = function(n2, l3) {
- var u4;
- u4 = null != this.__s && this.__s !== this.state ? this.__s : this.__s = s({}, this.state), "function" == typeof n2 && (n2 = n2(s({}, u4), this.props)), n2 && s(u4, n2), null != n2 && this.__v && (l3 && this._sb.push(l3), b(this));
+ var u5;
+ u5 = null != this.__s && this.__s !== this.state ? this.__s : this.__s = s({}, this.state), "function" == typeof n2 && (n2 = n2(s({}, u5), this.props)), n2 && s(u5, n2), null != n2 && this.__v && (l3 && this._sb.push(l3), b(this));
}, d.prototype.forceUpdate = function(n2) {
this.__v && (this.__e = true, n2 && this.__h.push(n2), b(this));
}, d.prototype.render = p2, t = [], g.__r = 0, r = 0;
@@ -2572,129 +2560,129 @@ var init_preact_module = __esm({
});
// ../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/hooks/dist/hooks.module.js
-function d2(t4, u4) {
- l.__h && l.__h(r2, t4, o2 || u4), o2 = 0;
- var i4 = r2.__H || (r2.__H = { __: [], __h: [] });
- return t4 >= i4.__.length && i4.__.push({ __V: c2 }), i4.__[t4];
+function d2(t5, u5) {
+ l.__h && l.__h(r2, t5, o2 || u5), o2 = 0;
+ var i5 = r2.__H || (r2.__H = { __: [], __h: [] });
+ return t5 >= i5.__.length && i5.__.push({ __V: c2 }), i5.__[t5];
}
function p3(n2) {
return o2 = 1, y2(B2, n2);
}
-function y2(n2, u4, i4) {
+function y2(n2, u5, i5) {
var o3 = d2(t2++, 2);
- if (o3.t = n2, !o3.__c && (o3.__ = [i4 ? i4(u4) : B2(void 0, u4), function(n3) {
- var t4 = o3.__N ? o3.__N[0] : o3.__[0], r3 = o3.t(t4, n3);
- t4 !== r3 && (o3.__N = [r3, o3.__[1]], o3.__c.setState({}));
+ if (o3.t = n2, !o3.__c && (o3.__ = [i5 ? i5(u5) : B2(void 0, u5), function(n3) {
+ var t5 = o3.__N ? o3.__N[0] : o3.__[0], r3 = o3.t(t5, n3);
+ t5 !== r3 && (o3.__N = [r3, o3.__[1]], o3.__c.setState({}));
}], o3.__c = r2, !r2.u)) {
r2.u = true;
var f3 = r2.shouldComponentUpdate;
- r2.shouldComponentUpdate = function(n3, t4, r3) {
+ r2.shouldComponentUpdate = function(n3, t5, r3) {
if (!o3.__c.__H)
return true;
- var u5 = o3.__c.__H.__.filter(function(n4) {
+ var u6 = o3.__c.__H.__.filter(function(n4) {
return n4.__c;
});
- if (u5.every(function(n4) {
+ if (u6.every(function(n4) {
return !n4.__N;
}))
- return !f3 || f3.call(this, n3, t4, r3);
- var i5 = false;
- return u5.forEach(function(n4) {
+ return !f3 || f3.call(this, n3, t5, r3);
+ var i6 = false;
+ return u6.forEach(function(n4) {
if (n4.__N) {
- var t5 = n4.__[0];
- n4.__ = n4.__N, n4.__N = void 0, t5 !== n4.__[0] && (i5 = true);
+ var t6 = n4.__[0];
+ n4.__ = n4.__N, n4.__N = void 0, t6 !== n4.__[0] && (i6 = true);
}
- }), !(!i5 && o3.__c.props === n3) && (!f3 || f3.call(this, n3, t4, r3));
+ }), !(!i6 && o3.__c.props === n3) && (!f3 || f3.call(this, n3, t5, r3));
};
}
return o3.__N || o3.__;
}
-function h2(u4, i4) {
+function h2(u5, i5) {
var o3 = d2(t2++, 3);
- !l.__s && z2(o3.__H, i4) && (o3.__ = u4, o3.i = i4, r2.__H.__h.push(o3));
+ !l.__s && z2(o3.__H, i5) && (o3.__ = u5, o3.i = i5, r2.__H.__h.push(o3));
}
-function s2(u4, i4) {
+function s2(u5, i5) {
var o3 = d2(t2++, 4);
- !l.__s && z2(o3.__H, i4) && (o3.__ = u4, o3.i = i4, r2.__h.push(o3));
+ !l.__s && z2(o3.__H, i5) && (o3.__ = u5, o3.i = i5, r2.__h.push(o3));
}
function _2(n2) {
return o2 = 5, F(function() {
return { current: n2 };
}, []);
}
-function A3(n2, t4, r3) {
+function A3(n2, t5, r3) {
o2 = 6, s2(function() {
- return "function" == typeof n2 ? (n2(t4()), function() {
+ return "function" == typeof n2 ? (n2(t5()), function() {
return n2(null);
- }) : n2 ? (n2.current = t4(), function() {
+ }) : n2 ? (n2.current = t5(), function() {
return n2.current = null;
}) : void 0;
}, null == r3 ? r3 : r3.concat(n2));
}
function F(n2, r3) {
- var u4 = d2(t2++, 7);
- return z2(u4.__H, r3) ? (u4.__V = n2(), u4.i = r3, u4.__h = n2, u4.__V) : u4.__;
+ var u5 = d2(t2++, 7);
+ return z2(u5.__H, r3) ? (u5.__V = n2(), u5.i = r3, u5.__h = n2, u5.__V) : u5.__;
}
-function T2(n2, t4) {
+function T2(n2, t5) {
return o2 = 8, F(function() {
return n2;
- }, t4);
+ }, t5);
}
function q2(n2) {
- var u4 = r2.context[n2.__c], i4 = d2(t2++, 9);
- return i4.c = n2, u4 ? (null == i4.__ && (i4.__ = true, u4.sub(r2)), u4.props.value) : n2.__;
+ var u5 = r2.context[n2.__c], i5 = d2(t2++, 9);
+ return i5.c = n2, u5 ? (null == i5.__ && (i5.__ = true, u5.sub(r2)), u5.props.value) : n2.__;
}
-function x3(t4, r3) {
- l.useDebugValue && l.useDebugValue(r3 ? r3(t4) : t4);
+function x3(t5, r3) {
+ l.useDebugValue && l.useDebugValue(r3 ? r3(t5) : t5);
}
function P2(n2) {
- var u4 = d2(t2++, 10), i4 = p3();
- return u4.__ = n2, r2.componentDidCatch || (r2.componentDidCatch = function(n3, t4) {
- u4.__ && u4.__(n3, t4), i4[1](n3);
- }), [i4[0], function() {
- i4[1](void 0);
+ var u5 = d2(t2++, 10), i5 = p3();
+ return u5.__ = n2, r2.componentDidCatch || (r2.componentDidCatch = function(n3, t5) {
+ u5.__ && u5.__(n3, t5), i5[1](n3);
+ }), [i5[0], function() {
+ i5[1](void 0);
}];
}
function V() {
var n2 = d2(t2++, 11);
if (!n2.__) {
- for (var u4 = r2.__v; null !== u4 && !u4.__m && null !== u4.__; )
- u4 = u4.__;
- var i4 = u4.__m || (u4.__m = [0, 0]);
- n2.__ = "P" + i4[0] + "-" + i4[1]++;
+ for (var u5 = r2.__v; null !== u5 && !u5.__m && null !== u5.__; )
+ u5 = u5.__;
+ var i5 = u5.__m || (u5.__m = [0, 0]);
+ n2.__ = "P" + i5[0] + "-" + i5[1]++;
}
return n2.__;
}
function b2() {
- for (var t4; t4 = f2.shift(); )
- if (t4.__P && t4.__H)
+ for (var t5; t5 = f2.shift(); )
+ if (t5.__P && t5.__H)
try {
- t4.__H.__h.forEach(k2), t4.__H.__h.forEach(w2), t4.__H.__h = [];
+ t5.__H.__h.forEach(k2), t5.__H.__h.forEach(w2), t5.__H.__h = [];
} catch (r3) {
- t4.__H.__h = [], l.__e(r3, t4.__v);
+ t5.__H.__h = [], l.__e(r3, t5.__v);
}
}
function j2(n2) {
- var t4, r3 = function() {
- clearTimeout(u4), g2 && cancelAnimationFrame(t4), setTimeout(n2);
- }, u4 = setTimeout(r3, 100);
- g2 && (t4 = requestAnimationFrame(r3));
+ var t5, r3 = function() {
+ clearTimeout(u5), g2 && cancelAnimationFrame(t5), setTimeout(n2);
+ }, u5 = setTimeout(r3, 100);
+ g2 && (t5 = requestAnimationFrame(r3));
}
function k2(n2) {
- var t4 = r2, u4 = n2.__c;
- "function" == typeof u4 && (n2.__c = void 0, u4()), r2 = t4;
+ var t5 = r2, u5 = n2.__c;
+ "function" == typeof u5 && (n2.__c = void 0, u5()), r2 = t5;
}
function w2(n2) {
- var t4 = r2;
- n2.__c = n2.__(), r2 = t4;
+ var t5 = r2;
+ n2.__c = n2.__(), r2 = t5;
}
-function z2(n2, t4) {
- return !n2 || n2.length !== t4.length || t4.some(function(t5, r3) {
- return t5 !== n2[r3];
+function z2(n2, t5) {
+ return !n2 || n2.length !== t5.length || t5.some(function(t6, r3) {
+ return t6 !== n2[r3];
});
}
-function B2(n2, t4) {
- return "function" == typeof t4 ? t4(n2) : t4;
+function B2(n2, t5) {
+ return "function" == typeof t5 ? t5(n2) : t5;
}
var t2, r2, u2, i2, o2, f2, c2, e2, a2, v2, l2, m2, g2;
var init_hooks_module = __esm({
@@ -2712,38 +2700,38 @@ var init_hooks_module = __esm({
r2 = null, e2 && e2(n2);
}, l.__r = function(n2) {
a2 && a2(n2), t2 = 0;
- var i4 = (r2 = n2.__c).__H;
- i4 && (u2 === r2 ? (i4.__h = [], r2.__h = [], i4.__.forEach(function(n3) {
+ var i5 = (r2 = n2.__c).__H;
+ i5 && (u2 === r2 ? (i5.__h = [], r2.__h = [], i5.__.forEach(function(n3) {
n3.__N && (n3.__ = n3.__N), n3.__V = c2, n3.__N = n3.i = void 0;
- })) : (i4.__h.forEach(k2), i4.__h.forEach(w2), i4.__h = [])), u2 = r2;
- }, l.diffed = function(t4) {
- v2 && v2(t4);
- var o3 = t4.__c;
+ })) : (i5.__h.forEach(k2), i5.__h.forEach(w2), i5.__h = [])), u2 = r2;
+ }, l.diffed = function(t5) {
+ v2 && v2(t5);
+ var o3 = t5.__c;
o3 && o3.__H && (o3.__H.__h.length && (1 !== f2.push(o3) && i2 === l.requestAnimationFrame || ((i2 = l.requestAnimationFrame) || j2)(b2)), o3.__H.__.forEach(function(n2) {
n2.i && (n2.__H = n2.i), n2.__V !== c2 && (n2.__ = n2.__V), n2.i = void 0, n2.__V = c2;
})), u2 = r2 = null;
- }, l.__c = function(t4, r3) {
- r3.some(function(t5) {
+ }, l.__c = function(t5, r3) {
+ r3.some(function(t6) {
try {
- t5.__h.forEach(k2), t5.__h = t5.__h.filter(function(n2) {
+ t6.__h.forEach(k2), t6.__h = t6.__h.filter(function(n2) {
return !n2.__ || w2(n2);
});
- } catch (u4) {
+ } catch (u5) {
r3.some(function(n2) {
n2.__h && (n2.__h = []);
- }), r3 = [], l.__e(u4, t5.__v);
+ }), r3 = [], l.__e(u5, t6.__v);
}
- }), l2 && l2(t4, r3);
- }, l.unmount = function(t4) {
- m2 && m2(t4);
- var r3, u4 = t4.__c;
- u4 && u4.__H && (u4.__H.__.forEach(function(n2) {
+ }), l2 && l2(t5, r3);
+ }, l.unmount = function(t5) {
+ m2 && m2(t5);
+ var r3, u5 = t5.__c;
+ u5 && u5.__H && (u5.__H.__.forEach(function(n2) {
try {
k2(n2);
} catch (n3) {
r3 = n3;
}
- }), u4.__H = void 0, r3 && l.__e(r3, u4.__v));
+ }), u5.__H = void 0, r3 && l.__e(r3, u5.__v));
};
g2 = "function" == typeof requestAnimationFrame;
}
@@ -2796,73 +2784,73 @@ __export(compat_module_exports, {
useTransition: () => mn,
version: () => un
});
-function g3(n2, t4) {
- for (var e4 in t4)
- n2[e4] = t4[e4];
+function g3(n2, t5) {
+ for (var e5 in t5)
+ n2[e5] = t5[e5];
return n2;
}
-function C2(n2, t4) {
- for (var e4 in n2)
- if ("__source" !== e4 && !(e4 in t4))
+function C2(n2, t5) {
+ for (var e5 in n2)
+ if ("__source" !== e5 && !(e5 in t5))
return true;
- for (var r3 in t4)
- if ("__source" !== r3 && n2[r3] !== t4[r3])
+ for (var r3 in t5)
+ if ("__source" !== r3 && n2[r3] !== t5[r3])
return true;
return false;
}
-function E(n2, t4) {
- return n2 === t4 && (0 !== n2 || 1 / n2 == 1 / t4) || n2 != n2 && t4 != t4;
+function E(n2, t5) {
+ return n2 === t5 && (0 !== n2 || 1 / n2 == 1 / t5) || n2 != n2 && t5 != t5;
}
function w3(n2) {
this.props = n2;
}
-function R(n2, e4) {
+function R(n2, e5) {
function r3(n3) {
- var t4 = this.props.ref, r4 = t4 == n3.ref;
- return !r4 && t4 && (t4.call ? t4(null) : t4.current = null), e4 ? !e4(this.props, n3) || !r4 : C2(this.props, n3);
+ var t5 = this.props.ref, r4 = t5 == n3.ref;
+ return !r4 && t5 && (t5.call ? t5(null) : t5.current = null), e5 ? !e5(this.props, n3) || !r4 : C2(this.props, n3);
}
- function u4(e5) {
- return this.shouldComponentUpdate = r3, h(n2, e5);
+ function u5(e6) {
+ return this.shouldComponentUpdate = r3, h(n2, e6);
}
- return u4.displayName = "Memo(" + (n2.displayName || n2.name) + ")", u4.prototype.isReactComponent = true, u4.__f = true, u4;
+ return u5.displayName = "Memo(" + (n2.displayName || n2.name) + ")", u5.prototype.isReactComponent = true, u5.__f = true, u5;
}
function k3(n2) {
- function t4(t5) {
- var e4 = g3({}, t5);
- return delete e4.ref, n2(e4, t5.ref || null);
+ function t5(t6) {
+ var e5 = g3({}, t6);
+ return delete e5.ref, n2(e5, t6.ref || null);
}
- return t4.$$typeof = N2, t4.render = t4, t4.prototype.isReactComponent = t4.__f = true, t4.displayName = "ForwardRef(" + (n2.displayName || n2.name) + ")", t4;
+ return t5.$$typeof = N2, t5.render = t5, t5.prototype.isReactComponent = t5.__f = true, t5.displayName = "ForwardRef(" + (n2.displayName || n2.name) + ")", t5;
}
-function L3(n2, t4, e4) {
+function L3(n2, t5, e5) {
return n2 && (n2.__c && n2.__c.__H && (n2.__c.__H.__.forEach(function(n3) {
"function" == typeof n3.__c && n3.__c();
- }), n2.__c.__H = null), null != (n2 = g3({}, n2)).__c && (n2.__c.__P === e4 && (n2.__c.__P = t4), n2.__c = null), n2.__k = n2.__k && n2.__k.map(function(n3) {
- return L3(n3, t4, e4);
+ }), n2.__c.__H = null), null != (n2 = g3({}, n2)).__c && (n2.__c.__P === e5 && (n2.__c.__P = t5), n2.__c = null), n2.__k = n2.__k && n2.__k.map(function(n3) {
+ return L3(n3, t5, e5);
})), n2;
}
-function U(n2, t4, e4) {
+function U(n2, t5, e5) {
return n2 && (n2.__v = null, n2.__k = n2.__k && n2.__k.map(function(n3) {
- return U(n3, t4, e4);
- }), n2.__c && n2.__c.__P === t4 && (n2.__e && e4.insertBefore(n2.__e, n2.__d), n2.__c.__e = true, n2.__c.__P = e4)), n2;
+ return U(n3, t5, e5);
+ }), n2.__c && n2.__c.__P === t5 && (n2.__e && e5.insertBefore(n2.__e, n2.__d), n2.__c.__e = true, n2.__c.__P = e5)), n2;
}
function D3() {
this.__u = 0, this.t = null, this.__b = null;
}
function F2(n2) {
- var t4 = n2.__.__c;
- return t4 && t4.__a && t4.__a(n2);
+ var t5 = n2.__.__c;
+ return t5 && t5.__a && t5.__a(n2);
}
function M3(n2) {
- var e4, r3, u4;
+ var e5, r3, u5;
function o3(o4) {
- if (e4 || (e4 = n2()).then(function(n3) {
+ if (e5 || (e5 = n2()).then(function(n3) {
r3 = n3.default || n3;
}, function(n3) {
- u4 = n3;
- }), u4)
- throw u4;
+ u5 = n3;
+ }), u5)
+ throw u5;
if (!r3)
- throw e4;
+ throw e5;
return h(r3, o4);
}
return o3.displayName = "Lazy", o3.__f = true, o3;
@@ -2876,26 +2864,26 @@ function P3(n2) {
}, n2.children;
}
function $2(n2) {
- var e4 = this, r3 = n2.i;
- e4.componentWillUnmount = function() {
- P(null, e4.l), e4.l = null, e4.i = null;
- }, e4.i && e4.i !== r3 && e4.componentWillUnmount(), n2.__v ? (e4.l || (e4.i = r3, e4.l = { nodeType: 1, parentNode: r3, childNodes: [], appendChild: function(n3) {
- this.childNodes.push(n3), e4.i.appendChild(n3);
- }, insertBefore: function(n3, t4) {
- this.childNodes.push(n3), e4.i.appendChild(n3);
+ var e5 = this, r3 = n2.i;
+ e5.componentWillUnmount = function() {
+ P(null, e5.l), e5.l = null, e5.i = null;
+ }, e5.i && e5.i !== r3 && e5.componentWillUnmount(), n2.__v ? (e5.l || (e5.i = r3, e5.l = { nodeType: 1, parentNode: r3, childNodes: [], appendChild: function(n3) {
+ this.childNodes.push(n3), e5.i.appendChild(n3);
+ }, insertBefore: function(n3, t5) {
+ this.childNodes.push(n3), e5.i.appendChild(n3);
}, removeChild: function(n3) {
- this.childNodes.splice(this.childNodes.indexOf(n3) >>> 1, 1), e4.i.removeChild(n3);
- } }), P(h(P3, { context: e4.context }, n2.__v), e4.l)) : e4.l && e4.componentWillUnmount();
+ this.childNodes.splice(this.childNodes.indexOf(n3) >>> 1, 1), e5.i.removeChild(n3);
+ } }), P(h(P3, { context: e5.context }, n2.__v), e5.l)) : e5.l && e5.componentWillUnmount();
}
-function j3(n2, e4) {
- var r3 = h($2, { __v: n2, i: e4 });
- return r3.containerInfo = e4, r3;
+function j3(n2, e5) {
+ var r3 = h($2, { __v: n2, i: e5 });
+ return r3.containerInfo = e5, r3;
}
-function Y2(n2, t4, e4) {
- return null == t4.__k && (t4.textContent = ""), P(n2, t4), "function" == typeof e4 && e4(), n2 ? n2.__c : null;
+function Y2(n2, t5, e5) {
+ return null == t5.__k && (t5.textContent = ""), P(n2, t5), "function" == typeof e5 && e5(), n2 ? n2.__c : null;
}
-function q3(n2, t4, e4) {
- return S2(n2, t4), "function" == typeof e4 && e4(), n2 ? n2.__c : null;
+function q3(n2, t5, e5) {
+ return S2(n2, t5), "function" == typeof e5 && e5(), n2 ? n2.__c : null;
}
function J() {
}
@@ -2929,15 +2917,15 @@ function pn(n2) {
function mn() {
return [false, dn];
}
-function _n(n2, t4) {
- var e4 = t4(), r3 = p3({ h: { __: e4, v: t4 } }), u4 = r3[0].h, o3 = r3[1];
+function _n(n2, t5) {
+ var e5 = t5(), r3 = p3({ h: { __: e5, v: t5 } }), u5 = r3[0].h, o3 = r3[1];
return s2(function() {
- u4.__ = e4, u4.v = t4, E(u4.__, t4()) || o3({ h: u4 });
- }, [n2, e4, t4]), h2(function() {
- return E(u4.__, u4.v()) || o3({ h: u4 }), n2(function() {
- E(u4.__, u4.v()) || o3({ h: u4 });
+ u5.__ = e5, u5.v = t5, E(u5.__, t5()) || o3({ h: u5 });
+ }, [n2, e5, t5]), h2(function() {
+ return E(u5.__, u5.v()) || o3({ h: u5 }), n2(function() {
+ E(u5.__, u5.v()) || o3({ h: u5 });
});
- }, [n2]), e4;
+ }, [n2]), e5;
}
var x4, N2, A4, O2, T3, I3, W, z3, B3, H2, Z2, G, X2, nn, tn, en, rn, un, sn, hn, vn2, yn, bn;
var init_compat_module = __esm({
@@ -2946,60 +2934,60 @@ var init_compat_module = __esm({
init_preact_module();
init_hooks_module();
init_hooks_module();
- (w3.prototype = new d()).isPureReactComponent = true, w3.prototype.shouldComponentUpdate = function(n2, t4) {
- return C2(this.props, n2) || C2(this.state, t4);
+ (w3.prototype = new d()).isPureReactComponent = true, w3.prototype.shouldComponentUpdate = function(n2, t5) {
+ return C2(this.props, n2) || C2(this.state, t5);
};
x4 = l.__b;
l.__b = function(n2) {
n2.type && n2.type.__f && n2.ref && (n2.props.ref = n2.ref, n2.ref = null), x4 && x4(n2);
};
N2 = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.forward_ref") || 3911;
- A4 = function(n2, t4) {
- return null == n2 ? null : x2(x2(n2).map(t4));
+ A4 = function(n2, t5) {
+ return null == n2 ? null : x2(x2(n2).map(t5));
};
O2 = { map: A4, forEach: A4, count: function(n2) {
return n2 ? x2(n2).length : 0;
}, only: function(n2) {
- var t4 = x2(n2);
- if (1 !== t4.length)
+ var t5 = x2(n2);
+ if (1 !== t5.length)
throw "Children.only";
- return t4[0];
+ return t5[0];
}, toArray: x2 };
T3 = l.__e;
- l.__e = function(n2, t4, e4, r3) {
+ l.__e = function(n2, t5, e5, r3) {
if (n2.then) {
- for (var u4, o3 = t4; o3 = o3.__; )
- if ((u4 = o3.__c) && u4.__c)
- return null == t4.__e && (t4.__e = e4.__e, t4.__k = e4.__k), u4.__c(n2, t4);
+ for (var u5, o3 = t5; o3 = o3.__; )
+ if ((u5 = o3.__c) && u5.__c)
+ return null == t5.__e && (t5.__e = e5.__e, t5.__k = e5.__k), u5.__c(n2, t5);
}
- T3(n2, t4, e4, r3);
+ T3(n2, t5, e5, r3);
};
I3 = l.unmount;
l.unmount = function(n2) {
- var t4 = n2.__c;
- t4 && t4.__R && t4.__R(), t4 && true === n2.__h && (n2.type = null), I3 && I3(n2);
- }, (D3.prototype = new d()).__c = function(n2, t4) {
- var e4 = t4.__c, r3 = this;
- null == r3.t && (r3.t = []), r3.t.push(e4);
- var u4 = F2(r3.__v), o3 = false, i4 = function() {
- o3 || (o3 = true, e4.__R = null, u4 ? u4(l3) : l3());
+ var t5 = n2.__c;
+ t5 && t5.__R && t5.__R(), t5 && true === n2.__h && (n2.type = null), I3 && I3(n2);
+ }, (D3.prototype = new d()).__c = function(n2, t5) {
+ var e5 = t5.__c, r3 = this;
+ null == r3.t && (r3.t = []), r3.t.push(e5);
+ var u5 = F2(r3.__v), o3 = false, i5 = function() {
+ o3 || (o3 = true, e5.__R = null, u5 ? u5(l3) : l3());
};
- e4.__R = i4;
+ e5.__R = i5;
var l3 = function() {
if (!--r3.__u) {
if (r3.state.__a) {
var n3 = r3.state.__a;
r3.__v.__k[0] = U(n3, n3.__c.__P, n3.__c.__O);
}
- var t5;
- for (r3.setState({ __a: r3.__b = null }); t5 = r3.t.pop(); )
- t5.forceUpdate();
+ var t6;
+ for (r3.setState({ __a: r3.__b = null }); t6 = r3.t.pop(); )
+ t6.forceUpdate();
}
- }, c4 = true === t4.__h;
- r3.__u++ || c4 || r3.setState({ __a: r3.__b = r3.__v.__k[0] }), n2.then(i4, i4);
+ }, c5 = true === t5.__h;
+ r3.__u++ || c5 || r3.setState({ __a: r3.__b = r3.__v.__k[0] }), n2.then(i5, i5);
}, D3.prototype.componentWillUnmount = function() {
this.t = [];
- }, D3.prototype.render = function(n2, e4) {
+ }, D3.prototype.render = function(n2, e5) {
if (this.__b) {
if (this.__v.__k) {
var r3 = document.createElement("div"), o3 = this.__v.__k[0].__c;
@@ -3007,38 +2995,38 @@ var init_compat_module = __esm({
}
this.__b = null;
}
- var i4 = e4.__a && h(p2, null, n2.fallback);
- return i4 && (i4.__h = null), [h(p2, null, e4.__a ? null : n2.children), i4];
+ var i5 = e5.__a && h(p2, null, n2.fallback);
+ return i5 && (i5.__h = null), [h(p2, null, e5.__a ? null : n2.children), i5];
};
- W = function(n2, t4, e4) {
- if (++e4[1] === e4[0] && n2.o.delete(t4), n2.props.revealOrder && ("t" !== n2.props.revealOrder[0] || !n2.o.size))
- for (e4 = n2.u; e4; ) {
- for (; e4.length > 3; )
- e4.pop()();
- if (e4[1] < e4[0])
+ W = function(n2, t5, e5) {
+ if (++e5[1] === e5[0] && n2.o.delete(t5), n2.props.revealOrder && ("t" !== n2.props.revealOrder[0] || !n2.o.size))
+ for (e5 = n2.u; e5; ) {
+ for (; e5.length > 3; )
+ e5.pop()();
+ if (e5[1] < e5[0])
break;
- n2.u = e4 = e4[2];
+ n2.u = e5 = e5[2];
}
};
(V2.prototype = new d()).__a = function(n2) {
- var t4 = this, e4 = F2(t4.__v), r3 = t4.o.get(n2);
- return r3[0]++, function(u4) {
+ var t5 = this, e5 = F2(t5.__v), r3 = t5.o.get(n2);
+ return r3[0]++, function(u5) {
var o3 = function() {
- t4.props.revealOrder ? (r3.push(u4), W(t4, n2, r3)) : u4();
+ t5.props.revealOrder ? (r3.push(u5), W(t5, n2, r3)) : u5();
};
- e4 ? e4(o3) : o3();
+ e5 ? e5(o3) : o3();
};
}, V2.prototype.render = function(n2) {
this.u = null, this.o = /* @__PURE__ */ new Map();
- var t4 = x2(n2.children);
- n2.revealOrder && "b" === n2.revealOrder[0] && t4.reverse();
- for (var e4 = t4.length; e4--; )
- this.o.set(t4[e4], this.u = [1, 0, this.u]);
+ var t5 = x2(n2.children);
+ n2.revealOrder && "b" === n2.revealOrder[0] && t5.reverse();
+ for (var e5 = t5.length; e5--; )
+ this.o.set(t5[e5], this.u = [1, 0, this.u]);
return n2.children;
}, V2.prototype.componentDidUpdate = V2.prototype.componentDidMount = function() {
var n2 = this;
- this.o.forEach(function(t4, e4) {
- W(n2, e4, t4);
+ this.o.forEach(function(t5, e5) {
+ W(n2, e5, t5);
});
};
z3 = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103;
@@ -3047,11 +3035,11 @@ var init_compat_module = __esm({
Z2 = function(n2) {
return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/i : /fil|che|ra/i).test(n2);
};
- d.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(t4) {
- Object.defineProperty(d.prototype, t4, { configurable: true, get: function() {
- return this["UNSAFE_" + t4];
+ d.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(t5) {
+ Object.defineProperty(d.prototype, t5, { configurable: true, get: function() {
+ return this["UNSAFE_" + t5];
}, set: function(n2) {
- Object.defineProperty(this, t4, { configurable: true, writable: true, value: n2 });
+ Object.defineProperty(this, t5, { configurable: true, writable: true, value: n2 });
} });
});
G = l.event;
@@ -3063,18 +3051,18 @@ var init_compat_module = __esm({
} };
tn = l.vnode;
l.vnode = function(n2) {
- var t4 = n2.type, e4 = n2.props, u4 = e4;
- if ("string" == typeof t4) {
- var o3 = -1 === t4.indexOf("-");
- for (var i4 in u4 = {}, e4) {
- var l3 = e4[i4];
- H2 && "children" === i4 && "noscript" === t4 || "value" === i4 && "defaultValue" in e4 && null == l3 || ("defaultValue" === i4 && "value" in e4 && null == e4.value ? i4 = "value" : "download" === i4 && true === l3 ? l3 = "" : /ondoubleclick/i.test(i4) ? i4 = "ondblclick" : /^onchange(textarea|input)/i.test(i4 + t4) && !Z2(e4.type) ? i4 = "oninput" : /^onfocus$/i.test(i4) ? i4 = "onfocusin" : /^onblur$/i.test(i4) ? i4 = "onfocusout" : /^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i4) ? i4 = i4.toLowerCase() : o3 && B3.test(i4) ? i4 = i4.replace(/[A-Z0-9]/g, "-$&").toLowerCase() : null === l3 && (l3 = void 0), /^oninput$/i.test(i4) && (i4 = i4.toLowerCase(), u4[i4] && (i4 = "oninputCapture")), u4[i4] = l3);
- }
- "select" == t4 && u4.multiple && Array.isArray(u4.value) && (u4.value = x2(e4.children).forEach(function(n3) {
- n3.props.selected = -1 != u4.value.indexOf(n3.props.value);
- })), "select" == t4 && null != u4.defaultValue && (u4.value = x2(e4.children).forEach(function(n3) {
- n3.props.selected = u4.multiple ? -1 != u4.defaultValue.indexOf(n3.props.value) : u4.defaultValue == n3.props.value;
- })), n2.props = u4, e4.class != e4.className && (nn.enumerable = "className" in e4, null != e4.className && (u4.class = e4.className), Object.defineProperty(u4, "className", nn));
+ var t5 = n2.type, e5 = n2.props, u5 = e5;
+ if ("string" == typeof t5) {
+ var o3 = -1 === t5.indexOf("-");
+ for (var i5 in u5 = {}, e5) {
+ var l3 = e5[i5];
+ H2 && "children" === i5 && "noscript" === t5 || "value" === i5 && "defaultValue" in e5 && null == l3 || ("defaultValue" === i5 && "value" in e5 && null == e5.value ? i5 = "value" : "download" === i5 && true === l3 ? l3 = "" : /ondoubleclick/i.test(i5) ? i5 = "ondblclick" : /^onchange(textarea|input)/i.test(i5 + t5) && !Z2(e5.type) ? i5 = "oninput" : /^onfocus$/i.test(i5) ? i5 = "onfocusin" : /^onblur$/i.test(i5) ? i5 = "onfocusout" : /^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i5) ? i5 = i5.toLowerCase() : o3 && B3.test(i5) ? i5 = i5.replace(/[A-Z0-9]/g, "-$&").toLowerCase() : null === l3 && (l3 = void 0), /^oninput$/i.test(i5) && (i5 = i5.toLowerCase(), u5[i5] && (i5 = "oninputCapture")), u5[i5] = l3);
+ }
+ "select" == t5 && u5.multiple && Array.isArray(u5.value) && (u5.value = x2(e5.children).forEach(function(n3) {
+ n3.props.selected = -1 != u5.value.indexOf(n3.props.value);
+ })), "select" == t5 && null != u5.defaultValue && (u5.value = x2(e5.children).forEach(function(n3) {
+ n3.props.selected = u5.multiple ? -1 != u5.defaultValue.indexOf(n3.props.value) : u5.defaultValue == n3.props.value;
+ })), n2.props = u5, e5.class != e5.className && (nn.enumerable = "className" in e5, null != e5.className && (u5.class = e5.className), Object.defineProperty(u5, "className", nn));
}
n2.$$typeof = z3, tn && tn(n2);
};
@@ -3086,11 +3074,11 @@ var init_compat_module = __esm({
return X2.__n[n2.__c].props.value;
} } } };
un = "17.0.2";
- sn = function(n2, t4) {
- return n2(t4);
+ sn = function(n2, t5) {
+ return n2(t5);
};
- hn = function(n2, t4) {
- return n2(t4);
+ hn = function(n2, t5) {
+ return n2(t5);
};
vn2 = p2;
yn = s2;
@@ -3102,46 +3090,46 @@ var init_compat_module = __esm({
var require_use_sync_external_store_shim_production_min = __commonJS({
"../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js"(exports) {
"use strict";
- var e4 = (init_compat_module(), __toCommonJS(compat_module_exports));
- function h5(a5, b4) {
- return a5 === b4 && (0 !== a5 || 1 / a5 === 1 / b4) || a5 !== a5 && b4 !== b4;
- }
- var k5 = "function" === typeof Object.is ? Object.is : h5;
- var l3 = e4.useState;
- var m5 = e4.useEffect;
- var n2 = e4.useLayoutEffect;
- var p4 = e4.useDebugValue;
- function q5(a5, b4) {
- var d5 = b4(), f3 = l3({ inst: { value: d5, getSnapshot: b4 } }), c4 = f3[0].inst, g4 = f3[1];
+ var e5 = (init_compat_module(), __toCommonJS(compat_module_exports));
+ function h5(a6, b5) {
+ return a6 === b5 && (0 !== a6 || 1 / a6 === 1 / b5) || a6 !== a6 && b5 !== b5;
+ }
+ var k6 = "function" === typeof Object.is ? Object.is : h5;
+ var l3 = e5.useState;
+ var m6 = e5.useEffect;
+ var n2 = e5.useLayoutEffect;
+ var p4 = e5.useDebugValue;
+ function q6(a6, b5) {
+ var d6 = b5(), f3 = l3({ inst: { value: d6, getSnapshot: b5 } }), c5 = f3[0].inst, g4 = f3[1];
n2(function() {
- c4.value = d5;
- c4.getSnapshot = b4;
- r3(c4) && g4({ inst: c4 });
- }, [a5, d5, b4]);
- m5(function() {
- r3(c4) && g4({ inst: c4 });
- return a5(function() {
- r3(c4) && g4({ inst: c4 });
+ c5.value = d6;
+ c5.getSnapshot = b5;
+ r3(c5) && g4({ inst: c5 });
+ }, [a6, d6, b5]);
+ m6(function() {
+ r3(c5) && g4({ inst: c5 });
+ return a6(function() {
+ r3(c5) && g4({ inst: c5 });
});
- }, [a5]);
- p4(d5);
- return d5;
+ }, [a6]);
+ p4(d6);
+ return d6;
}
- function r3(a5) {
- var b4 = a5.getSnapshot;
- a5 = a5.value;
+ function r3(a6) {
+ var b5 = a6.getSnapshot;
+ a6 = a6.value;
try {
- var d5 = b4();
- return !k5(a5, d5);
+ var d6 = b5();
+ return !k6(a6, d6);
} catch (f3) {
return true;
}
}
- function t4(a5, b4) {
- return b4();
+ function t5(a6, b5) {
+ return b5();
}
- var u4 = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? t4 : q5;
- exports.useSyncExternalStore = void 0 !== e4.useSyncExternalStore ? e4.useSyncExternalStore : u4;
+ var u5 = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? t5 : q6;
+ exports.useSyncExternalStore = void 0 !== e5.useSyncExternalStore ? e5.useSyncExternalStore : u5;
}
});
@@ -3161,11 +3149,11 @@ var require_shim = __commonJS({
var gf = function(init = []) {
const r3 = new Float64Array(16);
if (init)
- for (let i4 = 0; i4 < init.length; i4++)
- r3[i4] = init[i4];
+ for (let i5 = 0; i5 < init.length; i5++)
+ r3[i5] = init[i5];
return r3;
};
-var randombytes = function(x6, n2) {
+var randombytes = function(x7, n2) {
throw new Error("no PRNG");
};
var _9 = new Uint8Array(32);
@@ -3263,96 +3251,96 @@ var I = gf([
9344,
11139
]);
-function ts64(x6, i4, h5, l3) {
- x6[i4] = h5 >> 24 & 255;
- x6[i4 + 1] = h5 >> 16 & 255;
- x6[i4 + 2] = h5 >> 8 & 255;
- x6[i4 + 3] = h5 & 255;
- x6[i4 + 4] = l3 >> 24 & 255;
- x6[i4 + 5] = l3 >> 16 & 255;
- x6[i4 + 6] = l3 >> 8 & 255;
- x6[i4 + 7] = l3 & 255;
-}
-function vn(x6, xi, y5, yi, n2) {
- let i4, d5 = 0;
- for (i4 = 0; i4 < n2; i4++)
- d5 |= x6[xi + i4] ^ y5[yi + i4];
- return (1 & d5 - 1 >>> 8) - 1;
-}
-function crypto_verify_16(x6, xi, y5, yi) {
- return vn(x6, xi, y5, yi, 16);
-}
-function crypto_verify_32(x6, xi, y5, yi) {
- return vn(x6, xi, y5, yi, 32);
-}
-function core_salsa20(o3, p4, k5, c4) {
- var j0 = c4[0] & 255 | (c4[1] & 255) << 8 | (c4[2] & 255) << 16 | (c4[3] & 255) << 24, j1 = k5[0] & 255 | (k5[1] & 255) << 8 | (k5[2] & 255) << 16 | (k5[3] & 255) << 24, j22 = k5[4] & 255 | (k5[5] & 255) << 8 | (k5[6] & 255) << 16 | (k5[7] & 255) << 24, j32 = k5[8] & 255 | (k5[9] & 255) << 8 | (k5[10] & 255) << 16 | (k5[11] & 255) << 24, j4 = k5[12] & 255 | (k5[13] & 255) << 8 | (k5[14] & 255) << 16 | (k5[15] & 255) << 24, j5 = c4[4] & 255 | (c4[5] & 255) << 8 | (c4[6] & 255) << 16 | (c4[7] & 255) << 24, j6 = p4[0] & 255 | (p4[1] & 255) << 8 | (p4[2] & 255) << 16 | (p4[3] & 255) << 24, j7 = p4[4] & 255 | (p4[5] & 255) << 8 | (p4[6] & 255) << 16 | (p4[7] & 255) << 24, j8 = p4[8] & 255 | (p4[9] & 255) << 8 | (p4[10] & 255) << 16 | (p4[11] & 255) << 24, j9 = p4[12] & 255 | (p4[13] & 255) << 8 | (p4[14] & 255) << 16 | (p4[15] & 255) << 24, j10 = c4[8] & 255 | (c4[9] & 255) << 8 | (c4[10] & 255) << 16 | (c4[11] & 255) << 24, j11 = k5[16] & 255 | (k5[17] & 255) << 8 | (k5[18] & 255) << 16 | (k5[19] & 255) << 24, j12 = k5[20] & 255 | (k5[21] & 255) << 8 | (k5[22] & 255) << 16 | (k5[23] & 255) << 24, j13 = k5[24] & 255 | (k5[25] & 255) << 8 | (k5[26] & 255) << 16 | (k5[27] & 255) << 24, j14 = k5[28] & 255 | (k5[29] & 255) << 8 | (k5[30] & 255) << 16 | (k5[31] & 255) << 24, j15 = c4[12] & 255 | (c4[13] & 255) << 8 | (c4[14] & 255) << 16 | (c4[15] & 255) << 24;
- var x0 = j0, x1 = j1, x22 = j22, x32 = j32, x42 = j4, x52 = j5, x6 = j6, x7 = j7, x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, x15 = j15, u4;
- for (var i4 = 0; i4 < 20; i4 += 2) {
- u4 = x0 + x12 | 0;
- x42 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x42 + x0 | 0;
- x8 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x8 + x42 | 0;
- x12 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x12 + x8 | 0;
- x0 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x52 + x1 | 0;
- x9 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x9 + x52 | 0;
- x13 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x13 + x9 | 0;
- x1 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x1 + x13 | 0;
- x52 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x10 + x6 | 0;
- x14 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x14 + x10 | 0;
- x22 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x22 + x14 | 0;
- x6 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x6 + x22 | 0;
- x10 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x15 + x11 | 0;
- x32 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x32 + x15 | 0;
- x7 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x7 + x32 | 0;
- x11 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x11 + x7 | 0;
- x15 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x0 + x32 | 0;
- x1 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x1 + x0 | 0;
- x22 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x22 + x1 | 0;
- x32 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x32 + x22 | 0;
- x0 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x52 + x42 | 0;
- x6 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x6 + x52 | 0;
- x7 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x7 + x6 | 0;
- x42 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x42 + x7 | 0;
- x52 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x10 + x9 | 0;
- x11 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x11 + x10 | 0;
- x8 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x8 + x11 | 0;
- x9 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x9 + x8 | 0;
- x10 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x15 + x14 | 0;
- x12 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x12 + x15 | 0;
- x13 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x13 + x12 | 0;
- x14 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x14 + x13 | 0;
- x15 ^= u4 << 18 | u4 >>> 32 - 18;
+function ts64(x7, i5, h5, l3) {
+ x7[i5] = h5 >> 24 & 255;
+ x7[i5 + 1] = h5 >> 16 & 255;
+ x7[i5 + 2] = h5 >> 8 & 255;
+ x7[i5 + 3] = h5 & 255;
+ x7[i5 + 4] = l3 >> 24 & 255;
+ x7[i5 + 5] = l3 >> 16 & 255;
+ x7[i5 + 6] = l3 >> 8 & 255;
+ x7[i5 + 7] = l3 & 255;
+}
+function vn(x7, xi, y6, yi, n2) {
+ let i5, d6 = 0;
+ for (i5 = 0; i5 < n2; i5++)
+ d6 |= x7[xi + i5] ^ y6[yi + i5];
+ return (1 & d6 - 1 >>> 8) - 1;
+}
+function crypto_verify_16(x7, xi, y6, yi) {
+ return vn(x7, xi, y6, yi, 16);
+}
+function crypto_verify_32(x7, xi, y6, yi) {
+ return vn(x7, xi, y6, yi, 32);
+}
+function core_salsa20(o3, p4, k6, c5) {
+ var j0 = c5[0] & 255 | (c5[1] & 255) << 8 | (c5[2] & 255) << 16 | (c5[3] & 255) << 24, j1 = k6[0] & 255 | (k6[1] & 255) << 8 | (k6[2] & 255) << 16 | (k6[3] & 255) << 24, j22 = k6[4] & 255 | (k6[5] & 255) << 8 | (k6[6] & 255) << 16 | (k6[7] & 255) << 24, j32 = k6[8] & 255 | (k6[9] & 255) << 8 | (k6[10] & 255) << 16 | (k6[11] & 255) << 24, j4 = k6[12] & 255 | (k6[13] & 255) << 8 | (k6[14] & 255) << 16 | (k6[15] & 255) << 24, j5 = c5[4] & 255 | (c5[5] & 255) << 8 | (c5[6] & 255) << 16 | (c5[7] & 255) << 24, j6 = p4[0] & 255 | (p4[1] & 255) << 8 | (p4[2] & 255) << 16 | (p4[3] & 255) << 24, j7 = p4[4] & 255 | (p4[5] & 255) << 8 | (p4[6] & 255) << 16 | (p4[7] & 255) << 24, j8 = p4[8] & 255 | (p4[9] & 255) << 8 | (p4[10] & 255) << 16 | (p4[11] & 255) << 24, j9 = p4[12] & 255 | (p4[13] & 255) << 8 | (p4[14] & 255) << 16 | (p4[15] & 255) << 24, j10 = c5[8] & 255 | (c5[9] & 255) << 8 | (c5[10] & 255) << 16 | (c5[11] & 255) << 24, j11 = k6[16] & 255 | (k6[17] & 255) << 8 | (k6[18] & 255) << 16 | (k6[19] & 255) << 24, j12 = k6[20] & 255 | (k6[21] & 255) << 8 | (k6[22] & 255) << 16 | (k6[23] & 255) << 24, j13 = k6[24] & 255 | (k6[25] & 255) << 8 | (k6[26] & 255) << 16 | (k6[27] & 255) << 24, j14 = k6[28] & 255 | (k6[29] & 255) << 8 | (k6[30] & 255) << 16 | (k6[31] & 255) << 24, j15 = c5[12] & 255 | (c5[13] & 255) << 8 | (c5[14] & 255) << 16 | (c5[15] & 255) << 24;
+ var x0 = j0, x1 = j1, x22 = j22, x32 = j32, x42 = j4, x52 = j5, x62 = j6, x7 = j7, x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, x15 = j15, u5;
+ for (var i5 = 0; i5 < 20; i5 += 2) {
+ u5 = x0 + x12 | 0;
+ x42 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x42 + x0 | 0;
+ x8 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x8 + x42 | 0;
+ x12 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x12 + x8 | 0;
+ x0 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x52 + x1 | 0;
+ x9 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x9 + x52 | 0;
+ x13 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x13 + x9 | 0;
+ x1 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x1 + x13 | 0;
+ x52 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x10 + x62 | 0;
+ x14 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x14 + x10 | 0;
+ x22 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x22 + x14 | 0;
+ x62 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x62 + x22 | 0;
+ x10 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x15 + x11 | 0;
+ x32 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x32 + x15 | 0;
+ x7 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x7 + x32 | 0;
+ x11 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x11 + x7 | 0;
+ x15 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x0 + x32 | 0;
+ x1 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x1 + x0 | 0;
+ x22 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x22 + x1 | 0;
+ x32 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x32 + x22 | 0;
+ x0 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x52 + x42 | 0;
+ x62 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x62 + x52 | 0;
+ x7 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x7 + x62 | 0;
+ x42 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x42 + x7 | 0;
+ x52 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x10 + x9 | 0;
+ x11 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x11 + x10 | 0;
+ x8 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x8 + x11 | 0;
+ x9 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x9 + x8 | 0;
+ x10 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x15 + x14 | 0;
+ x12 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x12 + x15 | 0;
+ x13 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x13 + x12 | 0;
+ x14 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x14 + x13 | 0;
+ x15 ^= u5 << 18 | u5 >>> 32 - 18;
}
x0 = x0 + j0 | 0;
x1 = x1 + j1 | 0;
@@ -3360,7 +3348,7 @@ function core_salsa20(o3, p4, k5, c4) {
x32 = x32 + j32 | 0;
x42 = x42 + j4 | 0;
x52 = x52 + j5 | 0;
- x6 = x6 + j6 | 0;
+ x62 = x62 + j6 | 0;
x7 = x7 + j7 | 0;
x8 = x8 + j8 | 0;
x9 = x9 + j9 | 0;
@@ -3394,10 +3382,10 @@ function core_salsa20(o3, p4, k5, c4) {
o3[21] = x52 >>> 8 & 255;
o3[22] = x52 >>> 16 & 255;
o3[23] = x52 >>> 24 & 255;
- o3[24] = x6 >>> 0 & 255;
- o3[25] = x6 >>> 8 & 255;
- o3[26] = x6 >>> 16 & 255;
- o3[27] = x6 >>> 24 & 255;
+ o3[24] = x62 >>> 0 & 255;
+ o3[25] = x62 >>> 8 & 255;
+ o3[26] = x62 >>> 16 & 255;
+ o3[27] = x62 >>> 24 & 255;
o3[28] = x7 >>> 0 & 255;
o3[29] = x7 >>> 8 & 255;
o3[30] = x7 >>> 16 & 255;
@@ -3435,74 +3423,74 @@ function core_salsa20(o3, p4, k5, c4) {
o3[62] = x15 >>> 16 & 255;
o3[63] = x15 >>> 24 & 255;
}
-function core_hsalsa20(o3, p4, k5, c4) {
- var j0 = c4[0] & 255 | (c4[1] & 255) << 8 | (c4[2] & 255) << 16 | (c4[3] & 255) << 24, j1 = k5[0] & 255 | (k5[1] & 255) << 8 | (k5[2] & 255) << 16 | (k5[3] & 255) << 24, j22 = k5[4] & 255 | (k5[5] & 255) << 8 | (k5[6] & 255) << 16 | (k5[7] & 255) << 24, j32 = k5[8] & 255 | (k5[9] & 255) << 8 | (k5[10] & 255) << 16 | (k5[11] & 255) << 24, j4 = k5[12] & 255 | (k5[13] & 255) << 8 | (k5[14] & 255) << 16 | (k5[15] & 255) << 24, j5 = c4[4] & 255 | (c4[5] & 255) << 8 | (c4[6] & 255) << 16 | (c4[7] & 255) << 24, j6 = p4[0] & 255 | (p4[1] & 255) << 8 | (p4[2] & 255) << 16 | (p4[3] & 255) << 24, j7 = p4[4] & 255 | (p4[5] & 255) << 8 | (p4[6] & 255) << 16 | (p4[7] & 255) << 24, j8 = p4[8] & 255 | (p4[9] & 255) << 8 | (p4[10] & 255) << 16 | (p4[11] & 255) << 24, j9 = p4[12] & 255 | (p4[13] & 255) << 8 | (p4[14] & 255) << 16 | (p4[15] & 255) << 24, j10 = c4[8] & 255 | (c4[9] & 255) << 8 | (c4[10] & 255) << 16 | (c4[11] & 255) << 24, j11 = k5[16] & 255 | (k5[17] & 255) << 8 | (k5[18] & 255) << 16 | (k5[19] & 255) << 24, j12 = k5[20] & 255 | (k5[21] & 255) << 8 | (k5[22] & 255) << 16 | (k5[23] & 255) << 24, j13 = k5[24] & 255 | (k5[25] & 255) << 8 | (k5[26] & 255) << 16 | (k5[27] & 255) << 24, j14 = k5[28] & 255 | (k5[29] & 255) << 8 | (k5[30] & 255) << 16 | (k5[31] & 255) << 24, j15 = c4[12] & 255 | (c4[13] & 255) << 8 | (c4[14] & 255) << 16 | (c4[15] & 255) << 24;
- var x0 = j0, x1 = j1, x22 = j22, x32 = j32, x42 = j4, x52 = j5, x6 = j6, x7 = j7, x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, x15 = j15, u4;
- for (var i4 = 0; i4 < 20; i4 += 2) {
- u4 = x0 + x12 | 0;
- x42 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x42 + x0 | 0;
- x8 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x8 + x42 | 0;
- x12 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x12 + x8 | 0;
- x0 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x52 + x1 | 0;
- x9 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x9 + x52 | 0;
- x13 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x13 + x9 | 0;
- x1 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x1 + x13 | 0;
- x52 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x10 + x6 | 0;
- x14 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x14 + x10 | 0;
- x22 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x22 + x14 | 0;
- x6 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x6 + x22 | 0;
- x10 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x15 + x11 | 0;
- x32 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x32 + x15 | 0;
- x7 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x7 + x32 | 0;
- x11 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x11 + x7 | 0;
- x15 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x0 + x32 | 0;
- x1 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x1 + x0 | 0;
- x22 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x22 + x1 | 0;
- x32 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x32 + x22 | 0;
- x0 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x52 + x42 | 0;
- x6 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x6 + x52 | 0;
- x7 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x7 + x6 | 0;
- x42 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x42 + x7 | 0;
- x52 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x10 + x9 | 0;
- x11 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x11 + x10 | 0;
- x8 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x8 + x11 | 0;
- x9 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x9 + x8 | 0;
- x10 ^= u4 << 18 | u4 >>> 32 - 18;
- u4 = x15 + x14 | 0;
- x12 ^= u4 << 7 | u4 >>> 32 - 7;
- u4 = x12 + x15 | 0;
- x13 ^= u4 << 9 | u4 >>> 32 - 9;
- u4 = x13 + x12 | 0;
- x14 ^= u4 << 13 | u4 >>> 32 - 13;
- u4 = x14 + x13 | 0;
- x15 ^= u4 << 18 | u4 >>> 32 - 18;
+function core_hsalsa20(o3, p4, k6, c5) {
+ var j0 = c5[0] & 255 | (c5[1] & 255) << 8 | (c5[2] & 255) << 16 | (c5[3] & 255) << 24, j1 = k6[0] & 255 | (k6[1] & 255) << 8 | (k6[2] & 255) << 16 | (k6[3] & 255) << 24, j22 = k6[4] & 255 | (k6[5] & 255) << 8 | (k6[6] & 255) << 16 | (k6[7] & 255) << 24, j32 = k6[8] & 255 | (k6[9] & 255) << 8 | (k6[10] & 255) << 16 | (k6[11] & 255) << 24, j4 = k6[12] & 255 | (k6[13] & 255) << 8 | (k6[14] & 255) << 16 | (k6[15] & 255) << 24, j5 = c5[4] & 255 | (c5[5] & 255) << 8 | (c5[6] & 255) << 16 | (c5[7] & 255) << 24, j6 = p4[0] & 255 | (p4[1] & 255) << 8 | (p4[2] & 255) << 16 | (p4[3] & 255) << 24, j7 = p4[4] & 255 | (p4[5] & 255) << 8 | (p4[6] & 255) << 16 | (p4[7] & 255) << 24, j8 = p4[8] & 255 | (p4[9] & 255) << 8 | (p4[10] & 255) << 16 | (p4[11] & 255) << 24, j9 = p4[12] & 255 | (p4[13] & 255) << 8 | (p4[14] & 255) << 16 | (p4[15] & 255) << 24, j10 = c5[8] & 255 | (c5[9] & 255) << 8 | (c5[10] & 255) << 16 | (c5[11] & 255) << 24, j11 = k6[16] & 255 | (k6[17] & 255) << 8 | (k6[18] & 255) << 16 | (k6[19] & 255) << 24, j12 = k6[20] & 255 | (k6[21] & 255) << 8 | (k6[22] & 255) << 16 | (k6[23] & 255) << 24, j13 = k6[24] & 255 | (k6[25] & 255) << 8 | (k6[26] & 255) << 16 | (k6[27] & 255) << 24, j14 = k6[28] & 255 | (k6[29] & 255) << 8 | (k6[30] & 255) << 16 | (k6[31] & 255) << 24, j15 = c5[12] & 255 | (c5[13] & 255) << 8 | (c5[14] & 255) << 16 | (c5[15] & 255) << 24;
+ var x0 = j0, x1 = j1, x22 = j22, x32 = j32, x42 = j4, x52 = j5, x62 = j6, x7 = j7, x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, x15 = j15, u5;
+ for (var i5 = 0; i5 < 20; i5 += 2) {
+ u5 = x0 + x12 | 0;
+ x42 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x42 + x0 | 0;
+ x8 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x8 + x42 | 0;
+ x12 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x12 + x8 | 0;
+ x0 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x52 + x1 | 0;
+ x9 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x9 + x52 | 0;
+ x13 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x13 + x9 | 0;
+ x1 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x1 + x13 | 0;
+ x52 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x10 + x62 | 0;
+ x14 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x14 + x10 | 0;
+ x22 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x22 + x14 | 0;
+ x62 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x62 + x22 | 0;
+ x10 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x15 + x11 | 0;
+ x32 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x32 + x15 | 0;
+ x7 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x7 + x32 | 0;
+ x11 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x11 + x7 | 0;
+ x15 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x0 + x32 | 0;
+ x1 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x1 + x0 | 0;
+ x22 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x22 + x1 | 0;
+ x32 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x32 + x22 | 0;
+ x0 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x52 + x42 | 0;
+ x62 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x62 + x52 | 0;
+ x7 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x7 + x62 | 0;
+ x42 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x42 + x7 | 0;
+ x52 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x10 + x9 | 0;
+ x11 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x11 + x10 | 0;
+ x8 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x8 + x11 | 0;
+ x9 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x9 + x8 | 0;
+ x10 ^= u5 << 18 | u5 >>> 32 - 18;
+ u5 = x15 + x14 | 0;
+ x12 ^= u5 << 7 | u5 >>> 32 - 7;
+ u5 = x12 + x15 | 0;
+ x13 ^= u5 << 9 | u5 >>> 32 - 9;
+ u5 = x13 + x12 | 0;
+ x14 ^= u5 << 13 | u5 >>> 32 - 13;
+ u5 = x14 + x13 | 0;
+ x15 ^= u5 << 18 | u5 >>> 32 - 18;
}
o3[0] = x0 >>> 0 & 255;
o3[1] = x0 >>> 8 & 255;
@@ -3520,10 +3508,10 @@ function core_hsalsa20(o3, p4, k5, c4) {
o3[13] = x15 >>> 8 & 255;
o3[14] = x15 >>> 16 & 255;
o3[15] = x15 >>> 24 & 255;
- o3[16] = x6 >>> 0 & 255;
- o3[17] = x6 >>> 8 & 255;
- o3[18] = x6 >>> 16 & 255;
- o3[19] = x6 >>> 24 & 255;
+ o3[16] = x62 >>> 0 & 255;
+ o3[17] = x62 >>> 8 & 255;
+ o3[18] = x62 >>> 16 & 255;
+ o3[19] = x62 >>> 24 & 255;
o3[20] = x7 >>> 0 & 255;
o3[21] = x7 >>> 8 & 255;
o3[22] = x7 >>> 16 & 255;
@@ -3555,76 +3543,76 @@ var sigma = new Uint8Array([
32,
107
]);
-function crypto_stream_salsa20_xor(c4, cpos, m5, mpos, b4, n2, k5) {
- var z5 = new Uint8Array(16), x6 = new Uint8Array(64);
- var u4, i4;
- for (i4 = 0; i4 < 16; i4++)
- z5[i4] = 0;
- for (i4 = 0; i4 < 8; i4++)
- z5[i4] = n2[i4];
- while (b4 >= 64) {
- core_salsa20(x6, z5, k5, sigma);
- for (i4 = 0; i4 < 64; i4++)
- c4[cpos + i4] = m5[mpos + i4] ^ x6[i4];
- u4 = 1;
- for (i4 = 8; i4 < 16; i4++) {
- u4 = u4 + (z5[i4] & 255) | 0;
- z5[i4] = u4 & 255;
- u4 >>>= 8;
- }
- b4 -= 64;
+function crypto_stream_salsa20_xor(c5, cpos, m6, mpos, b5, n2, k6) {
+ var z6 = new Uint8Array(16), x7 = new Uint8Array(64);
+ var u5, i5;
+ for (i5 = 0; i5 < 16; i5++)
+ z6[i5] = 0;
+ for (i5 = 0; i5 < 8; i5++)
+ z6[i5] = n2[i5];
+ while (b5 >= 64) {
+ core_salsa20(x7, z6, k6, sigma);
+ for (i5 = 0; i5 < 64; i5++)
+ c5[cpos + i5] = m6[mpos + i5] ^ x7[i5];
+ u5 = 1;
+ for (i5 = 8; i5 < 16; i5++) {
+ u5 = u5 + (z6[i5] & 255) | 0;
+ z6[i5] = u5 & 255;
+ u5 >>>= 8;
+ }
+ b5 -= 64;
cpos += 64;
mpos += 64;
}
- if (b4 > 0) {
- core_salsa20(x6, z5, k5, sigma);
- for (i4 = 0; i4 < b4; i4++)
- c4[cpos + i4] = m5[mpos + i4] ^ x6[i4];
+ if (b5 > 0) {
+ core_salsa20(x7, z6, k6, sigma);
+ for (i5 = 0; i5 < b5; i5++)
+ c5[cpos + i5] = m6[mpos + i5] ^ x7[i5];
}
return 0;
}
-function crypto_stream_salsa20(c4, cpos, b4, n2, k5) {
- var z5 = new Uint8Array(16), x6 = new Uint8Array(64);
- var u4, i4;
- for (i4 = 0; i4 < 16; i4++)
- z5[i4] = 0;
- for (i4 = 0; i4 < 8; i4++)
- z5[i4] = n2[i4];
- while (b4 >= 64) {
- core_salsa20(x6, z5, k5, sigma);
- for (i4 = 0; i4 < 64; i4++)
- c4[cpos + i4] = x6[i4];
- u4 = 1;
- for (i4 = 8; i4 < 16; i4++) {
- u4 = u4 + (z5[i4] & 255) | 0;
- z5[i4] = u4 & 255;
- u4 >>>= 8;
- }
- b4 -= 64;
+function crypto_stream_salsa20(c5, cpos, b5, n2, k6) {
+ var z6 = new Uint8Array(16), x7 = new Uint8Array(64);
+ var u5, i5;
+ for (i5 = 0; i5 < 16; i5++)
+ z6[i5] = 0;
+ for (i5 = 0; i5 < 8; i5++)
+ z6[i5] = n2[i5];
+ while (b5 >= 64) {
+ core_salsa20(x7, z6, k6, sigma);
+ for (i5 = 0; i5 < 64; i5++)
+ c5[cpos + i5] = x7[i5];
+ u5 = 1;
+ for (i5 = 8; i5 < 16; i5++) {
+ u5 = u5 + (z6[i5] & 255) | 0;
+ z6[i5] = u5 & 255;
+ u5 >>>= 8;
+ }
+ b5 -= 64;
cpos += 64;
}
- if (b4 > 0) {
- core_salsa20(x6, z5, k5, sigma);
- for (i4 = 0; i4 < b4; i4++)
- c4[cpos + i4] = x6[i4];
+ if (b5 > 0) {
+ core_salsa20(x7, z6, k6, sigma);
+ for (i5 = 0; i5 < b5; i5++)
+ c5[cpos + i5] = x7[i5];
}
return 0;
}
-function crypto_stream(c4, cpos, d5, n2, k5) {
- var s5 = new Uint8Array(32);
- core_hsalsa20(s5, n2, k5, sigma);
+function crypto_stream(c5, cpos, d6, n2, k6) {
+ var s6 = new Uint8Array(32);
+ core_hsalsa20(s6, n2, k6, sigma);
var sn2 = new Uint8Array(8);
- for (var i4 = 0; i4 < 8; i4++)
- sn2[i4] = n2[i4 + 16];
- return crypto_stream_salsa20(c4, cpos, d5, sn2, s5);
+ for (var i5 = 0; i5 < 8; i5++)
+ sn2[i5] = n2[i5 + 16];
+ return crypto_stream_salsa20(c5, cpos, d6, sn2, s6);
}
-function crypto_stream_xor(c4, cpos, m5, mpos, d5, n2, k5) {
- var s5 = new Uint8Array(32);
- core_hsalsa20(s5, n2, k5, sigma);
+function crypto_stream_xor(c5, cpos, m6, mpos, d6, n2, k6) {
+ var s6 = new Uint8Array(32);
+ core_hsalsa20(s6, n2, k6, sigma);
var sn2 = new Uint8Array(8);
- for (var i4 = 0; i4 < 8; i4++)
- sn2[i4] = n2[i4 + 16];
- return crypto_stream_salsa20_xor(c4, cpos, m5, mpos, d5, sn2, s5);
+ for (var i5 = 0; i5 < 8; i5++)
+ sn2[i5] = n2[i5 + 16];
+ return crypto_stream_salsa20_xor(c5, cpos, m6, mpos, d6, sn2, s6);
}
var poly1305 = class {
constructor(key) {
@@ -3634,7 +3622,7 @@ var poly1305 = class {
this.pad = new Uint16Array(8);
this.leftover = 0;
this.fin = 0;
- var t0, t1, t22, t32, t4, t5, t6, t7;
+ var t0, t1, t22, t32, t42, t5, t6, t7;
t0 = key[0] & 255 | (key[1] & 255) << 8;
this.r[0] = t0 & 8191;
t1 = key[2] & 255 | (key[3] & 255) << 8;
@@ -3643,11 +3631,11 @@ var poly1305 = class {
this.r[2] = (t1 >>> 10 | t22 << 6) & 7939;
t32 = key[6] & 255 | (key[7] & 255) << 8;
this.r[3] = (t22 >>> 7 | t32 << 9) & 8191;
- t4 = key[8] & 255 | (key[9] & 255) << 8;
- this.r[4] = (t32 >>> 4 | t4 << 12) & 255;
- this.r[5] = t4 >>> 1 & 8190;
+ t42 = key[8] & 255 | (key[9] & 255) << 8;
+ this.r[4] = (t32 >>> 4 | t42 << 12) & 255;
+ this.r[5] = t42 >>> 1 & 8190;
t5 = key[10] & 255 | (key[11] & 255) << 8;
- this.r[6] = (t4 >>> 14 | t5 << 2) & 8191;
+ this.r[6] = (t42 >>> 14 | t5 << 2) & 8191;
t6 = key[12] & 255 | (key[13] & 255) << 8;
this.r[7] = (t5 >>> 11 | t6 << 5) & 8065;
t7 = key[14] & 255 | (key[15] & 255) << 8;
@@ -3662,193 +3650,193 @@ var poly1305 = class {
this.pad[6] = key[28] & 255 | (key[29] & 255) << 8;
this.pad[7] = key[30] & 255 | (key[31] & 255) << 8;
}
- blocks(m5, mpos, bytes) {
+ blocks(m6, mpos, bytes) {
var hibit = this.fin ? 0 : 1 << 11;
- var t0, t1, t22, t32, t4, t5, t6, t7, c4;
- var d0, d1, d22, d32, d42, d5, d6, d7, d8, d9;
+ var t0, t1, t22, t32, t42, t5, t6, t7, c5;
+ var d0, d1, d23, d32, d42, d52, d6, d7, d8, d9;
var h0 = this.h[0], h1 = this.h[1], h22 = this.h[2], h32 = this.h[3], h42 = this.h[4], h5 = this.h[5], h6 = this.h[6], h7 = this.h[7], h8 = this.h[8], h9 = this.h[9];
var r0 = this.r[0], r1 = this.r[1], r22 = this.r[2], r3 = this.r[3], r4 = this.r[4], r5 = this.r[5], r6 = this.r[6], r7 = this.r[7], r8 = this.r[8], r9 = this.r[9];
while (bytes >= 16) {
- t0 = m5[mpos + 0] & 255 | (m5[mpos + 1] & 255) << 8;
+ t0 = m6[mpos + 0] & 255 | (m6[mpos + 1] & 255) << 8;
h0 += t0 & 8191;
- t1 = m5[mpos + 2] & 255 | (m5[mpos + 3] & 255) << 8;
+ t1 = m6[mpos + 2] & 255 | (m6[mpos + 3] & 255) << 8;
h1 += (t0 >>> 13 | t1 << 3) & 8191;
- t22 = m5[mpos + 4] & 255 | (m5[mpos + 5] & 255) << 8;
+ t22 = m6[mpos + 4] & 255 | (m6[mpos + 5] & 255) << 8;
h22 += (t1 >>> 10 | t22 << 6) & 8191;
- t32 = m5[mpos + 6] & 255 | (m5[mpos + 7] & 255) << 8;
+ t32 = m6[mpos + 6] & 255 | (m6[mpos + 7] & 255) << 8;
h32 += (t22 >>> 7 | t32 << 9) & 8191;
- t4 = m5[mpos + 8] & 255 | (m5[mpos + 9] & 255) << 8;
- h42 += (t32 >>> 4 | t4 << 12) & 8191;
- h5 += t4 >>> 1 & 8191;
- t5 = m5[mpos + 10] & 255 | (m5[mpos + 11] & 255) << 8;
- h6 += (t4 >>> 14 | t5 << 2) & 8191;
- t6 = m5[mpos + 12] & 255 | (m5[mpos + 13] & 255) << 8;
+ t42 = m6[mpos + 8] & 255 | (m6[mpos + 9] & 255) << 8;
+ h42 += (t32 >>> 4 | t42 << 12) & 8191;
+ h5 += t42 >>> 1 & 8191;
+ t5 = m6[mpos + 10] & 255 | (m6[mpos + 11] & 255) << 8;
+ h6 += (t42 >>> 14 | t5 << 2) & 8191;
+ t6 = m6[mpos + 12] & 255 | (m6[mpos + 13] & 255) << 8;
h7 += (t5 >>> 11 | t6 << 5) & 8191;
- t7 = m5[mpos + 14] & 255 | (m5[mpos + 15] & 255) << 8;
+ t7 = m6[mpos + 14] & 255 | (m6[mpos + 15] & 255) << 8;
h8 += (t6 >>> 8 | t7 << 8) & 8191;
h9 += t7 >>> 5 | hibit;
- c4 = 0;
- d0 = c4;
+ c5 = 0;
+ d0 = c5;
d0 += h0 * r0;
d0 += h1 * (5 * r9);
d0 += h22 * (5 * r8);
d0 += h32 * (5 * r7);
d0 += h42 * (5 * r6);
- c4 = d0 >>> 13;
+ c5 = d0 >>> 13;
d0 &= 8191;
d0 += h5 * (5 * r5);
d0 += h6 * (5 * r4);
d0 += h7 * (5 * r3);
d0 += h8 * (5 * r22);
d0 += h9 * (5 * r1);
- c4 += d0 >>> 13;
+ c5 += d0 >>> 13;
d0 &= 8191;
- d1 = c4;
+ d1 = c5;
d1 += h0 * r1;
d1 += h1 * r0;
d1 += h22 * (5 * r9);
d1 += h32 * (5 * r8);
d1 += h42 * (5 * r7);
- c4 = d1 >>> 13;
+ c5 = d1 >>> 13;
d1 &= 8191;
d1 += h5 * (5 * r6);
d1 += h6 * (5 * r5);
d1 += h7 * (5 * r4);
d1 += h8 * (5 * r3);
d1 += h9 * (5 * r22);
- c4 += d1 >>> 13;
+ c5 += d1 >>> 13;
d1 &= 8191;
- d22 = c4;
- d22 += h0 * r22;
- d22 += h1 * r1;
- d22 += h22 * r0;
- d22 += h32 * (5 * r9);
- d22 += h42 * (5 * r8);
- c4 = d22 >>> 13;
- d22 &= 8191;
- d22 += h5 * (5 * r7);
- d22 += h6 * (5 * r6);
- d22 += h7 * (5 * r5);
- d22 += h8 * (5 * r4);
- d22 += h9 * (5 * r3);
- c4 += d22 >>> 13;
- d22 &= 8191;
- d32 = c4;
+ d23 = c5;
+ d23 += h0 * r22;
+ d23 += h1 * r1;
+ d23 += h22 * r0;
+ d23 += h32 * (5 * r9);
+ d23 += h42 * (5 * r8);
+ c5 = d23 >>> 13;
+ d23 &= 8191;
+ d23 += h5 * (5 * r7);
+ d23 += h6 * (5 * r6);
+ d23 += h7 * (5 * r5);
+ d23 += h8 * (5 * r4);
+ d23 += h9 * (5 * r3);
+ c5 += d23 >>> 13;
+ d23 &= 8191;
+ d32 = c5;
d32 += h0 * r3;
d32 += h1 * r22;
d32 += h22 * r1;
d32 += h32 * r0;
d32 += h42 * (5 * r9);
- c4 = d32 >>> 13;
+ c5 = d32 >>> 13;
d32 &= 8191;
d32 += h5 * (5 * r8);
d32 += h6 * (5 * r7);
d32 += h7 * (5 * r6);
d32 += h8 * (5 * r5);
d32 += h9 * (5 * r4);
- c4 += d32 >>> 13;
+ c5 += d32 >>> 13;
d32 &= 8191;
- d42 = c4;
+ d42 = c5;
d42 += h0 * r4;
d42 += h1 * r3;
d42 += h22 * r22;
d42 += h32 * r1;
d42 += h42 * r0;
- c4 = d42 >>> 13;
+ c5 = d42 >>> 13;
d42 &= 8191;
d42 += h5 * (5 * r9);
d42 += h6 * (5 * r8);
d42 += h7 * (5 * r7);
d42 += h8 * (5 * r6);
d42 += h9 * (5 * r5);
- c4 += d42 >>> 13;
+ c5 += d42 >>> 13;
d42 &= 8191;
- d5 = c4;
- d5 += h0 * r5;
- d5 += h1 * r4;
- d5 += h22 * r3;
- d5 += h32 * r22;
- d5 += h42 * r1;
- c4 = d5 >>> 13;
- d5 &= 8191;
- d5 += h5 * r0;
- d5 += h6 * (5 * r9);
- d5 += h7 * (5 * r8);
- d5 += h8 * (5 * r7);
- d5 += h9 * (5 * r6);
- c4 += d5 >>> 13;
- d5 &= 8191;
- d6 = c4;
+ d52 = c5;
+ d52 += h0 * r5;
+ d52 += h1 * r4;
+ d52 += h22 * r3;
+ d52 += h32 * r22;
+ d52 += h42 * r1;
+ c5 = d52 >>> 13;
+ d52 &= 8191;
+ d52 += h5 * r0;
+ d52 += h6 * (5 * r9);
+ d52 += h7 * (5 * r8);
+ d52 += h8 * (5 * r7);
+ d52 += h9 * (5 * r6);
+ c5 += d52 >>> 13;
+ d52 &= 8191;
+ d6 = c5;
d6 += h0 * r6;
d6 += h1 * r5;
d6 += h22 * r4;
d6 += h32 * r3;
d6 += h42 * r22;
- c4 = d6 >>> 13;
+ c5 = d6 >>> 13;
d6 &= 8191;
d6 += h5 * r1;
d6 += h6 * r0;
d6 += h7 * (5 * r9);
d6 += h8 * (5 * r8);
d6 += h9 * (5 * r7);
- c4 += d6 >>> 13;
+ c5 += d6 >>> 13;
d6 &= 8191;
- d7 = c4;
+ d7 = c5;
d7 += h0 * r7;
d7 += h1 * r6;
d7 += h22 * r5;
d7 += h32 * r4;
d7 += h42 * r3;
- c4 = d7 >>> 13;
+ c5 = d7 >>> 13;
d7 &= 8191;
d7 += h5 * r22;
d7 += h6 * r1;
d7 += h7 * r0;
d7 += h8 * (5 * r9);
d7 += h9 * (5 * r8);
- c4 += d7 >>> 13;
+ c5 += d7 >>> 13;
d7 &= 8191;
- d8 = c4;
+ d8 = c5;
d8 += h0 * r8;
d8 += h1 * r7;
d8 += h22 * r6;
d8 += h32 * r5;
d8 += h42 * r4;
- c4 = d8 >>> 13;
+ c5 = d8 >>> 13;
d8 &= 8191;
d8 += h5 * r3;
d8 += h6 * r22;
d8 += h7 * r1;
d8 += h8 * r0;
d8 += h9 * (5 * r9);
- c4 += d8 >>> 13;
+ c5 += d8 >>> 13;
d8 &= 8191;
- d9 = c4;
+ d9 = c5;
d9 += h0 * r9;
d9 += h1 * r8;
d9 += h22 * r7;
d9 += h32 * r6;
d9 += h42 * r5;
- c4 = d9 >>> 13;
+ c5 = d9 >>> 13;
d9 &= 8191;
d9 += h5 * r4;
d9 += h6 * r3;
d9 += h7 * r22;
d9 += h8 * r1;
d9 += h9 * r0;
- c4 += d9 >>> 13;
+ c5 += d9 >>> 13;
d9 &= 8191;
- c4 = (c4 << 2) + c4 | 0;
- c4 = c4 + d0 | 0;
- d0 = c4 & 8191;
- c4 = c4 >>> 13;
- d1 += c4;
+ c5 = (c5 << 2) + c5 | 0;
+ c5 = c5 + d0 | 0;
+ d0 = c5 & 8191;
+ c5 = c5 >>> 13;
+ d1 += c5;
h0 = d0;
h1 = d1;
- h22 = d22;
+ h22 = d23;
h32 = d32;
h42 = d42;
- h5 = d5;
+ h5 = d52;
h6 = d6;
h7 = d7;
h8 = d8;
@@ -3869,44 +3857,44 @@ var poly1305 = class {
}
finish(mac, macpos) {
var g4 = new Uint16Array(10);
- var c4, mask, f3, i4;
+ var c5, mask, f3, i5;
if (this.leftover) {
- i4 = this.leftover;
- this.buffer[i4++] = 1;
- for (; i4 < 16; i4++)
- this.buffer[i4] = 0;
+ i5 = this.leftover;
+ this.buffer[i5++] = 1;
+ for (; i5 < 16; i5++)
+ this.buffer[i5] = 0;
this.fin = 1;
this.blocks(this.buffer, 0, 16);
}
- c4 = this.h[1] >>> 13;
+ c5 = this.h[1] >>> 13;
this.h[1] &= 8191;
- for (i4 = 2; i4 < 10; i4++) {
- this.h[i4] += c4;
- c4 = this.h[i4] >>> 13;
- this.h[i4] &= 8191;
+ for (i5 = 2; i5 < 10; i5++) {
+ this.h[i5] += c5;
+ c5 = this.h[i5] >>> 13;
+ this.h[i5] &= 8191;
}
- this.h[0] += c4 * 5;
- c4 = this.h[0] >>> 13;
+ this.h[0] += c5 * 5;
+ c5 = this.h[0] >>> 13;
this.h[0] &= 8191;
- this.h[1] += c4;
- c4 = this.h[1] >>> 13;
+ this.h[1] += c5;
+ c5 = this.h[1] >>> 13;
this.h[1] &= 8191;
- this.h[2] += c4;
+ this.h[2] += c5;
g4[0] = this.h[0] + 5;
- c4 = g4[0] >>> 13;
+ c5 = g4[0] >>> 13;
g4[0] &= 8191;
- for (i4 = 1; i4 < 10; i4++) {
- g4[i4] = this.h[i4] + c4;
- c4 = g4[i4] >>> 13;
- g4[i4] &= 8191;
+ for (i5 = 1; i5 < 10; i5++) {
+ g4[i5] = this.h[i5] + c5;
+ c5 = g4[i5] >>> 13;
+ g4[i5] &= 8191;
}
g4[9] -= 1 << 13;
- mask = (c4 ^ 1) - 1;
- for (i4 = 0; i4 < 10; i4++)
- g4[i4] &= mask;
+ mask = (c5 ^ 1) - 1;
+ for (i5 = 0; i5 < 10; i5++)
+ g4[i5] &= mask;
mask = ~mask;
- for (i4 = 0; i4 < 10; i4++)
- this.h[i4] = this.h[i4] & mask | g4[i4];
+ for (i5 = 0; i5 < 10; i5++)
+ this.h[i5] = this.h[i5] & mask | g4[i5];
this.h[0] = (this.h[0] | this.h[1] << 13) & 65535;
this.h[1] = (this.h[1] >>> 3 | this.h[2] << 10) & 65535;
this.h[2] = (this.h[2] >>> 6 | this.h[3] << 7) & 65535;
@@ -3917,9 +3905,9 @@ var poly1305 = class {
this.h[7] = (this.h[8] >>> 8 | this.h[9] << 5) & 65535;
f3 = this.h[0] + this.pad[0];
this.h[0] = f3 & 65535;
- for (i4 = 1; i4 < 8; i4++) {
- f3 = (this.h[i4] + this.pad[i4] | 0) + (f3 >>> 16) | 0;
- this.h[i4] = f3 & 65535;
+ for (i5 = 1; i5 < 8; i5++) {
+ f3 = (this.h[i5] + this.pad[i5] | 0) + (f3 >>> 16) | 0;
+ this.h[i5] = f3 & 65535;
}
mac[macpos + 0] = this.h[0] >>> 0 & 255;
mac[macpos + 1] = this.h[0] >>> 8 & 255;
@@ -3938,15 +3926,15 @@ var poly1305 = class {
mac[macpos + 14] = this.h[7] >>> 0 & 255;
mac[macpos + 15] = this.h[7] >>> 8 & 255;
}
- update(m5, mpos, bytes) {
- let i4;
+ update(m6, mpos, bytes) {
+ let i5;
let want;
if (this.leftover) {
want = 16 - this.leftover;
if (want > bytes)
want = bytes;
- for (i4 = 0; i4 < want; i4++)
- this.buffer[this.leftover + i4] = m5[mpos + i4];
+ for (i5 = 0; i5 < want; i5++)
+ this.buffer[this.leftover + i5] = m6[mpos + i5];
bytes -= want;
mpos += want;
this.leftover += want;
@@ -3957,133 +3945,133 @@ var poly1305 = class {
}
if (bytes >= 16) {
want = bytes - bytes % 16;
- this.blocks(m5, mpos, want);
+ this.blocks(m6, mpos, want);
mpos += want;
bytes -= want;
}
if (bytes) {
- for (i4 = 0; i4 < bytes; i4++)
- this.buffer[this.leftover + i4] = m5[mpos + i4];
+ for (i5 = 0; i5 < bytes; i5++)
+ this.buffer[this.leftover + i5] = m6[mpos + i5];
this.leftover += bytes;
}
}
};
-function crypto_onetimeauth(out, outpos, m5, mpos, n2, k5) {
- var s5 = new poly1305(k5);
- s5.update(m5, mpos, n2);
- s5.finish(out, outpos);
+function crypto_onetimeauth(out, outpos, m6, mpos, n2, k6) {
+ var s6 = new poly1305(k6);
+ s6.update(m6, mpos, n2);
+ s6.finish(out, outpos);
return 0;
}
-function crypto_onetimeauth_verify(h5, hpos, m5, mpos, n2, k5) {
- var x6 = new Uint8Array(16);
- crypto_onetimeauth(x6, 0, m5, mpos, n2, k5);
- return crypto_verify_16(h5, hpos, x6, 0);
+function crypto_onetimeauth_verify(h5, hpos, m6, mpos, n2, k6) {
+ var x7 = new Uint8Array(16);
+ crypto_onetimeauth(x7, 0, m6, mpos, n2, k6);
+ return crypto_verify_16(h5, hpos, x7, 0);
}
-function crypto_secretbox(c4, m5, d5, n2, k5) {
- var i4;
- if (d5 < 32)
+function crypto_secretbox(c5, m6, d6, n2, k6) {
+ var i5;
+ if (d6 < 32)
return -1;
- crypto_stream_xor(c4, 0, m5, 0, d5, n2, k5);
- crypto_onetimeauth(c4, 16, c4, 32, d5 - 32, c4);
- for (i4 = 0; i4 < 16; i4++)
- c4[i4] = 0;
+ crypto_stream_xor(c5, 0, m6, 0, d6, n2, k6);
+ crypto_onetimeauth(c5, 16, c5, 32, d6 - 32, c5);
+ for (i5 = 0; i5 < 16; i5++)
+ c5[i5] = 0;
return 0;
}
-function crypto_secretbox_open(m5, c4, d5, n2, k5) {
- var i4;
- var x6 = new Uint8Array(32);
- if (d5 < 32)
+function crypto_secretbox_open(m6, c5, d6, n2, k6) {
+ var i5;
+ var x7 = new Uint8Array(32);
+ if (d6 < 32)
return -1;
- crypto_stream(x6, 0, 32, n2, k5);
- if (crypto_onetimeauth_verify(c4, 16, c4, 32, d5 - 32, x6) !== 0)
+ crypto_stream(x7, 0, 32, n2, k6);
+ if (crypto_onetimeauth_verify(c5, 16, c5, 32, d6 - 32, x7) !== 0)
return -1;
- crypto_stream_xor(m5, 0, c4, 0, d5, n2, k5);
- for (i4 = 0; i4 < 32; i4++)
- m5[i4] = 0;
+ crypto_stream_xor(m6, 0, c5, 0, d6, n2, k6);
+ for (i5 = 0; i5 < 32; i5++)
+ m6[i5] = 0;
return 0;
}
-function set25519(r3, a5) {
- let i4;
- for (i4 = 0; i4 < 16; i4++)
- r3[i4] = a5[i4] | 0;
+function set25519(r3, a6) {
+ let i5;
+ for (i5 = 0; i5 < 16; i5++)
+ r3[i5] = a6[i5] | 0;
}
function car25519(o3) {
- let i4, v3, c4 = 1;
- for (i4 = 0; i4 < 16; i4++) {
- v3 = o3[i4] + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- o3[i4] = v3 - c4 * 65536;
+ let i5, v3, c5 = 1;
+ for (i5 = 0; i5 < 16; i5++) {
+ v3 = o3[i5] + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ o3[i5] = v3 - c5 * 65536;
}
- o3[0] += c4 - 1 + 37 * (c4 - 1);
+ o3[0] += c5 - 1 + 37 * (c5 - 1);
}
-function sel25519(p4, q5, b4) {
- let t4;
- const c4 = ~(b4 - 1);
- for (let i4 = 0; i4 < 16; i4++) {
- t4 = c4 & (p4[i4] ^ q5[i4]);
- p4[i4] ^= t4;
- q5[i4] ^= t4;
+function sel25519(p4, q6, b5) {
+ let t5;
+ const c5 = ~(b5 - 1);
+ for (let i5 = 0; i5 < 16; i5++) {
+ t5 = c5 & (p4[i5] ^ q6[i5]);
+ p4[i5] ^= t5;
+ q6[i5] ^= t5;
}
}
function pack25519(o3, n2) {
- let i4, j4, b4;
- const m5 = gf(), t4 = gf();
- for (i4 = 0; i4 < 16; i4++)
- t4[i4] = n2[i4];
- car25519(t4);
- car25519(t4);
- car25519(t4);
+ let i5, j4, b5;
+ const m6 = gf(), t5 = gf();
+ for (i5 = 0; i5 < 16; i5++)
+ t5[i5] = n2[i5];
+ car25519(t5);
+ car25519(t5);
+ car25519(t5);
for (j4 = 0; j4 < 2; j4++) {
- m5[0] = t4[0] - 65517;
- for (i4 = 1; i4 < 15; i4++) {
- m5[i4] = t4[i4] - 65535 - (m5[i4 - 1] >> 16 & 1);
- m5[i4 - 1] &= 65535;
+ m6[0] = t5[0] - 65517;
+ for (i5 = 1; i5 < 15; i5++) {
+ m6[i5] = t5[i5] - 65535 - (m6[i5 - 1] >> 16 & 1);
+ m6[i5 - 1] &= 65535;
}
- m5[15] = t4[15] - 32767 - (m5[14] >> 16 & 1);
- b4 = m5[15] >> 16 & 1;
- m5[14] &= 65535;
- sel25519(t4, m5, 1 - b4);
+ m6[15] = t5[15] - 32767 - (m6[14] >> 16 & 1);
+ b5 = m6[15] >> 16 & 1;
+ m6[14] &= 65535;
+ sel25519(t5, m6, 1 - b5);
}
- for (i4 = 0; i4 < 16; i4++) {
- o3[2 * i4] = t4[i4] & 255;
- o3[2 * i4 + 1] = t4[i4] >> 8;
+ for (i5 = 0; i5 < 16; i5++) {
+ o3[2 * i5] = t5[i5] & 255;
+ o3[2 * i5 + 1] = t5[i5] >> 8;
}
}
-function neq25519(a5, b4) {
- const c4 = new Uint8Array(32), d5 = new Uint8Array(32);
- pack25519(c4, a5);
- pack25519(d5, b4);
- return crypto_verify_32(c4, 0, d5, 0);
+function neq25519(a6, b5) {
+ const c5 = new Uint8Array(32), d6 = new Uint8Array(32);
+ pack25519(c5, a6);
+ pack25519(d6, b5);
+ return crypto_verify_32(c5, 0, d6, 0);
}
-function par25519(a5) {
- const d5 = new Uint8Array(32);
- pack25519(d5, a5);
- return d5[0] & 1;
+function par25519(a6) {
+ const d6 = new Uint8Array(32);
+ pack25519(d6, a6);
+ return d6[0] & 1;
}
function unpack25519(o3, n2) {
- let i4;
- for (i4 = 0; i4 < 16; i4++)
- o3[i4] = n2[2 * i4] + (n2[2 * i4 + 1] << 8);
+ let i5;
+ for (i5 = 0; i5 < 16; i5++)
+ o3[i5] = n2[2 * i5] + (n2[2 * i5 + 1] << 8);
o3[15] &= 32767;
}
-function A(o3, a5, b4) {
- for (let i4 = 0; i4 < 16; i4++)
- o3[i4] = a5[i4] + b4[i4];
+function A(o3, a6, b5) {
+ for (let i5 = 0; i5 < 16; i5++)
+ o3[i5] = a6[i5] + b5[i5];
}
-function Z(o3, a5, b4) {
- for (let i4 = 0; i4 < 16; i4++)
- o3[i4] = a5[i4] - b4[i4];
+function Z(o3, a6, b5) {
+ for (let i5 = 0; i5 < 16; i5++)
+ o3[i5] = a6[i5] - b5[i5];
}
-function M(o3, a5, b4) {
- let v3, c4, t0 = 0, t1 = 0, t22 = 0, t32 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t222 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0;
- const b0 = b4[0], b1 = b4[1], b22 = b4[2], b32 = b4[3], b42 = b4[4], b5 = b4[5], b6 = b4[6], b7 = b4[7], b8 = b4[8], b9 = b4[9], b10 = b4[10], b11 = b4[11], b12 = b4[12], b13 = b4[13], b14 = b4[14], b15 = b4[15];
- v3 = a5[0];
+function M(o3, a6, b5) {
+ let v3, c5, t0 = 0, t1 = 0, t22 = 0, t32 = 0, t42 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t222 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0;
+ const b0 = b5[0], b1 = b5[1], b22 = b5[2], b32 = b5[3], b42 = b5[4], b52 = b5[5], b6 = b5[6], b7 = b5[7], b8 = b5[8], b9 = b5[9], b10 = b5[10], b11 = b5[11], b12 = b5[12], b13 = b5[13], b14 = b5[14], b15 = b5[15];
+ v3 = a6[0];
t0 += v3 * b0;
t1 += v3 * b1;
t22 += v3 * b22;
t32 += v3 * b32;
- t4 += v3 * b42;
- t5 += v3 * b5;
+ t42 += v3 * b42;
+ t5 += v3 * b52;
t6 += v3 * b6;
t7 += v3 * b7;
t8 += v3 * b8;
@@ -4094,13 +4082,13 @@ function M(o3, a5, b4) {
t13 += v3 * b13;
t14 += v3 * b14;
t15 += v3 * b15;
- v3 = a5[1];
+ v3 = a6[1];
t1 += v3 * b0;
t22 += v3 * b1;
t32 += v3 * b22;
- t4 += v3 * b32;
+ t42 += v3 * b32;
t5 += v3 * b42;
- t6 += v3 * b5;
+ t6 += v3 * b52;
t7 += v3 * b6;
t8 += v3 * b7;
t9 += v3 * b8;
@@ -4111,13 +4099,13 @@ function M(o3, a5, b4) {
t14 += v3 * b13;
t15 += v3 * b14;
t16 += v3 * b15;
- v3 = a5[2];
+ v3 = a6[2];
t22 += v3 * b0;
t32 += v3 * b1;
- t4 += v3 * b22;
+ t42 += v3 * b22;
t5 += v3 * b32;
t6 += v3 * b42;
- t7 += v3 * b5;
+ t7 += v3 * b52;
t8 += v3 * b6;
t9 += v3 * b7;
t10 += v3 * b8;
@@ -4128,13 +4116,13 @@ function M(o3, a5, b4) {
t15 += v3 * b13;
t16 += v3 * b14;
t17 += v3 * b15;
- v3 = a5[3];
+ v3 = a6[3];
t32 += v3 * b0;
- t4 += v3 * b1;
+ t42 += v3 * b1;
t5 += v3 * b22;
t6 += v3 * b32;
t7 += v3 * b42;
- t8 += v3 * b5;
+ t8 += v3 * b52;
t9 += v3 * b6;
t10 += v3 * b7;
t11 += v3 * b8;
@@ -4145,13 +4133,13 @@ function M(o3, a5, b4) {
t16 += v3 * b13;
t17 += v3 * b14;
t18 += v3 * b15;
- v3 = a5[4];
- t4 += v3 * b0;
+ v3 = a6[4];
+ t42 += v3 * b0;
t5 += v3 * b1;
t6 += v3 * b22;
t7 += v3 * b32;
t8 += v3 * b42;
- t9 += v3 * b5;
+ t9 += v3 * b52;
t10 += v3 * b6;
t11 += v3 * b7;
t12 += v3 * b8;
@@ -4162,13 +4150,13 @@ function M(o3, a5, b4) {
t17 += v3 * b13;
t18 += v3 * b14;
t19 += v3 * b15;
- v3 = a5[5];
+ v3 = a6[5];
t5 += v3 * b0;
t6 += v3 * b1;
t7 += v3 * b22;
t8 += v3 * b32;
t9 += v3 * b42;
- t10 += v3 * b5;
+ t10 += v3 * b52;
t11 += v3 * b6;
t12 += v3 * b7;
t13 += v3 * b8;
@@ -4179,13 +4167,13 @@ function M(o3, a5, b4) {
t18 += v3 * b13;
t19 += v3 * b14;
t20 += v3 * b15;
- v3 = a5[6];
+ v3 = a6[6];
t6 += v3 * b0;
t7 += v3 * b1;
t8 += v3 * b22;
t9 += v3 * b32;
t10 += v3 * b42;
- t11 += v3 * b5;
+ t11 += v3 * b52;
t12 += v3 * b6;
t13 += v3 * b7;
t14 += v3 * b8;
@@ -4196,13 +4184,13 @@ function M(o3, a5, b4) {
t19 += v3 * b13;
t20 += v3 * b14;
t21 += v3 * b15;
- v3 = a5[7];
+ v3 = a6[7];
t7 += v3 * b0;
t8 += v3 * b1;
t9 += v3 * b22;
t10 += v3 * b32;
t11 += v3 * b42;
- t12 += v3 * b5;
+ t12 += v3 * b52;
t13 += v3 * b6;
t14 += v3 * b7;
t15 += v3 * b8;
@@ -4213,13 +4201,13 @@ function M(o3, a5, b4) {
t20 += v3 * b13;
t21 += v3 * b14;
t222 += v3 * b15;
- v3 = a5[8];
+ v3 = a6[8];
t8 += v3 * b0;
t9 += v3 * b1;
t10 += v3 * b22;
t11 += v3 * b32;
t12 += v3 * b42;
- t13 += v3 * b5;
+ t13 += v3 * b52;
t14 += v3 * b6;
t15 += v3 * b7;
t16 += v3 * b8;
@@ -4230,13 +4218,13 @@ function M(o3, a5, b4) {
t21 += v3 * b13;
t222 += v3 * b14;
t23 += v3 * b15;
- v3 = a5[9];
+ v3 = a6[9];
t9 += v3 * b0;
t10 += v3 * b1;
t11 += v3 * b22;
t12 += v3 * b32;
t13 += v3 * b42;
- t14 += v3 * b5;
+ t14 += v3 * b52;
t15 += v3 * b6;
t16 += v3 * b7;
t17 += v3 * b8;
@@ -4247,13 +4235,13 @@ function M(o3, a5, b4) {
t222 += v3 * b13;
t23 += v3 * b14;
t24 += v3 * b15;
- v3 = a5[10];
+ v3 = a6[10];
t10 += v3 * b0;
t11 += v3 * b1;
t12 += v3 * b22;
t13 += v3 * b32;
t14 += v3 * b42;
- t15 += v3 * b5;
+ t15 += v3 * b52;
t16 += v3 * b6;
t17 += v3 * b7;
t18 += v3 * b8;
@@ -4264,13 +4252,13 @@ function M(o3, a5, b4) {
t23 += v3 * b13;
t24 += v3 * b14;
t25 += v3 * b15;
- v3 = a5[11];
+ v3 = a6[11];
t11 += v3 * b0;
t12 += v3 * b1;
t13 += v3 * b22;
t14 += v3 * b32;
t15 += v3 * b42;
- t16 += v3 * b5;
+ t16 += v3 * b52;
t17 += v3 * b6;
t18 += v3 * b7;
t19 += v3 * b8;
@@ -4281,13 +4269,13 @@ function M(o3, a5, b4) {
t24 += v3 * b13;
t25 += v3 * b14;
t26 += v3 * b15;
- v3 = a5[12];
+ v3 = a6[12];
t12 += v3 * b0;
t13 += v3 * b1;
t14 += v3 * b22;
t15 += v3 * b32;
t16 += v3 * b42;
- t17 += v3 * b5;
+ t17 += v3 * b52;
t18 += v3 * b6;
t19 += v3 * b7;
t20 += v3 * b8;
@@ -4298,13 +4286,13 @@ function M(o3, a5, b4) {
t25 += v3 * b13;
t26 += v3 * b14;
t27 += v3 * b15;
- v3 = a5[13];
+ v3 = a6[13];
t13 += v3 * b0;
t14 += v3 * b1;
t15 += v3 * b22;
t16 += v3 * b32;
t17 += v3 * b42;
- t18 += v3 * b5;
+ t18 += v3 * b52;
t19 += v3 * b6;
t20 += v3 * b7;
t21 += v3 * b8;
@@ -4315,13 +4303,13 @@ function M(o3, a5, b4) {
t26 += v3 * b13;
t27 += v3 * b14;
t28 += v3 * b15;
- v3 = a5[14];
+ v3 = a6[14];
t14 += v3 * b0;
t15 += v3 * b1;
t16 += v3 * b22;
t17 += v3 * b32;
t18 += v3 * b42;
- t19 += v3 * b5;
+ t19 += v3 * b52;
t20 += v3 * b6;
t21 += v3 * b7;
t222 += v3 * b8;
@@ -4332,13 +4320,13 @@ function M(o3, a5, b4) {
t27 += v3 * b13;
t28 += v3 * b14;
t29 += v3 * b15;
- v3 = a5[15];
+ v3 = a6[15];
t15 += v3 * b0;
t16 += v3 * b1;
t17 += v3 * b22;
t18 += v3 * b32;
t19 += v3 * b42;
- t20 += v3 * b5;
+ t20 += v3 * b52;
t21 += v3 * b6;
t222 += v3 * b7;
t23 += v3 * b8;
@@ -4353,7 +4341,7 @@ function M(o3, a5, b4) {
t1 += 38 * t17;
t22 += 38 * t18;
t32 += 38 * t19;
- t4 += 38 * t20;
+ t42 += 38 * t20;
t5 += 38 * t21;
t6 += 38 * t222;
t7 += 38 * t23;
@@ -4364,111 +4352,111 @@ function M(o3, a5, b4) {
t12 += 38 * t28;
t13 += 38 * t29;
t14 += 38 * t30;
- c4 = 1;
- v3 = t0 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t0 = v3 - c4 * 65536;
- v3 = t1 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t1 = v3 - c4 * 65536;
- v3 = t22 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t22 = v3 - c4 * 65536;
- v3 = t32 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t32 = v3 - c4 * 65536;
- v3 = t4 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t4 = v3 - c4 * 65536;
- v3 = t5 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t5 = v3 - c4 * 65536;
- v3 = t6 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t6 = v3 - c4 * 65536;
- v3 = t7 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t7 = v3 - c4 * 65536;
- v3 = t8 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t8 = v3 - c4 * 65536;
- v3 = t9 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t9 = v3 - c4 * 65536;
- v3 = t10 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t10 = v3 - c4 * 65536;
- v3 = t11 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t11 = v3 - c4 * 65536;
- v3 = t12 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t12 = v3 - c4 * 65536;
- v3 = t13 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t13 = v3 - c4 * 65536;
- v3 = t14 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t14 = v3 - c4 * 65536;
- v3 = t15 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t15 = v3 - c4 * 65536;
- t0 += c4 - 1 + 37 * (c4 - 1);
- c4 = 1;
- v3 = t0 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t0 = v3 - c4 * 65536;
- v3 = t1 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t1 = v3 - c4 * 65536;
- v3 = t22 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t22 = v3 - c4 * 65536;
- v3 = t32 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t32 = v3 - c4 * 65536;
- v3 = t4 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t4 = v3 - c4 * 65536;
- v3 = t5 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t5 = v3 - c4 * 65536;
- v3 = t6 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t6 = v3 - c4 * 65536;
- v3 = t7 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t7 = v3 - c4 * 65536;
- v3 = t8 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t8 = v3 - c4 * 65536;
- v3 = t9 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t9 = v3 - c4 * 65536;
- v3 = t10 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t10 = v3 - c4 * 65536;
- v3 = t11 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t11 = v3 - c4 * 65536;
- v3 = t12 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t12 = v3 - c4 * 65536;
- v3 = t13 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t13 = v3 - c4 * 65536;
- v3 = t14 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t14 = v3 - c4 * 65536;
- v3 = t15 + c4 + 65535;
- c4 = Math.floor(v3 / 65536);
- t15 = v3 - c4 * 65536;
- t0 += c4 - 1 + 37 * (c4 - 1);
+ c5 = 1;
+ v3 = t0 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t0 = v3 - c5 * 65536;
+ v3 = t1 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t1 = v3 - c5 * 65536;
+ v3 = t22 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t22 = v3 - c5 * 65536;
+ v3 = t32 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t32 = v3 - c5 * 65536;
+ v3 = t42 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t42 = v3 - c5 * 65536;
+ v3 = t5 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t5 = v3 - c5 * 65536;
+ v3 = t6 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t6 = v3 - c5 * 65536;
+ v3 = t7 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t7 = v3 - c5 * 65536;
+ v3 = t8 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t8 = v3 - c5 * 65536;
+ v3 = t9 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t9 = v3 - c5 * 65536;
+ v3 = t10 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t10 = v3 - c5 * 65536;
+ v3 = t11 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t11 = v3 - c5 * 65536;
+ v3 = t12 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t12 = v3 - c5 * 65536;
+ v3 = t13 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t13 = v3 - c5 * 65536;
+ v3 = t14 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t14 = v3 - c5 * 65536;
+ v3 = t15 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t15 = v3 - c5 * 65536;
+ t0 += c5 - 1 + 37 * (c5 - 1);
+ c5 = 1;
+ v3 = t0 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t0 = v3 - c5 * 65536;
+ v3 = t1 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t1 = v3 - c5 * 65536;
+ v3 = t22 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t22 = v3 - c5 * 65536;
+ v3 = t32 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t32 = v3 - c5 * 65536;
+ v3 = t42 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t42 = v3 - c5 * 65536;
+ v3 = t5 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t5 = v3 - c5 * 65536;
+ v3 = t6 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t6 = v3 - c5 * 65536;
+ v3 = t7 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t7 = v3 - c5 * 65536;
+ v3 = t8 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t8 = v3 - c5 * 65536;
+ v3 = t9 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t9 = v3 - c5 * 65536;
+ v3 = t10 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t10 = v3 - c5 * 65536;
+ v3 = t11 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t11 = v3 - c5 * 65536;
+ v3 = t12 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t12 = v3 - c5 * 65536;
+ v3 = t13 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t13 = v3 - c5 * 65536;
+ v3 = t14 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t14 = v3 - c5 * 65536;
+ v3 = t15 + c5 + 65535;
+ c5 = Math.floor(v3 / 65536);
+ t15 = v3 - c5 * 65536;
+ t0 += c5 - 1 + 37 * (c5 - 1);
o3[0] = t0;
o3[1] = t1;
o3[2] = t22;
o3[3] = t32;
- o3[4] = t4;
+ o3[4] = t42;
o3[5] = t5;
o3[6] = t6;
o3[7] = t7;
@@ -4481,34 +4469,34 @@ function M(o3, a5, b4) {
o3[14] = t14;
o3[15] = t15;
}
-function S(o3, a5) {
- M(o3, a5, a5);
-}
-function inv25519(o3, i4) {
- const c4 = gf();
- let a5;
- for (a5 = 0; a5 < 16; a5++)
- c4[a5] = i4[a5];
- for (a5 = 253; a5 >= 0; a5--) {
- S(c4, c4);
- if (a5 !== 2 && a5 !== 4)
- M(c4, c4, i4);
- }
- for (a5 = 0; a5 < 16; a5++)
- o3[a5] = c4[a5];
-}
-function pow2523(o3, i4) {
- const c4 = gf();
- let a5;
- for (a5 = 0; a5 < 16; a5++)
- c4[a5] = i4[a5];
- for (a5 = 250; a5 >= 0; a5--) {
- S(c4, c4);
- if (a5 !== 1)
- M(c4, c4, i4);
- }
- for (a5 = 0; a5 < 16; a5++)
- o3[a5] = c4[a5];
+function S(o3, a6) {
+ M(o3, a6, a6);
+}
+function inv25519(o3, i5) {
+ const c5 = gf();
+ let a6;
+ for (a6 = 0; a6 < 16; a6++)
+ c5[a6] = i5[a6];
+ for (a6 = 253; a6 >= 0; a6--) {
+ S(c5, c5);
+ if (a6 !== 2 && a6 !== 4)
+ M(c5, c5, i5);
+ }
+ for (a6 = 0; a6 < 16; a6++)
+ o3[a6] = c5[a6];
+}
+function pow2523(o3, i5) {
+ const c5 = gf();
+ let a6;
+ for (a6 = 0; a6 < 16; a6++)
+ c5[a6] = i5[a6];
+ for (a6 = 250; a6 >= 0; a6--) {
+ S(c5, c5);
+ if (a6 !== 1)
+ M(c5, c5, i5);
+ }
+ for (a6 = 0; a6 < 16; a6++)
+ o3[a6] = c5[a6];
}
var K = [
1116352408,
@@ -4672,18 +4660,18 @@ var K = [
1816402316,
1246189591
];
-function crypto_hashblocks_hl(hh, hl, m5, n2) {
+function crypto_hashblocks_hl(hh, hl, m6, n2) {
const wh = new Int32Array(16), wl = new Int32Array(16);
- let bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, th, tl, i4, j4, h5, l3, a5, b4, c4, d5;
+ let bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, th, tl, i5, j4, h5, l3, a6, b5, c5, d6;
let ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];
let pos = 0;
while (n2 >= 128) {
- for (i4 = 0; i4 < 16; i4++) {
- j4 = 8 * i4 + pos;
- wh[i4] = m5[j4 + 0] << 24 | m5[j4 + 1] << 16 | m5[j4 + 2] << 8 | m5[j4 + 3];
- wl[i4] = m5[j4 + 4] << 24 | m5[j4 + 5] << 16 | m5[j4 + 6] << 8 | m5[j4 + 7];
+ for (i5 = 0; i5 < 16; i5++) {
+ j4 = 8 * i5 + pos;
+ wh[i5] = m6[j4 + 0] << 24 | m6[j4 + 1] << 16 | m6[j4 + 2] << 8 | m6[j4 + 3];
+ wl[i5] = m6[j4 + 4] << 24 | m6[j4 + 5] << 16 | m6[j4 + 6] << 8 | m6[j4 + 7];
}
- for (i4 = 0; i4 < 80; i4++) {
+ for (i5 = 0; i5 < 80; i5++) {
bh0 = ah0;
bh1 = ah1;
bh2 = ah2;
@@ -4702,79 +4690,79 @@ function crypto_hashblocks_hl(hh, hl, m5, n2) {
bl7 = al7;
h5 = ah7;
l3 = al7;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = (ah4 >>> 14 | al4 << 32 - 14) ^ (ah4 >>> 18 | al4 << 32 - 18) ^ (al4 >>> 41 - 32 | ah4 << 32 - (41 - 32));
l3 = (al4 >>> 14 | ah4 << 32 - 14) ^ (al4 >>> 18 | ah4 << 32 - 18) ^ (ah4 >>> 41 - 32 | al4 << 32 - (41 - 32));
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
h5 = ah4 & ah5 ^ ~ah4 & ah6;
l3 = al4 & al5 ^ ~al4 & al6;
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- h5 = K[i4 * 2];
- l3 = K[i4 * 2 + 1];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- h5 = wh[i4 % 16];
- l3 = wl[i4 % 16];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- th = c4 & 65535 | d5 << 16;
- tl = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ h5 = K[i5 * 2];
+ l3 = K[i5 * 2 + 1];
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ h5 = wh[i5 % 16];
+ l3 = wl[i5 % 16];
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ th = c5 & 65535 | d6 << 16;
+ tl = a6 & 65535 | b5 << 16;
h5 = th;
l3 = tl;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = (ah0 >>> 28 | al0 << 32 - 28) ^ (al0 >>> 34 - 32 | ah0 << 32 - (34 - 32)) ^ (al0 >>> 39 - 32 | ah0 << 32 - (39 - 32));
l3 = (al0 >>> 28 | ah0 << 32 - 28) ^ (ah0 >>> 34 - 32 | al0 << 32 - (34 - 32)) ^ (ah0 >>> 39 - 32 | al0 << 32 - (39 - 32));
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
h5 = ah0 & ah1 ^ ah0 & ah2 ^ ah1 & ah2;
l3 = al0 & al1 ^ al0 & al2 ^ al1 & al2;
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- bh7 = c4 & 65535 | d5 << 16;
- bl7 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ bh7 = c5 & 65535 | d6 << 16;
+ bl7 = a6 & 65535 | b5 << 16;
h5 = bh3;
l3 = bl3;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = th;
l3 = tl;
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- bh3 = c4 & 65535 | d5 << 16;
- bl3 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ bh3 = c5 & 65535 | d6 << 16;
+ bl3 = a6 & 65535 | b5 << 16;
ah1 = bh0;
ah2 = bh1;
ah3 = bh2;
@@ -4791,190 +4779,190 @@ function crypto_hashblocks_hl(hh, hl, m5, n2) {
al6 = bl5;
al7 = bl6;
al0 = bl7;
- if (i4 % 16 === 15) {
+ if (i5 % 16 === 15) {
for (j4 = 0; j4 < 16; j4++) {
h5 = wh[j4];
l3 = wl[j4];
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = wh[(j4 + 9) % 16];
l3 = wl[(j4 + 9) % 16];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
th = wh[(j4 + 1) % 16];
tl = wl[(j4 + 1) % 16];
h5 = (th >>> 1 | tl << 32 - 1) ^ (th >>> 8 | tl << 32 - 8) ^ th >>> 7;
l3 = (tl >>> 1 | th << 32 - 1) ^ (tl >>> 8 | th << 32 - 8) ^ (tl >>> 7 | th << 32 - 7);
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
th = wh[(j4 + 14) % 16];
tl = wl[(j4 + 14) % 16];
h5 = (th >>> 19 | tl << 32 - 19) ^ (tl >>> 61 - 32 | th << 32 - (61 - 32)) ^ th >>> 6;
l3 = (tl >>> 19 | th << 32 - 19) ^ (th >>> 61 - 32 | tl << 32 - (61 - 32)) ^ (tl >>> 6 | th << 32 - 6);
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- wh[j4] = c4 & 65535 | d5 << 16;
- wl[j4] = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ wh[j4] = c5 & 65535 | d6 << 16;
+ wl[j4] = a6 & 65535 | b5 << 16;
}
}
}
h5 = ah0;
l3 = al0;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[0];
l3 = hl[0];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[0] = ah0 = c4 & 65535 | d5 << 16;
- hl[0] = al0 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[0] = ah0 = c5 & 65535 | d6 << 16;
+ hl[0] = al0 = a6 & 65535 | b5 << 16;
h5 = ah1;
l3 = al1;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[1];
l3 = hl[1];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[1] = ah1 = c4 & 65535 | d5 << 16;
- hl[1] = al1 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[1] = ah1 = c5 & 65535 | d6 << 16;
+ hl[1] = al1 = a6 & 65535 | b5 << 16;
h5 = ah2;
l3 = al2;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[2];
l3 = hl[2];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[2] = ah2 = c4 & 65535 | d5 << 16;
- hl[2] = al2 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[2] = ah2 = c5 & 65535 | d6 << 16;
+ hl[2] = al2 = a6 & 65535 | b5 << 16;
h5 = ah3;
l3 = al3;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[3];
l3 = hl[3];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[3] = ah3 = c4 & 65535 | d5 << 16;
- hl[3] = al3 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[3] = ah3 = c5 & 65535 | d6 << 16;
+ hl[3] = al3 = a6 & 65535 | b5 << 16;
h5 = ah4;
l3 = al4;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[4];
l3 = hl[4];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[4] = ah4 = c4 & 65535 | d5 << 16;
- hl[4] = al4 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[4] = ah4 = c5 & 65535 | d6 << 16;
+ hl[4] = al4 = a6 & 65535 | b5 << 16;
h5 = ah5;
l3 = al5;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[5];
l3 = hl[5];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[5] = ah5 = c4 & 65535 | d5 << 16;
- hl[5] = al5 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[5] = ah5 = c5 & 65535 | d6 << 16;
+ hl[5] = al5 = a6 & 65535 | b5 << 16;
h5 = ah6;
l3 = al6;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[6];
l3 = hl[6];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[6] = ah6 = c4 & 65535 | d5 << 16;
- hl[6] = al6 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[6] = ah6 = c5 & 65535 | d6 << 16;
+ hl[6] = al6 = a6 & 65535 | b5 << 16;
h5 = ah7;
l3 = al7;
- a5 = l3 & 65535;
- b4 = l3 >>> 16;
- c4 = h5 & 65535;
- d5 = h5 >>> 16;
+ a6 = l3 & 65535;
+ b5 = l3 >>> 16;
+ c5 = h5 & 65535;
+ d6 = h5 >>> 16;
h5 = hh[7];
l3 = hl[7];
- a5 += l3 & 65535;
- b4 += l3 >>> 16;
- c4 += h5 & 65535;
- d5 += h5 >>> 16;
- b4 += a5 >>> 16;
- c4 += b4 >>> 16;
- d5 += c4 >>> 16;
- hh[7] = ah7 = c4 & 65535 | d5 << 16;
- hl[7] = al7 = a5 & 65535 | b4 << 16;
+ a6 += l3 & 65535;
+ b5 += l3 >>> 16;
+ c5 += h5 & 65535;
+ d6 += h5 >>> 16;
+ b5 += a6 >>> 16;
+ c5 += b5 >>> 16;
+ d6 += c5 >>> 16;
+ hh[7] = ah7 = c5 & 65535 | d6 << 16;
+ hl[7] = al7 = a6 & 65535 | b5 << 16;
pos += 128;
n2 -= 128;
}
return n2;
}
-function crypto_hash(out, m5, n2) {
+function crypto_hash(out, m6, n2) {
const hh = new Int32Array(8);
const hl = new Int32Array(8);
- const x6 = new Uint8Array(256);
- const b4 = n2;
+ const x7 = new Uint8Array(256);
+ const b5 = n2;
hh[0] = 1779033703;
hh[1] = 3144134277;
hh[2] = 1013904242;
@@ -4991,17 +4979,17 @@ function crypto_hash(out, m5, n2) {
hl[5] = 725511199;
hl[6] = 4215389547;
hl[7] = 327033209;
- crypto_hashblocks_hl(hh, hl, m5, n2);
+ crypto_hashblocks_hl(hh, hl, m6, n2);
n2 %= 128;
- for (let i4 = 0; i4 < n2; i4++)
- x6[i4] = m5[b4 - n2 + i4];
- x6[n2] = 128;
+ for (let i5 = 0; i5 < n2; i5++)
+ x7[i5] = m6[b5 - n2 + i5];
+ x7[n2] = 128;
n2 = 256 - 128 * (n2 < 112 ? 1 : 0);
- x6[n2 - 9] = 0;
- ts64(x6, n2 - 8, b4 / 536870912 | 0, b4 << 3);
- crypto_hashblocks_hl(hh, hl, x6, n2);
- for (let i4 = 0; i4 < 8; i4++)
- ts64(out, 8 * i4, hh[i4], hl[i4]);
+ x7[n2 - 9] = 0;
+ ts64(x7, n2 - 8, b5 / 536870912 | 0, b5 << 3);
+ crypto_hashblocks_hl(hh, hl, x7, n2);
+ for (let i5 = 0; i5 < 8; i5++)
+ ts64(out, 8 * i5, hh[i5], hl[i5]);
return 0;
}
var HashState = class {
@@ -5030,21 +5018,21 @@ var HashState = class {
}
update(data) {
this.total += data.length;
- let i4 = 0;
- while (i4 < data.length) {
+ let i5 = 0;
+ while (i5 < data.length) {
const r3 = 128 - this.p;
- if (r3 > data.length - i4) {
- for (let j4 = 0; i4 + j4 < data.length; j4++) {
- this.next[this.p + j4] = data[i4 + j4];
+ if (r3 > data.length - i5) {
+ for (let j4 = 0; i5 + j4 < data.length; j4++) {
+ this.next[this.p + j4] = data[i5 + j4];
}
- this.p += data.length - i4;
+ this.p += data.length - i5;
break;
} else {
for (let j4 = 0; this.p + j4 < 128; j4++) {
- this.next[this.p + j4] = data[i4 + j4];
+ this.next[this.p + j4] = data[i5 + j4];
}
crypto_hashblocks_hl(this.hh, this.hl, this.next, 128);
- i4 += 128 - this.p;
+ i5 += 128 - this.p;
this.p = 0;
}
}
@@ -5053,45 +5041,45 @@ var HashState = class {
finish() {
const out = new Uint8Array(64);
let n2 = this.p;
- const x6 = new Uint8Array(256);
- const b4 = this.total;
- for (let i4 = 0; i4 < n2; i4++)
- x6[i4] = this.next[i4];
- x6[n2] = 128;
+ const x7 = new Uint8Array(256);
+ const b5 = this.total;
+ for (let i5 = 0; i5 < n2; i5++)
+ x7[i5] = this.next[i5];
+ x7[n2] = 128;
n2 = 256 - 128 * (n2 < 112 ? 1 : 0);
- x6[n2 - 9] = 0;
- ts64(x6, n2 - 8, b4 / 536870912 | 0, b4 << 3);
- crypto_hashblocks_hl(this.hh, this.hl, x6, n2);
- for (let i4 = 0; i4 < 8; i4++)
- ts64(out, 8 * i4, this.hh[i4], this.hl[i4]);
+ x7[n2 - 9] = 0;
+ ts64(x7, n2 - 8, b5 / 536870912 | 0, b5 << 3);
+ crypto_hashblocks_hl(this.hh, this.hl, x7, n2);
+ for (let i5 = 0; i5 < 8; i5++)
+ ts64(out, 8 * i5, this.hh[i5], this.hl[i5]);
return out;
}
};
-function add(p4, q5) {
- const a5 = gf(), b4 = gf(), c4 = gf(), d5 = gf(), e4 = gf(), f3 = gf(), g4 = gf(), h5 = gf(), t4 = gf();
- Z(a5, p4[1], p4[0]);
- Z(t4, q5[1], q5[0]);
- M(a5, a5, t4);
- A(b4, p4[0], p4[1]);
- A(t4, q5[0], q5[1]);
- M(b4, b4, t4);
- M(c4, p4[3], q5[3]);
- M(c4, c4, D2);
- M(d5, p4[2], q5[2]);
- A(d5, d5, d5);
- Z(e4, b4, a5);
- Z(f3, d5, c4);
- A(g4, d5, c4);
- A(h5, b4, a5);
- M(p4[0], e4, f3);
+function add(p4, q6) {
+ const a6 = gf(), b5 = gf(), c5 = gf(), d6 = gf(), e5 = gf(), f3 = gf(), g4 = gf(), h5 = gf(), t5 = gf();
+ Z(a6, p4[1], p4[0]);
+ Z(t5, q6[1], q6[0]);
+ M(a6, a6, t5);
+ A(b5, p4[0], p4[1]);
+ A(t5, q6[0], q6[1]);
+ M(b5, b5, t5);
+ M(c5, p4[3], q6[3]);
+ M(c5, c5, D2);
+ M(d6, p4[2], q6[2]);
+ A(d6, d6, d6);
+ Z(e5, b5, a6);
+ Z(f3, d6, c5);
+ A(g4, d6, c5);
+ A(h5, b5, a6);
+ M(p4[0], e5, f3);
M(p4[1], h5, g4);
M(p4[2], g4, f3);
- M(p4[3], e4, h5);
+ M(p4[3], e5, h5);
}
-function cswap(p4, q5, b4) {
- let i4;
- for (i4 = 0; i4 < 4; i4++) {
- sel25519(p4[i4], q5[i4], b4);
+function cswap(p4, q6, b5) {
+ let i5;
+ for (i5 = 0; i5 < 4; i5++) {
+ sel25519(p4[i5], q6[i5], b5);
}
}
function pack(r3, p4) {
@@ -5102,41 +5090,41 @@ function pack(r3, p4) {
pack25519(r3, ty);
r3[31] ^= par25519(tx) << 7;
}
-function scalarmult(p4, q5, s5) {
- let b4, i4;
+function scalarmult(p4, q6, s6) {
+ let b5, i5;
set25519(p4[0], gf0);
set25519(p4[1], gf1);
set25519(p4[2], gf1);
set25519(p4[3], gf0);
- for (i4 = 255; i4 >= 0; --i4) {
- b4 = s5[i4 / 8 | 0] >> (i4 & 7) & 1;
- cswap(p4, q5, b4);
- add(q5, p4);
+ for (i5 = 255; i5 >= 0; --i5) {
+ b5 = s6[i5 / 8 | 0] >> (i5 & 7) & 1;
+ cswap(p4, q6, b5);
+ add(q6, p4);
add(p4, p4);
- cswap(p4, q5, b4);
+ cswap(p4, q6, b5);
}
}
-function scalarbase(p4, s5) {
- const q5 = [gf(), gf(), gf(), gf()];
- set25519(q5[0], X);
- set25519(q5[1], Y);
- set25519(q5[2], gf1);
- M(q5[3], X, Y);
- scalarmult(p4, q5, s5);
+function scalarbase(p4, s6) {
+ const q6 = [gf(), gf(), gf(), gf()];
+ set25519(q6[0], X);
+ set25519(q6[1], Y);
+ set25519(q6[2], gf1);
+ M(q6[3], X, Y);
+ scalarmult(p4, q6, s6);
}
function crypto_sign_keypair(pk, sk, seeded) {
- const d5 = new Uint8Array(64);
+ const d6 = new Uint8Array(64);
const p4 = [gf(), gf(), gf(), gf()];
if (!seeded)
randombytes(sk, 32);
- crypto_hash(d5, sk, 32);
- d5[0] &= 248;
- d5[31] &= 127;
- d5[31] |= 64;
- scalarbase(p4, d5);
+ crypto_hash(d6, sk, 32);
+ d6[0] &= 248;
+ d6[31] &= 127;
+ d6[31] |= 64;
+ scalarbase(p4, d6);
pack(pk, p4);
- for (let i4 = 0; i4 < 32; i4++)
- sk[i4 + 32] = pk[i4];
+ for (let i5 = 0; i5 < 32; i5++)
+ sk[i5 + 32] = pk[i5];
return 0;
}
var L = new Float64Array([
@@ -5173,86 +5161,86 @@ var L = new Float64Array([
0,
16
]);
-function modL(r3, x6) {
- let carry, i4, j4, k5;
- for (i4 = 63; i4 >= 32; --i4) {
+function modL(r3, x7) {
+ let carry, i5, j4, k6;
+ for (i5 = 63; i5 >= 32; --i5) {
carry = 0;
- for (j4 = i4 - 32, k5 = i4 - 12; j4 < k5; ++j4) {
- x6[j4] += carry - 16 * x6[i4] * L[j4 - (i4 - 32)];
- carry = Math.floor((x6[j4] + 128) / 256);
- x6[j4] -= carry * 256;
+ for (j4 = i5 - 32, k6 = i5 - 12; j4 < k6; ++j4) {
+ x7[j4] += carry - 16 * x7[i5] * L[j4 - (i5 - 32)];
+ carry = Math.floor((x7[j4] + 128) / 256);
+ x7[j4] -= carry * 256;
}
- x6[j4] += carry;
- x6[i4] = 0;
+ x7[j4] += carry;
+ x7[i5] = 0;
}
carry = 0;
for (j4 = 0; j4 < 32; j4++) {
- x6[j4] += carry - (x6[31] >> 4) * L[j4];
- carry = x6[j4] >> 8;
- x6[j4] &= 255;
+ x7[j4] += carry - (x7[31] >> 4) * L[j4];
+ carry = x7[j4] >> 8;
+ x7[j4] &= 255;
}
for (j4 = 0; j4 < 32; j4++)
- x6[j4] -= carry * L[j4];
- for (i4 = 0; i4 < 32; i4++) {
- x6[i4 + 1] += x6[i4] >> 8;
- r3[i4] = x6[i4] & 255;
+ x7[j4] -= carry * L[j4];
+ for (i5 = 0; i5 < 32; i5++) {
+ x7[i5 + 1] += x7[i5] >> 8;
+ r3[i5] = x7[i5] & 255;
}
}
function reduce(r3) {
- const x6 = new Float64Array(64);
- for (let i4 = 0; i4 < 64; i4++)
- x6[i4] = r3[i4];
- for (let i4 = 0; i4 < 64; i4++)
- r3[i4] = 0;
- modL(r3, x6);
-}
-function crypto_sign(sm, m5, n2, sk) {
- const d5 = new Uint8Array(64), h5 = new Uint8Array(64), r3 = new Uint8Array(64);
- let i4, j4;
- const x6 = new Float64Array(64);
+ const x7 = new Float64Array(64);
+ for (let i5 = 0; i5 < 64; i5++)
+ x7[i5] = r3[i5];
+ for (let i5 = 0; i5 < 64; i5++)
+ r3[i5] = 0;
+ modL(r3, x7);
+}
+function crypto_sign(sm, m6, n2, sk) {
+ const d6 = new Uint8Array(64), h5 = new Uint8Array(64), r3 = new Uint8Array(64);
+ let i5, j4;
+ const x7 = new Float64Array(64);
const p4 = [gf(), gf(), gf(), gf()];
- crypto_hash(d5, sk, 32);
- d5[0] &= 248;
- d5[31] &= 127;
- d5[31] |= 64;
+ crypto_hash(d6, sk, 32);
+ d6[0] &= 248;
+ d6[31] &= 127;
+ d6[31] |= 64;
const smlen = n2 + 64;
- for (i4 = 0; i4 < n2; i4++)
- sm[64 + i4] = m5[i4];
- for (i4 = 0; i4 < 32; i4++)
- sm[32 + i4] = d5[32 + i4];
+ for (i5 = 0; i5 < n2; i5++)
+ sm[64 + i5] = m6[i5];
+ for (i5 = 0; i5 < 32; i5++)
+ sm[32 + i5] = d6[32 + i5];
crypto_hash(r3, sm.subarray(32), n2 + 32);
reduce(r3);
scalarbase(p4, r3);
pack(sm, p4);
- for (i4 = 32; i4 < 64; i4++)
- sm[i4] = sk[i4];
+ for (i5 = 32; i5 < 64; i5++)
+ sm[i5] = sk[i5];
crypto_hash(h5, sm, n2 + 64);
reduce(h5);
- for (i4 = 0; i4 < 64; i4++)
- x6[i4] = 0;
- for (i4 = 0; i4 < 32; i4++)
- x6[i4] = r3[i4];
- for (i4 = 0; i4 < 32; i4++) {
+ for (i5 = 0; i5 < 64; i5++)
+ x7[i5] = 0;
+ for (i5 = 0; i5 < 32; i5++)
+ x7[i5] = r3[i5];
+ for (i5 = 0; i5 < 32; i5++) {
for (j4 = 0; j4 < 32; j4++) {
- x6[i4 + j4] += h5[i4] * d5[j4];
+ x7[i5 + j4] += h5[i5] * d6[j4];
}
}
- modL(sm.subarray(32), x6);
+ modL(sm.subarray(32), x7);
return smlen;
}
function unpackpos(r3, p4) {
- const q5 = [gf(), gf(), gf(), gf()];
- if (unpackneg(q5, p4))
+ const q6 = [gf(), gf(), gf(), gf()];
+ if (unpackneg(q6, p4))
return -1;
const scalar0 = new Uint8Array(32);
const scalar1 = new Uint8Array(32);
scalar1[0] = 1;
const scalarNeg1 = crypto_core_ed25519_scalar_sub(scalar0, scalar1);
- scalarmult(r3, q5, scalarNeg1);
+ scalarmult(r3, q6, scalarNeg1);
return 0;
}
function unpackneg(r3, p4) {
- const t4 = gf();
+ const t5 = gf();
const chk = gf();
const num = gf();
const den = gf();
@@ -5268,13 +5256,13 @@ function unpackneg(r3, p4) {
S(den2, den);
S(den4, den2);
M(den6, den4, den2);
- M(t4, den6, num);
- M(t4, t4, den);
- pow2523(t4, t4);
- M(t4, t4, num);
- M(t4, t4, den);
- M(t4, t4, den);
- M(r3[0], t4, den);
+ M(t5, den6, num);
+ M(t5, t5, den);
+ pow2523(t5, t5);
+ M(t5, t5, num);
+ M(t5, t5, den);
+ M(t5, t5, den);
+ M(r3[0], t5, den);
S(chk, r3[0]);
M(chk, chk, den);
if (neq25519(chk, num))
@@ -5288,50 +5276,50 @@ function unpackneg(r3, p4) {
M(r3[3], r3[0], r3[1]);
return 0;
}
-function crypto_scalarmult_ed25519_base_noclamp(s5) {
+function crypto_scalarmult_ed25519_base_noclamp(s6) {
const r3 = new Uint8Array(32);
const p4 = [gf(), gf(), gf(), gf()];
- scalarbase(p4, s5);
+ scalarbase(p4, s6);
pack(r3, p4);
return r3;
}
-function crypto_scalarmult_ed25519_noclamp(s5, q5) {
+function crypto_scalarmult_ed25519_noclamp(s6, q6) {
const r3 = new Uint8Array(32);
const p4 = [gf(), gf(), gf(), gf()];
const ql = [gf(), gf(), gf(), gf()];
- if (unpackpos(ql, q5))
+ if (unpackpos(ql, q6))
throw new Error();
- scalarmult(p4, ql, s5);
+ scalarmult(p4, ql, s6);
pack(r3, p4);
return r3;
}
-function crypto_sign_open(m5, sm, n2, pk) {
- let i4, mlen;
- const t4 = new Uint8Array(32), h5 = new Uint8Array(64);
- const p4 = [gf(), gf(), gf(), gf()], q5 = [gf(), gf(), gf(), gf()];
+function crypto_sign_open(m6, sm, n2, pk) {
+ let i5, mlen;
+ const t5 = new Uint8Array(32), h5 = new Uint8Array(64);
+ const p4 = [gf(), gf(), gf(), gf()], q6 = [gf(), gf(), gf(), gf()];
mlen = -1;
if (n2 < 64)
return -1;
- if (unpackneg(q5, pk))
+ if (unpackneg(q6, pk))
return -1;
- for (i4 = 0; i4 < n2; i4++)
- m5[i4] = sm[i4];
- for (i4 = 0; i4 < 32; i4++)
- m5[i4 + 32] = pk[i4];
- crypto_hash(h5, m5, n2);
+ for (i5 = 0; i5 < n2; i5++)
+ m6[i5] = sm[i5];
+ for (i5 = 0; i5 < 32; i5++)
+ m6[i5 + 32] = pk[i5];
+ crypto_hash(h5, m6, n2);
reduce(h5);
- scalarmult(p4, q5, h5);
- scalarbase(q5, sm.subarray(32));
- add(p4, q5);
- pack(t4, p4);
+ scalarmult(p4, q6, h5);
+ scalarbase(q6, sm.subarray(32));
+ add(p4, q6);
+ pack(t5, p4);
n2 -= 64;
- if (crypto_verify_32(sm, 0, t4, 0)) {
- for (i4 = 0; i4 < n2; i4++)
- m5[i4] = 0;
+ if (crypto_verify_32(sm, 0, t5, 0)) {
+ for (i5 = 0; i5 < n2; i5++)
+ m6[i5] = 0;
return -1;
}
- for (i4 = 0; i4 < n2; i4++)
- m5[i4] = sm[i4 + 64];
+ for (i5 = 0; i5 < n2; i5++)
+ m6[i5] = sm[i5 + 64];
mlen = n2;
return mlen;
}
@@ -5344,22 +5332,22 @@ var crypto_sign_PUBLICKEYBYTES = 32;
var crypto_sign_SECRETKEYBYTES = 64;
var crypto_sign_SEEDBYTES = 32;
var crypto_hash_BYTES = 64;
-function checkLengths(k5, n2) {
- if (k5.length !== crypto_secretbox_KEYBYTES)
+function checkLengths(k6, n2) {
+ if (k6.length !== crypto_secretbox_KEYBYTES)
throw new Error("bad key size");
if (n2.length !== crypto_secretbox_NONCEBYTES)
throw new Error("bad nonce size");
}
function checkArrayTypes(...args) {
- for (let i4 = 0; i4 < args.length; i4++) {
- if (!(args[i4] instanceof Uint8Array))
+ for (let i5 = 0; i5 < args.length; i5++) {
+ if (!(args[i5] instanceof Uint8Array))
throw new TypeError("unexpected type, use Uint8Array");
}
}
function randomBytes(n2) {
- const b4 = new Uint8Array(n2);
- randombytes(b4, n2);
- return b4;
+ const b5 = new Uint8Array(n2);
+ randombytes(b5, n2);
+ return b5;
}
function sign(msg, secretKey) {
checkArrayTypes(msg, secretKey);
@@ -5372,8 +5360,8 @@ function sign(msg, secretKey) {
function sign_detached(msg, secretKey) {
const signedMsg = sign(msg, secretKey);
const sig = new Uint8Array(crypto_sign_BYTES);
- for (let i4 = 0; i4 < sig.length; i4++)
- sig[i4] = signedMsg[i4];
+ for (let i5 = 0; i5 < sig.length; i5++)
+ sig[i5] = signedMsg[i5];
return sig;
}
function crypto_sign_keyPair_fromSeed(seed) {
@@ -5382,8 +5370,8 @@ function crypto_sign_keyPair_fromSeed(seed) {
throw new Error(`bad seed size: ${seed.length}`);
const pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
const sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
- for (let i4 = 0; i4 < 32; i4++)
- sk[i4] = seed[i4];
+ for (let i5 = 0; i5 < 32; i5++)
+ sk[i5] = seed[i5];
crypto_sign_keypair(pk, sk, true);
return { publicKey: pk, secretKey: sk };
}
@@ -5399,42 +5387,42 @@ function setPRNG(fn2) {
function secretbox(msg, nonce, key) {
checkArrayTypes(msg, nonce, key);
checkLengths(key, nonce);
- var m5 = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);
- var c4 = new Uint8Array(m5.length);
- for (var i4 = 0; i4 < msg.length; i4++)
- m5[i4 + crypto_secretbox_ZEROBYTES] = msg[i4];
- crypto_secretbox(c4, m5, m5.length, nonce, key);
- return c4.subarray(crypto_secretbox_BOXZEROBYTES);
+ var m6 = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);
+ var c5 = new Uint8Array(m6.length);
+ for (var i5 = 0; i5 < msg.length; i5++)
+ m6[i5 + crypto_secretbox_ZEROBYTES] = msg[i5];
+ crypto_secretbox(c5, m6, m6.length, nonce, key);
+ return c5.subarray(crypto_secretbox_BOXZEROBYTES);
}
function secretbox_open(box, nonce, key) {
checkArrayTypes(box, nonce, key);
checkLengths(key, nonce);
- var c4 = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);
- var m5 = new Uint8Array(c4.length);
- for (var i4 = 0; i4 < box.length; i4++)
- c4[i4 + crypto_secretbox_BOXZEROBYTES] = box[i4];
- if (c4.length < 32)
+ var c5 = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);
+ var m6 = new Uint8Array(c5.length);
+ for (var i5 = 0; i5 < box.length; i5++)
+ c5[i5 + crypto_secretbox_BOXZEROBYTES] = box[i5];
+ if (c5.length < 32)
return void 0;
- if (crypto_secretbox_open(m5, c4, c4.length, nonce, key) !== 0)
+ if (crypto_secretbox_open(m6, c5, c5.length, nonce, key) !== 0)
return void 0;
- return m5.subarray(crypto_secretbox_ZEROBYTES);
+ return m6.subarray(crypto_secretbox_ZEROBYTES);
}
-function crypto_core_ed25519_scalar_reduce(x6) {
- const len = x6.length;
- const z5 = new Float64Array(64);
- for (let i4 = 0; i4 < len; i4++)
- z5[i4] = x6[i4];
+function crypto_core_ed25519_scalar_reduce(x7) {
+ const len = x7.length;
+ const z6 = new Float64Array(64);
+ for (let i5 = 0; i5 < len; i5++)
+ z6[i5] = x7[i5];
const o3 = new Uint8Array(32);
- modL(o3, z5);
+ modL(o3, z6);
return o3;
}
-function crypto_core_ed25519_scalar_sub(x6, y5) {
- const z5 = new Float64Array(64);
- for (let i4 = 0; i4 < 32; i4++) {
- z5[i4] = x6[i4] - y5[i4];
+function crypto_core_ed25519_scalar_sub(x7, y6) {
+ const z6 = new Float64Array(64);
+ for (let i5 = 0; i5 < 32; i5++) {
+ z6[i5] = x7[i5] - y6[i5];
}
const o3 = new Uint8Array(32);
- modL(o3, z5);
+ modL(o3, z6);
return o3;
}
function crypto_edx25519_private_key_create() {
@@ -5452,36 +5440,36 @@ function crypto_edx25519_private_key_create_from_seed(seed) {
function crypto_edx25519_get_public(priv) {
return crypto_scalarmult_ed25519_base_noclamp(priv.subarray(0, 32));
}
-function crypto_edx25519_sign_detached(m5, skx, pkx) {
- const n2 = m5.length;
+function crypto_edx25519_sign_detached(m6, skx, pkx) {
+ const n2 = m6.length;
const h5 = new Uint8Array(64);
const r3 = new Uint8Array(64);
- let i4, j4;
- const x6 = new Float64Array(64);
+ let i5, j4;
+ const x7 = new Float64Array(64);
const p4 = [gf(), gf(), gf(), gf()];
const sm = new Uint8Array(n2 + 64);
- for (i4 = 0; i4 < n2; i4++)
- sm[64 + i4] = m5[i4];
- for (i4 = 0; i4 < 32; i4++)
- sm[32 + i4] = skx[32 + i4];
+ for (i5 = 0; i5 < n2; i5++)
+ sm[64 + i5] = m6[i5];
+ for (i5 = 0; i5 < 32; i5++)
+ sm[32 + i5] = skx[32 + i5];
crypto_hash(r3, sm.subarray(32), n2 + 32);
reduce(r3);
scalarbase(p4, r3);
pack(sm, p4);
- for (i4 = 32; i4 < 64; i4++)
- sm[i4] = pkx[i4 - 32];
+ for (i5 = 32; i5 < 64; i5++)
+ sm[i5] = pkx[i5 - 32];
crypto_hash(h5, sm, n2 + 64);
reduce(h5);
- for (i4 = 0; i4 < 64; i4++)
- x6[i4] = 0;
- for (i4 = 0; i4 < 32; i4++)
- x6[i4] = r3[i4];
- for (i4 = 0; i4 < 32; i4++) {
+ for (i5 = 0; i5 < 64; i5++)
+ x7[i5] = 0;
+ for (i5 = 0; i5 < 32; i5++)
+ x7[i5] = r3[i5];
+ for (i5 = 0; i5 < 32; i5++) {
for (j4 = 0; j4 < 32; j4++) {
- x6[i4 + j4] += h5[i4] * skx[j4];
+ x7[i5 + j4] += h5[i5] * skx[j4];
}
}
- modL(sm.subarray(32), x6);
+ modL(sm.subarray(32), x7);
return sm.subarray(0, 64);
}
function crypto_edx25519_sign_detached_verify(msg, sig, publicKey) {
@@ -5491,29 +5479,29 @@ function crypto_edx25519_sign_detached_verify(msg, sig, publicKey) {
if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
throw new Error("bad public key size");
const sm = new Uint8Array(crypto_sign_BYTES + msg.length);
- const m5 = new Uint8Array(crypto_sign_BYTES + msg.length);
- let i4;
- for (i4 = 0; i4 < crypto_sign_BYTES; i4++)
- sm[i4] = sig[i4];
- for (i4 = 0; i4 < msg.length; i4++)
- sm[i4 + crypto_sign_BYTES] = msg[i4];
- return crypto_sign_open(m5, sm, sm.length, publicKey) >= 0;
+ const m6 = new Uint8Array(crypto_sign_BYTES + msg.length);
+ let i5;
+ for (i5 = 0; i5 < crypto_sign_BYTES; i5++)
+ sm[i5] = sig[i5];
+ for (i5 = 0; i5 < msg.length; i5++)
+ sm[i5 + crypto_sign_BYTES] = msg[i5];
+ return crypto_sign_open(m6, sm, sm.length, publicKey) >= 0;
}
// ../taler-util/lib/prng-browser.js
function loadBrowserPrng() {
const cr = typeof self !== "undefined" ? self.crypto || self.msCrypto : null;
const QUOTA = 65536;
- setPRNG(function(x6, n2) {
- let i4;
+ setPRNG(function(x7, n2) {
+ let i5;
const v3 = new Uint8Array(n2);
- for (i4 = 0; i4 < n2; i4 += QUOTA) {
- cr.getRandomValues(v3.subarray(i4, i4 + Math.min(n2 - i4, QUOTA)));
+ for (i5 = 0; i5 < n2; i5 += QUOTA) {
+ cr.getRandomValues(v3.subarray(i5, i5 + Math.min(n2 - i5, QUOTA)));
}
- for (i4 = 0; i4 < n2; i4++)
- x6[i4] = v3[i4];
- for (i4 = 0; i4 < v3.length; i4++)
- v3[i4] = 0;
+ for (i5 = 0; i5 < n2; i5++)
+ x7[i5] = v3[i5];
+ for (i5 = 0; i5 < v3.length; i5++)
+ v3[i5] = 0;
});
}
@@ -5600,6 +5588,7 @@ var TalerErrorCode;
TalerErrorCode2[TalerErrorCode2["EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED"] = 1034] = "EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED";
TalerErrorCode2[TalerErrorCode2["EXCHANGE_GENERIC_AML_PENDING"] = 1035] = "EXCHANGE_GENERIC_AML_PENDING";
TalerErrorCode2[TalerErrorCode2["EXCHANGE_GENERIC_AML_FROZEN"] = 1036] = "EXCHANGE_GENERIC_AML_FROZEN";
+ TalerErrorCode2[TalerErrorCode2["EXCHANGE_GENERIC_KYC_CONVERTER_FAILED"] = 1037] = "EXCHANGE_GENERIC_KYC_CONVERTER_FAILED";
TalerErrorCode2[TalerErrorCode2["EXCHANGE_DEPOSITS_GET_NOT_FOUND"] = 1100] = "EXCHANGE_DEPOSITS_GET_NOT_FOUND";
TalerErrorCode2[TalerErrorCode2["EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE"] = 1101] = "EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE";
TalerErrorCode2[TalerErrorCode2["EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB"] = 1102] = "EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB";
@@ -5941,6 +5930,17 @@ var TalerErrorCode;
TalerErrorCode2[TalerErrorCode2["BANK_BAD_CONVERSION"] = 5128] = "BANK_BAD_CONVERSION";
TalerErrorCode2[TalerErrorCode2["BANK_MISSING_TAN_INFO"] = 5129] = "BANK_MISSING_TAN_INFO";
TalerErrorCode2[TalerErrorCode2["BANK_CONFIRM_INCOMPLETE"] = 5130] = "BANK_CONFIRM_INCOMPLETE";
+ TalerErrorCode2[TalerErrorCode2["BANK_TAN_RATE_LIMITED"] = 5131] = "BANK_TAN_RATE_LIMITED";
+ TalerErrorCode2[TalerErrorCode2["BANK_TAN_CHANNEL_NOT_SUPPORTED"] = 5132] = "BANK_TAN_CHANNEL_NOT_SUPPORTED";
+ TalerErrorCode2[TalerErrorCode2["BANK_TAN_CHANNEL_SCRIPT_FAILED"] = 5133] = "BANK_TAN_CHANNEL_SCRIPT_FAILED";
+ TalerErrorCode2[TalerErrorCode2["BANK_TAN_CHALLENGE_FAILED"] = 5134] = "BANK_TAN_CHALLENGE_FAILED";
+ TalerErrorCode2[TalerErrorCode2["BANK_NON_ADMIN_PATCH_LEGAL_NAME"] = 5135] = "BANK_NON_ADMIN_PATCH_LEGAL_NAME";
+ TalerErrorCode2[TalerErrorCode2["BANK_NON_ADMIN_PATCH_DEBT_LIMIT"] = 5136] = "BANK_NON_ADMIN_PATCH_DEBT_LIMIT";
+ TalerErrorCode2[TalerErrorCode2["BANK_NON_ADMIN_PATCH_MISSING_OLD_PASSWORD"] = 5137] = "BANK_NON_ADMIN_PATCH_MISSING_OLD_PASSWORD";
+ TalerErrorCode2[TalerErrorCode2["BANK_PATCH_BAD_OLD_PASSWORD"] = 5138] = "BANK_PATCH_BAD_OLD_PASSWORD";
+ TalerErrorCode2[TalerErrorCode2["BANK_PATCH_ADMIN_EXCHANGE"] = 5139] = "BANK_PATCH_ADMIN_EXCHANGE";
+ TalerErrorCode2[TalerErrorCode2["BANK_NON_ADMIN_PATCH_CASHOUT"] = 5140] = "BANK_NON_ADMIN_PATCH_CASHOUT";
+ TalerErrorCode2[TalerErrorCode2["BANK_NON_ADMIN_PATCH_CONTACT"] = 5141] = "BANK_NON_ADMIN_PATCH_CONTACT";
TalerErrorCode2[TalerErrorCode2["SYNC_ACCOUNT_UNKNOWN"] = 6100] = "SYNC_ACCOUNT_UNKNOWN";
TalerErrorCode2[TalerErrorCode2["SYNC_BAD_IF_NONE_MATCH"] = 6101] = "SYNC_BAD_IF_NONE_MATCH";
TalerErrorCode2[TalerErrorCode2["SYNC_BAD_IF_MATCH"] = 6102] = "SYNC_BAD_IF_MATCH";
@@ -6073,587 +6073,6 @@ var TalerErrorCode;
TalerErrorCode2[TalerErrorCode2["END"] = 9999] = "END";
})(TalerErrorCode || (TalerErrorCode = {}));
-// ../taler-util/lib/codec.js
-var DecodingError = class extends Error {
- constructor(message) {
- super(message);
- Object.setPrototypeOf(this, DecodingError.prototype);
- this.name = "DecodingError";
- }
-};
-function renderContext(c4) {
- const p4 = c4 == null ? void 0 : c4.path;
- if (p4) {
- return p4.join(".");
- } else {
- return "(unknown)";
- }
-}
-function joinContext(c4, part) {
- var _a;
- const path = (_a = c4 == null ? void 0 : c4.path) != null ? _a : [];
- return {
- path: path.concat([part])
- };
-}
-var ObjectCodecBuilder = class {
- constructor() {
- this.propList = [];
- }
- /**
- * Define a property for the object.
- */
- property(x6, codec) {
- if (!codec) {
- throw Error("inner codec must be defined");
- }
- this.propList.push({ name: x6, codec });
- return this;
- }
- /**
- * Return the built codec.
- *
- * @param objectDisplayName name of the object that this codec operates on,
- * used in error messages.
- */
- build(objectDisplayName) {
- const propList = this.propList;
- return {
- decode(x6, c4) {
- if (!c4) {
- c4 = {
- path: [`(${objectDisplayName})`]
- };
- }
- if (typeof x6 !== "object") {
- throw new DecodingError(`expected object for ${objectDisplayName} at ${renderContext(c4)} but got ${typeof x6}`);
- }
- const obj = {};
- for (const prop of propList) {
- const propRawVal = x6[prop.name];
- const propVal = prop.codec.decode(propRawVal, joinContext(c4, prop.name));
- obj[prop.name] = propVal;
- }
- return obj;
- }
- };
- }
-};
-function buildCodecForObject() {
- return new ObjectCodecBuilder();
-}
-function codecForMap(innerCodec) {
- if (!innerCodec) {
- throw Error("inner codec must be defined");
- }
- return {
- decode(x6, c4) {
- const map2 = {};
- if (typeof x6 !== "object") {
- throw new DecodingError(`expected object at ${renderContext(c4)}`);
- }
- for (const i4 in x6) {
- map2[i4] = innerCodec.decode(x6[i4], joinContext(c4, `[${i4}]`));
- }
- return map2;
- }
- };
-}
-function codecForList(innerCodec) {
- if (!innerCodec) {
- throw Error("inner codec must be defined");
- }
- return {
- decode(x6, c4) {
- const arr = [];
- if (!Array.isArray(x6)) {
- throw new DecodingError(`expected array at ${renderContext(c4)}`);
- }
- for (const i4 in x6) {
- arr.push(innerCodec.decode(x6[i4], joinContext(c4, `[${i4}]`)));
- }
- return arr;
- }
- };
-}
-function codecForNumber() {
- return {
- decode(x6, c4) {
- if (typeof x6 === "number") {
- return x6;
- }
- throw new DecodingError(`expected number at ${renderContext(c4)} but got ${typeof x6}`);
- }
- };
-}
-function codecForBoolean() {
- return {
- decode(x6, c4) {
- if (typeof x6 === "boolean") {
- return x6;
- }
- throw new DecodingError(`expected boolean at ${renderContext(c4)} but got ${typeof x6}`);
- }
- };
-}
-function codecForString() {
- return {
- decode(x6, c4) {
- if (typeof x6 === "string") {
- return x6;
- }
- throw new DecodingError(`expected string at ${renderContext(c4)} but got ${typeof x6}`);
- }
- };
-}
-function codecForAny() {
- return {
- decode(x6, c4) {
- return x6;
- }
- };
-}
-function codecForConstString(s5) {
- return {
- decode(x6, c4) {
- if (x6 === s5) {
- return x6;
- }
- if (typeof x6 !== "string") {
- throw new DecodingError(`expected string constant "${s5}" at ${renderContext(c4)} but got ${typeof x6}`);
- }
- throw new DecodingError(`expected string constant "${s5}" at ${renderContext(c4)} but got string value "${x6}"`);
- }
- };
-}
-function codecOptional(innerCodec) {
- return {
- decode(x6, c4) {
- if (x6 === void 0 || x6 === null) {
- return void 0;
- }
- return innerCodec.decode(x6, c4);
- }
- };
-}
-function codecForEither(...alts) {
- return {
- decode(x6, c4) {
- for (const alt of alts) {
- try {
- return alt.decode(x6, c4);
- } catch (e4) {
- continue;
- }
- }
- throw new DecodingError(`No alternative matched at at ${renderContext(c4)}`);
- }
- };
-}
-var x = codecForEither(codecForString(), codecForNumber());
-
-// ../taler-util/lib/amounts.js
-var amountFractionalBase = 1e8;
-var amountFractionalLength = 8;
-var amountMaxValue = __pow(2, 52);
-function codecForAmountString() {
- return {
- decode(x6, c4) {
- if (typeof x6 !== "string") {
- throw new DecodingError(`expected string at ${renderContext(c4)} but got ${typeof x6}`);
- }
- if (Amounts.parse(x6) === void 0) {
- throw new DecodingError(`invalid amount at ${renderContext(c4)} got "${x6}"`);
- }
- return x6;
- }
- };
-}
-var Amounts = class {
- constructor() {
- throw Error("not instantiable");
- }
- static currencyOf(amount) {
- const amt = Amounts.parseOrThrow(amount);
- return amt.currency;
- }
- static zeroOfAmount(amount) {
- const amt = Amounts.parseOrThrow(amount);
- return {
- currency: amt.currency,
- fraction: 0,
- value: 0
- };
- }
- /**
- * Get an amount that represents zero units of a currency.
- */
- static zeroOfCurrency(currency) {
- return {
- currency,
- fraction: 0,
- value: 0
- };
- }
- static jsonifyAmount(amt) {
- if (typeof amt === "string") {
- return Amounts.parseOrThrow(amt);
- }
- return amt;
- }
- static divmod(a1, a22) {
- const am1 = Amounts.jsonifyAmount(a1);
- const am2 = Amounts.jsonifyAmount(a22);
- if (am1.currency != am2.currency) {
- throw Error(`incompatible currency (${am1.currency} vs${am2.currency})`);
- }
- const x1 = BigInt(am1.value) * BigInt(amountFractionalBase) + BigInt(am1.fraction);
- const x22 = BigInt(am2.value) * BigInt(amountFractionalBase) + BigInt(am2.fraction);
- const quotient = x1 / x22;
- const remainderScaled = x1 % x22;
- return {
- quotient: Number(quotient),
- remainder: {
- currency: am1.currency,
- value: Number(remainderScaled / BigInt(amountFractionalBase)),
- fraction: Number(remainderScaled % BigInt(amountFractionalBase))
- }
- };
- }
- static sum(amounts) {
- if (amounts.length <= 0) {
- throw Error("can't sum zero amounts");
- }
- const jsonAmounts = amounts.map((x6) => Amounts.jsonifyAmount(x6));
- return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));
- }
- static sumOrZero(currency, amounts) {
- if (amounts.length <= 0) {
- return {
- amount: Amounts.zeroOfCurrency(currency),
- saturated: false
- };
- }
- const jsonAmounts = amounts.map((x6) => Amounts.jsonifyAmount(x6));
- return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));
- }
- /**
- * Add two amounts. Return the result and whether
- * the addition overflowed. The overflow is always handled
- * by saturating and never by wrapping.
- *
- * Throws when currencies don't match.
- */
- static add(first, ...rest) {
- const firstJ = Amounts.jsonifyAmount(first);
- const currency = firstJ.currency;
- let value = firstJ.value + Math.floor(firstJ.fraction / amountFractionalBase);
- if (value > amountMaxValue) {
- return {
- amount: {
- currency,
- value: amountMaxValue,
- fraction: amountFractionalBase - 1
- },
- saturated: true
- };
- }
- let fraction = firstJ.fraction % amountFractionalBase;
- for (const x6 of rest) {
- const xJ = Amounts.jsonifyAmount(x6);
- if (xJ.currency.toUpperCase() !== currency.toUpperCase()) {
- throw Error(`Mismatched currency: ${xJ.currency} and ${currency}`);
- }
- value = value + xJ.value + Math.floor((fraction + xJ.fraction) / amountFractionalBase);
- fraction = Math.floor((fraction + xJ.fraction) % amountFractionalBase);
- if (value > amountMaxValue) {
- return {
- amount: {
- currency,
- value: amountMaxValue,
- fraction: amountFractionalBase - 1
- },
- saturated: true
- };
- }
- }
- return { amount: { currency, value, fraction }, saturated: false };
- }
- /**
- * Subtract two amounts. Return the result and whether
- * the subtraction overflowed. The overflow is always handled
- * by saturating and never by wrapping.
- *
- * Throws when currencies don't match.
- */
- static sub(a5, ...rest) {
- const aJ = Amounts.jsonifyAmount(a5);
- const currency = aJ.currency;
- let value = aJ.value;
- let fraction = aJ.fraction;
- for (const b4 of rest) {
- const bJ = Amounts.jsonifyAmount(b4);
- if (bJ.currency.toUpperCase() !== aJ.currency.toUpperCase()) {
- throw Error(`Mismatched currency: ${bJ.currency} and ${currency}`);
- }
- if (fraction < bJ.fraction) {
- if (value < 1) {
- return {
- amount: { currency, value: 0, fraction: 0 },
- saturated: true
- };
- }
- value--;
- fraction += amountFractionalBase;
- }
- console.assert(fraction >= bJ.fraction);
- fraction -= bJ.fraction;
- if (value < bJ.value) {
- return { amount: { currency, value: 0, fraction: 0 }, saturated: true };
- }
- value -= bJ.value;
- }
- return { amount: { currency, value, fraction }, saturated: false };
- }
- /**
- * Compare two amounts. Returns 0 when equal, -1 when a < b
- * and +1 when a > b. Throws when currencies don't match.
- */
- static cmp(a5, b4) {
- a5 = Amounts.jsonifyAmount(a5);
- b4 = Amounts.jsonifyAmount(b4);
- if (a5.currency !== b4.currency) {
- throw Error(`Mismatched currency: ${a5.currency} and ${b4.currency}`);
- }
- const av = a5.value + Math.floor(a5.fraction / amountFractionalBase);
- const af = a5.fraction % amountFractionalBase;
- const bv = b4.value + Math.floor(b4.fraction / amountFractionalBase);
- const bf = b4.fraction % amountFractionalBase;
- switch (true) {
- case av < bv:
- return -1;
- case av > bv:
- return 1;
- case af < bf:
- return -1;
- case af > bf:
- return 1;
- case af === bf:
- return 0;
- default:
- throw Error("assertion failed");
- }
- }
- /**
- * Create a copy of an amount.
- */
- static copy(a5) {
- return {
- currency: a5.currency,
- fraction: a5.fraction,
- value: a5.value
- };
- }
- /**
- * Divide an amount. Throws on division by zero.
- */
- static divide(a5, n2) {
- if (n2 === 0) {
- throw Error(`Division by 0`);
- }
- if (n2 === 1) {
- return { value: a5.value, fraction: a5.fraction, currency: a5.currency };
- }
- const r3 = a5.value % n2;
- return {
- currency: a5.currency,
- fraction: Math.floor((r3 * amountFractionalBase + a5.fraction) / n2),
- value: Math.floor(a5.value / n2)
- };
- }
- /**
- * Check if an amount is non-zero.
- */
- static isNonZero(a5) {
- a5 = Amounts.jsonifyAmount(a5);
- return a5.value > 0 || a5.fraction > 0;
- }
- static isZero(a5) {
- a5 = Amounts.jsonifyAmount(a5);
- return a5.value === 0 && a5.fraction === 0;
- }
- /**
- * Parse an amount like 'EUR:20.5' for 20 Euros and 50 ct.
- *
- * Currency name size limit is 11 of ASCII letters
- * Fraction size limit is 8
- */
- static parse(s5) {
- const res = s5.match(/^([a-zA-Z]{1,11}):([0-9]+)([.][0-9]{1,8})?$/);
- if (!res) {
- return void 0;
- }
- const tail = res[3] || ".0";
- if (tail.length > amountFractionalLength + 1) {
- return void 0;
- }
- const value = Number.parseInt(res[2]);
- if (value > amountMaxValue) {
- return void 0;
- }
- return {
- currency: res[1].toUpperCase(),
- fraction: Math.round(amountFractionalBase * Number.parseFloat(tail)),
- value
- };
- }
- /**
- * Parse amount in standard string form (like 'EUR:20.5'),
- * throw if the input is not a valid amount.
- */
- static parseOrThrow(s5) {
- if (typeof s5 === "object") {
- if (typeof s5.currency !== "string") {
- throw Error("invalid amount object");
- }
- if (typeof s5.value !== "number") {
- throw Error("invalid amount object");
- }
- if (typeof s5.fraction !== "number") {
- throw Error("invalid amount object");
- }
- return { currency: s5.currency, value: s5.value, fraction: s5.fraction };
- } else if (typeof s5 === "string") {
- const res = Amounts.parse(s5);
- if (!res) {
- throw Error(`Can't parse amount: "${s5}"`);
- }
- return res;
- } else {
- throw Error("invalid amount (illegal type)");
- }
- }
- static min(a5, b4) {
- const cr = Amounts.cmp(a5, b4);
- if (cr >= 0) {
- return Amounts.jsonifyAmount(b4);
- } else {
- return Amounts.jsonifyAmount(a5);
- }
- }
- static max(a5, b4) {
- const cr = Amounts.cmp(a5, b4);
- if (cr >= 0) {
- return Amounts.jsonifyAmount(a5);
- } else {
- return Amounts.jsonifyAmount(b4);
- }
- }
- static mult(a5, n2) {
- a5 = this.jsonifyAmount(a5);
- if (!Number.isInteger(n2)) {
- throw Error("amount can only be multipied by an integer");
- }
- if (n2 < 0) {
- throw Error("amount can only be multiplied by a positive integer");
- }
- if (n2 == 0) {
- return {
- amount: Amounts.zeroOfCurrency(a5.currency),
- saturated: false
- };
- }
- let x6 = a5;
- let acc = Amounts.zeroOfCurrency(a5.currency);
- while (n2 > 1) {
- if (n2 % 2 == 0) {
- n2 = n2 / 2;
- } else {
- n2 = (n2 - 1) / 2;
- const r23 = Amounts.add(acc, x6);
- if (r23.saturated) {
- return r23;
- }
- acc = r23.amount;
- }
- const r22 = Amounts.add(x6, x6);
- if (r22.saturated) {
- return r22;
- }
- x6 = r22.amount;
- }
- return Amounts.add(acc, x6);
- }
- /**
- * Check if the argument is a valid amount in string form.
- */
- static check(a5) {
- if (typeof a5 !== "string") {
- return false;
- }
- try {
- const parsedAmount = Amounts.parse(a5);
- return !!parsedAmount;
- } catch (e4) {
- return false;
- }
- }
- /**
- * Convert to standard human-readable string representation that's
- * also used in JSON formats.
- */
- static stringify(a5) {
- a5 = Amounts.jsonifyAmount(a5);
- const s5 = this.stringifyValue(a5);
- return `${a5.currency}:${s5}`;
- }
- static isSameCurrency(a1, a22) {
- const x1 = this.jsonifyAmount(a1);
- const x22 = this.jsonifyAmount(a22);
- return x1.currency.toUpperCase() === x22.currency.toUpperCase();
- }
- static stringifyValue(a5, minFractional = 0) {
- const aJ = Amounts.jsonifyAmount(a5);
- const av = aJ.value + Math.floor(aJ.fraction / amountFractionalBase);
- const af = aJ.fraction % amountFractionalBase;
- let s5 = av.toString();
- if (af || minFractional) {
- s5 = s5 + ".";
- let n2 = af;
- for (let i4 = 0; i4 < amountFractionalLength; i4++) {
- if (!n2 && i4 >= minFractional) {
- break;
- }
- s5 = s5 + Math.floor(n2 / amountFractionalBase * 10).toString();
- n2 = n2 * 10 % amountFractionalBase;
- }
- }
- return s5;
- }
- /**
- * Number of fractional digits needed to fully represent the amount
- * @param a amount
- * @returns
- */
- static maxFractionalDigits(a5) {
- if (a5.fraction === 0)
- return 0;
- if (a5.fraction < 0) {
- console.error("amount fraction can not be negative", a5);
- return 0;
- }
- let i4 = 0;
- let check = true;
- let rest = a5.fraction;
- while (rest > 0 && check) {
- check = rest % 10 === 0;
- rest = rest / 10;
- i4++;
- }
- return amountFractionalLength - i4 + 1;
- }
-};
-
// ../taler-util/lib/punycode.js
var maxInt = 2147483647;
var base = 36;
@@ -6735,23 +6154,23 @@ var digitToBasic = function(digit, flag) {
return digit + 22 + 75 * Number(digit < 26) - (Number(flag != 0) << 5);
};
var adapt = function(delta, numPoints, firstTime) {
- let k5 = 0;
+ let k6 = 0;
delta = firstTime ? floor(delta / damp) : delta >> 1;
delta += floor(delta / numPoints);
for (
;
/* no initialization */
delta > baseMinusTMin * tMax >> 1;
- k5 += base
+ k6 += base
) {
delta = floor(delta / baseMinusTMin);
}
- return floor(k5 + (baseMinusTMin + 1) * delta / (delta + skew));
+ return floor(k6 + (baseMinusTMin + 1) * delta / (delta + skew));
};
var decode = function(input) {
const output = [];
const inputLength = input.length;
- let i4 = 0;
+ let i5 = 0;
let n2 = initialN;
let bias = initialBias;
let basic = input.lastIndexOf(delimiter);
@@ -6765,34 +6184,34 @@ var decode = function(input) {
output.push(input.charCodeAt(j4));
}
for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {
- let oldi = i4;
- for (let w5 = 1, k5 = base; ; k5 += base) {
+ let oldi = i5;
+ for (let w6 = 1, k6 = base; ; k6 += base) {
if (index >= inputLength) {
error("invalid-input");
}
const digit = basicToDigit(input.charCodeAt(index++));
- if (digit >= base || digit > floor((maxInt - i4) / w5)) {
+ if (digit >= base || digit > floor((maxInt - i5) / w6)) {
error("overflow");
}
- i4 += digit * w5;
- const t4 = k5 <= bias ? tMin : k5 >= bias + tMax ? tMax : k5 - bias;
- if (digit < t4) {
+ i5 += digit * w6;
+ const t5 = k6 <= bias ? tMin : k6 >= bias + tMax ? tMax : k6 - bias;
+ if (digit < t5) {
break;
}
- const baseMinusT = base - t4;
- if (w5 > floor(maxInt / baseMinusT)) {
+ const baseMinusT = base - t5;
+ if (w6 > floor(maxInt / baseMinusT)) {
error("overflow");
}
- w5 *= baseMinusT;
+ w6 *= baseMinusT;
}
const out = output.length + 1;
- bias = adapt(i4 - oldi, out, oldi == 0);
- if (floor(i4 / out) > maxInt - n2) {
+ bias = adapt(i5 - oldi, out, oldi == 0);
+ if (floor(i5 / out) > maxInt - n2) {
error("overflow");
}
- n2 += floor(i4 / out);
- i4 %= out;
- output.splice(i4++, 0, n2);
+ n2 += floor(i5 / out);
+ i5 %= out;
+ output.splice(i5++, 0, n2);
}
return String.fromCodePoint(...output);
};
@@ -6814,35 +6233,35 @@ var encode = function(inputArg) {
output.push(delimiter);
}
while (handledCPCount < inputLength) {
- let m5 = maxInt;
+ let m6 = maxInt;
for (const currentValue of input) {
- if (currentValue >= n2 && currentValue < m5) {
- m5 = currentValue;
+ if (currentValue >= n2 && currentValue < m6) {
+ m6 = currentValue;
}
}
const handledCPCountPlusOne = handledCPCount + 1;
- if (m5 - n2 > floor((maxInt - delta) / handledCPCountPlusOne)) {
+ if (m6 - n2 > floor((maxInt - delta) / handledCPCountPlusOne)) {
error("overflow");
}
- delta += (m5 - n2) * handledCPCountPlusOne;
- n2 = m5;
+ delta += (m6 - n2) * handledCPCountPlusOne;
+ n2 = m6;
for (const currentValue of input) {
if (currentValue < n2 && ++delta > maxInt) {
error("overflow");
}
if (currentValue == n2) {
- let q5 = delta;
- for (let k5 = base; ; k5 += base) {
- const t4 = k5 <= bias ? tMin : k5 >= bias + tMax ? tMax : k5 - bias;
- if (q5 < t4) {
+ let q6 = delta;
+ for (let k6 = base; ; k6 += base) {
+ const t5 = k6 <= bias ? tMin : k6 >= bias + tMax ? tMax : k6 - bias;
+ if (q6 < t5) {
break;
}
- const qMinusT = q5 - t4;
- const baseMinusT = base - t4;
- output.push(stringFromCharCode(digitToBasic(t4 + qMinusT % baseMinusT, 0)));
- q5 = floor(qMinusT / baseMinusT);
+ const qMinusT = q6 - t5;
+ const baseMinusT = base - t5;
+ output.push(stringFromCharCode(digitToBasic(t5 + qMinusT % baseMinusT, 0)));
+ q6 = floor(qMinusT / baseMinusT);
}
- output.push(stringFromCharCode(digitToBasic(q5, 0)));
+ output.push(stringFromCharCode(digitToBasic(q6, 0)));
bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
delta = 0;
++handledCPCount;
@@ -6929,7 +6348,7 @@ function serializeUrlencoded(tuples, encodingOverride = void 0) {
encoding = encodingOverride;
}
let output = "";
- for (const [i4, tuple] of tuples.entries()) {
+ for (const [i5, tuple] of tuples.entries()) {
const name = utf8PercentEncodeString(tuple[0], isURLEncodedPercentEncode, true);
let value = tuple[1];
if (tuple.length > 2 && tuple[2] !== void 0) {
@@ -6940,7 +6359,7 @@ function serializeUrlencoded(tuples, encodingOverride = void 0) {
}
}
value = utf8PercentEncodeString(value, isURLEncodedPercentEncode, true);
- if (i4 !== 0) {
+ if (i5 !== 0) {
output += "&";
}
output += `${name}=${value}`;
@@ -6950,11 +6369,11 @@ function serializeUrlencoded(tuples, encodingOverride = void 0) {
function strictlySplitByteSequence(buf, cp) {
const list = [];
let last = 0;
- let i4 = buf.indexOf(cp);
- while (i4 >= 0) {
- list.push(buf.slice(last, i4));
- last = i4 + 1;
- i4 = buf.indexOf(cp, last);
+ let i5 = buf.indexOf(cp);
+ while (i5 >= 0) {
+ list.push(buf.slice(last, i5));
+ last = i5 + 1;
+ i5 = buf.indexOf(cp, last);
}
if (last !== buf.length) {
list.push(buf.slice(last));
@@ -6962,18 +6381,18 @@ function strictlySplitByteSequence(buf, cp) {
return list;
}
function replaceByteInByteSequence(buf, from, to) {
- let i4 = buf.indexOf(from);
- while (i4 >= 0) {
- buf[i4] = to;
- i4 = buf.indexOf(from, i4 + 1);
+ let i5 = buf.indexOf(from);
+ while (i5 >= 0) {
+ buf[i5] = to;
+ i5 = buf.indexOf(from, i5 + 1);
}
return buf;
}
function p(char) {
return char.codePointAt(0);
}
-function percentEncode(c4) {
- let hex = c4.toString(16).toUpperCase();
+function percentEncode(c5) {
+ let hex = c5.toString(16).toUpperCase();
if (hex.length === 1) {
hex = `0${hex}`;
}
@@ -6982,16 +6401,16 @@ function percentEncode(c4) {
function percentDecodeBytes(input) {
const output = new Uint8Array(input.byteLength);
let outputIndex = 0;
- for (let i4 = 0; i4 < input.byteLength; ++i4) {
- const byte = input[i4];
+ for (let i5 = 0; i5 < input.byteLength; ++i5) {
+ const byte = input[i5];
if (byte !== 37) {
output[outputIndex++] = byte;
- } else if (byte === 37 && (!isASCIIHex(input[i4 + 1]) || !isASCIIHex(input[i4 + 2]))) {
+ } else if (byte === 37 && (!isASCIIHex(input[i5 + 1]) || !isASCIIHex(input[i5 + 2]))) {
output[outputIndex++] = byte;
} else {
- const bytePoint = parseInt(String.fromCodePoint(input[i4 + 1], input[i4 + 2]), 16);
+ const bytePoint = parseInt(String.fromCodePoint(input[i5 + 1], input[i5 + 2]), 16);
output[outputIndex++] = bytePoint;
- i4 += 2;
+ i5 += 2;
}
}
return output.slice(0, outputIndex);
@@ -7000,8 +6419,8 @@ function percentDecodeString(input) {
const bytes = utf8Encode(input);
return percentDecodeBytes(bytes);
}
-function isC0ControlPercentEncode(c4) {
- return c4 <= 31 || c4 > 126;
+function isC0ControlPercentEncode(c5) {
+ return c5 <= 31 || c5 > 126;
}
var extraFragmentPercentEncodeSet = /* @__PURE__ */ new Set([
p(" "),
@@ -7010,8 +6429,8 @@ var extraFragmentPercentEncodeSet = /* @__PURE__ */ new Set([
p(">"),
p("`")
]);
-function isFragmentPercentEncode(c4) {
- return isC0ControlPercentEncode(c4) || extraFragmentPercentEncodeSet.has(c4);
+function isFragmentPercentEncode(c5) {
+ return isC0ControlPercentEncode(c5) || extraFragmentPercentEncodeSet.has(c5);
}
var extraQueryPercentEncodeSet = /* @__PURE__ */ new Set([
p(" "),
@@ -7020,15 +6439,15 @@ var extraQueryPercentEncodeSet = /* @__PURE__ */ new Set([
p("<"),
p(">")
]);
-function isQueryPercentEncode(c4) {
- return isC0ControlPercentEncode(c4) || extraQueryPercentEncodeSet.has(c4);
+function isQueryPercentEncode(c5) {
+ return isC0ControlPercentEncode(c5) || extraQueryPercentEncodeSet.has(c5);
}
-function isSpecialQueryPercentEncode(c4) {
- return isQueryPercentEncode(c4) || c4 === p("'");
+function isSpecialQueryPercentEncode(c5) {
+ return isQueryPercentEncode(c5) || c5 === p("'");
}
var extraPathPercentEncodeSet = /* @__PURE__ */ new Set([p("?"), p("`"), p("{"), p("}")]);
-function isPathPercentEncode(c4) {
- return isQueryPercentEncode(c4) || extraPathPercentEncodeSet.has(c4);
+function isPathPercentEncode(c5) {
+ return isQueryPercentEncode(c5) || extraPathPercentEncodeSet.has(c5);
}
var extraUserinfoPercentEncodeSet = /* @__PURE__ */ new Set([
p("/"),
@@ -7042,8 +6461,8 @@ var extraUserinfoPercentEncodeSet = /* @__PURE__ */ new Set([
p("^"),
p("|")
]);
-function isUserinfoPercentEncode(c4) {
- return isPathPercentEncode(c4) || extraUserinfoPercentEncodeSet.has(c4);
+function isUserinfoPercentEncode(c5) {
+ return isPathPercentEncode(c5) || extraUserinfoPercentEncodeSet.has(c5);
}
var extraComponentPercentEncodeSet = /* @__PURE__ */ new Set([
p("$"),
@@ -7052,8 +6471,8 @@ var extraComponentPercentEncodeSet = /* @__PURE__ */ new Set([
p("+"),
p(",")
]);
-function isComponentPercentEncode(c4) {
- return isUserinfoPercentEncode(c4) || extraComponentPercentEncodeSet.has(c4);
+function isComponentPercentEncode(c5) {
+ return isUserinfoPercentEncode(c5) || extraComponentPercentEncodeSet.has(c5);
}
var extraURLEncodedPercentEncodeSet = /* @__PURE__ */ new Set([
p("!"),
@@ -7062,8 +6481,8 @@ var extraURLEncodedPercentEncodeSet = /* @__PURE__ */ new Set([
p(")"),
p("~")
]);
-function isURLEncodedPercentEncode(c4) {
- return isComponentPercentEncode(c4) || extraURLEncodedPercentEncodeSet.has(c4);
+function isURLEncodedPercentEncode(c5) {
+ return isComponentPercentEncode(c5) || extraURLEncodedPercentEncodeSet.has(c5);
}
function utf8PercentEncodeCodePointInternal(codePoint, percentEncodePredicate) {
const bytes = utf8Encode(codePoint);
@@ -7091,17 +6510,17 @@ function utf8PercentEncodeString(input, percentEncodePredicate, spaceAsPlus = fa
}
return output;
}
-function isASCIIDigit(c4) {
- return c4 >= 48 && c4 <= 57;
+function isASCIIDigit(c5) {
+ return c5 >= 48 && c5 <= 57;
}
-function isASCIIAlpha(c4) {
- return c4 >= 65 && c4 <= 90 || c4 >= 97 && c4 <= 122;
+function isASCIIAlpha(c5) {
+ return c5 >= 65 && c5 <= 90 || c5 >= 97 && c5 <= 122;
}
-function isASCIIAlphanumeric(c4) {
- return isASCIIAlpha(c4) || isASCIIDigit(c4);
+function isASCIIAlphanumeric(c5) {
+ return isASCIIAlpha(c5) || isASCIIDigit(c5);
}
-function isASCIIHex(c4) {
- return isASCIIDigit(c4) || c4 >= 65 && c4 <= 70 || c4 >= 97 && c4 <= 102;
+function isASCIIHex(c5) {
+ return isASCIIDigit(c5) || c5 >= 65 && c5 <= 70 || c5 >= 97 && c5 <= 102;
}
var URLSearchParamsImpl = class {
constructor(init, { doNotStripQMark = false } = {}) {
@@ -7140,12 +6559,12 @@ var URLSearchParamsImpl = class {
this._updateSteps();
}
delete(name) {
- let i4 = 0;
- while (i4 < this._list.length) {
- if (this._list[i4][0] === name) {
- this._list.splice(i4, 1);
+ let i5 = 0;
+ while (i5 < this._list.length) {
+ if (this._list[i5][0] === name) {
+ this._list.splice(i5, 1);
} else {
- i4++;
+ i5++;
}
}
this._updateSteps();
@@ -7182,18 +6601,18 @@ var URLSearchParamsImpl = class {
}
set(name, value) {
let found = false;
- let i4 = 0;
- while (i4 < this._list.length) {
- if (this._list[i4][0] === name) {
+ let i5 = 0;
+ while (i5 < this._list.length) {
+ if (this._list[i5][0] === name) {
if (found) {
- this._list.splice(i4, 1);
+ this._list.splice(i5, 1);
} else {
found = true;
- this._list[i4][1] = value;
- i4++;
+ this._list[i5][1] = value;
+ i5++;
}
} else {
- i4++;
+ i5++;
}
}
if (!found) {
@@ -7202,11 +6621,11 @@ var URLSearchParamsImpl = class {
this._updateSteps();
}
sort() {
- this._list.sort((a5, b4) => {
- if (a5[0] < b4[0]) {
+ this._list.sort((a6, b5) => {
+ if (a6[0] < b5[0]) {
return -1;
}
- if (a5[0] > b4[0]) {
+ if (a6[0] > b5[0]) {
return 1;
}
return 0;
@@ -7233,8 +6652,8 @@ function countSymbols(str) {
return [...str].length;
}
function at(input, idx) {
- const c4 = input[idx];
- return isNaN(c4) ? void 0 : String.fromCodePoint(c4);
+ const c5 = input[idx];
+ return isNaN(c5) ? void 0 : String.fromCodePoint(c5);
}
function isSingleDot(buffer) {
return buffer === "." || buffer.toLowerCase() === "%2e";
@@ -7274,28 +6693,28 @@ function parseIPv4Number(input) {
if (input === "") {
return failure;
}
- let R3 = 10;
+ let R4 = 10;
if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") {
input = input.substring(2);
- R3 = 16;
+ R4 = 16;
} else if (input.length >= 2 && input.charAt(0) === "0") {
input = input.substring(1);
- R3 = 8;
+ R4 = 8;
}
if (input === "") {
return 0;
}
let regex = /[^0-7]/u;
- if (R3 === 10) {
+ if (R4 === 10) {
regex = /[^0-9]/u;
}
- if (R3 === 16) {
+ if (R4 === 16) {
regex = /[^0-9A-Fa-f]/u;
}
if (regex.test(input)) {
return failure;
}
- return parseInt(input, R3);
+ return parseInt(input, R4);
}
function parseIPv4(input) {
const parts = input.split(".");
@@ -7315,8 +6734,8 @@ function parseIPv4(input) {
}
numbers.push(n2);
}
- for (let i4 = 0; i4 < numbers.length - 1; ++i4) {
- if (numbers[i4] > 255) {
+ for (let i5 = 0; i5 < numbers.length - 1; ++i5) {
+ if (numbers[i5] > 255) {
return failure;
}
}
@@ -7334,9 +6753,9 @@ function parseIPv4(input) {
function serializeIPv4(address) {
let output = "";
let n2 = address;
- for (let i4 = 1; i4 <= 4; ++i4) {
+ for (let i5 = 1; i5 <= 4; ++i5) {
output = String(n2 % 256) + output;
- if (i4 !== 4) {
+ if (i5 !== 4) {
output = `.${output}`;
}
n2 = Math.floor(n2 / 256);
@@ -7348,7 +6767,7 @@ function parseIPv6(inputArg) {
let pieceIndex = 0;
let compress = null;
let pointer = 0;
- const input = Array.from(inputArg, (c4) => c4.codePointAt(0));
+ const input = Array.from(inputArg, (c5) => c5.codePointAt(0));
if (input[pointer] === p(":")) {
if (input[pointer + 1] !== p(":")) {
return failure;
@@ -7522,8 +6941,8 @@ function findLongestZeroSequence(arr) {
let maxLen = 1;
let currStart = null;
let currLen = 0;
- for (let i4 = 0; i4 < arr.length; ++i4) {
- if (arr[i4] !== 0) {
+ for (let i5 = 0; i5 < arr.length; ++i5) {
+ if (arr[i5] !== 0) {
if (currLen > maxLen) {
maxIdx = currStart;
maxLen = currLen;
@@ -7532,7 +6951,7 @@ function findLongestZeroSequence(arr) {
currLen = 0;
} else {
if (currStart === null) {
- currStart = i4;
+ currStart = i5;
}
++currLen;
}
@@ -7555,7 +6974,7 @@ function domainToASCII(domain, beStrict = false) {
let result;
try {
result = punycode.toASCII(domain);
- } catch (e4) {
+ } catch (e5) {
return failure;
}
if (result === null || result === "") {
@@ -7649,11 +7068,11 @@ var URLStateMachine = class {
this.atFlag = false;
this.arrFlag = false;
this.passwordTokenSeenFlag = false;
- this.input = Array.from(input, (c4) => c4.codePointAt(0));
+ this.input = Array.from(input, (c5) => c5.codePointAt(0));
for (; this.pointer <= this.input.length; ++this.pointer) {
- const c4 = this.input[this.pointer];
- const cStr = isNaN(c4) ? void 0 : String.fromCodePoint(c4);
- const ret = this.table[`parse ${this.state}`].call(this, c4, cStr);
+ const c5 = this.input[this.pointer];
+ const cStr = isNaN(c5) ? void 0 : String.fromCodePoint(c5);
+ const ret = this.table[`parse ${this.state}`].call(this, c5, cStr);
if (!ret) {
break;
} else if (ret === failure) {
@@ -7662,8 +7081,8 @@ var URLStateMachine = class {
}
}
}
- parseSchemeStart(c4, cStr) {
- if (isASCIIAlpha(c4)) {
+ parseSchemeStart(c5, cStr) {
+ if (isASCIIAlpha(c5)) {
this.buffer += cStr.toLowerCase();
this.state = "scheme";
} else if (!this.stateOverride) {
@@ -7675,10 +7094,10 @@ var URLStateMachine = class {
}
return true;
}
- parseScheme(c4, cStr) {
- if (isASCIIAlphanumeric(c4) || c4 === p("+") || c4 === p("-") || c4 === p(".")) {
+ parseScheme(c5, cStr) {
+ if (isASCIIAlphanumeric(c5) || c5 === p("+") || c5 === p("-") || c5 === p(".")) {
this.buffer += cStr.toLowerCase();
- } else if (c4 === p(":")) {
+ } else if (c5 === p(":")) {
if (this.stateOverride) {
if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {
return false;
@@ -7727,10 +7146,10 @@ var URLStateMachine = class {
}
return true;
}
- parseNoScheme(c4) {
- if (this.base === null || hasAnOpaquePath(this.base) && c4 !== p("#")) {
+ parseNoScheme(c5) {
+ if (this.base === null || hasAnOpaquePath(this.base) && c5 !== p("#")) {
return failure;
- } else if (hasAnOpaquePath(this.base) && c4 === p("#")) {
+ } else if (hasAnOpaquePath(this.base) && c5 === p("#")) {
this.url.scheme = this.base.scheme;
this.url.path = this.base.path;
this.url.query = this.base.query;
@@ -7745,8 +7164,8 @@ var URLStateMachine = class {
}
return true;
}
- parseSpecialRelativeOrAuthority(c4) {
- if (c4 === p("/") && this.input[this.pointer + 1] === p("/")) {
+ parseSpecialRelativeOrAuthority(c5) {
+ if (c5 === p("/") && this.input[this.pointer + 1] === p("/")) {
this.state = "special authority ignore slashes";
++this.pointer;
} else {
@@ -7756,8 +7175,8 @@ var URLStateMachine = class {
}
return true;
}
- parsePathOrAuthority(c4) {
- if (c4 === p("/")) {
+ parsePathOrAuthority(c5) {
+ if (c5 === p("/")) {
this.state = "authority";
} else {
this.state = "path";
@@ -7765,11 +7184,11 @@ var URLStateMachine = class {
}
return true;
}
- parseRelative(c4) {
+ parseRelative(c5) {
this.url.scheme = this.base.scheme;
- if (c4 === p("/")) {
+ if (c5 === p("/")) {
this.state = "relative slash";
- } else if (isSpecial(this.url) && c4 === p("\\")) {
+ } else if (isSpecial(this.url) && c5 === p("\\")) {
this.parseError = true;
this.state = "relative slash";
} else {
@@ -7779,13 +7198,13 @@ var URLStateMachine = class {
this.url.port = this.base.port;
this.url.path = this.base.path.slice();
this.url.query = this.base.query;
- if (c4 === p("?")) {
+ if (c5 === p("?")) {
this.url.query = "";
this.state = "query";
- } else if (c4 === p("#")) {
+ } else if (c5 === p("#")) {
this.url.fragment = "";
this.state = "fragment";
- } else if (!isNaN(c4)) {
+ } else if (!isNaN(c5)) {
this.url.query = null;
this.url.path.pop();
this.state = "path";
@@ -7794,13 +7213,13 @@ var URLStateMachine = class {
}
return true;
}
- parseRelativeSlash(c4) {
- if (isSpecial(this.url) && (c4 === p("/") || c4 === p("\\"))) {
- if (c4 === p("\\")) {
+ parseRelativeSlash(c5) {
+ if (isSpecial(this.url) && (c5 === p("/") || c5 === p("\\"))) {
+ if (c5 === p("\\")) {
this.parseError = true;
}
this.state = "special authority ignore slashes";
- } else if (c4 === p("/")) {
+ } else if (c5 === p("/")) {
this.state = "authority";
} else {
this.url.username = this.base.username;
@@ -7812,8 +7231,8 @@ var URLStateMachine = class {
}
return true;
}
- parseSpecialAuthoritySlashes(c4) {
- if (c4 === p("/") && this.input[this.pointer + 1] === p("/")) {
+ parseSpecialAuthoritySlashes(c5) {
+ if (c5 === p("/") && this.input[this.pointer + 1] === p("/")) {
this.state = "special authority ignore slashes";
++this.pointer;
} else {
@@ -7823,8 +7242,8 @@ var URLStateMachine = class {
}
return true;
}
- parseSpecialAuthorityIgnoreSlashes(c4) {
- if (c4 !== p("/") && c4 !== p("\\")) {
+ parseSpecialAuthorityIgnoreSlashes(c5) {
+ if (c5 !== p("/") && c5 !== p("\\")) {
this.state = "authority";
--this.pointer;
} else {
@@ -7832,8 +7251,8 @@ var URLStateMachine = class {
}
return true;
}
- parseAuthority(c4, cStr) {
- if (c4 === p("@")) {
+ parseAuthority(c5, cStr) {
+ if (c5 === p("@")) {
this.parseError = true;
if (this.atFlag) {
this.buffer = `%40${this.buffer}`;
@@ -7854,7 +7273,7 @@ var URLStateMachine = class {
}
}
this.buffer = "";
- } else if (isNaN(c4) || c4 === p("/") || c4 === p("?") || c4 === p("#") || isSpecial(this.url) && c4 === p("\\")) {
+ } else if (isNaN(c5) || c5 === p("/") || c5 === p("?") || c5 === p("#") || isSpecial(this.url) && c5 === p("\\")) {
if (this.atFlag && this.buffer === "") {
this.parseError = true;
return failure;
@@ -7867,11 +7286,11 @@ var URLStateMachine = class {
}
return true;
}
- parseHostName(c4, cStr) {
+ parseHostName(c5, cStr) {
if (this.stateOverride && this.url.scheme === "file") {
--this.pointer;
this.state = "file host";
- } else if (c4 === p(":") && !this.arrFlag) {
+ } else if (c5 === p(":") && !this.arrFlag) {
if (this.buffer === "") {
this.parseError = true;
return failure;
@@ -7886,7 +7305,7 @@ var URLStateMachine = class {
this.url.host = host;
this.buffer = "";
this.state = "port";
- } else if (isNaN(c4) || c4 === p("/") || c4 === p("?") || c4 === p("#") || isSpecial(this.url) && c4 === p("\\")) {
+ } else if (isNaN(c5) || c5 === p("/") || c5 === p("?") || c5 === p("#") || isSpecial(this.url) && c5 === p("\\")) {
--this.pointer;
if (isSpecial(this.url) && this.buffer === "") {
this.parseError = true;
@@ -7906,19 +7325,19 @@ var URLStateMachine = class {
return false;
}
} else {
- if (c4 === p("[")) {
+ if (c5 === p("[")) {
this.arrFlag = true;
- } else if (c4 === p("]")) {
+ } else if (c5 === p("]")) {
this.arrFlag = false;
}
this.buffer += cStr;
}
return true;
}
- parsePort(c4, cStr) {
- if (isASCIIDigit(c4)) {
+ parsePort(c5, cStr) {
+ if (isASCIIDigit(c5)) {
this.buffer += cStr;
- } else if (isNaN(c4) || c4 === p("/") || c4 === p("?") || c4 === p("#") || isSpecial(this.url) && c4 === p("\\") || this.stateOverride) {
+ } else if (isNaN(c5) || c5 === p("/") || c5 === p("?") || c5 === p("#") || isSpecial(this.url) && c5 === p("\\") || this.stateOverride) {
if (this.buffer !== "") {
const port = parseInt(this.buffer);
if (port > __pow(2, 16) - 1) {
@@ -7939,11 +7358,11 @@ var URLStateMachine = class {
}
return true;
}
- parseFile(c4) {
+ parseFile(c5) {
this.url.scheme = "file";
this.url.host = "";
- if (c4 === p("/") || c4 === p("\\")) {
- if (c4 === p("\\")) {
+ if (c5 === p("/") || c5 === p("\\")) {
+ if (c5 === p("\\")) {
this.parseError = true;
}
this.state = "file slash";
@@ -7951,13 +7370,13 @@ var URLStateMachine = class {
this.url.host = this.base.host;
this.url.path = this.base.path.slice();
this.url.query = this.base.query;
- if (c4 === p("?")) {
+ if (c5 === p("?")) {
this.url.query = "";
this.state = "query";
- } else if (c4 === p("#")) {
+ } else if (c5 === p("#")) {
this.url.fragment = "";
this.state = "fragment";
- } else if (!isNaN(c4)) {
+ } else if (!isNaN(c5)) {
this.url.query = null;
if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {
shortenPath(this.url);
@@ -7974,9 +7393,9 @@ var URLStateMachine = class {
}
return true;
}
- parseFileSlash(c4) {
- if (c4 === p("/") || c4 === p("\\")) {
- if (c4 === p("\\")) {
+ parseFileSlash(c5) {
+ if (c5 === p("/") || c5 === p("\\")) {
+ if (c5 === p("\\")) {
this.parseError = true;
}
this.state = "file host";
@@ -7992,8 +7411,8 @@ var URLStateMachine = class {
}
return true;
}
- parseFileHost(c4, cStr) {
- if (isNaN(c4) || c4 === p("/") || c4 === p("\\") || c4 === p("?") || c4 === p("#")) {
+ parseFileHost(c5, cStr) {
+ if (isNaN(c5) || c5 === p("/") || c5 === p("\\") || c5 === p("?") || c5 === p("#")) {
--this.pointer;
if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {
this.parseError = true;
@@ -8024,24 +7443,24 @@ var URLStateMachine = class {
}
return true;
}
- parsePathStart(c4) {
+ parsePathStart(c5) {
if (isSpecial(this.url)) {
- if (c4 === p("\\")) {
+ if (c5 === p("\\")) {
this.parseError = true;
}
this.state = "path";
- if (c4 !== p("/") && c4 !== p("\\")) {
+ if (c5 !== p("/") && c5 !== p("\\")) {
--this.pointer;
}
- } else if (!this.stateOverride && c4 === p("?")) {
+ } else if (!this.stateOverride && c5 === p("?")) {
this.url.query = "";
this.state = "query";
- } else if (!this.stateOverride && c4 === p("#")) {
+ } else if (!this.stateOverride && c5 === p("#")) {
this.url.fragment = "";
this.state = "fragment";
- } else if (c4 !== void 0) {
+ } else if (c5 !== void 0) {
this.state = "path";
- if (c4 !== p("/")) {
+ if (c5 !== p("/")) {
--this.pointer;
}
} else if (this.stateOverride && this.url.host === null) {
@@ -8049,17 +7468,17 @@ var URLStateMachine = class {
}
return true;
}
- parsePath(c4) {
- if (isNaN(c4) || c4 === p("/") || isSpecial(this.url) && c4 === p("\\") || !this.stateOverride && (c4 === p("?") || c4 === p("#"))) {
- if (isSpecial(this.url) && c4 === p("\\")) {
+ parsePath(c5) {
+ if (isNaN(c5) || c5 === p("/") || isSpecial(this.url) && c5 === p("\\") || !this.stateOverride && (c5 === p("?") || c5 === p("#"))) {
+ if (isSpecial(this.url) && c5 === p("\\")) {
this.parseError = true;
}
if (isDoubleDot(this.buffer)) {
shortenPath(this.url);
- if (c4 !== p("/") && !(isSpecial(this.url) && c4 === p("\\"))) {
+ if (c5 !== p("/") && !(isSpecial(this.url) && c5 === p("\\"))) {
this.url.path.push("");
}
- } else if (isSingleDot(this.buffer) && c4 !== p("/") && !(isSpecial(this.url) && c4 === p("\\"))) {
+ } else if (isSingleDot(this.buffer) && c5 !== p("/") && !(isSpecial(this.url) && c5 === p("\\"))) {
this.url.path.push("");
} else if (!isSingleDot(this.buffer)) {
if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {
@@ -8068,68 +7487,68 @@ var URLStateMachine = class {
this.url.path.push(this.buffer);
}
this.buffer = "";
- if (c4 === p("?")) {
+ if (c5 === p("?")) {
this.url.query = "";
this.state = "query";
}
- if (c4 === p("#")) {
+ if (c5 === p("#")) {
this.url.fragment = "";
this.state = "fragment";
}
} else {
- if (c4 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ if (c5 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true;
}
- this.buffer += utf8PercentEncodeCodePoint(c4, isPathPercentEncode);
+ this.buffer += utf8PercentEncodeCodePoint(c5, isPathPercentEncode);
}
return true;
}
- parseOpaquePath(c4) {
- if (c4 === p("?")) {
+ parseOpaquePath(c5) {
+ if (c5 === p("?")) {
this.url.query = "";
this.state = "query";
- } else if (c4 === p("#")) {
+ } else if (c5 === p("#")) {
this.url.fragment = "";
this.state = "fragment";
} else {
- if (!isNaN(c4) && c4 !== p("%")) {
+ if (!isNaN(c5) && c5 !== p("%")) {
this.parseError = true;
}
- if (c4 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ if (c5 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true;
}
- if (!isNaN(c4)) {
- this.url.path += utf8PercentEncodeCodePoint(c4, isC0ControlPercentEncode);
+ if (!isNaN(c5)) {
+ this.url.path += utf8PercentEncodeCodePoint(c5, isC0ControlPercentEncode);
}
}
return true;
}
- parseQuery(c4, cStr) {
+ parseQuery(c5, cStr) {
if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") {
this.encodingOverride = "utf-8";
}
- if (!this.stateOverride && c4 === p("#") || isNaN(c4)) {
+ if (!this.stateOverride && c5 === p("#") || isNaN(c5)) {
const queryPercentEncodePredicate = isSpecial(this.url) ? isSpecialQueryPercentEncode : isQueryPercentEncode;
this.url.query += utf8PercentEncodeString(this.buffer, queryPercentEncodePredicate);
this.buffer = "";
- if (c4 === p("#")) {
+ if (c5 === p("#")) {
this.url.fragment = "";
this.state = "fragment";
}
- } else if (!isNaN(c4)) {
- if (c4 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ } else if (!isNaN(c5)) {
+ if (c5 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true;
}
this.buffer += cStr;
}
return true;
}
- parseFragment(c4) {
- if (!isNaN(c4)) {
- if (c4 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ parseFragment(c5) {
+ if (!isNaN(c5)) {
+ if (c5 === p("%") && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true;
}
- this.url.fragment += utf8PercentEncodeCodePoint(c4, isFragmentPercentEncode);
+ this.url.fragment += utf8PercentEncodeCodePoint(c5, isFragmentPercentEncode);
}
return true;
}
@@ -8190,7 +7609,7 @@ function serializeURLOrigin(url) {
case "blob":
try {
return serializeURLOrigin(parseURL(serializePath(url)));
- } catch (e4) {
+ } catch (e5) {
return "null";
}
case "ftp":
@@ -8430,13 +7849,13 @@ function canonicalizeBaseUrl(url) {
if (!url.startsWith("http") && !url.startsWith("https")) {
url = "https://" + url;
}
- const x6 = new URL2(url);
- if (!x6.pathname.endsWith("/")) {
- x6.pathname = x6.pathname + "/";
+ const x7 = new URL2(url);
+ if (!x7.pathname.endsWith("/")) {
+ x7.pathname = x7.pathname + "/";
}
- x6.search = "";
- x6.hash = "";
- return x6.href;
+ x7.search = "";
+ x7.hash = "";
+ return x7.href;
}
function canonicalJson(obj) {
obj = JSON.parse(JSON.stringify(obj));
@@ -8447,7 +7866,7 @@ function canonicalJson(obj) {
return JSON.stringify(obj);
}
if (Array.isArray(obj)) {
- const objs = obj.map((e4) => canonicalJson(e4));
+ const objs = obj.map((e5) => canonicalJson(e5));
return `[${objs.join(",")}]`;
}
const keys = [];
@@ -8455,27 +7874,831 @@ function canonicalJson(obj) {
keys.push(key);
}
keys.sort();
- let s5 = "{";
- for (let i4 = 0; i4 < keys.length; i4++) {
- const key = keys[i4];
- s5 += JSON.stringify(key) + ":" + canonicalJson(obj[key]);
- if (i4 !== keys.length - 1) {
- s5 += ",";
+ let s6 = "{";
+ for (let i5 = 0; i5 < keys.length; i5++) {
+ const key = keys[i5];
+ s6 += JSON.stringify(key) + ":" + canonicalJson(obj[key]);
+ if (i5 !== keys.length - 1) {
+ s6 += ",";
}
}
- return s5 + "}";
+ return s6 + "}";
}
-function strcmp(s1, s22) {
- if (s1 < s22) {
+function strcmp(s1, s23) {
+ if (s1 < s23) {
return -1;
}
- if (s1 > s22) {
+ if (s1 > s23) {
return 1;
}
return 0;
}
-function j2s(x6) {
- return JSON.stringify(x6, void 0, 2);
+function j2s(x7) {
+ return JSON.stringify(x7, void 0, 2);
+}
+
+// ../taler-util/lib/logging.js
+var isNode = typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "node";
+var LogLevel;
+(function(LogLevel2) {
+ LogLevel2["Trace"] = "trace";
+ LogLevel2["Message"] = "message";
+ LogLevel2["Info"] = "info";
+ LogLevel2["Warn"] = "warn";
+ LogLevel2["Error"] = "error";
+ LogLevel2["None"] = "none";
+})(LogLevel || (LogLevel = {}));
+var globalLogLevel = LogLevel.Info;
+var byTagLogLevel = {};
+var nativeLogging = false;
+function writeNativeLog(message, tag, level, args) {
+ const logFn = globalThis.__nativeLog;
+ if (logFn) {
+ let m6;
+ if (args.length == 0) {
+ m6 = message;
+ } else {
+ m6 = message + " " + args.toString();
+ }
+ logFn(level, tag, message);
+ }
+}
+function writeNodeLog(message, tag, level, args) {
+ try {
+ let msg = `${(/* @__PURE__ */ new Date()).toISOString()} ${tag} ${level} ${message}`;
+ if (args.length != 0) {
+ msg += ` ${JSON.stringify(args, void 0, 2)}
+`;
+ } else {
+ msg += `
+`;
+ }
+ process.stderr.write(msg);
+ } catch (e5) {
+ let msg = `${(/* @__PURE__ */ new Date()).toISOString()} (logger) FATAL `;
+ if (e5 instanceof Error) {
+ msg += `failed to write log: ${e5.message}
+`;
+ } else {
+ msg += "failed to write log\n";
+ }
+ process.stderr.write(msg);
+ }
+}
+var Logger = class {
+ constructor(tag) {
+ this.tag = tag;
+ }
+ shouldLogTrace() {
+ var _a;
+ const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
+ switch (level) {
+ case LogLevel.Trace:
+ return true;
+ case LogLevel.Message:
+ case LogLevel.Info:
+ case LogLevel.Warn:
+ case LogLevel.Error:
+ case LogLevel.None:
+ return false;
+ }
+ }
+ shouldLogInfo() {
+ var _a;
+ const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
+ switch (level) {
+ case LogLevel.Trace:
+ case LogLevel.Message:
+ case LogLevel.Info:
+ return true;
+ case LogLevel.Warn:
+ case LogLevel.Error:
+ case LogLevel.None:
+ return false;
+ }
+ }
+ shouldLogWarn() {
+ var _a;
+ const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
+ switch (level) {
+ case LogLevel.Trace:
+ case LogLevel.Message:
+ case LogLevel.Info:
+ case LogLevel.Warn:
+ return true;
+ case LogLevel.Error:
+ case LogLevel.None:
+ return false;
+ }
+ }
+ shouldLogError() {
+ var _a;
+ const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
+ switch (level) {
+ case LogLevel.Trace:
+ case LogLevel.Message:
+ case LogLevel.Info:
+ case LogLevel.Warn:
+ case LogLevel.Error:
+ return true;
+ case LogLevel.None:
+ return false;
+ }
+ }
+ info(message, ...args) {
+ if (!this.shouldLogInfo()) {
+ return;
+ }
+ if (nativeLogging) {
+ writeNativeLog(message, this.tag, 2, args);
+ return;
+ }
+ if (isNode) {
+ writeNodeLog(message, this.tag, "INFO", args);
+ } else {
+ console.info(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} INFO ` + message, ...args);
+ }
+ }
+ warn(message, ...args) {
+ if (!this.shouldLogWarn()) {
+ return;
+ }
+ if (nativeLogging) {
+ writeNativeLog(message, this.tag, 3, args);
+ return;
+ }
+ if (isNode) {
+ writeNodeLog(message, this.tag, "WARN", args);
+ } else {
+ console.warn(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} INFO ` + message, ...args);
+ }
+ }
+ error(message, ...args) {
+ if (!this.shouldLogError()) {
+ return;
+ }
+ if (nativeLogging) {
+ writeNativeLog(message, this.tag, 4, args);
+ return;
+ }
+ if (isNode) {
+ writeNodeLog(message, this.tag, "ERROR", args);
+ } else {
+ console.info(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} ERROR ` + message, ...args);
+ }
+ }
+ trace(message, ...args) {
+ if (!this.shouldLogTrace()) {
+ return;
+ }
+ if (nativeLogging) {
+ writeNativeLog(message, this.tag, 1, args);
+ return;
+ }
+ if (isNode) {
+ writeNodeLog(message, this.tag, "TRACE", args);
+ } else {
+ console.info(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} TRACE ` + message, ...args);
+ }
+ }
+ reportBreak() {
+ if (!this.shouldLogError()) {
+ return;
+ }
+ const location2 = new Error("programming error");
+ this.error(`assertion failed: ${location2.stack}`);
+ }
+};
+
+// ../taler-util/lib/codec.js
+var logger = new Logger("codec.ts");
+var DecodingError = class _DecodingError extends Error {
+ constructor(message) {
+ super(message);
+ Object.setPrototypeOf(this, _DecodingError.prototype);
+ this.name = "DecodingError";
+ }
+};
+function renderContext(c5) {
+ const p4 = c5 == null ? void 0 : c5.path;
+ if (p4) {
+ return p4.join(".");
+ } else {
+ return "(unknown)";
+ }
+}
+function joinContext(c5, part) {
+ var _a;
+ const path = (_a = c5 == null ? void 0 : c5.path) != null ? _a : [];
+ return {
+ path: path.concat([part])
+ };
+}
+var ObjectCodecBuilder = class {
+ constructor() {
+ this.propList = [];
+ }
+ /**
+ * Define a property for the object.
+ */
+ property(x7, codec) {
+ if (!codec) {
+ throw Error("inner codec must be defined");
+ }
+ this.propList.push({ name: x7, codec });
+ return this;
+ }
+ /**
+ * Return the built codec.
+ *
+ * @param objectDisplayName name of the object that this codec operates on,
+ * used in error messages.
+ */
+ build(objectDisplayName) {
+ const propList = this.propList;
+ return {
+ decode(x7, c5) {
+ if (!c5) {
+ c5 = {
+ path: [`(${objectDisplayName})`]
+ };
+ }
+ if (typeof x7 !== "object") {
+ throw new DecodingError(`expected object for ${objectDisplayName} at ${renderContext(c5)} but got ${typeof x7}`);
+ }
+ const obj = {};
+ for (const prop of propList) {
+ const propRawVal = x7[prop.name];
+ const propVal = prop.codec.decode(propRawVal, joinContext(c5, prop.name));
+ obj[prop.name] = propVal;
+ }
+ return obj;
+ }
+ };
+ }
+};
+function buildCodecForObject() {
+ return new ObjectCodecBuilder();
+}
+function codecForMap(innerCodec) {
+ if (!innerCodec) {
+ throw Error("inner codec must be defined");
+ }
+ return {
+ decode(x7, c5) {
+ const map2 = {};
+ if (typeof x7 !== "object") {
+ throw new DecodingError(`expected object at ${renderContext(c5)}`);
+ }
+ for (const i5 in x7) {
+ map2[i5] = innerCodec.decode(x7[i5], joinContext(c5, `[${i5}]`));
+ }
+ return map2;
+ }
+ };
+}
+function codecForList(innerCodec) {
+ if (!innerCodec) {
+ throw Error("inner codec must be defined");
+ }
+ return {
+ decode(x7, c5) {
+ const arr = [];
+ if (!Array.isArray(x7)) {
+ throw new DecodingError(`expected array at ${renderContext(c5)}`);
+ }
+ for (const i5 in x7) {
+ arr.push(innerCodec.decode(x7[i5], joinContext(c5, `[${i5}]`)));
+ }
+ return arr;
+ }
+ };
+}
+function codecForNumber() {
+ return {
+ decode(x7, c5) {
+ if (typeof x7 === "number") {
+ return x7;
+ }
+ throw new DecodingError(`expected number at ${renderContext(c5)} but got ${typeof x7}`);
+ }
+ };
+}
+function codecForBoolean() {
+ return {
+ decode(x7, c5) {
+ if (typeof x7 === "boolean") {
+ return x7;
+ }
+ throw new DecodingError(`expected boolean at ${renderContext(c5)} but got ${typeof x7}`);
+ }
+ };
+}
+function codecForString() {
+ return {
+ decode(x7, c5) {
+ if (typeof x7 === "string") {
+ return x7;
+ }
+ throw new DecodingError(`expected string at ${renderContext(c5)} but got ${typeof x7}`);
+ }
+ };
+}
+function codecForAny() {
+ return {
+ decode(x7, c5) {
+ return x7;
+ }
+ };
+}
+function codecForConstString(s6) {
+ return {
+ decode(x7, c5) {
+ if (x7 === s6) {
+ return x7;
+ }
+ if (typeof x7 !== "string") {
+ throw new DecodingError(`expected string constant "${s6}" at ${renderContext(c5)} but got ${typeof x7}`);
+ }
+ throw new DecodingError(`expected string constant "${s6}" at ${renderContext(c5)} but got string value "${x7}"`);
+ }
+ };
+}
+function codecOptional(innerCodec) {
+ return {
+ decode(x7, c5) {
+ if (x7 === void 0 || x7 === null) {
+ return void 0;
+ }
+ return innerCodec.decode(x7, c5);
+ }
+ };
+}
+function codecForEither(...alts) {
+ return {
+ decode(x7, c5) {
+ for (const alt of alts) {
+ try {
+ return alt.decode(x7, c5);
+ } catch (e5) {
+ continue;
+ }
+ }
+ if (logger.shouldLogTrace()) {
+ logger.trace(`offending value: ${j2s(x7)}`);
+ }
+ throw new DecodingError(`No alternative matched at at ${renderContext(c5)}`);
+ }
+ };
+}
+var x = codecForEither(codecForString(), codecForNumber());
+
+// ../taler-util/lib/amounts.js
+var amountFractionalBase = 1e8;
+var amountFractionalLength = 8;
+var amountMaxValue = __pow(2, 52);
+var FRAC_SEPARATOR = ".";
+function codecForAmountString() {
+ return {
+ decode(x7, c5) {
+ if (typeof x7 !== "string") {
+ throw new DecodingError(`expected string at ${renderContext(c5)} but got ${typeof x7}`);
+ }
+ if (Amounts.parse(x7) === void 0) {
+ throw new DecodingError(`invalid amount at ${renderContext(c5)} got "${x7}"`);
+ }
+ return x7;
+ }
+ };
+}
+var Amounts = class _Amounts {
+ constructor() {
+ throw Error("not instantiable");
+ }
+ static currencyOf(amount) {
+ const amt = _Amounts.parseOrThrow(amount);
+ return amt.currency;
+ }
+ static zeroOfAmount(amount) {
+ const amt = _Amounts.parseOrThrow(amount);
+ return {
+ currency: amt.currency,
+ fraction: 0,
+ value: 0
+ };
+ }
+ /**
+ * Get an amount that represents zero units of a currency.
+ */
+ static zeroOfCurrency(currency) {
+ return {
+ currency,
+ fraction: 0,
+ value: 0
+ };
+ }
+ static jsonifyAmount(amt) {
+ if (typeof amt === "string") {
+ return _Amounts.parseOrThrow(amt);
+ }
+ return amt;
+ }
+ static divmod(a1, a23) {
+ const am1 = _Amounts.jsonifyAmount(a1);
+ const am2 = _Amounts.jsonifyAmount(a23);
+ if (am1.currency != am2.currency) {
+ throw Error(`incompatible currency (${am1.currency} vs${am2.currency})`);
+ }
+ const x1 = BigInt(am1.value) * BigInt(amountFractionalBase) + BigInt(am1.fraction);
+ const x22 = BigInt(am2.value) * BigInt(amountFractionalBase) + BigInt(am2.fraction);
+ const quotient = x1 / x22;
+ const remainderScaled = x1 % x22;
+ return {
+ quotient: Number(quotient),
+ remainder: {
+ currency: am1.currency,
+ value: Number(remainderScaled / BigInt(amountFractionalBase)),
+ fraction: Number(remainderScaled % BigInt(amountFractionalBase))
+ }
+ };
+ }
+ static sum(amounts) {
+ if (amounts.length <= 0) {
+ throw Error("can't sum zero amounts");
+ }
+ const jsonAmounts = amounts.map((x7) => _Amounts.jsonifyAmount(x7));
+ return _Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));
+ }
+ static sumOrZero(currency, amounts) {
+ if (amounts.length <= 0) {
+ return {
+ amount: _Amounts.zeroOfCurrency(currency),
+ saturated: false
+ };
+ }
+ const jsonAmounts = amounts.map((x7) => _Amounts.jsonifyAmount(x7));
+ return _Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));
+ }
+ /**
+ * Add two amounts. Return the result and whether
+ * the addition overflowed. The overflow is always handled
+ * by saturating and never by wrapping.
+ *
+ * Throws when currencies don't match.
+ */
+ static add(first, ...rest) {
+ const firstJ = _Amounts.jsonifyAmount(first);
+ const currency = firstJ.currency;
+ let value = firstJ.value + Math.floor(firstJ.fraction / amountFractionalBase);
+ if (value > amountMaxValue) {
+ return {
+ amount: {
+ currency,
+ value: amountMaxValue,
+ fraction: amountFractionalBase - 1
+ },
+ saturated: true
+ };
+ }
+ let fraction = firstJ.fraction % amountFractionalBase;
+ for (const x7 of rest) {
+ const xJ = _Amounts.jsonifyAmount(x7);
+ if (xJ.currency.toUpperCase() !== currency.toUpperCase()) {
+ throw Error(`Mismatched currency: ${xJ.currency} and ${currency}`);
+ }
+ value = value + xJ.value + Math.floor((fraction + xJ.fraction) / amountFractionalBase);
+ fraction = Math.floor((fraction + xJ.fraction) % amountFractionalBase);
+ if (value > amountMaxValue) {
+ return {
+ amount: {
+ currency,
+ value: amountMaxValue,
+ fraction: amountFractionalBase - 1
+ },
+ saturated: true
+ };
+ }
+ }
+ return { amount: { currency, value, fraction }, saturated: false };
+ }
+ /**
+ * Subtract two amounts. Return the result and whether
+ * the subtraction overflowed. The overflow is always handled
+ * by saturating and never by wrapping.
+ *
+ * Throws when currencies don't match.
+ */
+ static sub(a6, ...rest) {
+ const aJ = _Amounts.jsonifyAmount(a6);
+ const currency = aJ.currency;
+ let value = aJ.value;
+ let fraction = aJ.fraction;
+ for (const b5 of rest) {
+ const bJ = _Amounts.jsonifyAmount(b5);
+ if (bJ.currency.toUpperCase() !== aJ.currency.toUpperCase()) {
+ throw Error(`Mismatched currency: ${bJ.currency} and ${currency}`);
+ }
+ if (fraction < bJ.fraction) {
+ if (value < 1) {
+ return {
+ amount: { currency, value: 0, fraction: 0 },
+ saturated: true
+ };
+ }
+ value--;
+ fraction += amountFractionalBase;
+ }
+ console.assert(fraction >= bJ.fraction);
+ fraction -= bJ.fraction;
+ if (value < bJ.value) {
+ return { amount: { currency, value: 0, fraction: 0 }, saturated: true };
+ }
+ value -= bJ.value;
+ }
+ return { amount: { currency, value, fraction }, saturated: false };
+ }
+ /**
+ * Compare two amounts. Returns 0 when equal, -1 when a < b
+ * and +1 when a > b. Throws when currencies don't match.
+ */
+ static cmp(a6, b5) {
+ a6 = _Amounts.jsonifyAmount(a6);
+ b5 = _Amounts.jsonifyAmount(b5);
+ if (a6.currency !== b5.currency) {
+ throw Error(`Mismatched currency: ${a6.currency} and ${b5.currency}`);
+ }
+ const av = a6.value + Math.floor(a6.fraction / amountFractionalBase);
+ const af = a6.fraction % amountFractionalBase;
+ const bv = b5.value + Math.floor(b5.fraction / amountFractionalBase);
+ const bf = b5.fraction % amountFractionalBase;
+ switch (true) {
+ case av < bv:
+ return -1;
+ case av > bv:
+ return 1;
+ case af < bf:
+ return -1;
+ case af > bf:
+ return 1;
+ case af === bf:
+ return 0;
+ default:
+ throw Error("assertion failed");
+ }
+ }
+ /**
+ * Create a copy of an amount.
+ */
+ static copy(a6) {
+ return {
+ currency: a6.currency,
+ fraction: a6.fraction,
+ value: a6.value
+ };
+ }
+ /**
+ * Divide an amount. Throws on division by zero.
+ */
+ static divide(a6, n2) {
+ if (n2 === 0) {
+ throw Error(`Division by 0`);
+ }
+ if (n2 === 1) {
+ return { value: a6.value, fraction: a6.fraction, currency: a6.currency };
+ }
+ const r3 = a6.value % n2;
+ return {
+ currency: a6.currency,
+ fraction: Math.floor((r3 * amountFractionalBase + a6.fraction) / n2),
+ value: Math.floor(a6.value / n2)
+ };
+ }
+ /**
+ * Check if an amount is non-zero.
+ */
+ static isNonZero(a6) {
+ a6 = _Amounts.jsonifyAmount(a6);
+ return a6.value > 0 || a6.fraction > 0;
+ }
+ static isZero(a6) {
+ a6 = _Amounts.jsonifyAmount(a6);
+ return a6.value === 0 && a6.fraction === 0;
+ }
+ /**
+ * Parse an amount like 'EUR:20.5' for 20 Euros and 50 ct.
+ *
+ * Currency name size limit is 11 of ASCII letters
+ * Fraction size limit is 8
+ */
+ static parse(s6) {
+ const res = s6.match(/^([a-zA-Z]{1,11}):([0-9]+)([.][0-9]{1,8})?$/);
+ if (!res) {
+ return void 0;
+ }
+ const tail = res[3] || FRAC_SEPARATOR + "0";
+ if (tail.length > amountFractionalLength + 1) {
+ return void 0;
+ }
+ const value = Number.parseInt(res[2]);
+ if (value > amountMaxValue) {
+ return void 0;
+ }
+ return {
+ currency: res[1].toUpperCase(),
+ fraction: Math.round(amountFractionalBase * Number.parseFloat(tail)),
+ value
+ };
+ }
+ /**
+ * Parse amount in standard string form (like 'EUR:20.5'),
+ * throw if the input is not a valid amount.
+ */
+ static parseOrThrow(s6) {
+ if (typeof s6 === "object") {
+ if (typeof s6.currency !== "string") {
+ throw Error("invalid amount object");
+ }
+ if (typeof s6.value !== "number") {
+ throw Error("invalid amount object");
+ }
+ if (typeof s6.fraction !== "number") {
+ throw Error("invalid amount object");
+ }
+ return { currency: s6.currency, value: s6.value, fraction: s6.fraction };
+ } else if (typeof s6 === "string") {
+ const res = _Amounts.parse(s6);
+ if (!res) {
+ throw Error(`Can't parse amount: "${s6}"`);
+ }
+ return res;
+ } else {
+ throw Error("invalid amount (illegal type)");
+ }
+ }
+ static min(a6, b5) {
+ const cr = _Amounts.cmp(a6, b5);
+ if (cr >= 0) {
+ return _Amounts.jsonifyAmount(b5);
+ } else {
+ return _Amounts.jsonifyAmount(a6);
+ }
+ }
+ static max(a6, b5) {
+ const cr = _Amounts.cmp(a6, b5);
+ if (cr >= 0) {
+ return _Amounts.jsonifyAmount(a6);
+ } else {
+ return _Amounts.jsonifyAmount(b5);
+ }
+ }
+ static mult(a6, n2) {
+ a6 = this.jsonifyAmount(a6);
+ if (!Number.isInteger(n2)) {
+ throw Error("amount can only be multipied by an integer");
+ }
+ if (n2 < 0) {
+ throw Error("amount can only be multiplied by a positive integer");
+ }
+ if (n2 == 0) {
+ return {
+ amount: _Amounts.zeroOfCurrency(a6.currency),
+ saturated: false
+ };
+ }
+ let x7 = a6;
+ let acc = _Amounts.zeroOfCurrency(a6.currency);
+ while (n2 > 1) {
+ if (n2 % 2 == 0) {
+ n2 = n2 / 2;
+ } else {
+ n2 = (n2 - 1) / 2;
+ const r23 = _Amounts.add(acc, x7);
+ if (r23.saturated) {
+ return r23;
+ }
+ acc = r23.amount;
+ }
+ const r22 = _Amounts.add(x7, x7);
+ if (r22.saturated) {
+ return r22;
+ }
+ x7 = r22.amount;
+ }
+ return _Amounts.add(acc, x7);
+ }
+ /**
+ * Check if the argument is a valid amount in string form.
+ */
+ static check(a6) {
+ if (typeof a6 !== "string") {
+ return false;
+ }
+ try {
+ const parsedAmount = _Amounts.parse(a6);
+ return !!parsedAmount;
+ } catch (e5) {
+ return false;
+ }
+ }
+ /**
+ * Convert to standard human-readable string representation that's
+ * also used in JSON formats.
+ */
+ static stringify(a6) {
+ a6 = _Amounts.jsonifyAmount(a6);
+ const s6 = this.stringifyValue(a6);
+ return `${a6.currency}:${s6}`;
+ }
+ static isSameCurrency(a1, a23) {
+ const x1 = this.jsonifyAmount(a1);
+ const x22 = this.jsonifyAmount(a23);
+ return x1.currency.toUpperCase() === x22.currency.toUpperCase();
+ }
+ static stringifyValue(a6, minFractional = 0) {
+ const aJ = _Amounts.jsonifyAmount(a6);
+ const av = aJ.value + Math.floor(aJ.fraction / amountFractionalBase);
+ const af = aJ.fraction % amountFractionalBase;
+ let s6 = av.toString();
+ if (af || minFractional) {
+ s6 = s6 + FRAC_SEPARATOR;
+ let n2 = af;
+ for (let i5 = 0; i5 < amountFractionalLength; i5++) {
+ if (!n2 && i5 >= minFractional) {
+ break;
+ }
+ s6 = s6 + Math.floor(n2 / amountFractionalBase * 10).toString();
+ n2 = n2 * 10 % amountFractionalBase;
+ }
+ }
+ return s6;
+ }
+ /**
+ * Number of fractional digits needed to fully represent the amount
+ * @param a amount
+ * @returns
+ */
+ static maxFractionalDigits(a6) {
+ if (a6.fraction === 0)
+ return 0;
+ if (a6.fraction < 0) {
+ console.error("amount fraction can not be negative", a6);
+ return 0;
+ }
+ let i5 = 0;
+ let check = true;
+ let rest = a6.fraction;
+ while (rest > 0 && check) {
+ check = rest % 10 === 0;
+ rest = rest / 10;
+ i5++;
+ }
+ return amountFractionalLength - i5 + 1;
+ }
+ static stringifyValueWithSpec(value, spec) {
+ const strValue = _Amounts.stringifyValue(value);
+ const pos = strValue.indexOf(FRAC_SEPARATOR);
+ const originalPosition = pos < 0 ? strValue.length : pos;
+ let currency = value.currency;
+ const names2 = Object.keys(spec.alt_unit_names);
+ let FRAC_POS_NEW_POSITION = originalPosition;
+ if (names2.length > 0) {
+ let unitIndex = "0";
+ names2.forEach((index) => {
+ const i5 = Number.parseInt(index, 10);
+ if (Number.isNaN(i5))
+ return;
+ if (originalPosition - i5 <= 0)
+ return;
+ if (originalPosition - i5 < FRAC_POS_NEW_POSITION) {
+ FRAC_POS_NEW_POSITION = originalPosition - i5;
+ unitIndex = index;
+ }
+ });
+ currency = spec.alt_unit_names[unitIndex];
+ }
+ if (originalPosition === FRAC_POS_NEW_POSITION) {
+ const { normal: normal2, small: small2 } = splitNormalAndSmall(strValue, originalPosition, spec);
+ return { currency, normal: normal2, small: small2 };
+ }
+ const intPart = strValue.substring(0, originalPosition);
+ const fracPArt = strValue.substring(originalPosition + 1);
+ const newValue = intPart.substring(0, FRAC_POS_NEW_POSITION) + FRAC_SEPARATOR + intPart.substring(FRAC_POS_NEW_POSITION) + fracPArt;
+ const { normal, small } = splitNormalAndSmall(newValue, FRAC_POS_NEW_POSITION, spec);
+ return { currency, normal, small };
+ }
+};
+function splitNormalAndSmall(decimal, fracSeparatorIndex, spec) {
+ let normal;
+ let small;
+ if (decimal.length - fracSeparatorIndex - 1 > spec.num_fractional_normal_digits) {
+ const limit = fracSeparatorIndex + spec.num_fractional_normal_digits + 1;
+ normal = decimal.substring(0, limit);
+ small = decimal.substring(limit);
+ } else {
+ normal = decimal;
+ small = void 0;
+ }
+ return { normal, small };
}
// ../taler-util/lib/libtool-version.js
@@ -8518,11 +8741,10 @@ var LibtoolVersion;
var NotificationType;
(function(NotificationType2) {
NotificationType2["BalanceChange"] = "balance-change";
- NotificationType2["ExchangeOperationError"] = "exchange-operation-error";
- NotificationType2["ExchangeAdded"] = "exchange-added";
NotificationType2["BackupOperationError"] = "backup-error";
NotificationType2["PendingOperationProcessed"] = "pending-operation-processed";
NotificationType2["TransactionStateTransition"] = "transaction-state-transition";
+ NotificationType2["ExchangeStateTransition"] = "exchange-state-transition";
})(NotificationType || (NotificationType = {}));
// ../taler-util/lib/sha256.js
@@ -8594,45 +8816,45 @@ var K2 = new Uint32Array([
3204031479,
3329325298
]);
-function hashBlocks(w5, v3, p4, pos, len) {
- let a5, b4, c4, d5, e4, f3, g4, h5, u4, i4, j4, t1, t22;
+function hashBlocks(w6, v3, p4, pos, len) {
+ let a6, b5, c5, d6, e5, f3, g4, h5, u5, i5, j4, t1, t22;
while (len >= 64) {
- a5 = v3[0];
- b4 = v3[1];
- c4 = v3[2];
- d5 = v3[3];
- e4 = v3[4];
+ a6 = v3[0];
+ b5 = v3[1];
+ c5 = v3[2];
+ d6 = v3[3];
+ e5 = v3[4];
f3 = v3[5];
g4 = v3[6];
h5 = v3[7];
- for (i4 = 0; i4 < 16; i4++) {
- j4 = pos + i4 * 4;
- w5[i4] = (p4[j4] & 255) << 24 | (p4[j4 + 1] & 255) << 16 | (p4[j4 + 2] & 255) << 8 | p4[j4 + 3] & 255;
- }
- for (i4 = 16; i4 < 64; i4++) {
- u4 = w5[i4 - 2];
- t1 = (u4 >>> 17 | u4 << 32 - 17) ^ (u4 >>> 19 | u4 << 32 - 19) ^ u4 >>> 10;
- u4 = w5[i4 - 15];
- t22 = (u4 >>> 7 | u4 << 32 - 7) ^ (u4 >>> 18 | u4 << 32 - 18) ^ u4 >>> 3;
- w5[i4] = (t1 + w5[i4 - 7] | 0) + (t22 + w5[i4 - 16] | 0);
- }
- for (i4 = 0; i4 < 64; i4++) {
- t1 = (((e4 >>> 6 | e4 << 32 - 6) ^ (e4 >>> 11 | e4 << 32 - 11) ^ (e4 >>> 25 | e4 << 32 - 25)) + (e4 & f3 ^ ~e4 & g4) | 0) + (h5 + (K2[i4] + w5[i4] | 0) | 0) | 0;
- t22 = ((a5 >>> 2 | a5 << 32 - 2) ^ (a5 >>> 13 | a5 << 32 - 13) ^ (a5 >>> 22 | a5 << 32 - 22)) + (a5 & b4 ^ a5 & c4 ^ b4 & c4) | 0;
+ for (i5 = 0; i5 < 16; i5++) {
+ j4 = pos + i5 * 4;
+ w6[i5] = (p4[j4] & 255) << 24 | (p4[j4 + 1] & 255) << 16 | (p4[j4 + 2] & 255) << 8 | p4[j4 + 3] & 255;
+ }
+ for (i5 = 16; i5 < 64; i5++) {
+ u5 = w6[i5 - 2];
+ t1 = (u5 >>> 17 | u5 << 32 - 17) ^ (u5 >>> 19 | u5 << 32 - 19) ^ u5 >>> 10;
+ u5 = w6[i5 - 15];
+ t22 = (u5 >>> 7 | u5 << 32 - 7) ^ (u5 >>> 18 | u5 << 32 - 18) ^ u5 >>> 3;
+ w6[i5] = (t1 + w6[i5 - 7] | 0) + (t22 + w6[i5 - 16] | 0);
+ }
+ for (i5 = 0; i5 < 64; i5++) {
+ t1 = (((e5 >>> 6 | e5 << 32 - 6) ^ (e5 >>> 11 | e5 << 32 - 11) ^ (e5 >>> 25 | e5 << 32 - 25)) + (e5 & f3 ^ ~e5 & g4) | 0) + (h5 + (K2[i5] + w6[i5] | 0) | 0) | 0;
+ t22 = ((a6 >>> 2 | a6 << 32 - 2) ^ (a6 >>> 13 | a6 << 32 - 13) ^ (a6 >>> 22 | a6 << 32 - 22)) + (a6 & b5 ^ a6 & c5 ^ b5 & c5) | 0;
h5 = g4;
g4 = f3;
- f3 = e4;
- e4 = d5 + t1 | 0;
- d5 = c4;
- c4 = b4;
- b4 = a5;
- a5 = t1 + t22 | 0;
- }
- v3[0] += a5;
- v3[1] += b4;
- v3[2] += c4;
- v3[3] += d5;
- v3[4] += e4;
+ f3 = e5;
+ e5 = d6 + t1 | 0;
+ d6 = c5;
+ c5 = b5;
+ b5 = a6;
+ a6 = t1 + t22 | 0;
+ }
+ v3[0] += a6;
+ v3[1] += b5;
+ v3[2] += c5;
+ v3[3] += d6;
+ v3[4] += e5;
v3[5] += f3;
v3[6] += g4;
v3[7] += h5;
@@ -8671,11 +8893,11 @@ var HashSha256 = class {
}
// Cleans internal buffers and re-initializes hash state.
clean() {
- for (let i4 = 0; i4 < this.buffer.length; i4++) {
- this.buffer[i4] = 0;
+ for (let i5 = 0; i5 < this.buffer.length; i5++) {
+ this.buffer[i5] = 0;
}
- for (let i4 = 0; i4 < this.temp.length; i4++) {
- this.temp[i4] = 0;
+ for (let i5 = 0; i5 < this.temp.length; i5++) {
+ this.temp[i5] = 0;
}
this.reset();
}
@@ -8723,8 +8945,8 @@ var HashSha256 = class {
const bitLenLo = bytesHashed << 3;
const padLength = bytesHashed % 64 < 56 ? 64 : 128;
this.buffer[left] = 128;
- for (let i4 = left + 1; i4 < padLength - 8; i4++) {
- this.buffer[i4] = 0;
+ for (let i5 = left + 1; i5 < padLength - 8; i5++) {
+ this.buffer[i5] = 0;
}
this.buffer[padLength - 8] = bitLenHi >>> 24 & 255;
this.buffer[padLength - 7] = bitLenHi >>> 16 & 255;
@@ -8737,11 +8959,11 @@ var HashSha256 = class {
hashBlocks(this.temp, this.state, this.buffer, 0, padLength);
this.finished = true;
}
- for (let i4 = 0; i4 < 8; i4++) {
- out[i4 * 4 + 0] = this.state[i4] >>> 24 & 255;
- out[i4 * 4 + 1] = this.state[i4] >>> 16 & 255;
- out[i4 * 4 + 2] = this.state[i4] >>> 8 & 255;
- out[i4 * 4 + 3] = this.state[i4] >>> 0 & 255;
+ for (let i5 = 0; i5 < 8; i5++) {
+ out[i5 * 4 + 0] = this.state[i5] >>> 24 & 255;
+ out[i5 * 4 + 1] = this.state[i5] >>> 16 & 255;
+ out[i5 * 4 + 2] = this.state[i5] >>> 8 & 255;
+ out[i5 * 4 + 3] = this.state[i5] >>> 0 & 255;
}
return this;
}
@@ -8753,14 +8975,14 @@ var HashSha256 = class {
}
// Internal function for use in HMAC for optimization.
_saveState(out) {
- for (let i4 = 0; i4 < this.state.length; i4++) {
- out[i4] = this.state[i4];
+ for (let i5 = 0; i5 < this.state.length; i5++) {
+ out[i5] = this.state[i5];
}
}
// Internal function for use in HMAC for optimization.
_restoreState(from, bytesHashed) {
- for (let i4 = 0; i4 < this.state.length; i4++) {
- this.state[i4] = from[i4];
+ for (let i5 = 0; i5 < this.state.length; i5++) {
+ this.state[i5] = from[i5];
}
this.bytesHashed = bytesHashed;
this.finished = false;
@@ -8783,15 +9005,15 @@ function hmac(digest, blockSize2, key, message) {
key = digest(key);
}
if (key.byteLength < blockSize2) {
- const k5 = key;
+ const k6 = key;
key = new Uint8Array(blockSize2);
- key.set(k5, 0);
+ key.set(k6, 0);
}
const okp = new Uint8Array(blockSize2);
const ikp = new Uint8Array(blockSize2);
- for (let i4 = 0; i4 < blockSize2; i4++) {
- ikp[i4] = key[i4] ^ 54;
- okp[i4] = key[i4] ^ 92;
+ for (let i5 = 0; i5 < blockSize2; i5++) {
+ ikp[i5] = key[i5] ^ 54;
+ okp[i5] = key[i5] ^ 92;
}
const b1 = new Uint8Array(blockSize2 + message.byteLength);
b1.set(ikp, 0);
@@ -8821,16 +9043,16 @@ var TalerPreciseTimestamp;
return AbsoluteTime.toPreciseTimestamp(absNow);
}
TalerPreciseTimestamp2.now = now;
- function round(t4) {
+ function round(t5) {
return {
- t_s: t4.t_s
+ t_s: t5.t_s
};
}
TalerPreciseTimestamp2.round = round;
- function fromSeconds(s5) {
+ function fromSeconds(s6) {
return {
- t_s: Math.floor(s5),
- off_us: Math.floor((s5 - Math.floor(s5)) / 1e3 / 1e3)
+ t_s: Math.floor(s6),
+ off_us: Math.floor((s6 - Math.floor(s6)) / 1e3 / 1e3)
};
}
TalerPreciseTimestamp2.fromSeconds = fromSeconds;
@@ -8860,13 +9082,13 @@ var TalerProtocolTimestamp;
};
}
TalerProtocolTimestamp2.never = never;
- function isNever(t4) {
- return t4.t_s === "never";
+ function isNever(t5) {
+ return t5.t_s === "never";
}
TalerProtocolTimestamp2.isNever = isNever;
- function fromSeconds(s5) {
+ function fromSeconds(s6) {
return {
- t_s: s5
+ t_s: s6
};
}
TalerProtocolTimestamp2.fromSeconds = fromSeconds;
@@ -8891,11 +9113,11 @@ var TalerProtocolTimestamp;
var timeshift = 0;
var Duration;
(function(Duration2) {
- function toMilliseconds(d5) {
- if (d5.d_ms === "forever") {
+ function toMilliseconds(d6) {
+ if (d6.d_ms === "forever") {
return Number.MAX_VALUE;
}
- return d5.d_ms;
+ return d6.d_ms;
}
Duration2.toMilliseconds = toMilliseconds;
function getRemaining(deadline, now = AbsoluteTime.now()) {
@@ -8911,20 +9133,20 @@ var Duration;
return { d_ms: deadline.t_ms - now.t_ms };
}
Duration2.getRemaining = getRemaining;
- function fromPrettyString(s5) {
+ function fromPrettyString(s6) {
let dMs = 0;
let currentNum = "";
let parsingNum = true;
- for (let i4 = 0; i4 < s5.length; i4++) {
- const cc = s5.charCodeAt(i4);
+ for (let i5 = 0; i5 < s6.length; i5++) {
+ const cc = s6.charCodeAt(i5);
if (cc >= "0".charCodeAt(0) && cc <= "9".charCodeAt(0)) {
if (!parsingNum) {
throw Error("invalid duration, unexpected number");
}
- currentNum += s5[i4];
+ currentNum += s6[i5];
continue;
}
- if (s5[i4] == " ") {
+ if (s6[i5] == " ") {
if (currentNum != "") {
parsingNum = false;
}
@@ -8933,13 +9155,13 @@ var Duration;
if (currentNum == "") {
throw Error("invalid duration, missing number");
}
- if (s5[i4] === "s") {
+ if (s6[i5] === "s") {
dMs += 1e3 * Number.parseInt(currentNum, 10);
- } else if (s5[i4] === "m") {
+ } else if (s6[i5] === "m") {
dMs += 60 * 1e3 * Number.parseInt(currentNum, 10);
- } else if (s5[i4] === "h") {
+ } else if (s6[i5] === "h") {
dMs += 60 * 60 * 1e3 * Number.parseInt(currentNum, 10);
- } else if (s5[i4] === "d") {
+ } else if (s6[i5] === "d") {
dMs += 24 * 60 * 60 * 1e3 * Number.parseInt(currentNum, 10);
} else {
throw Error("invalid duration, unsupported unit");
@@ -8952,42 +9174,42 @@ var Duration;
};
}
Duration2.fromPrettyString = fromPrettyString;
- function cmp(d1, d22) {
+ function cmp(d1, d23) {
if (d1.d_ms === "forever") {
- if (d22.d_ms === "forever") {
+ if (d23.d_ms === "forever") {
return 0;
}
return 1;
}
- if (d22.d_ms === "forever") {
+ if (d23.d_ms === "forever") {
return -1;
}
- if (d1.d_ms == d22.d_ms) {
+ if (d1.d_ms == d23.d_ms) {
return 0;
}
- if (d1.d_ms > d22.d_ms) {
+ if (d1.d_ms > d23.d_ms) {
return 1;
}
return -1;
}
Duration2.cmp = cmp;
- function max(d1, d22) {
- return durationMax(d1, d22);
+ function max(d1, d23) {
+ return durationMax(d1, d23);
}
Duration2.max = max;
- function min(d1, d22) {
- return durationMin(d1, d22);
+ function min(d1, d23) {
+ return durationMin(d1, d23);
}
Duration2.min = min;
function multiply(d1, n2) {
return durationMul(d1, n2);
}
Duration2.multiply = multiply;
- function toIntegerYears(d5) {
- if (typeof d5.d_ms !== "number") {
+ function toIntegerYears(d6) {
+ if (typeof d6.d_ms !== "number") {
throw Error("infinite duration");
}
- return Math.ceil(d5.d_ms / 1e3 / 60 / 60 / 24 / 365);
+ return Math.ceil(d6.d_ms / 1e3 / 60 / 60 / 24 / 365);
}
Duration2.toIntegerYears = toIntegerYears;
Duration2.fromSpec = durationFromSpec;
@@ -8999,25 +9221,25 @@ var Duration;
return { d_ms: 0 };
}
Duration2.getZero = getZero;
- function fromTalerProtocolDuration(d5) {
- if (d5.d_us === "forever") {
+ function fromTalerProtocolDuration(d6) {
+ if (d6.d_us === "forever") {
return {
d_ms: "forever"
};
}
return {
- d_ms: Math.floor(d5.d_us / 1e3)
+ d_ms: Math.floor(d6.d_us / 1e3)
};
}
Duration2.fromTalerProtocolDuration = fromTalerProtocolDuration;
- function toTalerProtocolDuration(d5) {
- if (d5.d_ms === "forever") {
+ function toTalerProtocolDuration(d6) {
+ if (d6.d_ms === "forever") {
return {
d_us: "forever"
};
}
return {
- d_us: d5.d_ms * 1e3
+ d_us: d6.d_ms * 1e3
};
}
Duration2.toTalerProtocolDuration = toTalerProtocolDuration;
@@ -9033,36 +9255,36 @@ var Duration;
Duration2.clamp = clamp;
})(Duration || (Duration = {}));
var AbsoluteTime;
-(function(AbsoluteTime4) {
+(function(AbsoluteTime3) {
function getStampMsNow() {
return (/* @__PURE__ */ new Date()).getTime();
}
- AbsoluteTime4.getStampMsNow = getStampMsNow;
+ AbsoluteTime3.getStampMsNow = getStampMsNow;
function getStampMsNever() {
return Number.MAX_SAFE_INTEGER;
}
- AbsoluteTime4.getStampMsNever = getStampMsNever;
+ AbsoluteTime3.getStampMsNever = getStampMsNever;
function now() {
return {
t_ms: (/* @__PURE__ */ new Date()).getTime() + timeshift,
[opaque_AbsoluteTime]: true
};
}
- AbsoluteTime4.now = now;
+ AbsoluteTime3.now = now;
function never() {
return {
t_ms: "never",
[opaque_AbsoluteTime]: true
};
}
- AbsoluteTime4.never = never;
+ AbsoluteTime3.never = never;
function fromMilliseconds(ms) {
return {
t_ms: ms,
[opaque_AbsoluteTime]: true
};
}
- AbsoluteTime4.fromMilliseconds = fromMilliseconds;
+ AbsoluteTime3.fromMilliseconds = fromMilliseconds;
function cmp(t1, t22) {
if (t1.t_ms === "never") {
if (t22.t_ms === "never") {
@@ -9081,7 +9303,7 @@ var AbsoluteTime;
}
return -1;
}
- AbsoluteTime4.cmp = cmp;
+ AbsoluteTime3.cmp = cmp;
function min(t1, t22) {
if (t1.t_ms === "never") {
return { t_ms: t22.t_ms, [opaque_AbsoluteTime]: true };
@@ -9091,7 +9313,7 @@ var AbsoluteTime;
}
return { t_ms: Math.min(t1.t_ms, t22.t_ms), [opaque_AbsoluteTime]: true };
}
- AbsoluteTime4.min = min;
+ AbsoluteTime3.min = min;
function max(t1, t22) {
if (t1.t_ms === "never") {
return { t_ms: "never", [opaque_AbsoluteTime]: true };
@@ -9101,7 +9323,7 @@ var AbsoluteTime;
}
return { t_ms: Math.max(t1.t_ms, t22.t_ms), [opaque_AbsoluteTime]: true };
}
- AbsoluteTime4.max = max;
+ AbsoluteTime3.max = max;
function difference(t1, t22) {
if (t1.t_ms === "never") {
return { d_ms: "forever" };
@@ -9111,47 +9333,47 @@ var AbsoluteTime;
}
return { d_ms: Math.abs(t1.t_ms - t22.t_ms) };
}
- AbsoluteTime4.difference = difference;
- function isExpired(t4) {
- return cmp(t4, now()) <= 0;
+ AbsoluteTime3.difference = difference;
+ function isExpired(t5) {
+ return cmp(t5, now()) <= 0;
}
- AbsoluteTime4.isExpired = isExpired;
- function fromProtocolTimestamp(t4) {
- if (t4.t_s === "never") {
+ AbsoluteTime3.isExpired = isExpired;
+ function fromProtocolTimestamp(t5) {
+ if (t5.t_s === "never") {
return { t_ms: "never", [opaque_AbsoluteTime]: true };
}
return {
- t_ms: t4.t_s * 1e3,
+ t_ms: t5.t_s * 1e3,
[opaque_AbsoluteTime]: true
};
}
- AbsoluteTime4.fromProtocolTimestamp = fromProtocolTimestamp;
+ AbsoluteTime3.fromProtocolTimestamp = fromProtocolTimestamp;
function fromStampMs(stampMs) {
return {
t_ms: stampMs,
[opaque_AbsoluteTime]: true
};
}
- AbsoluteTime4.fromStampMs = fromStampMs;
- function fromPreciseTimestamp(t4) {
+ AbsoluteTime3.fromStampMs = fromStampMs;
+ function fromPreciseTimestamp(t5) {
var _a;
- if (t4.t_s === "never") {
+ if (t5.t_s === "never") {
return { t_ms: "never", [opaque_AbsoluteTime]: true };
}
- const offsetUs = (_a = t4.off_us) != null ? _a : 0;
+ const offsetUs = (_a = t5.off_us) != null ? _a : 0;
return {
- t_ms: t4.t_s * 1e3 + Math.floor(offsetUs / 1e3),
+ t_ms: t5.t_s * 1e3 + Math.floor(offsetUs / 1e3),
[opaque_AbsoluteTime]: true
};
}
- AbsoluteTime4.fromPreciseTimestamp = fromPreciseTimestamp;
+ AbsoluteTime3.fromPreciseTimestamp = fromPreciseTimestamp;
function toStampMs(at2) {
if (at2.t_ms === "never") {
return Number.MAX_SAFE_INTEGER;
}
return at2.t_ms;
}
- AbsoluteTime4.toStampMs = toStampMs;
+ AbsoluteTime3.toStampMs = toStampMs;
function toPreciseTimestamp(at2) {
if (at2.t_ms == "never") {
return {
@@ -9165,7 +9387,7 @@ var AbsoluteTime;
off_us
};
}
- AbsoluteTime4.toPreciseTimestamp = toPreciseTimestamp;
+ AbsoluteTime3.toPreciseTimestamp = toPreciseTimestamp;
function toProtocolTimestamp(at2) {
if (at2.t_ms === "never") {
return { t_s: "never" };
@@ -9174,49 +9396,49 @@ var AbsoluteTime;
t_s: Math.floor(at2.t_ms / 1e3)
};
}
- AbsoluteTime4.toProtocolTimestamp = toProtocolTimestamp;
- function isBetween(t4, start, end) {
- if (cmp(t4, start) < 0) {
+ AbsoluteTime3.toProtocolTimestamp = toProtocolTimestamp;
+ function isBetween(t5, start, end) {
+ if (cmp(t5, start) < 0) {
return false;
}
- if (cmp(t4, end) > 0) {
+ if (cmp(t5, end) > 0) {
return false;
}
return true;
}
- AbsoluteTime4.isBetween = isBetween;
- function toIsoString(t4) {
- if (t4.t_ms === "never") {
+ AbsoluteTime3.isBetween = isBetween;
+ function toIsoString(t5) {
+ if (t5.t_ms === "never") {
return "<never>";
} else {
- return new Date(t4.t_ms).toISOString();
+ return new Date(t5.t_ms).toISOString();
}
}
- AbsoluteTime4.toIsoString = toIsoString;
- function addDuration(t1, d5) {
- if (t1.t_ms === "never" || d5.d_ms === "forever") {
+ AbsoluteTime3.toIsoString = toIsoString;
+ function addDuration(t1, d6) {
+ if (t1.t_ms === "never" || d6.d_ms === "forever") {
return { t_ms: "never", [opaque_AbsoluteTime]: true };
}
- return { t_ms: t1.t_ms + d5.d_ms, [opaque_AbsoluteTime]: true };
+ return { t_ms: t1.t_ms + d6.d_ms, [opaque_AbsoluteTime]: true };
}
- AbsoluteTime4.addDuration = addDuration;
- function subtractDuraction(t1, d5) {
+ AbsoluteTime3.addDuration = addDuration;
+ function subtractDuraction(t1, d6) {
if (t1.t_ms === "never") {
return { t_ms: "never", [opaque_AbsoluteTime]: true };
}
- if (d5.d_ms === "forever") {
+ if (d6.d_ms === "forever") {
return { t_ms: 0, [opaque_AbsoluteTime]: true };
}
- return { t_ms: Math.max(0, t1.t_ms - d5.d_ms), [opaque_AbsoluteTime]: true };
+ return { t_ms: Math.max(0, t1.t_ms - d6.d_ms), [opaque_AbsoluteTime]: true };
}
- AbsoluteTime4.subtractDuraction = subtractDuraction;
- function stringify(t4) {
- if (t4.t_ms === "never") {
+ AbsoluteTime3.subtractDuraction = subtractDuraction;
+ function stringify(t5) {
+ if (t5.t_ms === "never") {
return "never";
}
- return new Date(t4.t_ms).toISOString();
+ return new Date(t5.t_ms).toISOString();
}
- AbsoluteTime4.stringify = stringify;
+ AbsoluteTime3.stringify = stringify;
})(AbsoluteTime || (AbsoluteTime = {}));
var SECONDS = 1e3;
var MINUTES = SECONDS * 60;
@@ -9235,33 +9457,33 @@ function durationFromSpec(spec) {
d_ms += ((_f = spec.years) != null ? _f : 0) * YEARS;
return { d_ms };
}
-function durationMin(d1, d22) {
+function durationMin(d1, d23) {
if (d1.d_ms === "forever") {
- return { d_ms: d22.d_ms };
+ return { d_ms: d23.d_ms };
}
- if (d22.d_ms === "forever") {
+ if (d23.d_ms === "forever") {
return { d_ms: d1.d_ms };
}
- return { d_ms: Math.min(d1.d_ms, d22.d_ms) };
+ return { d_ms: Math.min(d1.d_ms, d23.d_ms) };
}
-function durationMax(d1, d22) {
+function durationMax(d1, d23) {
if (d1.d_ms === "forever") {
return { d_ms: "forever" };
}
- if (d22.d_ms === "forever") {
+ if (d23.d_ms === "forever") {
return { d_ms: "forever" };
}
- return { d_ms: Math.max(d1.d_ms, d22.d_ms) };
+ return { d_ms: Math.max(d1.d_ms, d23.d_ms) };
}
-function durationMul(d5, n2) {
- if (d5.d_ms === "forever") {
+function durationMul(d6, n2) {
+ if (d6.d_ms === "forever") {
return { d_ms: "forever" };
}
- return { d_ms: Math.round(d5.d_ms * n2) };
+ return { d_ms: Math.round(d6.d_ms * n2) };
}
var codecForAbsoluteTime = {
- decode(x6, c4) {
- const t_ms = x6.t_ms;
+ decode(x7, c5) {
+ const t_ms = x7.t_ms;
if (typeof t_ms === "string") {
if (t_ms === "never") {
return { t_ms: "never", [opaque_AbsoluteTime]: true };
@@ -9269,12 +9491,12 @@ var codecForAbsoluteTime = {
} else if (typeof t_ms === "number") {
return { t_ms, [opaque_AbsoluteTime]: true };
}
- throw Error(`expected timestamp at ${renderContext(c4)}`);
+ throw Error(`expected timestamp at ${renderContext(c5)}`);
}
};
var codecForTimestamp = {
- decode(x6, c4) {
- const t_ms = x6.t_ms;
+ decode(x7, c5) {
+ const t_ms = x7.t_ms;
if (typeof t_ms === "string") {
if (t_ms === "never") {
return { t_s: "never" };
@@ -9282,17 +9504,17 @@ var codecForTimestamp = {
} else if (typeof t_ms === "number") {
return { t_s: Math.floor(t_ms / 1e3) };
}
- const t_s = x6.t_s;
+ const t_s = x7.t_s;
if (typeof t_s === "string") {
if (t_s === "never") {
return { t_s: "never" };
}
- throw Error(`expected timestamp at ${renderContext(c4)}`);
+ throw Error(`expected timestamp at ${renderContext(c5)}`);
}
if (typeof t_s === "number") {
return { t_s };
}
- throw Error(`expected timestamp at ${renderContext(c4)}`);
+ throw Error(`expected timestamp at ${renderContext(c5)}`);
}
};
@@ -9303,8 +9525,8 @@ var DenomKeyType;
DenomKeyType2["ClauseSchnorr"] = "CS";
})(DenomKeyType || (DenomKeyType = {}));
(function(DenomKeyType2) {
- function toIntTag(t4) {
- switch (t4) {
+ function toIntTag(t5) {
+ switch (t5) {
case DenomKeyType2.Rsa:
return 1;
case DenomKeyType2.ClauseSchnorr:
@@ -9351,179 +9573,6 @@ var MerchantProtocolVersion;
MerchantProtocolVersion2[MerchantProtocolVersion2["V3"] = 3] = "V3";
})(MerchantProtocolVersion || (MerchantProtocolVersion = {}));
-// ../taler-util/lib/logging.js
-var isNode = typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "node";
-var LogLevel;
-(function(LogLevel2) {
- LogLevel2["Trace"] = "trace";
- LogLevel2["Message"] = "message";
- LogLevel2["Info"] = "info";
- LogLevel2["Warn"] = "warn";
- LogLevel2["Error"] = "error";
- LogLevel2["None"] = "none";
-})(LogLevel || (LogLevel = {}));
-var globalLogLevel = LogLevel.Info;
-var byTagLogLevel = {};
-var nativeLogging = false;
-function writeNativeLog(message, tag, level, args) {
- const logFn = globalThis.__nativeLog;
- if (logFn) {
- let m5;
- if (args.length == 0) {
- m5 = message;
- } else {
- m5 = message + " " + args.toString();
- }
- logFn(level, tag, message);
- }
-}
-function writeNodeLog(message, tag, level, args) {
- try {
- let msg = `${(/* @__PURE__ */ new Date()).toISOString()} ${tag} ${level} ${message}`;
- if (args.length != 0) {
- msg += ` ${JSON.stringify(args, void 0, 2)}
-`;
- } else {
- msg += `
-`;
- }
- process.stderr.write(msg);
- } catch (e4) {
- let msg = `${(/* @__PURE__ */ new Date()).toISOString()} (logger) FATAL `;
- if (e4 instanceof Error) {
- msg += `failed to write log: ${e4.message}
-`;
- } else {
- msg += "failed to write log\n";
- }
- process.stderr.write(msg);
- }
-}
-var Logger = class {
- constructor(tag) {
- this.tag = tag;
- }
- shouldLogTrace() {
- var _a;
- const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
- switch (level) {
- case LogLevel.Trace:
- return true;
- case LogLevel.Message:
- case LogLevel.Info:
- case LogLevel.Warn:
- case LogLevel.Error:
- case LogLevel.None:
- return false;
- }
- }
- shouldLogInfo() {
- var _a;
- const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
- switch (level) {
- case LogLevel.Trace:
- case LogLevel.Message:
- case LogLevel.Info:
- return true;
- case LogLevel.Warn:
- case LogLevel.Error:
- case LogLevel.None:
- return false;
- }
- }
- shouldLogWarn() {
- var _a;
- const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
- switch (level) {
- case LogLevel.Trace:
- case LogLevel.Message:
- case LogLevel.Info:
- case LogLevel.Warn:
- return true;
- case LogLevel.Error:
- case LogLevel.None:
- return false;
- }
- }
- shouldLogError() {
- var _a;
- const level = (_a = byTagLogLevel[this.tag]) != null ? _a : globalLogLevel;
- switch (level) {
- case LogLevel.Trace:
- case LogLevel.Message:
- case LogLevel.Info:
- case LogLevel.Warn:
- case LogLevel.Error:
- return true;
- case LogLevel.None:
- return false;
- }
- }
- info(message, ...args) {
- if (!this.shouldLogInfo()) {
- return;
- }
- if (nativeLogging) {
- writeNativeLog(message, this.tag, 2, args);
- return;
- }
- if (isNode) {
- writeNodeLog(message, this.tag, "INFO", args);
- } else {
- console.info(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} INFO ` + message, ...args);
- }
- }
- warn(message, ...args) {
- if (!this.shouldLogWarn()) {
- return;
- }
- if (nativeLogging) {
- writeNativeLog(message, this.tag, 3, args);
- return;
- }
- if (isNode) {
- writeNodeLog(message, this.tag, "WARN", args);
- } else {
- console.warn(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} INFO ` + message, ...args);
- }
- }
- error(message, ...args) {
- if (!this.shouldLogError()) {
- return;
- }
- if (nativeLogging) {
- writeNativeLog(message, this.tag, 4, args);
- return;
- }
- if (isNode) {
- writeNodeLog(message, this.tag, "ERROR", args);
- } else {
- console.info(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} ERROR ` + message, ...args);
- }
- }
- trace(message, ...args) {
- if (!this.shouldLogTrace()) {
- return;
- }
- if (nativeLogging) {
- writeNativeLog(message, this.tag, 1, args);
- return;
- }
- if (isNode) {
- writeNodeLog(message, this.tag, "TRACE", args);
- } else {
- console.info(`${(/* @__PURE__ */ new Date()).toISOString()} ${this.tag} TRACE ` + message, ...args);
- }
- }
- reportBreak() {
- if (!this.shouldLogError()) {
- return;
- }
- const location2 = new Error("programming error");
- this.error(`assertion failed: ${location2.stack}`);
- }
-};
-
// ../taler-util/lib/taler-crypto.js
function getRandomBytes(n2) {
return randomBytes(n2);
@@ -9537,45 +9586,45 @@ if (useNative) {
tart = globalThis._tart;
}
var encTable = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
-var EncodingError = class extends Error {
+var EncodingError = class _EncodingError extends Error {
constructor() {
super("Encoding error");
- Object.setPrototypeOf(this, EncodingError.prototype);
+ Object.setPrototypeOf(this, _EncodingError.prototype);
}
};
function getValue(chr) {
- let a5 = chr;
+ let a6 = chr;
switch (chr) {
case "O":
case "o":
- a5 = "0";
+ a6 = "0";
break;
case "i":
case "I":
case "l":
case "L":
- a5 = "1";
+ a6 = "1";
break;
case "u":
case "U":
- a5 = "V";
+ a6 = "V";
}
- if (a5 >= "0" && a5 <= "9") {
- return a5.charCodeAt(0) - "0".charCodeAt(0);
+ if (a6 >= "0" && a6 <= "9") {
+ return a6.charCodeAt(0) - "0".charCodeAt(0);
}
- if (a5 >= "a" && a5 <= "z")
- a5 = a5.toUpperCase();
+ if (a6 >= "a" && a6 <= "z")
+ a6 = a6.toUpperCase();
let dec = 0;
- if (a5 >= "A" && a5 <= "Z") {
- if ("I" < a5)
+ if (a6 >= "A" && a6 <= "Z") {
+ if ("I" < a6)
dec++;
- if ("L" < a5)
+ if ("L" < a6)
dec++;
- if ("O" < a5)
+ if ("O" < a6)
dec++;
- if ("U" < a5)
+ if ("U" < a6)
dec++;
- return a5.charCodeAt(0) - "A".charCodeAt(0) + 10 - dec;
+ return a6.charCodeAt(0) - "A".charCodeAt(0) + 10 - dec;
}
throw new EncodingError();
}
@@ -9591,8 +9640,8 @@ function encodeCrock(data) {
let pos = 0;
while (pos < size || numBits > 0) {
if (pos < size && numBits < 5) {
- const d5 = dataBytes[pos++];
- bitBuf = bitBuf << 8 | d5;
+ const d6 = dataBytes[pos++];
+ bitBuf = bitBuf << 8 | d6;
numBits += 8;
}
if (numBits < 5) {
@@ -9614,21 +9663,21 @@ function kdf(outputLength, ikm, salt, info) {
info = info != null ? info : new Uint8Array(0);
const N3 = Math.ceil(outputLength / 32);
const output = new Uint8Array(N3 * 32);
- for (let i4 = 0; i4 < N3; i4++) {
+ for (let i5 = 0; i5 < N3; i5++) {
let buf;
- if (i4 == 0) {
+ if (i5 == 0) {
buf = new Uint8Array(info.byteLength + 1);
buf.set(info, 0);
} else {
buf = new Uint8Array(info.byteLength + 1 + 32);
for (let j4 = 0; j4 < 32; j4++) {
- buf[j4] = output[(i4 - 1) * 32 + j4];
+ buf[j4] = output[(i5 - 1) * 32 + j4];
}
buf.set(info, 32);
}
- buf[buf.length - 1] = i4 + 1;
+ buf[buf.length - 1] = i5 + 1;
const chunk = hmacSha256(prk, buf);
- output.set(chunk, i4 * 32);
+ output.set(chunk, i5 * 32);
}
return output.slice(0, outputLength);
}
@@ -9653,8 +9702,8 @@ function decodeCrock(encoded) {
bitpos += 5;
}
while (bitpos >= 8) {
- const d5 = bitbuf >>> bitpos - 8 & 255;
- out[outPos++] = d5;
+ const d6 = bitbuf >>> bitpos - 8 & 255;
+ out[outPos++] = d6;
bitpos -= 8;
}
if (readPosition == size && bitpos > 0) {
@@ -9672,23 +9721,23 @@ function eddsaGetPublic(eddsaPriv) {
return pair.publicKey;
}
var encoder;
-function stringToBytes(s5) {
+function stringToBytes(s6) {
if (!encoder) {
encoder = new TextEncoder();
}
- return encoder.encode(s5);
+ return encoder.encode(s6);
}
function typedArrayConcat(chunks) {
let payloadLen = 0;
- for (const c4 of chunks) {
- payloadLen += c4.byteLength;
+ for (const c5 of chunks) {
+ payloadLen += c5.byteLength;
}
const buf = new ArrayBuffer(payloadLen);
const u8buf = new Uint8Array(buf);
let p4 = 0;
- for (const c4 of chunks) {
- u8buf.set(c4, p4);
- p4 += c4.byteLength;
+ for (const c5 of chunks) {
+ u8buf.set(c5, p4);
+ p4 += c5.byteLength;
}
return u8buf;
}
@@ -9697,13 +9746,13 @@ function createEddsaKeyPair() {
const eddsaPub = eddsaGetPublic(eddsaPriv);
return { eddsaPriv, eddsaPub };
}
-function hash2(d5) {
+function hash2(d6) {
if (tart) {
- return tart.hash(d5);
+ return tart.hash(d6);
}
- return hash(d5);
+ return hash(d6);
}
-var logger = new Logger("talerCrypto.ts");
+var logger2 = new Logger("talerCrypto.ts");
function eddsaSign(msg, eddsaPriv) {
if (tart) {
return tart.eddsaSign(msg, eddsaPriv);
@@ -9742,6 +9791,7 @@ var TalerSignaturePurpose;
TalerSignaturePurpose2[TalerSignaturePurpose2["WALLET_ACCOUNT_MERGE"] = 1214] = "WALLET_ACCOUNT_MERGE";
TalerSignaturePurpose2[TalerSignaturePurpose2["WALLET_PURSE_ECONTRACT"] = 1216] = "WALLET_PURSE_ECONTRACT";
TalerSignaturePurpose2[TalerSignaturePurpose2["WALLET_PURSE_DELETE"] = 1220] = "WALLET_PURSE_DELETE";
+ TalerSignaturePurpose2[TalerSignaturePurpose2["WALLET_COIN_HISTORY"] = 1209] = "WALLET_COIN_HISTORY";
TalerSignaturePurpose2[TalerSignaturePurpose2["EXCHANGE_CONFIRM_RECOUP"] = 1039] = "EXCHANGE_CONFIRM_RECOUP";
TalerSignaturePurpose2[TalerSignaturePurpose2["EXCHANGE_CONFIRM_RECOUP_REFRESH"] = 1041] = "EXCHANGE_CONFIRM_RECOUP_REFRESH";
TalerSignaturePurpose2[TalerSignaturePurpose2["TALER_SIGNATURE_AML_DECISION"] = 1350] = "TALER_SIGNATURE_AML_DECISION";
@@ -9769,15 +9819,15 @@ var SignaturePurposeBuilder = class {
}
build() {
let payloadLen = 0;
- for (const c4 of this.chunks) {
- payloadLen += c4.byteLength;
+ for (const c5 of this.chunks) {
+ payloadLen += c5.byteLength;
}
const buf = new ArrayBuffer(4 + 4 + payloadLen);
const u8buf = new Uint8Array(buf);
let p4 = 8;
- for (const c4 of this.chunks) {
- u8buf.set(c4, p4);
- p4 += c4.byteLength;
+ for (const c5 of this.chunks) {
+ u8buf.set(c5, p4);
+ p4 += c5.byteLength;
}
const dvbuf = new DataView(buf);
dvbuf.setUint32(0, payloadLen + 4 + 4);
@@ -9788,9 +9838,9 @@ var SignaturePurposeBuilder = class {
function buildSigPS(purposeNum) {
return new SignaturePurposeBuilder(purposeNum);
}
-function bigintToNaclArr(x6, size) {
+function bigintToNaclArr(x7, size) {
const byteArr = new Uint8Array(size);
- const arr = x6.toArray(256).value.reverse();
+ const arr = x7.toArray(256).value.reverse();
byteArr.set(arr, 0);
return byteArr;
}
@@ -9835,7 +9885,7 @@ var Edx25519;
0,
16
];
- const L5 = import_big_integer.default.fromArray(revL.reverse(), 256, false);
+ const L6 = import_big_integer.default.fromArray(revL.reverse(), 256, false);
function keyCreateFromSeed(seed) {
return __async(this, null, function* () {
return crypto_edx25519_private_key_create_from_seed(seed);
@@ -9873,10 +9923,10 @@ var Edx25519;
return __async(this, null, function* () {
const pub = yield getPublic(priv);
const privDec = priv;
- const a5 = bigintFromNaclArr(privDec.subarray(0, 32));
+ const a6 = bigintFromNaclArr(privDec.subarray(0, 32));
const factorEnc = yield deriveFactor(pub, seed);
- const factorModL = bigintFromNaclArr(factorEnc).mod(L5);
- const aPrime = a5.divide(8).multiply(factorModL).mod(L5).multiply(8).mod(L5);
+ const factorModL = bigintFromNaclArr(factorEnc).mod(L6);
+ const aPrime = a6.divide(8).multiply(factorModL).mod(L6).multiply(8).mod(L6);
const bPrime = hash(typedArrayConcat([privDec.subarray(32, 64), factorEnc])).subarray(0, 32);
const newPriv = typedArrayConcat([bigintToNaclArr(aPrime, 32), bPrime]);
return newPriv;
@@ -9911,10 +9961,10 @@ var AgeRestriction;
AgeRestriction2.hashCommitment = hashCommitment;
function countAgeGroups(mask) {
let count = 0;
- let m5 = mask;
- while (m5 > 0) {
- count += m5 & 1;
- m5 = m5 >> 1;
+ let m6 = mask;
+ while (m6 > 0) {
+ count += m6 & 1;
+ m6 = m6 >> 1;
}
return count;
}
@@ -9922,12 +9972,12 @@ var AgeRestriction;
function getAgeGroupsFromMask(mask) {
const groups = [];
let age = 1;
- let m5 = mask >> 1;
- while (m5 > 0) {
- if (m5 & 1) {
+ let m6 = mask >> 1;
+ while (m6 > 0) {
+ if (m6 & 1) {
groups.push(age);
}
- m5 = m5 >> 1;
+ m6 = m6 >> 1;
age++;
}
return groups;
@@ -9935,18 +9985,18 @@ var AgeRestriction;
AgeRestriction2.getAgeGroupsFromMask = getAgeGroupsFromMask;
function getAgeGroupIndex(mask, age) {
invariant((mask & 1) === 1);
- let i4 = 0;
- let m5 = mask;
- let a5 = age;
- while (m5 > 0) {
- if (a5 <= 0) {
+ let i5 = 0;
+ let m6 = mask;
+ let a6 = age;
+ while (m6 > 0) {
+ if (a6 <= 0) {
break;
}
- m5 = m5 >> 1;
- i4 += m5 & 1;
- a5--;
+ m6 = m6 >> 1;
+ i5 += m6 & 1;
+ a6--;
}
- return i4;
+ return i5;
}
AgeRestriction2.getAgeGroupIndex = getAgeGroupIndex;
function ageGroupSpecToMask(ageGroupSpec) {
@@ -9960,21 +10010,21 @@ var AgeRestriction;
const numPrivs = getAgeGroupIndex(ageMask, age);
const pubs = [];
const privs = [];
- for (let i4 = 0; i4 < numPubs; i4++) {
+ for (let i5 = 0; i5 < numPubs; i5++) {
const priv = yield Edx25519.keyCreate();
const pub = yield Edx25519.getPublic(priv);
pubs.push(pub);
- if (i4 < numPrivs) {
+ if (i5 < numPrivs) {
privs.push(priv);
}
}
return {
commitment: {
mask: ageMask,
- publicKeys: pubs.map((x6) => encodeCrock(x6))
+ publicKeys: pubs.map((x7) => encodeCrock(x7))
},
proof: {
- privateKeys: privs.map((x6) => encodeCrock(x6))
+ privateKeys: privs.map((x7) => encodeCrock(x7))
}
};
});
@@ -9988,24 +10038,24 @@ var AgeRestriction;
const numPrivs = getAgeGroupIndex(ageMask, age);
const pubs = [];
const privs = [];
- for (let i4 = 0; i4 < numPrivs; i4++) {
+ for (let i5 = 0; i5 < numPrivs; i5++) {
const privSeed = yield kdfKw({
outputLength: 32,
ikm: seed,
info: stringToBytes("age-commitment"),
- salt: bufferForUint32(i4)
+ salt: bufferForUint32(i5)
});
const priv = yield Edx25519.keyCreateFromSeed(privSeed);
const pub = yield Edx25519.getPublic(priv);
pubs.push(pub);
privs.push(priv);
}
- for (let i4 = numPrivs; i4 < numPubs; i4++) {
+ for (let i5 = numPrivs; i5 < numPubs; i5++) {
const deriveSeed = yield kdfKw({
outputLength: 32,
ikm: seed,
info: stringToBytes("age-factor"),
- salt: bufferForUint32(i4)
+ salt: bufferForUint32(i5)
});
const pub = yield Edx25519.publicKeyDerive(PublishedAgeRestrictionBaseKey, deriveSeed);
pubs.push(pub);
@@ -10013,10 +10063,10 @@ var AgeRestriction;
return {
commitment: {
mask: ageMask,
- publicKeys: pubs.map((x6) => encodeCrock(x6))
+ publicKeys: pubs.map((x7) => encodeCrock(x7))
},
proof: {
- privateKeys: privs.map((x6) => encodeCrock(x6))
+ privateKeys: privs.map((x7) => encodeCrock(x7))
}
};
});
@@ -10027,9 +10077,9 @@ var AgeRestriction;
if (c1.publicKeys.length != c22.publicKeys.length) {
return false;
}
- for (let i4 = 0; i4 < c1.publicKeys.length; i4++) {
- const k1 = decodeCrock(c1.publicKeys[i4]);
- const k22 = yield Edx25519.publicKeyDerive(decodeCrock(c22.publicKeys[i4]), salt);
+ for (let i5 = 0; i5 < c1.publicKeys.length; i5++) {
+ const k1 = decodeCrock(c1.publicKeys[i5]);
+ const k22 = yield Edx25519.publicKeyDerive(decodeCrock(c22.publicKeys[i5]), salt);
if (k1 != k22) {
return false;
}
@@ -10051,35 +10101,35 @@ var AgeRestriction;
return {
commitment: {
mask: commitmentProof.commitment.mask,
- publicKeys: newPubs.map((x6) => encodeCrock(x6))
+ publicKeys: newPubs.map((x7) => encodeCrock(x7))
},
proof: {
- privateKeys: newPrivs.map((x6) => encodeCrock(x6))
+ privateKeys: newPrivs.map((x7) => encodeCrock(x7))
}
};
});
}
AgeRestriction2.commitmentDerive = commitmentDerive;
function commitmentAttest(commitmentProof, age) {
- const d5 = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION).put(bufferForUint32(commitmentProof.commitment.mask)).put(bufferForUint32(age)).build();
+ const d6 = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION).put(bufferForUint32(commitmentProof.commitment.mask)).put(bufferForUint32(age)).build();
const group = getAgeGroupIndex(commitmentProof.commitment.mask, age);
if (group === 0) {
return new Uint8Array(64);
}
const priv = commitmentProof.proof.privateKeys[group - 1];
const pub = commitmentProof.commitment.publicKeys[group - 1];
- const sig = crypto_edx25519_sign_detached(d5, decodeCrock(priv), decodeCrock(pub));
+ const sig = crypto_edx25519_sign_detached(d6, decodeCrock(priv), decodeCrock(pub));
return sig;
}
AgeRestriction2.commitmentAttest = commitmentAttest;
function commitmentVerify(commitment, sig, age) {
- const d5 = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION).put(bufferForUint32(commitment.mask)).put(bufferForUint32(age)).build();
+ const d6 = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION).put(bufferForUint32(commitment.mask)).put(bufferForUint32(age)).build();
const group = getAgeGroupIndex(commitment.mask, age);
if (group === 0) {
return true;
}
const pub = commitment.publicKeys[group - 1];
- return crypto_edx25519_sign_detached_verify(d5, decodeCrock(sig), decodeCrock(pub));
+ return crypto_edx25519_sign_detached_verify(d6, decodeCrock(sig), decodeCrock(pub));
}
AgeRestriction2.commitmentVerify = commitmentVerify;
})(AgeRestriction || (AgeRestriction = {}));
@@ -10130,8 +10180,8 @@ function amountToBuffer(amount) {
} else {
const arr = (0, import_big_integer.default)(amountJ.value).toArray(__pow(2, 8)).value;
let offset = 8 - arr.length;
- for (let i4 = 0; i4 < arr.length; i4++) {
- dvbuf.setUint8(offset++, arr[i4]);
+ for (let i5 = 0; i5 < arr.length; i5++) {
+ dvbuf.setUint8(offset++, arr[i5]);
}
}
dvbuf.setUint32(8, amountJ.fraction);
@@ -10139,20 +10189,20 @@ function amountToBuffer(amount) {
return u8buf;
}
function timestampRoundedToBuffer(ts) {
- const b4 = new ArrayBuffer(8);
- const v3 = new DataView(b4);
+ const b5 = new ArrayBuffer(8);
+ const v3 = new DataView(b5);
if (typeof v3.setBigUint64 !== "undefined") {
- const s5 = BigInt(ts.t_s) * BigInt(1e3 * 1e3);
- v3.setBigUint64(0, s5);
+ const s6 = BigInt(ts.t_s) * BigInt(1e3 * 1e3);
+ v3.setBigUint64(0, s6);
} else {
- const s5 = ts.t_s === "never" ? import_big_integer.default.zero : (0, import_big_integer.default)(ts.t_s).multiply(1e3 * 1e3);
- const arr = s5.toArray(__pow(2, 8)).value;
+ const s6 = ts.t_s === "never" ? import_big_integer.default.zero : (0, import_big_integer.default)(ts.t_s).multiply(1e3 * 1e3);
+ const arr = s6.toArray(__pow(2, 8)).value;
let offset = 8 - arr.length;
- for (let i4 = 0; i4 < arr.length; i4++) {
- v3.setUint8(offset++, arr[i4]);
+ for (let i5 = 0; i5 < arr.length; i5++) {
+ v3.setUint8(offset++, arr[i5]);
}
}
- return new Uint8Array(b4);
+ return new Uint8Array(b5);
}
// ../taler-util/lib/ReserveTransaction.js
@@ -10165,8 +10215,8 @@ var ReserveTransactionType;
})(ReserveTransactionType || (ReserveTransactionType = {}));
// ../taler-util/lib/taleruri.js
-function parseWithdrawUri(s5) {
- const pi = parseProtoInfo(s5, "withdraw");
+function parseWithdrawUri(s6) {
+ const pi = parseProtoInfo(s6, "withdraw");
if (!pi) {
return void 0;
}
@@ -10216,18 +10266,18 @@ var TalerUriAction;
TalerUriAction2["DevExperiment"] = "dev-experiment";
TalerUriAction2["WithdrawExchange"] = "withdraw-exchange";
})(TalerUriAction || (TalerUriAction = {}));
-function parseProtoInfo(s5, action) {
+function parseProtoInfo(s6, action) {
const pfxPlain = `taler://${action}/`;
const pfxHttp = `taler+http://${action}/`;
- if (s5.toLowerCase().startsWith(pfxPlain)) {
+ if (s6.toLowerCase().startsWith(pfxPlain)) {
return {
innerProto: "https",
- rest: s5.substring(pfxPlain.length)
+ rest: s6.substring(pfxPlain.length)
};
- } else if (s5.toLowerCase().startsWith(pfxHttp)) {
+ } else if (s6.toLowerCase().startsWith(pfxHttp)) {
return {
innerProto: "http",
- rest: s5.substring(pfxHttp.length)
+ rest: s6.substring(pfxHttp.length)
};
} else {
return void 0;
@@ -10247,17 +10297,17 @@ var parsers = {
[TalerUriAction.Auditor]: parseAuditorUri,
[TalerUriAction.WithdrawExchange]: parseWithdrawExchangeUri
};
-function parsePayUri(s5) {
+function parsePayUri(s6) {
var _a, _b, _c;
- const pi = parseProtoInfo(s5, "pay");
+ const pi = parseProtoInfo(s6, "pay");
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const q5 = new URLSearchParams2((_a = c4[1]) != null ? _a : "");
- const claimToken = (_b = q5.get("c")) != null ? _b : void 0;
- const noncePriv = (_c = q5.get("n")) != null ? _c : void 0;
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const q6 = new URLSearchParams2((_a = c5[1]) != null ? _a : "");
+ const claimToken = (_b = q6.get("c")) != null ? _b : void 0;
+ const noncePriv = (_c = q6.get("n")) != null ? _c : void 0;
+ const parts = c5[0].split("/");
if (parts.length < 3) {
return void 0;
}
@@ -10282,15 +10332,15 @@ function parsePayTemplateUri(uriString) {
if (!pi) {
return void 0;
}
- const c4 = pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
- const q5 = new URLSearchParams2((_a = c4[1]) != null ? _a : "");
+ const q6 = new URLSearchParams2((_a = c5[1]) != null ? _a : "");
const params = {};
- q5.forEach((v3, k5) => {
- params[k5] = v3;
+ q6.forEach((v3, k6) => {
+ params[k6] = v3;
});
const host = parts[0].toLowerCase();
const templateId = parts[parts.length - 1];
@@ -10304,13 +10354,13 @@ function parsePayTemplateUri(uriString) {
templateParams: params
};
}
-function parsePayPushUri(s5) {
- const pi = parseProtoInfo(s5, talerActionPayPush);
+function parsePayPushUri(s6) {
+ const pi = parseProtoInfo(s6, talerActionPayPush);
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
@@ -10325,13 +10375,13 @@ function parsePayPushUri(s5) {
contractPriv
};
}
-function parsePayPullUri(s5) {
- const pi = parseProtoInfo(s5, talerActionPayPull);
+function parsePayPullUri(s6) {
+ const pi = parseProtoInfo(s6, talerActionPayPull);
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
@@ -10346,13 +10396,13 @@ function parsePayPullUri(s5) {
contractPriv
};
}
-function parseRewardUri(s5) {
- const pi = parseProtoInfo(s5, "reward");
+function parseRewardUri(s6) {
+ const pi = parseProtoInfo(s6, "reward");
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
@@ -10367,13 +10417,13 @@ function parseRewardUri(s5) {
merchantRewardId: rewardId
};
}
-function parseExchangeUri(s5) {
- const pi = parseProtoInfo(s5, "exchange");
+function parseExchangeUri(s6) {
+ const pi = parseProtoInfo(s6, "exchange");
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
@@ -10388,14 +10438,14 @@ function parseExchangeUri(s5) {
exchangePub
};
}
-function parseWithdrawExchangeUri(s5) {
+function parseWithdrawExchangeUri(s6) {
var _a, _b;
- const pi = parseProtoInfo(s5, "withdraw-exchange");
+ const pi = parseProtoInfo(s6, "withdraw-exchange");
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
@@ -10404,8 +10454,8 @@ function parseWithdrawExchangeUri(s5) {
const pathSegments = parts.slice(1, parts.length - 1);
const hostAndSegments = [host, ...pathSegments].join("/");
const exchangeBaseUrl = canonicalizeBaseUrl(`${pi.innerProto}://${hostAndSegments}/`);
- const q5 = new URLSearchParams2((_a = c4[1]) != null ? _a : "");
- const amount = (_b = q5.get("a")) != null ? _b : void 0;
+ const q6 = new URLSearchParams2((_a = c5[1]) != null ? _a : "");
+ const amount = (_b = q6.get("a")) != null ? _b : void 0;
return {
type: TalerUriAction.WithdrawExchange,
exchangeBaseUrl,
@@ -10413,13 +10463,13 @@ function parseWithdrawExchangeUri(s5) {
amount
};
}
-function parseAuditorUri(s5) {
- const pi = parseProtoInfo(s5, "auditor");
+function parseAuditorUri(s6) {
+ const pi = parseProtoInfo(s6, "auditor");
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
@@ -10434,13 +10484,13 @@ function parseAuditorUri(s5) {
auditorPub
};
}
-function parseRefundUri(s5) {
- const pi = parseProtoInfo(s5, "refund");
+function parseRefundUri(s6) {
+ const pi = parseProtoInfo(s6, "refund");
if (!pi) {
return void 0;
}
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 3) {
return void 0;
}
@@ -10456,13 +10506,13 @@ function parseRefundUri(s5) {
orderId
};
}
-function parseDevExperimentUri(s5) {
- const pi = parseProtoInfo(s5, "dev-experiment");
- const c4 = pi == null ? void 0 : pi.rest.split("?");
- if (!c4) {
+function parseDevExperimentUri(s6) {
+ const pi = parseProtoInfo(s6, "dev-experiment");
+ const c5 = pi == null ? void 0 : pi.rest.split("?");
+ if (!c5) {
return void 0;
}
- const parts = c4[0].split("/");
+ const parts = c5[0].split("/");
return {
type: TalerUriAction.DevExperiment,
devExperimentId: parts[0]
@@ -10473,8 +10523,8 @@ function parseRestoreUri(uri) {
if (!pi) {
return void 0;
}
- const c4 = pi.rest.split("?");
- const parts = c4[0].split("/");
+ const c5 = pi.rest.split("?");
+ const parts = c5[0].split("/");
if (parts.length < 2) {
return void 0;
}
@@ -10528,6 +10578,7 @@ var TransactionMinorState;
TransactionMinorState2["CheckRefund"] = "check-refund";
TransactionMinorState2["CreatePurse"] = "create-purse";
TransactionMinorState2["DeletePurse"] = "delete-purse";
+ TransactionMinorState2["RefreshExpired"] = "refresh-expired";
TransactionMinorState2["Ready"] = "ready";
TransactionMinorState2["Merge"] = "merge";
TransactionMinorState2["Repurchase"] = "repurchase";
@@ -10596,6 +10647,13 @@ var codecForGetPlanForPullCreditRequest = codecForGetPlanForWalletInitiatedOpera
var codecForGetPlanForPaymentRequest = buildCodecForObject().property("type", codecForConstString(TransactionType.Payment)).property("maxDepositFee", codecForAmountString()).property("maxWireFee", codecForAmountString()).build("GetPlanForPaymentRequest");
var codecForGetPlanForPullDebitRequest = buildCodecForObject().property("type", codecForConstString(TransactionType.PeerPullDebit)).build("GetPlanForPullDebitRequest");
var codecForGetPlanForPushCreditRequest = buildCodecForObject().property("type", codecForConstString(TransactionType.PeerPushCredit)).build("GetPlanForPushCreditRequest");
+var BalanceFlag;
+(function(BalanceFlag2) {
+ BalanceFlag2["IncomingKyc"] = "incoming-kyc";
+ BalanceFlag2["IncomingAml"] = "incoming-aml";
+ BalanceFlag2["IncomingConfirmation"] = "incoming-confirmation";
+ BalanceFlag2["OutgoingKyc"] = "outgoing-kyc";
+})(BalanceFlag || (BalanceFlag = {}));
var ScopeType;
(function(ScopeType2) {
ScopeType2["Global"] = "global";
@@ -10630,6 +10688,7 @@ var RefreshReason;
RefreshReason2["AbortPay"] = "abort-pay";
RefreshReason2["AbortDeposit"] = "abort-deposit";
RefreshReason2["AbortPeerPushDebit"] = "abort-peer-push-debit";
+ RefreshReason2["AbortPeerPullDebit"] = "abort-peer-pull-debit";
RefreshReason2["Recoup"] = "recoup";
RefreshReason2["BackupRestored"] = "backup-restored";
RefreshReason2["Scheduled"] = "scheduled";
@@ -10649,12 +10708,11 @@ var ExchangeEntryStatus;
var ExchangeUpdateStatus;
(function(ExchangeUpdateStatus2) {
ExchangeUpdateStatus2["Initial"] = "initial";
- ExchangeUpdateStatus2["InitialUpdate"] = "initial(update)";
+ ExchangeUpdateStatus2["InitialUpdate"] = "initial-update";
ExchangeUpdateStatus2["Suspended"] = "suspended";
- ExchangeUpdateStatus2["Failed"] = "failed";
- ExchangeUpdateStatus2["OutdatedUpdate"] = "outdated(update)";
+ ExchangeUpdateStatus2["UnavailableUpdate"] = "unavailable-update";
ExchangeUpdateStatus2["Ready"] = "ready";
- ExchangeUpdateStatus2["ReadyUpdate"] = "ready(update)";
+ ExchangeUpdateStatus2["ReadyUpdate"] = "ready-update";
})(ExchangeUpdateStatus || (ExchangeUpdateStatus = {}));
var RecoveryMergeStrategy;
(function(RecoveryMergeStrategy2) {
@@ -10703,7 +10761,7 @@ var UserAttentionPriority = {
// ../taler-util/lib/i18n.js
var jedLib = __toESM(require_jed(), 1);
-var logger2 = new Logger("i18n/index.ts");
+var logger3 = new Logger("i18n/index.ts");
var jed = void 0;
function setupI18n(lang, strings) {
lang = lang.replace("_", "-");
@@ -10713,57 +10771,57 @@ function setupI18n(lang, strings) {
jed = new jedLib.Jed(strings[lang]);
}
function toI18nString(stringSeq) {
- let s5 = "";
- for (let i4 = 0; i4 < stringSeq.length; i4++) {
- s5 += stringSeq[i4];
- if (i4 < stringSeq.length - 1) {
- s5 += `%${i4 + 1}$s`;
+ let s6 = "";
+ for (let i5 = 0; i5 < stringSeq.length; i5++) {
+ s6 += stringSeq[i5];
+ if (i5 < stringSeq.length - 1) {
+ s6 += `%${i5 + 1}$s`;
}
}
- return s5;
+ return s6;
}
function singular(stringSeq, ...values) {
- const s5 = toI18nString(stringSeq);
- const tr = jed.translate(s5).ifPlural(1, s5).fetch(...values);
+ const s6 = toI18nString(stringSeq);
+ const tr = jed.translate(s6).ifPlural(1, s6).fetch(...values);
return tr;
}
function translate(stringSeq, ...values) {
- const s5 = toI18nString(stringSeq);
- if (!s5)
+ const s6 = toI18nString(stringSeq);
+ if (!s6)
return [];
- const translation = jed.ngettext(s5, s5, 1);
+ const translation = jed.ngettext(s6, s6, 1);
return replacePlaceholderWithValues(translation, values);
}
function Translate({ children, debug }) {
- const c4 = [].concat(children);
- const s5 = stringifyArray(c4);
- if (!s5)
+ const c5 = [].concat(children);
+ const s6 = stringifyArray(c5);
+ if (!s6)
return [];
- const translation = jed.ngettext(s5, s5, 1);
+ const translation = jed.ngettext(s6, s6, 1);
if (debug) {
- console.log("looking for ", s5, "got", translation);
+ console.log("looking for ", s6, "got", translation);
}
- return replacePlaceholderWithValues(translation, c4);
+ return replacePlaceholderWithValues(translation, c5);
}
function replacePlaceholderWithValues(translation, childArray) {
const tr = translation.split(/%(\d+)\$s/);
const placeholderChildren = [];
- for (let i4 = 0; i4 < childArray.length; i4++) {
- const x6 = childArray[i4];
- if (x6 === void 0) {
+ for (let i5 = 0; i5 < childArray.length; i5++) {
+ const x7 = childArray[i5];
+ if (x7 === void 0) {
continue;
- } else if (typeof x6 === "string") {
+ } else if (typeof x7 === "string") {
continue;
} else {
- placeholderChildren.push(x6);
+ placeholderChildren.push(x7);
}
}
const result = [];
- for (let i4 = 0; i4 < tr.length; i4++) {
- if (i4 % 2 == 0) {
- result.push(tr[i4]);
+ for (let i5 = 0; i5 < tr.length; i5++) {
+ if (i5 % 2 == 0) {
+ result.push(tr[i5]);
} else {
- const childIdx = Number.parseInt(tr[i4]) - 1;
+ const childIdx = Number.parseInt(tr[i5]) - 1;
result.push(placeholderChildren[childIdx]);
}
}
@@ -10771,14 +10829,14 @@ function replacePlaceholderWithValues(translation, childArray) {
}
function stringifyArray(children) {
let n2 = 1;
- const ss = children.map((c4) => {
- if (typeof c4 === "string") {
- return c4;
+ const ss = children.map((c5) => {
+ if (typeof c5 === "string") {
+ return c5;
}
return `%${n2++}$s`;
});
- const s5 = ss.join("").replace(/ +/g, " ").trim();
- return s5;
+ const s6 = ss.join("").replace(/ +/g, " ").trim();
+ return s6;
}
var i18n = {
str: singular,
@@ -10791,8 +10849,8 @@ var i18n = {
var fnutil;
(function(fnutil2) {
function all(arr, f3) {
- for (const x6 of arr) {
- if (!f3(x6)) {
+ for (const x7 of arr) {
+ if (!f3(x7)) {
return false;
}
}
@@ -10800,8 +10858,8 @@ var fnutil;
}
fnutil2.all = all;
function any(arr, f3) {
- for (const x6 of arr) {
- if (f3(x6)) {
+ for (const x7 of arr) {
+ if (f3(x7)) {
return true;
}
}
@@ -10877,7 +10935,7 @@ var HttpStatusCode;
})(HttpStatusCode || (HttpStatusCode = {}));
// ../taler-util/lib/RequestThrottler.js
-var logger3 = new Logger("RequestThrottler.ts");
+var logger4 = new Logger("RequestThrottler.ts");
var MAX_PER_SECOND = 100;
var MAX_PER_MINUTE = 500;
var MAX_PER_HOUR = 2e3;
@@ -10894,13 +10952,13 @@ var OriginState = class {
this.lastUpdate = now;
return;
}
- const d5 = AbsoluteTime.difference(now, this.lastUpdate);
- if (d5.d_ms === "forever") {
+ const d6 = AbsoluteTime.difference(now, this.lastUpdate);
+ if (d6.d_ms === "forever") {
throw Error("assertion failed");
}
- this.tokensSecond = Math.min(MAX_PER_SECOND, this.tokensSecond + d5.d_ms / 1e3);
- this.tokensMinute = Math.min(MAX_PER_MINUTE, this.tokensMinute + d5.d_ms / 1e3 / 60);
- this.tokensHour = Math.min(MAX_PER_HOUR, this.tokensHour + d5.d_ms / 1e3 / 60 / 60);
+ this.tokensSecond = Math.min(MAX_PER_SECOND, this.tokensSecond + d6.d_ms / 1e3);
+ this.tokensMinute = Math.min(MAX_PER_MINUTE, this.tokensMinute + d6.d_ms / 1e3 / 60);
+ this.tokensHour = Math.min(MAX_PER_HOUR, this.tokensHour + d6.d_ms / 1e3 / 60 / 60);
this.lastUpdate = now;
}
/**
@@ -10910,15 +10968,15 @@ var OriginState = class {
applyThrottle() {
this.refill();
if (this.tokensSecond < 1) {
- logger3.warn("request throttled (per second limit exceeded)");
+ logger4.warn("request throttled (per second limit exceeded)");
return true;
}
if (this.tokensMinute < 1) {
- logger3.warn("request throttled (per minute limit exceeded)");
+ logger4.warn("request throttled (per minute limit exceeded)");
return true;
}
if (this.tokensHour < 1) {
- logger3.warn("request throttled (per hour limit exceeded)");
+ logger4.warn("request throttled (per hour limit exceeded)");
return true;
}
this.tokensSecond--;
@@ -10937,9 +10995,9 @@ var RequestThrottler = class {
* origin yet.
*/
getState(origin) {
- const s5 = this.perOriginInfo[origin];
- if (s5) {
- return s5;
+ const s6 = this.perOriginInfo[origin];
+ if (s6) {
+ return s6;
}
const ns = this.perOriginInfo[origin] = new OriginState();
return ns;
@@ -10971,12 +11029,12 @@ var RequestThrottler = class {
};
// ../taler-util/lib/TaskThrottler.js
-var logger4 = new Logger("OperationThrottler.ts");
+var logger5 = new Logger("OperationThrottler.ts");
// ../taler-util/lib/CancellationToken.js
var NOOP = () => {
};
-var CancellationToken = class {
+var CancellationToken = class _CancellationToken {
/**
* Whether the token has been cancelled.
*/
@@ -11008,7 +11066,7 @@ var CancellationToken = class {
return asyncOperation;
}
return new Promise((resolve, reject) => {
- const unregister = this.onCancelled((reason) => reject(new CancellationToken.CancellationError(reason)));
+ const unregister = this.onCancelled((reason) => reject(new _CancellationToken.CancellationError(reason)));
asyncOperation.then((value) => {
resolve(value);
unregister();
@@ -11023,7 +11081,7 @@ var CancellationToken = class {
*/
throwIfCancelled() {
if (this._isCancelled) {
- throw new CancellationToken.CancellationError(this._reason);
+ throw new _CancellationToken.CancellationError(this._reason);
}
}
/**
@@ -11055,7 +11113,7 @@ var CancellationToken = class {
* Create a {CancellationTokenSource}.
*/
static create() {
- const token = new CancellationToken(false, true);
+ const token = new _CancellationToken(false, true);
const cancel = (reason) => {
var _a;
if (token._isCancelled)
@@ -11076,9 +11134,9 @@ var CancellationToken = class {
* The token will be cancelled automatically after the specified timeout in milliseconds.
*/
static timeout(ms) {
- const { token, cancel: originalCancel, dispose: originalDispose } = CancellationToken.create();
+ const { token, cancel: originalCancel, dispose: originalDispose } = _CancellationToken.create();
let timer;
- timer = setTimeout(() => originalCancel(CancellationToken.timeout), ms);
+ timer = setTimeout(() => originalCancel(_CancellationToken.timeout), ms);
const disposeTimer = () => {
if (timer == null)
return;
@@ -11102,9 +11160,9 @@ var CancellationToken = class {
*/
static all(...tokens) {
if (tokens.some((token) => !token.canBeCancelled)) {
- return CancellationToken.CONTINUE;
+ return _CancellationToken.CONTINUE;
}
- const combined = CancellationToken.create();
+ const combined = _CancellationToken.create();
let countdown = tokens.length;
const handleNextTokenCancelled = () => {
if (--countdown === 0) {
@@ -11126,7 +11184,7 @@ var CancellationToken = class {
return token;
}
}
- const combined = CancellationToken.create();
+ const combined = _CancellationToken.create();
let unregistrations;
const handleAnyTokenCancelled = (reason) => {
unregistrations.forEach((unregister) => unregister());
@@ -11150,42 +11208,42 @@ CancellationToken.CONTINUE = new CancellationToken(false, false);
})(CancellationToken || (CancellationToken = {}));
// ../taler-util/lib/contract-terms.js
-var logger5 = new Logger("contractTerms.ts");
+var logger6 = new Logger("contractTerms.ts");
var ContractTermsUtil;
(function(ContractTermsUtil2) {
function forgetAllImpl(anyJson, path, pred) {
const dup = JSON.parse(JSON.stringify(anyJson));
if (Array.isArray(dup)) {
- for (let i4 = 0; i4 < dup.length; i4++) {
- dup[i4] = forgetAllImpl(dup[i4], [...path, `${i4}`], pred);
+ for (let i5 = 0; i5 < dup.length; i5++) {
+ dup[i5] = forgetAllImpl(dup[i5], [...path, `${i5}`], pred);
}
} else if (typeof dup === "object" && dup != null) {
if (typeof dup.$forgettable === "object") {
- for (const x6 of Object.keys(dup.$forgettable)) {
- if (!pred([...path, x6])) {
+ for (const x7 of Object.keys(dup.$forgettable)) {
+ if (!pred([...path, x7])) {
continue;
}
if (!dup.$forgotten) {
dup.$forgotten = {};
}
- if (!dup.$forgotten[x6]) {
- const membValCanon = stringToBytes(canonicalJson(scrub(dup[x6])) + "\0");
- const membSalt = stringToBytes(dup.$forgettable[x6] + "\0");
+ if (!dup.$forgotten[x7]) {
+ const membValCanon = stringToBytes(canonicalJson(scrub(dup[x7])) + "\0");
+ const membSalt = stringToBytes(dup.$forgettable[x7] + "\0");
const h5 = kdf(64, membValCanon, membSalt, new Uint8Array([]));
- dup.$forgotten[x6] = encodeCrock(h5);
+ dup.$forgotten[x7] = encodeCrock(h5);
}
- delete dup[x6];
- delete dup.$forgettable[x6];
+ delete dup[x7];
+ delete dup.$forgettable[x7];
}
if (Object.keys(dup.$forgettable).length === 0) {
delete dup.$forgettable;
}
}
- for (const x6 of Object.keys(dup)) {
- if (x6.startsWith("$")) {
+ for (const x7 of Object.keys(dup)) {
+ if (x7.startsWith("$")) {
continue;
}
- dup[x6] = forgetAllImpl(dup[x6], [...path, x6], pred);
+ dup[x7] = forgetAllImpl(dup[x7], [...path, x7], pred);
}
}
return dup;
@@ -11202,22 +11260,22 @@ var ContractTermsUtil;
function saltForgettable(anyJson) {
const dup = JSON.parse(JSON.stringify(anyJson));
if (Array.isArray(dup)) {
- for (let i4 = 0; i4 < dup.length; i4++) {
- dup[i4] = saltForgettable(dup[i4]);
+ for (let i5 = 0; i5 < dup.length; i5++) {
+ dup[i5] = saltForgettable(dup[i5]);
}
} else if (typeof dup === "object" && dup !== null) {
if (typeof dup.$forgettable === "object") {
- for (const k5 of Object.keys(dup.$forgettable)) {
- if (dup.$forgettable[k5] === true) {
- dup.$forgettable[k5] = encodeCrock(getRandomBytes(32));
+ for (const k6 of Object.keys(dup.$forgettable)) {
+ if (dup.$forgettable[k6] === true) {
+ dup.$forgettable[k6] = encodeCrock(getRandomBytes(32));
}
}
}
- for (const x6 of Object.keys(dup)) {
- if (x6.startsWith("$")) {
+ for (const x7 of Object.keys(dup)) {
+ if (x7.startsWith("$")) {
continue;
}
- dup[x6] = saltForgettable(dup[x6]);
+ dup[x7] = saltForgettable(dup[x7]);
}
}
return dup;
@@ -11239,18 +11297,18 @@ var ContractTermsUtil;
return true;
}
if (Array.isArray(anyJson)) {
- return anyJson.every((x6) => validateForgettable(x6));
+ return anyJson.every((x7) => validateForgettable(x7));
}
if (typeof anyJson === "object") {
- for (const k5 of Object.keys(anyJson)) {
- if (k5.match(nameRegex)) {
- if (validateForgettable(anyJson[k5])) {
+ for (const k6 of Object.keys(anyJson)) {
+ if (k6.match(nameRegex)) {
+ if (validateForgettable(anyJson[k6])) {
continue;
} else {
return false;
}
}
- if (k5 === "$forgettable") {
+ if (k6 === "$forgettable") {
const fga = anyJson.$forgettable;
if (!fga || typeof fga !== "object") {
return false;
@@ -11267,7 +11325,7 @@ var ContractTermsUtil;
return false;
}
}
- } else if (k5 === "$forgotten") {
+ } else if (k6 === "$forgotten") {
const fgo = anyJson.$forgotten;
if (!fgo || typeof fgo !== "object") {
return false;
@@ -11288,10 +11346,10 @@ var ContractTermsUtil;
if (decFv.length != 64) {
return false;
}
- } catch (e4) {
+ } catch (e5) {
return false;
}
- if (((_a = anyJson.$forgettable) == null ? void 0 : _a[k5]) !== void 0) {
+ if (((_a = anyJson.$forgettable) == null ? void 0 : _a[k6]) !== void 0) {
return false;
}
}
@@ -11333,51 +11391,51 @@ function getDefaultHint(code) {
return `Error (<unknown>)`;
}
}
-var TalerError = class extends Error {
- constructor(d5) {
+var TalerError = class _TalerError extends Error {
+ constructor(d6) {
var _a;
- super((_a = d5.hint) != null ? _a : `Error (code ${d5.code})`);
- this.errorDetail = d5;
- Object.setPrototypeOf(this, TalerError.prototype);
+ super((_a = d6.hint) != null ? _a : `Error (code ${d6.code})`);
+ this.errorDetail = d6;
+ Object.setPrototypeOf(this, _TalerError.prototype);
}
static fromDetail(code, detail, hint) {
if (!hint) {
hint = getDefaultHint(code);
}
const when = AbsoluteTime.now();
- return new TalerError(__spreadValues({ code, when, hint }, detail));
+ return new _TalerError(__spreadValues({ code, when, hint }, detail));
}
- static fromUncheckedDetail(d5) {
- return new TalerError(__spreadValues({}, d5));
+ static fromUncheckedDetail(d6) {
+ return new _TalerError(__spreadValues({}, d6));
}
- static fromException(e4) {
- const errDetail = getErrorDetailFromException(e4);
- return new TalerError(errDetail);
+ static fromException(e5) {
+ const errDetail = getErrorDetailFromException(e5);
+ return new _TalerError(errDetail);
}
hasErrorCode(code) {
return this.errorDetail.code === code;
}
};
-function getErrorDetailFromException(e4) {
- if (e4 instanceof TalerError) {
- return e4.errorDetail;
+function getErrorDetailFromException(e5) {
+ if (e5 instanceof TalerError) {
+ return e5.errorDetail;
}
- if (e4 instanceof Error) {
+ if (e5 instanceof Error) {
const err2 = makeErrorDetail(TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION, {
- stack: e4.stack
- }, `unexpected exception (message: ${e4.message})`);
+ stack: e5.stack
+ }, `unexpected exception (message: ${e5.message})`);
return err2;
}
let excString;
try {
- excString = e4.toString();
- } catch (e5) {
+ excString = e5.toString();
+ } catch (e6) {
excString = "can't stringify exception";
}
const err = makeErrorDetail(TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION, {}, `unexpected exception (not an exception, ${excString})`);
return err;
}
-function assertUnreachable(x6) {
+function assertUnreachable(x7) {
throw new Error("Didn't expect to get here");
}
@@ -11485,7 +11543,7 @@ var HttpLibImpl = class {
// ../taler-util/lib/http-common.js
var textEncoder = new TextEncoder();
-var logger6 = new Logger("http.ts");
+var logger7 = new Logger("http.ts");
var DEFAULT_REQUEST_TIMEOUT_MS = 6e4;
var Headers2 = class {
constructor() {
@@ -11508,27 +11566,36 @@ var Headers2 = class {
}
}
toJSON() {
- const m5 = {};
- this.headerMap.forEach((v3, k5) => m5[k5] = v3);
- return m5;
+ const m6 = {};
+ this.headerMap.forEach((v3, k6) => m6[k6] = v3);
+ return m6;
}
};
function readTalerErrorResponse(httpResponse) {
return __async(this, null, function* () {
+ const contentType = httpResponse.headers.get("content-type");
+ if (contentType !== "application/json") {
+ throw TalerError.fromDetail(TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE, {
+ requestUrl: httpResponse.requestUrl,
+ requestMethod: httpResponse.requestMethod,
+ httpStatusCode: httpResponse.status,
+ contentType: contentType || "<null>"
+ }, "Error response did not even contain JSON. The request URL might be wrong or the service might be unavailable.");
+ }
let errJson;
try {
errJson = yield httpResponse.json();
- } catch (e4) {
+ } catch (e5) {
throw TalerError.fromDetail(TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE, {
requestUrl: httpResponse.requestUrl,
requestMethod: httpResponse.requestMethod,
httpStatusCode: httpResponse.status,
- validationError: e4.toString()
+ validationError: e5.toString()
}, "Couldn't parse JSON format from error response");
}
const talerErrorCode = errJson.code;
if (typeof talerErrorCode !== "number") {
- logger6.warn(`malformed error response (status ${httpResponse.status}): ${j2s(errJson)}`);
+ logger7.warn(`malformed error response (status ${httpResponse.status}): ${j2s(errJson)}`);
throw TalerError.fromDetail(TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE, {
requestUrl: httpResponse.requestUrl,
requestMethod: httpResponse.requestMethod,
@@ -11549,23 +11616,23 @@ function readSuccessResponseJsonOrErrorCode(httpResponse, codec) {
let respJson;
try {
respJson = yield httpResponse.json();
- } catch (e4) {
+ } catch (e5) {
throw TalerError.fromDetail(TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE, {
requestUrl: httpResponse.requestUrl,
requestMethod: httpResponse.requestMethod,
httpStatusCode: httpResponse.status,
- validationError: e4.toString()
+ validationError: e5.toString()
}, "Couldn't parse JSON format from response");
}
let parsedResponse;
try {
parsedResponse = codec.decode(respJson);
- } catch (e4) {
+ } catch (e5) {
throw TalerError.fromDetail(TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE, {
requestUrl: httpResponse.requestUrl,
requestMethod: httpResponse.requestMethod,
httpStatusCode: httpResponse.status,
- validationError: e4.toString()
+ validationError: e5.toString()
}, "Response invalid");
}
return {
@@ -11621,10 +11688,10 @@ function createPlatformHttpLib(args) {
}
// ../taler-util/lib/MerchantApiClient.js
-var logger7 = new Logger("MerchantApiClient.ts");
+var logger8 = new Logger("MerchantApiClient.ts");
// ../taler-util/lib/bank-api-client.js
-var logger8 = new Logger("bank-api-client.ts");
+var logger9 = new Logger("bank-api-client.ts");
var CreditDebitIndicator;
(function(CreditDebitIndicator2) {
CreditDebitIndicator2["Credit"] = "credit";
@@ -11644,10 +11711,10 @@ function opFixedSuccess(body) {
function opEmptySuccess() {
return { type: "ok", body: void 0 };
}
-function opKnownFailure(s5, resp) {
+function opKnownFailure(s6, resp) {
return __async(this, null, function* () {
const detail = yield readTalerErrorResponse(resp);
- return { type: "fail", case: s5, detail };
+ return { type: "fail", case: s6, detail };
});
}
function opUnknownFailure(resp, text) {
@@ -11684,19 +11751,14 @@ var TalerCorebankApi;
})(MonitorTimeframeParam = TalerCorebankApi2.MonitorTimeframeParam || (TalerCorebankApi2.MonitorTimeframeParam = {}));
})(TalerCorebankApi || (TalerCorebankApi = {}));
var TalerExchangeApi;
-(function(TalerExchangeApi4) {
+(function(TalerExchangeApi5) {
let AmlState;
(function(AmlState2) {
AmlState2[AmlState2["normal"] = 0] = "normal";
AmlState2[AmlState2["pending"] = 1] = "pending";
AmlState2[AmlState2["frozen"] = 2] = "frozen";
- })(AmlState = TalerExchangeApi4.AmlState || (TalerExchangeApi4.AmlState = {}));
+ })(AmlState = TalerExchangeApi5.AmlState || (TalerExchangeApi5.AmlState = {}));
})(TalerExchangeApi || (TalerExchangeApi = {}));
-var TalerMerchantApi;
-(function(TalerMerchantApi2) {
- ;
- ;
-})(TalerMerchantApi || (TalerMerchantApi = {}));
// ../taler-util/lib/http-client/utils.js
function addPaginationParams(url, pagination) {
@@ -11856,19 +11918,21 @@ function unlockOfficerAccount(account2, password) {
return __async(this, null, function* () {
const rawKey = decodeCrock(account2);
const rawPassword = stringToBytes(password);
- const signingKey = yield decryptWithDerivedKey(rawKey, rawPassword, password).catch((e4) => {
- throw new UnwrapKeyError(e4.message);
+ const signingKey = yield decryptWithDerivedKey(rawKey, rawPassword, password).catch((e5) => {
+ throw new UnwrapKeyError(e5.message);
});
const publicKey = eddsaGetPublic(signingKey);
const accountId = encodeCrock(publicKey);
return { id: accountId, signingKey };
});
}
-function createNewOfficerAccount(password) {
+function createNewOfficerAccount(password, extraNonce) {
return __async(this, null, function* () {
const { eddsaPriv, eddsaPub } = createEddsaKeyPair();
const key = stringToBytes(password);
- const protectedPrivKey = yield encryptWithDerivedKey(getRandomBytesF(24), key, eddsaPriv, password);
+ const localRnd = getRandomBytesF(24);
+ const mergedRnd = extraNonce ? kdf(24, stringToBytes("aml-officer"), extraNonce, localRnd) : localRnd;
+ const protectedPrivKey = yield encryptWithDerivedKey(mergedRnd, key, eddsaPriv, password);
const signingKey = eddsaPriv;
const accountId = encodeCrock(eddsaPub);
const safe = encodeCrock(protectedPrivKey);
@@ -11909,11 +11973,13 @@ init_preact_module();
init_preact_module();
init_preact_module();
init_preact_module();
+init_hooks_module();
init_preact_module();
-init_compat_module();
init_preact_module();
init_hooks_module();
+init_compat_module();
init_preact_module();
+init_hooks_module();
init_preact_module();
init_preact_module();
init_preact_module();
@@ -11921,11613 +11987,27 @@ init_preact_module();
init_preact_module();
init_hooks_module();
init_preact_module();
+init_preact_module();
init_hooks_module();
init_preact_module();
init_preact_module();
init_preact_module();
init_preact_module();
+init_preact_module();
init_hooks_module();
init_preact_module();
+init_hooks_module();
+init_preact_module();
+init_preact_module();
init_preact_module();
init_preact_module();
init_preact_module();
init_hooks_module();
-var __create2 = Object.create;
var __defProp2 = Object.defineProperty;
-var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames2 = Object.getOwnPropertyNames;
-var __getProtoOf2 = Object.getPrototypeOf;
-var __hasOwnProp2 = Object.prototype.hasOwnProperty;
-var __commonJS2 = (cb, mod) => function __require() {
- return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
-};
var __export2 = (target, all) => {
for (var name in all)
__defProp2(target, name, { get: all[name], enumerable: true });
};
-var __copyProps2 = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames2(from))
- if (!__hasOwnProp2.call(to, key) && key !== except)
- __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
- }
- return to;
-};
-var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
- mod
-));
-var require_react_development = __commonJS2({
- "../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.development.js"(exports, module) {
- "use strict";
- if (true) {
- (function() {
- "use strict";
- if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
- }
- var ReactVersion = "18.2.0";
- var REACT_ELEMENT_TYPE = Symbol.for("react.element");
- var REACT_PORTAL_TYPE = Symbol.for("react.portal");
- var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
- var REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode");
- var REACT_PROFILER_TYPE = Symbol.for("react.profiler");
- var REACT_PROVIDER_TYPE = Symbol.for("react.provider");
- var REACT_CONTEXT_TYPE = Symbol.for("react.context");
- var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref");
- var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense");
- var REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list");
- var REACT_MEMO_TYPE = Symbol.for("react.memo");
- var REACT_LAZY_TYPE = Symbol.for("react.lazy");
- var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen");
- var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
- var FAUX_ITERATOR_SYMBOL = "@@iterator";
- function getIteratorFn(maybeIterable) {
- if (maybeIterable === null || typeof maybeIterable !== "object") {
- return null;
- }
- var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
- if (typeof maybeIterator === "function") {
- return maybeIterator;
- }
- return null;
- }
- var ReactCurrentDispatcher = {
- /**
- * @internal
- * @type {ReactComponent}
- */
- current: null
- };
- var ReactCurrentBatchConfig = {
- transition: null
- };
- var ReactCurrentActQueue = {
- current: null,
- // Used to reproduce behavior of `batchedUpdates` in legacy mode.
- isBatchingLegacy: false,
- didScheduleLegacyUpdate: false
- };
- var ReactCurrentOwner = {
- /**
- * @internal
- * @type {ReactComponent}
- */
- current: null
- };
- var ReactDebugCurrentFrame = {};
- var currentExtraStackFrame = null;
- function setExtraStackFrame(stack) {
- {
- currentExtraStackFrame = stack;
- }
- }
- {
- ReactDebugCurrentFrame.setExtraStackFrame = function(stack) {
- {
- currentExtraStackFrame = stack;
- }
- };
- ReactDebugCurrentFrame.getCurrentStack = null;
- ReactDebugCurrentFrame.getStackAddendum = function() {
- var stack = "";
- if (currentExtraStackFrame) {
- stack += currentExtraStackFrame;
- }
- var impl = ReactDebugCurrentFrame.getCurrentStack;
- if (impl) {
- stack += impl() || "";
- }
- return stack;
- };
- }
- var enableScopeAPI = false;
- var enableCacheElement = false;
- var enableTransitionTracing = false;
- var enableLegacyHidden = false;
- var enableDebugTracing = false;
- var ReactSharedInternals = {
- ReactCurrentDispatcher,
- ReactCurrentBatchConfig,
- ReactCurrentOwner
- };
- {
- ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;
- ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;
- }
- function warn(format2) {
- {
- {
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
- printWarning("warn", format2, args);
- }
- }
- }
- function error2(format2) {
- {
- {
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- args[_key2 - 1] = arguments[_key2];
- }
- printWarning("error", format2, args);
- }
- }
- }
- function printWarning(level, format2, args) {
- {
- var ReactDebugCurrentFrame2 = ReactSharedInternals.ReactDebugCurrentFrame;
- var stack = ReactDebugCurrentFrame2.getStackAddendum();
- if (stack !== "") {
- format2 += "%s";
- args = args.concat([stack]);
- }
- var argsWithFormat = args.map(function(item) {
- return String(item);
- });
- argsWithFormat.unshift("Warning: " + format2);
- Function.prototype.apply.call(console[level], console, argsWithFormat);
- }
- }
- var didWarnStateUpdateForUnmountedComponent = {};
- function warnNoop(publicInstance, callerName) {
- {
- var _constructor = publicInstance.constructor;
- var componentName = _constructor && (_constructor.displayName || _constructor.name) || "ReactClass";
- var warningKey = componentName + "." + callerName;
- if (didWarnStateUpdateForUnmountedComponent[warningKey]) {
- return;
- }
- error2("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.", callerName, componentName);
- didWarnStateUpdateForUnmountedComponent[warningKey] = true;
- }
- }
- var ReactNoopUpdateQueue = {
- /**
- * Checks whether or not this composite component is mounted.
- * @param {ReactClass} publicInstance The instance we want to test.
- * @return {boolean} True if mounted, false otherwise.
- * @protected
- * @final
- */
- isMounted: function(publicInstance) {
- return false;
- },
- /**
- * Forces an update. This should only be invoked when it is known with
- * certainty that we are **not** in a DOM transaction.
- *
- * You may want to call this when you know that some deeper aspect of the
- * component's state has changed but `setState` was not called.
- *
- * This will not invoke `shouldComponentUpdate`, but it will invoke
- * `componentWillUpdate` and `componentDidUpdate`.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @param {?function} callback Called after component is updated.
- * @param {?string} callerName name of the calling function in the public API.
- * @internal
- */
- enqueueForceUpdate: function(publicInstance, callback, callerName) {
- warnNoop(publicInstance, "forceUpdate");
- },
- /**
- * Replaces all of the state. Always use this or `setState` to mutate state.
- * You should treat `this.state` as immutable.
- *
- * There is no guarantee that `this.state` will be immediately updated, so
- * accessing `this.state` after calling this method may return the old value.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @param {object} completeState Next state.
- * @param {?function} callback Called after component is updated.
- * @param {?string} callerName name of the calling function in the public API.
- * @internal
- */
- enqueueReplaceState: function(publicInstance, completeState, callback, callerName) {
- warnNoop(publicInstance, "replaceState");
- },
- /**
- * Sets a subset of the state. This only exists because _pendingState is
- * internal. This provides a merging strategy that is not available to deep
- * properties which is confusing. TODO: Expose pendingState or don't use it
- * during the merge.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @param {object} partialState Next partial state to be merged with state.
- * @param {?function} callback Called after component is updated.
- * @param {?string} Name of the calling function in the public API.
- * @internal
- */
- enqueueSetState: function(publicInstance, partialState, callback, callerName) {
- warnNoop(publicInstance, "setState");
- }
- };
- var assign2 = Object.assign;
- var emptyObject = {};
- {
- Object.freeze(emptyObject);
- }
- function Component(props, context, updater) {
- this.props = props;
- this.context = context;
- this.refs = emptyObject;
- this.updater = updater || ReactNoopUpdateQueue;
- }
- Component.prototype.isReactComponent = {};
- Component.prototype.setState = function(partialState, callback) {
- if (typeof partialState !== "object" && typeof partialState !== "function" && partialState != null) {
- throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
- }
- this.updater.enqueueSetState(this, partialState, callback, "setState");
- };
- Component.prototype.forceUpdate = function(callback) {
- this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
- };
- {
- var deprecatedAPIs = {
- isMounted: ["isMounted", "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],
- replaceState: ["replaceState", "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]
- };
- var defineDeprecationWarning = function(methodName, info) {
- Object.defineProperty(Component.prototype, methodName, {
- get: function() {
- warn("%s(...) is deprecated in plain JavaScript React classes. %s", info[0], info[1]);
- return void 0;
- }
- });
- };
- for (var fnName in deprecatedAPIs) {
- if (deprecatedAPIs.hasOwnProperty(fnName)) {
- defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
- }
- }
- }
- function ComponentDummy() {
- }
- ComponentDummy.prototype = Component.prototype;
- function PureComponent(props, context, updater) {
- this.props = props;
- this.context = context;
- this.refs = emptyObject;
- this.updater = updater || ReactNoopUpdateQueue;
- }
- var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
- pureComponentPrototype.constructor = PureComponent;
- assign2(pureComponentPrototype, Component.prototype);
- pureComponentPrototype.isPureReactComponent = true;
- function createRef() {
- var refObject = {
- current: null
- };
- {
- Object.seal(refObject);
- }
- return refObject;
- }
- var isArrayImpl = Array.isArray;
- function isArray(a32) {
- return isArrayImpl(a32);
- }
- function typeName(value) {
- {
- var hasToStringTag = typeof Symbol === "function" && Symbol.toStringTag;
- var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object";
- return type;
- }
- }
- function willCoercionThrow(value) {
- {
- try {
- testStringCoercion(value);
- return false;
- } catch (e22) {
- return true;
- }
- }
- }
- function testStringCoercion(value) {
- return "" + value;
- }
- function checkKeyStringCoercion(value) {
- {
- if (willCoercionThrow(value)) {
- error2("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", typeName(value));
- return testStringCoercion(value);
- }
- }
- }
- function getWrappedName(outerType, innerType, wrapperName) {
- var displayName = outerType.displayName;
- if (displayName) {
- return displayName;
- }
- var functionName = innerType.displayName || innerType.name || "";
- return functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName;
- }
- function getContextName(type) {
- return type.displayName || "Context";
- }
- function getComponentNameFromType(type) {
- if (type == null) {
- return null;
- }
- {
- if (typeof type.tag === "number") {
- error2("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.");
- }
- }
- if (typeof type === "function") {
- return type.displayName || type.name || null;
- }
- if (typeof type === "string") {
- return type;
- }
- switch (type) {
- case REACT_FRAGMENT_TYPE:
- return "Fragment";
- case REACT_PORTAL_TYPE:
- return "Portal";
- case REACT_PROFILER_TYPE:
- return "Profiler";
- case REACT_STRICT_MODE_TYPE:
- return "StrictMode";
- case REACT_SUSPENSE_TYPE:
- return "Suspense";
- case REACT_SUSPENSE_LIST_TYPE:
- return "SuspenseList";
- }
- if (typeof type === "object") {
- switch (type.$$typeof) {
- case REACT_CONTEXT_TYPE:
- var context = type;
- return getContextName(context) + ".Consumer";
- case REACT_PROVIDER_TYPE:
- var provider = type;
- return getContextName(provider._context) + ".Provider";
- case REACT_FORWARD_REF_TYPE:
- return getWrappedName(type, type.render, "ForwardRef");
- case REACT_MEMO_TYPE:
- var outerName = type.displayName || null;
- if (outerName !== null) {
- return outerName;
- }
- return getComponentNameFromType(type.type) || "Memo";
- case REACT_LAZY_TYPE: {
- var lazyComponent = type;
- var payload = lazyComponent._payload;
- var init = lazyComponent._init;
- try {
- return getComponentNameFromType(init(payload));
- } catch (x22) {
- return null;
- }
- }
- }
- }
- return null;
- }
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- var RESERVED_PROPS = {
- key: true,
- ref: true,
- __self: true,
- __source: true
- };
- var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;
- {
- didWarnAboutStringRefs = {};
- }
- function hasValidRef(config) {
- {
- if (hasOwnProperty.call(config, "ref")) {
- var getter = Object.getOwnPropertyDescriptor(config, "ref").get;
- if (getter && getter.isReactWarning) {
- return false;
- }
- }
- }
- return config.ref !== void 0;
- }
- function hasValidKey(config) {
- {
- if (hasOwnProperty.call(config, "key")) {
- var getter = Object.getOwnPropertyDescriptor(config, "key").get;
- if (getter && getter.isReactWarning) {
- return false;
- }
- }
- }
- return config.key !== void 0;
- }
- function defineKeyPropWarningGetter(props, displayName) {
- var warnAboutAccessingKey = function() {
- {
- if (!specialPropKeyWarningShown) {
- specialPropKeyWarningShown = true;
- error2("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName);
- }
- }
- };
- warnAboutAccessingKey.isReactWarning = true;
- Object.defineProperty(props, "key", {
- get: warnAboutAccessingKey,
- configurable: true
- });
- }
- function defineRefPropWarningGetter(props, displayName) {
- var warnAboutAccessingRef = function() {
- {
- if (!specialPropRefWarningShown) {
- specialPropRefWarningShown = true;
- error2("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName);
- }
- }
- };
- warnAboutAccessingRef.isReactWarning = true;
- Object.defineProperty(props, "ref", {
- get: warnAboutAccessingRef,
- configurable: true
- });
- }
- function warnIfStringRefCannotBeAutoConverted(config) {
- {
- if (typeof config.ref === "string" && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {
- var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);
- if (!didWarnAboutStringRefs[componentName]) {
- error2('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);
- didWarnAboutStringRefs[componentName] = true;
- }
- }
- }
- }
- var ReactElement = function(type, key, ref, self2, source, owner, props) {
- var element = {
- // This tag allows us to uniquely identify this as a React Element
- $$typeof: REACT_ELEMENT_TYPE,
- // Built-in properties that belong on the element
- type,
- key,
- ref,
- props,
- // Record the component responsible for creating this element.
- _owner: owner
- };
- {
- element._store = {};
- Object.defineProperty(element._store, "validated", {
- configurable: false,
- enumerable: false,
- writable: true,
- value: false
- });
- Object.defineProperty(element, "_self", {
- configurable: false,
- enumerable: false,
- writable: false,
- value: self2
- });
- Object.defineProperty(element, "_source", {
- configurable: false,
- enumerable: false,
- writable: false,
- value: source
- });
- if (Object.freeze) {
- Object.freeze(element.props);
- Object.freeze(element);
- }
- }
- return element;
- };
- function createElement2(type, config, children) {
- var propName;
- var props = {};
- var key = null;
- var ref = null;
- var self2 = null;
- var source = null;
- if (config != null) {
- if (hasValidRef(config)) {
- ref = config.ref;
- {
- warnIfStringRefCannotBeAutoConverted(config);
- }
- }
- if (hasValidKey(config)) {
- {
- checkKeyStringCoercion(config.key);
- }
- key = "" + config.key;
- }
- self2 = config.__self === void 0 ? null : config.__self;
- source = config.__source === void 0 ? null : config.__source;
- for (propName in config) {
- if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
- props[propName] = config[propName];
- }
- }
- }
- var childrenLength = arguments.length - 2;
- if (childrenLength === 1) {
- props.children = children;
- } else if (childrenLength > 1) {
- var childArray = Array(childrenLength);
- for (var i22 = 0; i22 < childrenLength; i22++) {
- childArray[i22] = arguments[i22 + 2];
- }
- {
- if (Object.freeze) {
- Object.freeze(childArray);
- }
- }
- props.children = childArray;
- }
- if (type && type.defaultProps) {
- var defaultProps = type.defaultProps;
- for (propName in defaultProps) {
- if (props[propName] === void 0) {
- props[propName] = defaultProps[propName];
- }
- }
- }
- {
- if (key || ref) {
- var displayName = typeof type === "function" ? type.displayName || type.name || "Unknown" : type;
- if (key) {
- defineKeyPropWarningGetter(props, displayName);
- }
- if (ref) {
- defineRefPropWarningGetter(props, displayName);
- }
- }
- }
- return ReactElement(type, key, ref, self2, source, ReactCurrentOwner.current, props);
- }
- function cloneAndReplaceKey(oldElement, newKey) {
- var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);
- return newElement;
- }
- function cloneElement(element, config, children) {
- if (element === null || element === void 0) {
- throw new Error("React.cloneElement(...): The argument must be a React element, but you passed " + element + ".");
- }
- var propName;
- var props = assign2({}, element.props);
- var key = element.key;
- var ref = element.ref;
- var self2 = element._self;
- var source = element._source;
- var owner = element._owner;
- if (config != null) {
- if (hasValidRef(config)) {
- ref = config.ref;
- owner = ReactCurrentOwner.current;
- }
- if (hasValidKey(config)) {
- {
- checkKeyStringCoercion(config.key);
- }
- key = "" + config.key;
- }
- var defaultProps;
- if (element.type && element.type.defaultProps) {
- defaultProps = element.type.defaultProps;
- }
- for (propName in config) {
- if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
- if (config[propName] === void 0 && defaultProps !== void 0) {
- props[propName] = defaultProps[propName];
- } else {
- props[propName] = config[propName];
- }
- }
- }
- }
- var childrenLength = arguments.length - 2;
- if (childrenLength === 1) {
- props.children = children;
- } else if (childrenLength > 1) {
- var childArray = Array(childrenLength);
- for (var i22 = 0; i22 < childrenLength; i22++) {
- childArray[i22] = arguments[i22 + 2];
- }
- props.children = childArray;
- }
- return ReactElement(element.type, key, ref, self2, source, owner, props);
- }
- function isValidElement(object) {
- return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
- }
- var SEPARATOR = ".";
- var SUBSEPARATOR = ":";
- function escape(key) {
- var escapeRegex = /[=:]/g;
- var escaperLookup = {
- "=": "=0",
- ":": "=2"
- };
- var escapedString = key.replace(escapeRegex, function(match22) {
- return escaperLookup[match22];
- });
- return "$" + escapedString;
- }
- var didWarnAboutMaps = false;
- var userProvidedKeyEscapeRegex = /\/+/g;
- function escapeUserProvidedKey(text) {
- return text.replace(userProvidedKeyEscapeRegex, "$&/");
- }
- function getElementKey(element, index) {
- if (typeof element === "object" && element !== null && element.key != null) {
- {
- checkKeyStringCoercion(element.key);
- }
- return escape("" + element.key);
- }
- return index.toString(36);
- }
- function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
- var type = typeof children;
- if (type === "undefined" || type === "boolean") {
- children = null;
- }
- var invokeCallback = false;
- if (children === null) {
- invokeCallback = true;
- } else {
- switch (type) {
- case "string":
- case "number":
- invokeCallback = true;
- break;
- case "object":
- switch (children.$$typeof) {
- case REACT_ELEMENT_TYPE:
- case REACT_PORTAL_TYPE:
- invokeCallback = true;
- }
- }
- }
- if (invokeCallback) {
- var _child = children;
- var mappedChild = callback(_child);
- var childKey = nameSoFar === "" ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;
- if (isArray(mappedChild)) {
- var escapedChildKey = "";
- if (childKey != null) {
- escapedChildKey = escapeUserProvidedKey(childKey) + "/";
- }
- mapIntoArray(mappedChild, array, escapedChildKey, "", function(c22) {
- return c22;
- });
- } else if (mappedChild != null) {
- if (isValidElement(mappedChild)) {
- {
- if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {
- checkKeyStringCoercion(mappedChild.key);
- }
- }
- mappedChild = cloneAndReplaceKey(
- mappedChild,
- // Keep both the (mapped) and old keys if they differ, just as
- // traverseAllChildren used to do for objects as children
- escapedPrefix + // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key
- (mappedChild.key && (!_child || _child.key !== mappedChild.key) ? (
- // $FlowFixMe Flow incorrectly thinks existing element's key can be a number
- // eslint-disable-next-line react-internal/safe-string-coercion
- escapeUserProvidedKey("" + mappedChild.key) + "/"
- ) : "") + childKey
- );
- }
- array.push(mappedChild);
- }
- return 1;
- }
- var child;
- var nextName;
- var subtreeCount = 0;
- var nextNamePrefix = nameSoFar === "" ? SEPARATOR : nameSoFar + SUBSEPARATOR;
- if (isArray(children)) {
- for (var i22 = 0; i22 < children.length; i22++) {
- child = children[i22];
- nextName = nextNamePrefix + getElementKey(child, i22);
- subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
- }
- } else {
- var iteratorFn = getIteratorFn(children);
- if (typeof iteratorFn === "function") {
- var iterableChildren = children;
- {
- if (iteratorFn === iterableChildren.entries) {
- if (!didWarnAboutMaps) {
- warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead.");
- }
- didWarnAboutMaps = true;
- }
- }
- var iterator = iteratorFn.call(iterableChildren);
- var step;
- var ii = 0;
- while (!(step = iterator.next()).done) {
- child = step.value;
- nextName = nextNamePrefix + getElementKey(child, ii++);
- subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
- }
- } else if (type === "object") {
- var childrenString = String(children);
- throw new Error("Objects are not valid as a React child (found: " + (childrenString === "[object Object]" ? "object with keys {" + Object.keys(children).join(", ") + "}" : childrenString) + "). If you meant to render a collection of children, use an array instead.");
- }
- }
- return subtreeCount;
- }
- function mapChildren(children, func, context) {
- if (children == null) {
- return children;
- }
- var result = [];
- var count = 0;
- mapIntoArray(children, result, "", "", function(child) {
- return func.call(context, child, count++);
- });
- return result;
- }
- function countChildren(children) {
- var n2 = 0;
- mapChildren(children, function() {
- n2++;
- });
- return n2;
- }
- function forEachChildren(children, forEachFunc, forEachContext) {
- mapChildren(children, function() {
- forEachFunc.apply(this, arguments);
- }, forEachContext);
- }
- function toArray(children) {
- return mapChildren(children, function(child) {
- return child;
- }) || [];
- }
- function onlyChild(children) {
- if (!isValidElement(children)) {
- throw new Error("React.Children.only expected to receive a single React element child.");
- }
- return children;
- }
- function createContext4(defaultValue) {
- var context = {
- $$typeof: REACT_CONTEXT_TYPE,
- // As a workaround to support multiple concurrent renderers, we categorize
- // some renderers as primary and others as secondary. We only expect
- // there to be two concurrent renderers at most: React Native (primary) and
- // Fabric (secondary); React DOM (primary) and React ART (secondary).
- // Secondary renderers store their context values on separate fields.
- _currentValue: defaultValue,
- _currentValue2: defaultValue,
- // Used to track how many concurrent renderers this context currently
- // supports within in a single renderer. Such as parallel server rendering.
- _threadCount: 0,
- // These are circular
- Provider: null,
- Consumer: null,
- // Add these to use same hidden class in VM as ServerContext
- _defaultValue: null,
- _globalName: null
- };
- context.Provider = {
- $$typeof: REACT_PROVIDER_TYPE,
- _context: context
- };
- var hasWarnedAboutUsingNestedContextConsumers = false;
- var hasWarnedAboutUsingConsumerProvider = false;
- var hasWarnedAboutDisplayNameOnConsumer = false;
- {
- var Consumer = {
- $$typeof: REACT_CONTEXT_TYPE,
- _context: context
- };
- Object.defineProperties(Consumer, {
- Provider: {
- get: function() {
- if (!hasWarnedAboutUsingConsumerProvider) {
- hasWarnedAboutUsingConsumerProvider = true;
- error2("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?");
- }
- return context.Provider;
- },
- set: function(_Provider) {
- context.Provider = _Provider;
- }
- },
- _currentValue: {
- get: function() {
- return context._currentValue;
- },
- set: function(_currentValue) {
- context._currentValue = _currentValue;
- }
- },
- _currentValue2: {
- get: function() {
- return context._currentValue2;
- },
- set: function(_currentValue2) {
- context._currentValue2 = _currentValue2;
- }
- },
- _threadCount: {
- get: function() {
- return context._threadCount;
- },
- set: function(_threadCount) {
- context._threadCount = _threadCount;
- }
- },
- Consumer: {
- get: function() {
- if (!hasWarnedAboutUsingNestedContextConsumers) {
- hasWarnedAboutUsingNestedContextConsumers = true;
- error2("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?");
- }
- return context.Consumer;
- }
- },
- displayName: {
- get: function() {
- return context.displayName;
- },
- set: function(displayName) {
- if (!hasWarnedAboutDisplayNameOnConsumer) {
- warn("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.", displayName);
- hasWarnedAboutDisplayNameOnConsumer = true;
- }
- }
- }
- });
- context.Consumer = Consumer;
- }
- {
- context._currentRenderer = null;
- context._currentRenderer2 = null;
- }
- return context;
- }
- var Uninitialized = -1;
- var Pending = 0;
- var Resolved = 1;
- var Rejected = 2;
- function lazyInitializer(payload) {
- if (payload._status === Uninitialized) {
- var ctor = payload._result;
- var thenable = ctor();
- thenable.then(function(moduleObject2) {
- if (payload._status === Pending || payload._status === Uninitialized) {
- var resolved = payload;
- resolved._status = Resolved;
- resolved._result = moduleObject2;
- }
- }, function(error22) {
- if (payload._status === Pending || payload._status === Uninitialized) {
- var rejected = payload;
- rejected._status = Rejected;
- rejected._result = error22;
- }
- });
- if (payload._status === Uninitialized) {
- var pending = payload;
- pending._status = Pending;
- pending._result = thenable;
- }
- }
- if (payload._status === Resolved) {
- var moduleObject = payload._result;
- {
- if (moduleObject === void 0) {
- error2("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?", moduleObject);
- }
- }
- {
- if (!("default" in moduleObject)) {
- error2("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))", moduleObject);
- }
- }
- return moduleObject.default;
- } else {
- throw payload._result;
- }
- }
- function lazy(ctor) {
- var payload = {
- // We use these fields to store the result.
- _status: Uninitialized,
- _result: ctor
- };
- var lazyType = {
- $$typeof: REACT_LAZY_TYPE,
- _payload: payload,
- _init: lazyInitializer
- };
- {
- var defaultProps;
- var propTypes;
- Object.defineProperties(lazyType, {
- defaultProps: {
- configurable: true,
- get: function() {
- return defaultProps;
- },
- set: function(newDefaultProps) {
- error2("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it.");
- defaultProps = newDefaultProps;
- Object.defineProperty(lazyType, "defaultProps", {
- enumerable: true
- });
- }
- },
- propTypes: {
- configurable: true,
- get: function() {
- return propTypes;
- },
- set: function(newPropTypes) {
- error2("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it.");
- propTypes = newPropTypes;
- Object.defineProperty(lazyType, "propTypes", {
- enumerable: true
- });
- }
- }
- });
- }
- return lazyType;
- }
- function forwardRef(render2) {
- {
- if (render2 != null && render2.$$typeof === REACT_MEMO_TYPE) {
- error2("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).");
- } else if (typeof render2 !== "function") {
- error2("forwardRef requires a render function but was given %s.", render2 === null ? "null" : typeof render2);
- } else {
- if (render2.length !== 0 && render2.length !== 2) {
- error2("forwardRef render functions accept exactly two parameters: props and ref. %s", render2.length === 1 ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined.");
- }
- }
- if (render2 != null) {
- if (render2.defaultProps != null || render2.propTypes != null) {
- error2("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?");
- }
- }
- }
- var elementType = {
- $$typeof: REACT_FORWARD_REF_TYPE,
- render: render2
- };
- {
- var ownName;
- Object.defineProperty(elementType, "displayName", {
- enumerable: false,
- configurable: true,
- get: function() {
- return ownName;
- },
- set: function(name) {
- ownName = name;
- if (!render2.name && !render2.displayName) {
- render2.displayName = name;
- }
- }
- });
- }
- return elementType;
- }
- var REACT_MODULE_REFERENCE;
- {
- REACT_MODULE_REFERENCE = Symbol.for("react.module.reference");
- }
- function isValidElementType(type) {
- if (typeof type === "string" || typeof type === "function") {
- return true;
- }
- if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {
- return true;
- }
- if (typeof type === "object" && type !== null) {
- if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object
- // types supported by any Flight configuration anywhere since
- // we don't know which Flight build this will end up being used
- // with.
- type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== void 0) {
- return true;
- }
- }
- return false;
- }
- function memo(type, compare2) {
- {
- if (!isValidElementType(type)) {
- error2("memo: The first argument must be a component. Instead received: %s", type === null ? "null" : typeof type);
- }
- }
- var elementType = {
- $$typeof: REACT_MEMO_TYPE,
- type,
- compare: compare2 === void 0 ? null : compare2
- };
- {
- var ownName;
- Object.defineProperty(elementType, "displayName", {
- enumerable: false,
- configurable: true,
- get: function() {
- return ownName;
- },
- set: function(name) {
- ownName = name;
- if (!type.name && !type.displayName) {
- type.displayName = name;
- }
- }
- });
- }
- return elementType;
- }
- function resolveDispatcher() {
- var dispatcher = ReactCurrentDispatcher.current;
- {
- if (dispatcher === null) {
- error2("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.");
- }
- }
- return dispatcher;
- }
- function useContext4(Context32) {
- var dispatcher = resolveDispatcher();
- {
- if (Context32._context !== void 0) {
- var realContext = Context32._context;
- if (realContext.Consumer === Context32) {
- error2("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?");
- } else if (realContext.Provider === Context32) {
- error2("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?");
- }
- }
- }
- return dispatcher.useContext(Context32);
- }
- function useState14(initialState) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useState(initialState);
- }
- function useReducer(reducer, initialArg, init) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useReducer(reducer, initialArg, init);
- }
- function useRef2(initialValue) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useRef(initialValue);
- }
- function useEffect11(create2, deps) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useEffect(create2, deps);
- }
- function useInsertionEffect(create2, deps) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useInsertionEffect(create2, deps);
- }
- function useLayoutEffect(create2, deps) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useLayoutEffect(create2, deps);
- }
- function useCallback(callback, deps) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useCallback(callback, deps);
- }
- function useMemo2(create2, deps) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useMemo(create2, deps);
- }
- function useImperativeHandle(ref, create2, deps) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useImperativeHandle(ref, create2, deps);
- }
- function useDebugValue(value, formatterFn) {
- {
- var dispatcher = resolveDispatcher();
- return dispatcher.useDebugValue(value, formatterFn);
- }
- }
- function useTransition() {
- var dispatcher = resolveDispatcher();
- return dispatcher.useTransition();
- }
- function useDeferredValue(value) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useDeferredValue(value);
- }
- function useId() {
- var dispatcher = resolveDispatcher();
- return dispatcher.useId();
- }
- function useSyncExternalStore2(subscribe, getSnapshot, getServerSnapshot) {
- var dispatcher = resolveDispatcher();
- return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
- }
- var disabledDepth = 0;
- var prevLog;
- var prevInfo;
- var prevWarn;
- var prevError;
- var prevGroup;
- var prevGroupCollapsed;
- var prevGroupEnd;
- function disabledLog() {
- }
- disabledLog.__reactDisabledLog = true;
- function disableLogs() {
- {
- if (disabledDepth === 0) {
- prevLog = console.log;
- prevInfo = console.info;
- prevWarn = console.warn;
- prevError = console.error;
- prevGroup = console.group;
- prevGroupCollapsed = console.groupCollapsed;
- prevGroupEnd = console.groupEnd;
- var props = {
- configurable: true,
- enumerable: true,
- value: disabledLog,
- writable: true
- };
- Object.defineProperties(console, {
- info: props,
- log: props,
- warn: props,
- error: props,
- group: props,
- groupCollapsed: props,
- groupEnd: props
- });
- }
- disabledDepth++;
- }
- }
- function reenableLogs() {
- {
- disabledDepth--;
- if (disabledDepth === 0) {
- var props = {
- configurable: true,
- enumerable: true,
- writable: true
- };
- Object.defineProperties(console, {
- log: assign2({}, props, {
- value: prevLog
- }),
- info: assign2({}, props, {
- value: prevInfo
- }),
- warn: assign2({}, props, {
- value: prevWarn
- }),
- error: assign2({}, props, {
- value: prevError
- }),
- group: assign2({}, props, {
- value: prevGroup
- }),
- groupCollapsed: assign2({}, props, {
- value: prevGroupCollapsed
- }),
- groupEnd: assign2({}, props, {
- value: prevGroupEnd
- })
- });
- }
- if (disabledDepth < 0) {
- error2("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
- }
- }
- }
- var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;
- var prefix2;
- function describeBuiltInComponentFrame(name, source, ownerFn) {
- {
- if (prefix2 === void 0) {
- try {
- throw Error();
- } catch (x22) {
- var match22 = x22.stack.trim().match(/\n( *(at )?)/);
- prefix2 = match22 && match22[1] || "";
- }
- }
- return "\n" + prefix2 + name;
- }
- }
- var reentry = false;
- var componentFrameCache;
- {
- var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map;
- componentFrameCache = new PossiblyWeakMap();
- }
- function describeNativeComponentFrame(fn2, construct) {
- if (!fn2 || reentry) {
- return "";
- }
- {
- var frame = componentFrameCache.get(fn2);
- if (frame !== void 0) {
- return frame;
- }
- }
- var control;
- reentry = true;
- var previousPrepareStackTrace = Error.prepareStackTrace;
- Error.prepareStackTrace = void 0;
- var previousDispatcher;
- {
- previousDispatcher = ReactCurrentDispatcher$1.current;
- ReactCurrentDispatcher$1.current = null;
- disableLogs();
- }
- try {
- if (construct) {
- var Fake = function() {
- throw Error();
- };
- Object.defineProperty(Fake.prototype, "props", {
- set: function() {
- throw Error();
- }
- });
- if (typeof Reflect === "object" && Reflect.construct) {
- try {
- Reflect.construct(Fake, []);
- } catch (x22) {
- control = x22;
- }
- Reflect.construct(fn2, [], Fake);
- } else {
- try {
- Fake.call();
- } catch (x22) {
- control = x22;
- }
- fn2.call(Fake.prototype);
- }
- } else {
- try {
- throw Error();
- } catch (x22) {
- control = x22;
- }
- fn2();
- }
- } catch (sample) {
- if (sample && control && typeof sample.stack === "string") {
- var sampleLines = sample.stack.split("\n");
- var controlLines = control.stack.split("\n");
- var s32 = sampleLines.length - 1;
- var c22 = controlLines.length - 1;
- while (s32 >= 1 && c22 >= 0 && sampleLines[s32] !== controlLines[c22]) {
- c22--;
- }
- for (; s32 >= 1 && c22 >= 0; s32--, c22--) {
- if (sampleLines[s32] !== controlLines[c22]) {
- if (s32 !== 1 || c22 !== 1) {
- do {
- s32--;
- c22--;
- if (c22 < 0 || sampleLines[s32] !== controlLines[c22]) {
- var _frame = "\n" + sampleLines[s32].replace(" at new ", " at ");
- if (fn2.displayName && _frame.includes("<anonymous>")) {
- _frame = _frame.replace("<anonymous>", fn2.displayName);
- }
- {
- if (typeof fn2 === "function") {
- componentFrameCache.set(fn2, _frame);
- }
- }
- return _frame;
- }
- } while (s32 >= 1 && c22 >= 0);
- }
- break;
- }
- }
- }
- } finally {
- reentry = false;
- {
- ReactCurrentDispatcher$1.current = previousDispatcher;
- reenableLogs();
- }
- Error.prepareStackTrace = previousPrepareStackTrace;
- }
- var name = fn2 ? fn2.displayName || fn2.name : "";
- var syntheticFrame = name ? describeBuiltInComponentFrame(name) : "";
- {
- if (typeof fn2 === "function") {
- componentFrameCache.set(fn2, syntheticFrame);
- }
- }
- return syntheticFrame;
- }
- function describeFunctionComponentFrame(fn2, source, ownerFn) {
- {
- return describeNativeComponentFrame(fn2, false);
- }
- }
- function shouldConstruct(Component2) {
- var prototype = Component2.prototype;
- return !!(prototype && prototype.isReactComponent);
- }
- function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
- if (type == null) {
- return "";
- }
- if (typeof type === "function") {
- {
- return describeNativeComponentFrame(type, shouldConstruct(type));
- }
- }
- if (typeof type === "string") {
- return describeBuiltInComponentFrame(type);
- }
- switch (type) {
- case REACT_SUSPENSE_TYPE:
- return describeBuiltInComponentFrame("Suspense");
- case REACT_SUSPENSE_LIST_TYPE:
- return describeBuiltInComponentFrame("SuspenseList");
- }
- if (typeof type === "object") {
- switch (type.$$typeof) {
- case REACT_FORWARD_REF_TYPE:
- return describeFunctionComponentFrame(type.render);
- case REACT_MEMO_TYPE:
- return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
- case REACT_LAZY_TYPE: {
- var lazyComponent = type;
- var payload = lazyComponent._payload;
- var init = lazyComponent._init;
- try {
- return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
- } catch (x22) {
- }
- }
- }
- }
- return "";
- }
- var loggedTypeFailures = {};
- var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
- function setCurrentlyValidatingElement(element) {
- {
- if (element) {
- var owner = element._owner;
- var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
- ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
- } else {
- ReactDebugCurrentFrame$1.setExtraStackFrame(null);
- }
- }
- }
- function checkPropTypes(typeSpecs, values, location2, componentName, element) {
- {
- var has = Function.call.bind(hasOwnProperty);
- for (var typeSpecName in typeSpecs) {
- if (has(typeSpecs, typeSpecName)) {
- var error$1 = void 0;
- try {
- if (typeof typeSpecs[typeSpecName] !== "function") {
- var err = Error((componentName || "React class") + ": " + location2 + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
- err.name = "Invariant Violation";
- throw err;
- }
- error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location2, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
- } catch (ex) {
- error$1 = ex;
- }
- if (error$1 && !(error$1 instanceof Error)) {
- setCurrentlyValidatingElement(element);
- error2("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", componentName || "React class", location2, typeSpecName, typeof error$1);
- setCurrentlyValidatingElement(null);
- }
- if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
- loggedTypeFailures[error$1.message] = true;
- setCurrentlyValidatingElement(element);
- error2("Failed %s type: %s", location2, error$1.message);
- setCurrentlyValidatingElement(null);
- }
- }
- }
- }
- }
- function setCurrentlyValidatingElement$1(element) {
- {
- if (element) {
- var owner = element._owner;
- var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
- setExtraStackFrame(stack);
- } else {
- setExtraStackFrame(null);
- }
- }
- }
- var propTypesMisspellWarningShown;
- {
- propTypesMisspellWarningShown = false;
- }
- function getDeclarationErrorAddendum() {
- if (ReactCurrentOwner.current) {
- var name = getComponentNameFromType(ReactCurrentOwner.current.type);
- if (name) {
- return "\n\nCheck the render method of `" + name + "`.";
- }
- }
- return "";
- }
- function getSourceInfoErrorAddendum(source) {
- if (source !== void 0) {
- var fileName = source.fileName.replace(/^.*[\\\/]/, "");
- var lineNumber = source.lineNumber;
- return "\n\nCheck your code at " + fileName + ":" + lineNumber + ".";
- }
- return "";
- }
- function getSourceInfoErrorAddendumForProps(elementProps) {
- if (elementProps !== null && elementProps !== void 0) {
- return getSourceInfoErrorAddendum(elementProps.__source);
- }
- return "";
- }
- var ownerHasKeyUseWarning = {};
- function getCurrentComponentErrorInfo(parentType) {
- var info = getDeclarationErrorAddendum();
- if (!info) {
- var parentName = typeof parentType === "string" ? parentType : parentType.displayName || parentType.name;
- if (parentName) {
- info = "\n\nCheck the top-level render call using <" + parentName + ">.";
- }
- }
- return info;
- }
- function validateExplicitKey(element, parentType) {
- if (!element._store || element._store.validated || element.key != null) {
- return;
- }
- element._store.validated = true;
- var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
- if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
- return;
- }
- ownerHasKeyUseWarning[currentComponentErrorInfo] = true;
- var childOwner = "";
- if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
- childOwner = " It was passed a child from " + getComponentNameFromType(element._owner.type) + ".";
- }
- {
- setCurrentlyValidatingElement$1(element);
- error2('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
- setCurrentlyValidatingElement$1(null);
- }
- }
- function validateChildKeys(node, parentType) {
- if (typeof node !== "object") {
- return;
- }
- if (isArray(node)) {
- for (var i22 = 0; i22 < node.length; i22++) {
- var child = node[i22];
- if (isValidElement(child)) {
- validateExplicitKey(child, parentType);
- }
- }
- } else if (isValidElement(node)) {
- if (node._store) {
- node._store.validated = true;
- }
- } else if (node) {
- var iteratorFn = getIteratorFn(node);
- if (typeof iteratorFn === "function") {
- if (iteratorFn !== node.entries) {
- var iterator = iteratorFn.call(node);
- var step;
- while (!(step = iterator.next()).done) {
- if (isValidElement(step.value)) {
- validateExplicitKey(step.value, parentType);
- }
- }
- }
- }
- }
- }
- function validatePropTypes(element) {
- {
- var type = element.type;
- if (type === null || type === void 0 || typeof type === "string") {
- return;
- }
- var propTypes;
- if (typeof type === "function") {
- propTypes = type.propTypes;
- } else if (typeof type === "object" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
- // Inner props are checked in the reconciler.
- type.$$typeof === REACT_MEMO_TYPE)) {
- propTypes = type.propTypes;
- } else {
- return;
- }
- if (propTypes) {
- var name = getComponentNameFromType(type);
- checkPropTypes(propTypes, element.props, "prop", name, element);
- } else if (type.PropTypes !== void 0 && !propTypesMisspellWarningShown) {
- propTypesMisspellWarningShown = true;
- var _name = getComponentNameFromType(type);
- error2("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown");
- }
- if (typeof type.getDefaultProps === "function" && !type.getDefaultProps.isReactClassApproved) {
- error2("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
- }
- }
- }
- function validateFragmentProps(fragment) {
- {
- var keys = Object.keys(fragment.props);
- for (var i22 = 0; i22 < keys.length; i22++) {
- var key = keys[i22];
- if (key !== "children" && key !== "key") {
- setCurrentlyValidatingElement$1(fragment);
- error2("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", key);
- setCurrentlyValidatingElement$1(null);
- break;
- }
- }
- if (fragment.ref !== null) {
- setCurrentlyValidatingElement$1(fragment);
- error2("Invalid attribute `ref` supplied to `React.Fragment`.");
- setCurrentlyValidatingElement$1(null);
- }
- }
- }
- function createElementWithValidation(type, props, children) {
- var validType = isValidElementType(type);
- if (!validType) {
- var info = "";
- if (type === void 0 || typeof type === "object" && type !== null && Object.keys(type).length === 0) {
- info += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
- }
- var sourceInfo = getSourceInfoErrorAddendumForProps(props);
- if (sourceInfo) {
- info += sourceInfo;
- } else {
- info += getDeclarationErrorAddendum();
- }
- var typeString;
- if (type === null) {
- typeString = "null";
- } else if (isArray(type)) {
- typeString = "array";
- } else if (type !== void 0 && type.$$typeof === REACT_ELEMENT_TYPE) {
- typeString = "<" + (getComponentNameFromType(type.type) || "Unknown") + " />";
- info = " Did you accidentally export a JSX literal instead of a component?";
- } else {
- typeString = typeof type;
- }
- {
- error2("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info);
- }
- }
- var element = createElement2.apply(this, arguments);
- if (element == null) {
- return element;
- }
- if (validType) {
- for (var i22 = 2; i22 < arguments.length; i22++) {
- validateChildKeys(arguments[i22], type);
- }
- }
- if (type === REACT_FRAGMENT_TYPE) {
- validateFragmentProps(element);
- } else {
- validatePropTypes(element);
- }
- return element;
- }
- var didWarnAboutDeprecatedCreateFactory = false;
- function createFactoryWithValidation(type) {
- var validatedFactory = createElementWithValidation.bind(null, type);
- validatedFactory.type = type;
- {
- if (!didWarnAboutDeprecatedCreateFactory) {
- didWarnAboutDeprecatedCreateFactory = true;
- warn("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.");
- }
- Object.defineProperty(validatedFactory, "type", {
- enumerable: false,
- get: function() {
- warn("Factory.type is deprecated. Access the class directly before passing it to createFactory.");
- Object.defineProperty(this, "type", {
- value: type
- });
- return type;
- }
- });
- }
- return validatedFactory;
- }
- function cloneElementWithValidation(element, props, children) {
- var newElement = cloneElement.apply(this, arguments);
- for (var i22 = 2; i22 < arguments.length; i22++) {
- validateChildKeys(arguments[i22], newElement.type);
- }
- validatePropTypes(newElement);
- return newElement;
- }
- function startTransition(scope, options) {
- var prevTransition = ReactCurrentBatchConfig.transition;
- ReactCurrentBatchConfig.transition = {};
- var currentTransition = ReactCurrentBatchConfig.transition;
- {
- ReactCurrentBatchConfig.transition._updatedFibers = /* @__PURE__ */ new Set();
- }
- try {
- scope();
- } finally {
- ReactCurrentBatchConfig.transition = prevTransition;
- {
- if (prevTransition === null && currentTransition._updatedFibers) {
- var updatedFibersCount = currentTransition._updatedFibers.size;
- if (updatedFibersCount > 10) {
- warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.");
- }
- currentTransition._updatedFibers.clear();
- }
- }
- }
- }
- var didWarnAboutMessageChannel = false;
- var enqueueTaskImpl = null;
- function enqueueTask(task) {
- if (enqueueTaskImpl === null) {
- try {
- var requireString = ("require" + Math.random()).slice(0, 7);
- var nodeRequire = module && module[requireString];
- enqueueTaskImpl = nodeRequire.call(module, "timers").setImmediate;
- } catch (_err) {
- enqueueTaskImpl = function(callback) {
- {
- if (didWarnAboutMessageChannel === false) {
- didWarnAboutMessageChannel = true;
- if (typeof MessageChannel === "undefined") {
- error2("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.");
- }
- }
- }
- var channel = new MessageChannel();
- channel.port1.onmessage = callback;
- channel.port2.postMessage(void 0);
- };
- }
- }
- return enqueueTaskImpl(task);
- }
- var actScopeDepth = 0;
- var didWarnNoAwaitAct = false;
- function act(callback) {
- {
- var prevActScopeDepth = actScopeDepth;
- actScopeDepth++;
- if (ReactCurrentActQueue.current === null) {
- ReactCurrentActQueue.current = [];
- }
- var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;
- var result;
- try {
- ReactCurrentActQueue.isBatchingLegacy = true;
- result = callback();
- if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {
- var queue = ReactCurrentActQueue.current;
- if (queue !== null) {
- ReactCurrentActQueue.didScheduleLegacyUpdate = false;
- flushActQueue(queue);
- }
- }
- } catch (error22) {
- popActScope(prevActScopeDepth);
- throw error22;
- } finally {
- ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;
- }
- if (result !== null && typeof result === "object" && typeof result.then === "function") {
- var thenableResult = result;
- var wasAwaited = false;
- var thenable = {
- then: function(resolve, reject) {
- wasAwaited = true;
- thenableResult.then(function(returnValue2) {
- popActScope(prevActScopeDepth);
- if (actScopeDepth === 0) {
- recursivelyFlushAsyncActWork(returnValue2, resolve, reject);
- } else {
- resolve(returnValue2);
- }
- }, function(error22) {
- popActScope(prevActScopeDepth);
- reject(error22);
- });
- }
- };
- {
- if (!didWarnNoAwaitAct && typeof Promise !== "undefined") {
- Promise.resolve().then(function() {
- }).then(function() {
- if (!wasAwaited) {
- didWarnNoAwaitAct = true;
- error2("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);");
- }
- });
- }
- }
- return thenable;
- } else {
- var returnValue = result;
- popActScope(prevActScopeDepth);
- if (actScopeDepth === 0) {
- var _queue = ReactCurrentActQueue.current;
- if (_queue !== null) {
- flushActQueue(_queue);
- ReactCurrentActQueue.current = null;
- }
- var _thenable = {
- then: function(resolve, reject) {
- if (ReactCurrentActQueue.current === null) {
- ReactCurrentActQueue.current = [];
- recursivelyFlushAsyncActWork(returnValue, resolve, reject);
- } else {
- resolve(returnValue);
- }
- }
- };
- return _thenable;
- } else {
- var _thenable2 = {
- then: function(resolve, reject) {
- resolve(returnValue);
- }
- };
- return _thenable2;
- }
- }
- }
- }
- function popActScope(prevActScopeDepth) {
- {
- if (prevActScopeDepth !== actScopeDepth - 1) {
- error2("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. ");
- }
- actScopeDepth = prevActScopeDepth;
- }
- }
- function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {
- {
- var queue = ReactCurrentActQueue.current;
- if (queue !== null) {
- try {
- flushActQueue(queue);
- enqueueTask(function() {
- if (queue.length === 0) {
- ReactCurrentActQueue.current = null;
- resolve(returnValue);
- } else {
- recursivelyFlushAsyncActWork(returnValue, resolve, reject);
- }
- });
- } catch (error22) {
- reject(error22);
- }
- } else {
- resolve(returnValue);
- }
- }
- }
- var isFlushing = false;
- function flushActQueue(queue) {
- {
- if (!isFlushing) {
- isFlushing = true;
- var i22 = 0;
- try {
- for (; i22 < queue.length; i22++) {
- var callback = queue[i22];
- do {
- callback = callback(true);
- } while (callback !== null);
- }
- queue.length = 0;
- } catch (error22) {
- queue = queue.slice(i22 + 1);
- throw error22;
- } finally {
- isFlushing = false;
- }
- }
- }
- }
- var createElement$1 = createElementWithValidation;
- var cloneElement$1 = cloneElementWithValidation;
- var createFactory = createFactoryWithValidation;
- var Children = {
- map: mapChildren,
- forEach: forEachChildren,
- count: countChildren,
- toArray,
- only: onlyChild
- };
- exports.Children = Children;
- exports.Component = Component;
- exports.Fragment = REACT_FRAGMENT_TYPE;
- exports.Profiler = REACT_PROFILER_TYPE;
- exports.PureComponent = PureComponent;
- exports.StrictMode = REACT_STRICT_MODE_TYPE;
- exports.Suspense = REACT_SUSPENSE_TYPE;
- exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;
- exports.cloneElement = cloneElement$1;
- exports.createContext = createContext4;
- exports.createElement = createElement$1;
- exports.createFactory = createFactory;
- exports.createRef = createRef;
- exports.forwardRef = forwardRef;
- exports.isValidElement = isValidElement;
- exports.lazy = lazy;
- exports.memo = memo;
- exports.startTransition = startTransition;
- exports.unstable_act = act;
- exports.useCallback = useCallback;
- exports.useContext = useContext4;
- exports.useDebugValue = useDebugValue;
- exports.useDeferredValue = useDeferredValue;
- exports.useEffect = useEffect11;
- exports.useId = useId;
- exports.useImperativeHandle = useImperativeHandle;
- exports.useInsertionEffect = useInsertionEffect;
- exports.useLayoutEffect = useLayoutEffect;
- exports.useMemo = useMemo2;
- exports.useReducer = useReducer;
- exports.useRef = useRef2;
- exports.useState = useState14;
- exports.useSyncExternalStore = useSyncExternalStore2;
- exports.useTransition = useTransition;
- exports.version = ReactVersion;
- if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
- }
- })();
- }
- }
-});
-var require_react = __commonJS2({
- "../../node_modules/.pnpm/react@18.2.0/node_modules/react/index.js"(exports, module) {
- "use strict";
- if (false) {
- module.exports = null;
- } else {
- module.exports = require_react_development();
- }
- }
-});
-var require_AcademicCapIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AcademicCapIcon.js"(exports, module) {
- var React = require_react();
- function AcademicCapIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.26 10.147a60.436 60.436 0 00-.491 6.347A48.627 48.627 0 0112 20.904a48.627 48.627 0 018.232-4.41 60.46 60.46 0 00-.491-6.347m-15.482 0a50.57 50.57 0 00-2.658-.813A59.905 59.905 0 0112 3.493a59.902 59.902 0 0110.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.697 50.697 0 0112 13.489a50.702 50.702 0 017.74-3.342M6.75 15a.75.75 0 100-1.5.75.75 0 000 1.5zm0 0v-3.675A55.378 55.378 0 0112 8.443m-7.007 11.55A5.981 5.981 0 006.75 15.75v-1.5"
- }));
- }
- var ForwardRef = React.forwardRef(AcademicCapIcon);
- module.exports = ForwardRef;
- }
-});
-var require_AdjustmentsHorizontalIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AdjustmentsHorizontalIcon.js"(exports, module) {
- var React = require_react();
- function AdjustmentsHorizontalIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.5 6h9.75M10.5 6a1.5 1.5 0 11-3 0m3 0a1.5 1.5 0 10-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-9.75 0h9.75"
- }));
- }
- var ForwardRef = React.forwardRef(AdjustmentsHorizontalIcon);
- module.exports = ForwardRef;
- }
-});
-var require_AdjustmentsVerticalIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AdjustmentsVerticalIcon.js"(exports, module) {
- var React = require_react();
- function AdjustmentsVerticalIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6 13.5V3.75m0 9.75a1.5 1.5 0 010 3m0-3a1.5 1.5 0 000 3m0 3.75V16.5m12-3V3.75m0 9.75a1.5 1.5 0 010 3m0-3a1.5 1.5 0 000 3m0 3.75V16.5m-6-9V3.75m0 3.75a1.5 1.5 0 010 3m0-3a1.5 1.5 0 000 3m0 9.75V10.5"
- }));
- }
- var ForwardRef = React.forwardRef(AdjustmentsVerticalIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArchiveBoxArrowDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArchiveBoxArrowDownIcon.js"(exports, module) {
- var React = require_react();
- function ArchiveBoxArrowDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0l-3-3m3 3l3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"
- }));
- }
- var ForwardRef = React.forwardRef(ArchiveBoxArrowDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArchiveBoxXMarkIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArchiveBoxXMarkIcon.js"(exports, module) {
- var React = require_react();
- function ArchiveBoxXMarkIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m6 4.125l2.25 2.25m0 0l2.25 2.25M12 13.875l2.25-2.25M12 13.875l-2.25 2.25M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"
- }));
- }
- var ForwardRef = React.forwardRef(ArchiveBoxXMarkIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArchiveBoxIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArchiveBoxIcon.js"(exports, module) {
- var React = require_react();
- function ArchiveBoxIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"
- }));
- }
- var ForwardRef = React.forwardRef(ArchiveBoxIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowDownCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownCircleIcon.js"(exports, module) {
- var React = require_react();
- function ArrowDownCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 12.75l3 3m0 0l3-3m-3 3v-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowDownCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowDownLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownLeftIcon.js"(exports, module) {
- var React = require_react();
- function ArrowDownLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 4.5l-15 15m0 0h11.25m-11.25 0V8.25"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowDownLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowDownOnSquareStackIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownOnSquareStackIcon.js"(exports, module) {
- var React = require_react();
- function ArrowDownOnSquareStackIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.5 7.5h-.75A2.25 2.25 0 004.5 9.75v7.5a2.25 2.25 0 002.25 2.25h7.5a2.25 2.25 0 002.25-2.25v-7.5a2.25 2.25 0 00-2.25-2.25h-.75m-6 3.75l3 3m0 0l3-3m-3 3V1.5m6 9h.75a2.25 2.25 0 012.25 2.25v7.5a2.25 2.25 0 01-2.25 2.25h-7.5a2.25 2.25 0 01-2.25-2.25v-.75"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowDownOnSquareStackIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowDownOnSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownOnSquareIcon.js"(exports, module) {
- var React = require_react();
- function ArrowDownOnSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 8.25H7.5a2.25 2.25 0 00-2.25 2.25v9a2.25 2.25 0 002.25 2.25h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25H15M9 12l3 3m0 0l3-3m-3 3V2.25"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowDownOnSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowDownRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownRightIcon.js"(exports, module) {
- var React = require_react();
- function ArrowDownRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 4.5l15 15m0 0V8.25m0 11.25H8.25"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowDownRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowDownTrayIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownTrayIcon.js"(exports, module) {
- var React = require_react();
- function ArrowDownTrayIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowDownTrayIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownIcon.js"(exports, module) {
- var React = require_react();
- function ArrowDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 13.5L12 21m0 0l-7.5-7.5M12 21V3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowLeftCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLeftCircleIcon.js"(exports, module) {
- var React = require_react();
- function ArrowLeftCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M11.25 9l-3 3m0 0l3 3m-3-3h7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowLeftCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowLeftOnRectangleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLeftOnRectangleIcon.js"(exports, module) {
- var React = require_react();
- function ArrowLeftOnRectangleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15M12 9l-3 3m0 0l3 3m-3-3h12.75"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowLeftOnRectangleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLeftIcon.js"(exports, module) {
- var React = require_react();
- function ArrowLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowLongDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongDownIcon.js"(exports, module) {
- var React = require_react();
- function ArrowLongDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowLongDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowLongLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongLeftIcon.js"(exports, module) {
- var React = require_react();
- function ArrowLongLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.75 15.75L3 12m0 0l3.75-3.75M3 12h18"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowLongLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowLongRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongRightIcon.js"(exports, module) {
- var React = require_react();
- function ArrowLongRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M17.25 8.25L21 12m0 0l-3.75 3.75M21 12H3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowLongRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowLongUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongUpIcon.js"(exports, module) {
- var React = require_react();
- function ArrowLongUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowLongUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowPathRoundedSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowPathRoundedSquareIcon.js"(exports, module) {
- var React = require_react();
- function ArrowPathRoundedSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 00-3.7-3.7 48.678 48.678 0 00-7.324 0 4.006 4.006 0 00-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3l-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 003.7 3.7 48.656 48.656 0 007.324 0 4.006 4.006 0 003.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3l-3 3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowPathRoundedSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowPathIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowPathIcon.js"(exports, module) {
- var React = require_react();
- function ArrowPathIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowPathIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowRightCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowRightCircleIcon.js"(exports, module) {
- var React = require_react();
- function ArrowRightCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12.75 15l3-3m0 0l-3-3m3 3h-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowRightCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowRightOnRectangleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowRightOnRectangleIcon.js"(exports, module) {
- var React = require_react();
- function ArrowRightOnRectangleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowRightOnRectangleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowRightIcon.js"(exports, module) {
- var React = require_react();
- function ArrowRightIcon2(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowRightIcon2);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowSmallDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallDownIcon.js"(exports, module) {
- var React = require_react();
- function ArrowSmallDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 4.5v15m0 0l6.75-6.75M12 19.5l-6.75-6.75"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowSmallDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowSmallLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallLeftIcon.js"(exports, module) {
- var React = require_react();
- function ArrowSmallLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 12h-15m0 0l6.75 6.75M4.5 12l6.75-6.75"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowSmallLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowSmallRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallRightIcon.js"(exports, module) {
- var React = require_react();
- function ArrowSmallRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 12h15m0 0l-6.75-6.75M19.5 12l-6.75 6.75"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowSmallRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowSmallUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallUpIcon.js"(exports, module) {
- var React = require_react();
- function ArrowSmallUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 19.5v-15m0 0l-6.75 6.75M12 4.5l6.75 6.75"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowSmallUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowTopRightOnSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowTopRightOnSquareIcon.js"(exports, module) {
- var React = require_react();
- function ArrowTopRightOnSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowTopRightOnSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowTrendingDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowTrendingDownIcon.js"(exports, module) {
- var React = require_react();
- function ArrowTrendingDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 6L9 12.75l4.286-4.286a11.948 11.948 0 014.306 6.43l.776 2.898m0 0l3.182-5.511m-3.182 5.51l-5.511-3.181"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowTrendingDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowTrendingUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowTrendingUpIcon.js"(exports, module) {
- var React = require_react();
- function ArrowTrendingUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 18L9 11.25l4.306 4.307a11.95 11.95 0 015.814-5.519l2.74-1.22m0 0l-5.94-2.28m5.94 2.28l-2.28 5.941"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowTrendingUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUpCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpCircleIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUpCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 11.25l-3-3m0 0l-3 3m3-3v7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUpCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUpLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpLeftIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUpLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 19.5l-15-15m0 0v11.25m0-11.25h11.25"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUpLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUpOnSquareStackIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpOnSquareStackIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUpOnSquareStackIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.5 7.5h-.75A2.25 2.25 0 004.5 9.75v7.5a2.25 2.25 0 002.25 2.25h7.5a2.25 2.25 0 002.25-2.25v-7.5a2.25 2.25 0 00-2.25-2.25h-.75m0-3l-3-3m0 0l-3 3m3-3v11.25m6-2.25h.75a2.25 2.25 0 012.25 2.25v7.5a2.25 2.25 0 01-2.25 2.25h-7.5a2.25 2.25 0 01-2.25-2.25v-.75"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUpOnSquareStackIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUpOnSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpOnSquareIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUpOnSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 8.25H7.5a2.25 2.25 0 00-2.25 2.25v9a2.25 2.25 0 002.25 2.25h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25H15m0-3l-3-3m0 0l-3 3m3-3V15"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUpOnSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUpRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpRightIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUpRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUpRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUpTrayIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpTrayIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUpTrayIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUpTrayIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 10.5L12 3m0 0l7.5 7.5M12 3v18"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUturnDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnDownIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUturnDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 15l-6 6m0 0l-6-6m6 6V9a6 6 0 0112 0v3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUturnDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUturnLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnLeftIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUturnLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 15L3 9m0 0l6-6M3 9h12a6 6 0 010 12h-3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUturnLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUturnRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnRightIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUturnRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 15l6-6m0 0l-6-6m6 6H9a6 6 0 000 12h3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUturnRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowUturnUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnUpIcon.js"(exports, module) {
- var React = require_react();
- function ArrowUturnUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 9l6-6m0 0l6 6m-6-6v12a6 6 0 01-12 0v-3"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowUturnUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowsPointingInIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsPointingInIcon.js"(exports, module) {
- var React = require_react();
- function ArrowsPointingInIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowsPointingInIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowsPointingOutIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsPointingOutIcon.js"(exports, module) {
- var React = require_react();
- function ArrowsPointingOutIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowsPointingOutIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowsRightLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsRightLeftIcon.js"(exports, module) {
- var React = require_react();
- function ArrowsRightLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.5 21L3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowsRightLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ArrowsUpDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsUpDownIcon.js"(exports, module) {
- var React = require_react();
- function ArrowsUpDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 7.5L7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ArrowsUpDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_AtSymbolIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AtSymbolIcon.js"(exports, module) {
- var React = require_react();
- function AtSymbolIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- d: "M16.5 12a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 10-2.636 6.364M16.5 12V8.25"
- }));
- }
- var ForwardRef = React.forwardRef(AtSymbolIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BackspaceIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BackspaceIcon.js"(exports, module) {
- var React = require_react();
- function BackspaceIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 9.75L14.25 12m0 0l2.25 2.25M14.25 12l2.25-2.25M14.25 12L12 14.25m-2.58 4.92l-6.375-6.375a1.125 1.125 0 010-1.59L9.42 4.83c.211-.211.498-.33.796-.33H19.5a2.25 2.25 0 012.25 2.25v10.5a2.25 2.25 0 01-2.25 2.25h-9.284c-.298 0-.585-.119-.796-.33z"
- }));
- }
- var ForwardRef = React.forwardRef(BackspaceIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BackwardIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BackwardIcon.js"(exports, module) {
- var React = require_react();
- function BackwardIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 16.811c0 .864-.933 1.405-1.683.977l-7.108-4.062a1.125 1.125 0 010-1.953l7.108-4.062A1.125 1.125 0 0121 8.688v8.123zM11.25 16.811c0 .864-.933 1.405-1.683.977l-7.108-4.062a1.125 1.125 0 010-1.953L9.567 7.71a1.125 1.125 0 011.683.977v8.123z"
- }));
- }
- var ForwardRef = React.forwardRef(BackwardIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BanknotesIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BanknotesIcon.js"(exports, module) {
- var React = require_react();
- function BanknotesIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 18.75a60.07 60.07 0 0115.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 013 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 00-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 01-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 003 15h-.75M15 10.5a3 3 0 11-6 0 3 3 0 016 0zm3 0h.008v.008H18V10.5zm-12 0h.008v.008H6V10.5z"
- }));
- }
- var ForwardRef = React.forwardRef(BanknotesIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Bars2Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars2Icon.js"(exports, module) {
- var React = require_react();
- function Bars2Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 9h16.5m-16.5 6.75h16.5"
- }));
- }
- var ForwardRef = React.forwardRef(Bars2Icon);
- module.exports = ForwardRef;
- }
-});
-var require_Bars3BottomLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3BottomLeftIcon.js"(exports, module) {
- var React = require_react();
- function Bars3BottomLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25H12"
- }));
- }
- var ForwardRef = React.forwardRef(Bars3BottomLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Bars3BottomRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3BottomRightIcon.js"(exports, module) {
- var React = require_react();
- function Bars3BottomRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 6.75h16.5M3.75 12h16.5M12 17.25h8.25"
- }));
- }
- var ForwardRef = React.forwardRef(Bars3BottomRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Bars3CenterLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3CenterLeftIcon.js"(exports, module) {
- var React = require_react();
- function Bars3CenterLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 6.75h16.5M3.75 12H12m-8.25 5.25h16.5"
- }));
- }
- var ForwardRef = React.forwardRef(Bars3CenterLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Bars3Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3Icon.js"(exports, module) {
- var React = require_react();
- function Bars3Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
- }));
- }
- var ForwardRef = React.forwardRef(Bars3Icon);
- module.exports = ForwardRef;
- }
-});
-var require_Bars4Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars4Icon.js"(exports, module) {
- var React = require_react();
- function Bars4Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 5.25h16.5m-16.5 4.5h16.5m-16.5 4.5h16.5m-16.5 4.5h16.5"
- }));
- }
- var ForwardRef = React.forwardRef(Bars4Icon);
- module.exports = ForwardRef;
- }
-});
-var require_BarsArrowDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BarsArrowDownIcon.js"(exports, module) {
- var React = require_react();
- function BarsArrowDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0l-3.75-3.75M17.25 21L21 17.25"
- }));
- }
- var ForwardRef = React.forwardRef(BarsArrowDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BarsArrowUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BarsArrowUpIcon.js"(exports, module) {
- var React = require_react();
- function BarsArrowUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"
- }));
- }
- var ForwardRef = React.forwardRef(BarsArrowUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Battery0Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Battery0Icon.js"(exports, module) {
- var React = require_react();
- function Battery0Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 10.5h.375c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125H21M3.75 18h15A2.25 2.25 0 0021 15.75v-6a2.25 2.25 0 00-2.25-2.25h-15A2.25 2.25 0 001.5 9.75v6A2.25 2.25 0 003.75 18z"
- }));
- }
- var ForwardRef = React.forwardRef(Battery0Icon);
- module.exports = ForwardRef;
- }
-});
-var require_Battery100Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Battery100Icon.js"(exports, module) {
- var React = require_react();
- function Battery100Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 10.5h.375c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125H21M4.5 10.5H18V15H4.5v-4.5zM3.75 18h15A2.25 2.25 0 0021 15.75v-6a2.25 2.25 0 00-2.25-2.25h-15A2.25 2.25 0 001.5 9.75v6A2.25 2.25 0 003.75 18z"
- }));
- }
- var ForwardRef = React.forwardRef(Battery100Icon);
- module.exports = ForwardRef;
- }
-});
-var require_Battery50Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Battery50Icon.js"(exports, module) {
- var React = require_react();
- function Battery50Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 10.5h.375c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125H21M4.5 10.5h6.75V15H4.5v-4.5zM3.75 18h15A2.25 2.25 0 0021 15.75v-6a2.25 2.25 0 00-2.25-2.25h-15A2.25 2.25 0 001.5 9.75v6A2.25 2.25 0 003.75 18z"
- }));
- }
- var ForwardRef = React.forwardRef(Battery50Icon);
- module.exports = ForwardRef;
- }
-});
-var require_BeakerIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BeakerIcon.js"(exports, module) {
- var React = require_react();
- function BeakerIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.75 3.104v5.714a2.25 2.25 0 01-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 014.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0112 15a9.065 9.065 0 00-6.23-.693L5 14.5m14.8.8l1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0112 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"
- }));
- }
- var ForwardRef = React.forwardRef(BeakerIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BellAlertIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellAlertIcon.js"(exports, module) {
- var React = require_react();
- function BellAlertIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0M3.124 7.5A8.969 8.969 0 015.292 3m13.416 0a8.969 8.969 0 012.168 4.5"
- }));
- }
- var ForwardRef = React.forwardRef(BellAlertIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BellSlashIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellSlashIcon.js"(exports, module) {
- var React = require_react();
- function BellSlashIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.143 17.082a24.248 24.248 0 003.844.148m-3.844-.148a23.856 23.856 0 01-5.455-1.31 8.964 8.964 0 002.3-5.542m3.155 6.852a3 3 0 005.667 1.97m1.965-2.277L21 21m-4.225-4.225a23.81 23.81 0 003.536-1.003A8.967 8.967 0 0118 9.75V9A6 6 0 006.53 6.53m10.245 10.245L6.53 6.53M3 3l3.53 3.53"
- }));
- }
- var ForwardRef = React.forwardRef(BellSlashIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BellSnoozeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellSnoozeIcon.js"(exports, module) {
- var React = require_react();
- function BellSnoozeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0M10.5 8.25h3l-3 4.5h3"
- }));
- }
- var ForwardRef = React.forwardRef(BellSnoozeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BellIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellIcon.js"(exports, module) {
- var React = require_react();
- function BellIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0"
- }));
- }
- var ForwardRef = React.forwardRef(BellIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BoltSlashIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BoltSlashIcon.js"(exports, module) {
- var React = require_react();
- function BoltSlashIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M11.412 15.655L9.75 21.75l3.745-4.012M9.257 13.5H3.75l2.659-2.849m2.048-2.194L14.25 2.25 12 10.5h8.25l-4.707 5.043M8.457 8.457L3 3m5.457 5.457l7.086 7.086m0 0L21 21"
- }));
- }
- var ForwardRef = React.forwardRef(BoltSlashIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BoltIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BoltIcon.js"(exports, module) {
- var React = require_react();
- function BoltIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z"
- }));
- }
- var ForwardRef = React.forwardRef(BoltIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BookOpenIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookOpenIcon.js"(exports, module) {
- var React = require_react();
- function BookOpenIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 6.042A8.967 8.967 0 006 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 016 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 016-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0018 18a8.967 8.967 0 00-6 2.292m0-14.25v14.25"
- }));
- }
- var ForwardRef = React.forwardRef(BookOpenIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BookmarkSlashIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookmarkSlashIcon.js"(exports, module) {
- var React = require_react();
- function BookmarkSlashIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 3l1.664 1.664M21 21l-1.5-1.5m-5.485-1.242L12 17.25 4.5 21V8.742m.164-4.078a2.15 2.15 0 011.743-1.342 48.507 48.507 0 0111.186 0c1.1.128 1.907 1.077 1.907 2.185V19.5M4.664 4.664L19.5 19.5"
- }));
- }
- var ForwardRef = React.forwardRef(BookmarkSlashIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BookmarkSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookmarkSquareIcon.js"(exports, module) {
- var React = require_react();
- function BookmarkSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.5 3.75V16.5L12 14.25 7.5 16.5V3.75m9 0H18A2.25 2.25 0 0120.25 6v12A2.25 2.25 0 0118 20.25H6A2.25 2.25 0 013.75 18V6A2.25 2.25 0 016 3.75h1.5m9 0h-9"
- }));
- }
- var ForwardRef = React.forwardRef(BookmarkSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BookmarkIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookmarkIcon.js"(exports, module) {
- var React = require_react();
- function BookmarkIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M17.593 3.322c1.1.128 1.907 1.077 1.907 2.185V21L12 17.25 4.5 21V5.507c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0111.186 0z"
- }));
- }
- var ForwardRef = React.forwardRef(BookmarkIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BriefcaseIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BriefcaseIcon.js"(exports, module) {
- var React = require_react();
- function BriefcaseIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.25 14.15v4.25c0 1.094-.787 2.036-1.872 2.18-2.087.277-4.216.42-6.378.42s-4.291-.143-6.378-.42c-1.085-.144-1.872-1.086-1.872-2.18v-4.25m16.5 0a2.18 2.18 0 00.75-1.661V8.706c0-1.081-.768-2.015-1.837-2.175a48.114 48.114 0 00-3.413-.387m4.5 8.006c-.194.165-.42.295-.673.38A23.978 23.978 0 0112 15.75c-2.648 0-5.195-.429-7.577-1.22a2.016 2.016 0 01-.673-.38m0 0A2.18 2.18 0 013 12.489V8.706c0-1.081.768-2.015 1.837-2.175a48.111 48.111 0 013.413-.387m7.5 0V5.25A2.25 2.25 0 0013.5 3h-3a2.25 2.25 0 00-2.25 2.25v.894m7.5 0a48.667 48.667 0 00-7.5 0M12 12.75h.008v.008H12v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(BriefcaseIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BugAntIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BugAntIcon.js"(exports, module) {
- var React = require_react();
- function BugAntIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0112 12.75zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 01-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 002.248-2.354M12 12.75a2.25 2.25 0 01-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 00-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 01.4-2.253M12 8.25a2.25 2.25 0 00-2.248 2.146M12 8.25a2.25 2.25 0 012.248 2.146M8.683 5a6.032 6.032 0 01-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0115.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 00-.575-1.752M4.921 6a24.048 24.048 0 00-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 01-5.223 1.082"
- }));
- }
- var ForwardRef = React.forwardRef(BugAntIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BuildingLibraryIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingLibraryIcon.js"(exports, module) {
- var React = require_react();
- function BuildingLibraryIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 21v-8.25M15.75 21v-8.25M8.25 21v-8.25M3 9l9-6 9 6m-1.5 12V10.332A48.36 48.36 0 0012 9.75c-2.551 0-5.056.2-7.5.582V21M3 21h18M12 6.75h.008v.008H12V6.75z"
- }));
- }
- var ForwardRef = React.forwardRef(BuildingLibraryIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BuildingOffice2Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingOffice2Icon.js"(exports, module) {
- var React = require_react();
- function BuildingOffice2Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(BuildingOffice2Icon);
- module.exports = ForwardRef;
- }
-});
-var require_BuildingOfficeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingOfficeIcon.js"(exports, module) {
- var React = require_react();
- function BuildingOfficeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"
- }));
- }
- var ForwardRef = React.forwardRef(BuildingOfficeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_BuildingStorefrontIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingStorefrontIcon.js"(exports, module) {
- var React = require_react();
- function BuildingStorefrontIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M13.5 21v-7.5a.75.75 0 01.75-.75h3a.75.75 0 01.75.75V21m-4.5 0H2.36m11.14 0H18m0 0h3.64m-1.39 0V9.349m-16.5 11.65V9.35m0 0a3.001 3.001 0 003.75-.615A2.993 2.993 0 009.75 9.75c.896 0 1.7-.393 2.25-1.016a2.993 2.993 0 002.25 1.016c.896 0 1.7-.393 2.25-1.016a3.001 3.001 0 003.75.614m-16.5 0a3.004 3.004 0 01-.621-4.72L4.318 3.44A1.5 1.5 0 015.378 3h13.243a1.5 1.5 0 011.06.44l1.19 1.189a3 3 0 01-.621 4.72m-13.5 8.65h3.75a.75.75 0 00.75-.75V13.5a.75.75 0 00-.75-.75H6.75a.75.75 0 00-.75.75v3.75c0 .415.336.75.75.75z"
- }));
- }
- var ForwardRef = React.forwardRef(BuildingStorefrontIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CakeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CakeIcon.js"(exports, module) {
- var React = require_react();
- function CakeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 8.25v-1.5m0 1.5c-1.355 0-2.697.056-4.024.166C6.845 8.51 6 9.473 6 10.608v2.513m6-4.87c1.355 0 2.697.055 4.024.165C17.155 8.51 18 9.473 18 10.608v2.513m-3-4.87v-1.5m-6 1.5v-1.5m12 9.75l-1.5.75a3.354 3.354 0 01-3 0 3.354 3.354 0 00-3 0 3.354 3.354 0 01-3 0 3.354 3.354 0 00-3 0 3.354 3.354 0 01-3 0L3 16.5m15-3.38a48.474 48.474 0 00-6-.37c-2.032 0-4.034.125-6 .37m12 0c.39.049.777.102 1.163.16 1.07.16 1.837 1.094 1.837 2.175v5.17c0 .62-.504 1.124-1.125 1.124H4.125A1.125 1.125 0 013 20.625v-5.17c0-1.08.768-2.014 1.837-2.174A47.78 47.78 0 016 13.12M12.265 3.11a.375.375 0 11-.53 0L12 2.845l.265.265zm-3 0a.375.375 0 11-.53 0L9 2.845l.265.265zm6 0a.375.375 0 11-.53 0L15 2.845l.265.265z"
- }));
- }
- var ForwardRef = React.forwardRef(CakeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CalculatorIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CalculatorIcon.js"(exports, module) {
- var React = require_react();
- function CalculatorIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008zm0 2.25h.008v.008H8.25V13.5zm0 2.25h.008v.008H8.25v-.008zm0 2.25h.008v.008H8.25V18zm2.498-6.75h.007v.008h-.007v-.008zm0 2.25h.007v.008h-.007V13.5zm0 2.25h.007v.008h-.007v-.008zm0 2.25h.007v.008h-.007V18zm2.504-6.75h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V13.5zm0 2.25h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V18zm2.498-6.75h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V13.5zM8.25 6h7.5v2.25h-7.5V6zM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 002.25 2.25h10.5a2.25 2.25 0 002.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0012 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(CalculatorIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CalendarDaysIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CalendarDaysIcon.js"(exports, module) {
- var React = require_react();
- function CalendarDaysIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5m-9-6h.008v.008H12v-.008zM12 15h.008v.008H12V15zm0 2.25h.008v.008H12v-.008zM9.75 15h.008v.008H9.75V15zm0 2.25h.008v.008H9.75v-.008zM7.5 15h.008v.008H7.5V15zm0 2.25h.008v.008H7.5v-.008zm6.75-4.5h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V15zm0 2.25h.008v.008h-.008v-.008zm2.25-4.5h.008v.008H16.5v-.008zm0 2.25h.008v.008H16.5V15z"
- }));
- }
- var ForwardRef = React.forwardRef(CalendarDaysIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CalendarIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CalendarIcon.js"(exports, module) {
- var React = require_react();
- function CalendarIcon2(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5"
- }));
- }
- var ForwardRef = React.forwardRef(CalendarIcon2);
- module.exports = ForwardRef;
- }
-});
-var require_CameraIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CameraIcon.js"(exports, module) {
- var React = require_react();
- function CameraIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.827 6.175A2.31 2.31 0 015.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 00-1.134-.175 2.31 2.31 0 01-1.64-1.055l-.822-1.316a2.192 2.192 0 00-1.736-1.039 48.774 48.774 0 00-5.232 0 2.192 2.192 0 00-1.736 1.039l-.821 1.316z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.5 12.75a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zM18.75 10.5h.008v.008h-.008V10.5z"
- }));
- }
- var ForwardRef = React.forwardRef(CameraIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChartBarSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChartBarSquareIcon.js"(exports, module) {
- var React = require_react();
- function ChartBarSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z"
- }));
- }
- var ForwardRef = React.forwardRef(ChartBarSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChartBarIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChartBarIcon.js"(exports, module) {
- var React = require_react();
- function ChartBarIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z"
- }));
- }
- var ForwardRef = React.forwardRef(ChartBarIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChartPieIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChartPieIcon.js"(exports, module) {
- var React = require_react();
- function ChartPieIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.5 6a7.5 7.5 0 107.5 7.5h-7.5V6z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M13.5 10.5H21A7.5 7.5 0 0013.5 3v7.5z"
- }));
- }
- var ForwardRef = React.forwardRef(ChartPieIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChatBubbleBottomCenterTextIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleBottomCenterTextIcon.js"(exports, module) {
- var React = require_react();
- function ChatBubbleBottomCenterTextIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.5 8.25h9m-9 3H12m-9.75 1.51c0 1.6 1.123 2.994 2.707 3.227 1.129.166 2.27.293 3.423.379.35.026.67.21.865.501L12 21l2.755-4.133a1.14 1.14 0 01.865-.501 48.172 48.172 0 003.423-.379c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z"
- }));
- }
- var ForwardRef = React.forwardRef(ChatBubbleBottomCenterTextIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChatBubbleBottomCenterIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleBottomCenterIcon.js"(exports, module) {
- var React = require_react();
- function ChatBubbleBottomCenterIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.068.157 2.148.279 3.238.364.466.037.893.281 1.153.671L12 21l2.652-3.978c.26-.39.687-.634 1.153-.67 1.09-.086 2.17-.208 3.238-.365 1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z"
- }));
- }
- var ForwardRef = React.forwardRef(ChatBubbleBottomCenterIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChatBubbleLeftEllipsisIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleLeftEllipsisIcon.js"(exports, module) {
- var React = require_react();
- function ChatBubbleLeftEllipsisIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.625 9.75a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H8.25m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H12m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0h-.375m-13.5 3.01c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 01.778-.332 48.294 48.294 0 005.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z"
- }));
- }
- var ForwardRef = React.forwardRef(ChatBubbleLeftEllipsisIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChatBubbleLeftRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleLeftRightIcon.js"(exports, module) {
- var React = require_react();
- function ChatBubbleLeftRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 01-.825-.242m9.345-8.334a2.126 2.126 0 00-.476-.095 48.64 48.64 0 00-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0011.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155"
- }));
- }
- var ForwardRef = React.forwardRef(ChatBubbleLeftRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChatBubbleLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleLeftIcon.js"(exports, module) {
- var React = require_react();
- function ChatBubbleLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 011.037-.443 48.282 48.282 0 005.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z"
- }));
- }
- var ForwardRef = React.forwardRef(ChatBubbleLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChatBubbleOvalLeftEllipsisIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleOvalLeftEllipsisIcon.js"(exports, module) {
- var React = require_react();
- function ChatBubbleOvalLeftEllipsisIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.625 12a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H8.25m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H12m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0h-.375M21 12c0 4.556-4.03 8.25-9 8.25a9.764 9.764 0 01-2.555-.337A5.972 5.972 0 015.41 20.97a5.969 5.969 0 01-.474-.065 4.48 4.48 0 00.978-2.025c.09-.457-.133-.901-.467-1.226C3.93 16.178 3 14.189 3 12c0-4.556 4.03-8.25 9-8.25s9 3.694 9 8.25z"
- }));
- }
- var ForwardRef = React.forwardRef(ChatBubbleOvalLeftEllipsisIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChatBubbleOvalLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleOvalLeftIcon.js"(exports, module) {
- var React = require_react();
- function ChatBubbleOvalLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 20.25c4.97 0 9-3.694 9-8.25s-4.03-8.25-9-8.25S3 7.444 3 12c0 2.104.859 4.023 2.273 5.48.432.447.74 1.04.586 1.641a4.483 4.483 0 01-.923 1.785A5.969 5.969 0 006 21c1.282 0 2.47-.402 3.445-1.087.81.22 1.668.337 2.555.337z"
- }));
- }
- var ForwardRef = React.forwardRef(ChatBubbleOvalLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CheckBadgeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CheckBadgeIcon.js"(exports, module) {
- var React = require_react();
- function CheckBadgeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 12.75L11.25 15 15 9.75M21 12c0 1.268-.63 2.39-1.593 3.068a3.745 3.745 0 01-1.043 3.296 3.745 3.745 0 01-3.296 1.043A3.745 3.745 0 0112 21c-1.268 0-2.39-.63-3.068-1.593a3.746 3.746 0 01-3.296-1.043 3.745 3.745 0 01-1.043-3.296A3.745 3.745 0 013 12c0-1.268.63-2.39 1.593-3.068a3.745 3.745 0 011.043-3.296 3.746 3.746 0 013.296-1.043A3.746 3.746 0 0112 3c1.268 0 2.39.63 3.068 1.593a3.746 3.746 0 013.296 1.043 3.746 3.746 0 011.043 3.296A3.745 3.745 0 0121 12z"
- }));
- }
- var ForwardRef = React.forwardRef(CheckBadgeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CheckCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CheckCircleIcon.js"(exports, module) {
- var React = require_react();
- function CheckCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(CheckCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CheckIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CheckIcon.js"(exports, module) {
- var React = require_react();
- function CheckIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 12.75l6 6 9-13.5"
- }));
- }
- var ForwardRef = React.forwardRef(CheckIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronDoubleDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleDownIcon.js"(exports, module) {
- var React = require_react();
- function ChevronDoubleDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 5.25l-7.5 7.5-7.5-7.5m15 6l-7.5 7.5-7.5-7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronDoubleDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronDoubleLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleLeftIcon.js"(exports, module) {
- var React = require_react();
- function ChevronDoubleLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M18.75 19.5l-7.5-7.5 7.5-7.5m-6 15L5.25 12l7.5-7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronDoubleLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronDoubleRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleRightIcon.js"(exports, module) {
- var React = require_react();
- function ChevronDoubleRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M11.25 4.5l7.5 7.5-7.5 7.5m-6-15l7.5 7.5-7.5 7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronDoubleRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronDoubleUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleUpIcon.js"(exports, module) {
- var React = require_react();
- function ChevronDoubleUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 12.75l7.5-7.5 7.5 7.5m-15 6l7.5-7.5 7.5 7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronDoubleUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDownIcon.js"(exports, module) {
- var React = require_react();
- function ChevronDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronLeftIcon.js"(exports, module) {
- var React = require_react();
- function ChevronLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 19.5L8.25 12l7.5-7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronRightIcon.js"(exports, module) {
- var React = require_react();
- function ChevronRightIcon2(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 4.5l7.5 7.5-7.5 7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronRightIcon2);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronUpDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronUpDownIcon.js"(exports, module) {
- var React = require_react();
- function ChevronUpDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 15L12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronUpDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ChevronUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronUpIcon.js"(exports, module) {
- var React = require_react();
- function ChevronUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 15.75l7.5-7.5 7.5 7.5"
- }));
- }
- var ForwardRef = React.forwardRef(ChevronUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CircleStackIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CircleStackIcon.js"(exports, module) {
- var React = require_react();
- function CircleStackIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"
- }));
- }
- var ForwardRef = React.forwardRef(CircleStackIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ClipboardDocumentCheckIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardDocumentCheckIcon.js"(exports, module) {
- var React = require_react();
- function ClipboardDocumentCheckIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0118 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3l1.5 1.5 3-3.75"
- }));
- }
- var ForwardRef = React.forwardRef(ClipboardDocumentCheckIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ClipboardDocumentListIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardDocumentListIcon.js"(exports, module) {
- var React = require_react();
- function ClipboardDocumentListIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25zM6.75 12h.008v.008H6.75V12zm0 3h.008v.008H6.75V15zm0 3h.008v.008H6.75V18z"
- }));
- }
- var ForwardRef = React.forwardRef(ClipboardDocumentListIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ClipboardDocumentIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardDocumentIcon.js"(exports, module) {
- var React = require_react();
- function ClipboardDocumentIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5A3.375 3.375 0 006.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0015 2.25h-1.5a2.251 2.251 0 00-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(ClipboardDocumentIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ClipboardIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardIcon.js"(exports, module) {
- var React = require_react();
- function ClipboardIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184"
- }));
- }
- var ForwardRef = React.forwardRef(ClipboardIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ClockIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClockIcon.js"(exports, module) {
- var React = require_react();
- function ClockIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ClockIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CloudArrowDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CloudArrowDownIcon.js"(exports, module) {
- var React = require_react();
- function CloudArrowDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 9.75v6.75m0 0l-3-3m3 3l3-3m-8.25 6a4.5 4.5 0 01-1.41-8.775 5.25 5.25 0 0110.233-2.33 3 3 0 013.758 3.848A3.752 3.752 0 0118 19.5H6.75z"
- }));
- }
- var ForwardRef = React.forwardRef(CloudArrowDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CloudArrowUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CloudArrowUpIcon.js"(exports, module) {
- var React = require_react();
- function CloudArrowUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 16.5V9.75m0 0l3 3m-3-3l-3 3M6.75 19.5a4.5 4.5 0 01-1.41-8.775 5.25 5.25 0 0110.233-2.33 3 3 0 013.758 3.848A3.752 3.752 0 0118 19.5H6.75z"
- }));
- }
- var ForwardRef = React.forwardRef(CloudArrowUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CloudIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CloudIcon.js"(exports, module) {
- var React = require_react();
- function CloudIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 15a4.5 4.5 0 004.5 4.5H18a3.75 3.75 0 001.332-7.257 3 3 0 00-3.758-3.848 5.25 5.25 0 00-10.233 2.33A4.502 4.502 0 002.25 15z"
- }));
- }
- var ForwardRef = React.forwardRef(CloudIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CodeBracketSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CodeBracketSquareIcon.js"(exports, module) {
- var React = require_react();
- function CodeBracketSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.25 9.75L16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z"
- }));
- }
- var ForwardRef = React.forwardRef(CodeBracketSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CodeBracketIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CodeBracketIcon.js"(exports, module) {
- var React = require_react();
- function CodeBracketIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M17.25 6.75L22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3l-4.5 16.5"
- }));
- }
- var ForwardRef = React.forwardRef(CodeBracketIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Cog6ToothIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Cog6ToothIcon.js"(exports, module) {
- var React = require_react();
- function Cog6ToothIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.087.22-.128.332-.183.582-.495.644-.869l.214-1.281z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
- }));
- }
- var ForwardRef = React.forwardRef(Cog6ToothIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Cog8ToothIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Cog8ToothIcon.js"(exports, module) {
- var React = require_react();
- function Cog8ToothIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
- }));
- }
- var ForwardRef = React.forwardRef(Cog8ToothIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CogIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CogIcon.js"(exports, module) {
- var React = require_react();
- function CogIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.5 12a7.5 7.5 0 0015 0m-15 0a7.5 7.5 0 1115 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077l1.41-.513m14.095-5.13l1.41-.513M5.106 17.785l1.15-.964m11.49-9.642l1.149-.964M7.501 19.795l.75-1.3m7.5-12.99l.75-1.3m-6.063 16.658l.26-1.477m2.605-14.772l.26-1.477m0 17.726l-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205L12 12m6.894 5.785l-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864l-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"
- }));
- }
- var ForwardRef = React.forwardRef(CogIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CommandLineIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CommandLineIcon.js"(exports, module) {
- var React = require_react();
- function CommandLineIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.75 7.5l3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0021 18V6a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 6v12a2.25 2.25 0 002.25 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(CommandLineIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ComputerDesktopIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ComputerDesktopIcon.js"(exports, module) {
- var React = require_react();
- function ComputerDesktopIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25m18 0A2.25 2.25 0 0018.75 3H5.25A2.25 2.25 0 003 5.25m18 0V12a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 12V5.25"
- }));
- }
- var ForwardRef = React.forwardRef(ComputerDesktopIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CpuChipIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CpuChipIcon.js"(exports, module) {
- var React = require_react();
- function CpuChipIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 002.25-2.25V6.75a2.25 2.25 0 00-2.25-2.25H6.75A2.25 2.25 0 004.5 6.75v10.5a2.25 2.25 0 002.25 2.25zm.75-12h9v9h-9v-9z"
- }));
- }
- var ForwardRef = React.forwardRef(CpuChipIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CreditCardIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CreditCardIcon.js"(exports, module) {
- var React = require_react();
- function CreditCardIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 8.25h19.5M2.25 9h19.5m-16.5 5.25h6m-6 2.25h3m-3.75 3h15a2.25 2.25 0 002.25-2.25V6.75A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25v10.5A2.25 2.25 0 004.5 19.5z"
- }));
- }
- var ForwardRef = React.forwardRef(CreditCardIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CubeTransparentIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CubeTransparentIcon.js"(exports, module) {
- var React = require_react();
- function CubeTransparentIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 7.5l-2.25-1.313M21 7.5v2.25m0-2.25l-2.25 1.313M3 7.5l2.25-1.313M3 7.5l2.25 1.313M3 7.5v2.25m9 3l2.25-1.313M12 12.75l-2.25-1.313M12 12.75V15m0 6.75l2.25-1.313M12 21.75V19.5m0 2.25l-2.25-1.313m0-16.875L12 2.25l2.25 1.313M21 14.25v2.25l-2.25 1.313m-13.5 0L3 16.5v-2.25"
- }));
- }
- var ForwardRef = React.forwardRef(CubeTransparentIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CubeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CubeIcon.js"(exports, module) {
- var React = require_react();
- function CubeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"
- }));
- }
- var ForwardRef = React.forwardRef(CubeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CurrencyBangladeshiIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyBangladeshiIcon.js"(exports, module) {
- var React = require_react();
- function CurrencyBangladeshiIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 7.5l.415-.207a.75.75 0 011.085.67V10.5m0 0h6m-6 0h-1.5m1.5 0v5.438c0 .354.161.697.473.865a3.751 3.751 0 005.452-2.553c.083-.409-.263-.75-.68-.75h-.745M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(CurrencyBangladeshiIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CurrencyDollarIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyDollarIcon.js"(exports, module) {
- var React = require_react();
- function CurrencyDollarIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 6v12m-3-2.818l.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(CurrencyDollarIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CurrencyEuroIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyEuroIcon.js"(exports, module) {
- var React = require_react();
- function CurrencyEuroIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.25 7.756a4.5 4.5 0 100 8.488M7.5 10.5h5.25m-5.25 3h5.25M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(CurrencyEuroIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CurrencyPoundIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyPoundIcon.js"(exports, module) {
- var React = require_react();
- function CurrencyPoundIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.121 7.629A3 3 0 009.017 9.43c-.023.212-.002.425.028.636l.506 3.541a4.5 4.5 0 01-.43 2.65L9 16.5l1.539-.513a2.25 2.25 0 011.422 0l.655.218a2.25 2.25 0 001.718-.122L15 15.75M8.25 12H12m9 0a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(CurrencyPoundIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CurrencyRupeeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyRupeeIcon.js"(exports, module) {
- var React = require_react();
- function CurrencyRupeeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 8.25H9m6 3H9m3 6l-3-3h1.5a3 3 0 100-6M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(CurrencyRupeeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CurrencyYenIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyYenIcon.js"(exports, module) {
- var React = require_react();
- function CurrencyYenIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 7.5l3 4.5m0 0l3-4.5M12 12v5.25M15 12H9m6 3H9m12-3a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(CurrencyYenIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CursorArrowRaysIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CursorArrowRaysIcon.js"(exports, module) {
- var React = require_react();
- function CursorArrowRaysIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.042 21.672L13.684 16.6m0 0l-2.51 2.225.569-9.47 5.227 7.917-3.286-.672zM12 2.25V4.5m5.834.166l-1.591 1.591M20.25 10.5H18M7.757 14.743l-1.59 1.59M6 10.5H3.75m4.007-4.243l-1.59-1.59"
- }));
- }
- var ForwardRef = React.forwardRef(CursorArrowRaysIcon);
- module.exports = ForwardRef;
- }
-});
-var require_CursorArrowRippleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CursorArrowRippleIcon.js"(exports, module) {
- var React = require_react();
- function CursorArrowRippleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.042 21.672L13.684 16.6m0 0l-2.51 2.225.569-9.47 5.227 7.917-3.286-.672zm-7.518-.267A8.25 8.25 0 1120.25 10.5M8.288 14.212A5.25 5.25 0 1117.25 10.5"
- }));
- }
- var ForwardRef = React.forwardRef(CursorArrowRippleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DevicePhoneMobileIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DevicePhoneMobileIcon.js"(exports, module) {
- var React = require_react();
- function DevicePhoneMobileIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.5 1.5H8.25A2.25 2.25 0 006 3.75v16.5a2.25 2.25 0 002.25 2.25h7.5A2.25 2.25 0 0018 20.25V3.75a2.25 2.25 0 00-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18.75h3"
- }));
- }
- var ForwardRef = React.forwardRef(DevicePhoneMobileIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DeviceTabletIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DeviceTabletIcon.js"(exports, module) {
- var React = require_react();
- function DeviceTabletIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.5 19.5h3m-6.75 2.25h10.5a2.25 2.25 0 002.25-2.25v-15a2.25 2.25 0 00-2.25-2.25H6.75A2.25 2.25 0 004.5 4.5v15a2.25 2.25 0 002.25 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(DeviceTabletIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentArrowDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentArrowDownIcon.js"(exports, module) {
- var React = require_react();
- function DocumentArrowDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m.75 12l3 3m0 0l3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentArrowDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentArrowUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentArrowUpIcon.js"(exports, module) {
- var React = require_react();
- function DocumentArrowUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m6.75 12l-3-3m0 0l-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentArrowUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentChartBarIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentChartBarIcon.js"(exports, module) {
- var React = require_react();
- function DocumentChartBarIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25M9 16.5v.75m3-3v3M15 12v5.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentChartBarIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentCheckIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentCheckIcon.js"(exports, module) {
- var React = require_react();
- function DocumentCheckIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 019 9v.375M10.125 2.25A3.375 3.375 0 0113.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 013.375 3.375M9 15l2.25 2.25L15 12"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentCheckIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentDuplicateIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentDuplicateIcon.js"(exports, module) {
- var React = require_react();
- function DocumentDuplicateIcon2(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentDuplicateIcon2);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentMagnifyingGlassIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentMagnifyingGlassIcon.js"(exports, module) {
- var React = require_react();
- function DocumentMagnifyingGlassIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9zm3.75 11.625a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentMagnifyingGlassIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentMinusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentMinusIcon.js"(exports, module) {
- var React = require_react();
- function DocumentMinusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m6.75 12H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentMinusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentPlusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentPlusIcon.js"(exports, module) {
- var React = require_react();
- function DocumentPlusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentPlusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentTextIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentTextIcon.js"(exports, module) {
- var React = require_react();
- function DocumentTextIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentTextIcon);
- module.exports = ForwardRef;
- }
-});
-var require_DocumentIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentIcon.js"(exports, module) {
- var React = require_react();
- function DocumentIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
- }));
- }
- var ForwardRef = React.forwardRef(DocumentIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EllipsisHorizontalCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EllipsisHorizontalCircleIcon.js"(exports, module) {
- var React = require_react();
- function EllipsisHorizontalCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.625 12a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H8.25m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H12m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0h-.375M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(EllipsisHorizontalCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EllipsisHorizontalIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EllipsisHorizontalIcon.js"(exports, module) {
- var React = require_react();
- function EllipsisHorizontalIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM12.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM18.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0z"
- }));
- }
- var ForwardRef = React.forwardRef(EllipsisHorizontalIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EllipsisVerticalIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EllipsisVerticalIcon.js"(exports, module) {
- var React = require_react();
- function EllipsisVerticalIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 6.75a.75.75 0 110-1.5.75.75 0 010 1.5zM12 12.75a.75.75 0 110-1.5.75.75 0 010 1.5zM12 18.75a.75.75 0 110-1.5.75.75 0 010 1.5z"
- }));
- }
- var ForwardRef = React.forwardRef(EllipsisVerticalIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EnvelopeOpenIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EnvelopeOpenIcon.js"(exports, module) {
- var React = require_react();
- function EnvelopeOpenIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21.75 9v.906a2.25 2.25 0 01-1.183 1.981l-6.478 3.488M2.25 9v.906a2.25 2.25 0 001.183 1.981l6.478 3.488m8.839 2.51l-4.66-2.51m0 0l-1.023-.55a2.25 2.25 0 00-2.134 0l-1.022.55m0 0l-4.661 2.51m16.5 1.615a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V8.844a2.25 2.25 0 011.183-1.98l7.5-4.04a2.25 2.25 0 012.134 0l7.5 4.04a2.25 2.25 0 011.183 1.98V19.5z"
- }));
- }
- var ForwardRef = React.forwardRef(EnvelopeOpenIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EnvelopeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EnvelopeIcon.js"(exports, module) {
- var React = require_react();
- function EnvelopeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75"
- }));
- }
- var ForwardRef = React.forwardRef(EnvelopeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ExclamationCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ExclamationCircleIcon.js"(exports, module) {
- var React = require_react();
- function ExclamationCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(ExclamationCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ExclamationTriangleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ExclamationTriangleIcon.js"(exports, module) {
- var React = require_react();
- function ExclamationTriangleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(ExclamationTriangleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EyeDropperIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EyeDropperIcon.js"(exports, module) {
- var React = require_react();
- function EyeDropperIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 11.25l1.5 1.5.75-.75V8.758l2.276-.61a3 3 0 10-3.675-3.675l-.61 2.277H12l-.75.75 1.5 1.5M15 11.25l-8.47 8.47c-.34.34-.8.53-1.28.53s-.94.19-1.28.53l-.97.97-.75-.75.97-.97c.34-.34.53-.8.53-1.28s.19-.94.53-1.28L12.75 9M15 11.25L12.75 9"
- }));
- }
- var ForwardRef = React.forwardRef(EyeDropperIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EyeSlashIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EyeSlashIcon.js"(exports, module) {
- var React = require_react();
- function EyeSlashIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.98 8.223A10.477 10.477 0 001.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88"
- }));
- }
- var ForwardRef = React.forwardRef(EyeSlashIcon);
- module.exports = ForwardRef;
- }
-});
-var require_EyeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EyeIcon.js"(exports, module) {
- var React = require_react();
- function EyeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.036 12.322a1.012 1.012 0 010-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
- }));
- }
- var ForwardRef = React.forwardRef(EyeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FaceFrownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FaceFrownIcon.js"(exports, module) {
- var React = require_react();
- function FaceFrownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.182 16.318A4.486 4.486 0 0012.016 15a4.486 4.486 0 00-3.198 1.318M21 12a9 9 0 11-18 0 9 9 0 0118 0zM9.75 9.75c0 .414-.168.75-.375.75S9 10.164 9 9.75 9.168 9 9.375 9s.375.336.375.75zm-.375 0h.008v.015h-.008V9.75zm5.625 0c0 .414-.168.75-.375.75s-.375-.336-.375-.75.168-.75.375-.75.375.336.375.75zm-.375 0h.008v.015h-.008V9.75z"
- }));
- }
- var ForwardRef = React.forwardRef(FaceFrownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FaceSmileIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FaceSmileIcon.js"(exports, module) {
- var React = require_react();
- function FaceSmileIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.182 15.182a4.5 4.5 0 01-6.364 0M21 12a9 9 0 11-18 0 9 9 0 0118 0zM9.75 9.75c0 .414-.168.75-.375.75S9 10.164 9 9.75 9.168 9 9.375 9s.375.336.375.75zm-.375 0h.008v.015h-.008V9.75zm5.625 0c0 .414-.168.75-.375.75s-.375-.336-.375-.75.168-.75.375-.75.375.336.375.75zm-.375 0h.008v.015h-.008V9.75z"
- }));
- }
- var ForwardRef = React.forwardRef(FaceSmileIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FilmIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FilmIcon.js"(exports, module) {
- var React = require_react();
- function FilmIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 01-1.125-1.125M3.375 19.5h1.5C5.496 19.5 6 18.996 6 18.375m-3.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-1.5A1.125 1.125 0 0118 18.375M20.625 4.5H3.375m17.25 0c.621 0 1.125.504 1.125 1.125M20.625 4.5h-1.5C18.504 4.5 18 5.004 18 5.625m3.75 0v1.5c0 .621-.504 1.125-1.125 1.125M3.375 4.5c-.621 0-1.125.504-1.125 1.125M3.375 4.5h1.5C5.496 4.5 6 5.004 6 5.625m-3.75 0v1.5c0 .621.504 1.125 1.125 1.125m0 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m1.5-3.75C5.496 8.25 6 7.746 6 7.125v-1.5M4.875 8.25C5.496 8.25 6 8.754 6 9.375v1.5m0-5.25v5.25m0-5.25C6 5.004 6.504 4.5 7.125 4.5h9.75c.621 0 1.125.504 1.125 1.125m1.125 2.625h1.5m-1.5 0A1.125 1.125 0 0118 7.125v-1.5m1.125 2.625c-.621 0-1.125.504-1.125 1.125v1.5m2.625-2.625c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125M18 5.625v5.25M7.125 12h9.75m-9.75 0A1.125 1.125 0 016 10.875M7.125 12C6.504 12 6 12.504 6 13.125m0-2.25C6 11.496 5.496 12 4.875 12M18 10.875c0 .621-.504 1.125-1.125 1.125M18 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m-12 5.25v-5.25m0 5.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125m-12 0v-1.5c0-.621-.504-1.125-1.125-1.125M18 18.375v-5.25m0 5.25v-1.5c0-.621.504-1.125 1.125-1.125M18 13.125v1.5c0 .621.504 1.125 1.125 1.125M18 13.125c0-.621.504-1.125 1.125-1.125M6 13.125v1.5c0 .621-.504 1.125-1.125 1.125M6 13.125C6 12.504 5.496 12 4.875 12m-1.5 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M19.125 12h1.5m0 0c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h1.5m14.25 0h1.5"
- }));
- }
- var ForwardRef = React.forwardRef(FilmIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FingerPrintIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FingerPrintIcon.js"(exports, module) {
- var React = require_react();
- function FingerPrintIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.864 4.243A7.5 7.5 0 0119.5 10.5c0 2.92-.556 5.709-1.568 8.268M5.742 6.364A7.465 7.465 0 004.5 10.5a7.464 7.464 0 01-1.15 3.993m1.989 3.559A11.209 11.209 0 008.25 10.5a3.75 3.75 0 117.5 0c0 .527-.021 1.049-.064 1.565M12 10.5a14.94 14.94 0 01-3.6 9.75m6.633-4.596a18.666 18.666 0 01-2.485 5.33"
- }));
- }
- var ForwardRef = React.forwardRef(FingerPrintIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FireIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FireIcon.js"(exports, module) {
- var React = require_react();
- function FireIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.362 5.214A8.252 8.252 0 0112 21 8.25 8.25 0 016.038 7.048 8.287 8.287 0 009 9.6a8.983 8.983 0 013.361-6.867 8.21 8.21 0 003 2.48z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 18a3.75 3.75 0 00.495-7.467 5.99 5.99 0 00-1.925 3.546 5.974 5.974 0 01-2.133-1A3.75 3.75 0 0012 18z"
- }));
- }
- var ForwardRef = React.forwardRef(FireIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FlagIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FlagIcon.js"(exports, module) {
- var React = require_react();
- function FlagIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 3v1.5M3 21v-6m0 0l2.77-.693a9 9 0 016.208.682l.108.054a9 9 0 006.086.71l3.114-.732a48.524 48.524 0 01-.005-10.499l-3.11.732a9 9 0 01-6.085-.711l-.108-.054a9 9 0 00-6.208-.682L3 4.5M3 15V4.5"
- }));
- }
- var ForwardRef = React.forwardRef(FlagIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FolderArrowDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderArrowDownIcon.js"(exports, module) {
- var React = require_react();
- function FolderArrowDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 13.5l3 3m0 0l3-3m-3 3v-6m1.06-4.19l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"
- }));
- }
- var ForwardRef = React.forwardRef(FolderArrowDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FolderMinusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderMinusIcon.js"(exports, module) {
- var React = require_react();
- function FolderMinusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 13.5H9m4.06-7.19l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"
- }));
- }
- var ForwardRef = React.forwardRef(FolderMinusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FolderOpenIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderOpenIcon.js"(exports, module) {
- var React = require_react();
- function FolderOpenIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 00-1.883 2.542l.857 6a2.25 2.25 0 002.227 1.932H19.05a2.25 2.25 0 002.227-1.932l.857-6a2.25 2.25 0 00-1.883-2.542m-16.5 0V6A2.25 2.25 0 016 3.75h3.879a1.5 1.5 0 011.06.44l2.122 2.12a1.5 1.5 0 001.06.44H18A2.25 2.25 0 0120.25 9v.776"
- }));
- }
- var ForwardRef = React.forwardRef(FolderOpenIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FolderPlusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderPlusIcon.js"(exports, module) {
- var React = require_react();
- function FolderPlusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 10.5v6m3-3H9m4.06-7.19l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"
- }));
- }
- var ForwardRef = React.forwardRef(FolderPlusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FolderIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderIcon.js"(exports, module) {
- var React = require_react();
- function FolderIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"
- }));
- }
- var ForwardRef = React.forwardRef(FolderIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ForwardIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ForwardIcon.js"(exports, module) {
- var React = require_react();
- function ForwardIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 8.688c0-.864.933-1.405 1.683-.977l7.108 4.062a1.125 1.125 0 010 1.953l-7.108 4.062A1.125 1.125 0 013 16.81V8.688zM12.75 8.688c0-.864.933-1.405 1.683-.977l7.108 4.062a1.125 1.125 0 010 1.953l-7.108 4.062a1.125 1.125 0 01-1.683-.977V8.688z"
- }));
- }
- var ForwardRef = React.forwardRef(ForwardIcon);
- module.exports = ForwardRef;
- }
-});
-var require_FunnelIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FunnelIcon.js"(exports, module) {
- var React = require_react();
- function FunnelIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z"
- }));
- }
- var ForwardRef = React.forwardRef(FunnelIcon);
- module.exports = ForwardRef;
- }
-});
-var require_GifIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GifIcon.js"(exports, module) {
- var React = require_react();
- function GifIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12.75 8.25v7.5m6-7.5h-3V12m0 0v3.75m0-3.75H18M9.75 9.348c-1.03-1.464-2.698-1.464-3.728 0-1.03 1.465-1.03 3.84 0 5.304 1.03 1.464 2.699 1.464 3.728 0V12h-1.5M4.5 19.5h15a2.25 2.25 0 002.25-2.25V6.75A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25v10.5A2.25 2.25 0 004.5 19.5z"
- }));
- }
- var ForwardRef = React.forwardRef(GifIcon);
- module.exports = ForwardRef;
- }
-});
-var require_GiftTopIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GiftTopIcon.js"(exports, module) {
- var React = require_react();
- function GiftTopIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 3.75v16.5M2.25 12h19.5M6.375 17.25a4.875 4.875 0 004.875-4.875V12m6.375 5.25a4.875 4.875 0 01-4.875-4.875V12m-9 8.25h16.5a1.5 1.5 0 001.5-1.5V5.25a1.5 1.5 0 00-1.5-1.5H3.75a1.5 1.5 0 00-1.5 1.5v13.5a1.5 1.5 0 001.5 1.5zm12.621-9.44c-1.409 1.41-4.242 1.061-4.242 1.061s-.349-2.833 1.06-4.242a2.25 2.25 0 013.182 3.182zM10.773 7.63c1.409 1.409 1.06 4.242 1.06 4.242S9 12.22 7.592 10.811a2.25 2.25 0 113.182-3.182z"
- }));
- }
- var ForwardRef = React.forwardRef(GiftTopIcon);
- module.exports = ForwardRef;
- }
-});
-var require_GiftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GiftIcon.js"(exports, module) {
- var React = require_react();
- function GiftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 11.25v8.25a1.5 1.5 0 01-1.5 1.5H5.25a1.5 1.5 0 01-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 109.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1114.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"
- }));
- }
- var ForwardRef = React.forwardRef(GiftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_GlobeAltIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeAltIcon.js"(exports, module) {
- var React = require_react();
- function GlobeAltIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418"
- }));
- }
- var ForwardRef = React.forwardRef(GlobeAltIcon);
- module.exports = ForwardRef;
- }
-});
-var require_GlobeAmericasIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeAmericasIcon.js"(exports, module) {
- var React = require_react();
- function GlobeAmericasIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.115 5.19l.319 1.913A6 6 0 008.11 10.36L9.75 12l-.387.775c-.217.433-.132.956.21 1.298l1.348 1.348c.21.21.329.497.329.795v1.089c0 .426.24.815.622 1.006l.153.076c.433.217.956.132 1.298-.21l.723-.723a8.7 8.7 0 002.288-4.042 1.087 1.087 0 00-.358-1.099l-1.33-1.108c-.251-.21-.582-.299-.905-.245l-1.17.195a1.125 1.125 0 01-.98-.314l-.295-.295a1.125 1.125 0 010-1.591l.13-.132a1.125 1.125 0 011.3-.21l.603.302a.809.809 0 001.086-1.086L14.25 7.5l1.256-.837a4.5 4.5 0 001.528-1.732l.146-.292M6.115 5.19A9 9 0 1017.18 4.64M6.115 5.19A8.965 8.965 0 0112 3c1.929 0 3.716.607 5.18 1.64"
- }));
- }
- var ForwardRef = React.forwardRef(GlobeAmericasIcon);
- module.exports = ForwardRef;
- }
-});
-var require_GlobeAsiaAustraliaIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeAsiaAustraliaIcon.js"(exports, module) {
- var React = require_react();
- function GlobeAsiaAustraliaIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12.75 3.03v.568c0 .334.148.65.405.864l1.068.89c.442.369.535 1.01.216 1.49l-.51.766a2.25 2.25 0 01-1.161.886l-.143.048a1.107 1.107 0 00-.57 1.664c.369.555.169 1.307-.427 1.605L9 13.125l.423 1.059a.956.956 0 01-1.652.928l-.679-.906a1.125 1.125 0 00-1.906.172L4.5 15.75l-.612.153M12.75 3.031a9 9 0 00-8.862 12.872M12.75 3.031a9 9 0 016.69 14.036m0 0l-.177-.529A2.25 2.25 0 0017.128 15H16.5l-.324-.324a1.453 1.453 0 00-2.328.377l-.036.073a1.586 1.586 0 01-.982.816l-.99.282c-.55.157-.894.702-.8 1.267l.073.438c.08.474.49.821.97.821.846 0 1.598.542 1.865 1.345l.215.643m5.276-3.67a9.012 9.012 0 01-5.276 3.67m0 0a9 9 0 01-10.275-4.835M15.75 9c0 .896-.393 1.7-1.016 2.25"
- }));
- }
- var ForwardRef = React.forwardRef(GlobeAsiaAustraliaIcon);
- module.exports = ForwardRef;
- }
-});
-var require_GlobeEuropeAfricaIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeEuropeAfricaIcon.js"(exports, module) {
- var React = require_react();
- function GlobeEuropeAfricaIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.893 13.393l-1.135-1.135a2.252 2.252 0 01-.421-.585l-1.08-2.16a.414.414 0 00-.663-.107.827.827 0 01-.812.21l-1.273-.363a.89.89 0 00-.738 1.595l.587.39c.59.395.674 1.23.172 1.732l-.2.2c-.212.212-.33.498-.33.796v.41c0 .409-.11.809-.32 1.158l-1.315 2.191a2.11 2.11 0 01-1.81 1.025 1.055 1.055 0 01-1.055-1.055v-1.172c0-.92-.56-1.747-1.414-2.089l-.655-.261a2.25 2.25 0 01-1.383-2.46l.007-.042a2.25 2.25 0 01.29-.787l.09-.15a2.25 2.25 0 012.37-1.048l1.178.236a1.125 1.125 0 001.302-.795l.208-.73a1.125 1.125 0 00-.578-1.315l-.665-.332-.091.091a2.25 2.25 0 01-1.591.659h-.18c-.249 0-.487.1-.662.274a.931.931 0 01-1.458-1.137l1.411-2.353a2.25 2.25 0 00.286-.76m11.928 9.869A9 9 0 008.965 3.525m11.928 9.868A9 9 0 118.965 3.525"
- }));
- }
- var ForwardRef = React.forwardRef(GlobeEuropeAfricaIcon);
- module.exports = ForwardRef;
- }
-});
-var require_HandRaisedIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HandRaisedIcon.js"(exports, module) {
- var React = require_react();
- function HandRaisedIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.05 4.575a1.575 1.575 0 10-3.15 0v3m3.15-3v-1.5a1.575 1.575 0 013.15 0v1.5m-3.15 0l.075 5.925m3.075.75V4.575m0 0a1.575 1.575 0 013.15 0V15M6.9 7.575a1.575 1.575 0 10-3.15 0v8.175a6.75 6.75 0 006.75 6.75h2.018a5.25 5.25 0 003.712-1.538l1.732-1.732a5.25 5.25 0 001.538-3.712l.003-2.024a.668.668 0 01.198-.471 1.575 1.575 0 10-2.228-2.228 3.818 3.818 0 00-1.12 2.687M6.9 7.575V12m6.27 4.318A4.49 4.49 0 0116.35 15m.002 0h-.002"
- }));
- }
- var ForwardRef = React.forwardRef(HandRaisedIcon);
- module.exports = ForwardRef;
- }
-});
-var require_HandThumbDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HandThumbDownIcon.js"(exports, module) {
- var React = require_react();
- function HandThumbDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.5 15h2.25m8.024-9.75c.011.05.028.1.052.148.591 1.2.924 2.55.924 3.977a8.96 8.96 0 01-.999 4.125m.023-8.25c-.076-.365.183-.75.575-.75h.908c.889 0 1.713.518 1.972 1.368.339 1.11.521 2.287.521 3.507 0 1.553-.295 3.036-.831 4.398C20.613 14.547 19.833 15 19 15h-1.053c-.472 0-.745-.556-.5-.96a8.95 8.95 0 00.303-.54m.023-8.25H16.48a4.5 4.5 0 01-1.423-.23l-3.114-1.04a4.5 4.5 0 00-1.423-.23H6.504c-.618 0-1.217.247-1.605.729A11.95 11.95 0 002.25 12c0 .434.023.863.068 1.285C2.427 14.306 3.346 15 4.372 15h3.126c.618 0 .991.724.725 1.282A7.471 7.471 0 007.5 19.5a2.25 2.25 0 002.25 2.25.75.75 0 00.75-.75v-.633c0-.573.11-1.14.322-1.672.304-.76.93-1.33 1.653-1.715a9.04 9.04 0 002.86-2.4c.498-.634 1.226-1.08 2.032-1.08h.384"
- }));
- }
- var ForwardRef = React.forwardRef(HandThumbDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_HandThumbUpIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HandThumbUpIcon.js"(exports, module) {
- var React = require_react();
- function HandThumbUpIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.633 10.5c.806 0 1.533-.446 2.031-1.08a9.041 9.041 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75A2.25 2.25 0 0116.5 4.5c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H13.48c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23H5.904M14.25 9h2.25M5.904 18.75c.083.205.173.405.27.602.197.4-.078.898-.523.898h-.908c-.889 0-1.713-.518-1.972-1.368a12 12 0 01-.521-3.507c0-1.553.295-3.036.831-4.398C3.387 10.203 4.167 9.75 5 9.75h1.053c.472 0 .745.556.5.96a8.958 8.958 0 00-1.302 4.665c0 1.194.232 2.333.654 3.375z"
- }));
- }
- var ForwardRef = React.forwardRef(HandThumbUpIcon);
- module.exports = ForwardRef;
- }
-});
-var require_HashtagIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HashtagIcon.js"(exports, module) {
- var React = require_react();
- function HashtagIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5l-3.9 19.5m-2.1-19.5l-3.9 19.5"
- }));
- }
- var ForwardRef = React.forwardRef(HashtagIcon);
- module.exports = ForwardRef;
- }
-});
-var require_HeartIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HeartIcon.js"(exports, module) {
- var React = require_react();
- function HeartIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z"
- }));
- }
- var ForwardRef = React.forwardRef(HeartIcon);
- module.exports = ForwardRef;
- }
-});
-var require_HomeModernIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HomeModernIcon.js"(exports, module) {
- var React = require_react();
- function HomeModernIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 21v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21m0 0h4.5V3.545M12.75 21h7.5V10.75M2.25 21h1.5m18 0h-18M2.25 9l4.5-1.636M18.75 3l-1.5.545m0 6.205l3 1m1.5.5l-1.5-.5M6.75 7.364V3h-3v18m3-13.636l10.5-3.819"
- }));
- }
- var ForwardRef = React.forwardRef(HomeModernIcon);
- module.exports = ForwardRef;
- }
-});
-var require_HomeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HomeIcon.js"(exports, module) {
- var React = require_react();
- function HomeIcon2(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25"
- }));
- }
- var ForwardRef = React.forwardRef(HomeIcon2);
- module.exports = ForwardRef;
- }
-});
-var require_IdentificationIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/IdentificationIcon.js"(exports, module) {
- var React = require_react();
- function IdentificationIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 9h3.75M15 12h3.75M15 15h3.75M4.5 19.5h15a2.25 2.25 0 002.25-2.25V6.75A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25v10.5A2.25 2.25 0 004.5 19.5zm6-10.125a1.875 1.875 0 11-3.75 0 1.875 1.875 0 013.75 0zm1.294 6.336a6.721 6.721 0 01-3.17.789 6.721 6.721 0 01-3.168-.789 3.376 3.376 0 016.338 0z"
- }));
- }
- var ForwardRef = React.forwardRef(IdentificationIcon);
- module.exports = ForwardRef;
- }
-});
-var require_InboxArrowDownIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InboxArrowDownIcon.js"(exports, module) {
- var React = require_react();
- function InboxArrowDownIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 3.75H6.912a2.25 2.25 0 00-2.15 1.588L2.35 13.177a2.25 2.25 0 00-.1.661V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 00-2.15-1.588H15M2.25 13.5h3.86a2.25 2.25 0 012.012 1.244l.256.512a2.25 2.25 0 002.013 1.244h3.218a2.25 2.25 0 002.013-1.244l.256-.512a2.25 2.25 0 012.013-1.244h3.859M12 3v8.25m0 0l-3-3m3 3l3-3"
- }));
- }
- var ForwardRef = React.forwardRef(InboxArrowDownIcon);
- module.exports = ForwardRef;
- }
-});
-var require_InboxStackIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InboxStackIcon.js"(exports, module) {
- var React = require_react();
- function InboxStackIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.875 14.25l1.214 1.942a2.25 2.25 0 001.908 1.058h2.006c.776 0 1.497-.4 1.908-1.058l1.214-1.942M2.41 9h4.636a2.25 2.25 0 011.872 1.002l.164.246a2.25 2.25 0 001.872 1.002h2.092a2.25 2.25 0 001.872-1.002l.164-.246A2.25 2.25 0 0116.954 9h4.636M2.41 9a2.25 2.25 0 00-.16.832V12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 12V9.832c0-.287-.055-.57-.16-.832M2.41 9a2.25 2.25 0 01.382-.632l3.285-3.832a2.25 2.25 0 011.708-.786h8.43c.657 0 1.281.287 1.709.786l3.284 3.832c.163.19.291.404.382.632M4.5 20.25h15A2.25 2.25 0 0021.75 18v-2.625c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125V18a2.25 2.25 0 002.25 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(InboxStackIcon);
- module.exports = ForwardRef;
- }
-});
-var require_InboxIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InboxIcon.js"(exports, module) {
- var React = require_react();
- function InboxIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 13.5h3.86a2.25 2.25 0 012.012 1.244l.256.512a2.25 2.25 0 002.013 1.244h3.218a2.25 2.25 0 002.013-1.244l.256-.512a2.25 2.25 0 012.013-1.244h3.859m-19.5.338V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 00-2.15-1.588H6.911a2.25 2.25 0 00-2.15 1.588L2.35 13.177a2.25 2.25 0 00-.1.661z"
- }));
- }
- var ForwardRef = React.forwardRef(InboxIcon);
- module.exports = ForwardRef;
- }
-});
-var require_InformationCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InformationCircleIcon.js"(exports, module) {
- var React = require_react();
- function InformationCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
- }));
- }
- var ForwardRef = React.forwardRef(InformationCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_KeyIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/KeyIcon.js"(exports, module) {
- var React = require_react();
- function KeyIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 5.25a3 3 0 013 3m3 0a6 6 0 01-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1121.75 8.25z"
- }));
- }
- var ForwardRef = React.forwardRef(KeyIcon);
- module.exports = ForwardRef;
- }
-});
-var require_LanguageIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LanguageIcon.js"(exports, module) {
- var React = require_react();
- function LanguageIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.5 21l5.25-11.25L21 21m-9-3h7.5M3 5.621a48.474 48.474 0 016-.371m0 0c1.12 0 2.233.038 3.334.114M9 5.25V3m3.334 2.364C11.176 10.658 7.69 15.08 3 17.502m9.334-12.138c.896.061 1.785.147 2.666.257m-4.589 8.495a18.023 18.023 0 01-3.827-5.802"
- }));
- }
- var ForwardRef = React.forwardRef(LanguageIcon);
- module.exports = ForwardRef;
- }
-});
-var require_LifebuoyIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LifebuoyIcon.js"(exports, module) {
- var React = require_react();
- function LifebuoyIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.712 4.33a9.027 9.027 0 011.652 1.306c.51.51.944 1.064 1.306 1.652M16.712 4.33l-3.448 4.138m3.448-4.138a9.014 9.014 0 00-9.424 0M19.67 7.288l-4.138 3.448m4.138-3.448a9.014 9.014 0 010 9.424m-4.138-5.976a3.736 3.736 0 00-.88-1.388 3.737 3.737 0 00-1.388-.88m2.268 2.268a3.765 3.765 0 010 2.528m-2.268-4.796a3.765 3.765 0 00-2.528 0m4.796 4.796c-.181.506-.475.982-.88 1.388a3.736 3.736 0 01-1.388.88m2.268-2.268l4.138 3.448m0 0a9.027 9.027 0 01-1.306 1.652c-.51.51-1.064.944-1.652 1.306m0 0l-3.448-4.138m3.448 4.138a9.014 9.014 0 01-9.424 0m5.976-4.138a3.765 3.765 0 01-2.528 0m0 0a3.736 3.736 0 01-1.388-.88 3.737 3.737 0 01-.88-1.388m2.268 2.268L7.288 19.67m0 0a9.024 9.024 0 01-1.652-1.306 9.027 9.027 0 01-1.306-1.652m0 0l4.138-3.448M4.33 16.712a9.014 9.014 0 010-9.424m4.138 5.976a3.765 3.765 0 010-2.528m0 0c.181-.506.475-.982.88-1.388a3.736 3.736 0 011.388-.88m-2.268 2.268L4.33 7.288m6.406 1.18L7.288 4.33m0 0a9.024 9.024 0 00-1.652 1.306A9.025 9.025 0 004.33 7.288"
- }));
- }
- var ForwardRef = React.forwardRef(LifebuoyIcon);
- module.exports = ForwardRef;
- }
-});
-var require_LightBulbIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LightBulbIcon.js"(exports, module) {
- var React = require_react();
- function LightBulbIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 18v-5.25m0 0a6.01 6.01 0 001.5-.189m-1.5.189a6.01 6.01 0 01-1.5-.189m3.75 7.478a12.06 12.06 0 01-4.5 0m3.75 2.383a14.406 14.406 0 01-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 10-7.517 0c.85.493 1.509 1.333 1.509 2.316V18"
- }));
- }
- var ForwardRef = React.forwardRef(LightBulbIcon);
- module.exports = ForwardRef;
- }
-});
-var require_LinkIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LinkIcon.js"(exports, module) {
- var React = require_react();
- function LinkIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244"
- }));
- }
- var ForwardRef = React.forwardRef(LinkIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ListBulletIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ListBulletIcon.js"(exports, module) {
- var React = require_react();
- function ListBulletIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zM3.75 12h.007v.008H3.75V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm-.375 5.25h.007v.008H3.75v-.008zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ListBulletIcon);
- module.exports = ForwardRef;
- }
-});
-var require_LockClosedIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LockClosedIcon.js"(exports, module) {
- var React = require_react();
- function LockClosedIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.5 10.5V6.75a4.5 4.5 0 10-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H6.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(LockClosedIcon);
- module.exports = ForwardRef;
- }
-});
-var require_LockOpenIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LockOpenIcon.js"(exports, module) {
- var React = require_react();
- function LockOpenIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M13.5 10.5V6.75a4.5 4.5 0 119 0v3.75M3.75 21.75h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H3.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(LockOpenIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MagnifyingGlassCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassCircleIcon.js"(exports, module) {
- var React = require_react();
- function MagnifyingGlassCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 15.75l-2.489-2.489m0 0a3.375 3.375 0 10-4.773-4.773 3.375 3.375 0 004.774 4.774zM21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(MagnifyingGlassCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MagnifyingGlassMinusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassMinusIcon.js"(exports, module) {
- var React = require_react();
- function MagnifyingGlassMinusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607zM13.5 10.5h-6"
- }));
- }
- var ForwardRef = React.forwardRef(MagnifyingGlassMinusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MagnifyingGlassPlusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassPlusIcon.js"(exports, module) {
- var React = require_react();
- function MagnifyingGlassPlusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607zM10.5 7.5v6m3-3h-6"
- }));
- }
- var ForwardRef = React.forwardRef(MagnifyingGlassPlusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MagnifyingGlassIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassIcon.js"(exports, module) {
- var React = require_react();
- function MagnifyingGlassIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"
- }));
- }
- var ForwardRef = React.forwardRef(MagnifyingGlassIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MapPinIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MapPinIcon.js"(exports, module) {
- var React = require_react();
- function MapPinIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 10.5a3 3 0 11-6 0 3 3 0 016 0z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z"
- }));
- }
- var ForwardRef = React.forwardRef(MapPinIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MapIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MapIcon.js"(exports, module) {
- var React = require_react();
- function MapIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 6.75V15m6-6v8.25m.503 3.498l4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 00-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0z"
- }));
- }
- var ForwardRef = React.forwardRef(MapIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MegaphoneIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MegaphoneIcon.js"(exports, module) {
- var React = require_react();
- function MegaphoneIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M10.34 15.84c-.688-.06-1.386-.09-2.09-.09H7.5a4.5 4.5 0 110-9h.75c.704 0 1.402-.03 2.09-.09m0 9.18c.253.962.584 1.892.985 2.783.247.55.06 1.21-.463 1.511l-.657.38c-.551.318-1.26.117-1.527-.461a20.845 20.845 0 01-1.44-4.282m3.102.069a18.03 18.03 0 01-.59-4.59c0-1.586.205-3.124.59-4.59m0 9.18a23.848 23.848 0 018.835 2.535M10.34 6.66a23.847 23.847 0 008.835-2.535m0 0A23.74 23.74 0 0018.795 3m.38 1.125a23.91 23.91 0 011.014 5.395m-1.014 8.855c-.118.38-.245.754-.38 1.125m.38-1.125a23.91 23.91 0 001.014-5.395m0-3.46c.495.413.811 1.035.811 1.73 0 .695-.316 1.317-.811 1.73m0-3.46a24.347 24.347 0 010 3.46"
- }));
- }
- var ForwardRef = React.forwardRef(MegaphoneIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MicrophoneIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MicrophoneIcon.js"(exports, module) {
- var React = require_react();
- function MicrophoneIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 18.75a6 6 0 006-6v-1.5m-6 7.5a6 6 0 01-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 01-3-3V4.5a3 3 0 116 0v8.25a3 3 0 01-3 3z"
- }));
- }
- var ForwardRef = React.forwardRef(MicrophoneIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MinusCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MinusCircleIcon.js"(exports, module) {
- var React = require_react();
- function MinusCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(MinusCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MinusSmallIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MinusSmallIcon.js"(exports, module) {
- var React = require_react();
- function MinusSmallIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M18 12H6"
- }));
- }
- var ForwardRef = React.forwardRef(MinusSmallIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MinusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MinusIcon.js"(exports, module) {
- var React = require_react();
- function MinusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.5 12h-15"
- }));
- }
- var ForwardRef = React.forwardRef(MinusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MoonIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MoonIcon.js"(exports, module) {
- var React = require_react();
- function MoonIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z"
- }));
- }
- var ForwardRef = React.forwardRef(MoonIcon);
- module.exports = ForwardRef;
- }
-});
-var require_MusicalNoteIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MusicalNoteIcon.js"(exports, module) {
- var React = require_react();
- function MusicalNoteIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 9l10.5-3m0 6.553v3.75a2.25 2.25 0 01-1.632 2.163l-1.32.377a1.803 1.803 0 11-.99-3.467l2.31-.66a2.25 2.25 0 001.632-2.163zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 01-1.632 2.163l-1.32.377a1.803 1.803 0 01-.99-3.467l2.31-.66A2.25 2.25 0 009 15.553z"
- }));
- }
- var ForwardRef = React.forwardRef(MusicalNoteIcon);
- module.exports = ForwardRef;
- }
-});
-var require_NewspaperIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/NewspaperIcon.js"(exports, module) {
- var React = require_react();
- function NewspaperIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 7.5h1.5m-1.5 3h1.5m-7.5 3h7.5m-7.5 3h7.5m3-9h3.375c.621 0 1.125.504 1.125 1.125V18a2.25 2.25 0 01-2.25 2.25M16.5 7.5V18a2.25 2.25 0 002.25 2.25M16.5 7.5V4.875c0-.621-.504-1.125-1.125-1.125H4.125C3.504 3.75 3 4.254 3 4.875V18a2.25 2.25 0 002.25 2.25h13.5M6 7.5h3v3H6v-3z"
- }));
- }
- var ForwardRef = React.forwardRef(NewspaperIcon);
- module.exports = ForwardRef;
- }
-});
-var require_NoSymbolIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/NoSymbolIcon.js"(exports, module) {
- var React = require_react();
- function NoSymbolIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"
- }));
- }
- var ForwardRef = React.forwardRef(NoSymbolIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PaintBrushIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PaintBrushIcon.js"(exports, module) {
- var React = require_react();
- function PaintBrushIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.53 16.122a3 3 0 00-5.78 1.128 2.25 2.25 0 01-2.4 2.245 4.5 4.5 0 008.4-2.245c0-.399-.078-.78-.22-1.128zm0 0a15.998 15.998 0 003.388-1.62m-5.043-.025a15.994 15.994 0 011.622-3.395m3.42 3.42a15.995 15.995 0 004.764-4.648l3.876-5.814a1.151 1.151 0 00-1.597-1.597L14.146 6.32a15.996 15.996 0 00-4.649 4.763m3.42 3.42a6.776 6.776 0 00-3.42-3.42"
- }));
- }
- var ForwardRef = React.forwardRef(PaintBrushIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PaperAirplaneIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PaperAirplaneIcon.js"(exports, module) {
- var React = require_react();
- function PaperAirplaneIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5"
- }));
- }
- var ForwardRef = React.forwardRef(PaperAirplaneIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PaperClipIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PaperClipIcon.js"(exports, module) {
- var React = require_react();
- function PaperClipIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M18.375 12.739l-7.693 7.693a4.5 4.5 0 01-6.364-6.364l10.94-10.94A3 3 0 1119.5 7.372L8.552 18.32m.009-.01l-.01.01m5.699-9.941l-7.81 7.81a1.5 1.5 0 002.112 2.13"
- }));
- }
- var ForwardRef = React.forwardRef(PaperClipIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PauseCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PauseCircleIcon.js"(exports, module) {
- var React = require_react();
- function PauseCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.25 9v6m-4.5 0V9M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(PauseCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PauseIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PauseIcon.js"(exports, module) {
- var React = require_react();
- function PauseIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 5.25v13.5m-7.5-13.5v13.5"
- }));
- }
- var ForwardRef = React.forwardRef(PauseIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PencilSquareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PencilSquareIcon.js"(exports, module) {
- var React = require_react();
- function PencilSquareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"
- }));
- }
- var ForwardRef = React.forwardRef(PencilSquareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PencilIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PencilIcon.js"(exports, module) {
- var React = require_react();
- function PencilIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125"
- }));
- }
- var ForwardRef = React.forwardRef(PencilIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PhoneArrowDownLeftIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneArrowDownLeftIcon.js"(exports, module) {
- var React = require_react();
- function PhoneArrowDownLeftIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.25 9.75v-4.5m0 4.5h4.5m-4.5 0l6-6m-3 18c-8.284 0-15-6.716-15-15V4.5A2.25 2.25 0 014.5 2.25h1.372c.516 0 .966.351 1.091.852l1.106 4.423c.11.44-.054.902-.417 1.173l-1.293.97a1.062 1.062 0 00-.38 1.21 12.035 12.035 0 007.143 7.143c.441.162.928-.004 1.21-.38l.97-1.293a1.125 1.125 0 011.173-.417l4.423 1.106c.5.125.852.575.852 1.091V19.5a2.25 2.25 0 01-2.25 2.25h-2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(PhoneArrowDownLeftIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PhoneArrowUpRightIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneArrowUpRightIcon.js"(exports, module) {
- var React = require_react();
- function PhoneArrowUpRightIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M20.25 3.75v4.5m0-4.5h-4.5m4.5 0l-6 6m3 12c-8.284 0-15-6.716-15-15V4.5A2.25 2.25 0 014.5 2.25h1.372c.516 0 .966.351 1.091.852l1.106 4.423c.11.44-.054.902-.417 1.173l-1.293.97a1.062 1.062 0 00-.38 1.21 12.035 12.035 0 007.143 7.143c.441.162.928-.004 1.21-.38l.97-1.293a1.125 1.125 0 011.173-.417l4.423 1.106c.5.125.852.575.852 1.091V19.5a2.25 2.25 0 01-2.25 2.25h-2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(PhoneArrowUpRightIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PhoneXMarkIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneXMarkIcon.js"(exports, module) {
- var React = require_react();
- function PhoneXMarkIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 3.75L18 6m0 0l2.25 2.25M18 6l2.25-2.25M18 6l-2.25 2.25m1.5 13.5c-8.284 0-15-6.716-15-15V4.5A2.25 2.25 0 014.5 2.25h1.372c.516 0 .966.351 1.091.852l1.106 4.423c.11.44-.054.902-.417 1.173l-1.293.97a1.062 1.062 0 00-.38 1.21 12.035 12.035 0 007.143 7.143c.441.162.928-.004 1.21-.38l.97-1.293a1.125 1.125 0 011.173-.417l4.423 1.106c.5.125.852.575.852 1.091V19.5a2.25 2.25 0 01-2.25 2.25h-2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(PhoneXMarkIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PhoneIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneIcon.js"(exports, module) {
- var React = require_react();
- function PhoneIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 002.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 01-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 00-1.091-.852H4.5A2.25 2.25 0 002.25 4.5v2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(PhoneIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PhotoIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhotoIcon.js"(exports, module) {
- var React = require_react();
- function PhotoIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 001.5-1.5V6a1.5 1.5 0 00-1.5-1.5H3.75A1.5 1.5 0 002.25 6v12a1.5 1.5 0 001.5 1.5zm10.5-11.25h.008v.008h-.008V8.25zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"
- }));
- }
- var ForwardRef = React.forwardRef(PhotoIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PlayCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlayCircleIcon.js"(exports, module) {
- var React = require_react();
- function PlayCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.91 11.672a.375.375 0 010 .656l-5.603 3.113a.375.375 0 01-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112z"
- }));
- }
- var ForwardRef = React.forwardRef(PlayCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PlayPauseIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlayPauseIcon.js"(exports, module) {
- var React = require_react();
- function PlayPauseIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 7.5V18M15 7.5V18M3 16.811V8.69c0-.864.933-1.406 1.683-.977l7.108 4.061a1.125 1.125 0 010 1.954l-7.108 4.061A1.125 1.125 0 013 16.811z"
- }));
- }
- var ForwardRef = React.forwardRef(PlayPauseIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PlayIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlayIcon.js"(exports, module) {
- var React = require_react();
- function PlayIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z"
- }));
- }
- var ForwardRef = React.forwardRef(PlayIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PlusCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlusCircleIcon.js"(exports, module) {
- var React = require_react();
- function PlusCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 9v6m3-3H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(PlusCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PlusSmallIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlusSmallIcon.js"(exports, module) {
- var React = require_react();
- function PlusSmallIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 6v12m6-6H6"
- }));
- }
- var ForwardRef = React.forwardRef(PlusSmallIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PlusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlusIcon.js"(exports, module) {
- var React = require_react();
- function PlusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 4.5v15m7.5-7.5h-15"
- }));
- }
- var ForwardRef = React.forwardRef(PlusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PowerIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PowerIcon.js"(exports, module) {
- var React = require_react();
- function PowerIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M5.636 5.636a9 9 0 1012.728 0M12 3v9"
- }));
- }
- var ForwardRef = React.forwardRef(PowerIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PresentationChartBarIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PresentationChartBarIcon.js"(exports, module) {
- var React = require_react();
- function PresentationChartBarIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 3v11.25A2.25 2.25 0 006 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0118 16.5h-2.25m-7.5 0h7.5m-7.5 0l-1 3m8.5-3l1 3m0 0l.5 1.5m-.5-1.5h-9.5m0 0l-.5 1.5M9 11.25v1.5M12 9v3.75m3-6v6"
- }));
- }
- var ForwardRef = React.forwardRef(PresentationChartBarIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PresentationChartLineIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PresentationChartLineIcon.js"(exports, module) {
- var React = require_react();
- function PresentationChartLineIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 3v11.25A2.25 2.25 0 006 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0118 16.5h-2.25m-7.5 0h7.5m-7.5 0l-1 3m8.5-3l1 3m0 0l.5 1.5m-.5-1.5h-9.5m0 0l-.5 1.5m.75-9l3-3 2.148 2.148A12.061 12.061 0 0116.5 7.605"
- }));
- }
- var ForwardRef = React.forwardRef(PresentationChartLineIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PrinterIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PrinterIcon.js"(exports, module) {
- var React = require_react();
- function PrinterIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.72 13.829c-.24.03-.48.062-.72.096m.72-.096a42.415 42.415 0 0110.56 0m-10.56 0L6.34 18m10.94-4.171c.24.03.48.062.72.096m-.72-.096L17.66 18m0 0l.229 2.523a1.125 1.125 0 01-1.12 1.227H7.231c-.662 0-1.18-.568-1.12-1.227L6.34 18m11.318 0h1.091A2.25 2.25 0 0021 15.75V9.456c0-1.081-.768-2.015-1.837-2.175a48.055 48.055 0 00-1.913-.247M6.34 18H5.25A2.25 2.25 0 013 15.75V9.456c0-1.081.768-2.015 1.837-2.175a48.041 48.041 0 011.913-.247m10.5 0a48.536 48.536 0 00-10.5 0m10.5 0V3.375c0-.621-.504-1.125-1.125-1.125h-8.25c-.621 0-1.125.504-1.125 1.125v3.659M18 10.5h.008v.008H18V10.5zm-3 0h.008v.008H15V10.5z"
- }));
- }
- var ForwardRef = React.forwardRef(PrinterIcon);
- module.exports = ForwardRef;
- }
-});
-var require_PuzzlePieceIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PuzzlePieceIcon.js"(exports, module) {
- var React = require_react();
- function PuzzlePieceIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 01-.657.643 48.39 48.39 0 01-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 01-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 00-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 01-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 00.657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 01-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 005.427-.63 48.05 48.05 0 00.582-4.717.532.532 0 00-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 00.658-.663 48.422 48.422 0 00-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 01-.61-.58v0z"
- }));
- }
- var ForwardRef = React.forwardRef(PuzzlePieceIcon);
- module.exports = ForwardRef;
- }
-});
-var require_QrCodeIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/QrCodeIcon.js"(exports, module) {
- var React = require_react();
- function QrCodeIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 013.75 9.375v-4.5zM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 01-1.125-1.125v-4.5zM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0113.5 9.375v-4.5z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.75 6.75h.75v.75h-.75v-.75zM6.75 16.5h.75v.75h-.75v-.75zM16.5 6.75h.75v.75h-.75v-.75zM13.5 13.5h.75v.75h-.75v-.75zM13.5 19.5h.75v.75h-.75v-.75zM19.5 13.5h.75v.75h-.75v-.75zM19.5 19.5h.75v.75h-.75v-.75zM16.5 16.5h.75v.75h-.75v-.75z"
- }));
- }
- var ForwardRef = React.forwardRef(QrCodeIcon);
- module.exports = ForwardRef;
- }
-});
-var require_QuestionMarkCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/QuestionMarkCircleIcon.js"(exports, module) {
- var React = require_react();
- function QuestionMarkCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(QuestionMarkCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_QueueListIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/QueueListIcon.js"(exports, module) {
- var React = require_react();
- function QueueListIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 010 3.75H5.625a1.875 1.875 0 010-3.75z"
- }));
- }
- var ForwardRef = React.forwardRef(QueueListIcon);
- module.exports = ForwardRef;
- }
-});
-var require_RadioIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RadioIcon.js"(exports, module) {
- var React = require_react();
- function RadioIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 7.5l16.5-4.125M12 6.75c-2.708 0-5.363.224-7.948.655C2.999 7.58 2.25 8.507 2.25 9.574v9.176A2.25 2.25 0 004.5 21h15a2.25 2.25 0 002.25-2.25V9.574c0-1.067-.75-1.994-1.802-2.169A48.329 48.329 0 0012 6.75zm-1.683 6.443l-.005.005-.006-.005.006-.005.005.005zm-.005 2.127l-.005-.006.005-.005.005.005-.005.005zm-2.116-.006l-.005.006-.006-.006.005-.005.006.005zm-.005-2.116l-.006-.005.006-.005.005.005-.005.005zM9.255 10.5v.008h-.008V10.5h.008zm3.249 1.88l-.007.004-.003-.007.006-.003.004.006zm-1.38 5.126l-.003-.006.006-.004.004.007-.006.003zm.007-6.501l-.003.006-.007-.003.004-.007.006.004zm1.37 5.129l-.007-.004.004-.006.006.003-.004.007zm.504-1.877h-.008v-.007h.008v.007zM9.255 18v.008h-.008V18h.008zm-3.246-1.87l-.007.004L6 16.127l.006-.003.004.006zm1.366-5.119l-.004-.006.006-.004.004.007-.006.003zM7.38 17.5l-.003.006-.007-.003.004-.007.006.004zm-1.376-5.116L6 12.38l.003-.007.007.004-.004.007zm-.5 1.873h-.008v-.007h.008v.007zM17.25 12.75a.75.75 0 110-1.5.75.75 0 010 1.5zm0 4.5a.75.75 0 110-1.5.75.75 0 010 1.5z"
- }));
- }
- var ForwardRef = React.forwardRef(RadioIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ReceiptPercentIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ReceiptPercentIcon.js"(exports, module) {
- var React = require_react();
- function ReceiptPercentIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 14.25l6-6m4.5-3.493V21.75l-3.75-1.5-3.75 1.5-3.75-1.5-3.75 1.5V4.757c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0111.186 0c1.1.128 1.907 1.077 1.907 2.185zM9.75 9h.008v.008H9.75V9zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm4.125 4.5h.008v.008h-.008V13.5zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ReceiptPercentIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ReceiptRefundIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ReceiptRefundIcon.js"(exports, module) {
- var React = require_react();
- function ReceiptRefundIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 9.75h4.875a2.625 2.625 0 010 5.25H12M8.25 9.75L10.5 7.5M8.25 9.75L10.5 12m9-7.243V21.75l-3.75-1.5-3.75 1.5-3.75-1.5-3.75 1.5V4.757c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0111.186 0c1.1.128 1.907 1.077 1.907 2.185z"
- }));
- }
- var ForwardRef = React.forwardRef(ReceiptRefundIcon);
- module.exports = ForwardRef;
- }
-});
-var require_RectangleGroupIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RectangleGroupIcon.js"(exports, module) {
- var React = require_react();
- function RectangleGroupIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 7.125C2.25 6.504 2.754 6 3.375 6h6c.621 0 1.125.504 1.125 1.125v3.75c0 .621-.504 1.125-1.125 1.125h-6a1.125 1.125 0 01-1.125-1.125v-3.75zM14.25 8.625c0-.621.504-1.125 1.125-1.125h5.25c.621 0 1.125.504 1.125 1.125v8.25c0 .621-.504 1.125-1.125 1.125h-5.25a1.125 1.125 0 01-1.125-1.125v-8.25zM3.75 16.125c0-.621.504-1.125 1.125-1.125h5.25c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125h-5.25a1.125 1.125 0 01-1.125-1.125v-2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(RectangleGroupIcon);
- module.exports = ForwardRef;
- }
-});
-var require_RectangleStackIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RectangleStackIcon.js"(exports, module) {
- var React = require_react();
- function RectangleStackIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6 6.878V6a2.25 2.25 0 012.25-2.25h7.5A2.25 2.25 0 0118 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 004.5 9v.878m13.5-3A2.25 2.25 0 0119.5 9v.878m0 0a2.246 2.246 0 00-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0121 12v6a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 18v-6c0-.98.626-1.813 1.5-2.122"
- }));
- }
- var ForwardRef = React.forwardRef(RectangleStackIcon);
- module.exports = ForwardRef;
- }
-});
-var require_RocketLaunchIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RocketLaunchIcon.js"(exports, module) {
- var React = require_react();
- function RocketLaunchIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.59 14.37a6 6 0 01-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 006.16-12.12A14.98 14.98 0 009.631 8.41m5.96 5.96a14.926 14.926 0 01-5.841 2.58m-.119-8.54a6 6 0 00-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 00-2.58 5.84m2.699 2.7c-.103.021-.207.041-.311.06a15.09 15.09 0 01-2.448-2.448 14.9 14.9 0 01.06-.312m-2.24 2.39a4.493 4.493 0 00-1.757 4.306 4.493 4.493 0 004.306-1.758M16.5 9a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"
- }));
- }
- var ForwardRef = React.forwardRef(RocketLaunchIcon);
- module.exports = ForwardRef;
- }
-});
-var require_RssIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RssIcon.js"(exports, module) {
- var React = require_react();
- function RssIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12.75 19.5v-.75a7.5 7.5 0 00-7.5-7.5H4.5m0-6.75h.75c7.87 0 14.25 6.38 14.25 14.25v.75M6 18.75a.75.75 0 11-1.5 0 .75.75 0 011.5 0z"
- }));
- }
- var ForwardRef = React.forwardRef(RssIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ScaleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ScaleIcon.js"(exports, module) {
- var React = require_react();
- function ScaleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 3v17.25m0 0c-1.472 0-2.882.265-4.185.75M12 20.25c1.472 0 2.882.265 4.185.75M18.75 4.97A48.416 48.416 0 0012 4.5c-2.291 0-4.545.16-6.75.47m13.5 0c1.01.143 2.01.317 3 .52m-3-.52l2.62 10.726c.122.499-.106 1.028-.589 1.202a5.988 5.988 0 01-2.031.352 5.988 5.988 0 01-2.031-.352c-.483-.174-.711-.703-.59-1.202L18.75 4.971zm-16.5.52c.99-.203 1.99-.377 3-.52m0 0l2.62 10.726c.122.499-.106 1.028-.589 1.202a5.989 5.989 0 01-2.031.352 5.989 5.989 0 01-2.031-.352c-.483-.174-.711-.703-.59-1.202L5.25 4.971z"
- }));
- }
- var ForwardRef = React.forwardRef(ScaleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ScissorsIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ScissorsIcon.js"(exports, module) {
- var React = require_react();
- function ScissorsIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.848 8.25l1.536.887M7.848 8.25a3 3 0 11-5.196-3 3 3 0 015.196 3zm1.536.887a2.165 2.165 0 011.083 1.839c.005.351.054.695.14 1.024M9.384 9.137l2.077 1.199M7.848 15.75l1.536-.887m-1.536.887a3 3 0 11-5.196 3 3 3 0 015.196-3zm1.536-.887a2.165 2.165 0 001.083-1.838c.005-.352.054-.695.14-1.025m-1.223 2.863l2.077-1.199m0-3.328a4.323 4.323 0 012.068-1.379l5.325-1.628a4.5 4.5 0 012.48-.044l.803.215-7.794 4.5m-2.882-1.664A4.331 4.331 0 0010.607 12m3.736 0l7.794 4.5-.802.215a4.5 4.5 0 01-2.48-.043l-5.326-1.629a4.324 4.324 0 01-2.068-1.379M14.343 12l-2.882 1.664"
- }));
- }
- var ForwardRef = React.forwardRef(ScissorsIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ServerStackIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ServerStackIcon.js"(exports, module) {
- var React = require_react();
- function ServerStackIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M5.25 14.25h13.5m-13.5 0a3 3 0 01-3-3m3 3a3 3 0 100 6h13.5a3 3 0 100-6m-16.5-3a3 3 0 013-3h13.5a3 3 0 013 3m-19.5 0a4.5 4.5 0 01.9-2.7L5.737 5.1a3.375 3.375 0 012.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 01.9 2.7m0 0a3 3 0 01-3 3m0 3h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008zm-3 6h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(ServerStackIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ServerIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ServerIcon.js"(exports, module) {
- var React = require_react();
- function ServerIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21.75 17.25v-.228a4.5 4.5 0 00-.12-1.03l-2.268-9.64a3.375 3.375 0 00-3.285-2.602H7.923a3.375 3.375 0 00-3.285 2.602l-2.268 9.64a4.5 4.5 0 00-.12 1.03v.228m19.5 0a3 3 0 01-3 3H5.25a3 3 0 01-3-3m19.5 0a3 3 0 00-3-3H5.25a3 3 0 00-3 3m16.5 0h.008v.008h-.008v-.008zm-3 0h.008v.008h-.008v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(ServerIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ShareIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShareIcon.js"(exports, module) {
- var React = require_react();
- function ShareIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.217 10.907a2.25 2.25 0 100 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186l9.566-5.314m-9.566 7.5l9.566 5.314m0 0a2.25 2.25 0 103.935 2.186 2.25 2.25 0 00-3.935-2.186zm0-12.814a2.25 2.25 0 103.933-2.185 2.25 2.25 0 00-3.933 2.185z"
- }));
- }
- var ForwardRef = React.forwardRef(ShareIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ShieldCheckIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShieldCheckIcon.js"(exports, module) {
- var React = require_react();
- function ShieldCheckIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z"
- }));
- }
- var ForwardRef = React.forwardRef(ShieldCheckIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ShieldExclamationIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShieldExclamationIcon.js"(exports, module) {
- var React = require_react();
- function ShieldExclamationIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 9v3.75m0-10.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.249-8.25-3.286zm0 13.036h.008v.008H12v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(ShieldExclamationIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ShoppingBagIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShoppingBagIcon.js"(exports, module) {
- var React = require_react();
- function ShoppingBagIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007zM8.625 10.5a.375.375 0 11-.75 0 .375.375 0 01.75 0zm7.5 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ShoppingBagIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ShoppingCartIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShoppingCartIcon.js"(exports, module) {
- var React = require_react();
- function ShoppingCartIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ShoppingCartIcon);
- module.exports = ForwardRef;
- }
-});
-var require_SignalSlashIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SignalSlashIcon.js"(exports, module) {
- var React = require_react();
- function SignalSlashIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 3l8.735 8.735m0 0a.374.374 0 11.53.53m-.53-.53l.53.53m0 0L21 21M14.652 9.348a3.75 3.75 0 010 5.304m2.121-7.425a6.75 6.75 0 010 9.546m2.121-11.667c3.808 3.807 3.808 9.98 0 13.788m-9.546-4.242a3.733 3.733 0 01-1.06-2.122m-1.061 4.243a6.75 6.75 0 01-1.625-6.929m-.496 9.05c-3.068-3.067-3.664-7.67-1.79-11.334M12 12h.008v.008H12V12z"
- }));
- }
- var ForwardRef = React.forwardRef(SignalSlashIcon);
- module.exports = ForwardRef;
- }
-});
-var require_SignalIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SignalIcon.js"(exports, module) {
- var React = require_react();
- function SignalIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.348 14.651a3.75 3.75 0 010-5.303m5.304 0a3.75 3.75 0 010 5.303m-7.425 2.122a6.75 6.75 0 010-9.546m9.546 0a6.75 6.75 0 010 9.546M5.106 18.894c-3.808-3.808-3.808-9.98 0-13.789m13.788 0c3.808 3.808 3.808 9.981 0 13.79M12 12h.008v.007H12V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"
- }));
- }
- var ForwardRef = React.forwardRef(SignalIcon);
- module.exports = ForwardRef;
- }
-});
-var require_SparklesIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SparklesIcon.js"(exports, module) {
- var React = require_react();
- function SparklesIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09zM18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 00-2.456 2.456zM16.894 20.567L16.5 21.75l-.394-1.183a2.25 2.25 0 00-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 001.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 001.423 1.423l1.183.394-1.183.394a2.25 2.25 0 00-1.423 1.423z"
- }));
- }
- var ForwardRef = React.forwardRef(SparklesIcon);
- module.exports = ForwardRef;
- }
-});
-var require_SpeakerWaveIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SpeakerWaveIcon.js"(exports, module) {
- var React = require_react();
- function SpeakerWaveIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75z"
- }));
- }
- var ForwardRef = React.forwardRef(SpeakerWaveIcon);
- module.exports = ForwardRef;
- }
-});
-var require_SpeakerXMarkIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SpeakerXMarkIcon.js"(exports, module) {
- var React = require_react();
- function SpeakerXMarkIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M17.25 9.75L19.5 12m0 0l2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6l4.72-4.72a.75.75 0 011.28.531V19.94a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.506-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.395C2.806 8.757 3.63 8.25 4.51 8.25H6.75z"
- }));
- }
- var ForwardRef = React.forwardRef(SpeakerXMarkIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Square2StackIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Square2StackIcon.js"(exports, module) {
- var React = require_react();
- function Square2StackIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"
- }));
- }
- var ForwardRef = React.forwardRef(Square2StackIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Square3Stack3DIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Square3Stack3DIcon.js"(exports, module) {
- var React = require_react();
- function Square3Stack3DIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6.429 9.75L2.25 12l4.179 2.25m0-4.5l5.571 3 5.571-3m-11.142 0L2.25 7.5 12 2.25l9.75 5.25-4.179 2.25m0 0L21.75 12l-4.179 2.25m0 0l4.179 2.25L12 21.75 2.25 16.5l4.179-2.25m11.142 0l-5.571 3-5.571-3"
- }));
- }
- var ForwardRef = React.forwardRef(Square3Stack3DIcon);
- module.exports = ForwardRef;
- }
-});
-var require_Squares2X2Icon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Squares2X2Icon.js"(exports, module) {
- var React = require_react();
- function Squares2X2Icon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(Squares2X2Icon);
- module.exports = ForwardRef;
- }
-});
-var require_SquaresPlusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SquaresPlusIcon.js"(exports, module) {
- var React = require_react();
- function SquaresPlusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M13.5 16.875h3.375m0 0h3.375m-3.375 0V13.5m0 3.375v3.375M6 10.5h2.25a2.25 2.25 0 002.25-2.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v2.25A2.25 2.25 0 006 10.5zm0 9.75h2.25A2.25 2.25 0 0010.5 18v-2.25a2.25 2.25 0 00-2.25-2.25H6a2.25 2.25 0 00-2.25 2.25V18A2.25 2.25 0 006 20.25zm9.75-9.75H18a2.25 2.25 0 002.25-2.25V6A2.25 2.25 0 0018 3.75h-2.25A2.25 2.25 0 0013.5 6v2.25a2.25 2.25 0 002.25 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(SquaresPlusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_StarIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/StarIcon.js"(exports, module) {
- var React = require_react();
- function StarIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
- }));
- }
- var ForwardRef = React.forwardRef(StarIcon);
- module.exports = ForwardRef;
- }
-});
-var require_StopCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/StopCircleIcon.js"(exports, module) {
- var React = require_react();
- function StopCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874c0 .311-.252.563-.563.563H9.564A.562.562 0 019 14.437V9.564z"
- }));
- }
- var ForwardRef = React.forwardRef(StopCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_StopIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/StopIcon.js"(exports, module) {
- var React = require_react();
- function StopIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M5.25 7.5A2.25 2.25 0 017.5 5.25h9a2.25 2.25 0 012.25 2.25v9a2.25 2.25 0 01-2.25 2.25h-9a2.25 2.25 0 01-2.25-2.25v-9z"
- }));
- }
- var ForwardRef = React.forwardRef(StopIcon);
- module.exports = ForwardRef;
- }
-});
-var require_SunIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SunIcon.js"(exports, module) {
- var React = require_react();
- function SunIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z"
- }));
- }
- var ForwardRef = React.forwardRef(SunIcon);
- module.exports = ForwardRef;
- }
-});
-var require_SwatchIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SwatchIcon.js"(exports, module) {
- var React = require_react();
- function SwatchIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.098 19.902a3.75 3.75 0 005.304 0l6.401-6.402M6.75 21A3.75 3.75 0 013 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 003.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88c.438-.439 1.15-.439 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(SwatchIcon);
- module.exports = ForwardRef;
- }
-});
-var require_TableCellsIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TableCellsIcon.js"(exports, module) {
- var React = require_react();
- function TableCellsIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 01-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0112 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"
- }));
- }
- var ForwardRef = React.forwardRef(TableCellsIcon);
- module.exports = ForwardRef;
- }
-});
-var require_TagIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TagIcon.js"(exports, module) {
- var React = require_react();
- function TagIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.568 3H5.25A2.25 2.25 0 003 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 005.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 009.568 3z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6 6h.008v.008H6V6z"
- }));
- }
- var ForwardRef = React.forwardRef(TagIcon);
- module.exports = ForwardRef;
- }
-});
-var require_TicketIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TicketIcon.js"(exports, module) {
- var React = require_react();
- function TicketIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.5 6v.75m0 3v.75m0 3v.75m0 3V18m-9-5.25h5.25M7.5 15h3M3.375 5.25c-.621 0-1.125.504-1.125 1.125v3.026a2.999 2.999 0 010 5.198v3.026c0 .621.504 1.125 1.125 1.125h17.25c.621 0 1.125-.504 1.125-1.125v-3.026a2.999 2.999 0 010-5.198V6.375c0-.621-.504-1.125-1.125-1.125H3.375z"
- }));
- }
- var ForwardRef = React.forwardRef(TicketIcon);
- module.exports = ForwardRef;
- }
-});
-var require_TrashIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TrashIcon.js"(exports, module) {
- var React = require_react();
- function TrashIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"
- }));
- }
- var ForwardRef = React.forwardRef(TrashIcon);
- module.exports = ForwardRef;
- }
-});
-var require_TrophyIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TrophyIcon.js"(exports, module) {
- var React = require_react();
- function TrophyIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M16.5 18.75h-9m9 0a3 3 0 013 3h-15a3 3 0 013-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 01-.982-3.172M9.497 14.25a7.454 7.454 0 00.981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 007.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 002.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 012.916.52 6.003 6.003 0 01-5.395 4.972m0 0a6.726 6.726 0 01-2.749 1.35m0 0a6.772 6.772 0 01-3.044 0"
- }));
- }
- var ForwardRef = React.forwardRef(TrophyIcon);
- module.exports = ForwardRef;
- }
-});
-var require_TruckIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TruckIcon.js"(exports, module) {
- var React = require_react();
- function TruckIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.25 18.75a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 01-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h1.125c.621 0 1.129-.504 1.09-1.124a17.902 17.902 0 00-3.213-9.193 2.056 2.056 0 00-1.58-.86H14.25M16.5 18.75h-2.25m0-11.177v-.958c0-.568-.422-1.048-.987-1.106a48.554 48.554 0 00-10.026 0 1.106 1.106 0 00-.987 1.106v7.635m12-6.677v6.677m0 4.5v-4.5m0 0h-12"
- }));
- }
- var ForwardRef = React.forwardRef(TruckIcon);
- module.exports = ForwardRef;
- }
-});
-var require_TvIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TvIcon.js"(exports, module) {
- var React = require_react();
- function TvIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6 20.25h12m-7.5-3v3m3-3v3m-10.125-3h17.25c.621 0 1.125-.504 1.125-1.125V4.875c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125z"
- }));
- }
- var ForwardRef = React.forwardRef(TvIcon);
- module.exports = ForwardRef;
- }
-});
-var require_UserCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserCircleIcon.js"(exports, module) {
- var React = require_react();
- function UserCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M17.982 18.725A7.488 7.488 0 0012 15.75a7.488 7.488 0 00-5.982 2.975m11.963 0a9 9 0 10-11.963 0m11.963 0A8.966 8.966 0 0112 21a8.966 8.966 0 01-5.982-2.275M15 9.75a3 3 0 11-6 0 3 3 0 016 0z"
- }));
- }
- var ForwardRef = React.forwardRef(UserCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_UserGroupIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserGroupIcon.js"(exports, module) {
- var React = require_react();
- function UserGroupIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M18 18.72a9.094 9.094 0 003.741-.479 3 3 0 00-4.682-2.72m.94 3.198l.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0112 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 016 18.719m12 0a5.971 5.971 0 00-.941-3.197m0 0A5.995 5.995 0 0012 12.75a5.995 5.995 0 00-5.058 2.772m0 0a3 3 0 00-4.681 2.72 8.986 8.986 0 003.74.477m.94-3.197a5.971 5.971 0 00-.94 3.197M15 6.75a3 3 0 11-6 0 3 3 0 016 0zm6 3a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0zm-13.5 0a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0z"
- }));
- }
- var ForwardRef = React.forwardRef(UserGroupIcon);
- module.exports = ForwardRef;
- }
-});
-var require_UserMinusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserMinusIcon.js"(exports, module) {
- var React = require_react();
- function UserMinusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M22 10.5h-6m-2.25-4.125a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zM4 19.235v-.11a6.375 6.375 0 0112.75 0v.109A12.318 12.318 0 0110.374 21c-2.331 0-4.512-.645-6.374-1.766z"
- }));
- }
- var ForwardRef = React.forwardRef(UserMinusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_UserPlusIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserPlusIcon.js"(exports, module) {
- var React = require_react();
- function UserPlusIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M19 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zM4 19.235v-.11a6.375 6.375 0 0112.75 0v.109A12.318 12.318 0 0110.374 21c-2.331 0-4.512-.645-6.374-1.766z"
- }));
- }
- var ForwardRef = React.forwardRef(UserPlusIcon);
- module.exports = ForwardRef;
- }
-});
-var require_UserIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserIcon.js"(exports, module) {
- var React = require_react();
- function UserIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"
- }));
- }
- var ForwardRef = React.forwardRef(UserIcon);
- module.exports = ForwardRef;
- }
-});
-var require_UsersIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UsersIcon.js"(exports, module) {
- var React = require_react();
- function UsersIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z"
- }));
- }
- var ForwardRef = React.forwardRef(UsersIcon);
- module.exports = ForwardRef;
- }
-});
-var require_VariableIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/VariableIcon.js"(exports, module) {
- var React = require_react();
- function VariableIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.745 3A23.933 23.933 0 003 12c0 3.183.62 6.22 1.745 9M19.5 3c.967 2.78 1.5 5.817 1.5 9s-.533 6.22-1.5 9M8.25 8.885l1.444-.89a.75.75 0 011.105.402l2.402 7.206a.75.75 0 001.104.401l1.445-.889m-8.25.75l.213.09a1.687 1.687 0 002.062-.617l4.45-6.676a1.688 1.688 0 012.062-.618l.213.09"
- }));
- }
- var ForwardRef = React.forwardRef(VariableIcon);
- module.exports = ForwardRef;
- }
-});
-var require_VideoCameraSlashIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/VideoCameraSlashIcon.js"(exports, module) {
- var React = require_react();
- function VideoCameraSlashIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M15.75 10.5l4.72-4.72a.75.75 0 011.28.53v11.38a.75.75 0 01-1.28.53l-4.72-4.72M12 18.75H4.5a2.25 2.25 0 01-2.25-2.25V9m12.841 9.091L16.5 19.5m-1.409-1.409c.407-.407.659-.97.659-1.591v-9a2.25 2.25 0 00-2.25-2.25h-9c-.621 0-1.184.252-1.591.659m12.182 12.182L2.909 5.909M1.5 4.5l1.409 1.409"
- }));
- }
- var ForwardRef = React.forwardRef(VideoCameraSlashIcon);
- module.exports = ForwardRef;
- }
-});
-var require_VideoCameraIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/VideoCameraIcon.js"(exports, module) {
- var React = require_react();
- function VideoCameraIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- d: "M15.75 10.5l4.72-4.72a.75.75 0 011.28.53v11.38a.75.75 0 01-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25h-9A2.25 2.25 0 002.25 7.5v9a2.25 2.25 0 002.25 2.25z"
- }));
- }
- var ForwardRef = React.forwardRef(VideoCameraIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ViewColumnsIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ViewColumnsIcon.js"(exports, module) {
- var React = require_react();
- function ViewColumnsIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9 4.5v15m6-15v15m-10.875 0h15.75c.621 0 1.125-.504 1.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125H4.125C3.504 4.5 3 5.004 3 5.625v12.75c0 .621.504 1.125 1.125 1.125z"
- }));
- }
- var ForwardRef = React.forwardRef(ViewColumnsIcon);
- module.exports = ForwardRef;
- }
-});
-var require_ViewfinderCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ViewfinderCircleIcon.js"(exports, module) {
- var React = require_react();
- function ViewfinderCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M7.5 3.75H6A2.25 2.25 0 003.75 6v1.5M16.5 3.75H18A2.25 2.25 0 0120.25 6v1.5m0 9V18A2.25 2.25 0 0118 20.25h-1.5m-9 0H6A2.25 2.25 0 013.75 18v-1.5M15 12a3 3 0 11-6 0 3 3 0 016 0z"
- }));
- }
- var ForwardRef = React.forwardRef(ViewfinderCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_WalletIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WalletIcon.js"(exports, module) {
- var React = require_react();
- function WalletIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21 12a2.25 2.25 0 00-2.25-2.25H15a3 3 0 11-6 0H5.25A2.25 2.25 0 003 12m18 0v6a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 18v-6m18 0V9M3 12V9m18 0a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 9m18 0V6a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 6v3"
- }));
- }
- var ForwardRef = React.forwardRef(WalletIcon);
- module.exports = ForwardRef;
- }
-});
-var require_WifiIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WifiIcon.js"(exports, module) {
- var React = require_react();
- function WifiIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M8.288 15.038a5.25 5.25 0 017.424 0M5.106 11.856c3.807-3.808 9.98-3.808 13.788 0M1.924 8.674c5.565-5.565 14.587-5.565 20.152 0M12.53 18.22l-.53.53-.53-.53a.75.75 0 011.06 0z"
- }));
- }
- var ForwardRef = React.forwardRef(WifiIcon);
- module.exports = ForwardRef;
- }
-});
-var require_WindowIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WindowIcon.js"(exports, module) {
- var React = require_react();
- function WindowIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M3 8.25V18a2.25 2.25 0 002.25 2.25h13.5A2.25 2.25 0 0021 18V8.25m-18 0V6a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 6v2.25m-18 0h18M5.25 6h.008v.008H5.25V6zM7.5 6h.008v.008H7.5V6zm2.25 0h.008v.008H9.75V6z"
- }));
- }
- var ForwardRef = React.forwardRef(WindowIcon);
- module.exports = ForwardRef;
- }
-});
-var require_WrenchScrewdriverIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WrenchScrewdriverIcon.js"(exports, module) {
- var React = require_react();
- function WrenchScrewdriverIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M11.42 15.17L17.25 21A2.652 2.652 0 0021 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437l1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(WrenchScrewdriverIcon);
- module.exports = ForwardRef;
- }
-});
-var require_WrenchIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WrenchIcon.js"(exports, module) {
- var React = require_react();
- function WrenchIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M21.75 6.75a4.5 4.5 0 01-4.884 4.484c-1.076-.091-2.264.071-2.95.904l-7.152 8.684a2.548 2.548 0 11-3.586-3.586l8.684-7.152c.833-.686.995-1.874.904-2.95a4.5 4.5 0 016.336-4.486l-3.276 3.276a3.004 3.004 0 002.25 2.25l3.276-3.276c.256.565.398 1.192.398 1.852z"
- }), /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M4.867 19.125h.008v.008h-.008v-.008z"
- }));
- }
- var ForwardRef = React.forwardRef(WrenchIcon);
- module.exports = ForwardRef;
- }
-});
-var require_XCircleIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/XCircleIcon.js"(exports, module) {
- var React = require_react();
- function XCircleIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M9.75 9.75l4.5 4.5m0-4.5l-4.5 4.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
- }));
- }
- var ForwardRef = React.forwardRef(XCircleIcon);
- module.exports = ForwardRef;
- }
-});
-var require_XMarkIcon = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/XMarkIcon.js"(exports, module) {
- var React = require_react();
- function XMarkIcon(_a, svgRef) {
- var _b = _a, {
- title,
- titleId
- } = _b, props = __objRest(_b, [
- "title",
- "titleId"
- ]);
- return /* @__PURE__ */ React.createElement("svg", Object.assign({
- xmlns: "http://www.w3.org/2000/svg",
- fill: "none",
- viewBox: "0 0 24 24",
- strokeWidth: 1.5,
- stroke: "currentColor",
- "aria-hidden": "true",
- ref: svgRef,
- "aria-labelledby": titleId
- }, props), title ? /* @__PURE__ */ React.createElement("title", {
- id: titleId
- }, title) : null, /* @__PURE__ */ React.createElement("path", {
- strokeLinecap: "round",
- strokeLinejoin: "round",
- d: "M6 18L18 6M6 6l12 12"
- }));
- }
- var ForwardRef = React.forwardRef(XMarkIcon);
- module.exports = ForwardRef;
- }
-});
-var require_outline = __commonJS2({
- "../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/index.js"(exports, module) {
- module.exports.AcademicCapIcon = require_AcademicCapIcon();
- module.exports.AdjustmentsHorizontalIcon = require_AdjustmentsHorizontalIcon();
- module.exports.AdjustmentsVerticalIcon = require_AdjustmentsVerticalIcon();
- module.exports.ArchiveBoxArrowDownIcon = require_ArchiveBoxArrowDownIcon();
- module.exports.ArchiveBoxXMarkIcon = require_ArchiveBoxXMarkIcon();
- module.exports.ArchiveBoxIcon = require_ArchiveBoxIcon();
- module.exports.ArrowDownCircleIcon = require_ArrowDownCircleIcon();
- module.exports.ArrowDownLeftIcon = require_ArrowDownLeftIcon();
- module.exports.ArrowDownOnSquareStackIcon = require_ArrowDownOnSquareStackIcon();
- module.exports.ArrowDownOnSquareIcon = require_ArrowDownOnSquareIcon();
- module.exports.ArrowDownRightIcon = require_ArrowDownRightIcon();
- module.exports.ArrowDownTrayIcon = require_ArrowDownTrayIcon();
- module.exports.ArrowDownIcon = require_ArrowDownIcon();
- module.exports.ArrowLeftCircleIcon = require_ArrowLeftCircleIcon();
- module.exports.ArrowLeftOnRectangleIcon = require_ArrowLeftOnRectangleIcon();
- module.exports.ArrowLeftIcon = require_ArrowLeftIcon();
- module.exports.ArrowLongDownIcon = require_ArrowLongDownIcon();
- module.exports.ArrowLongLeftIcon = require_ArrowLongLeftIcon();
- module.exports.ArrowLongRightIcon = require_ArrowLongRightIcon();
- module.exports.ArrowLongUpIcon = require_ArrowLongUpIcon();
- module.exports.ArrowPathRoundedSquareIcon = require_ArrowPathRoundedSquareIcon();
- module.exports.ArrowPathIcon = require_ArrowPathIcon();
- module.exports.ArrowRightCircleIcon = require_ArrowRightCircleIcon();
- module.exports.ArrowRightOnRectangleIcon = require_ArrowRightOnRectangleIcon();
- module.exports.ArrowRightIcon = require_ArrowRightIcon();
- module.exports.ArrowSmallDownIcon = require_ArrowSmallDownIcon();
- module.exports.ArrowSmallLeftIcon = require_ArrowSmallLeftIcon();
- module.exports.ArrowSmallRightIcon = require_ArrowSmallRightIcon();
- module.exports.ArrowSmallUpIcon = require_ArrowSmallUpIcon();
- module.exports.ArrowTopRightOnSquareIcon = require_ArrowTopRightOnSquareIcon();
- module.exports.ArrowTrendingDownIcon = require_ArrowTrendingDownIcon();
- module.exports.ArrowTrendingUpIcon = require_ArrowTrendingUpIcon();
- module.exports.ArrowUpCircleIcon = require_ArrowUpCircleIcon();
- module.exports.ArrowUpLeftIcon = require_ArrowUpLeftIcon();
- module.exports.ArrowUpOnSquareStackIcon = require_ArrowUpOnSquareStackIcon();
- module.exports.ArrowUpOnSquareIcon = require_ArrowUpOnSquareIcon();
- module.exports.ArrowUpRightIcon = require_ArrowUpRightIcon();
- module.exports.ArrowUpTrayIcon = require_ArrowUpTrayIcon();
- module.exports.ArrowUpIcon = require_ArrowUpIcon();
- module.exports.ArrowUturnDownIcon = require_ArrowUturnDownIcon();
- module.exports.ArrowUturnLeftIcon = require_ArrowUturnLeftIcon();
- module.exports.ArrowUturnRightIcon = require_ArrowUturnRightIcon();
- module.exports.ArrowUturnUpIcon = require_ArrowUturnUpIcon();
- module.exports.ArrowsPointingInIcon = require_ArrowsPointingInIcon();
- module.exports.ArrowsPointingOutIcon = require_ArrowsPointingOutIcon();
- module.exports.ArrowsRightLeftIcon = require_ArrowsRightLeftIcon();
- module.exports.ArrowsUpDownIcon = require_ArrowsUpDownIcon();
- module.exports.AtSymbolIcon = require_AtSymbolIcon();
- module.exports.BackspaceIcon = require_BackspaceIcon();
- module.exports.BackwardIcon = require_BackwardIcon();
- module.exports.BanknotesIcon = require_BanknotesIcon();
- module.exports.Bars2Icon = require_Bars2Icon();
- module.exports.Bars3BottomLeftIcon = require_Bars3BottomLeftIcon();
- module.exports.Bars3BottomRightIcon = require_Bars3BottomRightIcon();
- module.exports.Bars3CenterLeftIcon = require_Bars3CenterLeftIcon();
- module.exports.Bars3Icon = require_Bars3Icon();
- module.exports.Bars4Icon = require_Bars4Icon();
- module.exports.BarsArrowDownIcon = require_BarsArrowDownIcon();
- module.exports.BarsArrowUpIcon = require_BarsArrowUpIcon();
- module.exports.Battery0Icon = require_Battery0Icon();
- module.exports.Battery100Icon = require_Battery100Icon();
- module.exports.Battery50Icon = require_Battery50Icon();
- module.exports.BeakerIcon = require_BeakerIcon();
- module.exports.BellAlertIcon = require_BellAlertIcon();
- module.exports.BellSlashIcon = require_BellSlashIcon();
- module.exports.BellSnoozeIcon = require_BellSnoozeIcon();
- module.exports.BellIcon = require_BellIcon();
- module.exports.BoltSlashIcon = require_BoltSlashIcon();
- module.exports.BoltIcon = require_BoltIcon();
- module.exports.BookOpenIcon = require_BookOpenIcon();
- module.exports.BookmarkSlashIcon = require_BookmarkSlashIcon();
- module.exports.BookmarkSquareIcon = require_BookmarkSquareIcon();
- module.exports.BookmarkIcon = require_BookmarkIcon();
- module.exports.BriefcaseIcon = require_BriefcaseIcon();
- module.exports.BugAntIcon = require_BugAntIcon();
- module.exports.BuildingLibraryIcon = require_BuildingLibraryIcon();
- module.exports.BuildingOffice2Icon = require_BuildingOffice2Icon();
- module.exports.BuildingOfficeIcon = require_BuildingOfficeIcon();
- module.exports.BuildingStorefrontIcon = require_BuildingStorefrontIcon();
- module.exports.CakeIcon = require_CakeIcon();
- module.exports.CalculatorIcon = require_CalculatorIcon();
- module.exports.CalendarDaysIcon = require_CalendarDaysIcon();
- module.exports.CalendarIcon = require_CalendarIcon();
- module.exports.CameraIcon = require_CameraIcon();
- module.exports.ChartBarSquareIcon = require_ChartBarSquareIcon();
- module.exports.ChartBarIcon = require_ChartBarIcon();
- module.exports.ChartPieIcon = require_ChartPieIcon();
- module.exports.ChatBubbleBottomCenterTextIcon = require_ChatBubbleBottomCenterTextIcon();
- module.exports.ChatBubbleBottomCenterIcon = require_ChatBubbleBottomCenterIcon();
- module.exports.ChatBubbleLeftEllipsisIcon = require_ChatBubbleLeftEllipsisIcon();
- module.exports.ChatBubbleLeftRightIcon = require_ChatBubbleLeftRightIcon();
- module.exports.ChatBubbleLeftIcon = require_ChatBubbleLeftIcon();
- module.exports.ChatBubbleOvalLeftEllipsisIcon = require_ChatBubbleOvalLeftEllipsisIcon();
- module.exports.ChatBubbleOvalLeftIcon = require_ChatBubbleOvalLeftIcon();
- module.exports.CheckBadgeIcon = require_CheckBadgeIcon();
- module.exports.CheckCircleIcon = require_CheckCircleIcon();
- module.exports.CheckIcon = require_CheckIcon();
- module.exports.ChevronDoubleDownIcon = require_ChevronDoubleDownIcon();
- module.exports.ChevronDoubleLeftIcon = require_ChevronDoubleLeftIcon();
- module.exports.ChevronDoubleRightIcon = require_ChevronDoubleRightIcon();
- module.exports.ChevronDoubleUpIcon = require_ChevronDoubleUpIcon();
- module.exports.ChevronDownIcon = require_ChevronDownIcon();
- module.exports.ChevronLeftIcon = require_ChevronLeftIcon();
- module.exports.ChevronRightIcon = require_ChevronRightIcon();
- module.exports.ChevronUpDownIcon = require_ChevronUpDownIcon();
- module.exports.ChevronUpIcon = require_ChevronUpIcon();
- module.exports.CircleStackIcon = require_CircleStackIcon();
- module.exports.ClipboardDocumentCheckIcon = require_ClipboardDocumentCheckIcon();
- module.exports.ClipboardDocumentListIcon = require_ClipboardDocumentListIcon();
- module.exports.ClipboardDocumentIcon = require_ClipboardDocumentIcon();
- module.exports.ClipboardIcon = require_ClipboardIcon();
- module.exports.ClockIcon = require_ClockIcon();
- module.exports.CloudArrowDownIcon = require_CloudArrowDownIcon();
- module.exports.CloudArrowUpIcon = require_CloudArrowUpIcon();
- module.exports.CloudIcon = require_CloudIcon();
- module.exports.CodeBracketSquareIcon = require_CodeBracketSquareIcon();
- module.exports.CodeBracketIcon = require_CodeBracketIcon();
- module.exports.Cog6ToothIcon = require_Cog6ToothIcon();
- module.exports.Cog8ToothIcon = require_Cog8ToothIcon();
- module.exports.CogIcon = require_CogIcon();
- module.exports.CommandLineIcon = require_CommandLineIcon();
- module.exports.ComputerDesktopIcon = require_ComputerDesktopIcon();
- module.exports.CpuChipIcon = require_CpuChipIcon();
- module.exports.CreditCardIcon = require_CreditCardIcon();
- module.exports.CubeTransparentIcon = require_CubeTransparentIcon();
- module.exports.CubeIcon = require_CubeIcon();
- module.exports.CurrencyBangladeshiIcon = require_CurrencyBangladeshiIcon();
- module.exports.CurrencyDollarIcon = require_CurrencyDollarIcon();
- module.exports.CurrencyEuroIcon = require_CurrencyEuroIcon();
- module.exports.CurrencyPoundIcon = require_CurrencyPoundIcon();
- module.exports.CurrencyRupeeIcon = require_CurrencyRupeeIcon();
- module.exports.CurrencyYenIcon = require_CurrencyYenIcon();
- module.exports.CursorArrowRaysIcon = require_CursorArrowRaysIcon();
- module.exports.CursorArrowRippleIcon = require_CursorArrowRippleIcon();
- module.exports.DevicePhoneMobileIcon = require_DevicePhoneMobileIcon();
- module.exports.DeviceTabletIcon = require_DeviceTabletIcon();
- module.exports.DocumentArrowDownIcon = require_DocumentArrowDownIcon();
- module.exports.DocumentArrowUpIcon = require_DocumentArrowUpIcon();
- module.exports.DocumentChartBarIcon = require_DocumentChartBarIcon();
- module.exports.DocumentCheckIcon = require_DocumentCheckIcon();
- module.exports.DocumentDuplicateIcon = require_DocumentDuplicateIcon();
- module.exports.DocumentMagnifyingGlassIcon = require_DocumentMagnifyingGlassIcon();
- module.exports.DocumentMinusIcon = require_DocumentMinusIcon();
- module.exports.DocumentPlusIcon = require_DocumentPlusIcon();
- module.exports.DocumentTextIcon = require_DocumentTextIcon();
- module.exports.DocumentIcon = require_DocumentIcon();
- module.exports.EllipsisHorizontalCircleIcon = require_EllipsisHorizontalCircleIcon();
- module.exports.EllipsisHorizontalIcon = require_EllipsisHorizontalIcon();
- module.exports.EllipsisVerticalIcon = require_EllipsisVerticalIcon();
- module.exports.EnvelopeOpenIcon = require_EnvelopeOpenIcon();
- module.exports.EnvelopeIcon = require_EnvelopeIcon();
- module.exports.ExclamationCircleIcon = require_ExclamationCircleIcon();
- module.exports.ExclamationTriangleIcon = require_ExclamationTriangleIcon();
- module.exports.EyeDropperIcon = require_EyeDropperIcon();
- module.exports.EyeSlashIcon = require_EyeSlashIcon();
- module.exports.EyeIcon = require_EyeIcon();
- module.exports.FaceFrownIcon = require_FaceFrownIcon();
- module.exports.FaceSmileIcon = require_FaceSmileIcon();
- module.exports.FilmIcon = require_FilmIcon();
- module.exports.FingerPrintIcon = require_FingerPrintIcon();
- module.exports.FireIcon = require_FireIcon();
- module.exports.FlagIcon = require_FlagIcon();
- module.exports.FolderArrowDownIcon = require_FolderArrowDownIcon();
- module.exports.FolderMinusIcon = require_FolderMinusIcon();
- module.exports.FolderOpenIcon = require_FolderOpenIcon();
- module.exports.FolderPlusIcon = require_FolderPlusIcon();
- module.exports.FolderIcon = require_FolderIcon();
- module.exports.ForwardIcon = require_ForwardIcon();
- module.exports.FunnelIcon = require_FunnelIcon();
- module.exports.GifIcon = require_GifIcon();
- module.exports.GiftTopIcon = require_GiftTopIcon();
- module.exports.GiftIcon = require_GiftIcon();
- module.exports.GlobeAltIcon = require_GlobeAltIcon();
- module.exports.GlobeAmericasIcon = require_GlobeAmericasIcon();
- module.exports.GlobeAsiaAustraliaIcon = require_GlobeAsiaAustraliaIcon();
- module.exports.GlobeEuropeAfricaIcon = require_GlobeEuropeAfricaIcon();
- module.exports.HandRaisedIcon = require_HandRaisedIcon();
- module.exports.HandThumbDownIcon = require_HandThumbDownIcon();
- module.exports.HandThumbUpIcon = require_HandThumbUpIcon();
- module.exports.HashtagIcon = require_HashtagIcon();
- module.exports.HeartIcon = require_HeartIcon();
- module.exports.HomeModernIcon = require_HomeModernIcon();
- module.exports.HomeIcon = require_HomeIcon();
- module.exports.IdentificationIcon = require_IdentificationIcon();
- module.exports.InboxArrowDownIcon = require_InboxArrowDownIcon();
- module.exports.InboxStackIcon = require_InboxStackIcon();
- module.exports.InboxIcon = require_InboxIcon();
- module.exports.InformationCircleIcon = require_InformationCircleIcon();
- module.exports.KeyIcon = require_KeyIcon();
- module.exports.LanguageIcon = require_LanguageIcon();
- module.exports.LifebuoyIcon = require_LifebuoyIcon();
- module.exports.LightBulbIcon = require_LightBulbIcon();
- module.exports.LinkIcon = require_LinkIcon();
- module.exports.ListBulletIcon = require_ListBulletIcon();
- module.exports.LockClosedIcon = require_LockClosedIcon();
- module.exports.LockOpenIcon = require_LockOpenIcon();
- module.exports.MagnifyingGlassCircleIcon = require_MagnifyingGlassCircleIcon();
- module.exports.MagnifyingGlassMinusIcon = require_MagnifyingGlassMinusIcon();
- module.exports.MagnifyingGlassPlusIcon = require_MagnifyingGlassPlusIcon();
- module.exports.MagnifyingGlassIcon = require_MagnifyingGlassIcon();
- module.exports.MapPinIcon = require_MapPinIcon();
- module.exports.MapIcon = require_MapIcon();
- module.exports.MegaphoneIcon = require_MegaphoneIcon();
- module.exports.MicrophoneIcon = require_MicrophoneIcon();
- module.exports.MinusCircleIcon = require_MinusCircleIcon();
- module.exports.MinusSmallIcon = require_MinusSmallIcon();
- module.exports.MinusIcon = require_MinusIcon();
- module.exports.MoonIcon = require_MoonIcon();
- module.exports.MusicalNoteIcon = require_MusicalNoteIcon();
- module.exports.NewspaperIcon = require_NewspaperIcon();
- module.exports.NoSymbolIcon = require_NoSymbolIcon();
- module.exports.PaintBrushIcon = require_PaintBrushIcon();
- module.exports.PaperAirplaneIcon = require_PaperAirplaneIcon();
- module.exports.PaperClipIcon = require_PaperClipIcon();
- module.exports.PauseCircleIcon = require_PauseCircleIcon();
- module.exports.PauseIcon = require_PauseIcon();
- module.exports.PencilSquareIcon = require_PencilSquareIcon();
- module.exports.PencilIcon = require_PencilIcon();
- module.exports.PhoneArrowDownLeftIcon = require_PhoneArrowDownLeftIcon();
- module.exports.PhoneArrowUpRightIcon = require_PhoneArrowUpRightIcon();
- module.exports.PhoneXMarkIcon = require_PhoneXMarkIcon();
- module.exports.PhoneIcon = require_PhoneIcon();
- module.exports.PhotoIcon = require_PhotoIcon();
- module.exports.PlayCircleIcon = require_PlayCircleIcon();
- module.exports.PlayPauseIcon = require_PlayPauseIcon();
- module.exports.PlayIcon = require_PlayIcon();
- module.exports.PlusCircleIcon = require_PlusCircleIcon();
- module.exports.PlusSmallIcon = require_PlusSmallIcon();
- module.exports.PlusIcon = require_PlusIcon();
- module.exports.PowerIcon = require_PowerIcon();
- module.exports.PresentationChartBarIcon = require_PresentationChartBarIcon();
- module.exports.PresentationChartLineIcon = require_PresentationChartLineIcon();
- module.exports.PrinterIcon = require_PrinterIcon();
- module.exports.PuzzlePieceIcon = require_PuzzlePieceIcon();
- module.exports.QrCodeIcon = require_QrCodeIcon();
- module.exports.QuestionMarkCircleIcon = require_QuestionMarkCircleIcon();
- module.exports.QueueListIcon = require_QueueListIcon();
- module.exports.RadioIcon = require_RadioIcon();
- module.exports.ReceiptPercentIcon = require_ReceiptPercentIcon();
- module.exports.ReceiptRefundIcon = require_ReceiptRefundIcon();
- module.exports.RectangleGroupIcon = require_RectangleGroupIcon();
- module.exports.RectangleStackIcon = require_RectangleStackIcon();
- module.exports.RocketLaunchIcon = require_RocketLaunchIcon();
- module.exports.RssIcon = require_RssIcon();
- module.exports.ScaleIcon = require_ScaleIcon();
- module.exports.ScissorsIcon = require_ScissorsIcon();
- module.exports.ServerStackIcon = require_ServerStackIcon();
- module.exports.ServerIcon = require_ServerIcon();
- module.exports.ShareIcon = require_ShareIcon();
- module.exports.ShieldCheckIcon = require_ShieldCheckIcon();
- module.exports.ShieldExclamationIcon = require_ShieldExclamationIcon();
- module.exports.ShoppingBagIcon = require_ShoppingBagIcon();
- module.exports.ShoppingCartIcon = require_ShoppingCartIcon();
- module.exports.SignalSlashIcon = require_SignalSlashIcon();
- module.exports.SignalIcon = require_SignalIcon();
- module.exports.SparklesIcon = require_SparklesIcon();
- module.exports.SpeakerWaveIcon = require_SpeakerWaveIcon();
- module.exports.SpeakerXMarkIcon = require_SpeakerXMarkIcon();
- module.exports.Square2StackIcon = require_Square2StackIcon();
- module.exports.Square3Stack3DIcon = require_Square3Stack3DIcon();
- module.exports.Squares2X2Icon = require_Squares2X2Icon();
- module.exports.SquaresPlusIcon = require_SquaresPlusIcon();
- module.exports.StarIcon = require_StarIcon();
- module.exports.StopCircleIcon = require_StopCircleIcon();
- module.exports.StopIcon = require_StopIcon();
- module.exports.SunIcon = require_SunIcon();
- module.exports.SwatchIcon = require_SwatchIcon();
- module.exports.TableCellsIcon = require_TableCellsIcon();
- module.exports.TagIcon = require_TagIcon();
- module.exports.TicketIcon = require_TicketIcon();
- module.exports.TrashIcon = require_TrashIcon();
- module.exports.TrophyIcon = require_TrophyIcon();
- module.exports.TruckIcon = require_TruckIcon();
- module.exports.TvIcon = require_TvIcon();
- module.exports.UserCircleIcon = require_UserCircleIcon();
- module.exports.UserGroupIcon = require_UserGroupIcon();
- module.exports.UserMinusIcon = require_UserMinusIcon();
- module.exports.UserPlusIcon = require_UserPlusIcon();
- module.exports.UserIcon = require_UserIcon();
- module.exports.UsersIcon = require_UsersIcon();
- module.exports.VariableIcon = require_VariableIcon();
- module.exports.VideoCameraSlashIcon = require_VideoCameraSlashIcon();
- module.exports.VideoCameraIcon = require_VideoCameraIcon();
- module.exports.ViewColumnsIcon = require_ViewColumnsIcon();
- module.exports.ViewfinderCircleIcon = require_ViewfinderCircleIcon();
- module.exports.WalletIcon = require_WalletIcon();
- module.exports.WifiIcon = require_WifiIcon();
- module.exports.WindowIcon = require_WindowIcon();
- module.exports.WrenchScrewdriverIcon = require_WrenchScrewdriverIcon();
- module.exports.WrenchIcon = require_WrenchIcon();
- module.exports.XCircleIcon = require_XCircleIcon();
- module.exports.XMarkIcon = require_XMarkIcon();
- }
-});
function memoryMap(backend = /* @__PURE__ */ new Map()) {
const obs = new EventTarget();
const theMemoryMap = {
@@ -23848,34 +12328,6 @@ function useLang(initial2) {
return useLocalStorage(langPreferenceKey, defaultValue);
}
var storage2 = memoryMap();
-function useMemoryStorage(key, defaultValue) {
- const [storedValue, setStoredValue] = p3(
- () => {
- const prev = storage2.get(key);
- return prev === void 0 ? defaultValue : prev;
- }
- );
- h2(() => {
- return storage2.onUpdate(key, () => {
- const newValue = storage2.get(key);
- setStoredValue(newValue === void 0 ? defaultValue : newValue);
- });
- }, [key]);
- const setValue = (value) => {
- if (value === void 0) {
- storage2.delete(key);
- } else {
- storage2.set(key, value);
- }
- };
- return {
- value: storedValue,
- update: setValue,
- reset: () => {
- setValue(defaultValue);
- }
- };
-}
var storage3 = memoryMap();
var NOTIFICATION_KEY = "notification";
function notify(notif) {
@@ -24348,7 +12800,7 @@ function validateURL(baseUrl, endpoint) {
return void 0;
}
}
-var logger9 = new Logger("browserHttpLib");
+var logger10 = new Logger("browserHttpLib");
var BrowserHttpLib = class {
constructor() {
this.throttle = new RequestThrottler();
@@ -24377,7 +12829,7 @@ var BrowserHttpLib = class {
return new Promise((resolve, reject) => {
const myRequest = new XMLHttpRequest();
myRequest.onerror = (e22) => {
- logger9.error("http request error");
+ logger10.error("http request error");
reject(
TalerError.fromDetail(
TalerErrorCode.WALLET_NETWORK_ERROR,
@@ -24430,22 +12882,24 @@ var BrowserHttpLib = class {
const td = new TextDecoder();
return td.decode(myRequest.response);
});
+ let responseJson = void 0;
const makeJson = () => __async(this, null, function* () {
- let responseJson;
- try {
- const td = new TextDecoder();
- const responseString = td.decode(myRequest.response);
- responseJson = JSON.parse(responseString);
- } catch (e32) {
- throw TalerError.fromDetail(
- TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,
- {
- requestUrl,
- requestMethod,
- httpStatusCode: myRequest.status
- },
- "Invalid JSON from HTTP response"
- );
+ if (responseJson === void 0) {
+ try {
+ const td = new TextDecoder();
+ const responseString = td.decode(myRequest.response);
+ responseJson = JSON.parse(responseString);
+ } catch (e32) {
+ throw TalerError.fromDetail(
+ TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,
+ {
+ requestUrl,
+ requestMethod,
+ httpStatusCode: myRequest.status
+ },
+ "Invalid JSON from HTTP response"
+ );
+ }
}
if (responseJson === null || typeof responseJson !== "object") {
throw TalerError.fromDetail(
@@ -24467,7 +12921,7 @@ var BrowserHttpLib = class {
const parts = line.split(": ");
const headerName = parts.shift();
if (!headerName) {
- logger9.warn("skipping invalid header");
+ logger10.warn("skipping invalid header");
return;
}
const value = parts.join(": ");
@@ -24568,8 +13022,8 @@ function compose(hook, viewMap) {
return ComposedComponent;
}
return (p4) => {
- const h32 = withHook(() => hook(p4));
- return h32();
+ const h36 = withHook(() => hook(p4));
+ return h36();
};
}
function saveVNodeForInspection(obj) {
@@ -24724,7 +13178,7 @@ function LangSelector({ supportedLangs }) {
"aria-expanded": "true",
"aria-labelledby": "listbox-label",
onClick: () => {
- setHidden((h32) => !h32);
+ setHidden((h36) => !h36);
}
},
/* @__PURE__ */ h("span", { class: "flex items-center" }, /* @__PURE__ */ h("img", { alt: "language", class: "h-5 w-5 flex-shrink-0 rounded-full", src: lang_default }), /* @__PURE__ */ h("span", { class: "ml-3 block truncate" }, getLangName(lang))),
@@ -24775,8 +13229,11 @@ function Header({ title, iconLinkURL, sites, supportedLangs, onLogout, children
alt: "GNU Taler",
style: { height: "1.5rem", margin: ".5rem" }
}
- ))), /* @__PURE__ */ h("span", { class: "flex items-center text-white text-lg font-bold ml-4" }, title)), /* @__PURE__ */ h("div", { class: "block flex-1 ml-6 " }, sites.length !== 0 && /* @__PURE__ */ h("div", { class: "flex flex-1 space-x-4" }, sites.map(([name, url]) => {
- return /* @__PURE__ */ h("a", { href: url, class: "text-white hover:bg-indigo-500 hover:bg-opacity-75 rounded-md py-2 px-3 text-sm font-medium" }, name);
+ ))), /* @__PURE__ */ h("span", { class: "flex items-center text-white text-lg font-bold ml-4" }, title)), /* @__PURE__ */ h("div", { class: "flex-1 ml-6 " }, /* @__PURE__ */ h("div", { class: "flex flex-1 space-x-4" }, sites.map((site) => {
+ if (site.length !== 2)
+ return;
+ const [name, url] = site;
+ return /* @__PURE__ */ h("a", { href: url, class: "hidden sm:block text-white hover:bg-indigo-500 hover:bg-opacity-75 rounded-md py-2 px-3 text-sm font-medium" }, name);
}))), /* @__PURE__ */ h("div", { class: "flex justify-end" }, /* @__PURE__ */ h(
"button",
{
@@ -24829,21 +13286,23 @@ function Header({ title, iconLinkURL, sites, supportedLangs, onLogout, children
},
/* @__PURE__ */ h("svg", { class: "h-6 w-6 shrink-0 text-indigo-600", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" })),
/* @__PURE__ */ h(i18n2.Translate, null, "Log out")
- )) : void 0, /* @__PURE__ */ h("li", null, /* @__PURE__ */ h(LangSelector, { supportedLangs })), children, sites.length !== 0 && /* @__PURE__ */ h("li", { class: "sm:hidden" }, /* @__PURE__ */ h("div", { class: "text-xs font-semibold leading-6 text-gray-400" }, /* @__PURE__ */ h(i18n2.Translate, null, "Sites")), /* @__PURE__ */ h("ul", { role: "list", class: "space-y-1" }, sites.map(([name, url]) => {
+ )) : void 0, /* @__PURE__ */ h("li", null, /* @__PURE__ */ h(LangSelector, { supportedLangs })), children, /* @__PURE__ */ h("li", { class: "block sm:hidden" }, /* @__PURE__ */ h("div", { class: "text-xs font-semibold leading-6 text-gray-400" }, /* @__PURE__ */ h(i18n2.Translate, null, "Sites")), /* @__PURE__ */ h("ul", { role: "list", class: "space-y-1" }, sites.map(([name, url]) => {
return /* @__PURE__ */ h("li", null, /* @__PURE__ */ h("a", { href: url, target: "_blank", rel: "noopener noreferrer", class: "text-gray-700 hover:text-indigo-600 hover:bg-gray-100 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold" }, /* @__PURE__ */ h("span", { class: "flex h-6 w-6 shrink-0 items-center justify-center rounded-lg border text-[0.625rem] font-medium bg-white text-gray-400 border-gray-200 group-hover:border-indigo-600 group-hover:text-indigo-600" }, ">"), /* @__PURE__ */ h("span", { class: "truncate" }, name)));
})))))))))))
));
}
-function Footer({ testingUrl, VERSION: VERSION2, GIT_HASH: GIT_HASH2 }) {
+function Footer({ testingUrlKey, VERSION: VERSION2, GIT_HASH: GIT_HASH2 }) {
+ var _a;
const { i18n: i18n2 } = useTranslationContext();
+ const testingUrl = testingUrlKey && typeof localStorage !== "undefined" && localStorage.getItem(testingUrlKey) ? (_a = localStorage.getItem(testingUrlKey)) != null ? _a : void 0 : void 0;
const versionText2 = VERSION2 ? GIT_HASH2 ? /* @__PURE__ */ h("a", { href: `https://git.taler.net/wallet-core.git/tree/?id=${GIT_HASH2}`, target: "_blank", rel: "noreferrer noopener" }, "Version ", VERSION2, " (", GIT_HASH2.substring(0, 8), ")") : VERSION2 : "";
- return /* @__PURE__ */ h("footer", { class: "bottom-4 my-4 mx-8 bg-slate-200" }, /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-400" }, /* @__PURE__ */ h(i18n2.Translate, null, "Learn more about ", /* @__PURE__ */ h("a", { target: "_blank", rel: "noreferrer noopener", class: "font-semibold text-gray-500 hover:text-gray-400", href: "https://taler.net" }, "GNU Taler")))), /* @__PURE__ */ h("div", { style: "flex-grow:1" }), /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-400" }, "Copyright \xA9 2014\u20142023 Taler Systems SA. ", versionText2, " "), testingUrl && /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-300" }, "Testing with ", testingUrl, " ", /* @__PURE__ */ h(
+ return /* @__PURE__ */ h("footer", { class: "bottom-4 my-4 mx-8 bg-slate-200" }, /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-400" }, /* @__PURE__ */ h(i18n2.Translate, null, "Learn more about ", /* @__PURE__ */ h("a", { target: "_blank", rel: "noreferrer noopener", class: "font-semibold text-gray-500 hover:text-gray-400", href: "https://taler.net" }, "GNU Taler")))), /* @__PURE__ */ h("div", { style: "flex-grow:1" }), /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-400" }, "Copyright \xA9 2014\u20142023 Taler Systems SA. ", versionText2, " "), testingUrlKey && testingUrl && /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-300" }, "Testing with ", testingUrl, " ", /* @__PURE__ */ h(
"a",
{
href: "",
onClick: (e22) => {
e22.preventDefault();
- localStorage.removeItem("bank-base-url");
+ localStorage.removeItem(testingUrlKey);
window.location.reload();
}
},
@@ -24881,8 +13340,6 @@ function GlobalNotificationsBanner() {
}
}));
}
-var FormContext = B({});
-var import_outline = __toESM2(require_outline(), 1);
function toInteger(dirtyNumber) {
if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
return NaN;
@@ -24901,11 +13358,11 @@ function requiredArgs(required, args) {
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof = function _typeof362(obj2) {
+ _typeof = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof = function _typeof362(obj2) {
+ _typeof = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
@@ -24926,10 +13383,109 @@ function toDate(argument) {
return /* @__PURE__ */ new Date(NaN);
}
}
+function addDays(dirtyDate, dirtyAmount) {
+ requiredArgs(2, arguments);
+ var date = toDate(dirtyDate);
+ var amount = toInteger(dirtyAmount);
+ if (isNaN(amount)) {
+ return /* @__PURE__ */ new Date(NaN);
+ }
+ if (!amount) {
+ return date;
+ }
+ date.setDate(date.getDate() + amount);
+ return date;
+}
+function addMonths(dirtyDate, dirtyAmount) {
+ requiredArgs(2, arguments);
+ var date = toDate(dirtyDate);
+ var amount = toInteger(dirtyAmount);
+ if (isNaN(amount)) {
+ return /* @__PURE__ */ new Date(NaN);
+ }
+ if (!amount) {
+ return date;
+ }
+ var dayOfMonth = date.getDate();
+ var endOfDesiredMonth = new Date(date.getTime());
+ endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);
+ var daysInMonth = endOfDesiredMonth.getDate();
+ if (dayOfMonth >= daysInMonth) {
+ return endOfDesiredMonth;
+ } else {
+ date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);
+ return date;
+ }
+}
+function _typeof2(obj) {
+ "@babel/helpers - typeof";
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof2 = function _typeof382(obj2) {
+ return typeof obj2;
+ };
+ } else {
+ _typeof2 = function _typeof382(obj2) {
+ return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
+ };
+ }
+ return _typeof2(obj);
+}
+function add2(dirtyDate, duration) {
+ requiredArgs(2, arguments);
+ if (!duration || _typeof2(duration) !== "object")
+ return /* @__PURE__ */ new Date(NaN);
+ var years = duration.years ? toInteger(duration.years) : 0;
+ var months = duration.months ? toInteger(duration.months) : 0;
+ var weeks = duration.weeks ? toInteger(duration.weeks) : 0;
+ var days = duration.days ? toInteger(duration.days) : 0;
+ var hours = duration.hours ? toInteger(duration.hours) : 0;
+ var minutes = duration.minutes ? toInteger(duration.minutes) : 0;
+ var seconds = duration.seconds ? toInteger(duration.seconds) : 0;
+ var date = toDate(dirtyDate);
+ var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date;
+ var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;
+ var minutesToAdd = minutes + hours * 60;
+ var secondsToAdd = seconds + minutesToAdd * 60;
+ var msToAdd = secondsToAdd * 1e3;
+ var finalDate = new Date(dateWithDays.getTime() + msToAdd);
+ return finalDate;
+}
+function addMilliseconds(dirtyDate, dirtyAmount) {
+ requiredArgs(2, arguments);
+ var timestamp = toDate(dirtyDate).getTime();
+ var amount = toInteger(dirtyAmount);
+ return new Date(timestamp + amount);
+}
var defaultOptions = {};
function getDefaultOptions() {
return defaultOptions;
}
+function startOfWeek(dirtyDate, options) {
+ var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
+ requiredArgs(1, arguments);
+ var defaultOptions22 = getDefaultOptions();
+ var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions22.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions22.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
+ if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
+ throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
+ }
+ var date = toDate(dirtyDate);
+ var day = date.getDay();
+ var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
+ date.setDate(date.getDate() - diff);
+ date.setHours(0, 0, 0, 0);
+ return date;
+}
+function getTimezoneOffsetInMilliseconds(date) {
+ var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
+ utcDate.setUTCFullYear(date.getFullYear());
+ return date.getTime() - utcDate.getTime();
+}
+function startOfDay(dirtyDate) {
+ requiredArgs(1, arguments);
+ var date = toDate(dirtyDate);
+ date.setHours(0, 0, 0, 0);
+ return date;
+}
var daysInYear = 365.2425;
var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3;
var millisecondsInMinute = 6e4;
@@ -24942,6 +13498,106 @@ var secondsInWeek = secondsInDay * 7;
var secondsInYear = secondsInDay * daysInYear;
var secondsInMonth = secondsInYear / 12;
var secondsInQuarter = secondsInMonth * 3;
+function isSameDay(dirtyDateLeft, dirtyDateRight) {
+ requiredArgs(2, arguments);
+ var dateLeftStartOfDay = startOfDay(dirtyDateLeft);
+ var dateRightStartOfDay = startOfDay(dirtyDateRight);
+ return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();
+}
+function _typeof3(obj) {
+ "@babel/helpers - typeof";
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof3 = function _typeof382(obj2) {
+ return typeof obj2;
+ };
+ } else {
+ _typeof3 = function _typeof382(obj2) {
+ return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
+ };
+ }
+ return _typeof3(obj);
+}
+function isDate(value) {
+ requiredArgs(1, arguments);
+ return value instanceof Date || _typeof3(value) === "object" && Object.prototype.toString.call(value) === "[object Date]";
+}
+function isValid(dirtyDate) {
+ requiredArgs(1, arguments);
+ if (!isDate(dirtyDate) && typeof dirtyDate !== "number") {
+ return false;
+ }
+ var date = toDate(dirtyDate);
+ return !isNaN(Number(date));
+}
+function endOfMonth(dirtyDate) {
+ requiredArgs(1, arguments);
+ var date = toDate(dirtyDate);
+ var month = date.getMonth();
+ date.setFullYear(date.getFullYear(), month + 1, 0);
+ date.setHours(23, 59, 59, 999);
+ return date;
+}
+function eachDayOfInterval(dirtyInterval, options) {
+ var _options$step;
+ requiredArgs(1, arguments);
+ var interval = dirtyInterval || {};
+ var startDate = toDate(interval.start);
+ var endDate = toDate(interval.end);
+ var endTime = endDate.getTime();
+ if (!(startDate.getTime() <= endTime)) {
+ throw new RangeError("Invalid interval");
+ }
+ var dates = [];
+ var currentDate = startDate;
+ currentDate.setHours(0, 0, 0, 0);
+ var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);
+ if (step < 1 || isNaN(step))
+ throw new RangeError("`options.step` must be a number greater than 1");
+ while (currentDate.getTime() <= endTime) {
+ dates.push(toDate(currentDate));
+ currentDate.setDate(currentDate.getDate() + step);
+ currentDate.setHours(0, 0, 0, 0);
+ }
+ return dates;
+}
+function startOfMonth(dirtyDate) {
+ requiredArgs(1, arguments);
+ var date = toDate(dirtyDate);
+ date.setDate(1);
+ date.setHours(0, 0, 0, 0);
+ return date;
+}
+function endOfWeek(dirtyDate, options) {
+ var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
+ requiredArgs(1, arguments);
+ var defaultOptions22 = getDefaultOptions();
+ var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions22.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions22.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
+ if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
+ throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
+ }
+ var date = toDate(dirtyDate);
+ var day = date.getDay();
+ var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);
+ date.setDate(date.getDate() + diff);
+ date.setHours(23, 59, 59, 999);
+ return date;
+}
+function subMilliseconds(dirtyDate, dirtyAmount) {
+ requiredArgs(2, arguments);
+ var amount = toInteger(dirtyAmount);
+ return addMilliseconds(dirtyDate, -amount);
+}
+var MILLISECONDS_IN_DAY = 864e5;
+function getUTCDayOfYear(dirtyDate) {
+ requiredArgs(1, arguments);
+ var date = toDate(dirtyDate);
+ var timestamp = date.getTime();
+ date.setUTCMonth(0, 1);
+ date.setUTCHours(0, 0, 0, 0);
+ var startOfYearTimestamp = date.getTime();
+ var difference = timestamp - startOfYearTimestamp;
+ return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;
+}
function startOfUTCISOWeek(dirtyDate) {
requiredArgs(1, arguments);
var weekStartsOn = 1;
@@ -25048,12 +13704,897 @@ function getUTCWeek(dirtyDate, options) {
var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();
return Math.round(diff / MILLISECONDS_IN_WEEK2) + 1;
}
+function addLeadingZeros(number, targetLength) {
+ var sign2 = number < 0 ? "-" : "";
+ var output = Math.abs(number).toString();
+ while (output.length < targetLength) {
+ output = "0" + output;
+ }
+ return sign2 + output;
+}
+var formatters = {
+ // Year
+ y: function y3(date, token) {
+ var signedYear = date.getUTCFullYear();
+ var year = signedYear > 0 ? signedYear : 1 - signedYear;
+ return addLeadingZeros(token === "yy" ? year % 100 : year, token.length);
+ },
+ // Month
+ M: function M4(date, token) {
+ var month = date.getUTCMonth();
+ return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2);
+ },
+ // Day of the month
+ d: function d3(date, token) {
+ return addLeadingZeros(date.getUTCDate(), token.length);
+ },
+ // AM or PM
+ a: function a3(date, token) {
+ var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? "pm" : "am";
+ switch (token) {
+ case "a":
+ case "aa":
+ return dayPeriodEnumValue.toUpperCase();
+ case "aaa":
+ return dayPeriodEnumValue;
+ case "aaaaa":
+ return dayPeriodEnumValue[0];
+ case "aaaa":
+ default:
+ return dayPeriodEnumValue === "am" ? "a.m." : "p.m.";
+ }
+ },
+ // Hour [1-12]
+ h: function h13(date, token) {
+ return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);
+ },
+ // Hour [0-23]
+ H: function H3(date, token) {
+ return addLeadingZeros(date.getUTCHours(), token.length);
+ },
+ // Minute
+ m: function m3(date, token) {
+ return addLeadingZeros(date.getUTCMinutes(), token.length);
+ },
+ // Second
+ s: function s3(date, token) {
+ return addLeadingZeros(date.getUTCSeconds(), token.length);
+ },
+ // Fraction of second
+ S: function S3(date, token) {
+ var numberOfDigits = token.length;
+ var milliseconds = date.getUTCMilliseconds();
+ var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));
+ return addLeadingZeros(fractionalSeconds, token.length);
+ }
+};
+var lightFormatters_default = formatters;
+var dayPeriodEnum = {
+ am: "am",
+ pm: "pm",
+ midnight: "midnight",
+ noon: "noon",
+ morning: "morning",
+ afternoon: "afternoon",
+ evening: "evening",
+ night: "night"
+};
+var formatters2 = {
+ // Era
+ G: function G2(date, token, localize22) {
+ var era = date.getUTCFullYear() > 0 ? 1 : 0;
+ switch (token) {
+ case "G":
+ case "GG":
+ case "GGG":
+ return localize22.era(era, {
+ width: "abbreviated"
+ });
+ case "GGGGG":
+ return localize22.era(era, {
+ width: "narrow"
+ });
+ case "GGGG":
+ default:
+ return localize22.era(era, {
+ width: "wide"
+ });
+ }
+ },
+ // Year
+ y: function y22(date, token, localize22) {
+ if (token === "yo") {
+ var signedYear = date.getUTCFullYear();
+ var year = signedYear > 0 ? signedYear : 1 - signedYear;
+ return localize22.ordinalNumber(year, {
+ unit: "year"
+ });
+ }
+ return lightFormatters_default.y(date, token);
+ },
+ // Local week-numbering year
+ Y: function Y3(date, token, localize22, options) {
+ var signedWeekYear = getUTCWeekYear(date, options);
+ var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;
+ if (token === "YY") {
+ var twoDigitYear = weekYear % 100;
+ return addLeadingZeros(twoDigitYear, 2);
+ }
+ if (token === "Yo") {
+ return localize22.ordinalNumber(weekYear, {
+ unit: "year"
+ });
+ }
+ return addLeadingZeros(weekYear, token.length);
+ },
+ // ISO week-numbering year
+ R: function R2(date, token) {
+ var isoWeekYear = getUTCISOWeekYear(date);
+ return addLeadingZeros(isoWeekYear, token.length);
+ },
+ // Extended year. This is a single number designating the year of this calendar system.
+ // The main difference between `y` and `u` localizers are B.C. years:
+ // | Year | `y` | `u` |
+ // |------|-----|-----|
+ // | AC 1 | 1 | 1 |
+ // | BC 1 | 1 | 0 |
+ // | BC 2 | 2 | -1 |
+ // Also `yy` always returns the last two digits of a year,
+ // while `uu` pads single digit years to 2 characters and returns other years unchanged.
+ u: function u3(date, token) {
+ var year = date.getUTCFullYear();
+ return addLeadingZeros(year, token.length);
+ },
+ // Quarter
+ Q: function Q2(date, token, localize22) {
+ var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
+ switch (token) {
+ case "Q":
+ return String(quarter);
+ case "QQ":
+ return addLeadingZeros(quarter, 2);
+ case "Qo":
+ return localize22.ordinalNumber(quarter, {
+ unit: "quarter"
+ });
+ case "QQQ":
+ return localize22.quarter(quarter, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "QQQQQ":
+ return localize22.quarter(quarter, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "QQQQ":
+ default:
+ return localize22.quarter(quarter, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // Stand-alone quarter
+ q: function q4(date, token, localize22) {
+ var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
+ switch (token) {
+ case "q":
+ return String(quarter);
+ case "qq":
+ return addLeadingZeros(quarter, 2);
+ case "qo":
+ return localize22.ordinalNumber(quarter, {
+ unit: "quarter"
+ });
+ case "qqq":
+ return localize22.quarter(quarter, {
+ width: "abbreviated",
+ context: "standalone"
+ });
+ case "qqqqq":
+ return localize22.quarter(quarter, {
+ width: "narrow",
+ context: "standalone"
+ });
+ case "qqqq":
+ default:
+ return localize22.quarter(quarter, {
+ width: "wide",
+ context: "standalone"
+ });
+ }
+ },
+ // Month
+ M: function M22(date, token, localize22) {
+ var month = date.getUTCMonth();
+ switch (token) {
+ case "M":
+ case "MM":
+ return lightFormatters_default.M(date, token);
+ case "Mo":
+ return localize22.ordinalNumber(month + 1, {
+ unit: "month"
+ });
+ case "MMM":
+ return localize22.month(month, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "MMMMM":
+ return localize22.month(month, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "MMMM":
+ default:
+ return localize22.month(month, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // Stand-alone month
+ L: function L4(date, token, localize22) {
+ var month = date.getUTCMonth();
+ switch (token) {
+ case "L":
+ return String(month + 1);
+ case "LL":
+ return addLeadingZeros(month + 1, 2);
+ case "Lo":
+ return localize22.ordinalNumber(month + 1, {
+ unit: "month"
+ });
+ case "LLL":
+ return localize22.month(month, {
+ width: "abbreviated",
+ context: "standalone"
+ });
+ case "LLLLL":
+ return localize22.month(month, {
+ width: "narrow",
+ context: "standalone"
+ });
+ case "LLLL":
+ default:
+ return localize22.month(month, {
+ width: "wide",
+ context: "standalone"
+ });
+ }
+ },
+ // Local week of year
+ w: function w4(date, token, localize22, options) {
+ var week = getUTCWeek(date, options);
+ if (token === "wo") {
+ return localize22.ordinalNumber(week, {
+ unit: "week"
+ });
+ }
+ return addLeadingZeros(week, token.length);
+ },
+ // ISO week of year
+ I: function I4(date, token, localize22) {
+ var isoWeek = getUTCISOWeek(date);
+ if (token === "Io") {
+ return localize22.ordinalNumber(isoWeek, {
+ unit: "week"
+ });
+ }
+ return addLeadingZeros(isoWeek, token.length);
+ },
+ // Day of the month
+ d: function d22(date, token, localize22) {
+ if (token === "do") {
+ return localize22.ordinalNumber(date.getUTCDate(), {
+ unit: "date"
+ });
+ }
+ return lightFormatters_default.d(date, token);
+ },
+ // Day of year
+ D: function D4(date, token, localize22) {
+ var dayOfYear = getUTCDayOfYear(date);
+ if (token === "Do") {
+ return localize22.ordinalNumber(dayOfYear, {
+ unit: "dayOfYear"
+ });
+ }
+ return addLeadingZeros(dayOfYear, token.length);
+ },
+ // Day of week
+ E: function E2(date, token, localize22) {
+ var dayOfWeek = date.getUTCDay();
+ switch (token) {
+ case "E":
+ case "EE":
+ case "EEE":
+ return localize22.day(dayOfWeek, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "EEEEE":
+ return localize22.day(dayOfWeek, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "EEEEEE":
+ return localize22.day(dayOfWeek, {
+ width: "short",
+ context: "formatting"
+ });
+ case "EEEE":
+ default:
+ return localize22.day(dayOfWeek, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // Local day of week
+ e: function e3(date, token, localize22, options) {
+ var dayOfWeek = date.getUTCDay();
+ var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
+ switch (token) {
+ case "e":
+ return String(localDayOfWeek);
+ case "ee":
+ return addLeadingZeros(localDayOfWeek, 2);
+ case "eo":
+ return localize22.ordinalNumber(localDayOfWeek, {
+ unit: "day"
+ });
+ case "eee":
+ return localize22.day(dayOfWeek, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "eeeee":
+ return localize22.day(dayOfWeek, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "eeeeee":
+ return localize22.day(dayOfWeek, {
+ width: "short",
+ context: "formatting"
+ });
+ case "eeee":
+ default:
+ return localize22.day(dayOfWeek, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // Stand-alone local day of week
+ c: function c3(date, token, localize22, options) {
+ var dayOfWeek = date.getUTCDay();
+ var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
+ switch (token) {
+ case "c":
+ return String(localDayOfWeek);
+ case "cc":
+ return addLeadingZeros(localDayOfWeek, token.length);
+ case "co":
+ return localize22.ordinalNumber(localDayOfWeek, {
+ unit: "day"
+ });
+ case "ccc":
+ return localize22.day(dayOfWeek, {
+ width: "abbreviated",
+ context: "standalone"
+ });
+ case "ccccc":
+ return localize22.day(dayOfWeek, {
+ width: "narrow",
+ context: "standalone"
+ });
+ case "cccccc":
+ return localize22.day(dayOfWeek, {
+ width: "short",
+ context: "standalone"
+ });
+ case "cccc":
+ default:
+ return localize22.day(dayOfWeek, {
+ width: "wide",
+ context: "standalone"
+ });
+ }
+ },
+ // ISO day of week
+ i: function i3(date, token, localize22) {
+ var dayOfWeek = date.getUTCDay();
+ var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
+ switch (token) {
+ case "i":
+ return String(isoDayOfWeek);
+ case "ii":
+ return addLeadingZeros(isoDayOfWeek, token.length);
+ case "io":
+ return localize22.ordinalNumber(isoDayOfWeek, {
+ unit: "day"
+ });
+ case "iii":
+ return localize22.day(dayOfWeek, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "iiiii":
+ return localize22.day(dayOfWeek, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "iiiiii":
+ return localize22.day(dayOfWeek, {
+ width: "short",
+ context: "formatting"
+ });
+ case "iiii":
+ default:
+ return localize22.day(dayOfWeek, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // AM or PM
+ a: function a22(date, token, localize22) {
+ var hours = date.getUTCHours();
+ var dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
+ switch (token) {
+ case "a":
+ case "aa":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "aaa":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "abbreviated",
+ context: "formatting"
+ }).toLowerCase();
+ case "aaaaa":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "aaaa":
+ default:
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // AM, PM, midnight, noon
+ b: function b3(date, token, localize22) {
+ var hours = date.getUTCHours();
+ var dayPeriodEnumValue;
+ if (hours === 12) {
+ dayPeriodEnumValue = dayPeriodEnum.noon;
+ } else if (hours === 0) {
+ dayPeriodEnumValue = dayPeriodEnum.midnight;
+ } else {
+ dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
+ }
+ switch (token) {
+ case "b":
+ case "bb":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "bbb":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "abbreviated",
+ context: "formatting"
+ }).toLowerCase();
+ case "bbbbb":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "bbbb":
+ default:
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // in the morning, in the afternoon, in the evening, at night
+ B: function B4(date, token, localize22) {
+ var hours = date.getUTCHours();
+ var dayPeriodEnumValue;
+ if (hours >= 17) {
+ dayPeriodEnumValue = dayPeriodEnum.evening;
+ } else if (hours >= 12) {
+ dayPeriodEnumValue = dayPeriodEnum.afternoon;
+ } else if (hours >= 4) {
+ dayPeriodEnumValue = dayPeriodEnum.morning;
+ } else {
+ dayPeriodEnumValue = dayPeriodEnum.night;
+ }
+ switch (token) {
+ case "B":
+ case "BB":
+ case "BBB":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "abbreviated",
+ context: "formatting"
+ });
+ case "BBBBB":
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "narrow",
+ context: "formatting"
+ });
+ case "BBBB":
+ default:
+ return localize22.dayPeriod(dayPeriodEnumValue, {
+ width: "wide",
+ context: "formatting"
+ });
+ }
+ },
+ // Hour [1-12]
+ h: function h14(date, token, localize22) {
+ if (token === "ho") {
+ var hours = date.getUTCHours() % 12;
+ if (hours === 0)
+ hours = 12;
+ return localize22.ordinalNumber(hours, {
+ unit: "hour"
+ });
+ }
+ return lightFormatters_default.h(date, token);
+ },
+ // Hour [0-23]
+ H: function H22(date, token, localize22) {
+ if (token === "Ho") {
+ return localize22.ordinalNumber(date.getUTCHours(), {
+ unit: "hour"
+ });
+ }
+ return lightFormatters_default.H(date, token);
+ },
+ // Hour [0-11]
+ K: function K4(date, token, localize22) {
+ var hours = date.getUTCHours() % 12;
+ if (token === "Ko") {
+ return localize22.ordinalNumber(hours, {
+ unit: "hour"
+ });
+ }
+ return addLeadingZeros(hours, token.length);
+ },
+ // Hour [1-24]
+ k: function k4(date, token, localize22) {
+ var hours = date.getUTCHours();
+ if (hours === 0)
+ hours = 24;
+ if (token === "ko") {
+ return localize22.ordinalNumber(hours, {
+ unit: "hour"
+ });
+ }
+ return addLeadingZeros(hours, token.length);
+ },
+ // Minute
+ m: function m22(date, token, localize22) {
+ if (token === "mo") {
+ return localize22.ordinalNumber(date.getUTCMinutes(), {
+ unit: "minute"
+ });
+ }
+ return lightFormatters_default.m(date, token);
+ },
+ // Second
+ s: function s22(date, token, localize22) {
+ if (token === "so") {
+ return localize22.ordinalNumber(date.getUTCSeconds(), {
+ unit: "second"
+ });
+ }
+ return lightFormatters_default.s(date, token);
+ },
+ // Fraction of second
+ S: function S22(date, token) {
+ return lightFormatters_default.S(date, token);
+ },
+ // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
+ X: function X3(date, token, _localize, options) {
+ var originalDate = options._originalDate || date;
+ var timezoneOffset = originalDate.getTimezoneOffset();
+ if (timezoneOffset === 0) {
+ return "Z";
+ }
+ switch (token) {
+ case "X":
+ return formatTimezoneWithOptionalMinutes(timezoneOffset);
+ case "XXXX":
+ case "XX":
+ return formatTimezone(timezoneOffset);
+ case "XXXXX":
+ case "XXX":
+ default:
+ return formatTimezone(timezoneOffset, ":");
+ }
+ },
+ // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
+ x: function x5(date, token, _localize, options) {
+ var originalDate = options._originalDate || date;
+ var timezoneOffset = originalDate.getTimezoneOffset();
+ switch (token) {
+ case "x":
+ return formatTimezoneWithOptionalMinutes(timezoneOffset);
+ case "xxxx":
+ case "xx":
+ return formatTimezone(timezoneOffset);
+ case "xxxxx":
+ case "xxx":
+ default:
+ return formatTimezone(timezoneOffset, ":");
+ }
+ },
+ // Timezone (GMT)
+ O: function O3(date, token, _localize, options) {
+ var originalDate = options._originalDate || date;
+ var timezoneOffset = originalDate.getTimezoneOffset();
+ switch (token) {
+ case "O":
+ case "OO":
+ case "OOO":
+ return "GMT" + formatTimezoneShort(timezoneOffset, ":");
+ case "OOOO":
+ default:
+ return "GMT" + formatTimezone(timezoneOffset, ":");
+ }
+ },
+ // Timezone (specific non-location)
+ z: function z4(date, token, _localize, options) {
+ var originalDate = options._originalDate || date;
+ var timezoneOffset = originalDate.getTimezoneOffset();
+ switch (token) {
+ case "z":
+ case "zz":
+ case "zzz":
+ return "GMT" + formatTimezoneShort(timezoneOffset, ":");
+ case "zzzz":
+ default:
+ return "GMT" + formatTimezone(timezoneOffset, ":");
+ }
+ },
+ // Seconds timestamp
+ t: function t3(date, token, _localize, options) {
+ var originalDate = options._originalDate || date;
+ var timestamp = Math.floor(originalDate.getTime() / 1e3);
+ return addLeadingZeros(timestamp, token.length);
+ },
+ // Milliseconds timestamp
+ T: function T4(date, token, _localize, options) {
+ var originalDate = options._originalDate || date;
+ var timestamp = originalDate.getTime();
+ return addLeadingZeros(timestamp, token.length);
+ }
+};
+function formatTimezoneShort(offset, dirtyDelimiter) {
+ var sign2 = offset > 0 ? "-" : "+";
+ var absOffset = Math.abs(offset);
+ var hours = Math.floor(absOffset / 60);
+ var minutes = absOffset % 60;
+ if (minutes === 0) {
+ return sign2 + String(hours);
+ }
+ var delimiter2 = dirtyDelimiter || "";
+ return sign2 + String(hours) + delimiter2 + addLeadingZeros(minutes, 2);
+}
+function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {
+ if (offset % 60 === 0) {
+ var sign2 = offset > 0 ? "-" : "+";
+ return sign2 + addLeadingZeros(Math.abs(offset) / 60, 2);
+ }
+ return formatTimezone(offset, dirtyDelimiter);
+}
+function formatTimezone(offset, dirtyDelimiter) {
+ var delimiter2 = dirtyDelimiter || "";
+ var sign2 = offset > 0 ? "-" : "+";
+ var absOffset = Math.abs(offset);
+ var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);
+ var minutes = addLeadingZeros(absOffset % 60, 2);
+ return sign2 + hours + delimiter2 + minutes;
+}
+var formatters_default = formatters2;
+var dateLongFormatter = function dateLongFormatter2(pattern, formatLong22) {
+ switch (pattern) {
+ case "P":
+ return formatLong22.date({
+ width: "short"
+ });
+ case "PP":
+ return formatLong22.date({
+ width: "medium"
+ });
+ case "PPP":
+ return formatLong22.date({
+ width: "long"
+ });
+ case "PPPP":
+ default:
+ return formatLong22.date({
+ width: "full"
+ });
+ }
+};
+var timeLongFormatter = function timeLongFormatter2(pattern, formatLong22) {
+ switch (pattern) {
+ case "p":
+ return formatLong22.time({
+ width: "short"
+ });
+ case "pp":
+ return formatLong22.time({
+ width: "medium"
+ });
+ case "ppp":
+ return formatLong22.time({
+ width: "long"
+ });
+ case "pppp":
+ default:
+ return formatLong22.time({
+ width: "full"
+ });
+ }
+};
+var dateTimeLongFormatter = function dateTimeLongFormatter2(pattern, formatLong22) {
+ var matchResult = pattern.match(/(P+)(p+)?/) || [];
+ var datePattern = matchResult[1];
+ var timePattern = matchResult[2];
+ if (!timePattern) {
+ return dateLongFormatter(pattern, formatLong22);
+ }
+ var dateTimeFormat;
+ switch (datePattern) {
+ case "P":
+ dateTimeFormat = formatLong22.dateTime({
+ width: "short"
+ });
+ break;
+ case "PP":
+ dateTimeFormat = formatLong22.dateTime({
+ width: "medium"
+ });
+ break;
+ case "PPP":
+ dateTimeFormat = formatLong22.dateTime({
+ width: "long"
+ });
+ break;
+ case "PPPP":
+ default:
+ dateTimeFormat = formatLong22.dateTime({
+ width: "full"
+ });
+ break;
+ }
+ return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong22)).replace("{{time}}", timeLongFormatter(timePattern, formatLong22));
+};
+var longFormatters = {
+ p: timeLongFormatter,
+ P: dateTimeLongFormatter
+};
+var longFormatters_default = longFormatters;
+var protectedDayOfYearTokens = ["D", "DD"];
+var protectedWeekYearTokens = ["YY", "YYYY"];
+function isProtectedDayOfYearToken(token) {
+ return protectedDayOfYearTokens.indexOf(token) !== -1;
+}
+function isProtectedWeekYearToken(token) {
+ return protectedWeekYearTokens.indexOf(token) !== -1;
+}
+function throwProtectedError(token, format22, input) {
+ if (token === "YYYY") {
+ throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format22, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ } else if (token === "YY") {
+ throw new RangeError("Use `yy` instead of `YY` (in `".concat(format22, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ } else if (token === "D") {
+ throw new RangeError("Use `d` instead of `D` (in `".concat(format22, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ } else if (token === "DD") {
+ throw new RangeError("Use `dd` instead of `DD` (in `".concat(format22, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ }
+}
+var formatDistanceLocale = {
+ lessThanXSeconds: {
+ one: "less than a second",
+ other: "less than {{count}} seconds"
+ },
+ xSeconds: {
+ one: "1 second",
+ other: "{{count}} seconds"
+ },
+ halfAMinute: "half a minute",
+ lessThanXMinutes: {
+ one: "less than a minute",
+ other: "less than {{count}} minutes"
+ },
+ xMinutes: {
+ one: "1 minute",
+ other: "{{count}} minutes"
+ },
+ aboutXHours: {
+ one: "about 1 hour",
+ other: "about {{count}} hours"
+ },
+ xHours: {
+ one: "1 hour",
+ other: "{{count}} hours"
+ },
+ xDays: {
+ one: "1 day",
+ other: "{{count}} days"
+ },
+ aboutXWeeks: {
+ one: "about 1 week",
+ other: "about {{count}} weeks"
+ },
+ xWeeks: {
+ one: "1 week",
+ other: "{{count}} weeks"
+ },
+ aboutXMonths: {
+ one: "about 1 month",
+ other: "about {{count}} months"
+ },
+ xMonths: {
+ one: "1 month",
+ other: "{{count}} months"
+ },
+ aboutXYears: {
+ one: "about 1 year",
+ other: "about {{count}} years"
+ },
+ xYears: {
+ one: "1 year",
+ other: "{{count}} years"
+ },
+ overXYears: {
+ one: "over 1 year",
+ other: "over {{count}} years"
+ },
+ almostXYears: {
+ one: "almost 1 year",
+ other: "almost {{count}} years"
+ }
+};
+var formatDistance = function formatDistance2(token, count, options) {
+ var result;
+ var tokenValue = formatDistanceLocale[token];
+ if (typeof tokenValue === "string") {
+ result = tokenValue;
+ } else if (count === 1) {
+ result = tokenValue.one;
+ } else {
+ result = tokenValue.other.replace("{{count}}", count.toString());
+ }
+ if (options !== null && options !== void 0 && options.addSuffix) {
+ if (options.comparison && options.comparison > 0) {
+ return "in " + result;
+ } else {
+ return result + " ago";
+ }
+ }
+ return result;
+};
+var formatDistance_default = formatDistance;
function buildFormatLongFn(args) {
return function() {
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
var width = options.width ? String(options.width) : args.defaultWidth;
- var format2 = args.formats[width] || args.formats[args.defaultWidth];
- return format2;
+ var format22 = args.formats[width] || args.formats[args.defaultWidth];
+ return format22;
};
}
var dateFormats = {
@@ -25088,6 +14629,19 @@ var formatLong = {
defaultWidth: "full"
})
};
+var formatLong_default = formatLong;
+var formatRelativeLocale = {
+ lastWeek: "'last' eeee 'at' p",
+ yesterday: "'yesterday at' p",
+ today: "'today at' p",
+ tomorrow: "'tomorrow at' p",
+ nextWeek: "eeee 'at' p",
+ other: "P"
+};
+var formatRelative = function formatRelative2(token, _date, _baseDate, _options) {
+ return formatRelativeLocale[token];
+};
+var formatRelative_default = formatRelative;
function buildLocalizeFn(args) {
return function(dirtyIndex, options) {
var context = options !== null && options !== void 0 && options.context ? String(options.context) : "standalone";
@@ -25233,6 +14787,7 @@ var localize = {
defaultFormattingWidth: "wide"
})
};
+var localize_default = localize;
function buildMatchFn(args) {
return function(string) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
@@ -25389,18 +14944,131 @@ var match = {
defaultParseWidth: "any"
})
};
-function _typeof3(obj) {
+var match_default = match;
+var locale = {
+ code: "en-US",
+ formatDistance: formatDistance_default,
+ formatLong: formatLong_default,
+ formatRelative: formatRelative_default,
+ localize: localize_default,
+ match: match_default,
+ options: {
+ weekStartsOn: 0,
+ firstWeekContainsDate: 1
+ }
+};
+var en_US_default = locale;
+var defaultLocale_default = en_US_default;
+var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
+var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
+var escapedStringRegExp = /^'([^]*?)'?$/;
+var doubleQuoteRegExp = /''/g;
+var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
+function format(dirtyDate, dirtyFormatStr, options) {
+ var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
+ requiredArgs(2, arguments);
+ var formatStr = String(dirtyFormatStr);
+ var defaultOptions22 = getDefaultOptions();
+ var locale22 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions22.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default;
+ var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions22.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions22.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);
+ if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
+ throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");
+ }
+ var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions22.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions22.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);
+ if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
+ throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
+ }
+ if (!locale22.localize) {
+ throw new RangeError("locale must contain localize property");
+ }
+ if (!locale22.formatLong) {
+ throw new RangeError("locale must contain formatLong property");
+ }
+ var originalDate = toDate(dirtyDate);
+ if (!isValid(originalDate)) {
+ throw new RangeError("Invalid time value");
+ }
+ var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);
+ var utcDate = subMilliseconds(originalDate, timezoneOffset);
+ var formatterOptions = {
+ firstWeekContainsDate,
+ weekStartsOn,
+ locale: locale22,
+ _originalDate: originalDate
+ };
+ var result = formatStr.match(longFormattingTokensRegExp).map(function(substring) {
+ var firstCharacter = substring[0];
+ if (firstCharacter === "p" || firstCharacter === "P") {
+ var longFormatter = longFormatters_default[firstCharacter];
+ return longFormatter(substring, locale22.formatLong);
+ }
+ return substring;
+ }).join("").match(formattingTokensRegExp).map(function(substring) {
+ if (substring === "''") {
+ return "'";
+ }
+ var firstCharacter = substring[0];
+ if (firstCharacter === "'") {
+ return cleanEscapedString(substring);
+ }
+ var formatter = formatters_default[firstCharacter];
+ if (formatter) {
+ if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {
+ throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
+ }
+ if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {
+ throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
+ }
+ return formatter(utcDate, substring, locale22.localize, formatterOptions);
+ }
+ if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
+ throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`");
+ }
+ return substring;
+ }).join("");
+ return result;
+}
+function cleanEscapedString(input) {
+ var matched = input.match(escapedStringRegExp);
+ if (!matched) {
+ return input;
+ }
+ return matched[1].replace(doubleQuoteRegExp, "'");
+}
+function assign(target, object) {
+ if (target == null) {
+ throw new TypeError("assign requires that input parameter not be null or undefined");
+ }
+ for (var property in object) {
+ if (Object.prototype.hasOwnProperty.call(object, property)) {
+ ;
+ target[property] = object[property];
+ }
+ }
+ return target;
+}
+function getMonth(dirtyDate) {
+ requiredArgs(1, arguments);
+ var date = toDate(dirtyDate);
+ var month = date.getMonth();
+ return month;
+}
+function getYear(dirtyDate) {
+ requiredArgs(1, arguments);
+ return toDate(dirtyDate).getFullYear();
+}
+function _typeof4(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof3 = function _typeof362(obj2) {
+ _typeof4 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof3 = function _typeof362(obj2) {
+ _typeof4 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof3(obj);
+ return _typeof4(obj);
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
@@ -25411,7 +15079,7 @@ function _inherits(subClass, superClass) {
_setPrototypeOf(subClass, superClass);
}
function _setPrototypeOf(o3, p4) {
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -25431,7 +15099,7 @@ function _createSuper(Derived) {
};
}
function _possibleConstructorReturn(self2, call) {
- if (call && (_typeof3(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof4(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized(self2);
@@ -25458,7 +15126,7 @@ function _isNativeReflectConstruct() {
}
}
function _getPrototypeOf(o3) {
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf(o3);
@@ -25493,25 +15161,26 @@ function _defineProperty(obj, key, value) {
}
return obj;
}
+var TIMEZONE_UNIT_PRIORITY = 10;
var Setter = /* @__PURE__ */ function() {
- function Setter22() {
- _classCallCheck(this, Setter22);
+ function Setter2() {
+ _classCallCheck(this, Setter2);
_defineProperty(this, "subPriority", 0);
}
- _createClass(Setter22, [{
+ _createClass(Setter2, [{
key: "validate",
value: function validate(_utcDate, _options) {
return true;
}
}]);
- return Setter22;
+ return Setter2;
}();
var ValueSetter = /* @__PURE__ */ function(_Setter) {
- _inherits(ValueSetter22, _Setter);
- var _super = _createSuper(ValueSetter22);
- function ValueSetter22(value, validateValue, setValue, priority, subPriority) {
+ _inherits(ValueSetter2, _Setter);
+ var _super = _createSuper(ValueSetter2);
+ function ValueSetter2(value, validateValue, setValue, priority, subPriority) {
var _this;
- _classCallCheck(this, ValueSetter22);
+ _classCallCheck(this, ValueSetter2);
_this = _super.call(this);
_this.value = value;
_this.validateValue = validateValue;
@@ -25522,7 +15191,7 @@ var ValueSetter = /* @__PURE__ */ function(_Setter) {
}
return _this;
}
- _createClass(ValueSetter22, [{
+ _createClass(ValueSetter2, [{
key: "validate",
value: function validate(utcDate, options) {
return this.validateValue(utcDate, this.value, options);
@@ -25533,7 +15202,35 @@ var ValueSetter = /* @__PURE__ */ function(_Setter) {
return this.setValue(utcDate, flags, this.value, options);
}
}]);
- return ValueSetter22;
+ return ValueSetter2;
+}(Setter);
+var DateToSystemTimezoneSetter = /* @__PURE__ */ function(_Setter2) {
+ _inherits(DateToSystemTimezoneSetter2, _Setter2);
+ var _super2 = _createSuper(DateToSystemTimezoneSetter2);
+ function DateToSystemTimezoneSetter2() {
+ var _this2;
+ _classCallCheck(this, DateToSystemTimezoneSetter2);
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+ _this2 = _super2.call.apply(_super2, [this].concat(args));
+ _defineProperty(_assertThisInitialized(_this2), "priority", TIMEZONE_UNIT_PRIORITY);
+ _defineProperty(_assertThisInitialized(_this2), "subPriority", -1);
+ return _this2;
+ }
+ _createClass(DateToSystemTimezoneSetter2, [{
+ key: "set",
+ value: function set(date, flags) {
+ if (flags.timestampIsSet) {
+ return date;
+ }
+ var convertedDate = /* @__PURE__ */ new Date(0);
+ convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
+ convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());
+ return convertedDate;
+ }
+ }]);
+ return DateToSystemTimezoneSetter2;
}(Setter);
function _classCallCheck2(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -25558,10 +15255,10 @@ function _createClass2(Constructor, protoProps, staticProps) {
return Constructor;
}
var Parser = /* @__PURE__ */ function() {
- function Parser22() {
- _classCallCheck2(this, Parser22);
+ function Parser2() {
+ _classCallCheck2(this, Parser2);
}
- _createClass2(Parser22, [{
+ _createClass2(Parser2, [{
key: "run",
value: function run(dateString, token, match22, options) {
var result = this.parse(dateString, token, match22, options);
@@ -25579,20 +15276,20 @@ var Parser = /* @__PURE__ */ function() {
return true;
}
}]);
- return Parser22;
+ return Parser2;
}();
-function _typeof4(obj) {
+function _typeof5(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof4 = function _typeof362(obj2) {
+ _typeof5 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof4 = function _typeof362(obj2) {
+ _typeof5 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof4(obj);
+ return _typeof5(obj);
}
function _classCallCheck3(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -25625,7 +15322,7 @@ function _inherits2(subClass, superClass) {
_setPrototypeOf2(subClass, superClass);
}
function _setPrototypeOf2(o3, p4) {
- _setPrototypeOf2 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf2 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -25645,7 +15342,7 @@ function _createSuper2(Derived) {
};
}
function _possibleConstructorReturn2(self2, call) {
- if (call && (_typeof4(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof5(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized2(self2);
@@ -25672,7 +15369,7 @@ function _isNativeReflectConstruct2() {
}
}
function _getPrototypeOf2(o3) {
- _getPrototypeOf2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf2(o3);
@@ -25686,11 +15383,11 @@ function _defineProperty2(obj, key, value) {
return obj;
}
var EraParser = /* @__PURE__ */ function(_Parser) {
- _inherits2(EraParser22, _Parser);
- var _super = _createSuper2(EraParser22);
- function EraParser22() {
+ _inherits2(EraParser2, _Parser);
+ var _super = _createSuper2(EraParser2);
+ function EraParser2() {
var _this;
- _classCallCheck3(this, EraParser22);
+ _classCallCheck3(this, EraParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -25699,7 +15396,7 @@ var EraParser = /* @__PURE__ */ function(_Parser) {
_defineProperty2(_assertThisInitialized2(_this), "incompatibleTokens", ["R", "u", "t", "T"]);
return _this;
}
- _createClass3(EraParser22, [{
+ _createClass3(EraParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -25735,7 +15432,7 @@ var EraParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return EraParser22;
+ return EraParser2;
}(Parser);
var numericPatterns = {
month: /^(1[0-2]|0?\d)/,
@@ -25887,18 +15584,18 @@ function normalizeTwoDigitYear(twoDigitYear, currentYear) {
function isLeapYearIndex(year) {
return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
}
-function _typeof5(obj) {
+function _typeof6(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof5 = function _typeof362(obj2) {
+ _typeof6 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof5 = function _typeof362(obj2) {
+ _typeof6 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof5(obj);
+ return _typeof6(obj);
}
function _classCallCheck4(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -25931,7 +15628,7 @@ function _inherits3(subClass, superClass) {
_setPrototypeOf3(subClass, superClass);
}
function _setPrototypeOf3(o3, p4) {
- _setPrototypeOf3 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf3 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -25951,7 +15648,7 @@ function _createSuper3(Derived) {
};
}
function _possibleConstructorReturn3(self2, call) {
- if (call && (_typeof5(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof6(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized3(self2);
@@ -25978,7 +15675,7 @@ function _isNativeReflectConstruct3() {
}
}
function _getPrototypeOf3(o3) {
- _getPrototypeOf3 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf3 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf3(o3);
@@ -25992,11 +15689,11 @@ function _defineProperty3(obj, key, value) {
return obj;
}
var YearParser = /* @__PURE__ */ function(_Parser) {
- _inherits3(YearParser22, _Parser);
- var _super = _createSuper3(YearParser22);
- function YearParser22() {
+ _inherits3(YearParser2, _Parser);
+ var _super = _createSuper3(YearParser2);
+ function YearParser2() {
var _this;
- _classCallCheck4(this, YearParser22);
+ _classCallCheck4(this, YearParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -26005,7 +15702,7 @@ var YearParser = /* @__PURE__ */ function(_Parser) {
_defineProperty3(_assertThisInitialized3(_this), "incompatibleTokens", ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass4(YearParser22, [{
+ _createClass4(YearParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
var valueCallback32 = function valueCallback42(year) {
@@ -26046,20 +15743,20 @@ var YearParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return YearParser22;
+ return YearParser2;
}(Parser);
-function _typeof6(obj) {
+function _typeof7(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof6 = function _typeof362(obj2) {
+ _typeof7 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof6 = function _typeof362(obj2) {
+ _typeof7 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof6(obj);
+ return _typeof7(obj);
}
function _classCallCheck5(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -26092,7 +15789,7 @@ function _inherits4(subClass, superClass) {
_setPrototypeOf4(subClass, superClass);
}
function _setPrototypeOf4(o3, p4) {
- _setPrototypeOf4 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf4 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -26112,7 +15809,7 @@ function _createSuper4(Derived) {
};
}
function _possibleConstructorReturn4(self2, call) {
- if (call && (_typeof6(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof7(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized4(self2);
@@ -26139,7 +15836,7 @@ function _isNativeReflectConstruct4() {
}
}
function _getPrototypeOf4(o3) {
- _getPrototypeOf4 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf4 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf4(o3);
@@ -26153,11 +15850,11 @@ function _defineProperty4(obj, key, value) {
return obj;
}
var LocalWeekYearParser = /* @__PURE__ */ function(_Parser) {
- _inherits4(LocalWeekYearParser22, _Parser);
- var _super = _createSuper4(LocalWeekYearParser22);
- function LocalWeekYearParser22() {
+ _inherits4(LocalWeekYearParser2, _Parser);
+ var _super = _createSuper4(LocalWeekYearParser2);
+ function LocalWeekYearParser2() {
var _this;
- _classCallCheck5(this, LocalWeekYearParser22);
+ _classCallCheck5(this, LocalWeekYearParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -26166,7 +15863,7 @@ var LocalWeekYearParser = /* @__PURE__ */ function(_Parser) {
_defineProperty4(_assertThisInitialized4(_this), "incompatibleTokens", ["y", "R", "u", "Q", "q", "M", "L", "I", "d", "D", "i", "t", "T"]);
return _this;
}
- _createClass5(LocalWeekYearParser22, [{
+ _createClass5(LocalWeekYearParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
var valueCallback32 = function valueCallback42(year) {
@@ -26207,20 +15904,20 @@ var LocalWeekYearParser = /* @__PURE__ */ function(_Parser) {
return startOfUTCWeek(date, options);
}
}]);
- return LocalWeekYearParser22;
+ return LocalWeekYearParser2;
}(Parser);
-function _typeof7(obj) {
+function _typeof8(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof7 = function _typeof362(obj2) {
+ _typeof8 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof7 = function _typeof362(obj2) {
+ _typeof8 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof7(obj);
+ return _typeof8(obj);
}
function _classCallCheck6(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -26253,7 +15950,7 @@ function _inherits5(subClass, superClass) {
_setPrototypeOf5(subClass, superClass);
}
function _setPrototypeOf5(o3, p4) {
- _setPrototypeOf5 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf5 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -26273,7 +15970,7 @@ function _createSuper5(Derived) {
};
}
function _possibleConstructorReturn5(self2, call) {
- if (call && (_typeof7(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof8(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized5(self2);
@@ -26300,7 +15997,7 @@ function _isNativeReflectConstruct5() {
}
}
function _getPrototypeOf5(o3) {
- _getPrototypeOf5 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf5 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf5(o3);
@@ -26314,11 +16011,11 @@ function _defineProperty5(obj, key, value) {
return obj;
}
var ISOWeekYearParser = /* @__PURE__ */ function(_Parser) {
- _inherits5(ISOWeekYearParser22, _Parser);
- var _super = _createSuper5(ISOWeekYearParser22);
- function ISOWeekYearParser22() {
+ _inherits5(ISOWeekYearParser2, _Parser);
+ var _super = _createSuper5(ISOWeekYearParser2);
+ function ISOWeekYearParser2() {
var _this;
- _classCallCheck6(this, ISOWeekYearParser22);
+ _classCallCheck6(this, ISOWeekYearParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -26327,7 +16024,7 @@ var ISOWeekYearParser = /* @__PURE__ */ function(_Parser) {
_defineProperty5(_assertThisInitialized5(_this), "incompatibleTokens", ["G", "y", "Y", "u", "Q", "q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]);
return _this;
}
- _createClass6(ISOWeekYearParser22, [{
+ _createClass6(ISOWeekYearParser2, [{
key: "parse",
value: function parse2(dateString, token) {
if (token === "R") {
@@ -26344,20 +16041,20 @@ var ISOWeekYearParser = /* @__PURE__ */ function(_Parser) {
return startOfUTCISOWeek(firstWeekOfYear);
}
}]);
- return ISOWeekYearParser22;
+ return ISOWeekYearParser2;
}(Parser);
-function _typeof8(obj) {
+function _typeof9(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof8 = function _typeof362(obj2) {
+ _typeof9 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof8 = function _typeof362(obj2) {
+ _typeof9 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof8(obj);
+ return _typeof9(obj);
}
function _classCallCheck7(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -26390,7 +16087,7 @@ function _inherits6(subClass, superClass) {
_setPrototypeOf6(subClass, superClass);
}
function _setPrototypeOf6(o3, p4) {
- _setPrototypeOf6 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf6 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -26410,7 +16107,7 @@ function _createSuper6(Derived) {
};
}
function _possibleConstructorReturn6(self2, call) {
- if (call && (_typeof8(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof9(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized6(self2);
@@ -26437,7 +16134,7 @@ function _isNativeReflectConstruct6() {
}
}
function _getPrototypeOf6(o3) {
- _getPrototypeOf6 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf6 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf6(o3);
@@ -26451,11 +16148,11 @@ function _defineProperty6(obj, key, value) {
return obj;
}
var ExtendedYearParser = /* @__PURE__ */ function(_Parser) {
- _inherits6(ExtendedYearParser22, _Parser);
- var _super = _createSuper6(ExtendedYearParser22);
- function ExtendedYearParser22() {
+ _inherits6(ExtendedYearParser2, _Parser);
+ var _super = _createSuper6(ExtendedYearParser2);
+ function ExtendedYearParser2() {
var _this;
- _classCallCheck7(this, ExtendedYearParser22);
+ _classCallCheck7(this, ExtendedYearParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -26464,7 +16161,7 @@ var ExtendedYearParser = /* @__PURE__ */ function(_Parser) {
_defineProperty6(_assertThisInitialized6(_this), "incompatibleTokens", ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass7(ExtendedYearParser22, [{
+ _createClass7(ExtendedYearParser2, [{
key: "parse",
value: function parse2(dateString, token) {
if (token === "u") {
@@ -26480,20 +16177,20 @@ var ExtendedYearParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return ExtendedYearParser22;
+ return ExtendedYearParser2;
}(Parser);
-function _typeof9(obj) {
+function _typeof10(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof9 = function _typeof362(obj2) {
+ _typeof10 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof9 = function _typeof362(obj2) {
+ _typeof10 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof9(obj);
+ return _typeof10(obj);
}
function _classCallCheck8(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -26526,7 +16223,7 @@ function _inherits7(subClass, superClass) {
_setPrototypeOf7(subClass, superClass);
}
function _setPrototypeOf7(o3, p4) {
- _setPrototypeOf7 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf7 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -26546,7 +16243,7 @@ function _createSuper7(Derived) {
};
}
function _possibleConstructorReturn7(self2, call) {
- if (call && (_typeof9(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof10(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized7(self2);
@@ -26573,7 +16270,7 @@ function _isNativeReflectConstruct7() {
}
}
function _getPrototypeOf7(o3) {
- _getPrototypeOf7 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf7 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf7(o3);
@@ -26587,11 +16284,11 @@ function _defineProperty7(obj, key, value) {
return obj;
}
var QuarterParser = /* @__PURE__ */ function(_Parser) {
- _inherits7(QuarterParser22, _Parser);
- var _super = _createSuper7(QuarterParser22);
- function QuarterParser22() {
+ _inherits7(QuarterParser2, _Parser);
+ var _super = _createSuper7(QuarterParser2);
+ function QuarterParser2() {
var _this;
- _classCallCheck8(this, QuarterParser22);
+ _classCallCheck8(this, QuarterParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -26600,7 +16297,7 @@ var QuarterParser = /* @__PURE__ */ function(_Parser) {
_defineProperty7(_assertThisInitialized7(_this), "incompatibleTokens", ["Y", "R", "q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass8(QuarterParser22, [{
+ _createClass8(QuarterParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -26651,20 +16348,20 @@ var QuarterParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return QuarterParser22;
+ return QuarterParser2;
}(Parser);
-function _typeof10(obj) {
+function _typeof11(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof10 = function _typeof362(obj2) {
+ _typeof11 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof10 = function _typeof362(obj2) {
+ _typeof11 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof10(obj);
+ return _typeof11(obj);
}
function _classCallCheck9(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -26697,7 +16394,7 @@ function _inherits8(subClass, superClass) {
_setPrototypeOf8(subClass, superClass);
}
function _setPrototypeOf8(o3, p4) {
- _setPrototypeOf8 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf8 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -26717,7 +16414,7 @@ function _createSuper8(Derived) {
};
}
function _possibleConstructorReturn8(self2, call) {
- if (call && (_typeof10(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof11(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized8(self2);
@@ -26744,7 +16441,7 @@ function _isNativeReflectConstruct8() {
}
}
function _getPrototypeOf8(o3) {
- _getPrototypeOf8 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf8 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf8(o3);
@@ -26758,11 +16455,11 @@ function _defineProperty8(obj, key, value) {
return obj;
}
var StandAloneQuarterParser = /* @__PURE__ */ function(_Parser) {
- _inherits8(StandAloneQuarterParser22, _Parser);
- var _super = _createSuper8(StandAloneQuarterParser22);
- function StandAloneQuarterParser22() {
+ _inherits8(StandAloneQuarterParser2, _Parser);
+ var _super = _createSuper8(StandAloneQuarterParser2);
+ function StandAloneQuarterParser2() {
var _this;
- _classCallCheck9(this, StandAloneQuarterParser22);
+ _classCallCheck9(this, StandAloneQuarterParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -26771,7 +16468,7 @@ var StandAloneQuarterParser = /* @__PURE__ */ function(_Parser) {
_defineProperty8(_assertThisInitialized8(_this), "incompatibleTokens", ["Y", "R", "Q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass9(StandAloneQuarterParser22, [{
+ _createClass9(StandAloneQuarterParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -26822,20 +16519,20 @@ var StandAloneQuarterParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return StandAloneQuarterParser22;
+ return StandAloneQuarterParser2;
}(Parser);
-function _typeof11(obj) {
+function _typeof12(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof11 = function _typeof362(obj2) {
+ _typeof12 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof11 = function _typeof362(obj2) {
+ _typeof12 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof11(obj);
+ return _typeof12(obj);
}
function _classCallCheck10(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -26868,7 +16565,7 @@ function _inherits9(subClass, superClass) {
_setPrototypeOf9(subClass, superClass);
}
function _setPrototypeOf9(o3, p4) {
- _setPrototypeOf9 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf9 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -26888,7 +16585,7 @@ function _createSuper9(Derived) {
};
}
function _possibleConstructorReturn9(self2, call) {
- if (call && (_typeof11(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof12(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized9(self2);
@@ -26915,7 +16612,7 @@ function _isNativeReflectConstruct9() {
}
}
function _getPrototypeOf9(o3) {
- _getPrototypeOf9 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf9 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf9(o3);
@@ -26929,11 +16626,11 @@ function _defineProperty9(obj, key, value) {
return obj;
}
var MonthParser = /* @__PURE__ */ function(_Parser) {
- _inherits9(MonthParser22, _Parser);
- var _super = _createSuper9(MonthParser22);
- function MonthParser22() {
+ _inherits9(MonthParser2, _Parser);
+ var _super = _createSuper9(MonthParser2);
+ function MonthParser2() {
var _this;
- _classCallCheck10(this, MonthParser22);
+ _classCallCheck10(this, MonthParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -26942,7 +16639,7 @@ var MonthParser = /* @__PURE__ */ function(_Parser) {
_defineProperty9(_assertThisInitialized9(_this), "priority", 110);
return _this;
}
- _createClass10(MonthParser22, [{
+ _createClass10(MonthParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
var valueCallback32 = function valueCallback42(value) {
@@ -26997,20 +16694,20 @@ var MonthParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return MonthParser22;
+ return MonthParser2;
}(Parser);
-function _typeof12(obj) {
+function _typeof13(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof12 = function _typeof362(obj2) {
+ _typeof13 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof12 = function _typeof362(obj2) {
+ _typeof13 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof12(obj);
+ return _typeof13(obj);
}
function _classCallCheck11(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -27043,7 +16740,7 @@ function _inherits10(subClass, superClass) {
_setPrototypeOf10(subClass, superClass);
}
function _setPrototypeOf10(o3, p4) {
- _setPrototypeOf10 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf10 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -27063,7 +16760,7 @@ function _createSuper10(Derived) {
};
}
function _possibleConstructorReturn10(self2, call) {
- if (call && (_typeof12(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof13(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized10(self2);
@@ -27090,7 +16787,7 @@ function _isNativeReflectConstruct10() {
}
}
function _getPrototypeOf10(o3) {
- _getPrototypeOf10 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf10 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf10(o3);
@@ -27104,11 +16801,11 @@ function _defineProperty10(obj, key, value) {
return obj;
}
var StandAloneMonthParser = /* @__PURE__ */ function(_Parser) {
- _inherits10(StandAloneMonthParser22, _Parser);
- var _super = _createSuper10(StandAloneMonthParser22);
- function StandAloneMonthParser22() {
+ _inherits10(StandAloneMonthParser2, _Parser);
+ var _super = _createSuper10(StandAloneMonthParser2);
+ function StandAloneMonthParser2() {
var _this;
- _classCallCheck11(this, StandAloneMonthParser22);
+ _classCallCheck11(this, StandAloneMonthParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -27117,7 +16814,7 @@ var StandAloneMonthParser = /* @__PURE__ */ function(_Parser) {
_defineProperty10(_assertThisInitialized10(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "w", "I", "D", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass11(StandAloneMonthParser22, [{
+ _createClass11(StandAloneMonthParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
var valueCallback32 = function valueCallback42(value) {
@@ -27172,7 +16869,7 @@ var StandAloneMonthParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return StandAloneMonthParser22;
+ return StandAloneMonthParser2;
}(Parser);
function setUTCWeek(dirtyDate, dirtyWeek, options) {
requiredArgs(2, arguments);
@@ -27182,18 +16879,18 @@ function setUTCWeek(dirtyDate, dirtyWeek, options) {
date.setUTCDate(date.getUTCDate() - diff * 7);
return date;
}
-function _typeof13(obj) {
+function _typeof14(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof13 = function _typeof362(obj2) {
+ _typeof14 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof13 = function _typeof362(obj2) {
+ _typeof14 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof13(obj);
+ return _typeof14(obj);
}
function _classCallCheck12(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -27226,7 +16923,7 @@ function _inherits11(subClass, superClass) {
_setPrototypeOf11(subClass, superClass);
}
function _setPrototypeOf11(o3, p4) {
- _setPrototypeOf11 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf11 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -27246,7 +16943,7 @@ function _createSuper11(Derived) {
};
}
function _possibleConstructorReturn11(self2, call) {
- if (call && (_typeof13(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof14(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized11(self2);
@@ -27273,7 +16970,7 @@ function _isNativeReflectConstruct11() {
}
}
function _getPrototypeOf11(o3) {
- _getPrototypeOf11 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf11 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf11(o3);
@@ -27287,11 +16984,11 @@ function _defineProperty11(obj, key, value) {
return obj;
}
var LocalWeekParser = /* @__PURE__ */ function(_Parser) {
- _inherits11(LocalWeekParser22, _Parser);
- var _super = _createSuper11(LocalWeekParser22);
- function LocalWeekParser22() {
+ _inherits11(LocalWeekParser2, _Parser);
+ var _super = _createSuper11(LocalWeekParser2);
+ function LocalWeekParser2() {
var _this;
- _classCallCheck12(this, LocalWeekParser22);
+ _classCallCheck12(this, LocalWeekParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -27300,7 +16997,7 @@ var LocalWeekParser = /* @__PURE__ */ function(_Parser) {
_defineProperty11(_assertThisInitialized11(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "i", "t", "T"]);
return _this;
}
- _createClass12(LocalWeekParser22, [{
+ _createClass12(LocalWeekParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -27325,7 +17022,7 @@ var LocalWeekParser = /* @__PURE__ */ function(_Parser) {
return startOfUTCWeek(setUTCWeek(date, value, options), options);
}
}]);
- return LocalWeekParser22;
+ return LocalWeekParser2;
}(Parser);
function setUTCISOWeek(dirtyDate, dirtyISOWeek) {
requiredArgs(2, arguments);
@@ -27335,18 +17032,18 @@ function setUTCISOWeek(dirtyDate, dirtyISOWeek) {
date.setUTCDate(date.getUTCDate() - diff * 7);
return date;
}
-function _typeof14(obj) {
+function _typeof15(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof14 = function _typeof362(obj2) {
+ _typeof15 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof14 = function _typeof362(obj2) {
+ _typeof15 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof14(obj);
+ return _typeof15(obj);
}
function _classCallCheck13(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -27379,7 +17076,7 @@ function _inherits12(subClass, superClass) {
_setPrototypeOf12(subClass, superClass);
}
function _setPrototypeOf12(o3, p4) {
- _setPrototypeOf12 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf12 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -27399,7 +17096,7 @@ function _createSuper12(Derived) {
};
}
function _possibleConstructorReturn12(self2, call) {
- if (call && (_typeof14(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof15(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized12(self2);
@@ -27426,7 +17123,7 @@ function _isNativeReflectConstruct12() {
}
}
function _getPrototypeOf12(o3) {
- _getPrototypeOf12 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf12 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf12(o3);
@@ -27440,11 +17137,11 @@ function _defineProperty12(obj, key, value) {
return obj;
}
var ISOWeekParser = /* @__PURE__ */ function(_Parser) {
- _inherits12(ISOWeekParser22, _Parser);
- var _super = _createSuper12(ISOWeekParser22);
- function ISOWeekParser22() {
+ _inherits12(ISOWeekParser2, _Parser);
+ var _super = _createSuper12(ISOWeekParser2);
+ function ISOWeekParser2() {
var _this;
- _classCallCheck13(this, ISOWeekParser22);
+ _classCallCheck13(this, ISOWeekParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -27453,7 +17150,7 @@ var ISOWeekParser = /* @__PURE__ */ function(_Parser) {
_defineProperty12(_assertThisInitialized12(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]);
return _this;
}
- _createClass13(ISOWeekParser22, [{
+ _createClass13(ISOWeekParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -27478,20 +17175,20 @@ var ISOWeekParser = /* @__PURE__ */ function(_Parser) {
return startOfUTCISOWeek(setUTCISOWeek(date, value));
}
}]);
- return ISOWeekParser22;
+ return ISOWeekParser2;
}(Parser);
-function _typeof15(obj) {
+function _typeof16(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof15 = function _typeof362(obj2) {
+ _typeof16 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof15 = function _typeof362(obj2) {
+ _typeof16 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof15(obj);
+ return _typeof16(obj);
}
function _classCallCheck14(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -27524,7 +17221,7 @@ function _inherits13(subClass, superClass) {
_setPrototypeOf13(subClass, superClass);
}
function _setPrototypeOf13(o3, p4) {
- _setPrototypeOf13 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf13 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -27544,7 +17241,7 @@ function _createSuper13(Derived) {
};
}
function _possibleConstructorReturn13(self2, call) {
- if (call && (_typeof15(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof16(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized13(self2);
@@ -27571,7 +17268,7 @@ function _isNativeReflectConstruct13() {
}
}
function _getPrototypeOf13(o3) {
- _getPrototypeOf13 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf13 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf13(o3);
@@ -27587,11 +17284,11 @@ function _defineProperty13(obj, key, value) {
var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var DateParser = /* @__PURE__ */ function(_Parser) {
- _inherits13(DateParser22, _Parser);
- var _super = _createSuper13(DateParser22);
- function DateParser22() {
+ _inherits13(DateParser2, _Parser);
+ var _super = _createSuper13(DateParser2);
+ function DateParser2() {
var _this;
- _classCallCheck14(this, DateParser22);
+ _classCallCheck14(this, DateParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -27601,7 +17298,7 @@ var DateParser = /* @__PURE__ */ function(_Parser) {
_defineProperty13(_assertThisInitialized13(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "w", "I", "D", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass14(DateParser22, [{
+ _createClass14(DateParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -27635,20 +17332,20 @@ var DateParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return DateParser22;
+ return DateParser2;
}(Parser);
-function _typeof16(obj) {
+function _typeof17(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof16 = function _typeof362(obj2) {
+ _typeof17 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof16 = function _typeof362(obj2) {
+ _typeof17 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof16(obj);
+ return _typeof17(obj);
}
function _classCallCheck15(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -27681,7 +17378,7 @@ function _inherits14(subClass, superClass) {
_setPrototypeOf14(subClass, superClass);
}
function _setPrototypeOf14(o3, p4) {
- _setPrototypeOf14 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf14 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -27701,7 +17398,7 @@ function _createSuper14(Derived) {
};
}
function _possibleConstructorReturn14(self2, call) {
- if (call && (_typeof16(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof17(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized14(self2);
@@ -27728,7 +17425,7 @@ function _isNativeReflectConstruct14() {
}
}
function _getPrototypeOf14(o3) {
- _getPrototypeOf14 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf14 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf14(o3);
@@ -27742,11 +17439,11 @@ function _defineProperty14(obj, key, value) {
return obj;
}
var DayOfYearParser = /* @__PURE__ */ function(_Parser) {
- _inherits14(DayOfYearParser22, _Parser);
- var _super = _createSuper14(DayOfYearParser22);
- function DayOfYearParser22() {
+ _inherits14(DayOfYearParser2, _Parser);
+ var _super = _createSuper14(DayOfYearParser2);
+ function DayOfYearParser2() {
var _this;
- _classCallCheck15(this, DayOfYearParser22);
+ _classCallCheck15(this, DayOfYearParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -27756,7 +17453,7 @@ var DayOfYearParser = /* @__PURE__ */ function(_Parser) {
_defineProperty14(_assertThisInitialized14(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "L", "w", "I", "d", "E", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass15(DayOfYearParser22, [{
+ _createClass15(DayOfYearParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -27790,7 +17487,7 @@ var DayOfYearParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return DayOfYearParser22;
+ return DayOfYearParser2;
}(Parser);
function setUTCDay(dirtyDate, dirtyDay, options) {
var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
@@ -27809,18 +17506,18 @@ function setUTCDay(dirtyDate, dirtyDay, options) {
date.setUTCDate(date.getUTCDate() + diff);
return date;
}
-function _typeof17(obj) {
+function _typeof18(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof17 = function _typeof362(obj2) {
+ _typeof18 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof17 = function _typeof362(obj2) {
+ _typeof18 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof17(obj);
+ return _typeof18(obj);
}
function _classCallCheck16(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -27853,7 +17550,7 @@ function _inherits15(subClass, superClass) {
_setPrototypeOf15(subClass, superClass);
}
function _setPrototypeOf15(o3, p4) {
- _setPrototypeOf15 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf15 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -27873,7 +17570,7 @@ function _createSuper15(Derived) {
};
}
function _possibleConstructorReturn15(self2, call) {
- if (call && (_typeof17(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof18(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized15(self2);
@@ -27900,7 +17597,7 @@ function _isNativeReflectConstruct15() {
}
}
function _getPrototypeOf15(o3) {
- _getPrototypeOf15 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf15 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf15(o3);
@@ -27914,11 +17611,11 @@ function _defineProperty15(obj, key, value) {
return obj;
}
var DayParser = /* @__PURE__ */ function(_Parser) {
- _inherits15(DayParser22, _Parser);
- var _super = _createSuper15(DayParser22);
- function DayParser22() {
+ _inherits15(DayParser2, _Parser);
+ var _super = _createSuper15(DayParser2);
+ function DayParser2() {
var _this;
- _classCallCheck16(this, DayParser22);
+ _classCallCheck16(this, DayParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -27927,7 +17624,7 @@ var DayParser = /* @__PURE__ */ function(_Parser) {
_defineProperty15(_assertThisInitialized15(_this), "incompatibleTokens", ["D", "i", "e", "c", "t", "T"]);
return _this;
}
- _createClass16(DayParser22, [{
+ _createClass16(DayParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -27987,20 +17684,20 @@ var DayParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return DayParser22;
+ return DayParser2;
}(Parser);
-function _typeof18(obj) {
+function _typeof19(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof18 = function _typeof362(obj2) {
+ _typeof19 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof18 = function _typeof362(obj2) {
+ _typeof19 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof18(obj);
+ return _typeof19(obj);
}
function _classCallCheck17(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -28033,7 +17730,7 @@ function _inherits16(subClass, superClass) {
_setPrototypeOf16(subClass, superClass);
}
function _setPrototypeOf16(o3, p4) {
- _setPrototypeOf16 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf16 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -28053,7 +17750,7 @@ function _createSuper16(Derived) {
};
}
function _possibleConstructorReturn16(self2, call) {
- if (call && (_typeof18(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof19(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized16(self2);
@@ -28080,7 +17777,7 @@ function _isNativeReflectConstruct16() {
}
}
function _getPrototypeOf16(o3) {
- _getPrototypeOf16 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf16 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf16(o3);
@@ -28094,11 +17791,11 @@ function _defineProperty16(obj, key, value) {
return obj;
}
var LocalDayParser = /* @__PURE__ */ function(_Parser) {
- _inherits16(LocalDayParser22, _Parser);
- var _super = _createSuper16(LocalDayParser22);
- function LocalDayParser22() {
+ _inherits16(LocalDayParser2, _Parser);
+ var _super = _createSuper16(LocalDayParser2);
+ function LocalDayParser2() {
var _this;
- _classCallCheck17(this, LocalDayParser22);
+ _classCallCheck17(this, LocalDayParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -28107,7 +17804,7 @@ var LocalDayParser = /* @__PURE__ */ function(_Parser) {
_defineProperty16(_assertThisInitialized16(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "c", "t", "T"]);
return _this;
}
- _createClass17(LocalDayParser22, [{
+ _createClass17(LocalDayParser2, [{
key: "parse",
value: function parse2(dateString, token, match22, options) {
var valueCallback32 = function valueCallback42(value) {
@@ -28176,20 +17873,20 @@ var LocalDayParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return LocalDayParser22;
+ return LocalDayParser2;
}(Parser);
-function _typeof19(obj) {
+function _typeof20(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof19 = function _typeof362(obj2) {
+ _typeof20 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof19 = function _typeof362(obj2) {
+ _typeof20 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof19(obj);
+ return _typeof20(obj);
}
function _classCallCheck18(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -28222,7 +17919,7 @@ function _inherits17(subClass, superClass) {
_setPrototypeOf17(subClass, superClass);
}
function _setPrototypeOf17(o3, p4) {
- _setPrototypeOf17 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf17 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -28242,7 +17939,7 @@ function _createSuper17(Derived) {
};
}
function _possibleConstructorReturn17(self2, call) {
- if (call && (_typeof19(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof20(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized17(self2);
@@ -28269,7 +17966,7 @@ function _isNativeReflectConstruct17() {
}
}
function _getPrototypeOf17(o3) {
- _getPrototypeOf17 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf17 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf17(o3);
@@ -28283,11 +17980,11 @@ function _defineProperty17(obj, key, value) {
return obj;
}
var StandAloneLocalDayParser = /* @__PURE__ */ function(_Parser) {
- _inherits17(StandAloneLocalDayParser22, _Parser);
- var _super = _createSuper17(StandAloneLocalDayParser22);
- function StandAloneLocalDayParser22() {
+ _inherits17(StandAloneLocalDayParser2, _Parser);
+ var _super = _createSuper17(StandAloneLocalDayParser2);
+ function StandAloneLocalDayParser2() {
var _this;
- _classCallCheck18(this, StandAloneLocalDayParser22);
+ _classCallCheck18(this, StandAloneLocalDayParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -28296,7 +17993,7 @@ var StandAloneLocalDayParser = /* @__PURE__ */ function(_Parser) {
_defineProperty17(_assertThisInitialized17(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "e", "t", "T"]);
return _this;
}
- _createClass18(StandAloneLocalDayParser22, [{
+ _createClass18(StandAloneLocalDayParser2, [{
key: "parse",
value: function parse2(dateString, token, match22, options) {
var valueCallback32 = function valueCallback42(value) {
@@ -28365,7 +18062,7 @@ var StandAloneLocalDayParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return StandAloneLocalDayParser22;
+ return StandAloneLocalDayParser2;
}(Parser);
function setUTCISODay(dirtyDate, dirtyDay) {
requiredArgs(2, arguments);
@@ -28382,18 +18079,18 @@ function setUTCISODay(dirtyDate, dirtyDay) {
date.setUTCDate(date.getUTCDate() + diff);
return date;
}
-function _typeof20(obj) {
+function _typeof21(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof20 = function _typeof362(obj2) {
+ _typeof21 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof20 = function _typeof362(obj2) {
+ _typeof21 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof20(obj);
+ return _typeof21(obj);
}
function _classCallCheck19(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -28426,7 +18123,7 @@ function _inherits18(subClass, superClass) {
_setPrototypeOf18(subClass, superClass);
}
function _setPrototypeOf18(o3, p4) {
- _setPrototypeOf18 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf18 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -28446,7 +18143,7 @@ function _createSuper18(Derived) {
};
}
function _possibleConstructorReturn18(self2, call) {
- if (call && (_typeof20(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof21(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized18(self2);
@@ -28473,7 +18170,7 @@ function _isNativeReflectConstruct18() {
}
}
function _getPrototypeOf18(o3) {
- _getPrototypeOf18 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf18 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf18(o3);
@@ -28487,11 +18184,11 @@ function _defineProperty18(obj, key, value) {
return obj;
}
var ISODayParser = /* @__PURE__ */ function(_Parser) {
- _inherits18(ISODayParser22, _Parser);
- var _super = _createSuper18(ISODayParser22);
- function ISODayParser22() {
+ _inherits18(ISODayParser2, _Parser);
+ var _super = _createSuper18(ISODayParser2);
+ function ISODayParser2() {
var _this;
- _classCallCheck19(this, ISODayParser22);
+ _classCallCheck19(this, ISODayParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -28500,7 +18197,7 @@ var ISODayParser = /* @__PURE__ */ function(_Parser) {
_defineProperty18(_assertThisInitialized18(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "E", "e", "c", "t", "T"]);
return _this;
}
- _createClass19(ISODayParser22, [{
+ _createClass19(ISODayParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
var valueCallback32 = function valueCallback42(value) {
@@ -28571,20 +18268,20 @@ var ISODayParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return ISODayParser22;
+ return ISODayParser2;
}(Parser);
-function _typeof21(obj) {
+function _typeof22(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof21 = function _typeof362(obj2) {
+ _typeof22 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof21 = function _typeof362(obj2) {
+ _typeof22 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof21(obj);
+ return _typeof22(obj);
}
function _classCallCheck20(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -28617,7 +18314,7 @@ function _inherits19(subClass, superClass) {
_setPrototypeOf19(subClass, superClass);
}
function _setPrototypeOf19(o3, p4) {
- _setPrototypeOf19 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf19 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -28637,7 +18334,7 @@ function _createSuper19(Derived) {
};
}
function _possibleConstructorReturn19(self2, call) {
- if (call && (_typeof21(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof22(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized19(self2);
@@ -28664,7 +18361,7 @@ function _isNativeReflectConstruct19() {
}
}
function _getPrototypeOf19(o3) {
- _getPrototypeOf19 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf19 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf19(o3);
@@ -28678,11 +18375,11 @@ function _defineProperty19(obj, key, value) {
return obj;
}
var AMPMParser = /* @__PURE__ */ function(_Parser) {
- _inherits19(AMPMParser22, _Parser);
- var _super = _createSuper19(AMPMParser22);
- function AMPMParser22() {
+ _inherits19(AMPMParser2, _Parser);
+ var _super = _createSuper19(AMPMParser2);
+ function AMPMParser2() {
var _this;
- _classCallCheck20(this, AMPMParser22);
+ _classCallCheck20(this, AMPMParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -28691,7 +18388,7 @@ var AMPMParser = /* @__PURE__ */ function(_Parser) {
_defineProperty19(_assertThisInitialized19(_this), "incompatibleTokens", ["b", "B", "H", "k", "t", "T"]);
return _this;
}
- _createClass20(AMPMParser22, [{
+ _createClass20(AMPMParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -28731,20 +18428,20 @@ var AMPMParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return AMPMParser22;
+ return AMPMParser2;
}(Parser);
-function _typeof22(obj) {
+function _typeof23(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof22 = function _typeof362(obj2) {
+ _typeof23 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof22 = function _typeof362(obj2) {
+ _typeof23 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof22(obj);
+ return _typeof23(obj);
}
function _classCallCheck21(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -28777,7 +18474,7 @@ function _inherits20(subClass, superClass) {
_setPrototypeOf20(subClass, superClass);
}
function _setPrototypeOf20(o3, p4) {
- _setPrototypeOf20 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf20 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -28797,7 +18494,7 @@ function _createSuper20(Derived) {
};
}
function _possibleConstructorReturn20(self2, call) {
- if (call && (_typeof22(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof23(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized20(self2);
@@ -28824,7 +18521,7 @@ function _isNativeReflectConstruct20() {
}
}
function _getPrototypeOf20(o3) {
- _getPrototypeOf20 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf20 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf20(o3);
@@ -28838,11 +18535,11 @@ function _defineProperty20(obj, key, value) {
return obj;
}
var AMPMMidnightParser = /* @__PURE__ */ function(_Parser) {
- _inherits20(AMPMMidnightParser22, _Parser);
- var _super = _createSuper20(AMPMMidnightParser22);
- function AMPMMidnightParser22() {
+ _inherits20(AMPMMidnightParser2, _Parser);
+ var _super = _createSuper20(AMPMMidnightParser2);
+ function AMPMMidnightParser2() {
var _this;
- _classCallCheck21(this, AMPMMidnightParser22);
+ _classCallCheck21(this, AMPMMidnightParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -28851,7 +18548,7 @@ var AMPMMidnightParser = /* @__PURE__ */ function(_Parser) {
_defineProperty20(_assertThisInitialized20(_this), "incompatibleTokens", ["a", "B", "H", "k", "t", "T"]);
return _this;
}
- _createClass21(AMPMMidnightParser22, [{
+ _createClass21(AMPMMidnightParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -28891,20 +18588,20 @@ var AMPMMidnightParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return AMPMMidnightParser22;
+ return AMPMMidnightParser2;
}(Parser);
-function _typeof23(obj) {
+function _typeof24(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof23 = function _typeof362(obj2) {
+ _typeof24 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof23 = function _typeof362(obj2) {
+ _typeof24 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof23(obj);
+ return _typeof24(obj);
}
function _classCallCheck22(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -28937,7 +18634,7 @@ function _inherits21(subClass, superClass) {
_setPrototypeOf21(subClass, superClass);
}
function _setPrototypeOf21(o3, p4) {
- _setPrototypeOf21 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf21 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -28957,7 +18654,7 @@ function _createSuper21(Derived) {
};
}
function _possibleConstructorReturn21(self2, call) {
- if (call && (_typeof23(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof24(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized21(self2);
@@ -28984,7 +18681,7 @@ function _isNativeReflectConstruct21() {
}
}
function _getPrototypeOf21(o3) {
- _getPrototypeOf21 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf21 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf21(o3);
@@ -28998,11 +18695,11 @@ function _defineProperty21(obj, key, value) {
return obj;
}
var DayPeriodParser = /* @__PURE__ */ function(_Parser) {
- _inherits21(DayPeriodParser22, _Parser);
- var _super = _createSuper21(DayPeriodParser22);
- function DayPeriodParser22() {
+ _inherits21(DayPeriodParser2, _Parser);
+ var _super = _createSuper21(DayPeriodParser2);
+ function DayPeriodParser2() {
var _this;
- _classCallCheck22(this, DayPeriodParser22);
+ _classCallCheck22(this, DayPeriodParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -29011,7 +18708,7 @@ var DayPeriodParser = /* @__PURE__ */ function(_Parser) {
_defineProperty21(_assertThisInitialized21(_this), "incompatibleTokens", ["a", "b", "t", "T"]);
return _this;
}
- _createClass22(DayPeriodParser22, [{
+ _createClass22(DayPeriodParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -29051,20 +18748,20 @@ var DayPeriodParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return DayPeriodParser22;
+ return DayPeriodParser2;
}(Parser);
-function _typeof24(obj) {
+function _typeof25(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof24 = function _typeof362(obj2) {
+ _typeof25 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof24 = function _typeof362(obj2) {
+ _typeof25 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof24(obj);
+ return _typeof25(obj);
}
function _classCallCheck23(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -29097,7 +18794,7 @@ function _inherits22(subClass, superClass) {
_setPrototypeOf22(subClass, superClass);
}
function _setPrototypeOf22(o3, p4) {
- _setPrototypeOf22 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf22 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -29117,7 +18814,7 @@ function _createSuper22(Derived) {
};
}
function _possibleConstructorReturn22(self2, call) {
- if (call && (_typeof24(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof25(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized22(self2);
@@ -29144,7 +18841,7 @@ function _isNativeReflectConstruct22() {
}
}
function _getPrototypeOf22(o3) {
- _getPrototypeOf22 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf22 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf22(o3);
@@ -29158,11 +18855,11 @@ function _defineProperty22(obj, key, value) {
return obj;
}
var Hour1to12Parser = /* @__PURE__ */ function(_Parser) {
- _inherits22(Hour1to12Parser22, _Parser);
- var _super = _createSuper22(Hour1to12Parser22);
- function Hour1to12Parser22() {
+ _inherits22(Hour1to12Parser2, _Parser);
+ var _super = _createSuper22(Hour1to12Parser2);
+ function Hour1to12Parser2() {
var _this;
- _classCallCheck23(this, Hour1to12Parser22);
+ _classCallCheck23(this, Hour1to12Parser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -29171,7 +18868,7 @@ var Hour1to12Parser = /* @__PURE__ */ function(_Parser) {
_defineProperty22(_assertThisInitialized22(_this), "incompatibleTokens", ["H", "K", "k", "t", "T"]);
return _this;
}
- _createClass23(Hour1to12Parser22, [{
+ _createClass23(Hour1to12Parser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -29204,20 +18901,20 @@ var Hour1to12Parser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return Hour1to12Parser22;
+ return Hour1to12Parser2;
}(Parser);
-function _typeof25(obj) {
+function _typeof26(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof25 = function _typeof362(obj2) {
+ _typeof26 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof25 = function _typeof362(obj2) {
+ _typeof26 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof25(obj);
+ return _typeof26(obj);
}
function _classCallCheck24(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -29250,7 +18947,7 @@ function _inherits23(subClass, superClass) {
_setPrototypeOf23(subClass, superClass);
}
function _setPrototypeOf23(o3, p4) {
- _setPrototypeOf23 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf23 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -29270,7 +18967,7 @@ function _createSuper23(Derived) {
};
}
function _possibleConstructorReturn23(self2, call) {
- if (call && (_typeof25(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof26(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized23(self2);
@@ -29297,7 +18994,7 @@ function _isNativeReflectConstruct23() {
}
}
function _getPrototypeOf23(o3) {
- _getPrototypeOf23 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf23 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf23(o3);
@@ -29311,11 +19008,11 @@ function _defineProperty23(obj, key, value) {
return obj;
}
var Hour0to23Parser = /* @__PURE__ */ function(_Parser) {
- _inherits23(Hour0to23Parser22, _Parser);
- var _super = _createSuper23(Hour0to23Parser22);
- function Hour0to23Parser22() {
+ _inherits23(Hour0to23Parser2, _Parser);
+ var _super = _createSuper23(Hour0to23Parser2);
+ function Hour0to23Parser2() {
var _this;
- _classCallCheck24(this, Hour0to23Parser22);
+ _classCallCheck24(this, Hour0to23Parser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -29324,7 +19021,7 @@ var Hour0to23Parser = /* @__PURE__ */ function(_Parser) {
_defineProperty23(_assertThisInitialized23(_this), "incompatibleTokens", ["a", "b", "h", "K", "k", "t", "T"]);
return _this;
}
- _createClass24(Hour0to23Parser22, [{
+ _createClass24(Hour0to23Parser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -29350,20 +19047,20 @@ var Hour0to23Parser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return Hour0to23Parser22;
+ return Hour0to23Parser2;
}(Parser);
-function _typeof26(obj) {
+function _typeof27(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof26 = function _typeof362(obj2) {
+ _typeof27 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof26 = function _typeof362(obj2) {
+ _typeof27 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof26(obj);
+ return _typeof27(obj);
}
function _classCallCheck25(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -29396,7 +19093,7 @@ function _inherits24(subClass, superClass) {
_setPrototypeOf24(subClass, superClass);
}
function _setPrototypeOf24(o3, p4) {
- _setPrototypeOf24 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf24 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -29416,7 +19113,7 @@ function _createSuper24(Derived) {
};
}
function _possibleConstructorReturn24(self2, call) {
- if (call && (_typeof26(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof27(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized24(self2);
@@ -29443,7 +19140,7 @@ function _isNativeReflectConstruct24() {
}
}
function _getPrototypeOf24(o3) {
- _getPrototypeOf24 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf24 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf24(o3);
@@ -29457,11 +19154,11 @@ function _defineProperty24(obj, key, value) {
return obj;
}
var Hour0To11Parser = /* @__PURE__ */ function(_Parser) {
- _inherits24(Hour0To11Parser22, _Parser);
- var _super = _createSuper24(Hour0To11Parser22);
- function Hour0To11Parser22() {
+ _inherits24(Hour0To11Parser2, _Parser);
+ var _super = _createSuper24(Hour0To11Parser2);
+ function Hour0To11Parser2() {
var _this;
- _classCallCheck25(this, Hour0To11Parser22);
+ _classCallCheck25(this, Hour0To11Parser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -29470,7 +19167,7 @@ var Hour0To11Parser = /* @__PURE__ */ function(_Parser) {
_defineProperty24(_assertThisInitialized24(_this), "incompatibleTokens", ["h", "H", "k", "t", "T"]);
return _this;
}
- _createClass25(Hour0To11Parser22, [{
+ _createClass25(Hour0To11Parser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -29501,20 +19198,20 @@ var Hour0To11Parser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return Hour0To11Parser22;
+ return Hour0To11Parser2;
}(Parser);
-function _typeof27(obj) {
+function _typeof28(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof27 = function _typeof362(obj2) {
+ _typeof28 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof27 = function _typeof362(obj2) {
+ _typeof28 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof27(obj);
+ return _typeof28(obj);
}
function _classCallCheck26(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -29547,7 +19244,7 @@ function _inherits25(subClass, superClass) {
_setPrototypeOf25(subClass, superClass);
}
function _setPrototypeOf25(o3, p4) {
- _setPrototypeOf25 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf25 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -29567,7 +19264,7 @@ function _createSuper25(Derived) {
};
}
function _possibleConstructorReturn25(self2, call) {
- if (call && (_typeof27(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof28(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized25(self2);
@@ -29594,7 +19291,7 @@ function _isNativeReflectConstruct25() {
}
}
function _getPrototypeOf25(o3) {
- _getPrototypeOf25 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf25 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf25(o3);
@@ -29608,11 +19305,11 @@ function _defineProperty25(obj, key, value) {
return obj;
}
var Hour1To24Parser = /* @__PURE__ */ function(_Parser) {
- _inherits25(Hour1To24Parser22, _Parser);
- var _super = _createSuper25(Hour1To24Parser22);
- function Hour1To24Parser22() {
+ _inherits25(Hour1To24Parser2, _Parser);
+ var _super = _createSuper25(Hour1To24Parser2);
+ function Hour1To24Parser2() {
var _this;
- _classCallCheck26(this, Hour1To24Parser22);
+ _classCallCheck26(this, Hour1To24Parser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -29621,7 +19318,7 @@ var Hour1To24Parser = /* @__PURE__ */ function(_Parser) {
_defineProperty25(_assertThisInitialized25(_this), "incompatibleTokens", ["a", "b", "h", "H", "K", "t", "T"]);
return _this;
}
- _createClass26(Hour1To24Parser22, [{
+ _createClass26(Hour1To24Parser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -29648,20 +19345,20 @@ var Hour1To24Parser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return Hour1To24Parser22;
+ return Hour1To24Parser2;
}(Parser);
-function _typeof28(obj) {
+function _typeof29(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof28 = function _typeof362(obj2) {
+ _typeof29 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof28 = function _typeof362(obj2) {
+ _typeof29 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof28(obj);
+ return _typeof29(obj);
}
function _classCallCheck27(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -29694,7 +19391,7 @@ function _inherits26(subClass, superClass) {
_setPrototypeOf26(subClass, superClass);
}
function _setPrototypeOf26(o3, p4) {
- _setPrototypeOf26 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf26 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -29714,7 +19411,7 @@ function _createSuper26(Derived) {
};
}
function _possibleConstructorReturn26(self2, call) {
- if (call && (_typeof28(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof29(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized26(self2);
@@ -29741,7 +19438,7 @@ function _isNativeReflectConstruct26() {
}
}
function _getPrototypeOf26(o3) {
- _getPrototypeOf26 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf26 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf26(o3);
@@ -29755,11 +19452,11 @@ function _defineProperty26(obj, key, value) {
return obj;
}
var MinuteParser = /* @__PURE__ */ function(_Parser) {
- _inherits26(MinuteParser22, _Parser);
- var _super = _createSuper26(MinuteParser22);
- function MinuteParser22() {
+ _inherits26(MinuteParser2, _Parser);
+ var _super = _createSuper26(MinuteParser2);
+ function MinuteParser2() {
var _this;
- _classCallCheck27(this, MinuteParser22);
+ _classCallCheck27(this, MinuteParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -29768,7 +19465,7 @@ var MinuteParser = /* @__PURE__ */ function(_Parser) {
_defineProperty26(_assertThisInitialized26(_this), "incompatibleTokens", ["t", "T"]);
return _this;
}
- _createClass27(MinuteParser22, [{
+ _createClass27(MinuteParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -29794,20 +19491,20 @@ var MinuteParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return MinuteParser22;
+ return MinuteParser2;
}(Parser);
-function _typeof29(obj) {
+function _typeof30(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof29 = function _typeof362(obj2) {
+ _typeof30 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof29 = function _typeof362(obj2) {
+ _typeof30 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof29(obj);
+ return _typeof30(obj);
}
function _classCallCheck28(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -29840,7 +19537,7 @@ function _inherits27(subClass, superClass) {
_setPrototypeOf27(subClass, superClass);
}
function _setPrototypeOf27(o3, p4) {
- _setPrototypeOf27 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf27 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -29860,7 +19557,7 @@ function _createSuper27(Derived) {
};
}
function _possibleConstructorReturn27(self2, call) {
- if (call && (_typeof29(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof30(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized27(self2);
@@ -29887,7 +19584,7 @@ function _isNativeReflectConstruct27() {
}
}
function _getPrototypeOf27(o3) {
- _getPrototypeOf27 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf27 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf27(o3);
@@ -29901,11 +19598,11 @@ function _defineProperty27(obj, key, value) {
return obj;
}
var SecondParser = /* @__PURE__ */ function(_Parser) {
- _inherits27(SecondParser22, _Parser);
- var _super = _createSuper27(SecondParser22);
- function SecondParser22() {
+ _inherits27(SecondParser2, _Parser);
+ var _super = _createSuper27(SecondParser2);
+ function SecondParser2() {
var _this;
- _classCallCheck28(this, SecondParser22);
+ _classCallCheck28(this, SecondParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -29914,7 +19611,7 @@ var SecondParser = /* @__PURE__ */ function(_Parser) {
_defineProperty27(_assertThisInitialized27(_this), "incompatibleTokens", ["t", "T"]);
return _this;
}
- _createClass28(SecondParser22, [{
+ _createClass28(SecondParser2, [{
key: "parse",
value: function parse2(dateString, token, match22) {
switch (token) {
@@ -29940,20 +19637,20 @@ var SecondParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return SecondParser22;
+ return SecondParser2;
}(Parser);
-function _typeof30(obj) {
+function _typeof31(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof30 = function _typeof362(obj2) {
+ _typeof31 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof30 = function _typeof362(obj2) {
+ _typeof31 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof30(obj);
+ return _typeof31(obj);
}
function _classCallCheck29(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -29986,7 +19683,7 @@ function _inherits28(subClass, superClass) {
_setPrototypeOf28(subClass, superClass);
}
function _setPrototypeOf28(o3, p4) {
- _setPrototypeOf28 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf28 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -30006,7 +19703,7 @@ function _createSuper28(Derived) {
};
}
function _possibleConstructorReturn28(self2, call) {
- if (call && (_typeof30(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof31(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized28(self2);
@@ -30033,7 +19730,7 @@ function _isNativeReflectConstruct28() {
}
}
function _getPrototypeOf28(o3) {
- _getPrototypeOf28 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf28 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf28(o3);
@@ -30047,11 +19744,11 @@ function _defineProperty28(obj, key, value) {
return obj;
}
var FractionOfSecondParser = /* @__PURE__ */ function(_Parser) {
- _inherits28(FractionOfSecondParser22, _Parser);
- var _super = _createSuper28(FractionOfSecondParser22);
- function FractionOfSecondParser22() {
+ _inherits28(FractionOfSecondParser2, _Parser);
+ var _super = _createSuper28(FractionOfSecondParser2);
+ function FractionOfSecondParser2() {
var _this;
- _classCallCheck29(this, FractionOfSecondParser22);
+ _classCallCheck29(this, FractionOfSecondParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -30060,7 +19757,7 @@ var FractionOfSecondParser = /* @__PURE__ */ function(_Parser) {
_defineProperty28(_assertThisInitialized28(_this), "incompatibleTokens", ["t", "T"]);
return _this;
}
- _createClass29(FractionOfSecondParser22, [{
+ _createClass29(FractionOfSecondParser2, [{
key: "parse",
value: function parse2(dateString, token) {
var valueCallback32 = function valueCallback42(value) {
@@ -30075,20 +19772,20 @@ var FractionOfSecondParser = /* @__PURE__ */ function(_Parser) {
return date;
}
}]);
- return FractionOfSecondParser22;
+ return FractionOfSecondParser2;
}(Parser);
-function _typeof31(obj) {
+function _typeof32(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof31 = function _typeof362(obj2) {
+ _typeof32 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof31 = function _typeof362(obj2) {
+ _typeof32 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof31(obj);
+ return _typeof32(obj);
}
function _classCallCheck30(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -30121,7 +19818,7 @@ function _inherits29(subClass, superClass) {
_setPrototypeOf29(subClass, superClass);
}
function _setPrototypeOf29(o3, p4) {
- _setPrototypeOf29 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf29 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -30141,7 +19838,7 @@ function _createSuper29(Derived) {
};
}
function _possibleConstructorReturn29(self2, call) {
- if (call && (_typeof31(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof32(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized29(self2);
@@ -30168,7 +19865,7 @@ function _isNativeReflectConstruct29() {
}
}
function _getPrototypeOf29(o3) {
- _getPrototypeOf29 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf29 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf29(o3);
@@ -30182,11 +19879,11 @@ function _defineProperty29(obj, key, value) {
return obj;
}
var ISOTimezoneWithZParser = /* @__PURE__ */ function(_Parser) {
- _inherits29(ISOTimezoneWithZParser22, _Parser);
- var _super = _createSuper29(ISOTimezoneWithZParser22);
- function ISOTimezoneWithZParser22() {
+ _inherits29(ISOTimezoneWithZParser2, _Parser);
+ var _super = _createSuper29(ISOTimezoneWithZParser2);
+ function ISOTimezoneWithZParser2() {
var _this;
- _classCallCheck30(this, ISOTimezoneWithZParser22);
+ _classCallCheck30(this, ISOTimezoneWithZParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -30195,7 +19892,7 @@ var ISOTimezoneWithZParser = /* @__PURE__ */ function(_Parser) {
_defineProperty29(_assertThisInitialized29(_this), "incompatibleTokens", ["t", "T", "x"]);
return _this;
}
- _createClass30(ISOTimezoneWithZParser22, [{
+ _createClass30(ISOTimezoneWithZParser2, [{
key: "parse",
value: function parse2(dateString, token) {
switch (token) {
@@ -30221,20 +19918,20 @@ var ISOTimezoneWithZParser = /* @__PURE__ */ function(_Parser) {
return new Date(date.getTime() - value);
}
}]);
- return ISOTimezoneWithZParser22;
+ return ISOTimezoneWithZParser2;
}(Parser);
-function _typeof32(obj) {
+function _typeof33(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof32 = function _typeof362(obj2) {
+ _typeof33 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof32 = function _typeof362(obj2) {
+ _typeof33 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof32(obj);
+ return _typeof33(obj);
}
function _classCallCheck31(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -30267,7 +19964,7 @@ function _inherits30(subClass, superClass) {
_setPrototypeOf30(subClass, superClass);
}
function _setPrototypeOf30(o3, p4) {
- _setPrototypeOf30 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf30 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -30287,7 +19984,7 @@ function _createSuper30(Derived) {
};
}
function _possibleConstructorReturn30(self2, call) {
- if (call && (_typeof32(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof33(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized30(self2);
@@ -30314,7 +20011,7 @@ function _isNativeReflectConstruct30() {
}
}
function _getPrototypeOf30(o3) {
- _getPrototypeOf30 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf30 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf30(o3);
@@ -30328,11 +20025,11 @@ function _defineProperty30(obj, key, value) {
return obj;
}
var ISOTimezoneParser = /* @__PURE__ */ function(_Parser) {
- _inherits30(ISOTimezoneParser22, _Parser);
- var _super = _createSuper30(ISOTimezoneParser22);
- function ISOTimezoneParser22() {
+ _inherits30(ISOTimezoneParser2, _Parser);
+ var _super = _createSuper30(ISOTimezoneParser2);
+ function ISOTimezoneParser2() {
var _this;
- _classCallCheck31(this, ISOTimezoneParser22);
+ _classCallCheck31(this, ISOTimezoneParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -30341,7 +20038,7 @@ var ISOTimezoneParser = /* @__PURE__ */ function(_Parser) {
_defineProperty30(_assertThisInitialized30(_this), "incompatibleTokens", ["t", "T", "X"]);
return _this;
}
- _createClass31(ISOTimezoneParser22, [{
+ _createClass31(ISOTimezoneParser2, [{
key: "parse",
value: function parse2(dateString, token) {
switch (token) {
@@ -30367,20 +20064,20 @@ var ISOTimezoneParser = /* @__PURE__ */ function(_Parser) {
return new Date(date.getTime() - value);
}
}]);
- return ISOTimezoneParser22;
+ return ISOTimezoneParser2;
}(Parser);
-function _typeof33(obj) {
+function _typeof34(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof33 = function _typeof362(obj2) {
+ _typeof34 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof33 = function _typeof362(obj2) {
+ _typeof34 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof33(obj);
+ return _typeof34(obj);
}
function _classCallCheck32(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -30413,7 +20110,7 @@ function _inherits31(subClass, superClass) {
_setPrototypeOf31(subClass, superClass);
}
function _setPrototypeOf31(o3, p4) {
- _setPrototypeOf31 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf31 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -30433,7 +20130,7 @@ function _createSuper31(Derived) {
};
}
function _possibleConstructorReturn31(self2, call) {
- if (call && (_typeof33(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof34(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized31(self2);
@@ -30460,7 +20157,7 @@ function _isNativeReflectConstruct31() {
}
}
function _getPrototypeOf31(o3) {
- _getPrototypeOf31 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf31 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf31(o3);
@@ -30474,11 +20171,11 @@ function _defineProperty31(obj, key, value) {
return obj;
}
var TimestampSecondsParser = /* @__PURE__ */ function(_Parser) {
- _inherits31(TimestampSecondsParser22, _Parser);
- var _super = _createSuper31(TimestampSecondsParser22);
- function TimestampSecondsParser22() {
+ _inherits31(TimestampSecondsParser2, _Parser);
+ var _super = _createSuper31(TimestampSecondsParser2);
+ function TimestampSecondsParser2() {
var _this;
- _classCallCheck32(this, TimestampSecondsParser22);
+ _classCallCheck32(this, TimestampSecondsParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -30487,7 +20184,7 @@ var TimestampSecondsParser = /* @__PURE__ */ function(_Parser) {
_defineProperty31(_assertThisInitialized31(_this), "incompatibleTokens", "*");
return _this;
}
- _createClass32(TimestampSecondsParser22, [{
+ _createClass32(TimestampSecondsParser2, [{
key: "parse",
value: function parse2(dateString) {
return parseAnyDigitsSigned(dateString);
@@ -30500,20 +20197,20 @@ var TimestampSecondsParser = /* @__PURE__ */ function(_Parser) {
}];
}
}]);
- return TimestampSecondsParser22;
+ return TimestampSecondsParser2;
}(Parser);
-function _typeof34(obj) {
+function _typeof35(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof34 = function _typeof362(obj2) {
+ _typeof35 = function _typeof382(obj2) {
return typeof obj2;
};
} else {
- _typeof34 = function _typeof362(obj2) {
+ _typeof35 = function _typeof382(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof34(obj);
+ return _typeof35(obj);
}
function _classCallCheck33(instance, Constructor) {
if (!(instance instanceof Constructor)) {
@@ -30546,7 +20243,7 @@ function _inherits32(subClass, superClass) {
_setPrototypeOf32(subClass, superClass);
}
function _setPrototypeOf32(o3, p4) {
- _setPrototypeOf32 = Object.setPrototypeOf || function _setPrototypeOf332(o22, p22) {
+ _setPrototypeOf32 = Object.setPrototypeOf || function _setPrototypeOf33(o22, p22) {
o22.__proto__ = p22;
return o22;
};
@@ -30566,7 +20263,7 @@ function _createSuper32(Derived) {
};
}
function _possibleConstructorReturn32(self2, call) {
- if (call && (_typeof34(call) === "object" || typeof call === "function")) {
+ if (call && (_typeof35(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized32(self2);
@@ -30593,7 +20290,7 @@ function _isNativeReflectConstruct32() {
}
}
function _getPrototypeOf32(o3) {
- _getPrototypeOf32 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf332(o22) {
+ _getPrototypeOf32 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf33(o22) {
return o22.__proto__ || Object.getPrototypeOf(o22);
};
return _getPrototypeOf32(o3);
@@ -30607,11 +20304,11 @@ function _defineProperty32(obj, key, value) {
return obj;
}
var TimestampMillisecondsParser = /* @__PURE__ */ function(_Parser) {
- _inherits32(TimestampMillisecondsParser22, _Parser);
- var _super = _createSuper32(TimestampMillisecondsParser22);
- function TimestampMillisecondsParser22() {
+ _inherits32(TimestampMillisecondsParser2, _Parser);
+ var _super = _createSuper32(TimestampMillisecondsParser2);
+ function TimestampMillisecondsParser2() {
var _this;
- _classCallCheck33(this, TimestampMillisecondsParser22);
+ _classCallCheck33(this, TimestampMillisecondsParser2);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
@@ -30620,7 +20317,7 @@ var TimestampMillisecondsParser = /* @__PURE__ */ function(_Parser) {
_defineProperty32(_assertThisInitialized32(_this), "incompatibleTokens", "*");
return _this;
}
- _createClass33(TimestampMillisecondsParser22, [{
+ _createClass33(TimestampMillisecondsParser2, [{
key: "parse",
value: function parse2(dateString) {
return parseAnyDigitsSigned(dateString);
@@ -30633,7 +20330,7 @@ var TimestampMillisecondsParser = /* @__PURE__ */ function(_Parser) {
}];
}
}]);
- return TimestampMillisecondsParser22;
+ return TimestampMillisecondsParser2;
}(Parser);
var parsers2 = {
G: new EraParser(),
@@ -30668,6 +20365,1456 @@ var parsers2 = {
t: new TimestampSecondsParser(),
T: new TimestampMillisecondsParser()
};
+function _typeof36(obj) {
+ "@babel/helpers - typeof";
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof36 = function _typeof382(obj2) {
+ return typeof obj2;
+ };
+ } else {
+ _typeof36 = function _typeof382(obj2) {
+ return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
+ };
+ }
+ return _typeof36(obj);
+}
+function _createForOfIteratorHelper(o3, allowArrayLike) {
+ var it;
+ if (typeof Symbol === "undefined" || o3[Symbol.iterator] == null) {
+ if (Array.isArray(o3) || (it = _unsupportedIterableToArray(o3)) || allowArrayLike && o3 && typeof o3.length === "number") {
+ if (it)
+ o3 = it;
+ var i22 = 0;
+ var F3 = function F22() {
+ };
+ return { s: F3, n: function n2() {
+ if (i22 >= o3.length)
+ return { done: true };
+ return { done: false, value: o3[i22++] };
+ }, e: function e22(_e) {
+ throw _e;
+ }, f: F3 };
+ }
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+ }
+ var normalCompletion = true, didErr = false, err;
+ return { s: function s32() {
+ it = o3[Symbol.iterator]();
+ }, n: function n2() {
+ var step = it.next();
+ normalCompletion = step.done;
+ return step;
+ }, e: function e22(_e2) {
+ didErr = true;
+ err = _e2;
+ }, f: function f3() {
+ try {
+ if (!normalCompletion && it.return != null)
+ it.return();
+ } finally {
+ if (didErr)
+ throw err;
+ }
+ } };
+}
+function _unsupportedIterableToArray(o3, minLen) {
+ if (!o3)
+ return;
+ if (typeof o3 === "string")
+ return _arrayLikeToArray(o3, minLen);
+ var n2 = Object.prototype.toString.call(o3).slice(8, -1);
+ if (n2 === "Object" && o3.constructor)
+ n2 = o3.constructor.name;
+ if (n2 === "Map" || n2 === "Set")
+ return Array.from(o3);
+ if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2))
+ return _arrayLikeToArray(o3, minLen);
+}
+function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length)
+ len = arr.length;
+ for (var i22 = 0, arr2 = new Array(len); i22 < len; i22++) {
+ arr2[i22] = arr[i22];
+ }
+ return arr2;
+}
+var formattingTokensRegExp2 = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
+var longFormattingTokensRegExp2 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
+var escapedStringRegExp2 = /^'([^]*?)'?$/;
+var doubleQuoteRegExp2 = /''/g;
+var notWhitespaceRegExp = /\S/;
+var unescapedLatinCharacterRegExp2 = /[a-zA-Z]/;
+function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {
+ var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
+ requiredArgs(3, arguments);
+ var dateString = String(dirtyDateString);
+ var formatString = String(dirtyFormatString);
+ var defaultOptions22 = getDefaultOptions();
+ var locale22 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions22.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default;
+ if (!locale22.match) {
+ throw new RangeError("locale must contain match property");
+ }
+ var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions22.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions22.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);
+ if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
+ throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");
+ }
+ var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions22.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions22.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);
+ if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
+ throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
+ }
+ if (formatString === "") {
+ if (dateString === "") {
+ return toDate(dirtyReferenceDate);
+ } else {
+ return /* @__PURE__ */ new Date(NaN);
+ }
+ }
+ var subFnOptions = {
+ firstWeekContainsDate,
+ weekStartsOn,
+ locale: locale22
+ };
+ var setters = [new DateToSystemTimezoneSetter()];
+ var tokens = formatString.match(longFormattingTokensRegExp2).map(function(substring) {
+ var firstCharacter = substring[0];
+ if (firstCharacter in longFormatters_default) {
+ var longFormatter = longFormatters_default[firstCharacter];
+ return longFormatter(substring, locale22.formatLong);
+ }
+ return substring;
+ }).join("").match(formattingTokensRegExp2);
+ var usedTokens = [];
+ var _iterator = _createForOfIteratorHelper(tokens), _step;
+ try {
+ var _loop = function _loop2() {
+ var token = _step.value;
+ if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {
+ throwProtectedError(token, formatString, dirtyDateString);
+ }
+ if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {
+ throwProtectedError(token, formatString, dirtyDateString);
+ }
+ var firstCharacter = token[0];
+ var parser = parsers2[firstCharacter];
+ if (parser) {
+ var incompatibleTokens = parser.incompatibleTokens;
+ if (Array.isArray(incompatibleTokens)) {
+ var incompatibleToken = usedTokens.find(function(usedToken) {
+ return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;
+ });
+ if (incompatibleToken) {
+ throw new RangeError("The format string mustn't contain `".concat(incompatibleToken.fullToken, "` and `").concat(token, "` at the same time"));
+ }
+ } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) {
+ throw new RangeError("The format string mustn't contain `".concat(token, "` and any other token at the same time"));
+ }
+ usedTokens.push({
+ token: firstCharacter,
+ fullToken: token
+ });
+ var parseResult = parser.run(dateString, token, locale22.match, subFnOptions);
+ if (!parseResult) {
+ return {
+ v: /* @__PURE__ */ new Date(NaN)
+ };
+ }
+ setters.push(parseResult.setter);
+ dateString = parseResult.rest;
+ } else {
+ if (firstCharacter.match(unescapedLatinCharacterRegExp2)) {
+ throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`");
+ }
+ if (token === "''") {
+ token = "'";
+ } else if (firstCharacter === "'") {
+ token = cleanEscapedString2(token);
+ }
+ if (dateString.indexOf(token) === 0) {
+ dateString = dateString.slice(token.length);
+ } else {
+ return {
+ v: /* @__PURE__ */ new Date(NaN)
+ };
+ }
+ }
+ };
+ for (_iterator.s(); !(_step = _iterator.n()).done; ) {
+ var _ret = _loop();
+ if (_typeof36(_ret) === "object")
+ return _ret.v;
+ }
+ } catch (err) {
+ _iterator.e(err);
+ } finally {
+ _iterator.f();
+ }
+ if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {
+ return /* @__PURE__ */ new Date(NaN);
+ }
+ var uniquePrioritySetters = setters.map(function(setter2) {
+ return setter2.priority;
+ }).sort(function(a32, b22) {
+ return b22 - a32;
+ }).filter(function(priority, index, array) {
+ return array.indexOf(priority) === index;
+ }).map(function(priority) {
+ return setters.filter(function(setter2) {
+ return setter2.priority === priority;
+ }).sort(function(a32, b22) {
+ return b22.subPriority - a32.subPriority;
+ });
+ }).map(function(setterArray) {
+ return setterArray[0];
+ });
+ var date = toDate(dirtyReferenceDate);
+ if (isNaN(date.getTime())) {
+ return /* @__PURE__ */ new Date(NaN);
+ }
+ var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));
+ var flags = {};
+ var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters), _step2;
+ try {
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
+ var setter = _step2.value;
+ if (!setter.validate(utcDate, subFnOptions)) {
+ return /* @__PURE__ */ new Date(NaN);
+ }
+ var result = setter.set(utcDate, flags, subFnOptions);
+ if (Array.isArray(result)) {
+ utcDate = result[0];
+ assign(flags, result[1]);
+ } else {
+ utcDate = result;
+ }
+ }
+ } catch (err) {
+ _iterator2.e(err);
+ } finally {
+ _iterator2.f();
+ }
+ return utcDate;
+}
+function cleanEscapedString2(input) {
+ return input.match(escapedStringRegExp2)[1].replace(doubleQuoteRegExp2, "'");
+}
+function isSameMonth(dirtyDateLeft, dirtyDateRight) {
+ requiredArgs(2, arguments);
+ var dateLeft = toDate(dirtyDateLeft);
+ var dateRight = toDate(dirtyDateRight);
+ return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();
+}
+function subDays(dirtyDate, dirtyAmount) {
+ requiredArgs(2, arguments);
+ var amount = toInteger(dirtyAmount);
+ return addDays(dirtyDate, -amount);
+}
+function subMonths(dirtyDate, dirtyAmount) {
+ requiredArgs(2, arguments);
+ var amount = toInteger(dirtyAmount);
+ return addMonths(dirtyDate, -amount);
+}
+function _typeof37(obj) {
+ "@babel/helpers - typeof";
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof37 = function _typeof382(obj2) {
+ return typeof obj2;
+ };
+ } else {
+ _typeof37 = function _typeof382(obj2) {
+ return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
+ };
+ }
+ return _typeof37(obj);
+}
+function sub(date, duration) {
+ requiredArgs(2, arguments);
+ if (!duration || _typeof37(duration) !== "object")
+ return /* @__PURE__ */ new Date(NaN);
+ var years = duration.years ? toInteger(duration.years) : 0;
+ var months = duration.months ? toInteger(duration.months) : 0;
+ var weeks = duration.weeks ? toInteger(duration.weeks) : 0;
+ var days = duration.days ? toInteger(duration.days) : 0;
+ var hours = duration.hours ? toInteger(duration.hours) : 0;
+ var minutes = duration.minutes ? toInteger(duration.minutes) : 0;
+ var seconds = duration.seconds ? toInteger(duration.seconds) : 0;
+ var dateWithoutMonths = subMonths(date, months + years * 12);
+ var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7);
+ var minutestoSub = minutes + hours * 60;
+ var secondstoSub = seconds + minutestoSub * 60;
+ var mstoSub = secondstoSub * 1e3;
+ var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);
+ return finalDate;
+}
+function Calendar({ value, onChange }) {
+ const today = startOfDay(/* @__PURE__ */ new Date());
+ const selected = !value ? today : new Date(AbsoluteTime.toStampMs(value));
+ const [showingDate, setShowingDate] = p3(selected);
+ const month = getMonth(showingDate);
+ const year = getYear(showingDate);
+ const start = startOfWeek(startOfMonth(showingDate));
+ const end = endOfWeek(endOfMonth(showingDate));
+ const daysInMonth = eachDayOfInterval({ start, end });
+ const { i18n: i18n2 } = useTranslationContext();
+ const monthNames = [
+ i18n2.str`January`,
+ i18n2.str`February`,
+ i18n2.str`March`,
+ i18n2.str`April`,
+ i18n2.str`May`,
+ i18n2.str`June`,
+ i18n2.str`July`,
+ i18n2.str`August`,
+ i18n2.str`September`,
+ i18n2.str`October`,
+ i18n2.str`November`,
+ i18n2.str`December`
+ ];
+ return /* @__PURE__ */ h("div", { class: "text-center p-2" }, /* @__PURE__ */ h("div", { class: "flex items-center text-gray-900" }, /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ class: "flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 round-sm",
+ onClick: () => {
+ setShowingDate(sub(showingDate, { years: 1 }));
+ }
+ },
+ /* @__PURE__ */ h("span", { class: "sr-only" }, i18n2.str`Previous year`),
+ /* @__PURE__ */ h("svg", { class: "h-5 w-5", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true" }, /* @__PURE__ */ h("path", { "fill-rule": "evenodd", d: "M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z", "clip-rule": "evenodd" }))
+ ), /* @__PURE__ */ h("div", { class: "flex-auto text-sm font-semibold" }, year), /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ class: "flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 round-sm",
+ onClick: () => {
+ setShowingDate(add2(showingDate, { years: 1 }));
+ }
+ },
+ /* @__PURE__ */ h("span", { class: "sr-only" }, i18n2.str`Next year`),
+ /* @__PURE__ */ h("svg", { class: "h-5 w-5", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true" }, /* @__PURE__ */ h("path", { "fill-rule": "evenodd", d: "M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z", "clip-rule": "evenodd" }))
+ )), /* @__PURE__ */ h("div", { class: "mt-4 flex items-center text-gray-900" }, /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ class: "flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 round-sm",
+ onClick: () => {
+ setShowingDate(sub(showingDate, { months: 1 }));
+ }
+ },
+ /* @__PURE__ */ h("span", { class: "sr-only" }, i18n2.str`Previous month`),
+ /* @__PURE__ */ h("svg", { class: "h-5 w-5", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true" }, /* @__PURE__ */ h("path", { "fill-rule": "evenodd", d: "M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z", "clip-rule": "evenodd" }))
+ ), /* @__PURE__ */ h("div", { class: "flex-auto text-sm font-semibold" }, monthNames[month]), /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ class: "flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 rounded-sm ",
+ onClick: () => {
+ setShowingDate(add2(showingDate, { months: 1 }));
+ }
+ },
+ /* @__PURE__ */ h("span", { class: "sr-only" }, i18n2.str`Next month`),
+ /* @__PURE__ */ h("svg", { class: "h-5 w-5", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true" }, /* @__PURE__ */ h("path", { "fill-rule": "evenodd", d: "M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z", "clip-rule": "evenodd" }))
+ )), /* @__PURE__ */ h("div", { class: "mt-6 grid grid-cols-7 text-xs leading-6 text-gray-500" }, /* @__PURE__ */ h("div", null, "M"), /* @__PURE__ */ h("div", null, "T"), /* @__PURE__ */ h("div", null, "W"), /* @__PURE__ */ h("div", null, "T"), /* @__PURE__ */ h("div", null, "F"), /* @__PURE__ */ h("div", null, "S"), /* @__PURE__ */ h("div", null, "S")), /* @__PURE__ */ h("div", { class: "isolate mt-2" }, /* @__PURE__ */ h("div", { class: "grid grid-cols-7 gap-px rounded-lg bg-gray-200 text-sm shadow ring-1 ring-gray-200" }, daysInMonth.map((current) => /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ "data-month": isSameMonth(current, showingDate),
+ "data-today": isSameDay(current, today),
+ "data-selected": isSameDay(current, selected),
+ onClick: () => {
+ onChange(AbsoluteTime.fromStampMs(current.getTime()));
+ },
+ class: "text-gray-400 hover:bg-gray-700 focus:z-10 py-1.5 \n data-[month=false]:bg-gray-100 data-[month=true]:bg-white \n data-[today=true]:font-semibold \n data-[month=true]:text-gray-900\n data-[today=true]:bg-red-300 data-[today=true]:hover:bg-red-200\n data-[month=true]:hover:bg-gray-200\n data-[selected=true]:!bg-blue-400 data-[selected=true]:hover:!bg-blue-300 "
+ },
+ /* @__PURE__ */ h(
+ "time",
+ {
+ dateTime: format(current, "yyyy-MM-dd"),
+ class: "mx-auto flex h-7 w-7 py-4 px-5 sm:px-8 items-center justify-center rounded-full"
+ },
+ format(current, "dd")
+ )
+ ))), daysInMonth.length < 40 ? /* @__PURE__ */ h("div", { class: "w-7 h-7 m-1.5" }) : void 0));
+}
+var FormContext = B({});
+function FormProvider({
+ children,
+ initial: initial2,
+ onUpdate: notify2,
+ onSubmit,
+ computeFormState,
+ readOnly
+}) {
+ const [state, setState] = p3(initial2 != null ? initial2 : {});
+ const value = { current: state };
+ const onUpdate = (v3) => {
+ setState(v3);
+ if (notify2)
+ notify2(v3);
+ };
+ return /* @__PURE__ */ h(
+ FormContext.Provider,
+ {
+ value: { initial: initial2, value, onUpdate, computeFormState, readOnly }
+ },
+ /* @__PURE__ */ h(
+ "form",
+ {
+ onSubmit: (e22) => {
+ e22.preventDefault();
+ if (onSubmit)
+ onSubmit(
+ value.current,
+ !computeFormState ? void 0 : computeFormState(value.current)
+ );
+ }
+ },
+ children
+ )
+ );
+}
+function useField(name) {
+ var _a, _b, _c, _d;
+ const {
+ value: formValue,
+ computeFormState,
+ onUpdate: notifyUpdate,
+ readOnly: readOnlyForm
+ } = q2(FormContext);
+ const formState = computeFormState ? computeFormState(formValue.current) : {};
+ const fieldValue = readField(formValue.current, String(name));
+ const [currentValue, setCurrentValue] = p3(fieldValue);
+ const fieldState = (_a = readField(formState, String(name))) != null ? _a : {};
+ const state = {
+ disabled: readOnlyForm ? true : (_b = fieldState.disabled) != null ? _b : false,
+ hidden: (_c = fieldState.hidden) != null ? _c : false,
+ error: fieldState.error,
+ help: fieldState.help,
+ elements: "elements" in fieldState ? (_d = fieldState.elements) != null ? _d : [] : []
+ };
+ function onChange(value) {
+ setCurrentValue(value);
+ formValue.current = setValueDeeper(
+ formValue.current,
+ String(name).split("."),
+ value
+ );
+ if (notifyUpdate) {
+ notifyUpdate(formValue.current);
+ }
+ }
+ return {
+ value: fieldValue,
+ onChange,
+ isDirty: currentValue !== void 0,
+ state
+ };
+}
+function readField(object, name, debug) {
+ return name.split(".").reduce((prev, current) => {
+ if (debug) {
+ console.log(
+ "READ",
+ name,
+ prev,
+ current,
+ prev ? prev[current] : void 0
+ );
+ }
+ return prev ? prev[current] : void 0;
+ }, object);
+}
+function setValueDeeper(object, names2, value) {
+ var _a;
+ if (names2.length === 0)
+ return value;
+ const [head, ...rest] = names2;
+ if (object === void 0) {
+ return { [head]: setValueDeeper({}, rest, value) };
+ }
+ return __spreadProps(__spreadValues({}, object), { [head]: setValueDeeper((_a = object[head]) != null ? _a : {}, rest, value) });
+}
+var TooltipIcon = /* @__PURE__ */ h(
+ "svg",
+ {
+ class: "w-5 h-5",
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 20 20",
+ fill: "currentColor"
+ },
+ /* @__PURE__ */ h(
+ "path",
+ {
+ "fill-rule": "evenodd",
+ d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z",
+ "clip-rule": "evenodd"
+ }
+ )
+);
+function LabelWithTooltipMaybeRequired({
+ label,
+ required,
+ tooltip
+}) {
+ const Label = /* @__PURE__ */ h(p2, null, /* @__PURE__ */ h("div", { class: "flex justify-between" }, /* @__PURE__ */ h(
+ "label",
+ {
+ htmlFor: "email",
+ class: "block text-sm font-medium leading-6 text-gray-900"
+ },
+ label
+ )));
+ const WithTooltip = tooltip ? /* @__PURE__ */ h("div", { class: "relative flex flex-grow items-stretch focus-within:z-10" }, Label, /* @__PURE__ */ h("span", { class: "relative flex items-center group pl-2" }, TooltipIcon, /* @__PURE__ */ h("div", { class: "absolute bottom-0 -ml-10 hidden flex-col items-center mb-6 group-hover:flex w-28" }, /* @__PURE__ */ h("div", { class: "relative z-10 p-2 text-xs leading-none text-white whitespace-no-wrap bg-black shadow-lg" }, tooltip), /* @__PURE__ */ h("div", { class: "w-3 h-3 -mt-2 rotate-45 bg-black" })))) : Label;
+ if (required) {
+ return /* @__PURE__ */ h("div", { class: "flex justify-between" }, WithTooltip, /* @__PURE__ */ h("span", { class: "text-sm leading-6 text-red-600" }, "*"));
+ }
+ return WithTooltip;
+}
+function InputWrapper({
+ children,
+ label,
+ tooltip,
+ before,
+ after,
+ help,
+ error: error2,
+ disabled,
+ required
+}) {
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ required,
+ tooltip
+ }
+ ), /* @__PURE__ */ h("div", { class: "relative mt-2 flex rounded-md shadow-sm" }, before && (before.type === "text" ? /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-l-md border border-r-0 border-gray-300 px-3 text-gray-500 sm:text-sm" }, before.text) : before.type === "icon" ? /* @__PURE__ */ h("div", { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3" }, before.icon) : before.type === "button" ? /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ disabled,
+ onClick: before.onClick,
+ class: "relative -ml-px inline-flex items-center gap-x-1.5 rounded-l-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50"
+ },
+ before.children
+ ) : void 0), children, after && (after.type === "text" ? /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-r-md border border-l-0 border-gray-300 px-3 text-gray-500 sm:text-sm" }, after.text) : after.type === "icon" ? /* @__PURE__ */ h("div", { class: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3" }, after.icon) : after.type === "button" ? /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ disabled,
+ onClick: after.onClick,
+ class: "relative -ml-px inline-flex items-center gap-x-1.5 rounded-r-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50"
+ },
+ after.children
+ ) : void 0)), error2 && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-red-600", id: "email-error" }, error2), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
+}
+function defaultToString(v3) {
+ return v3 === void 0 ? "" : typeof v3 !== "object" ? String(v3) : "";
+}
+function defaultFromString(v3) {
+ return v3;
+}
+function InputLine(props) {
+ var _a, _b, _c, _d, _e, _f, _g;
+ const { name, placeholder, before, after, converter, type } = props;
+ const { value, onChange, state, isDirty } = useField(name);
+ const [text, setText] = p3("");
+ const fromString = (_a = converter == null ? void 0 : converter.fromStringUI) != null ? _a : defaultFromString;
+ const toString = (_b = converter == null ? void 0 : converter.toStringUI) != null ? _b : defaultToString;
+ h2(() => {
+ const newValue = toString(value);
+ if (newValue) {
+ setText(newValue);
+ }
+ }, [value]);
+ if (state.hidden)
+ return /* @__PURE__ */ h("div", null);
+ let clazz = "block w-full rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset focus:ring-2 focus:ring-inset sm:text-sm sm:leading-6 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200";
+ if (before) {
+ switch (before.type) {
+ case "icon": {
+ clazz += " pl-10";
+ break;
+ }
+ case "button": {
+ clazz += " rounded-none rounded-r-md ";
+ break;
+ }
+ case "text": {
+ clazz += " min-w-0 flex-1 rounded-r-md rounded-none ";
+ break;
+ }
+ }
+ }
+ if (after) {
+ switch (after.type) {
+ case "icon": {
+ clazz += " pr-10";
+ break;
+ }
+ case "button": {
+ clazz += " rounded-none rounded-l-md";
+ break;
+ }
+ case "text": {
+ clazz += " min-w-0 flex-1 rounded-l-md rounded-none ";
+ break;
+ }
+ }
+ }
+ const showError = isDirty && state.error;
+ if (showError) {
+ clazz += " text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500";
+ } else {
+ clazz += " text-gray-900 ring-gray-300 placeholder:text-gray-400 focus:ring-indigo-600";
+ }
+ if (type === "text-area") {
+ return /* @__PURE__ */ h(
+ InputWrapper,
+ __spreadProps(__spreadValues({}, props), {
+ help: (_c = props.help) != null ? _c : state.help,
+ disabled: (_d = state.disabled) != null ? _d : false,
+ error: showError ? state.error : void 0
+ }),
+ /* @__PURE__ */ h(
+ "textarea",
+ {
+ rows: 4,
+ name: String(name),
+ onChange: (e22) => {
+ onChange(fromString(e22.currentTarget.value));
+ },
+ placeholder: placeholder ? placeholder : void 0,
+ value: (_e = toString(value)) != null ? _e : "",
+ disabled: state.disabled,
+ "aria-invalid": showError,
+ class: clazz
+ }
+ )
+ );
+ }
+ return /* @__PURE__ */ h(
+ InputWrapper,
+ __spreadProps(__spreadValues({}, props), {
+ help: (_f = props.help) != null ? _f : state.help,
+ disabled: (_g = state.disabled) != null ? _g : false,
+ error: showError ? state.error : void 0
+ }),
+ /* @__PURE__ */ h(
+ "input",
+ {
+ name: String(name),
+ type,
+ onChange: (e22) => {
+ setText(e22.currentTarget.value);
+ },
+ placeholder: placeholder ? placeholder : void 0,
+ value: text,
+ onBlur: () => {
+ onChange(fromString(text));
+ },
+ disabled: state.disabled,
+ "aria-invalid": showError,
+ class: clazz
+ }
+ )
+ );
+}
+function Caption({ before, after, label, tooltip, help }) {
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6 flex" }, before !== void 0 && /* @__PURE__ */ h("span", { class: "pointer-events-none flex items-center pr-2" }, before), /* @__PURE__ */ h(LabelWithTooltipMaybeRequired, { label, tooltip }), after !== void 0 && /* @__PURE__ */ h("span", { class: "pointer-events-none flex items-center pl-2" }, after), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
+}
+function Group({
+ before,
+ after,
+ tooltipAfter,
+ tooltipBefore,
+ fields
+}) {
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6 p-4 rounded-lg border-r-2 border-2 bg-gray-50" }, /* @__PURE__ */ h("div", { class: "pb-4" }, before && /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label: before,
+ tooltip: tooltipBefore
+ }
+ )), /* @__PURE__ */ h("div", { class: "grid max-w-2xl grid-cols-1 gap-x-6 gap-y-2 sm:grid-cols-6" }, /* @__PURE__ */ h(RenderAllFieldsByUiConfig, { fields })), /* @__PURE__ */ h("div", { class: "pt-4" }, after && /* @__PURE__ */ h(LabelWithTooltipMaybeRequired, { label: after, tooltip: tooltipAfter })));
+}
+function Dialog({ children, onClose }) {
+ return /* @__PURE__ */ h("div", { class: "relative z-10", "aria-labelledby": "modal-title", role: "dialog", "aria-modal": "true", onClick: onClose }, /* @__PURE__ */ h("div", { class: "fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" }), /* @__PURE__ */ h("div", { class: "fixed inset-0 z-10 w-screen overflow-y-auto" }, /* @__PURE__ */ h("div", { class: "flex min-h-full items-center justify-center p-4 text-center " }, /* @__PURE__ */ h("div", { class: "relative transform overflow-hidden rounded-lg bg-white p-1 text-left shadow-xl transition-all", onClick: (e22) => e22.stopPropagation() }, children))));
+}
+function InputAbsoluteTime(props) {
+ var _a;
+ const pattern = (_a = props.pattern) != null ? _a : "dd/MM/yyyy";
+ const [open, setOpen] = p3(false);
+ const { value, onChange } = useField(props.name);
+ return /* @__PURE__ */ h(p2, null, /* @__PURE__ */ h(
+ InputLine,
+ __spreadValues({
+ type: "text",
+ after: {
+ type: "button",
+ onClick: () => {
+ setOpen(true);
+ },
+ // icon: <CalendarIcon class="h-6 w-6" />,
+ children: /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5" }))
+ },
+ converter: {
+ //@ts-ignore
+ fromStringUI: (v3) => {
+ if (!v3)
+ return void 0;
+ try {
+ const t_ms = parse(v3, pattern, Date.now()).getTime();
+ return AbsoluteTime.fromMilliseconds(t_ms);
+ } catch (e22) {
+ return void 0;
+ }
+ },
+ //@ts-ignore
+ toStringUI: (v3) => {
+ return !v3 || !v3.t_ms ? void 0 : v3.t_ms === "never" ? "never" : format(v3.t_ms, pattern);
+ }
+ }
+ }, props)
+ ), open && /* @__PURE__ */ h(Dialog, { onClose: () => setOpen(false) }, /* @__PURE__ */ h(
+ Calendar,
+ {
+ value: value != null ? value : AbsoluteTime.now(),
+ onChange: (v3) => {
+ onChange(v3);
+ setOpen(false);
+ }
+ }
+ )));
+}
+function InputAmount(props) {
+ const { value } = useField(props.name);
+ const currency = !value || !value.currency ? props.currency : value.currency;
+ return /* @__PURE__ */ h(
+ InputLine,
+ __spreadValues({
+ type: "text",
+ before: {
+ type: "text",
+ text: currency
+ },
+ converter: {
+ //@ts-ignore
+ fromStringUI: (v3) => {
+ var _a;
+ return (_a = Amounts.parse(`${currency}:${v3}`)) != null ? _a : Amounts.zeroOfCurrency(currency);
+ },
+ //@ts-ignore
+ toStringUI: (v3) => {
+ return v3 === void 0 ? "" : Amounts.stringifyValue(v3);
+ }
+ }
+ }, props)
+ );
+}
+function Option({
+ label,
+ disabled,
+ isFirst,
+ isLast,
+ isSelected,
+ onClick
+}) {
+ let clazz = "relative flex border p-4 focus:outline-none disabled:text-grey";
+ if (isFirst) {
+ clazz += " rounded-tl-md rounded-tr-md ";
+ }
+ if (isLast) {
+ clazz += " rounded-bl-md rounded-br-md ";
+ }
+ if (isSelected) {
+ clazz += " z-10 border-indigo-200 bg-indigo-50 ";
+ } else {
+ clazz += " border-gray-200";
+ }
+ if (disabled) {
+ clazz += " cursor-not-allowed bg-gray-50 text-gray-500 ring-gray-200 text-gray";
+ } else {
+ clazz += " cursor-pointer";
+ }
+ return /* @__PURE__ */ h("label", { class: clazz }, /* @__PURE__ */ h(
+ "input",
+ {
+ type: "radio",
+ name: "privacy-setting",
+ checked: isSelected,
+ disabled,
+ onClick,
+ class: "mt-0.5 h-4 w-4 shrink-0 text-indigo-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200 focus:ring-indigo-600",
+ "aria-labelledby": "privacy-setting-0-label",
+ "aria-describedby": "privacy-setting-0-description"
+ }
+ ), /* @__PURE__ */ h("span", { class: "ml-3 flex flex-col" }, /* @__PURE__ */ h(
+ "span",
+ {
+ id: "privacy-setting-0-label",
+ disabled: true,
+ class: "block text-sm font-medium"
+ },
+ label
+ )));
+}
+function InputArray(props) {
+ const { fields, labelField, name, label, required, tooltip } = props;
+ const { value, onChange, state } = useField(name);
+ const list = value != null ? value : [];
+ const [selectedIndex, setSelected] = p3(void 0);
+ const selected = selectedIndex === void 0 ? void 0 : list[selectedIndex];
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ required,
+ tooltip
+ }
+ ), /* @__PURE__ */ h("div", { class: "-space-y-px rounded-md bg-white " }, list.map((v3, idx) => {
+ return /* @__PURE__ */ h(
+ Option,
+ {
+ label: v3[labelField],
+ isSelected: selectedIndex === idx,
+ isLast: idx === list.length - 1,
+ disabled: selectedIndex !== void 0 && selectedIndex !== idx,
+ isFirst: idx === 0,
+ onClick: () => {
+ setSelected(selectedIndex === idx ? void 0 : idx);
+ }
+ }
+ );
+ }), !state.disabled && /* @__PURE__ */ h("div", { class: "pt-2" }, /* @__PURE__ */ h(
+ Option,
+ {
+ label: "Add...",
+ isSelected: selectedIndex === list.length,
+ isLast: true,
+ isFirst: true,
+ disabled: selectedIndex !== void 0 && selectedIndex !== list.length,
+ onClick: () => {
+ setSelected(
+ selectedIndex === list.length ? void 0 : list.length
+ );
+ }
+ }
+ ))), selectedIndex !== void 0 && /**
+ * This form provider act as a substate of the parent form
+ * Consider creating an InnerFormProvider since not every feature is expected
+ */
+ /* @__PURE__ */ h(
+ FormProvider,
+ {
+ initial: selected,
+ readOnly: state.disabled,
+ computeFormState: (v3) => {
+ return state.elements[selectedIndex];
+ },
+ onSubmit: (v3) => {
+ const newValue = [...list];
+ newValue.splice(selectedIndex, 1, v3);
+ onChange(newValue);
+ setSelected(void 0);
+ },
+ onUpdate: (v3) => {
+ const newValue = [...list];
+ newValue.splice(selectedIndex, 1, v3);
+ onChange(newValue);
+ }
+ },
+ /* @__PURE__ */ h("div", { class: "px-4 py-6" }, /* @__PURE__ */ h("div", { class: "grid grid-cols-1 gap-y-8 " }, /* @__PURE__ */ h(RenderAllFieldsByUiConfig, { fields })))
+ ), selectedIndex !== void 0 && /* @__PURE__ */ h("div", { class: "flex items-center pt-3" }, /* @__PURE__ */ h("div", { class: "flex-auto" }, selected !== void 0 && /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ onClick: () => {
+ const newValue = [...list];
+ newValue.splice(selectedIndex, 1);
+ onChange(newValue);
+ setSelected(void 0);
+ },
+ class: "block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 "
+ },
+ "Remove"
+ ))));
+}
+function InputChoiceHorizontal(props) {
+ const {
+ choices,
+ name,
+ label,
+ tooltip,
+ help,
+ placeholder,
+ required,
+ before,
+ after,
+ converter
+ } = props;
+ const { value, onChange, state, isDirty } = useField(name);
+ if (state.hidden) {
+ return /* @__PURE__ */ h(p2, null);
+ }
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ required,
+ tooltip
+ }
+ ), /* @__PURE__ */ h("fieldset", { class: "mt-2" }, /* @__PURE__ */ h("div", { class: "isolate inline-flex rounded-md shadow-sm" }, choices.map((choice, idx) => {
+ const isFirst = idx === 0;
+ const isLast = idx === choices.length - 1;
+ let clazz = "relative inline-flex items-center px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 focus:z-10";
+ if (choice.value === value) {
+ clazz += " text-white bg-indigo-600 hover:bg-indigo-500 ring-2 ring-indigo-600 hover:ring-indigo-500";
+ } else {
+ clazz += " hover:bg-gray-100 border-gray-300";
+ }
+ if (isFirst) {
+ clazz += " rounded-l-md";
+ } else {
+ clazz += " -ml-px";
+ }
+ if (isLast) {
+ clazz += " rounded-r-md";
+ }
+ return /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ disabled: state.disabled,
+ label: choice.label,
+ class: clazz,
+ onClick: (e22) => {
+ onChange(
+ value === choice.value ? void 0 : choice.value
+ );
+ }
+ },
+ choice.label
+ );
+ }))), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
+}
+function InputChoiceStacked(props) {
+ const {
+ choices,
+ name,
+ label,
+ tooltip,
+ help,
+ placeholder,
+ required,
+ before,
+ after,
+ converter
+ } = props;
+ const { value, onChange, state, isDirty } = useField(name);
+ if (state.hidden) {
+ return /* @__PURE__ */ h(p2, null);
+ }
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ required,
+ tooltip
+ }
+ ), /* @__PURE__ */ h("fieldset", { class: "mt-2" }, /* @__PURE__ */ h("div", { class: "space-y-4" }, choices.map((choice) => {
+ var _a;
+ let clazz = "border relative block cursor-pointer rounded-lg bg-white px-6 py-4 shadow-sm focus:outline-none sm:flex sm:justify-between";
+ if (choice.value === value) {
+ clazz += " border-transparent border-indigo-600 ring-2 ring-indigo-600";
+ } else {
+ clazz += " border-gray-300";
+ }
+ return /* @__PURE__ */ h("label", { class: clazz }, /* @__PURE__ */ h(
+ "input",
+ {
+ type: "radio",
+ name: "server-size",
+ disabled: state.disabled,
+ value: (_a = !converter ? choice.value : converter == null ? void 0 : converter.toStringUI(choice.value)) != null ? _a : "",
+ onClick: (e22) => {
+ onChange(
+ value === choice.value ? void 0 : choice.value
+ );
+ },
+ class: "sr-only",
+ "aria-labelledby": "server-size-0-label",
+ "aria-describedby": "server-size-0-description-0 server-size-0-description-1"
+ }
+ ), /* @__PURE__ */ h("span", { class: "flex items-center" }, /* @__PURE__ */ h("span", { class: "flex flex-col text-sm" }, /* @__PURE__ */ h(
+ "span",
+ {
+ id: "server-size-0-label",
+ class: "font-medium text-gray-900"
+ },
+ choice.label
+ ), choice.description !== void 0 && /* @__PURE__ */ h(
+ "span",
+ {
+ id: "server-size-0-description-0",
+ class: "text-gray-500"
+ },
+ /* @__PURE__ */ h("span", { class: "block sm:inline" }, choice.description)
+ ))));
+ }))), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
+}
+function InputFile(props) {
+ const {
+ name,
+ label,
+ placeholder,
+ tooltip,
+ required,
+ help: propsHelp,
+ maxBites,
+ accept
+ } = props;
+ const { value, onChange, state } = useField(name);
+ const help = propsHelp != null ? propsHelp : state.help;
+ if (state.hidden) {
+ return /* @__PURE__ */ h("div", null);
+ }
+ return /* @__PURE__ */ h("div", { class: "col-span-full" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ tooltip,
+ required
+ }
+ ), !value || !value.startsWith("data:image/") ? /* @__PURE__ */ h("div", { class: "mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 py-1" }, /* @__PURE__ */ h("div", { class: "text-center" }, /* @__PURE__ */ h(
+ "svg",
+ {
+ class: "mx-auto h-12 w-12 text-gray-300",
+ viewBox: "0 0 24 24",
+ fill: "currentColor",
+ "aria-hidden": "true"
+ },
+ /* @__PURE__ */ h(
+ "path",
+ {
+ "fill-rule": "evenodd",
+ d: "M1.5 6a2.25 2.25 0 012.25-2.25h16.5A2.25 2.25 0 0122.5 6v12a2.25 2.25 0 01-2.25 2.25H3.75A2.25 2.25 0 011.5 18V6zM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0021 18v-1.94l-2.69-2.689a1.5 1.5 0 00-2.12 0l-.88.879.97.97a.75.75 0 11-1.06 1.06l-5.16-5.159a1.5 1.5 0 00-2.12 0L3 16.061zm10.125-7.81a1.125 1.125 0 112.25 0 1.125 1.125 0 01-2.25 0z",
+ "clip-rule": "evenodd"
+ }
+ )
+ ), !state.disabled && /* @__PURE__ */ h("div", { class: "my-2 flex text-sm leading-6 text-gray-600" }, /* @__PURE__ */ h(
+ "label",
+ {
+ for: "file-upload",
+ class: "relative cursor-pointer rounded-md bg-white font-semibold text-indigo-600 focus-within:outline-none focus-within:ring-2 focus-within:ring-indigo-600 focus-within:ring-offset-2 hover:text-indigo-500"
+ },
+ /* @__PURE__ */ h("span", null, "Upload a file"),
+ /* @__PURE__ */ h(
+ "input",
+ {
+ id: "file-upload",
+ name: "file-upload",
+ type: "file",
+ class: "sr-only",
+ accept,
+ onChange: (e22) => {
+ const f3 = e22.currentTarget.files;
+ if (!f3 || f3.length != 1) {
+ return onChange(void 0);
+ }
+ if (f3[0].size > maxBites) {
+ return onChange(void 0);
+ }
+ return f3[0].arrayBuffer().then((b22) => {
+ const b64 = window.btoa(
+ new Uint8Array(b22).reduce(
+ (data, byte) => data + String.fromCharCode(byte),
+ ""
+ )
+ );
+ return onChange(`data:${f3[0].type};base64,${b64}`);
+ });
+ }
+ }
+ )
+ )))) : /* @__PURE__ */ h("div", { class: "mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 relative" }, /* @__PURE__ */ h(
+ "img",
+ {
+ src: value,
+ class: " h-24 w-full object-cover relative"
+ }
+ ), !state.disabled && /* @__PURE__ */ h(
+ "div",
+ {
+ class: "opacity-0 hover:opacity-70 duration-300 absolute rounded-lg border inset-0 z-10 flex justify-center text-xl items-center bg-black text-white cursor-pointer ",
+ onClick: () => {
+ onChange(void 0);
+ }
+ },
+ "Clear"
+ )), help && /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-600 mt-2" }, help));
+}
+function InputInteger(props) {
+ return /* @__PURE__ */ h(
+ InputLine,
+ __spreadValues({
+ type: "number",
+ converter: {
+ //@ts-ignore
+ fromStringUI: (v3) => {
+ return !v3 ? 0 : Number.parseInt(v3, 10);
+ },
+ //@ts-ignore
+ toStringUI: (v3) => {
+ return v3 === void 0 ? "" : String(v3);
+ }
+ }
+ }, props)
+ );
+}
+function InputSelectMultiple(props) {
+ const { name, label, choices, placeholder, tooltip, required, unique, max } = props;
+ const { value, onChange, state } = useField(name);
+ const [filter, setFilter] = p3(void 0);
+ const regex = new RegExp(`.*${filter}.*`, "i");
+ const choiceMap = choices.reduce((prev, curr) => {
+ return __spreadProps(__spreadValues({}, prev), { [curr.value]: curr.label });
+ }, {});
+ const list = value != null ? value : [];
+ const filteredChoices = filter === void 0 ? void 0 : choices.filter((v3) => {
+ return regex.test(v3.label);
+ });
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ required,
+ tooltip
+ }
+ ), list.map((v3, idx) => {
+ return /* @__PURE__ */ h("span", { class: "inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 text-xs font-medium text-gray-600" }, choiceMap[v3], /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ disabled: state.disabled,
+ onClick: () => {
+ const newValue = [...list];
+ newValue.splice(idx, 1);
+ onChange(newValue);
+ setFilter(void 0);
+ },
+ class: "group relative h-5 w-5 rounded-sm hover:bg-gray-500/20"
+ },
+ /* @__PURE__ */ h("span", { class: "sr-only" }, "Remove"),
+ /* @__PURE__ */ h(
+ "svg",
+ {
+ viewBox: "0 0 14 14",
+ class: "h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75"
+ },
+ /* @__PURE__ */ h("path", { d: "M4 4l6 6m0-6l-6 6" })
+ ),
+ /* @__PURE__ */ h("span", { class: "absolute -inset-1" })
+ ));
+ }), !state.disabled && /* @__PURE__ */ h("div", { class: "relative mt-2" }, /* @__PURE__ */ h(
+ "input",
+ {
+ id: "combobox",
+ type: "text",
+ value: filter != null ? filter : "",
+ onChange: (e22) => {
+ setFilter(e22.currentTarget.value);
+ },
+ placeholder,
+ class: "w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6",
+ role: "combobox",
+ "aria-controls": "options",
+ "aria-expanded": "false"
+ }
+ ), /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ disabled: state.disabled,
+ onClick: () => {
+ setFilter(filter === void 0 ? "" : void 0);
+ },
+ class: "absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none"
+ },
+ /* @__PURE__ */ h(
+ "svg",
+ {
+ class: "h-5 w-5 text-gray-400",
+ viewBox: "0 0 20 20",
+ fill: "currentColor",
+ "aria-hidden": "true"
+ },
+ /* @__PURE__ */ h(
+ "path",
+ {
+ "fill-rule": "evenodd",
+ d: "M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z",
+ "clip-rule": "evenodd"
+ }
+ )
+ )
+ ), filteredChoices !== void 0 && /* @__PURE__ */ h(
+ "ul",
+ {
+ class: "absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",
+ id: "options",
+ role: "listbox"
+ },
+ filteredChoices.map((v3, idx) => {
+ return /* @__PURE__ */ h(
+ "li",
+ {
+ class: "relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600",
+ id: "option-0",
+ role: "option",
+ onClick: () => {
+ setFilter(void 0);
+ if (unique && list.indexOf(v3.value) !== -1) {
+ return;
+ }
+ if (max !== void 0 && list.length >= max) {
+ return;
+ }
+ const newValue = [...list];
+ newValue.splice(0, 0, v3.value);
+ onChange(newValue);
+ }
+ },
+ /* @__PURE__ */ h("span", { class: "block truncate" }, v3.label)
+ );
+ })
+ )));
+}
+function InputSelectOne(props) {
+ const { name, label, choices, placeholder, tooltip, required } = props;
+ const { value, onChange } = useField(name);
+ const [filter, setFilter] = p3(void 0);
+ const regex = new RegExp(`.*${filter}.*`, "i");
+ const choiceMap = choices.reduce((prev, curr) => {
+ return __spreadProps(__spreadValues({}, prev), { [curr.value]: curr.label });
+ }, {});
+ const filteredChoices = filter === void 0 ? void 0 : choices.filter((v3) => {
+ return regex.test(v3.label);
+ });
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ required,
+ tooltip
+ }
+ ), value ? /* @__PURE__ */ h("span", { class: "inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 font-medium text-gray-600" }, choiceMap[value], /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ onClick: () => {
+ onChange(void 0);
+ },
+ class: "group relative h-5 w-5 rounded-sm hover:bg-gray-500/20"
+ },
+ /* @__PURE__ */ h("span", { class: "sr-only" }, "Remove"),
+ /* @__PURE__ */ h(
+ "svg",
+ {
+ viewBox: "0 0 14 14",
+ class: "h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75"
+ },
+ /* @__PURE__ */ h("path", { d: "M4 4l6 6m0-6l-6 6" })
+ ),
+ /* @__PURE__ */ h("span", { class: "absolute -inset-1" })
+ )) : /* @__PURE__ */ h("div", { class: "relative mt-2" }, /* @__PURE__ */ h(
+ "input",
+ {
+ id: "combobox",
+ type: "text",
+ value: filter != null ? filter : "",
+ onChange: (e22) => {
+ setFilter(e22.currentTarget.value);
+ },
+ placeholder,
+ class: "w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6",
+ role: "combobox",
+ "aria-controls": "options",
+ "aria-expanded": "false"
+ }
+ ), /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ onClick: () => {
+ setFilter(filter === void 0 ? "" : void 0);
+ },
+ class: "absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none"
+ },
+ /* @__PURE__ */ h(
+ "svg",
+ {
+ class: "h-5 w-5 text-gray-400",
+ viewBox: "0 0 20 20",
+ fill: "currentColor",
+ "aria-hidden": "true"
+ },
+ /* @__PURE__ */ h(
+ "path",
+ {
+ "fill-rule": "evenodd",
+ d: "M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z",
+ "clip-rule": "evenodd"
+ }
+ )
+ )
+ ), filteredChoices !== void 0 && /* @__PURE__ */ h(
+ "ul",
+ {
+ class: "absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",
+ id: "options",
+ role: "listbox"
+ },
+ filteredChoices.map((v3, idx) => {
+ return /* @__PURE__ */ h(
+ "li",
+ {
+ class: "relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600",
+ id: "option-0",
+ role: "option",
+ onClick: () => {
+ setFilter(void 0);
+ onChange(v3.value);
+ }
+ },
+ /* @__PURE__ */ h("span", { class: "block truncate" }, v3.label)
+ );
+ })
+ )));
+}
+function InputText(props) {
+ return /* @__PURE__ */ h(InputLine, __spreadValues({ type: "text" }, props));
+}
+function InputTextArea(props) {
+ return /* @__PURE__ */ h(InputLine, __spreadValues({ type: "text-area" }, props));
+}
+function InputToggle(props) {
+ const {
+ name,
+ label,
+ tooltip,
+ help,
+ placeholder,
+ required,
+ before,
+ after,
+ converter
+ } = props;
+ const { value, onChange, state, isDirty } = useField(name);
+ const isOn = !!value;
+ return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h("div", { class: "flex items-center justify-between" }, /* @__PURE__ */ h(
+ LabelWithTooltipMaybeRequired,
+ {
+ label,
+ required,
+ tooltip
+ }
+ ), /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ "data-enabled": isOn,
+ class: "bg-indigo-600 data-[enabled=false]:bg-gray-200 relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-600 focus:ring-offset-2",
+ role: "switch",
+ "aria-checked": "false",
+ "aria-labelledby": "availability-label",
+ "aria-describedby": "availability-description",
+ onClick: () => {
+ onChange(!isOn);
+ }
+ },
+ /* @__PURE__ */ h("span", { "aria-hidden": "true", "data-enabled": isOn, class: "translate-x-5 data-[enabled=false]:translate-x-0 pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out" })
+ )));
+}
+var UIFormConfiguration = {
+ group: Group,
+ caption: Caption,
+ //@ts-ignore
+ array: InputArray,
+ text: InputText,
+ //@ts-ignore
+ file: InputFile,
+ textArea: InputTextArea,
+ //@ts-ignore
+ absoluteTime: InputAbsoluteTime,
+ //@ts-ignore
+ choiceStacked: InputChoiceStacked,
+ //@ts-ignore
+ choiceHorizontal: InputChoiceHorizontal,
+ integer: InputInteger,
+ //@ts-ignore
+ selectOne: InputSelectOne,
+ //@ts-ignore
+ selectMultiple: InputSelectMultiple,
+ //@ts-ignore
+ toggle: InputToggle,
+ //@ts-ignore
+ amount: InputAmount
+};
+function RenderAllFieldsByUiConfig({
+ fields
+}) {
+ return h(
+ p2,
+ {},
+ fields.map((field, i22) => {
+ const Component = UIFormConfiguration[field.type];
+ return Component(field.props);
+ })
+ );
+}
+function createNewForm() {
+ const res = {
+ Provider: FormProvider,
+ InputLine: () => InputLine,
+ InputChoiceHorizontal: () => InputChoiceHorizontal
+ };
+ return {
+ Provider: res.Provider,
+ InputLine: res.InputLine(),
+ InputChoiceHorizontal: res.InputChoiceHorizontal()
+ };
+}
+function DefaultForm({
+ initial: initial2,
+ onUpdate,
+ form,
+ onSubmit,
+ children,
+ readOnly
+}) {
+ return /* @__PURE__ */ h(
+ FormProvider,
+ {
+ initial: initial2,
+ onUpdate,
+ onSubmit,
+ readOnly,
+ computeFormState: form.behavior
+ },
+ /* @__PURE__ */ h("div", { class: "space-y-10 divide-y -mt-5 divide-gray-900/10" }, form.design.map((section, i22) => {
+ if (!section)
+ return /* @__PURE__ */ h(p2, null);
+ return /* @__PURE__ */ h("div", { class: "grid grid-cols-1 gap-x-8 gap-y-8 pt-5 md:grid-cols-3" }, /* @__PURE__ */ h("div", { class: "px-4 sm:px-0" }, /* @__PURE__ */ h("h2", { class: "text-base font-semibold leading-7 text-gray-900" }, section.title), section.description && /* @__PURE__ */ h("p", { class: "mt-1 text-sm leading-6 text-gray-600" }, section.description)), /* @__PURE__ */ h("div", { class: "bg-white shadow-sm ring-1 ring-gray-900/5 rounded-md md:col-span-2" }, /* @__PURE__ */ h("div", { class: "p-3" }, /* @__PURE__ */ h("div", { class: "grid max-w-2xl grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6" }, /* @__PURE__ */ h(
+ RenderAllFieldsByUiConfig,
+ {
+ key: i22,
+ fields: section.fields
+ }
+ )))));
+ })),
+ children
+ );
+}
// src/App.tsx
init_preact_module();
@@ -30677,25 +21824,92 @@ init_preact_module();
init_hooks_module();
// src/hooks/useOfficer.ts
+init_hooks_module();
+
+// src/context/config.ts
+init_preact_module();
+init_hooks_module();
+var Context3 = B(void 0);
+var useExchangeApiContext = () => q2(Context3);
+var useMaybeExchangeApiContext = () => q2(Context3);
+var ExchangeApiProvider = ({
+ baseUrl,
+ children,
+ frameOnError
+}) => {
+ const [checked, setChecked] = p3();
+ const { i18n: i18n2 } = useTranslationContext();
+ const url = new URL(baseUrl);
+ const api = new TalerExchangeHttpClient(url.href, new BrowserHttpLib());
+ h2(() => {
+ api.getConfig().then((resp) => {
+ if (api.isCompatible(resp.body.version)) {
+ setChecked({ type: "ok", config: resp.body });
+ } else {
+ setChecked({ type: "incompatible", result: resp.body, supported: api.PROTOCOL_VERSION });
+ }
+ }).catch((error2) => {
+ if (error2 instanceof TalerError) {
+ setChecked({ type: "error", error: error2 });
+ }
+ });
+ }, []);
+ if (checked === void 0) {
+ return h(frameOnError, { children: h("div", {}, "loading...") });
+ }
+ if (checked.type === "error") {
+ return h(frameOnError, { children: h(ErrorLoading, { error: checked.error, showDetail: true }) });
+ }
+ if (checked.type === "incompatible") {
+ return h(frameOnError, { children: h("div", {}, i18n2.str`the bank backend is not supported. supported version "${checked.supported}", server version "${checked.result.version}"`) });
+ }
+ const value = {
+ url,
+ config: checked.config,
+ api
+ };
+ return h(Context3.Provider, {
+ value,
+ children
+ });
+};
+
+// src/hooks/useOfficer.ts
var codecForLockedAccount = codecForString();
+var codecForOfficerAccount = () => buildCodecForObject().property("id", codecForString()).property("strKey", codecForString()).build("OfficerAccount");
var codecForOfficer = () => buildCodecForObject().property("account", codecForLockedAccount).property("when", codecForAbsoluteTime).build("Officer");
var OFFICER_KEY = buildStorageKey("officer", codecForOfficer());
-var ACCOUNT_KEY = "account";
+var DEV_ACCOUNT_KEY = buildStorageKey("account-dev", codecForOfficerAccount());
function useOfficer() {
- const accountStorage = useMemoryStorage(ACCOUNT_KEY);
+ const exchangeContext = useMaybeExchangeApiContext();
+ const accountStorage = useLocalStorage(DEV_ACCOUNT_KEY);
+ const account2 = F(() => {
+ if (!accountStorage.value)
+ return void 0;
+ return {
+ id: accountStorage.value.id,
+ signingKey: decodeCrock(accountStorage.value.strKey)
+ };
+ }, [accountStorage.value]);
const officerStorage = useLocalStorage(OFFICER_KEY);
const officer2 = officerStorage.value;
- const account2 = accountStorage.value;
if (officer2 === void 0) {
return {
state: "not-found",
create: (pwd) => __async(this, null, function* () {
- const { id, safe, signingKey } = yield createNewOfficerAccount(pwd);
+ if (!exchangeContext)
+ return;
+ const req = yield fetch(new URL("seed", exchangeContext.api.baseUrl).href);
+ const b5 = yield req.blob();
+ const ar = yield b5.arrayBuffer();
+ const uintar = new Uint8Array(ar);
+ const { id, safe, signingKey } = yield createNewOfficerAccount(pwd, uintar);
officerStorage.update({
account: safe,
when: AbsoluteTime.now()
});
- accountStorage.update({ id, signingKey });
+ const strKey = encodeCrock(signingKey);
+ accountStorage.update({ id, strKey });
})
};
}
@@ -30707,7 +21921,7 @@ function useOfficer() {
},
tryUnlock: (pwd) => __async(this, null, function* () {
const ac = yield unlockOfficerAccount(officer2.account, pwd);
- accountStorage.update(ac);
+ accountStorage.update({ id: ac.id, strKey: encodeCrock(ac.signingKey) });
})
};
}
@@ -30726,17 +21940,20 @@ function useOfficer() {
// src/hooks/useSettings.ts
function getAllBooleanSettings() {
- return ["allowInsecurePassword"];
+ return ["allowInsecurePassword", "keepSessionAfterReload"];
}
-function getLabelForSetting(k5, i18n2) {
- switch (k5) {
+function getLabelForSetting(k6, i18n2) {
+ switch (k6) {
case "allowInsecurePassword":
return i18n2.str`Allow Insecure password`;
+ case "keepSessionAfterReload":
+ return i18n2.str`Keep session after reload`;
}
}
-var codecForSettings = () => buildCodecForObject().property("allowInsecurePassword", codecForBoolean()).build("Settings");
+var codecForSettings = () => buildCodecForObject().property("allowInsecurePassword", codecForBoolean()).property("keepSessionAfterReload", codecForBoolean()).build("Settings");
var defaultSettings = {
- allowInsecurePassword: false
+ allowInsecurePassword: false,
+ keepSessionAfterReload: false
};
var EXCHANGE_SETTINGS_KEY = buildStorageKey(
"exchange-settings",
@@ -30747,8 +21964,8 @@ function useSettings() {
EXCHANGE_SETTINGS_KEY,
defaultSettings
);
- function updateField(k5, v3) {
- const newValue = __spreadProps(__spreadValues({}, value), { [k5]: v3 });
+ function updateField(k6, v3) {
+ const newValue = __spreadProps(__spreadValues({}, value), { [k6]: v3 });
update(newValue);
}
return [value, updateField];
@@ -30774,23 +21991,23 @@ function requiredArgs2(required, args) {
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/toDate/index.js
-function _typeof2(obj) {
+function _typeof38(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof2 = function _typeof69(obj2) {
+ _typeof38 = function _typeof40(obj2) {
return typeof obj2;
};
} else {
- _typeof2 = function _typeof69(obj2) {
+ _typeof38 = function _typeof40(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof2(obj);
+ return _typeof38(obj);
}
function toDate2(argument) {
requiredArgs2(1, arguments);
var argStr = Object.prototype.toString.call(argument);
- if (argument instanceof Date || _typeof2(argument) === "object" && argStr === "[object Date]") {
+ if (argument instanceof Date || _typeof38(argument) === "object" && argStr === "[object Date]") {
return new Date(argument.getTime());
} else if (typeof argument === "number" || argStr === "[object Number]") {
return new Date(argument);
@@ -30804,7 +22021,7 @@ function toDate2(argument) {
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMilliseconds/index.js
-function addMilliseconds(dirtyDate, dirtyAmount) {
+function addMilliseconds2(dirtyDate, dirtyAmount) {
requiredArgs2(2, arguments);
var timestamp = toDate2(dirtyDate).getTime();
var amount = toInteger2(dirtyAmount);
@@ -30818,49 +22035,35 @@ function getDefaultOptions2() {
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js
-function getTimezoneOffsetInMilliseconds(date) {
+function getTimezoneOffsetInMilliseconds2(date) {
var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
utcDate.setUTCFullYear(date.getFullYear());
return date.getTime() - utcDate.getTime();
}
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/constants/index.js
-var daysInYear2 = 365.2425;
-var maxTime2 = Math.pow(10, 8) * 24 * 60 * 60 * 1e3;
-var millisecondsInMinute2 = 6e4;
-var millisecondsInHour2 = 36e5;
-var millisecondsInSecond2 = 1e3;
-var minTime2 = -maxTime2;
-var secondsInHour2 = 3600;
-var secondsInDay2 = secondsInHour2 * 24;
-var secondsInWeek2 = secondsInDay2 * 7;
-var secondsInYear2 = secondsInDay2 * daysInYear2;
-var secondsInMonth2 = secondsInYear2 / 12;
-var secondsInQuarter2 = secondsInMonth2 * 3;
-
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isDate/index.js
-function _typeof35(obj) {
+function _typeof39(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof35 = function _typeof69(obj2) {
+ _typeof39 = function _typeof40(obj2) {
return typeof obj2;
};
} else {
- _typeof35 = function _typeof69(obj2) {
+ _typeof39 = function _typeof40(obj2) {
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
};
}
- return _typeof35(obj);
+ return _typeof39(obj);
}
-function isDate(value) {
+function isDate2(value) {
requiredArgs2(1, arguments);
- return value instanceof Date || _typeof35(value) === "object" && Object.prototype.toString.call(value) === "[object Date]";
+ return value instanceof Date || _typeof39(value) === "object" && Object.prototype.toString.call(value) === "[object Date]";
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isValid/index.js
-function isValid(dirtyDate) {
+function isValid2(dirtyDate) {
requiredArgs2(1, arguments);
- if (!isDate(dirtyDate) && typeof dirtyDate !== "number") {
+ if (!isDate2(dirtyDate) && typeof dirtyDate !== "number") {
return false;
}
var date = toDate2(dirtyDate);
@@ -30868,15 +22071,15 @@ function isValid(dirtyDate) {
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subMilliseconds/index.js
-function subMilliseconds(dirtyDate, dirtyAmount) {
+function subMilliseconds2(dirtyDate, dirtyAmount) {
requiredArgs2(2, arguments);
var amount = toInteger2(dirtyAmount);
- return addMilliseconds(dirtyDate, -amount);
+ return addMilliseconds2(dirtyDate, -amount);
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js
-var MILLISECONDS_IN_DAY = 864e5;
-function getUTCDayOfYear(dirtyDate) {
+var MILLISECONDS_IN_DAY2 = 864e5;
+function getUTCDayOfYear2(dirtyDate) {
requiredArgs2(1, arguments);
var date = toDate2(dirtyDate);
var timestamp = date.getTime();
@@ -30884,7 +22087,7 @@ function getUTCDayOfYear(dirtyDate) {
date.setUTCHours(0, 0, 0, 0);
var startOfYearTimestamp = date.getTime();
var difference = timestamp - startOfYearTimestamp;
- return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;
+ return Math.floor(difference / MILLISECONDS_IN_DAY2) + 1;
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js
@@ -31010,7 +22213,7 @@ function getUTCWeek2(dirtyDate, options) {
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js
-function addLeadingZeros(number, targetLength) {
+function addLeadingZeros2(number, targetLength) {
var sign2 = number < 0 ? "-" : "";
var output = Math.abs(number).toString();
while (output.length < targetLength) {
@@ -31020,24 +22223,24 @@ function addLeadingZeros(number, targetLength) {
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js
-var formatters = {
+var formatters3 = {
// Year
- y: function y3(date, token) {
+ y: function y4(date, token) {
var signedYear = date.getUTCFullYear();
var year = signedYear > 0 ? signedYear : 1 - signedYear;
- return addLeadingZeros(token === "yy" ? year % 100 : year, token.length);
+ return addLeadingZeros2(token === "yy" ? year % 100 : year, token.length);
},
// Month
- M: function M4(date, token) {
+ M: function M5(date, token) {
var month = date.getUTCMonth();
- return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2);
+ return token === "M" ? String(month + 1) : addLeadingZeros2(month + 1, 2);
},
// Day of the month
- d: function d3(date, token) {
- return addLeadingZeros(date.getUTCDate(), token.length);
+ d: function d4(date, token) {
+ return addLeadingZeros2(date.getUTCDate(), token.length);
},
// AM or PM
- a: function a3(date, token) {
+ a: function a4(date, token) {
var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? "pm" : "am";
switch (token) {
case "a":
@@ -31054,32 +22257,32 @@ var formatters = {
},
// Hour [1-12]
h: function h3(date, token) {
- return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);
+ return addLeadingZeros2(date.getUTCHours() % 12 || 12, token.length);
},
// Hour [0-23]
- H: function H3(date, token) {
- return addLeadingZeros(date.getUTCHours(), token.length);
+ H: function H4(date, token) {
+ return addLeadingZeros2(date.getUTCHours(), token.length);
},
// Minute
- m: function m3(date, token) {
- return addLeadingZeros(date.getUTCMinutes(), token.length);
+ m: function m4(date, token) {
+ return addLeadingZeros2(date.getUTCMinutes(), token.length);
},
// Second
- s: function s3(date, token) {
- return addLeadingZeros(date.getUTCSeconds(), token.length);
+ s: function s4(date, token) {
+ return addLeadingZeros2(date.getUTCSeconds(), token.length);
},
// Fraction of second
- S: function S3(date, token) {
+ S: function S4(date, token) {
var numberOfDigits = token.length;
var milliseconds = date.getUTCMilliseconds();
var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));
- return addLeadingZeros(fractionalSeconds, token.length);
+ return addLeadingZeros2(fractionalSeconds, token.length);
}
};
-var lightFormatters_default = formatters;
+var lightFormatters_default2 = formatters3;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/formatters/index.js
-var dayPeriodEnum = {
+var dayPeriodEnum2 = {
am: "am",
pm: "pm",
midnight: "midnight",
@@ -31089,9 +22292,9 @@ var dayPeriodEnum = {
evening: "evening",
night: "night"
};
-var formatters2 = {
+var formatters4 = {
// Era
- G: function G2(date, token, localize3) {
+ G: function G3(date, token, localize3) {
var era = date.getUTCFullYear() > 0 ? 1 : 0;
switch (token) {
case "G":
@@ -31112,7 +22315,7 @@ var formatters2 = {
}
},
// Year
- y: function y4(date, token, localize3) {
+ y: function y5(date, token, localize3) {
if (token === "yo") {
var signedYear = date.getUTCFullYear();
var year = signedYear > 0 ? signedYear : 1 - signedYear;
@@ -31120,27 +22323,27 @@ var formatters2 = {
unit: "year"
});
}
- return lightFormatters_default.y(date, token);
+ return lightFormatters_default2.y(date, token);
},
// Local week-numbering year
- Y: function Y3(date, token, localize3, options) {
+ Y: function Y4(date, token, localize3, options) {
var signedWeekYear = getUTCWeekYear2(date, options);
var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;
if (token === "YY") {
var twoDigitYear = weekYear % 100;
- return addLeadingZeros(twoDigitYear, 2);
+ return addLeadingZeros2(twoDigitYear, 2);
}
if (token === "Yo") {
return localize3.ordinalNumber(weekYear, {
unit: "year"
});
}
- return addLeadingZeros(weekYear, token.length);
+ return addLeadingZeros2(weekYear, token.length);
},
// ISO week-numbering year
- R: function R2(date, token) {
+ R: function R3(date, token) {
var isoWeekYear = getUTCISOWeekYear2(date);
- return addLeadingZeros(isoWeekYear, token.length);
+ return addLeadingZeros2(isoWeekYear, token.length);
},
// Extended year. This is a single number designating the year of this calendar system.
// The main difference between `y` and `u` localizers are B.C. years:
@@ -31151,18 +22354,18 @@ var formatters2 = {
// | BC 2 | 2 | -1 |
// Also `yy` always returns the last two digits of a year,
// while `uu` pads single digit years to 2 characters and returns other years unchanged.
- u: function u3(date, token) {
+ u: function u4(date, token) {
var year = date.getUTCFullYear();
- return addLeadingZeros(year, token.length);
+ return addLeadingZeros2(year, token.length);
},
// Quarter
- Q: function Q2(date, token, localize3) {
+ Q: function Q3(date, token, localize3) {
var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
switch (token) {
case "Q":
return String(quarter);
case "QQ":
- return addLeadingZeros(quarter, 2);
+ return addLeadingZeros2(quarter, 2);
case "Qo":
return localize3.ordinalNumber(quarter, {
unit: "quarter"
@@ -31186,13 +22389,13 @@ var formatters2 = {
}
},
// Stand-alone quarter
- q: function q4(date, token, localize3) {
+ q: function q5(date, token, localize3) {
var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
switch (token) {
case "q":
return String(quarter);
case "qq":
- return addLeadingZeros(quarter, 2);
+ return addLeadingZeros2(quarter, 2);
case "qo":
return localize3.ordinalNumber(quarter, {
unit: "quarter"
@@ -31216,12 +22419,12 @@ var formatters2 = {
}
},
// Month
- M: function M5(date, token, localize3) {
+ M: function M6(date, token, localize3) {
var month = date.getUTCMonth();
switch (token) {
case "M":
case "MM":
- return lightFormatters_default.M(date, token);
+ return lightFormatters_default2.M(date, token);
case "Mo":
return localize3.ordinalNumber(month + 1, {
unit: "month"
@@ -31245,13 +22448,13 @@ var formatters2 = {
}
},
// Stand-alone month
- L: function L4(date, token, localize3) {
+ L: function L5(date, token, localize3) {
var month = date.getUTCMonth();
switch (token) {
case "L":
return String(month + 1);
case "LL":
- return addLeadingZeros(month + 1, 2);
+ return addLeadingZeros2(month + 1, 2);
case "Lo":
return localize3.ordinalNumber(month + 1, {
unit: "month"
@@ -31275,46 +22478,46 @@ var formatters2 = {
}
},
// Local week of year
- w: function w4(date, token, localize3, options) {
+ w: function w5(date, token, localize3, options) {
var week = getUTCWeek2(date, options);
if (token === "wo") {
return localize3.ordinalNumber(week, {
unit: "week"
});
}
- return addLeadingZeros(week, token.length);
+ return addLeadingZeros2(week, token.length);
},
// ISO week of year
- I: function I4(date, token, localize3) {
+ I: function I5(date, token, localize3) {
var isoWeek = getUTCISOWeek2(date);
if (token === "Io") {
return localize3.ordinalNumber(isoWeek, {
unit: "week"
});
}
- return addLeadingZeros(isoWeek, token.length);
+ return addLeadingZeros2(isoWeek, token.length);
},
// Day of the month
- d: function d4(date, token, localize3) {
+ d: function d5(date, token, localize3) {
if (token === "do") {
return localize3.ordinalNumber(date.getUTCDate(), {
unit: "date"
});
}
- return lightFormatters_default.d(date, token);
+ return lightFormatters_default2.d(date, token);
},
// Day of year
- D: function D4(date, token, localize3) {
- var dayOfYear = getUTCDayOfYear(date);
+ D: function D5(date, token, localize3) {
+ var dayOfYear = getUTCDayOfYear2(date);
if (token === "Do") {
return localize3.ordinalNumber(dayOfYear, {
unit: "dayOfYear"
});
}
- return addLeadingZeros(dayOfYear, token.length);
+ return addLeadingZeros2(dayOfYear, token.length);
},
// Day of week
- E: function E2(date, token, localize3) {
+ E: function E3(date, token, localize3) {
var dayOfWeek = date.getUTCDay();
switch (token) {
case "E":
@@ -31343,14 +22546,14 @@ var formatters2 = {
}
},
// Local day of week
- e: function e3(date, token, localize3, options) {
+ e: function e4(date, token, localize3, options) {
var dayOfWeek = date.getUTCDay();
var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
switch (token) {
case "e":
return String(localDayOfWeek);
case "ee":
- return addLeadingZeros(localDayOfWeek, 2);
+ return addLeadingZeros2(localDayOfWeek, 2);
case "eo":
return localize3.ordinalNumber(localDayOfWeek, {
unit: "day"
@@ -31379,14 +22582,14 @@ var formatters2 = {
}
},
// Stand-alone local day of week
- c: function c3(date, token, localize3, options) {
+ c: function c4(date, token, localize3, options) {
var dayOfWeek = date.getUTCDay();
var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
switch (token) {
case "c":
return String(localDayOfWeek);
case "cc":
- return addLeadingZeros(localDayOfWeek, token.length);
+ return addLeadingZeros2(localDayOfWeek, token.length);
case "co":
return localize3.ordinalNumber(localDayOfWeek, {
unit: "day"
@@ -31415,14 +22618,14 @@ var formatters2 = {
}
},
// ISO day of week
- i: function i3(date, token, localize3) {
+ i: function i4(date, token, localize3) {
var dayOfWeek = date.getUTCDay();
var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
switch (token) {
case "i":
return String(isoDayOfWeek);
case "ii":
- return addLeadingZeros(isoDayOfWeek, token.length);
+ return addLeadingZeros2(isoDayOfWeek, token.length);
case "io":
return localize3.ordinalNumber(isoDayOfWeek, {
unit: "day"
@@ -31451,7 +22654,7 @@ var formatters2 = {
}
},
// AM or PM
- a: function a4(date, token, localize3) {
+ a: function a5(date, token, localize3) {
var hours = date.getUTCHours();
var dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
switch (token) {
@@ -31480,13 +22683,13 @@ var formatters2 = {
}
},
// AM, PM, midnight, noon
- b: function b3(date, token, localize3) {
+ b: function b4(date, token, localize3) {
var hours = date.getUTCHours();
var dayPeriodEnumValue;
if (hours === 12) {
- dayPeriodEnumValue = dayPeriodEnum.noon;
+ dayPeriodEnumValue = dayPeriodEnum2.noon;
} else if (hours === 0) {
- dayPeriodEnumValue = dayPeriodEnum.midnight;
+ dayPeriodEnumValue = dayPeriodEnum2.midnight;
} else {
dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
}
@@ -31516,17 +22719,17 @@ var formatters2 = {
}
},
// in the morning, in the afternoon, in the evening, at night
- B: function B4(date, token, localize3) {
+ B: function B5(date, token, localize3) {
var hours = date.getUTCHours();
var dayPeriodEnumValue;
if (hours >= 17) {
- dayPeriodEnumValue = dayPeriodEnum.evening;
+ dayPeriodEnumValue = dayPeriodEnum2.evening;
} else if (hours >= 12) {
- dayPeriodEnumValue = dayPeriodEnum.afternoon;
+ dayPeriodEnumValue = dayPeriodEnum2.afternoon;
} else if (hours >= 4) {
- dayPeriodEnumValue = dayPeriodEnum.morning;
+ dayPeriodEnumValue = dayPeriodEnum2.morning;
} else {
- dayPeriodEnumValue = dayPeriodEnum.night;
+ dayPeriodEnumValue = dayPeriodEnum2.night;
}
switch (token) {
case "B":
@@ -31559,29 +22762,29 @@ var formatters2 = {
unit: "hour"
});
}
- return lightFormatters_default.h(date, token);
+ return lightFormatters_default2.h(date, token);
},
// Hour [0-23]
- H: function H4(date, token, localize3) {
+ H: function H5(date, token, localize3) {
if (token === "Ho") {
return localize3.ordinalNumber(date.getUTCHours(), {
unit: "hour"
});
}
- return lightFormatters_default.H(date, token);
+ return lightFormatters_default2.H(date, token);
},
// Hour [0-11]
- K: function K4(date, token, localize3) {
+ K: function K5(date, token, localize3) {
var hours = date.getUTCHours() % 12;
if (token === "Ko") {
return localize3.ordinalNumber(hours, {
unit: "hour"
});
}
- return addLeadingZeros(hours, token.length);
+ return addLeadingZeros2(hours, token.length);
},
// Hour [1-24]
- k: function k4(date, token, localize3) {
+ k: function k5(date, token, localize3) {
var hours = date.getUTCHours();
if (hours === 0)
hours = 24;
@@ -31590,32 +22793,32 @@ var formatters2 = {
unit: "hour"
});
}
- return addLeadingZeros(hours, token.length);
+ return addLeadingZeros2(hours, token.length);
},
// Minute
- m: function m4(date, token, localize3) {
+ m: function m5(date, token, localize3) {
if (token === "mo") {
return localize3.ordinalNumber(date.getUTCMinutes(), {
unit: "minute"
});
}
- return lightFormatters_default.m(date, token);
+ return lightFormatters_default2.m(date, token);
},
// Second
- s: function s4(date, token, localize3) {
+ s: function s5(date, token, localize3) {
if (token === "so") {
return localize3.ordinalNumber(date.getUTCSeconds(), {
unit: "second"
});
}
- return lightFormatters_default.s(date, token);
+ return lightFormatters_default2.s(date, token);
},
// Fraction of second
- S: function S4(date, token) {
- return lightFormatters_default.S(date, token);
+ S: function S5(date, token) {
+ return lightFormatters_default2.S(date, token);
},
// Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
- X: function X3(date, token, _localize, options) {
+ X: function X4(date, token, _localize, options) {
var originalDate = options._originalDate || date;
var timezoneOffset = originalDate.getTimezoneOffset();
if (timezoneOffset === 0) {
@@ -31623,74 +22826,74 @@ var formatters2 = {
}
switch (token) {
case "X":
- return formatTimezoneWithOptionalMinutes(timezoneOffset);
+ return formatTimezoneWithOptionalMinutes2(timezoneOffset);
case "XXXX":
case "XX":
- return formatTimezone(timezoneOffset);
+ return formatTimezone2(timezoneOffset);
case "XXXXX":
case "XXX":
default:
- return formatTimezone(timezoneOffset, ":");
+ return formatTimezone2(timezoneOffset, ":");
}
},
// Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
- x: function x5(date, token, _localize, options) {
+ x: function x6(date, token, _localize, options) {
var originalDate = options._originalDate || date;
var timezoneOffset = originalDate.getTimezoneOffset();
switch (token) {
case "x":
- return formatTimezoneWithOptionalMinutes(timezoneOffset);
+ return formatTimezoneWithOptionalMinutes2(timezoneOffset);
case "xxxx":
case "xx":
- return formatTimezone(timezoneOffset);
+ return formatTimezone2(timezoneOffset);
case "xxxxx":
case "xxx":
default:
- return formatTimezone(timezoneOffset, ":");
+ return formatTimezone2(timezoneOffset, ":");
}
},
// Timezone (GMT)
- O: function O3(date, token, _localize, options) {
+ O: function O4(date, token, _localize, options) {
var originalDate = options._originalDate || date;
var timezoneOffset = originalDate.getTimezoneOffset();
switch (token) {
case "O":
case "OO":
case "OOO":
- return "GMT" + formatTimezoneShort(timezoneOffset, ":");
+ return "GMT" + formatTimezoneShort2(timezoneOffset, ":");
case "OOOO":
default:
- return "GMT" + formatTimezone(timezoneOffset, ":");
+ return "GMT" + formatTimezone2(timezoneOffset, ":");
}
},
// Timezone (specific non-location)
- z: function z4(date, token, _localize, options) {
+ z: function z5(date, token, _localize, options) {
var originalDate = options._originalDate || date;
var timezoneOffset = originalDate.getTimezoneOffset();
switch (token) {
case "z":
case "zz":
case "zzz":
- return "GMT" + formatTimezoneShort(timezoneOffset, ":");
+ return "GMT" + formatTimezoneShort2(timezoneOffset, ":");
case "zzzz":
default:
- return "GMT" + formatTimezone(timezoneOffset, ":");
+ return "GMT" + formatTimezone2(timezoneOffset, ":");
}
},
// Seconds timestamp
- t: function t3(date, token, _localize, options) {
+ t: function t4(date, token, _localize, options) {
var originalDate = options._originalDate || date;
var timestamp = Math.floor(originalDate.getTime() / 1e3);
- return addLeadingZeros(timestamp, token.length);
+ return addLeadingZeros2(timestamp, token.length);
},
// Milliseconds timestamp
- T: function T4(date, token, _localize, options) {
+ T: function T5(date, token, _localize, options) {
var originalDate = options._originalDate || date;
var timestamp = originalDate.getTime();
- return addLeadingZeros(timestamp, token.length);
+ return addLeadingZeros2(timestamp, token.length);
}
};
-function formatTimezoneShort(offset, dirtyDelimiter) {
+function formatTimezoneShort2(offset, dirtyDelimiter) {
var sign2 = offset > 0 ? "-" : "+";
var absOffset = Math.abs(offset);
var hours = Math.floor(absOffset / 60);
@@ -31699,27 +22902,27 @@ function formatTimezoneShort(offset, dirtyDelimiter) {
return sign2 + String(hours);
}
var delimiter2 = dirtyDelimiter || "";
- return sign2 + String(hours) + delimiter2 + addLeadingZeros(minutes, 2);
+ return sign2 + String(hours) + delimiter2 + addLeadingZeros2(minutes, 2);
}
-function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {
+function formatTimezoneWithOptionalMinutes2(offset, dirtyDelimiter) {
if (offset % 60 === 0) {
var sign2 = offset > 0 ? "-" : "+";
- return sign2 + addLeadingZeros(Math.abs(offset) / 60, 2);
+ return sign2 + addLeadingZeros2(Math.abs(offset) / 60, 2);
}
- return formatTimezone(offset, dirtyDelimiter);
+ return formatTimezone2(offset, dirtyDelimiter);
}
-function formatTimezone(offset, dirtyDelimiter) {
+function formatTimezone2(offset, dirtyDelimiter) {
var delimiter2 = dirtyDelimiter || "";
var sign2 = offset > 0 ? "-" : "+";
var absOffset = Math.abs(offset);
- var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);
- var minutes = addLeadingZeros(absOffset % 60, 2);
+ var hours = addLeadingZeros2(Math.floor(absOffset / 60), 2);
+ var minutes = addLeadingZeros2(absOffset % 60, 2);
return sign2 + hours + delimiter2 + minutes;
}
-var formatters_default = formatters2;
+var formatters_default2 = formatters4;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/longFormatters/index.js
-var dateLongFormatter = function dateLongFormatter2(pattern, formatLong3) {
+var dateLongFormatter3 = function dateLongFormatter4(pattern, formatLong3) {
switch (pattern) {
case "P":
return formatLong3.date({
@@ -31740,7 +22943,7 @@ var dateLongFormatter = function dateLongFormatter2(pattern, formatLong3) {
});
}
};
-var timeLongFormatter = function timeLongFormatter2(pattern, formatLong3) {
+var timeLongFormatter3 = function timeLongFormatter4(pattern, formatLong3) {
switch (pattern) {
case "p":
return formatLong3.time({
@@ -31761,12 +22964,12 @@ var timeLongFormatter = function timeLongFormatter2(pattern, formatLong3) {
});
}
};
-var dateTimeLongFormatter = function dateTimeLongFormatter2(pattern, formatLong3) {
+var dateTimeLongFormatter3 = function dateTimeLongFormatter4(pattern, formatLong3) {
var matchResult = pattern.match(/(P+)(p+)?/) || [];
var datePattern = matchResult[1];
var timePattern = matchResult[2];
if (!timePattern) {
- return dateLongFormatter(pattern, formatLong3);
+ return dateLongFormatter3(pattern, formatLong3);
}
var dateTimeFormat;
switch (datePattern) {
@@ -31792,37 +22995,37 @@ var dateTimeLongFormatter = function dateTimeLongFormatter2(pattern, formatLong3
});
break;
}
- return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong3)).replace("{{time}}", timeLongFormatter(timePattern, formatLong3));
+ return dateTimeFormat.replace("{{date}}", dateLongFormatter3(datePattern, formatLong3)).replace("{{time}}", timeLongFormatter3(timePattern, formatLong3));
};
-var longFormatters = {
- p: timeLongFormatter,
- P: dateTimeLongFormatter
+var longFormatters2 = {
+ p: timeLongFormatter3,
+ P: dateTimeLongFormatter3
};
-var longFormatters_default = longFormatters;
+var longFormatters_default2 = longFormatters2;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/protectedTokens/index.js
-var protectedDayOfYearTokens = ["D", "DD"];
-var protectedWeekYearTokens = ["YY", "YYYY"];
-function isProtectedDayOfYearToken(token) {
- return protectedDayOfYearTokens.indexOf(token) !== -1;
+var protectedDayOfYearTokens2 = ["D", "DD"];
+var protectedWeekYearTokens2 = ["YY", "YYYY"];
+function isProtectedDayOfYearToken2(token) {
+ return protectedDayOfYearTokens2.indexOf(token) !== -1;
}
-function isProtectedWeekYearToken(token) {
- return protectedWeekYearTokens.indexOf(token) !== -1;
+function isProtectedWeekYearToken2(token) {
+ return protectedWeekYearTokens2.indexOf(token) !== -1;
}
-function throwProtectedError(token, format2, input) {
+function throwProtectedError2(token, format3, input) {
if (token === "YYYY") {
- throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format3, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
} else if (token === "YY") {
- throw new RangeError("Use `yy` instead of `YY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ throw new RangeError("Use `yy` instead of `YY` (in `".concat(format3, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
} else if (token === "D") {
- throw new RangeError("Use `d` instead of `D` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ throw new RangeError("Use `d` instead of `D` (in `".concat(format3, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
} else if (token === "DD") {
- throw new RangeError("Use `dd` instead of `DD` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+ throw new RangeError("Use `dd` instead of `DD` (in `".concat(format3, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
}
}
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js
-var formatDistanceLocale = {
+var formatDistanceLocale2 = {
lessThanXSeconds: {
one: "less than a second",
other: "less than {{count}} seconds"
@@ -31885,9 +23088,9 @@ var formatDistanceLocale = {
other: "almost {{count}} years"
}
};
-var formatDistance = function formatDistance2(token, count, options) {
+var formatDistance3 = function formatDistance4(token, count, options) {
var result;
- var tokenValue = formatDistanceLocale[token];
+ var tokenValue = formatDistanceLocale2[token];
if (typeof tokenValue === "string") {
result = tokenValue;
} else if (count === 1) {
@@ -31904,15 +23107,15 @@ var formatDistance = function formatDistance2(token, count, options) {
}
return result;
};
-var formatDistance_default = formatDistance;
+var formatDistance_default2 = formatDistance3;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js
function buildFormatLongFn2(args) {
return function() {
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
var width = options.width ? String(options.width) : args.defaultWidth;
- var format2 = args.formats[width] || args.formats[args.defaultWidth];
- return format2;
+ var format3 = args.formats[width] || args.formats[args.defaultWidth];
+ return format3;
};
}
@@ -31949,10 +23152,10 @@ var formatLong2 = {
defaultWidth: "full"
})
};
-var formatLong_default = formatLong2;
+var formatLong_default2 = formatLong2;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js
-var formatRelativeLocale = {
+var formatRelativeLocale2 = {
lastWeek: "'last' eeee 'at' p",
yesterday: "'yesterday at' p",
today: "'today at' p",
@@ -31960,10 +23163,10 @@ var formatRelativeLocale = {
nextWeek: "eeee 'at' p",
other: "P"
};
-var formatRelative = function formatRelative2(token, _date, _baseDate, _options) {
- return formatRelativeLocale[token];
+var formatRelative3 = function formatRelative4(token, _date, _baseDate, _options) {
+ return formatRelativeLocale2[token];
};
-var formatRelative_default = formatRelative;
+var formatRelative_default2 = formatRelative3;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js
function buildLocalizeFn2(args) {
@@ -32113,7 +23316,7 @@ var localize2 = {
defaultFormattingWidth: "wide"
})
};
-var localize_default = localize2;
+var localize_default2 = localize2;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js
function buildMatchFn2(args) {
@@ -32276,38 +23479,38 @@ var match2 = {
defaultParseWidth: "any"
})
};
-var match_default = match2;
+var match_default2 = match2;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/index.js
-var locale = {
+var locale2 = {
code: "en-US",
- formatDistance: formatDistance_default,
- formatLong: formatLong_default,
- formatRelative: formatRelative_default,
- localize: localize_default,
- match: match_default,
+ formatDistance: formatDistance_default2,
+ formatLong: formatLong_default2,
+ formatRelative: formatRelative_default2,
+ localize: localize_default2,
+ match: match_default2,
options: {
weekStartsOn: 0,
firstWeekContainsDate: 1
}
};
-var en_US_default = locale;
+var en_US_default2 = locale2;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultLocale/index.js
-var defaultLocale_default = en_US_default;
+var defaultLocale_default2 = en_US_default2;
// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/format/index.js
-var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
-var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
-var escapedStringRegExp = /^'([^]*?)'?$/;
-var doubleQuoteRegExp = /''/g;
-var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
-function format(dirtyDate, dirtyFormatStr, options) {
+var formattingTokensRegExp3 = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
+var longFormattingTokensRegExp3 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
+var escapedStringRegExp3 = /^'([^]*?)'?$/;
+var doubleQuoteRegExp3 = /''/g;
+var unescapedLatinCharacterRegExp3 = /[a-zA-Z]/;
+function format2(dirtyDate, dirtyFormatStr, options) {
var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
requiredArgs2(2, arguments);
var formatStr = String(dirtyFormatStr);
var defaultOptions3 = getDefaultOptions2();
- var locale2 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions3.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default;
+ var locale3 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions3.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default2;
var firstWeekContainsDate = toInteger2((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions3.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions3.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);
if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");
@@ -32316,5698 +23519,62 @@ function format(dirtyDate, dirtyFormatStr, options) {
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
}
- if (!locale2.localize) {
+ if (!locale3.localize) {
throw new RangeError("locale must contain localize property");
}
- if (!locale2.formatLong) {
+ if (!locale3.formatLong) {
throw new RangeError("locale must contain formatLong property");
}
var originalDate = toDate2(dirtyDate);
- if (!isValid(originalDate)) {
+ if (!isValid2(originalDate)) {
throw new RangeError("Invalid time value");
}
- var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);
- var utcDate = subMilliseconds(originalDate, timezoneOffset);
+ var timezoneOffset = getTimezoneOffsetInMilliseconds2(originalDate);
+ var utcDate = subMilliseconds2(originalDate, timezoneOffset);
var formatterOptions = {
firstWeekContainsDate,
weekStartsOn,
- locale: locale2,
+ locale: locale3,
_originalDate: originalDate
};
- var result = formatStr.match(longFormattingTokensRegExp).map(function(substring) {
+ var result = formatStr.match(longFormattingTokensRegExp3).map(function(substring) {
var firstCharacter = substring[0];
if (firstCharacter === "p" || firstCharacter === "P") {
- var longFormatter = longFormatters_default[firstCharacter];
- return longFormatter(substring, locale2.formatLong);
+ var longFormatter = longFormatters_default2[firstCharacter];
+ return longFormatter(substring, locale3.formatLong);
}
return substring;
- }).join("").match(formattingTokensRegExp).map(function(substring) {
+ }).join("").match(formattingTokensRegExp3).map(function(substring) {
if (substring === "''") {
return "'";
}
var firstCharacter = substring[0];
if (firstCharacter === "'") {
- return cleanEscapedString(substring);
+ return cleanEscapedString3(substring);
}
- var formatter = formatters_default[firstCharacter];
+ var formatter = formatters_default2[firstCharacter];
if (formatter) {
- if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {
- throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
+ if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken2(substring)) {
+ throwProtectedError2(substring, dirtyFormatStr, String(dirtyDate));
}
- if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {
- throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
+ if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken2(substring)) {
+ throwProtectedError2(substring, dirtyFormatStr, String(dirtyDate));
}
- return formatter(utcDate, substring, locale2.localize, formatterOptions);
+ return formatter(utcDate, substring, locale3.localize, formatterOptions);
}
- if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
+ if (firstCharacter.match(unescapedLatinCharacterRegExp3)) {
throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`");
}
return substring;
}).join("");
return result;
}
-function cleanEscapedString(input) {
- var matched = input.match(escapedStringRegExp);
+function cleanEscapedString3(input) {
+ var matched = input.match(escapedStringRegExp3);
if (!matched) {
return input;
}
- return matched[1].replace(doubleQuoteRegExp, "'");
-}
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/assign/index.js
-function assign(target, object) {
- if (target == null) {
- throw new TypeError("assign requires that input parameter not be null or undefined");
- }
- for (var property in object) {
- if (Object.prototype.hasOwnProperty.call(object, property)) {
- ;
- target[property] = object[property];
- }
- }
- return target;
-}
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Setter.js
-function _typeof36(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof36 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof36 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof36(obj);
-}
-function _inherits33(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf33(subClass, superClass);
-}
-function _setPrototypeOf33(o3, p4) {
- _setPrototypeOf33 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf33(o3, p4);
-}
-function _createSuper33(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct33();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf33(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf33(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn33(this, result);
- };
-}
-function _possibleConstructorReturn33(self2, call) {
- if (call && (_typeof36(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized33(self2);
-}
-function _assertThisInitialized33(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct33() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf33(o3) {
- _getPrototypeOf33 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf33(o3);
-}
-function _classCallCheck34(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties34(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass34(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties34(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties34(Constructor, staticProps);
- return Constructor;
-}
-function _defineProperty33(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var TIMEZONE_UNIT_PRIORITY = 10;
-var Setter2 = /* @__PURE__ */ function() {
- function Setter3() {
- _classCallCheck34(this, Setter3);
- _defineProperty33(this, "subPriority", 0);
- }
- _createClass34(Setter3, [{
- key: "validate",
- value: function validate(_utcDate, _options) {
- return true;
- }
- }]);
- return Setter3;
-}();
-var ValueSetter2 = /* @__PURE__ */ function(_Setter) {
- _inherits33(ValueSetter3, _Setter);
- var _super = _createSuper33(ValueSetter3);
- function ValueSetter3(value, validateValue, setValue, priority, subPriority) {
- var _this;
- _classCallCheck34(this, ValueSetter3);
- _this = _super.call(this);
- _this.value = value;
- _this.validateValue = validateValue;
- _this.setValue = setValue;
- _this.priority = priority;
- if (subPriority) {
- _this.subPriority = subPriority;
- }
- return _this;
- }
- _createClass34(ValueSetter3, [{
- key: "validate",
- value: function validate(utcDate, options) {
- return this.validateValue(utcDate, this.value, options);
- }
- }, {
- key: "set",
- value: function set(utcDate, flags, options) {
- return this.setValue(utcDate, flags, this.value, options);
- }
- }]);
- return ValueSetter3;
-}(Setter2);
-var DateToSystemTimezoneSetter = /* @__PURE__ */ function(_Setter2) {
- _inherits33(DateToSystemTimezoneSetter2, _Setter2);
- var _super2 = _createSuper33(DateToSystemTimezoneSetter2);
- function DateToSystemTimezoneSetter2() {
- var _this2;
- _classCallCheck34(this, DateToSystemTimezoneSetter2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this2 = _super2.call.apply(_super2, [this].concat(args));
- _defineProperty33(_assertThisInitialized33(_this2), "priority", TIMEZONE_UNIT_PRIORITY);
- _defineProperty33(_assertThisInitialized33(_this2), "subPriority", -1);
- return _this2;
- }
- _createClass34(DateToSystemTimezoneSetter2, [{
- key: "set",
- value: function set(date, flags) {
- if (flags.timestampIsSet) {
- return date;
- }
- var convertedDate = /* @__PURE__ */ new Date(0);
- convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
- convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());
- return convertedDate;
- }
- }]);
- return DateToSystemTimezoneSetter2;
-}(Setter2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Parser.js
-function _classCallCheck35(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties35(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass35(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties35(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties35(Constructor, staticProps);
- return Constructor;
-}
-var Parser2 = /* @__PURE__ */ function() {
- function Parser3() {
- _classCallCheck35(this, Parser3);
- }
- _createClass35(Parser3, [{
- key: "run",
- value: function run(dateString, token, match3, options) {
- var result = this.parse(dateString, token, match3, options);
- if (!result) {
- return null;
- }
- return {
- setter: new ValueSetter2(result.value, this.validate, this.set, this.priority, this.subPriority),
- rest: result.rest
- };
- }
- }, {
- key: "validate",
- value: function validate(_utcDate, _value, _options) {
- return true;
- }
- }]);
- return Parser3;
-}();
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js
-function _typeof37(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof37 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof37 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof37(obj);
-}
-function _classCallCheck36(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties36(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass36(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties36(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties36(Constructor, staticProps);
- return Constructor;
-}
-function _inherits34(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf34(subClass, superClass);
-}
-function _setPrototypeOf34(o3, p4) {
- _setPrototypeOf34 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf34(o3, p4);
-}
-function _createSuper34(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct34();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf34(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf34(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn34(this, result);
- };
-}
-function _possibleConstructorReturn34(self2, call) {
- if (call && (_typeof37(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized34(self2);
-}
-function _assertThisInitialized34(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct34() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf34(o3) {
- _getPrototypeOf34 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf34(o3);
-}
-function _defineProperty34(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var EraParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits34(EraParser3, _Parser);
- var _super = _createSuper34(EraParser3);
- function EraParser3() {
- var _this;
- _classCallCheck36(this, EraParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty34(_assertThisInitialized34(_this), "priority", 140);
- _defineProperty34(_assertThisInitialized34(_this), "incompatibleTokens", ["R", "u", "t", "T"]);
- return _this;
- }
- _createClass36(EraParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "G":
- case "GG":
- case "GGG":
- return match3.era(dateString, {
- width: "abbreviated"
- }) || match3.era(dateString, {
- width: "narrow"
- });
- case "GGGGG":
- return match3.era(dateString, {
- width: "narrow"
- });
- case "GGGG":
- default:
- return match3.era(dateString, {
- width: "wide"
- }) || match3.era(dateString, {
- width: "abbreviated"
- }) || match3.era(dateString, {
- width: "narrow"
- });
- }
- }
- }, {
- key: "set",
- value: function set(date, flags, value) {
- flags.era = value;
- date.setUTCFullYear(value, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return EraParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/constants.js
-var numericPatterns2 = {
- month: /^(1[0-2]|0?\d)/,
- // 0 to 12
- date: /^(3[0-1]|[0-2]?\d)/,
- // 0 to 31
- dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,
- // 0 to 366
- week: /^(5[0-3]|[0-4]?\d)/,
- // 0 to 53
- hour23h: /^(2[0-3]|[0-1]?\d)/,
- // 0 to 23
- hour24h: /^(2[0-4]|[0-1]?\d)/,
- // 0 to 24
- hour11h: /^(1[0-1]|0?\d)/,
- // 0 to 11
- hour12h: /^(1[0-2]|0?\d)/,
- // 0 to 12
- minute: /^[0-5]?\d/,
- // 0 to 59
- second: /^[0-5]?\d/,
- // 0 to 59
- singleDigit: /^\d/,
- // 0 to 9
- twoDigits: /^\d{1,2}/,
- // 0 to 99
- threeDigits: /^\d{1,3}/,
- // 0 to 999
- fourDigits: /^\d{1,4}/,
- // 0 to 9999
- anyDigitsSigned: /^-?\d+/,
- singleDigitSigned: /^-?\d/,
- // 0 to 9, -0 to -9
- twoDigitsSigned: /^-?\d{1,2}/,
- // 0 to 99, -0 to -99
- threeDigitsSigned: /^-?\d{1,3}/,
- // 0 to 999, -0 to -999
- fourDigitsSigned: /^-?\d{1,4}/
- // 0 to 9999, -0 to -9999
-};
-var timezonePatterns2 = {
- basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/,
- basic: /^([+-])(\d{2})(\d{2})|Z/,
- basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,
- extended: /^([+-])(\d{2}):(\d{2})|Z/,
- extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/
-};
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/utils.js
-function mapValue2(parseFnResult, mapFn) {
- if (!parseFnResult) {
- return parseFnResult;
- }
- return {
- value: mapFn(parseFnResult.value),
- rest: parseFnResult.rest
- };
-}
-function parseNumericPattern2(pattern, dateString) {
- var matchResult = dateString.match(pattern);
- if (!matchResult) {
- return null;
- }
- return {
- value: parseInt(matchResult[0], 10),
- rest: dateString.slice(matchResult[0].length)
- };
-}
-function parseTimezonePattern2(pattern, dateString) {
- var matchResult = dateString.match(pattern);
- if (!matchResult) {
- return null;
- }
- if (matchResult[0] === "Z") {
- return {
- value: 0,
- rest: dateString.slice(1)
- };
- }
- var sign2 = matchResult[1] === "+" ? 1 : -1;
- var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;
- var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;
- var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;
- return {
- value: sign2 * (hours * millisecondsInHour2 + minutes * millisecondsInMinute2 + seconds * millisecondsInSecond2),
- rest: dateString.slice(matchResult[0].length)
- };
-}
-function parseAnyDigitsSigned2(dateString) {
- return parseNumericPattern2(numericPatterns2.anyDigitsSigned, dateString);
-}
-function parseNDigits2(n2, dateString) {
- switch (n2) {
- case 1:
- return parseNumericPattern2(numericPatterns2.singleDigit, dateString);
- case 2:
- return parseNumericPattern2(numericPatterns2.twoDigits, dateString);
- case 3:
- return parseNumericPattern2(numericPatterns2.threeDigits, dateString);
- case 4:
- return parseNumericPattern2(numericPatterns2.fourDigits, dateString);
- default:
- return parseNumericPattern2(new RegExp("^\\d{1," + n2 + "}"), dateString);
- }
-}
-function parseNDigitsSigned2(n2, dateString) {
- switch (n2) {
- case 1:
- return parseNumericPattern2(numericPatterns2.singleDigitSigned, dateString);
- case 2:
- return parseNumericPattern2(numericPatterns2.twoDigitsSigned, dateString);
- case 3:
- return parseNumericPattern2(numericPatterns2.threeDigitsSigned, dateString);
- case 4:
- return parseNumericPattern2(numericPatterns2.fourDigitsSigned, dateString);
- default:
- return parseNumericPattern2(new RegExp("^-?\\d{1," + n2 + "}"), dateString);
- }
-}
-function dayPeriodEnumToHours2(dayPeriod) {
- switch (dayPeriod) {
- case "morning":
- return 4;
- case "evening":
- return 17;
- case "pm":
- case "noon":
- case "afternoon":
- return 12;
- case "am":
- case "midnight":
- case "night":
- default:
- return 0;
- }
-}
-function normalizeTwoDigitYear2(twoDigitYear, currentYear) {
- var isCommonEra = currentYear > 0;
- var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;
- var result;
- if (absCurrentYear <= 50) {
- result = twoDigitYear || 100;
- } else {
- var rangeEnd = absCurrentYear + 50;
- var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;
- var isPreviousCentury = twoDigitYear >= rangeEnd % 100;
- result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);
- }
- return isCommonEra ? result : 1 - result;
-}
-function isLeapYearIndex2(year) {
- return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
-}
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js
-function _typeof38(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof38 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof38 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof38(obj);
-}
-function _classCallCheck37(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties37(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass37(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties37(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties37(Constructor, staticProps);
- return Constructor;
-}
-function _inherits35(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf35(subClass, superClass);
-}
-function _setPrototypeOf35(o3, p4) {
- _setPrototypeOf35 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf35(o3, p4);
-}
-function _createSuper35(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct35();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf35(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf35(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn35(this, result);
- };
-}
-function _possibleConstructorReturn35(self2, call) {
- if (call && (_typeof38(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized35(self2);
-}
-function _assertThisInitialized35(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct35() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf35(o3) {
- _getPrototypeOf35 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf35(o3);
-}
-function _defineProperty35(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var YearParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits35(YearParser3, _Parser);
- var _super = _createSuper35(YearParser3);
- function YearParser3() {
- var _this;
- _classCallCheck37(this, YearParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty35(_assertThisInitialized35(_this), "priority", 130);
- _defineProperty35(_assertThisInitialized35(_this), "incompatibleTokens", ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass37(YearParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- var valueCallback5 = function valueCallback6(year) {
- return {
- year,
- isTwoDigitYear: token === "yy"
- };
- };
- switch (token) {
- case "y":
- return mapValue2(parseNDigits2(4, dateString), valueCallback5);
- case "yo":
- return mapValue2(match3.ordinalNumber(dateString, {
- unit: "year"
- }), valueCallback5);
- default:
- return mapValue2(parseNDigits2(token.length, dateString), valueCallback5);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value.isTwoDigitYear || value.year > 0;
- }
- }, {
- key: "set",
- value: function set(date, flags, value) {
- var currentYear = date.getUTCFullYear();
- if (value.isTwoDigitYear) {
- var normalizedTwoDigitYear = normalizeTwoDigitYear2(value.year, currentYear);
- date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- var year = !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year;
- date.setUTCFullYear(year, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return YearParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js
-function _typeof39(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof39 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof39 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof39(obj);
-}
-function _classCallCheck38(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties38(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass38(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties38(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties38(Constructor, staticProps);
- return Constructor;
-}
-function _inherits36(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf36(subClass, superClass);
-}
-function _setPrototypeOf36(o3, p4) {
- _setPrototypeOf36 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf36(o3, p4);
-}
-function _createSuper36(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct36();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf36(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf36(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn36(this, result);
- };
-}
-function _possibleConstructorReturn36(self2, call) {
- if (call && (_typeof39(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized36(self2);
-}
-function _assertThisInitialized36(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct36() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf36(o3) {
- _getPrototypeOf36 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf36(o3);
-}
-function _defineProperty36(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var LocalWeekYearParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits36(LocalWeekYearParser3, _Parser);
- var _super = _createSuper36(LocalWeekYearParser3);
- function LocalWeekYearParser3() {
- var _this;
- _classCallCheck38(this, LocalWeekYearParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty36(_assertThisInitialized36(_this), "priority", 130);
- _defineProperty36(_assertThisInitialized36(_this), "incompatibleTokens", ["y", "R", "u", "Q", "q", "M", "L", "I", "d", "D", "i", "t", "T"]);
- return _this;
- }
- _createClass38(LocalWeekYearParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- var valueCallback5 = function valueCallback6(year) {
- return {
- year,
- isTwoDigitYear: token === "YY"
- };
- };
- switch (token) {
- case "Y":
- return mapValue2(parseNDigits2(4, dateString), valueCallback5);
- case "Yo":
- return mapValue2(match3.ordinalNumber(dateString, {
- unit: "year"
- }), valueCallback5);
- default:
- return mapValue2(parseNDigits2(token.length, dateString), valueCallback5);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value.isTwoDigitYear || value.year > 0;
- }
- }, {
- key: "set",
- value: function set(date, flags, value, options) {
- var currentYear = getUTCWeekYear2(date, options);
- if (value.isTwoDigitYear) {
- var normalizedTwoDigitYear = normalizeTwoDigitYear2(value.year, currentYear);
- date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);
- date.setUTCHours(0, 0, 0, 0);
- return startOfUTCWeek2(date, options);
- }
- var year = !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year;
- date.setUTCFullYear(year, 0, options.firstWeekContainsDate);
- date.setUTCHours(0, 0, 0, 0);
- return startOfUTCWeek2(date, options);
- }
- }]);
- return LocalWeekYearParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js
-function _typeof40(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof40 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof40 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof40(obj);
-}
-function _classCallCheck39(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties39(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass39(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties39(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties39(Constructor, staticProps);
- return Constructor;
-}
-function _inherits37(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf37(subClass, superClass);
-}
-function _setPrototypeOf37(o3, p4) {
- _setPrototypeOf37 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf37(o3, p4);
-}
-function _createSuper37(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct37();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf37(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf37(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn37(this, result);
- };
-}
-function _possibleConstructorReturn37(self2, call) {
- if (call && (_typeof40(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized37(self2);
-}
-function _assertThisInitialized37(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct37() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf37(o3) {
- _getPrototypeOf37 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf37(o3);
-}
-function _defineProperty37(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var ISOWeekYearParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits37(ISOWeekYearParser3, _Parser);
- var _super = _createSuper37(ISOWeekYearParser3);
- function ISOWeekYearParser3() {
- var _this;
- _classCallCheck39(this, ISOWeekYearParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty37(_assertThisInitialized37(_this), "priority", 130);
- _defineProperty37(_assertThisInitialized37(_this), "incompatibleTokens", ["G", "y", "Y", "u", "Q", "q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass39(ISOWeekYearParser3, [{
- key: "parse",
- value: function parse2(dateString, token) {
- if (token === "R") {
- return parseNDigitsSigned2(4, dateString);
- }
- return parseNDigitsSigned2(token.length, dateString);
- }
- }, {
- key: "set",
- value: function set(_date, _flags, value) {
- var firstWeekOfYear = /* @__PURE__ */ new Date(0);
- firstWeekOfYear.setUTCFullYear(value, 0, 4);
- firstWeekOfYear.setUTCHours(0, 0, 0, 0);
- return startOfUTCISOWeek2(firstWeekOfYear);
- }
- }]);
- return ISOWeekYearParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js
-function _typeof41(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof41 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof41 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof41(obj);
-}
-function _classCallCheck40(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties40(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass40(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties40(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties40(Constructor, staticProps);
- return Constructor;
-}
-function _inherits38(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf38(subClass, superClass);
-}
-function _setPrototypeOf38(o3, p4) {
- _setPrototypeOf38 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf38(o3, p4);
-}
-function _createSuper38(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct38();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf38(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf38(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn38(this, result);
- };
-}
-function _possibleConstructorReturn38(self2, call) {
- if (call && (_typeof41(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized38(self2);
-}
-function _assertThisInitialized38(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct38() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf38(o3) {
- _getPrototypeOf38 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf38(o3);
-}
-function _defineProperty38(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var ExtendedYearParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits38(ExtendedYearParser3, _Parser);
- var _super = _createSuper38(ExtendedYearParser3);
- function ExtendedYearParser3() {
- var _this;
- _classCallCheck40(this, ExtendedYearParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty38(_assertThisInitialized38(_this), "priority", 130);
- _defineProperty38(_assertThisInitialized38(_this), "incompatibleTokens", ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass40(ExtendedYearParser3, [{
- key: "parse",
- value: function parse2(dateString, token) {
- if (token === "u") {
- return parseNDigitsSigned2(4, dateString);
- }
- return parseNDigitsSigned2(token.length, dateString);
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCFullYear(value, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return ExtendedYearParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js
-function _typeof42(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof42 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof42 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof42(obj);
-}
-function _classCallCheck41(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties41(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass41(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties41(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties41(Constructor, staticProps);
- return Constructor;
-}
-function _inherits39(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf39(subClass, superClass);
-}
-function _setPrototypeOf39(o3, p4) {
- _setPrototypeOf39 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf39(o3, p4);
-}
-function _createSuper39(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct39();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf39(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf39(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn39(this, result);
- };
-}
-function _possibleConstructorReturn39(self2, call) {
- if (call && (_typeof42(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized39(self2);
-}
-function _assertThisInitialized39(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct39() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf39(o3) {
- _getPrototypeOf39 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf39(o3);
-}
-function _defineProperty39(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var QuarterParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits39(QuarterParser3, _Parser);
- var _super = _createSuper39(QuarterParser3);
- function QuarterParser3() {
- var _this;
- _classCallCheck41(this, QuarterParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty39(_assertThisInitialized39(_this), "priority", 120);
- _defineProperty39(_assertThisInitialized39(_this), "incompatibleTokens", ["Y", "R", "q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass41(QuarterParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "Q":
- case "QQ":
- return parseNDigits2(token.length, dateString);
- case "Qo":
- return match3.ordinalNumber(dateString, {
- unit: "quarter"
- });
- case "QQQ":
- return match3.quarter(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.quarter(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "QQQQQ":
- return match3.quarter(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "QQQQ":
- default:
- return match3.quarter(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.quarter(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.quarter(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 4;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCMonth((value - 1) * 3, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return QuarterParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js
-function _typeof43(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof43 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof43 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof43(obj);
-}
-function _classCallCheck42(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties42(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass42(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties42(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties42(Constructor, staticProps);
- return Constructor;
-}
-function _inherits40(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf40(subClass, superClass);
-}
-function _setPrototypeOf40(o3, p4) {
- _setPrototypeOf40 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf40(o3, p4);
-}
-function _createSuper40(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct40();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf40(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf40(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn40(this, result);
- };
-}
-function _possibleConstructorReturn40(self2, call) {
- if (call && (_typeof43(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized40(self2);
-}
-function _assertThisInitialized40(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct40() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf40(o3) {
- _getPrototypeOf40 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf40(o3);
-}
-function _defineProperty40(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var StandAloneQuarterParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits40(StandAloneQuarterParser3, _Parser);
- var _super = _createSuper40(StandAloneQuarterParser3);
- function StandAloneQuarterParser3() {
- var _this;
- _classCallCheck42(this, StandAloneQuarterParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty40(_assertThisInitialized40(_this), "priority", 120);
- _defineProperty40(_assertThisInitialized40(_this), "incompatibleTokens", ["Y", "R", "Q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass42(StandAloneQuarterParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "q":
- case "qq":
- return parseNDigits2(token.length, dateString);
- case "qo":
- return match3.ordinalNumber(dateString, {
- unit: "quarter"
- });
- case "qqq":
- return match3.quarter(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match3.quarter(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "qqqqq":
- return match3.quarter(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "qqqq":
- default:
- return match3.quarter(dateString, {
- width: "wide",
- context: "standalone"
- }) || match3.quarter(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match3.quarter(dateString, {
- width: "narrow",
- context: "standalone"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 4;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCMonth((value - 1) * 3, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return StandAloneQuarterParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js
-function _typeof44(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof44 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof44 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof44(obj);
-}
-function _classCallCheck43(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties43(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass43(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties43(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties43(Constructor, staticProps);
- return Constructor;
-}
-function _inherits41(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf41(subClass, superClass);
-}
-function _setPrototypeOf41(o3, p4) {
- _setPrototypeOf41 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf41(o3, p4);
-}
-function _createSuper41(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct41();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf41(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf41(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn41(this, result);
- };
-}
-function _possibleConstructorReturn41(self2, call) {
- if (call && (_typeof44(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized41(self2);
-}
-function _assertThisInitialized41(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct41() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf41(o3) {
- _getPrototypeOf41 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf41(o3);
-}
-function _defineProperty41(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var MonthParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits41(MonthParser3, _Parser);
- var _super = _createSuper41(MonthParser3);
- function MonthParser3() {
- var _this;
- _classCallCheck43(this, MonthParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty41(_assertThisInitialized41(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "L", "w", "I", "D", "i", "e", "c", "t", "T"]);
- _defineProperty41(_assertThisInitialized41(_this), "priority", 110);
- return _this;
- }
- _createClass43(MonthParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- var valueCallback5 = function valueCallback6(value) {
- return value - 1;
- };
- switch (token) {
- case "M":
- return mapValue2(parseNumericPattern2(numericPatterns2.month, dateString), valueCallback5);
- case "MM":
- return mapValue2(parseNDigits2(2, dateString), valueCallback5);
- case "Mo":
- return mapValue2(match3.ordinalNumber(dateString, {
- unit: "month"
- }), valueCallback5);
- case "MMM":
- return match3.month(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.month(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "MMMMM":
- return match3.month(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "MMMM":
- default:
- return match3.month(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.month(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.month(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 11;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCMonth(value, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return MonthParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js
-function _typeof45(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof45 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof45 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof45(obj);
-}
-function _classCallCheck44(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties44(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass44(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties44(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties44(Constructor, staticProps);
- return Constructor;
-}
-function _inherits42(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf42(subClass, superClass);
-}
-function _setPrototypeOf42(o3, p4) {
- _setPrototypeOf42 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf42(o3, p4);
-}
-function _createSuper42(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct42();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf42(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf42(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn42(this, result);
- };
-}
-function _possibleConstructorReturn42(self2, call) {
- if (call && (_typeof45(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized42(self2);
-}
-function _assertThisInitialized42(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct42() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf42(o3) {
- _getPrototypeOf42 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf42(o3);
-}
-function _defineProperty42(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var StandAloneMonthParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits42(StandAloneMonthParser3, _Parser);
- var _super = _createSuper42(StandAloneMonthParser3);
- function StandAloneMonthParser3() {
- var _this;
- _classCallCheck44(this, StandAloneMonthParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty42(_assertThisInitialized42(_this), "priority", 110);
- _defineProperty42(_assertThisInitialized42(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "w", "I", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass44(StandAloneMonthParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- var valueCallback5 = function valueCallback6(value) {
- return value - 1;
- };
- switch (token) {
- case "L":
- return mapValue2(parseNumericPattern2(numericPatterns2.month, dateString), valueCallback5);
- case "LL":
- return mapValue2(parseNDigits2(2, dateString), valueCallback5);
- case "Lo":
- return mapValue2(match3.ordinalNumber(dateString, {
- unit: "month"
- }), valueCallback5);
- case "LLL":
- return match3.month(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match3.month(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "LLLLL":
- return match3.month(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "LLLL":
- default:
- return match3.month(dateString, {
- width: "wide",
- context: "standalone"
- }) || match3.month(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match3.month(dateString, {
- width: "narrow",
- context: "standalone"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 11;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCMonth(value, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return StandAloneMonthParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCWeek/index.js
-function setUTCWeek2(dirtyDate, dirtyWeek, options) {
- requiredArgs2(2, arguments);
- var date = toDate2(dirtyDate);
- var week = toInteger2(dirtyWeek);
- var diff = getUTCWeek2(date, options) - week;
- date.setUTCDate(date.getUTCDate() - diff * 7);
- return date;
-}
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js
-function _typeof46(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof46 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof46 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof46(obj);
-}
-function _classCallCheck45(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties45(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass45(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties45(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties45(Constructor, staticProps);
- return Constructor;
-}
-function _inherits43(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf43(subClass, superClass);
-}
-function _setPrototypeOf43(o3, p4) {
- _setPrototypeOf43 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf43(o3, p4);
-}
-function _createSuper43(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct43();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf43(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf43(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn43(this, result);
- };
-}
-function _possibleConstructorReturn43(self2, call) {
- if (call && (_typeof46(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized43(self2);
-}
-function _assertThisInitialized43(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct43() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf43(o3) {
- _getPrototypeOf43 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf43(o3);
-}
-function _defineProperty43(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var LocalWeekParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits43(LocalWeekParser3, _Parser);
- var _super = _createSuper43(LocalWeekParser3);
- function LocalWeekParser3() {
- var _this;
- _classCallCheck45(this, LocalWeekParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty43(_assertThisInitialized43(_this), "priority", 100);
- _defineProperty43(_assertThisInitialized43(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "i", "t", "T"]);
- return _this;
- }
- _createClass45(LocalWeekParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "w":
- return parseNumericPattern2(numericPatterns2.week, dateString);
- case "wo":
- return match3.ordinalNumber(dateString, {
- unit: "week"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 53;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value, options) {
- return startOfUTCWeek2(setUTCWeek2(date, value, options), options);
- }
- }]);
- return LocalWeekParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js
-function setUTCISOWeek2(dirtyDate, dirtyISOWeek) {
- requiredArgs2(2, arguments);
- var date = toDate2(dirtyDate);
- var isoWeek = toInteger2(dirtyISOWeek);
- var diff = getUTCISOWeek2(date) - isoWeek;
- date.setUTCDate(date.getUTCDate() - diff * 7);
- return date;
-}
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js
-function _typeof47(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof47 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof47 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof47(obj);
-}
-function _classCallCheck46(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties46(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass46(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties46(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties46(Constructor, staticProps);
- return Constructor;
-}
-function _inherits44(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf44(subClass, superClass);
-}
-function _setPrototypeOf44(o3, p4) {
- _setPrototypeOf44 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf44(o3, p4);
-}
-function _createSuper44(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct44();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf44(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf44(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn44(this, result);
- };
-}
-function _possibleConstructorReturn44(self2, call) {
- if (call && (_typeof47(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized44(self2);
-}
-function _assertThisInitialized44(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct44() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf44(o3) {
- _getPrototypeOf44 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf44(o3);
-}
-function _defineProperty44(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var ISOWeekParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits44(ISOWeekParser3, _Parser);
- var _super = _createSuper44(ISOWeekParser3);
- function ISOWeekParser3() {
- var _this;
- _classCallCheck46(this, ISOWeekParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty44(_assertThisInitialized44(_this), "priority", 100);
- _defineProperty44(_assertThisInitialized44(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass46(ISOWeekParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "I":
- return parseNumericPattern2(numericPatterns2.week, dateString);
- case "Io":
- return match3.ordinalNumber(dateString, {
- unit: "week"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 53;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- return startOfUTCISOWeek2(setUTCISOWeek2(date, value));
- }
- }]);
- return ISOWeekParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js
-function _typeof48(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof48 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof48 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof48(obj);
-}
-function _classCallCheck47(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties47(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass47(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties47(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties47(Constructor, staticProps);
- return Constructor;
-}
-function _inherits45(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf45(subClass, superClass);
-}
-function _setPrototypeOf45(o3, p4) {
- _setPrototypeOf45 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf45(o3, p4);
-}
-function _createSuper45(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct45();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf45(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf45(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn45(this, result);
- };
-}
-function _possibleConstructorReturn45(self2, call) {
- if (call && (_typeof48(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized45(self2);
-}
-function _assertThisInitialized45(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct45() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf45(o3) {
- _getPrototypeOf45 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf45(o3);
-}
-function _defineProperty45(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var DAYS_IN_MONTH2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-var DAYS_IN_MONTH_LEAP_YEAR2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-var DateParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits45(DateParser3, _Parser);
- var _super = _createSuper45(DateParser3);
- function DateParser3() {
- var _this;
- _classCallCheck47(this, DateParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty45(_assertThisInitialized45(_this), "priority", 90);
- _defineProperty45(_assertThisInitialized45(_this), "subPriority", 1);
- _defineProperty45(_assertThisInitialized45(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "w", "I", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass47(DateParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "d":
- return parseNumericPattern2(numericPatterns2.date, dateString);
- case "do":
- return match3.ordinalNumber(dateString, {
- unit: "date"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(date, value) {
- var year = date.getUTCFullYear();
- var isLeapYear = isLeapYearIndex2(year);
- var month = date.getUTCMonth();
- if (isLeapYear) {
- return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR2[month];
- } else {
- return value >= 1 && value <= DAYS_IN_MONTH2[month];
- }
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCDate(value);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return DateParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js
-function _typeof49(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof49 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof49 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof49(obj);
-}
-function _classCallCheck48(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties48(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass48(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties48(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties48(Constructor, staticProps);
- return Constructor;
-}
-function _inherits46(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf46(subClass, superClass);
-}
-function _setPrototypeOf46(o3, p4) {
- _setPrototypeOf46 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf46(o3, p4);
-}
-function _createSuper46(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct46();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf46(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf46(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn46(this, result);
- };
-}
-function _possibleConstructorReturn46(self2, call) {
- if (call && (_typeof49(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized46(self2);
-}
-function _assertThisInitialized46(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct46() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf46(o3) {
- _getPrototypeOf46 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf46(o3);
-}
-function _defineProperty46(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var DayOfYearParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits46(DayOfYearParser3, _Parser);
- var _super = _createSuper46(DayOfYearParser3);
- function DayOfYearParser3() {
- var _this;
- _classCallCheck48(this, DayOfYearParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty46(_assertThisInitialized46(_this), "priority", 90);
- _defineProperty46(_assertThisInitialized46(_this), "subpriority", 1);
- _defineProperty46(_assertThisInitialized46(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "L", "w", "I", "d", "E", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass48(DayOfYearParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "D":
- case "DD":
- return parseNumericPattern2(numericPatterns2.dayOfYear, dateString);
- case "Do":
- return match3.ordinalNumber(dateString, {
- unit: "date"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(date, value) {
- var year = date.getUTCFullYear();
- var isLeapYear = isLeapYearIndex2(year);
- if (isLeapYear) {
- return value >= 1 && value <= 366;
- } else {
- return value >= 1 && value <= 365;
- }
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCMonth(0, value);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return DayOfYearParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCDay/index.js
-function setUTCDay2(dirtyDate, dirtyDay, options) {
- var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
- requiredArgs2(2, arguments);
- var defaultOptions3 = getDefaultOptions2();
- var weekStartsOn = toInteger2((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions3.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions3.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
- }
- var date = toDate2(dirtyDate);
- var day = toInteger2(dirtyDay);
- var currentDay = date.getUTCDay();
- var remainder = day % 7;
- var dayIndex = (remainder + 7) % 7;
- var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
- date.setUTCDate(date.getUTCDate() + diff);
- return date;
-}
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js
-function _typeof50(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof50 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof50 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof50(obj);
-}
-function _classCallCheck49(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties49(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass49(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties49(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties49(Constructor, staticProps);
- return Constructor;
-}
-function _inherits47(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf47(subClass, superClass);
-}
-function _setPrototypeOf47(o3, p4) {
- _setPrototypeOf47 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf47(o3, p4);
-}
-function _createSuper47(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct47();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf47(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf47(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn47(this, result);
- };
-}
-function _possibleConstructorReturn47(self2, call) {
- if (call && (_typeof50(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized47(self2);
-}
-function _assertThisInitialized47(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct47() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf47(o3) {
- _getPrototypeOf47 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf47(o3);
-}
-function _defineProperty47(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var DayParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits47(DayParser3, _Parser);
- var _super = _createSuper47(DayParser3);
- function DayParser3() {
- var _this;
- _classCallCheck49(this, DayParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty47(_assertThisInitialized47(_this), "priority", 90);
- _defineProperty47(_assertThisInitialized47(_this), "incompatibleTokens", ["D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass49(DayParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "E":
- case "EE":
- case "EEE":
- return match3.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "EEEEE":
- return match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "EEEEEE":
- return match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "EEEE":
- default:
- return match3.day(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 6;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value, options) {
- date = setUTCDay2(date, value, options);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return DayParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js
-function _typeof51(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof51 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof51 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof51(obj);
-}
-function _classCallCheck50(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties50(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass50(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties50(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties50(Constructor, staticProps);
- return Constructor;
-}
-function _inherits48(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf48(subClass, superClass);
-}
-function _setPrototypeOf48(o3, p4) {
- _setPrototypeOf48 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf48(o3, p4);
-}
-function _createSuper48(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct48();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf48(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf48(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn48(this, result);
- };
-}
-function _possibleConstructorReturn48(self2, call) {
- if (call && (_typeof51(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized48(self2);
-}
-function _assertThisInitialized48(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct48() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf48(o3) {
- _getPrototypeOf48 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf48(o3);
-}
-function _defineProperty48(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var LocalDayParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits48(LocalDayParser3, _Parser);
- var _super = _createSuper48(LocalDayParser3);
- function LocalDayParser3() {
- var _this;
- _classCallCheck50(this, LocalDayParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty48(_assertThisInitialized48(_this), "priority", 90);
- _defineProperty48(_assertThisInitialized48(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "c", "t", "T"]);
- return _this;
- }
- _createClass50(LocalDayParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3, options) {
- var valueCallback5 = function valueCallback6(value) {
- var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
- return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
- };
- switch (token) {
- case "e":
- case "ee":
- return mapValue2(parseNDigits2(token.length, dateString), valueCallback5);
- case "eo":
- return mapValue2(match3.ordinalNumber(dateString, {
- unit: "day"
- }), valueCallback5);
- case "eee":
- return match3.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "eeeee":
- return match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "eeeeee":
- return match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "eeee":
- default:
- return match3.day(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 6;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value, options) {
- date = setUTCDay2(date, value, options);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return LocalDayParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js
-function _typeof52(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof52 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof52 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof52(obj);
-}
-function _classCallCheck51(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties51(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass51(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties51(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties51(Constructor, staticProps);
- return Constructor;
-}
-function _inherits49(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf49(subClass, superClass);
-}
-function _setPrototypeOf49(o3, p4) {
- _setPrototypeOf49 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf49(o3, p4);
-}
-function _createSuper49(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct49();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf49(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf49(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn49(this, result);
- };
-}
-function _possibleConstructorReturn49(self2, call) {
- if (call && (_typeof52(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized49(self2);
-}
-function _assertThisInitialized49(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct49() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf49(o3) {
- _getPrototypeOf49 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf49(o3);
-}
-function _defineProperty49(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var StandAloneLocalDayParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits49(StandAloneLocalDayParser3, _Parser);
- var _super = _createSuper49(StandAloneLocalDayParser3);
- function StandAloneLocalDayParser3() {
- var _this;
- _classCallCheck51(this, StandAloneLocalDayParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty49(_assertThisInitialized49(_this), "priority", 90);
- _defineProperty49(_assertThisInitialized49(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "e", "t", "T"]);
- return _this;
- }
- _createClass51(StandAloneLocalDayParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3, options) {
- var valueCallback5 = function valueCallback6(value) {
- var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
- return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
- };
- switch (token) {
- case "c":
- case "cc":
- return mapValue2(parseNDigits2(token.length, dateString), valueCallback5);
- case "co":
- return mapValue2(match3.ordinalNumber(dateString, {
- unit: "day"
- }), valueCallback5);
- case "ccc":
- return match3.day(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match3.day(dateString, {
- width: "short",
- context: "standalone"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "ccccc":
- return match3.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "cccccc":
- return match3.day(dateString, {
- width: "short",
- context: "standalone"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "cccc":
- default:
- return match3.day(dateString, {
- width: "wide",
- context: "standalone"
- }) || match3.day(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match3.day(dateString, {
- width: "short",
- context: "standalone"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 6;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value, options) {
- date = setUTCDay2(date, value, options);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return StandAloneLocalDayParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISODay/index.js
-function setUTCISODay2(dirtyDate, dirtyDay) {
- requiredArgs2(2, arguments);
- var day = toInteger2(dirtyDay);
- if (day % 7 === 0) {
- day = day - 7;
- }
- var weekStartsOn = 1;
- var date = toDate2(dirtyDate);
- var currentDay = date.getUTCDay();
- var remainder = day % 7;
- var dayIndex = (remainder + 7) % 7;
- var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
- date.setUTCDate(date.getUTCDate() + diff);
- return date;
-}
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js
-function _typeof53(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof53 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof53 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof53(obj);
-}
-function _classCallCheck52(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties52(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass52(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties52(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties52(Constructor, staticProps);
- return Constructor;
-}
-function _inherits50(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf50(subClass, superClass);
-}
-function _setPrototypeOf50(o3, p4) {
- _setPrototypeOf50 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf50(o3, p4);
-}
-function _createSuper50(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct50();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf50(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf50(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn50(this, result);
- };
-}
-function _possibleConstructorReturn50(self2, call) {
- if (call && (_typeof53(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized50(self2);
-}
-function _assertThisInitialized50(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct50() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf50(o3) {
- _getPrototypeOf50 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf50(o3);
-}
-function _defineProperty50(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var ISODayParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits50(ISODayParser3, _Parser);
- var _super = _createSuper50(ISODayParser3);
- function ISODayParser3() {
- var _this;
- _classCallCheck52(this, ISODayParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty50(_assertThisInitialized50(_this), "priority", 90);
- _defineProperty50(_assertThisInitialized50(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "E", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass52(ISODayParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- var valueCallback5 = function valueCallback6(value) {
- if (value === 0) {
- return 7;
- }
- return value;
- };
- switch (token) {
- case "i":
- case "ii":
- return parseNDigits2(token.length, dateString);
- case "io":
- return match3.ordinalNumber(dateString, {
- unit: "day"
- });
- case "iii":
- return mapValue2(match3.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback5);
- case "iiiii":
- return mapValue2(match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback5);
- case "iiiiii":
- return mapValue2(match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback5);
- case "iiii":
- default:
- return mapValue2(match3.day(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match3.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback5);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 7;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date = setUTCISODay2(date, value);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return ISODayParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js
-function _typeof54(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof54 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof54 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof54(obj);
-}
-function _classCallCheck53(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties53(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass53(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties53(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties53(Constructor, staticProps);
- return Constructor;
-}
-function _inherits51(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf51(subClass, superClass);
-}
-function _setPrototypeOf51(o3, p4) {
- _setPrototypeOf51 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf51(o3, p4);
-}
-function _createSuper51(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct51();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf51(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf51(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn51(this, result);
- };
-}
-function _possibleConstructorReturn51(self2, call) {
- if (call && (_typeof54(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized51(self2);
-}
-function _assertThisInitialized51(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct51() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf51(o3) {
- _getPrototypeOf51 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf51(o3);
-}
-function _defineProperty51(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var AMPMParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits51(AMPMParser3, _Parser);
- var _super = _createSuper51(AMPMParser3);
- function AMPMParser3() {
- var _this;
- _classCallCheck53(this, AMPMParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty51(_assertThisInitialized51(_this), "priority", 80);
- _defineProperty51(_assertThisInitialized51(_this), "incompatibleTokens", ["b", "B", "H", "k", "t", "T"]);
- return _this;
- }
- _createClass53(AMPMParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "a":
- case "aa":
- case "aaa":
- return match3.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "aaaaa":
- return match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "aaaa":
- default:
- return match3.dayPeriod(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCHours(dayPeriodEnumToHours2(value), 0, 0, 0);
- return date;
- }
- }]);
- return AMPMParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js
-function _typeof55(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof55 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof55 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof55(obj);
-}
-function _classCallCheck54(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties54(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass54(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties54(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties54(Constructor, staticProps);
- return Constructor;
-}
-function _inherits52(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf52(subClass, superClass);
-}
-function _setPrototypeOf52(o3, p4) {
- _setPrototypeOf52 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf52(o3, p4);
-}
-function _createSuper52(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct52();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf52(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf52(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn52(this, result);
- };
-}
-function _possibleConstructorReturn52(self2, call) {
- if (call && (_typeof55(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized52(self2);
-}
-function _assertThisInitialized52(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct52() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf52(o3) {
- _getPrototypeOf52 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf52(o3);
-}
-function _defineProperty52(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var AMPMMidnightParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits52(AMPMMidnightParser3, _Parser);
- var _super = _createSuper52(AMPMMidnightParser3);
- function AMPMMidnightParser3() {
- var _this;
- _classCallCheck54(this, AMPMMidnightParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty52(_assertThisInitialized52(_this), "priority", 80);
- _defineProperty52(_assertThisInitialized52(_this), "incompatibleTokens", ["a", "B", "H", "k", "t", "T"]);
- return _this;
- }
- _createClass54(AMPMMidnightParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "b":
- case "bb":
- case "bbb":
- return match3.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "bbbbb":
- return match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "bbbb":
- default:
- return match3.dayPeriod(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCHours(dayPeriodEnumToHours2(value), 0, 0, 0);
- return date;
- }
- }]);
- return AMPMMidnightParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js
-function _typeof56(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof56 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof56 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof56(obj);
-}
-function _classCallCheck55(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties55(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass55(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties55(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties55(Constructor, staticProps);
- return Constructor;
-}
-function _inherits53(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf53(subClass, superClass);
-}
-function _setPrototypeOf53(o3, p4) {
- _setPrototypeOf53 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf53(o3, p4);
-}
-function _createSuper53(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct53();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf53(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf53(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn53(this, result);
- };
-}
-function _possibleConstructorReturn53(self2, call) {
- if (call && (_typeof56(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized53(self2);
-}
-function _assertThisInitialized53(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct53() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf53(o3) {
- _getPrototypeOf53 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf53(o3);
-}
-function _defineProperty53(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var DayPeriodParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits53(DayPeriodParser3, _Parser);
- var _super = _createSuper53(DayPeriodParser3);
- function DayPeriodParser3() {
- var _this;
- _classCallCheck55(this, DayPeriodParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty53(_assertThisInitialized53(_this), "priority", 80);
- _defineProperty53(_assertThisInitialized53(_this), "incompatibleTokens", ["a", "b", "t", "T"]);
- return _this;
- }
- _createClass55(DayPeriodParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "B":
- case "BB":
- case "BBB":
- return match3.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "BBBBB":
- return match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "BBBB":
- default:
- return match3.dayPeriod(dateString, {
- width: "wide",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match3.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCHours(dayPeriodEnumToHours2(value), 0, 0, 0);
- return date;
- }
- }]);
- return DayPeriodParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js
-function _typeof57(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof57 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof57 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof57(obj);
-}
-function _classCallCheck56(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties56(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass56(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties56(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties56(Constructor, staticProps);
- return Constructor;
-}
-function _inherits54(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf54(subClass, superClass);
-}
-function _setPrototypeOf54(o3, p4) {
- _setPrototypeOf54 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf54(o3, p4);
-}
-function _createSuper54(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct54();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf54(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf54(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn54(this, result);
- };
-}
-function _possibleConstructorReturn54(self2, call) {
- if (call && (_typeof57(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized54(self2);
-}
-function _assertThisInitialized54(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct54() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf54(o3) {
- _getPrototypeOf54 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf54(o3);
-}
-function _defineProperty54(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var Hour1to12Parser2 = /* @__PURE__ */ function(_Parser) {
- _inherits54(Hour1to12Parser3, _Parser);
- var _super = _createSuper54(Hour1to12Parser3);
- function Hour1to12Parser3() {
- var _this;
- _classCallCheck56(this, Hour1to12Parser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty54(_assertThisInitialized54(_this), "priority", 70);
- _defineProperty54(_assertThisInitialized54(_this), "incompatibleTokens", ["H", "K", "k", "t", "T"]);
- return _this;
- }
- _createClass56(Hour1to12Parser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "h":
- return parseNumericPattern2(numericPatterns2.hour12h, dateString);
- case "ho":
- return match3.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 12;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- var isPM = date.getUTCHours() >= 12;
- if (isPM && value < 12) {
- date.setUTCHours(value + 12, 0, 0, 0);
- } else if (!isPM && value === 12) {
- date.setUTCHours(0, 0, 0, 0);
- } else {
- date.setUTCHours(value, 0, 0, 0);
- }
- return date;
- }
- }]);
- return Hour1to12Parser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js
-function _typeof58(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof58 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof58 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof58(obj);
-}
-function _classCallCheck57(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties57(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass57(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties57(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties57(Constructor, staticProps);
- return Constructor;
-}
-function _inherits55(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf55(subClass, superClass);
-}
-function _setPrototypeOf55(o3, p4) {
- _setPrototypeOf55 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf55(o3, p4);
-}
-function _createSuper55(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct55();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf55(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf55(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn55(this, result);
- };
-}
-function _possibleConstructorReturn55(self2, call) {
- if (call && (_typeof58(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized55(self2);
-}
-function _assertThisInitialized55(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct55() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf55(o3) {
- _getPrototypeOf55 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf55(o3);
-}
-function _defineProperty55(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var Hour0to23Parser2 = /* @__PURE__ */ function(_Parser) {
- _inherits55(Hour0to23Parser3, _Parser);
- var _super = _createSuper55(Hour0to23Parser3);
- function Hour0to23Parser3() {
- var _this;
- _classCallCheck57(this, Hour0to23Parser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty55(_assertThisInitialized55(_this), "priority", 70);
- _defineProperty55(_assertThisInitialized55(_this), "incompatibleTokens", ["a", "b", "h", "K", "k", "t", "T"]);
- return _this;
- }
- _createClass57(Hour0to23Parser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "H":
- return parseNumericPattern2(numericPatterns2.hour23h, dateString);
- case "Ho":
- return match3.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 23;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCHours(value, 0, 0, 0);
- return date;
- }
- }]);
- return Hour0to23Parser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js
-function _typeof59(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof59 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof59 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof59(obj);
-}
-function _classCallCheck58(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties58(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass58(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties58(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties58(Constructor, staticProps);
- return Constructor;
-}
-function _inherits56(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf56(subClass, superClass);
-}
-function _setPrototypeOf56(o3, p4) {
- _setPrototypeOf56 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf56(o3, p4);
-}
-function _createSuper56(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct56();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf56(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf56(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn56(this, result);
- };
-}
-function _possibleConstructorReturn56(self2, call) {
- if (call && (_typeof59(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized56(self2);
-}
-function _assertThisInitialized56(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct56() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf56(o3) {
- _getPrototypeOf56 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf56(o3);
-}
-function _defineProperty56(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var Hour0To11Parser2 = /* @__PURE__ */ function(_Parser) {
- _inherits56(Hour0To11Parser3, _Parser);
- var _super = _createSuper56(Hour0To11Parser3);
- function Hour0To11Parser3() {
- var _this;
- _classCallCheck58(this, Hour0To11Parser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty56(_assertThisInitialized56(_this), "priority", 70);
- _defineProperty56(_assertThisInitialized56(_this), "incompatibleTokens", ["h", "H", "k", "t", "T"]);
- return _this;
- }
- _createClass58(Hour0To11Parser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "K":
- return parseNumericPattern2(numericPatterns2.hour11h, dateString);
- case "Ko":
- return match3.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 11;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- var isPM = date.getUTCHours() >= 12;
- if (isPM && value < 12) {
- date.setUTCHours(value + 12, 0, 0, 0);
- } else {
- date.setUTCHours(value, 0, 0, 0);
- }
- return date;
- }
- }]);
- return Hour0To11Parser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js
-function _typeof60(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof60 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof60 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof60(obj);
-}
-function _classCallCheck59(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties59(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass59(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties59(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties59(Constructor, staticProps);
- return Constructor;
-}
-function _inherits57(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf57(subClass, superClass);
-}
-function _setPrototypeOf57(o3, p4) {
- _setPrototypeOf57 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf57(o3, p4);
-}
-function _createSuper57(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct57();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf57(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf57(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn57(this, result);
- };
-}
-function _possibleConstructorReturn57(self2, call) {
- if (call && (_typeof60(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized57(self2);
-}
-function _assertThisInitialized57(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct57() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf57(o3) {
- _getPrototypeOf57 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf57(o3);
-}
-function _defineProperty57(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var Hour1To24Parser2 = /* @__PURE__ */ function(_Parser) {
- _inherits57(Hour1To24Parser3, _Parser);
- var _super = _createSuper57(Hour1To24Parser3);
- function Hour1To24Parser3() {
- var _this;
- _classCallCheck59(this, Hour1To24Parser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty57(_assertThisInitialized57(_this), "priority", 70);
- _defineProperty57(_assertThisInitialized57(_this), "incompatibleTokens", ["a", "b", "h", "H", "K", "t", "T"]);
- return _this;
- }
- _createClass59(Hour1To24Parser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "k":
- return parseNumericPattern2(numericPatterns2.hour24h, dateString);
- case "ko":
- return match3.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 24;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- var hours = value <= 24 ? value % 24 : value;
- date.setUTCHours(hours, 0, 0, 0);
- return date;
- }
- }]);
- return Hour1To24Parser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js
-function _typeof61(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof61 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof61 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof61(obj);
-}
-function _classCallCheck60(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties60(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass60(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties60(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties60(Constructor, staticProps);
- return Constructor;
-}
-function _inherits58(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf58(subClass, superClass);
-}
-function _setPrototypeOf58(o3, p4) {
- _setPrototypeOf58 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf58(o3, p4);
-}
-function _createSuper58(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct58();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf58(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf58(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn58(this, result);
- };
-}
-function _possibleConstructorReturn58(self2, call) {
- if (call && (_typeof61(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized58(self2);
-}
-function _assertThisInitialized58(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct58() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf58(o3) {
- _getPrototypeOf58 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf58(o3);
-}
-function _defineProperty58(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var MinuteParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits58(MinuteParser3, _Parser);
- var _super = _createSuper58(MinuteParser3);
- function MinuteParser3() {
- var _this;
- _classCallCheck60(this, MinuteParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty58(_assertThisInitialized58(_this), "priority", 60);
- _defineProperty58(_assertThisInitialized58(_this), "incompatibleTokens", ["t", "T"]);
- return _this;
- }
- _createClass60(MinuteParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "m":
- return parseNumericPattern2(numericPatterns2.minute, dateString);
- case "mo":
- return match3.ordinalNumber(dateString, {
- unit: "minute"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 59;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCMinutes(value, 0, 0);
- return date;
- }
- }]);
- return MinuteParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js
-function _typeof62(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof62 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof62 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof62(obj);
-}
-function _classCallCheck61(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties61(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass61(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties61(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties61(Constructor, staticProps);
- return Constructor;
-}
-function _inherits59(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf59(subClass, superClass);
-}
-function _setPrototypeOf59(o3, p4) {
- _setPrototypeOf59 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf59(o3, p4);
-}
-function _createSuper59(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct59();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf59(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf59(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn59(this, result);
- };
-}
-function _possibleConstructorReturn59(self2, call) {
- if (call && (_typeof62(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized59(self2);
-}
-function _assertThisInitialized59(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct59() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf59(o3) {
- _getPrototypeOf59 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf59(o3);
-}
-function _defineProperty59(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var SecondParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits59(SecondParser3, _Parser);
- var _super = _createSuper59(SecondParser3);
- function SecondParser3() {
- var _this;
- _classCallCheck61(this, SecondParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty59(_assertThisInitialized59(_this), "priority", 50);
- _defineProperty59(_assertThisInitialized59(_this), "incompatibleTokens", ["t", "T"]);
- return _this;
- }
- _createClass61(SecondParser3, [{
- key: "parse",
- value: function parse2(dateString, token, match3) {
- switch (token) {
- case "s":
- return parseNumericPattern2(numericPatterns2.second, dateString);
- case "so":
- return match3.ordinalNumber(dateString, {
- unit: "second"
- });
- default:
- return parseNDigits2(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 59;
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCSeconds(value, 0);
- return date;
- }
- }]);
- return SecondParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js
-function _typeof63(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof63 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof63 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof63(obj);
-}
-function _classCallCheck62(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties62(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass62(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties62(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties62(Constructor, staticProps);
- return Constructor;
-}
-function _inherits60(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf60(subClass, superClass);
-}
-function _setPrototypeOf60(o3, p4) {
- _setPrototypeOf60 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf60(o3, p4);
-}
-function _createSuper60(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct60();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf60(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf60(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn60(this, result);
- };
-}
-function _possibleConstructorReturn60(self2, call) {
- if (call && (_typeof63(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized60(self2);
-}
-function _assertThisInitialized60(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct60() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf60(o3) {
- _getPrototypeOf60 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf60(o3);
-}
-function _defineProperty60(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var FractionOfSecondParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits60(FractionOfSecondParser3, _Parser);
- var _super = _createSuper60(FractionOfSecondParser3);
- function FractionOfSecondParser3() {
- var _this;
- _classCallCheck62(this, FractionOfSecondParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty60(_assertThisInitialized60(_this), "priority", 30);
- _defineProperty60(_assertThisInitialized60(_this), "incompatibleTokens", ["t", "T"]);
- return _this;
- }
- _createClass62(FractionOfSecondParser3, [{
- key: "parse",
- value: function parse2(dateString, token) {
- var valueCallback5 = function valueCallback6(value) {
- return Math.floor(value * Math.pow(10, -token.length + 3));
- };
- return mapValue2(parseNDigits2(token.length, dateString), valueCallback5);
- }
- }, {
- key: "set",
- value: function set(date, _flags, value) {
- date.setUTCMilliseconds(value);
- return date;
- }
- }]);
- return FractionOfSecondParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js
-function _typeof64(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof64 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof64 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof64(obj);
-}
-function _classCallCheck63(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties63(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass63(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties63(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties63(Constructor, staticProps);
- return Constructor;
-}
-function _inherits61(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf61(subClass, superClass);
-}
-function _setPrototypeOf61(o3, p4) {
- _setPrototypeOf61 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf61(o3, p4);
-}
-function _createSuper61(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct61();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf61(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf61(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn61(this, result);
- };
-}
-function _possibleConstructorReturn61(self2, call) {
- if (call && (_typeof64(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized61(self2);
-}
-function _assertThisInitialized61(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct61() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf61(o3) {
- _getPrototypeOf61 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf61(o3);
-}
-function _defineProperty61(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var ISOTimezoneWithZParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits61(ISOTimezoneWithZParser3, _Parser);
- var _super = _createSuper61(ISOTimezoneWithZParser3);
- function ISOTimezoneWithZParser3() {
- var _this;
- _classCallCheck63(this, ISOTimezoneWithZParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty61(_assertThisInitialized61(_this), "priority", 10);
- _defineProperty61(_assertThisInitialized61(_this), "incompatibleTokens", ["t", "T", "x"]);
- return _this;
- }
- _createClass63(ISOTimezoneWithZParser3, [{
- key: "parse",
- value: function parse2(dateString, token) {
- switch (token) {
- case "X":
- return parseTimezonePattern2(timezonePatterns2.basicOptionalMinutes, dateString);
- case "XX":
- return parseTimezonePattern2(timezonePatterns2.basic, dateString);
- case "XXXX":
- return parseTimezonePattern2(timezonePatterns2.basicOptionalSeconds, dateString);
- case "XXXXX":
- return parseTimezonePattern2(timezonePatterns2.extendedOptionalSeconds, dateString);
- case "XXX":
- default:
- return parseTimezonePattern2(timezonePatterns2.extended, dateString);
- }
- }
- }, {
- key: "set",
- value: function set(date, flags, value) {
- if (flags.timestampIsSet) {
- return date;
- }
- return new Date(date.getTime() - value);
- }
- }]);
- return ISOTimezoneWithZParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js
-function _typeof65(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof65 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof65 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof65(obj);
-}
-function _classCallCheck64(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties64(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass64(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties64(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties64(Constructor, staticProps);
- return Constructor;
-}
-function _inherits62(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf62(subClass, superClass);
-}
-function _setPrototypeOf62(o3, p4) {
- _setPrototypeOf62 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf62(o3, p4);
-}
-function _createSuper62(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct62();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf62(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf62(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn62(this, result);
- };
-}
-function _possibleConstructorReturn62(self2, call) {
- if (call && (_typeof65(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized62(self2);
-}
-function _assertThisInitialized62(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct62() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf62(o3) {
- _getPrototypeOf62 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf62(o3);
-}
-function _defineProperty62(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var ISOTimezoneParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits62(ISOTimezoneParser3, _Parser);
- var _super = _createSuper62(ISOTimezoneParser3);
- function ISOTimezoneParser3() {
- var _this;
- _classCallCheck64(this, ISOTimezoneParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty62(_assertThisInitialized62(_this), "priority", 10);
- _defineProperty62(_assertThisInitialized62(_this), "incompatibleTokens", ["t", "T", "X"]);
- return _this;
- }
- _createClass64(ISOTimezoneParser3, [{
- key: "parse",
- value: function parse2(dateString, token) {
- switch (token) {
- case "x":
- return parseTimezonePattern2(timezonePatterns2.basicOptionalMinutes, dateString);
- case "xx":
- return parseTimezonePattern2(timezonePatterns2.basic, dateString);
- case "xxxx":
- return parseTimezonePattern2(timezonePatterns2.basicOptionalSeconds, dateString);
- case "xxxxx":
- return parseTimezonePattern2(timezonePatterns2.extendedOptionalSeconds, dateString);
- case "xxx":
- default:
- return parseTimezonePattern2(timezonePatterns2.extended, dateString);
- }
- }
- }, {
- key: "set",
- value: function set(date, flags, value) {
- if (flags.timestampIsSet) {
- return date;
- }
- return new Date(date.getTime() - value);
- }
- }]);
- return ISOTimezoneParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js
-function _typeof66(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof66 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof66 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof66(obj);
-}
-function _classCallCheck65(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties65(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass65(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties65(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties65(Constructor, staticProps);
- return Constructor;
-}
-function _inherits63(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf63(subClass, superClass);
-}
-function _setPrototypeOf63(o3, p4) {
- _setPrototypeOf63 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf63(o3, p4);
-}
-function _createSuper63(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct63();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf63(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf63(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn63(this, result);
- };
-}
-function _possibleConstructorReturn63(self2, call) {
- if (call && (_typeof66(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized63(self2);
-}
-function _assertThisInitialized63(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct63() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf63(o3) {
- _getPrototypeOf63 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf63(o3);
-}
-function _defineProperty63(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var TimestampSecondsParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits63(TimestampSecondsParser3, _Parser);
- var _super = _createSuper63(TimestampSecondsParser3);
- function TimestampSecondsParser3() {
- var _this;
- _classCallCheck65(this, TimestampSecondsParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty63(_assertThisInitialized63(_this), "priority", 40);
- _defineProperty63(_assertThisInitialized63(_this), "incompatibleTokens", "*");
- return _this;
- }
- _createClass65(TimestampSecondsParser3, [{
- key: "parse",
- value: function parse2(dateString) {
- return parseAnyDigitsSigned2(dateString);
- }
- }, {
- key: "set",
- value: function set(_date, _flags, value) {
- return [new Date(value * 1e3), {
- timestampIsSet: true
- }];
- }
- }]);
- return TimestampSecondsParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js
-function _typeof67(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof67 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof67 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof67(obj);
-}
-function _classCallCheck66(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-function _defineProperties66(target, props) {
- for (var i4 = 0; i4 < props.length; i4++) {
- var descriptor = props[i4];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _createClass66(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties66(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties66(Constructor, staticProps);
- return Constructor;
-}
-function _inherits64(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
- if (superClass)
- _setPrototypeOf64(subClass, superClass);
-}
-function _setPrototypeOf64(o3, p4) {
- _setPrototypeOf64 = Object.setPrototypeOf || function _setPrototypeOf65(o4, p5) {
- o4.__proto__ = p5;
- return o4;
- };
- return _setPrototypeOf64(o3, p4);
-}
-function _createSuper64(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct64();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf64(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf64(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn64(this, result);
- };
-}
-function _possibleConstructorReturn64(self2, call) {
- if (call && (_typeof67(call) === "object" || typeof call === "function")) {
- return call;
- }
- return _assertThisInitialized64(self2);
-}
-function _assertThisInitialized64(self2) {
- if (self2 === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self2;
-}
-function _isNativeReflectConstruct64() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e4) {
- return false;
- }
-}
-function _getPrototypeOf64(o3) {
- _getPrototypeOf64 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf65(o4) {
- return o4.__proto__ || Object.getPrototypeOf(o4);
- };
- return _getPrototypeOf64(o3);
-}
-function _defineProperty64(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-var TimestampMillisecondsParser2 = /* @__PURE__ */ function(_Parser) {
- _inherits64(TimestampMillisecondsParser3, _Parser);
- var _super = _createSuper64(TimestampMillisecondsParser3);
- function TimestampMillisecondsParser3() {
- var _this;
- _classCallCheck66(this, TimestampMillisecondsParser3);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty64(_assertThisInitialized64(_this), "priority", 20);
- _defineProperty64(_assertThisInitialized64(_this), "incompatibleTokens", "*");
- return _this;
- }
- _createClass66(TimestampMillisecondsParser3, [{
- key: "parse",
- value: function parse2(dateString) {
- return parseAnyDigitsSigned2(dateString);
- }
- }, {
- key: "set",
- value: function set(_date, _flags, value) {
- return [new Date(value), {
- timestampIsSet: true
- }];
- }
- }]);
- return TimestampMillisecondsParser3;
-}(Parser2);
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/index.js
-var parsers3 = {
- G: new EraParser2(),
- y: new YearParser2(),
- Y: new LocalWeekYearParser2(),
- R: new ISOWeekYearParser2(),
- u: new ExtendedYearParser2(),
- Q: new QuarterParser2(),
- q: new StandAloneQuarterParser2(),
- M: new MonthParser2(),
- L: new StandAloneMonthParser2(),
- w: new LocalWeekParser2(),
- I: new ISOWeekParser2(),
- d: new DateParser2(),
- D: new DayOfYearParser2(),
- E: new DayParser2(),
- e: new LocalDayParser2(),
- c: new StandAloneLocalDayParser2(),
- i: new ISODayParser2(),
- a: new AMPMParser2(),
- b: new AMPMMidnightParser2(),
- B: new DayPeriodParser2(),
- h: new Hour1to12Parser2(),
- H: new Hour0to23Parser2(),
- K: new Hour0To11Parser2(),
- k: new Hour1To24Parser2(),
- m: new MinuteParser2(),
- s: new SecondParser2(),
- S: new FractionOfSecondParser2(),
- X: new ISOTimezoneWithZParser2(),
- x: new ISOTimezoneParser2(),
- t: new TimestampSecondsParser2(),
- T: new TimestampMillisecondsParser2()
-};
-
-// ../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/index.js
-function _typeof68(obj) {
- "@babel/helpers - typeof";
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof68 = function _typeof69(obj2) {
- return typeof obj2;
- };
- } else {
- _typeof68 = function _typeof69(obj2) {
- return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
- };
- }
- return _typeof68(obj);
-}
-function _createForOfIteratorHelper(o3, allowArrayLike) {
- var it;
- if (typeof Symbol === "undefined" || o3[Symbol.iterator] == null) {
- if (Array.isArray(o3) || (it = _unsupportedIterableToArray(o3)) || allowArrayLike && o3 && typeof o3.length === "number") {
- if (it)
- o3 = it;
- var i4 = 0;
- var F3 = function F4() {
- };
- return { s: F3, n: function n2() {
- if (i4 >= o3.length)
- return { done: true };
- return { done: false, value: o3[i4++] };
- }, e: function e4(_e) {
- throw _e;
- }, f: F3 };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- var normalCompletion = true, didErr = false, err;
- return { s: function s5() {
- it = o3[Symbol.iterator]();
- }, n: function n2() {
- var step = it.next();
- normalCompletion = step.done;
- return step;
- }, e: function e4(_e2) {
- didErr = true;
- err = _e2;
- }, f: function f3() {
- try {
- if (!normalCompletion && it.return != null)
- it.return();
- } finally {
- if (didErr)
- throw err;
- }
- } };
-}
-function _unsupportedIterableToArray(o3, minLen) {
- if (!o3)
- return;
- if (typeof o3 === "string")
- return _arrayLikeToArray(o3, minLen);
- var n2 = Object.prototype.toString.call(o3).slice(8, -1);
- if (n2 === "Object" && o3.constructor)
- n2 = o3.constructor.name;
- if (n2 === "Map" || n2 === "Set")
- return Array.from(o3);
- if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2))
- return _arrayLikeToArray(o3, minLen);
-}
-function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length)
- len = arr.length;
- for (var i4 = 0, arr2 = new Array(len); i4 < len; i4++) {
- arr2[i4] = arr[i4];
- }
- return arr2;
-}
-var formattingTokensRegExp2 = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
-var longFormattingTokensRegExp2 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
-var escapedStringRegExp2 = /^'([^]*?)'?$/;
-var doubleQuoteRegExp2 = /''/g;
-var notWhitespaceRegExp = /\S/;
-var unescapedLatinCharacterRegExp2 = /[a-zA-Z]/;
-function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {
- var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
- requiredArgs2(3, arguments);
- var dateString = String(dirtyDateString);
- var formatString = String(dirtyFormatString);
- var defaultOptions3 = getDefaultOptions2();
- var locale2 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions3.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default;
- if (!locale2.match) {
- throw new RangeError("locale must contain match property");
- }
- var firstWeekContainsDate = toInteger2((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions3.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions3.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);
- if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
- throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");
- }
- var weekStartsOn = toInteger2((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions3.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions3.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
- }
- if (formatString === "") {
- if (dateString === "") {
- return toDate2(dirtyReferenceDate);
- } else {
- return /* @__PURE__ */ new Date(NaN);
- }
- }
- var subFnOptions = {
- firstWeekContainsDate,
- weekStartsOn,
- locale: locale2
- };
- var setters = [new DateToSystemTimezoneSetter()];
- var tokens = formatString.match(longFormattingTokensRegExp2).map(function(substring) {
- var firstCharacter = substring[0];
- if (firstCharacter in longFormatters_default) {
- var longFormatter = longFormatters_default[firstCharacter];
- return longFormatter(substring, locale2.formatLong);
- }
- return substring;
- }).join("").match(formattingTokensRegExp2);
- var usedTokens = [];
- var _iterator = _createForOfIteratorHelper(tokens), _step;
- try {
- var _loop = function _loop2() {
- var token = _step.value;
- if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {
- throwProtectedError(token, formatString, dirtyDateString);
- }
- if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {
- throwProtectedError(token, formatString, dirtyDateString);
- }
- var firstCharacter = token[0];
- var parser = parsers3[firstCharacter];
- if (parser) {
- var incompatibleTokens = parser.incompatibleTokens;
- if (Array.isArray(incompatibleTokens)) {
- var incompatibleToken = usedTokens.find(function(usedToken) {
- return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;
- });
- if (incompatibleToken) {
- throw new RangeError("The format string mustn't contain `".concat(incompatibleToken.fullToken, "` and `").concat(token, "` at the same time"));
- }
- } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) {
- throw new RangeError("The format string mustn't contain `".concat(token, "` and any other token at the same time"));
- }
- usedTokens.push({
- token: firstCharacter,
- fullToken: token
- });
- var parseResult = parser.run(dateString, token, locale2.match, subFnOptions);
- if (!parseResult) {
- return {
- v: /* @__PURE__ */ new Date(NaN)
- };
- }
- setters.push(parseResult.setter);
- dateString = parseResult.rest;
- } else {
- if (firstCharacter.match(unescapedLatinCharacterRegExp2)) {
- throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`");
- }
- if (token === "''") {
- token = "'";
- } else if (firstCharacter === "'") {
- token = cleanEscapedString2(token);
- }
- if (dateString.indexOf(token) === 0) {
- dateString = dateString.slice(token.length);
- } else {
- return {
- v: /* @__PURE__ */ new Date(NaN)
- };
- }
- }
- };
- for (_iterator.s(); !(_step = _iterator.n()).done; ) {
- var _ret = _loop();
- if (_typeof68(_ret) === "object")
- return _ret.v;
- }
- } catch (err) {
- _iterator.e(err);
- } finally {
- _iterator.f();
- }
- if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {
- return /* @__PURE__ */ new Date(NaN);
- }
- var uniquePrioritySetters = setters.map(function(setter2) {
- return setter2.priority;
- }).sort(function(a5, b4) {
- return b4 - a5;
- }).filter(function(priority, index, array) {
- return array.indexOf(priority) === index;
- }).map(function(priority) {
- return setters.filter(function(setter2) {
- return setter2.priority === priority;
- }).sort(function(a5, b4) {
- return b4.subPriority - a5.subPriority;
- });
- }).map(function(setterArray) {
- return setterArray[0];
- });
- var date = toDate2(dirtyReferenceDate);
- if (isNaN(date.getTime())) {
- return /* @__PURE__ */ new Date(NaN);
- }
- var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));
- var flags = {};
- var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters), _step2;
- try {
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
- var setter = _step2.value;
- if (!setter.validate(utcDate, subFnOptions)) {
- return /* @__PURE__ */ new Date(NaN);
- }
- var result = setter.set(utcDate, flags, subFnOptions);
- if (Array.isArray(result)) {
- utcDate = result[0];
- assign(flags, result[1]);
- } else {
- utcDate = result;
- }
- }
- } catch (err) {
- _iterator2.e(err);
- } finally {
- _iterator2.f();
- }
- return utcDate;
-}
-function cleanEscapedString2(input) {
- return input.match(escapedStringRegExp2)[1].replace(doubleQuoteRegExp2, "'");
+ return matched[1].replace(doubleQuoteRegExp3, "'");
}
// src/pages/CaseDetails.tsx
@@ -38032,7 +23599,7 @@ var UNDEFINED = (
var OBJECT = Object;
var isUndefined = (v3) => v3 === UNDEFINED;
var isFunction = (v3) => typeof v3 == "function";
-var mergeObjects = (a5, b4) => __spreadValues(__spreadValues({}, a5), b4);
+var mergeObjects = (a6, b5) => __spreadValues(__spreadValues({}, a6), b5);
var STR_UNDEFINED = "undefined";
var isWindowDefined = typeof window != STR_UNDEFINED;
var isDocumentDefined = typeof document != STR_UNDEFINED;
@@ -38069,10 +23636,10 @@ var counter = 0;
var stableHash = (arg) => {
const type = typeof arg;
const constructor = arg && arg.constructor;
- const isDate2 = constructor == Date;
+ const isDate3 = constructor == Date;
let result;
let index;
- if (OBJECT(arg) === arg && !isDate2 && constructor != RegExp) {
+ if (OBJECT(arg) === arg && !isDate3 && constructor != RegExp) {
result = table.get(arg);
if (result)
return result;
@@ -38096,7 +23663,7 @@ var stableHash = (arg) => {
table.set(arg, result);
}
} else {
- result = isDate2 ? arg.toJSON() : type == "symbol" ? arg.toString() : type == "string" ? JSON.stringify(arg) : "" + arg;
+ result = isDate3 ? arg.toJSON() : type == "symbol" ? arg.toString() : type == "string" ? JSON.stringify(arg) : "" + arg;
}
return result;
};
@@ -38328,8 +23895,8 @@ var initCache = (provider, options) => {
provider.set(key, value);
const subs = subscriptions[key];
if (subs) {
- for (let i4 = subs.length; i4--; ) {
- subs[i4](value, prev);
+ for (let i5 = subs.length; i5--; ) {
+ subs[i5](value, prev);
}
}
};
@@ -38407,11 +23974,11 @@ var defaultConfig = mergeObjects(
// use web preset by default
preset
);
-var mergeConfigs = (a5, b4) => {
- const v3 = mergeObjects(a5, b4);
- if (b4) {
- const { use: u1, fallback: f1 } = a5;
- const { use: u22, fallback: f22 } = b4;
+var mergeConfigs = (a6, b5) => {
+ const v3 = mergeObjects(a6, b5);
+ if (b5) {
+ const { use: u1, fallback: f1 } = a6;
+ const { use: u22, fallback: f22 } = b5;
if (u1 && u22) {
v3.use = u1.concat(u22);
}
@@ -38495,8 +24062,8 @@ var withArgs = (hook) => {
let next = hook;
const { use: use2 } = config;
const middleware2 = (use2 || []).concat(BUILT_IN_MIDDLEWARE);
- for (let i4 = middleware2.length; i4--; ) {
- next = middleware2[i4](next);
+ for (let i5 = middleware2.length; i5--; ) {
+ next = middleware2[i5](next);
}
return next(key, fn2 || config.fetcher || null, config);
};
@@ -38535,11 +24102,11 @@ var useSWRHandler = (_key, fetcher, config) => {
const isEqual = (prev, current) => {
let equal = true;
for (const _3 in stateDependencies) {
- const t4 = _3;
- if (t4 === "data") {
- if (!compare2(current[t4], prev[t4])) {
- if (isUndefined(prev[t4])) {
- if (!compare2(current[t4], returnedData)) {
+ const t5 = _3;
+ if (t5 === "data") {
+ if (!compare2(current[t5], prev[t5])) {
+ if (isUndefined(prev[t5])) {
+ if (!compare2(current[t5], returnedData)) {
equal = false;
}
} else {
@@ -38547,7 +24114,7 @@ var useSWRHandler = (_key, fetcher, config) => {
}
}
} else {
- if (current[t4] !== prev[t4]) {
+ if (current[t5] !== prev[t5]) {
equal = false;
}
}
@@ -38870,53 +24437,6 @@ var SWRConfig2 = OBJECT.defineProperty(SWRConfig, "defaultValue", {
});
var useSWR = withArgs(useSWRHandler);
-// src/context/config.ts
-init_preact_module();
-init_hooks_module();
-var Context3 = B(void 0);
-var useExchangeApiContext = () => q2(Context3);
-var ExchangeApiProvider = ({
- baseUrl,
- children,
- frameOnError
-}) => {
- const [checked, setChecked] = p3();
- const { i18n: i18n2 } = useTranslationContext();
- const url = new URL(baseUrl);
- const api = new TalerExchangeHttpClient(url.href, new BrowserHttpLib());
- h2(() => {
- api.getConfig().then((resp) => {
- if (api.isCompatible(resp.body.version)) {
- setChecked({ type: "ok", config: resp.body });
- } else {
- setChecked({ type: "incompatible", result: resp.body, supported: api.PROTOCOL_VERSION });
- }
- }).catch((error2) => {
- if (error2 instanceof TalerError) {
- setChecked({ type: "error", error: error2 });
- }
- });
- }, []);
- if (checked === void 0) {
- return h(frameOnError, { children: h("div", {}, "loading...") });
- }
- if (checked.type === "error") {
- return h(frameOnError, { children: h(ErrorLoading, { error: checked.error, showDetail: true }) });
- }
- if (checked.type === "incompatible") {
- return h(frameOnError, { children: h("div", {}, i18n2.str`the bank backend is not supported. supported version "${checked.supported}", server version "${checked.result.version}"`) });
- }
- const value = {
- url,
- config: checked.config,
- api
- };
- return h(Context3.Provider, {
- value,
- children
- });
-};
-
// src/hooks/useCaseDetails.ts
var useSWR2 = useSWR;
function useCaseDetails(paytoHash) {
@@ -39018,1070 +24538,17 @@ var AmlExchangeBackend;
})(AmlState = AmlExchangeBackend2.AmlState || (AmlExchangeBackend2.AmlState = {}));
})(AmlExchangeBackend || (AmlExchangeBackend = {}));
-// src/pages/ShowConsolidated.tsx
-init_preact_module();
-
-// src/NiceForm.tsx
-init_preact_module();
-
-// src/handlers/FormProvider.tsx
-init_preact_module();
-init_hooks_module();
-var FormContext2 = B({});
-function FormProvider({
- children,
- initialValue,
- onUpdate: notify2,
- onSubmit,
- computeFormState
-}) {
- const [state, setState] = p3(initialValue != null ? initialValue : {});
- const value = { current: state };
- const onUpdate = (v3) => {
- setState(v3);
- if (notify2)
- notify2(v3);
- };
- return /* @__PURE__ */ h(
- FormContext2.Provider,
- {
- value: { initialValue, value, onUpdate, computeFormState }
- },
- /* @__PURE__ */ h(
- "form",
- {
- onSubmit: (e4) => {
- e4.preventDefault();
- if (onSubmit)
- onSubmit(
- value.current,
- !computeFormState ? void 0 : computeFormState(value.current)
- );
- }
- },
- children
- )
- );
-}
-
-// src/handlers/InputText.tsx
-init_preact_module();
-
-// src/handlers/InputLine.tsx
-init_preact_module();
-
-// src/handlers/useField.ts
-init_compat_module();
-function useField(name) {
- var _a, _b, _c, _d, _e;
- const {
- initialValue,
- value: formValue,
- computeFormState,
- onUpdate: notifyUpdate
- } = q2(FormContext2);
- const formState = computeFormState ? computeFormState(formValue.current) : {};
- const fieldValue = readField(formValue.current, String(name));
- const [currentValue, setCurrentValue] = p3(fieldValue);
- const fieldState = (_a = readField(formState, String(name))) != null ? _a : {};
- const state = {
- disabled: (_b = fieldState.disabled) != null ? _b : false,
- readonly: (_c = fieldState.readonly) != null ? _c : false,
- hidden: (_d = fieldState.hidden) != null ? _d : false,
- error: fieldState.error,
- elements: "elements" in fieldState ? (_e = fieldState.elements) != null ? _e : [] : []
- };
- function onChange(value) {
- setCurrentValue(value);
- formValue.current = setValueDeeper(
- formValue.current,
- String(name).split("."),
- value
- );
- if (notifyUpdate) {
- notifyUpdate(formValue.current);
- }
- }
- return {
- value: fieldValue,
- onChange,
- isDirty: currentValue !== void 0,
- state
- };
-}
-function readField(object, name, debug) {
- return name.split(".").reduce((prev, current) => {
- if (debug) {
- console.log(
- "READ",
- name,
- prev,
- current,
- prev ? prev[current] : void 0
- );
- }
- return prev ? prev[current] : void 0;
- }, object);
-}
-function setValueDeeper(object, names2, value) {
- var _a;
- if (names2.length === 0)
- return value;
- const [head, ...rest] = names2;
- if (object === void 0) {
- return { [head]: setValueDeeper({}, rest, value) };
- }
- return __spreadProps(__spreadValues({}, object), { [head]: setValueDeeper((_a = object[head]) != null ? _a : {}, rest, value) });
-}
-
-// src/handlers/InputLine.tsx
-var TooltipIcon = /* @__PURE__ */ h(
- "svg",
- {
- class: "w-5 h-5",
- xmlns: "http://www.w3.org/2000/svg",
- viewBox: "0 0 20 20",
- fill: "currentColor"
- },
- /* @__PURE__ */ h(
- "path",
- {
- "fill-rule": "evenodd",
- d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z",
- "clip-rule": "evenodd"
- }
- )
-);
-function LabelWithTooltipMaybeRequired({
- label,
- required,
- tooltip
-}) {
- const Label = /* @__PURE__ */ h(p2, null, /* @__PURE__ */ h("div", { class: "flex justify-between" }, /* @__PURE__ */ h(
- "label",
- {
- htmlFor: "email",
- class: "block text-sm font-medium leading-6 text-gray-900"
- },
- label
- )));
- const WithTooltip = tooltip ? /* @__PURE__ */ h("div", { class: "relative flex flex-grow items-stretch focus-within:z-10" }, Label, /* @__PURE__ */ h("span", { class: "relative flex items-center group pl-2" }, TooltipIcon, /* @__PURE__ */ h("div", { class: "absolute bottom-0 flex flex-col items-center hidden mb-6 group-hover:flex" }, /* @__PURE__ */ h("span", { class: "relative z-10 p-2 text-xs leading-none text-white whitespace-no-wrap bg-black shadow-lg" }, tooltip), /* @__PURE__ */ h("div", { class: "w-3 h-3 -mt-2 rotate-45 bg-black" })))) : Label;
- if (required) {
- return /* @__PURE__ */ h("div", { class: "flex justify-between" }, WithTooltip, /* @__PURE__ */ h("span", { class: "text-sm leading-6 text-red-600" }, "*"));
- }
- return WithTooltip;
-}
-function InputWrapper({
- children,
- label,
- tooltip,
- before,
- after,
- help,
- error: error2,
- required
-}) {
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label,
- required,
- tooltip
- }
- ), /* @__PURE__ */ h("div", { class: "relative mt-2 flex rounded-md shadow-sm" }, before && (before.type === "text" ? /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-l-md border border-r-0 border-gray-300 px-3 text-gray-500 sm:text-sm" }, before.text) : before.type === "icon" ? /* @__PURE__ */ h("div", { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3" }, before.icon) : before.type === "button" ? /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: before.onClick,
- class: "relative -ml-px inline-flex items-center gap-x-1.5 rounded-l-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50"
- },
- before.children
- ) : void 0), children, after && (after.type === "text" ? /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-r-md border border-l-0 border-gray-300 px-3 text-gray-500 sm:text-sm" }, after.text) : after.type === "icon" ? /* @__PURE__ */ h("div", { class: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3" }, after.icon) : after.type === "button" ? /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: after.onClick,
- class: "relative -ml-px inline-flex items-center gap-x-1.5 rounded-r-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50"
- },
- after.children
- ) : void 0)), error2 && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-red-600", id: "email-error" }, error2), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
-}
-function defaultToString(v3) {
- return v3 === void 0 ? "" : typeof v3 !== "object" ? String(v3) : "";
-}
-function defaultFromString(v3) {
- return v3;
-}
-function InputLine(props) {
- var _a, _b, _c, _d;
- const { name, placeholder, before, after, converter, type } = props;
- const { value, onChange, state, isDirty } = useField(name);
- if (state.hidden)
- return /* @__PURE__ */ h("div", null);
- let clazz = "block w-full rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset focus:ring-2 focus:ring-inset sm:text-sm sm:leading-6 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200";
- if (before) {
- switch (before.type) {
- case "icon": {
- clazz += " pl-10";
- break;
- }
- case "button": {
- clazz += " rounded-none rounded-r-md ";
- break;
- }
- case "text": {
- clazz += " min-w-0 flex-1 rounded-r-md rounded-none ";
- break;
- }
- }
- }
- if (after) {
- switch (after.type) {
- case "icon": {
- clazz += " pr-10";
- break;
- }
- case "button": {
- clazz += " rounded-none rounded-l-md";
- break;
- }
- case "text": {
- clazz += " min-w-0 flex-1 rounded-l-md rounded-none ";
- break;
- }
- }
- }
- const showError = isDirty && state.error;
- if (showError) {
- clazz += " text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500";
- } else {
- clazz += " text-gray-900 ring-gray-300 placeholder:text-gray-400 focus:ring-indigo-600";
- }
- const fromString = (_a = converter == null ? void 0 : converter.fromStringUI) != null ? _a : defaultFromString;
- const toString = (_b = converter == null ? void 0 : converter.toStringUI) != null ? _b : defaultToString;
- if (type === "text-area") {
- return /* @__PURE__ */ h(
- InputWrapper,
- __spreadProps(__spreadValues({}, props), {
- error: showError ? state.error : void 0
- }),
- /* @__PURE__ */ h(
- "textarea",
- {
- rows: 4,
- name: String(name),
- onChange: (e4) => {
- onChange(fromString(e4.currentTarget.value));
- },
- placeholder: placeholder ? placeholder : void 0,
- value: (_c = toString(value)) != null ? _c : "",
- disabled: state.disabled,
- "aria-invalid": showError,
- class: clazz
- }
- )
- );
- }
- return /* @__PURE__ */ h(InputWrapper, __spreadProps(__spreadValues({}, props), { error: showError ? state.error : void 0 }), /* @__PURE__ */ h(
- "input",
- {
- name: String(name),
- type,
- onChange: (e4) => {
- onChange(fromString(e4.currentTarget.value));
- },
- placeholder: placeholder ? placeholder : void 0,
- value: (_d = toString(value)) != null ? _d : "",
- disabled: state.disabled,
- "aria-invalid": showError,
- class: clazz
- }
- ));
-}
-
-// src/handlers/InputText.tsx
-function InputText(props) {
- return /* @__PURE__ */ h(InputLine, __spreadValues({ type: "text" }, props));
-}
-
-// src/handlers/InputDate.tsx
-init_preact_module();
-function InputDate(props) {
- var _a;
- const pattern = (_a = props.pattern) != null ? _a : "dd/MM/yyyy";
- return /* @__PURE__ */ h(
- InputLine,
- __spreadValues({
- type: "text",
- after: {
- type: "icon",
- // icon: <CalendarIcon class="h-6 w-6" />,
- icon: /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5" }))
- },
- converter: {
- //@ts-ignore
- fromStringUI: (v3) => {
- if (!v3)
- return AbsoluteTime.never();
- const t_ms = parse(v3, pattern, Date.now()).getTime();
- return AbsoluteTime.fromMilliseconds(t_ms);
- },
- //@ts-ignore
- toStringUI: (v3) => {
- return !v3 || !v3.t_ms ? "" : v3.t_ms === "never" ? "never" : format(v3.t_ms, pattern);
- }
- }
- }, props)
- );
-}
-
-// src/handlers/InputInteger.tsx
-init_preact_module();
-function InputInteger(props) {
- return /* @__PURE__ */ h(
- InputLine,
- __spreadValues({
- type: "number",
- converter: {
- //@ts-ignore
- fromStringUI: (v3) => {
- return !v3 ? 0 : Number.parseInt(v3, 10);
- },
- //@ts-ignore
- toStringUI: (v3) => {
- return v3 === void 0 ? "" : String(v3);
- }
- }
- }, props)
- );
-}
-
-// src/handlers/forms.ts
-init_preact_module();
-
-// src/handlers/InputChoiceStacked.tsx
-init_preact_module();
-function InputChoiceStacked(props) {
- const {
- choices,
- name,
- label,
- tooltip,
- help,
- placeholder,
- required,
- before,
- after,
- converter
- } = props;
- const { value, onChange, state, isDirty } = useField(name);
- if (state.hidden) {
- return /* @__PURE__ */ h(p2, null);
- }
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label,
- required,
- tooltip
- }
- ), /* @__PURE__ */ h("fieldset", { class: "mt-2" }, /* @__PURE__ */ h("div", { class: "space-y-4" }, choices.map((choice) => {
- var _a;
- let clazz = "border relative block cursor-pointer rounded-lg bg-white px-6 py-4 shadow-sm focus:outline-none sm:flex sm:justify-between";
- if (choice.value === value) {
- clazz += " border-transparent border-indigo-600 ring-2 ring-indigo-600";
- } else {
- clazz += " border-gray-300";
- }
- return /* @__PURE__ */ h("label", { class: clazz }, /* @__PURE__ */ h(
- "input",
- {
- type: "radio",
- name: "server-size",
- value: (_a = !converter ? choice.value : converter == null ? void 0 : converter.toStringUI(choice.value)) != null ? _a : "",
- onClick: (e4) => {
- onChange(
- value === choice.value ? void 0 : choice.value
- );
- },
- class: "sr-only",
- "aria-labelledby": "server-size-0-label",
- "aria-describedby": "server-size-0-description-0 server-size-0-description-1"
- }
- ), /* @__PURE__ */ h("span", { class: "flex items-center" }, /* @__PURE__ */ h("span", { class: "flex flex-col text-sm" }, /* @__PURE__ */ h(
- "span",
- {
- id: "server-size-0-label",
- class: "font-medium text-gray-900"
- },
- choice.label
- ), choice.description !== void 0 && /* @__PURE__ */ h(
- "span",
- {
- id: "server-size-0-description-0",
- class: "text-gray-500"
- },
- /* @__PURE__ */ h("span", { class: "block sm:inline" }, choice.description)
- ))));
- }))), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
-}
-
-// src/handlers/InputArray.tsx
-init_preact_module();
-init_hooks_module();
-function Option({
- label,
- disabled,
- isFirst,
- isLast,
- isSelected,
- onClick
-}) {
- let clazz = "relative flex border p-4 focus:outline-none disabled:text-grey";
- if (isFirst) {
- clazz += " rounded-tl-md rounded-tr-md ";
- }
- if (isLast) {
- clazz += " rounded-bl-md rounded-br-md ";
- }
- if (isSelected) {
- clazz += " z-10 border-indigo-200 bg-indigo-50 ";
- } else {
- clazz += " border-gray-200";
- }
- if (disabled) {
- clazz += " cursor-not-allowed bg-gray-50 text-gray-500 ring-gray-200 text-gray";
- } else {
- clazz += " cursor-pointer";
- }
- return /* @__PURE__ */ h("label", { class: clazz }, /* @__PURE__ */ h(
- "input",
- {
- type: "radio",
- name: "privacy-setting",
- checked: isSelected,
- disabled,
- onClick,
- class: "mt-0.5 h-4 w-4 shrink-0 text-indigo-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200 focus:ring-indigo-600",
- "aria-labelledby": "privacy-setting-0-label",
- "aria-describedby": "privacy-setting-0-description"
- }
- ), /* @__PURE__ */ h("span", { class: "ml-3 flex flex-col" }, /* @__PURE__ */ h(
- "span",
- {
- id: "privacy-setting-0-label",
- disabled: true,
- class: "block text-sm font-medium"
- },
- label
- )));
-}
-function InputArray(props) {
- const { fields, labelField, name, label, required, tooltip } = props;
- const { value, onChange, state } = useField(name);
- const list = value != null ? value : [];
- const [selectedIndex, setSelected] = p3(void 0);
- const selected = selectedIndex === void 0 ? void 0 : list[selectedIndex];
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label,
- required,
- tooltip
- }
- ), /* @__PURE__ */ h("div", { class: "-space-y-px rounded-md bg-white " }, list.map((v3, idx) => {
- return /* @__PURE__ */ h(
- Option,
- {
- label: v3[labelField],
- isSelected: selectedIndex === idx,
- isLast: idx === list.length - 1,
- disabled: selectedIndex !== void 0 && selectedIndex !== idx,
- isFirst: idx === 0,
- onClick: () => {
- setSelected(selectedIndex === idx ? void 0 : idx);
- }
- }
- );
- }), /* @__PURE__ */ h("div", { class: "pt-2" }, /* @__PURE__ */ h(
- Option,
- {
- label: "Add...",
- isSelected: selectedIndex === list.length,
- isLast: true,
- isFirst: true,
- disabled: selectedIndex !== void 0 && selectedIndex !== list.length,
- onClick: () => {
- setSelected(
- selectedIndex === list.length ? void 0 : list.length
- );
- }
- }
- ))), selectedIndex !== void 0 && /**
- * This form provider act as a substate of the parent form
- * Consider creating an InnerFormProvider since not every feature is expected
- */
- /* @__PURE__ */ h(
- FormProvider,
- {
- initialValue: selected,
- computeFormState: (v3) => {
- return state.elements[selectedIndex];
- },
- onSubmit: (v3) => {
- const newValue = [...list];
- newValue.splice(selectedIndex, 1, v3);
- onChange(newValue);
- setSelected(void 0);
- },
- onUpdate: (v3) => {
- const newValue = [...list];
- newValue.splice(selectedIndex, 1, v3);
- onChange(newValue);
- }
- },
- /* @__PURE__ */ h("div", { class: "px-4 py-6" }, /* @__PURE__ */ h("div", { class: "grid grid-cols-1 gap-y-8 " }, /* @__PURE__ */ h(RenderAllFieldsByUiConfig, { fields })))
- ), selectedIndex !== void 0 && /* @__PURE__ */ h("div", { class: "flex items-center pt-3" }, /* @__PURE__ */ h("div", { class: "flex-auto" }, selected !== void 0 && /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- const newValue = [...list];
- newValue.splice(selectedIndex, 1);
- onChange(newValue);
- setSelected(void 0);
- },
- class: "block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 "
- },
- "Remove"
- ))));
-}
-
-// src/handlers/InputSelectMultiple.tsx
-init_preact_module();
-init_hooks_module();
-function InputSelectMultiple(props) {
- const { name, label, choices, placeholder, tooltip, required, unique, max } = props;
- const { value, onChange } = useField(name);
- const [filter, setFilter] = p3(void 0);
- const regex = new RegExp(`.*${filter}.*`, "i");
- const choiceMap = choices.reduce((prev, curr) => {
- return __spreadProps(__spreadValues({}, prev), { [curr.value]: curr.label });
- }, {});
- const list = value != null ? value : [];
- const filteredChoices = filter === void 0 ? void 0 : choices.filter((v3) => {
- return regex.test(v3.label);
- });
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label,
- required,
- tooltip
- }
- ), list.map((v3, idx) => {
- return /* @__PURE__ */ h("span", { class: "inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 text-xs font-medium text-gray-600" }, choiceMap[v3], /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- const newValue = [...list];
- newValue.splice(idx, 1);
- onChange(newValue);
- setFilter(void 0);
- },
- class: "group relative h-5 w-5 rounded-sm hover:bg-gray-500/20"
- },
- /* @__PURE__ */ h("span", { class: "sr-only" }, "Remove"),
- /* @__PURE__ */ h(
- "svg",
- {
- viewBox: "0 0 14 14",
- class: "h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75"
- },
- /* @__PURE__ */ h("path", { d: "M4 4l6 6m0-6l-6 6" })
- ),
- /* @__PURE__ */ h("span", { class: "absolute -inset-1" })
- ));
- }), /* @__PURE__ */ h("div", { class: "relative mt-2" }, /* @__PURE__ */ h(
- "input",
- {
- id: "combobox",
- type: "text",
- value: filter != null ? filter : "",
- onChange: (e4) => {
- setFilter(e4.currentTarget.value);
- },
- placeholder,
- class: "w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6",
- role: "combobox",
- "aria-controls": "options",
- "aria-expanded": "false"
- }
- ), /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- setFilter(filter === void 0 ? "" : void 0);
- },
- class: "absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none"
- },
- /* @__PURE__ */ h(
- "svg",
- {
- class: "h-5 w-5 text-gray-400",
- viewBox: "0 0 20 20",
- fill: "currentColor",
- "aria-hidden": "true"
- },
- /* @__PURE__ */ h(
- "path",
- {
- "fill-rule": "evenodd",
- d: "M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z",
- "clip-rule": "evenodd"
- }
- )
- )
- ), filteredChoices !== void 0 && /* @__PURE__ */ h(
- "ul",
- {
- class: "absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",
- id: "options",
- role: "listbox"
- },
- filteredChoices.map((v3, idx) => {
- return /* @__PURE__ */ h(
- "li",
- {
- class: "relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600",
- id: "option-0",
- role: "option",
- onClick: () => {
- setFilter(void 0);
- if (unique && list.indexOf(v3.value) !== -1) {
- return;
- }
- if (max !== void 0 && list.length >= max) {
- return;
- }
- const newValue = [...list];
- newValue.splice(0, 0, v3.value);
- onChange(newValue);
- }
- },
- /* @__PURE__ */ h("span", { class: "block truncate" }, v3.label)
- );
- })
- )));
-}
-
-// src/handlers/InputTextArea.tsx
-init_preact_module();
-function InputTextArea(props) {
- return /* @__PURE__ */ h(InputLine, __spreadValues({ type: "text-area" }, props));
-}
-
-// src/handlers/InputFile.tsx
-init_preact_module();
-function InputFile(props) {
- const {
- name,
- label,
- placeholder,
- tooltip,
- required,
- help,
- maxBites,
- accept
- } = props;
- const { value, onChange, state } = useField(name);
- if (state.hidden) {
- return /* @__PURE__ */ h("div", null);
- }
- return /* @__PURE__ */ h("div", { class: "col-span-full" }, /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label,
- tooltip,
- required
- }
- ), !value || !value.startsWith("data:image/") ? /* @__PURE__ */ h("div", { class: "mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 py-1" }, /* @__PURE__ */ h("div", { class: "text-center" }, /* @__PURE__ */ h(
- "svg",
- {
- class: "mx-auto h-12 w-12 text-gray-300",
- viewBox: "0 0 24 24",
- fill: "currentColor",
- "aria-hidden": "true"
- },
- /* @__PURE__ */ h(
- "path",
- {
- "fill-rule": "evenodd",
- d: "M1.5 6a2.25 2.25 0 012.25-2.25h16.5A2.25 2.25 0 0122.5 6v12a2.25 2.25 0 01-2.25 2.25H3.75A2.25 2.25 0 011.5 18V6zM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0021 18v-1.94l-2.69-2.689a1.5 1.5 0 00-2.12 0l-.88.879.97.97a.75.75 0 11-1.06 1.06l-5.16-5.159a1.5 1.5 0 00-2.12 0L3 16.061zm10.125-7.81a1.125 1.125 0 112.25 0 1.125 1.125 0 01-2.25 0z",
- "clip-rule": "evenodd"
- }
- )
- ), /* @__PURE__ */ h("div", { class: "my-2 flex text-sm leading-6 text-gray-600" }, /* @__PURE__ */ h(
- "label",
- {
- for: "file-upload",
- class: "relative cursor-pointer rounded-md bg-white font-semibold text-indigo-600 focus-within:outline-none focus-within:ring-2 focus-within:ring-indigo-600 focus-within:ring-offset-2 hover:text-indigo-500"
- },
- /* @__PURE__ */ h("span", null, "Upload a file"),
- /* @__PURE__ */ h(
- "input",
- {
- id: "file-upload",
- name: "file-upload",
- type: "file",
- class: "sr-only",
- accept,
- onChange: (e4) => {
- const f3 = e4.currentTarget.files;
- if (!f3 || f3.length != 1) {
- return onChange(void 0);
- }
- if (f3[0].size > maxBites) {
- return onChange(void 0);
- }
- return f3[0].arrayBuffer().then((b4) => {
- const b64 = window.btoa(
- new Uint8Array(b4).reduce(
- (data, byte) => data + String.fromCharCode(byte),
- ""
- )
- );
- return onChange(`data:${f3[0].type};base64,${b64}`);
- });
- }
- }
- )
- )))) : /* @__PURE__ */ h("div", { class: "mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 relative" }, /* @__PURE__ */ h(
- "img",
- {
- src: value,
- class: " h-24 w-full object-cover relative"
- }
- ), /* @__PURE__ */ h(
- "div",
- {
- class: "opacity-0 hover:opacity-70 duration-300 absolute rounded-lg border inset-0 z-10 flex justify-center text-xl items-center bg-black text-white cursor-pointer ",
- onClick: () => {
- onChange(void 0);
- }
- },
- "Clear"
- )), help && /* @__PURE__ */ h("p", { class: "text-xs leading-5 text-gray-600 mt-2" }, help));
-}
-
-// src/handlers/Caption.tsx
-init_preact_module();
-function Caption({ before, after, label, tooltip, help }) {
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6 flex" }, before !== void 0 && /* @__PURE__ */ h("span", { class: "pointer-events-none flex items-center pr-2" }, before), /* @__PURE__ */ h(LabelWithTooltipMaybeRequired, { label, tooltip }), after !== void 0 && /* @__PURE__ */ h("span", { class: "pointer-events-none flex items-center pl-2" }, after), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
-}
-
-// src/handlers/Group.tsx
-init_preact_module();
-function Group({
- before,
- after,
- tooltipAfter,
- tooltipBefore,
- fields
-}) {
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6 p-4 rounded-lg border-r-2 border-2 bg-gray-50" }, /* @__PURE__ */ h("div", { class: "pb-4" }, before && /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label: before,
- tooltip: tooltipBefore
- }
- )), /* @__PURE__ */ h("div", { class: "grid max-w-2xl grid-cols-1 gap-x-6 gap-y-2 sm:grid-cols-6" }, /* @__PURE__ */ h(RenderAllFieldsByUiConfig, { fields })), /* @__PURE__ */ h("div", { class: "pt-4" }, after && /* @__PURE__ */ h(LabelWithTooltipMaybeRequired, { label: after, tooltip: tooltipAfter })));
-}
-
-// src/handlers/InputSelectOne.tsx
-init_preact_module();
-init_hooks_module();
-function InputSelectOne(props) {
- const { name, label, choices, placeholder, tooltip, required } = props;
- const { value, onChange } = useField(name);
- const [filter, setFilter] = p3(void 0);
- const regex = new RegExp(`.*${filter}.*`, "i");
- const choiceMap = choices.reduce((prev, curr) => {
- return __spreadProps(__spreadValues({}, prev), { [curr.value]: curr.label });
- }, {});
- const filteredChoices = filter === void 0 ? void 0 : choices.filter((v3) => {
- return regex.test(v3.label);
- });
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label,
- required,
- tooltip
- }
- ), value ? /* @__PURE__ */ h("span", { class: "inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 font-medium text-gray-600" }, choiceMap[value], /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- onChange(void 0);
- },
- class: "group relative h-5 w-5 rounded-sm hover:bg-gray-500/20"
- },
- /* @__PURE__ */ h("span", { class: "sr-only" }, "Remove"),
- /* @__PURE__ */ h(
- "svg",
- {
- viewBox: "0 0 14 14",
- class: "h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75"
- },
- /* @__PURE__ */ h("path", { d: "M4 4l6 6m0-6l-6 6" })
- ),
- /* @__PURE__ */ h("span", { class: "absolute -inset-1" })
- )) : /* @__PURE__ */ h("div", { class: "relative mt-2" }, /* @__PURE__ */ h(
- "input",
- {
- id: "combobox",
- type: "text",
- value: filter != null ? filter : "",
- onChange: (e4) => {
- setFilter(e4.currentTarget.value);
- },
- placeholder,
- class: "w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6",
- role: "combobox",
- "aria-controls": "options",
- "aria-expanded": "false"
- }
- ), /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- setFilter(filter === void 0 ? "" : void 0);
- },
- class: "absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none"
- },
- /* @__PURE__ */ h(
- "svg",
- {
- class: "h-5 w-5 text-gray-400",
- viewBox: "0 0 20 20",
- fill: "currentColor",
- "aria-hidden": "true"
- },
- /* @__PURE__ */ h(
- "path",
- {
- "fill-rule": "evenodd",
- d: "M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z",
- "clip-rule": "evenodd"
- }
- )
- )
- ), filteredChoices !== void 0 && /* @__PURE__ */ h(
- "ul",
- {
- class: "absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",
- id: "options",
- role: "listbox"
- },
- filteredChoices.map((v3, idx) => {
- return /* @__PURE__ */ h(
- "li",
- {
- class: "relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600",
- id: "option-0",
- role: "option",
- onClick: () => {
- setFilter(void 0);
- onChange(v3.value);
- }
- },
- /* @__PURE__ */ h("span", { class: "block truncate" }, v3.label)
- );
- })
- )));
-}
-
-// src/handlers/InputAmount.tsx
-init_preact_module();
-function InputAmount(props) {
- const { value } = useField(props.name);
- const currency = !value || !value.currency ? props.currency : value.currency;
- return /* @__PURE__ */ h(
- InputLine,
- __spreadValues({
- type: "text",
- before: {
- type: "text",
- text: currency
- },
- converter: {
- //@ts-ignore
- fromStringUI: (v3) => {
- var _a;
- return (_a = Amounts.parse(`${currency}:${v3}`)) != null ? _a : Amounts.zeroOfCurrency(currency);
- },
- //@ts-ignore
- toStringUI: (v3) => {
- return v3 === void 0 ? "" : Amounts.stringifyValue(v3);
- }
- }
- }, props)
- );
-}
-
-// src/handlers/InputChoiceHorizontal.tsx
+// src/pages/AntiMoneyLaunderingForm.tsx
init_preact_module();
-function InputChoiceHorizontal(props) {
- const {
- choices,
- name,
- label,
- tooltip,
- help,
- placeholder,
- required,
- before,
- after,
- converter
- } = props;
- const { value, onChange, state, isDirty } = useField(name);
- if (state.hidden) {
- return /* @__PURE__ */ h(p2, null);
- }
- return /* @__PURE__ */ h("div", { class: "sm:col-span-6" }, /* @__PURE__ */ h(
- LabelWithTooltipMaybeRequired,
- {
- label,
- required,
- tooltip
- }
- ), /* @__PURE__ */ h("fieldset", { class: "mt-2" }, /* @__PURE__ */ h("div", { class: "isolate inline-flex rounded-md shadow-sm" }, choices.map((choice, idx) => {
- var _a;
- const isFirst = idx === 0;
- const isLast = idx === choices.length - 1;
- let clazz = "relative inline-flex items-center px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 focus:z-10";
- if (choice.value === value) {
- clazz += " text-white bg-indigo-600 hover:bg-indigo-500 ring-2 ring-indigo-600 hover:ring-indigo-500";
- } else {
- clazz += " hover:bg-gray-100 border-gray-300";
- }
- if (isFirst) {
- clazz += " rounded-l-md";
- } else {
- clazz += " -ml-px";
- }
- if (isLast) {
- clazz += " rounded-r-md";
- }
- return /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- class: clazz,
- onClick: (e4) => {
- onChange(
- value === choice.value ? void 0 : choice.value
- );
- }
- },
- (_a = !converter ? choice.value : converter == null ? void 0 : converter.toStringUI(choice.value)) != null ? _a : ""
- );
- }))), help && /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-500", id: "email-description" }, help));
-}
-
-// src/handlers/forms.ts
-var UIFormConfiguration = {
- group: Group,
- caption: Caption,
- //@ts-ignore
- array: InputArray,
- text: InputText,
- //@ts-ignore
- file: InputFile,
- textArea: InputTextArea,
- //@ts-ignore
- date: InputDate,
- //@ts-ignore
- choiceStacked: InputChoiceStacked,
- //@ts-ignore
- choiceHorizontal: InputChoiceHorizontal,
- integer: InputInteger,
- //@ts-ignore
- selectOne: InputSelectOne,
- //@ts-ignore
- selectMultiple: InputSelectMultiple,
- //@ts-ignore
- amount: InputAmount
-};
-function RenderAllFieldsByUiConfig({
- fields
-}) {
- return h(
- p2,
- {},
- fields.map((field, i4) => {
- const Component = UIFormConfiguration[field.type];
- return Component(field.props);
- })
- );
-}
-function createNewForm() {
- const res = {
- Provider: FormProvider,
- InputLine: () => InputLine,
- InputChoiceHorizontal: () => InputChoiceHorizontal
- };
- return {
- Provider: res.Provider,
- InputLine: res.InputLine(),
- InputChoiceHorizontal: res.InputChoiceHorizontal()
- };
-}
-
-// src/NiceForm.tsx
-function NiceForm({
- initial: initial2,
- onUpdate,
- form,
- onSubmit,
- children
-}) {
- return /* @__PURE__ */ h(
- FormProvider,
- {
- initialValue: initial2,
- onUpdate,
- onSubmit,
- computeFormState: form.behavior
- },
- /* @__PURE__ */ h("div", { class: "space-y-10 divide-y -mt-5 divide-gray-900/10" }, form.design.map((section, i4) => {
- if (!section)
- return /* @__PURE__ */ h(p2, null);
- return /* @__PURE__ */ h("div", { class: "grid grid-cols-1 gap-x-8 gap-y-8 pt-5 md:grid-cols-3" }, /* @__PURE__ */ h("div", { class: "px-4 sm:px-0" }, /* @__PURE__ */ h("h2", { class: "text-base font-semibold leading-7 text-gray-900" }, section.title), section.description && /* @__PURE__ */ h("p", { class: "mt-1 text-sm leading-6 text-gray-600" }, section.description)), /* @__PURE__ */ h("div", { class: "bg-white shadow-sm ring-1 ring-gray-900/5 rounded-md md:col-span-2" }, /* @__PURE__ */ h("div", { class: "p-3" }, /* @__PURE__ */ h("div", { class: "grid max-w-2xl grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6" }, /* @__PURE__ */ h(
- RenderAllFieldsByUiConfig,
- {
- key: i4,
- fields: section.fields
- }
- )))));
- })),
- children
- );
-}
// src/pages/ShowConsolidated.tsx
+init_preact_module();
function ShowConsolidated({
- history: history3,
+ history: history2,
until
}) {
- const cons = getConsolidated(history3, until);
+ const cons = getConsolidated(history2, until);
const form = {
- versionId: "1",
behavior: (form2) => {
return {
aml: {
@@ -40140,7 +24607,7 @@ function ShowConsolidated({
props: {
label: key,
name: `kyc.${key}.value`,
- help: `${field.provider} since ${field.since.t_ms === "never" ? "never" : format(field.since.t_ms, "dd/MM/yyyy")}`
+ help: `${field.provider} since ${field.since.t_ms === "never" ? "never" : format2(field.since.t_ms, "dd/MM/yyyy")}`
}
};
return result;
@@ -40148,18 +24615,19 @@ function ShowConsolidated({
} : void 0
]
};
- return /* @__PURE__ */ h(p2, null, /* @__PURE__ */ h("h1", { class: "text-base font-semibold leading-7 text-black" }, "Consolidated information", until.t_ms === "never" ? "" : `after ${format(until.t_ms, "dd MMMM yyyy")}`), /* @__PURE__ */ h(
- NiceForm,
+ return /* @__PURE__ */ h(p2, null, /* @__PURE__ */ h("h1", { class: "text-base font-semibold leading-7 text-black" }, "Consolidated information ", until.t_ms === "never" ? "" : `after ${format2(until.t_ms, "dd MMMM yyyy")}`), /* @__PURE__ */ h(
+ DefaultForm,
{
key: `${String(Date.now())}`,
form,
initial: cons,
+ readOnly: true,
onUpdate: () => {
}
}
));
}
-function getConsolidated(history3, when) {
+function getConsolidated(history2, when) {
const initial2 = {
aml: {
state: AmlExchangeBackend.AmlState.normal,
@@ -40172,7 +24640,7 @@ function getConsolidated(history3, when) {
},
kyc: {}
};
- return history3.reduce((prev, cur) => {
+ return history2.reduce((prev, cur) => {
if (AbsoluteTime.cmp(when, cur.when) < 0) {
return prev;
}
@@ -40209,10 +24677,10 @@ var amlStateConverter = {
toStringUI: stringifyAmlState,
fromStringUI: parseAmlState
};
-function stringifyAmlState(s5) {
- if (s5 === void 0)
+function stringifyAmlState(s6) {
+ if (s6 === void 0)
return "";
- switch (s5) {
+ switch (s6) {
case AmlExchangeBackend.AmlState.normal:
return "normal";
case AmlExchangeBackend.AmlState.pending:
@@ -40221,8 +24689,8 @@ function stringifyAmlState(s5) {
return "frozen";
}
}
-function parseAmlState(s5) {
- switch (s5) {
+function parseAmlState(s6) {
+ switch (s6) {
case "normal":
return AmlExchangeBackend.AmlState.normal;
case "pending":
@@ -40230,672 +24698,12 @@ function parseAmlState(s5) {
case "frozen":
return AmlExchangeBackend.AmlState.frozen;
default:
- throw Error(`unknown AML state: ${s5}`);
+ throw Error(`unknown AML state: ${s6}`);
}
}
-// src/pages/CaseDetails.tsx
-function selectSooner(a5, b4) {
- return AbsoluteTime.cmp(a5.when, b4.when);
-}
-function getEventsFromAmlHistory(aml, kyc) {
- const ae = aml.map((a5) => {
- return {
- type: "aml-form",
- state: a5.new_state,
- threshold: Amounts.parseOrThrow(a5.new_threshold),
- title: a5.justification,
- when: {
- t_ms: a5.decision_time.t_s === "never" ? "never" : a5.decision_time.t_s * 1e3
- }
- };
- });
- const ke = kyc.reduce((prev, k5) => {
- prev.push({
- type: "kyc-collection",
- title: "collection",
- when: AbsoluteTime.fromProtocolTimestamp(k5.collection_time),
- values: !k5.attributes ? {} : k5.attributes,
- provider: k5.provider_section
- });
- prev.push({
- type: "kyc-expiration",
- title: "expiration",
- when: AbsoluteTime.fromProtocolTimestamp(k5.expiration_time),
- fields: !k5.attributes ? [] : Object.keys(k5.attributes)
- });
- return prev;
- }, []);
- return ae.concat(ke).sort(selectSooner);
-}
-function CaseDetails({ account: account2 }) {
- const [selected, setSelected] = p3(void 0);
- const { i18n: i18n2 } = useTranslationContext();
- const details = useCaseDetails(account2);
- if (!details) {
- return /* @__PURE__ */ h(Loading, null);
- }
- if (details instanceof TalerError) {
- return /* @__PURE__ */ h(ErrorLoading, { error: details });
- }
- if (details.type === "fail") {
- switch (details.case) {
- case "unauthorized":
- case "officer-not-found":
- case "officer-disabled":
- return /* @__PURE__ */ h("div", null);
- default:
- assertUnreachable(details);
- }
- }
- const { aml_history, kyc_attributes } = details.body;
- const events = getEventsFromAmlHistory(aml_history, kyc_attributes);
- return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h(
- "a",
- {
- href: Pages.newFormEntry.url({ account: account2 }),
- class: "m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700"
- },
- /* @__PURE__ */ h(i18n2.Translate, null, "New AML form")
- ), /* @__PURE__ */ h("header", { class: "flex items-center justify-between border-b border-white/5 px-4 py-4 sm:px-6 sm:py-6 lg:px-8" }, /* @__PURE__ */ h("h1", { class: "text-base font-semibold leading-7 text-black" }, /* @__PURE__ */ h(i18n2.Translate, null, "Case history"))), /* @__PURE__ */ h("div", { class: "flow-root" }, /* @__PURE__ */ h("ul", { role: "list" }, events.map((e4, idx) => {
- const isLast = events.length - 1 === idx;
- return /* @__PURE__ */ h(
- "li",
- {
- class: "hover:bg-gray-200 p-2 rounded cursor-pointer",
- onClick: () => {
- setSelected(e4);
- }
- },
- /* @__PURE__ */ h("div", { class: "relative pb-6" }, !isLast ? /* @__PURE__ */ h(
- "span",
- {
- class: "absolute left-4 top-4 -ml-px h-full w-1 bg-gray-200",
- "aria-hidden": "true"
- }
- ) : void 0, /* @__PURE__ */ h("div", { class: "relative flex space-x-3" }, (() => {
- switch (e4.type) {
- case "aml-form": {
- switch (e4.state) {
- case AmlExchangeBackend.AmlState.normal: {
- return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20" }, "Normal"), /* @__PURE__ */ h("span", { class: "inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 " }, e4.threshold.currency, " ", Amounts.stringifyValue(e4.threshold)));
- }
- case AmlExchangeBackend.AmlState.pending: {
- return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20" }, "Pending"), /* @__PURE__ */ h("span", { class: "inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 " }, e4.threshold.currency, " ", Amounts.stringifyValue(e4.threshold)));
- }
- case AmlExchangeBackend.AmlState.frozen: {
- return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20" }, "Frozen"), /* @__PURE__ */ h("span", { class: "inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 " }, e4.threshold.currency, " ", Amounts.stringifyValue(e4.threshold)));
- }
- }
- }
- case "kyc-collection": {
- return (
- // <ArrowDownCircleIcon class="h-8 w-8 text-green-700" />
- /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M9 12.75l3 3m0 0l3-3m-3 3v-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }))
- );
- }
- case "kyc-expiration": {
- return /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z" }));
- }
- }
- })(), /* @__PURE__ */ h("div", { class: "flex min-w-0 flex-1 justify-between space-x-4 pt-1.5" }, /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("p", { class: "text-sm text-gray-900" }, e4.title)), /* @__PURE__ */ h("div", { class: "whitespace-nowrap text-right text-sm text-gray-500" }, e4.when.t_ms === "never" ? "never" : /* @__PURE__ */ h("time", { dateTime: format(e4.when.t_ms, "dd MMM yyyy") }, format(e4.when.t_ms, "dd MMM yyyy"))))))
- );
- }))), selected && /* @__PURE__ */ h(ShowEventDetails, { event: selected }), selected && /* @__PURE__ */ h(ShowConsolidated, { history: events, until: selected.when }));
-}
-function ShowEventDetails({ event }) {
- return /* @__PURE__ */ h("div", null, "type ", event.type);
-}
-
-// src/pages/Cases.tsx
-init_preact_module();
-init_hooks_module();
-
-// src/hooks/useCases.ts
-init_hooks_module();
-var useSWR3 = useSWR;
-var PAGE_SIZE = 10;
-var MAX_RESULT_SIZE = PAGE_SIZE * 2 - 1;
-function useCases(state) {
- const officer2 = useOfficer();
- const session = officer2.state === "ready" ? officer2.account : void 0;
- const { api } = useExchangeApiContext();
- const [offset, setOffet] = p3();
- function fetcher(_0) {
- return __async(this, arguments, function* ([officer3, state2, offset2]) {
- return yield api.getDecisionsByState(officer3, state2, {
- order: "asc",
- offset: offset2,
- limit: MAX_RESULT_SIZE
- });
- });
- }
- const { data, error: error2 } = useSWR3(
- !session ? void 0 : [session, state, offset],
- fetcher
- );
- const isLastPage = data && data.type === "ok" && data.body.records.length < PAGE_SIZE;
- const isFirstPage = !offset;
- const pagination = {
- isLastPage,
- isFirstPage,
- loadMore: () => {
- if (isLastPage || (data == null ? void 0 : data.type) !== "ok")
- return;
- const list = data.body.records;
- if (list.length < MAX_RESULT_SIZE) {
- }
- },
- loadMorePrev: () => {
- null;
- }
- };
- if (!session) {
- return {
- data: {
- type: "fail",
- case: "unauthorized",
- detail: {}
- }
- };
- }
- if (data) {
- if (data.type === "fail") {
- return { data };
- }
- return { data, pagination };
- }
- if (error2) {
- return error2;
- }
- return void 0;
-}
-var example12 = {
- records: [
- {
- current_state: 0,
- h_payto: "QWEQWEQWEQWEWQE",
- rowid: 1,
- threshold: "USD 100"
- },
- {
- current_state: 1,
- h_payto: "ASDASDASD",
- rowid: 1,
- threshold: "USD 100"
- },
- {
- current_state: 2,
- h_payto: "ZXCZXCZXCXZC",
- rowid: 1,
- threshold: "USD 1000"
- },
- {
- current_state: 0,
- h_payto: "QWEQWEQWEQWEWQE",
- rowid: 1,
- threshold: "USD 100"
- },
- {
- current_state: 1,
- h_payto: "ASDASDASD",
- rowid: 1,
- threshold: "USD 100"
- },
- {
- current_state: 2,
- h_payto: "ZXCZXCZXCXZC",
- rowid: 1,
- threshold: "USD 1000"
- }
- ].map((e4, idx) => {
- e4.rowid = idx;
- e4.threshold = `${e4.threshold}${idx}`;
- return e4;
- })
-};
-
-// src/pages/Officer.tsx
-init_preact_module();
-
-// src/pages/HandleAccountNotReady.tsx
-init_preact_module();
-
-// src/pages/CreateAccount.tsx
-init_preact_module();
-function CreateAccount({
- onNewAccount
-}) {
- const { i18n: i18n2 } = useTranslationContext();
- const Form = createNewForm();
- const [settings] = useSettings();
- return /* @__PURE__ */ h("div", { class: "flex min-h-full flex-col " }, /* @__PURE__ */ h("div", { class: "sm:mx-auto sm:w-full sm:max-w-md" }, /* @__PURE__ */ h("h2", { class: "mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900" }, /* @__PURE__ */ h(i18n2.Translate, null, "Create account"))), /* @__PURE__ */ h("div", { class: "mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] " }, /* @__PURE__ */ h("div", { class: "bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12" }, /* @__PURE__ */ h(
- Form.Provider,
- {
- computeFormState: (v3) => {
- return {
- password: {
- error: !v3.password ? i18n2.str`required` : settings.allowInsecurePassword ? void 0 : v3.password.length < 8 ? i18n2.str`should have at least 8 characters` : !v3.password.match(/[a-z]/) && v3.password.match(/[A-Z]/) ? i18n2.str`should have lowercase and uppercase characters` : !v3.password.match(/\d/) ? i18n2.str`should have numbers` : !v3.password.match(/[^a-zA-Z\d]/) ? i18n2.str`should have at least one character which is not a number or letter` : void 0
- },
- repeat: {
- error: !v3.repeat ? i18n2.str`required` : v3.repeat !== v3.password ? i18n2.str`doesn't match` : void 0
- }
- };
- },
- onSubmit: (v3, s5) => __async(this, null, function* () {
- var _a, _b, _c;
- const error2 = (_c = (_a = s5 == null ? void 0 : s5.password) == null ? void 0 : _a.error) != null ? _c : (_b = s5 == null ? void 0 : s5.repeat) == null ? void 0 : _b.error;
- if (error2) {
- notifyError(
- "Can't create account",
- error2
- );
- } else {
- onNewAccount(v3.password);
- }
- })
- },
- /* @__PURE__ */ h("div", { class: "mb-4" }, /* @__PURE__ */ h(
- Form.InputLine,
- {
- label: "Password",
- name: "password",
- type: "password",
- help: settings.allowInsecurePassword ? i18n2.str`short password are insecure, turn off insecure password in settings` : i18n2.str`lower and upper case letters, number and special character`,
- required: true
- }
- )),
- /* @__PURE__ */ h("div", { class: "mb-4" }, /* @__PURE__ */ h(
- Form.InputLine,
- {
- label: "Repeat password",
- name: "repeat",
- type: "password",
- required: true
- }
- )),
- /* @__PURE__ */ h("div", { class: "mt-8" }, /* @__PURE__ */ h(
- "button",
- {
- type: "submit",
- class: "flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
- },
- /* @__PURE__ */ h(i18n2.Translate, null, "Create")
- ))
- ))));
-}
-
-// src/pages/UnlockAccount.tsx
-init_preact_module();
-function UnlockAccount({
- onAccountUnlocked,
- onRemoveAccount
-}) {
- const { i18n: i18n2 } = useTranslationContext();
- const Form = createNewForm();
- return /* @__PURE__ */ h("div", { class: "flex min-h-full flex-col " }, /* @__PURE__ */ h("div", { class: "sm:mx-auto sm:w-full sm:max-w-md" }, /* @__PURE__ */ h("h1", { class: "mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900" }, /* @__PURE__ */ h(i18n2.Translate, null, "Account locked")), /* @__PURE__ */ h("p", { class: "mt-6 text-lg leading-8 text-gray-600" }, /* @__PURE__ */ h(i18n2.Translate, null, "Your account is normally locked anytime you reload. To unlock type your password again."))), /* @__PURE__ */ h("div", { class: "mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] " }, /* @__PURE__ */ h("div", { class: "bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12" }, /* @__PURE__ */ h(
- Form.Provider,
- {
- initialValue: {},
- onSubmit: (v3) => __async(this, null, function* () {
- try {
- yield onAccountUnlocked(v3.password);
- notifyInfo("Account unlocked");
- } catch (e4) {
- if (e4 instanceof UnwrapKeyError) {
- notifyError(
- "Could not unlock account",
- e4.message
- );
- } else {
- throw e4;
- }
- }
- })
- },
- /* @__PURE__ */ h("div", { class: "mb-4" }, /* @__PURE__ */ h(
- Form.InputLine,
- {
- label: "Password",
- name: "password",
- type: "password",
- required: true
- }
- )),
- /* @__PURE__ */ h("div", { class: "mt-8" }, /* @__PURE__ */ h(
- "button",
- {
- type: "submit",
- class: "flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
- },
- /* @__PURE__ */ h(i18n2.Translate, null, "Unlock")
- ))
- )), /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- onRemoveAccount();
- },
- class: "m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 "
- },
- /* @__PURE__ */ h(i18n2.Translate, null, "Forget account")
- )));
-}
-
-// src/pages/HandleAccountNotReady.tsx
-function HandleAccountNotReady({
- officer: officer2
-}) {
- if (officer2.state === "not-found") {
- return /* @__PURE__ */ h(
- CreateAccount,
- {
- onNewAccount: (password) => {
- officer2.create(password);
- }
- }
- );
- }
- if (officer2.state === "locked") {
- return /* @__PURE__ */ h(
- UnlockAccount,
- {
- onRemoveAccount: () => {
- officer2.forget();
- },
- onAccountUnlocked: (pwd) => __async(this, null, function* () {
- yield officer2.tryUnlock(pwd);
- })
- }
- );
- }
- assertUnreachable(officer2);
-}
-
-// src/settings.ts
-var defaultSettings2 = {};
-var uiSettings = "talerExchangeAmlSettings" in globalThis ? globalThis.talerExchangeAmlSettings : defaultSettings2;
-
-// src/hooks/useBackend.ts
-init_hooks_module();
-function getInitialBackendBaseURL() {
- const overrideUrl = typeof localStorage !== "undefined" ? localStorage.getItem("exchange-base-url") : void 0;
- let result;
- if (!overrideUrl) {
- if (!uiSettings.backendBaseURL) {
- console.error(
- "ERROR: backendBaseURL was overridden by a setting file and missing. Setting value to 'window.origin'"
- );
- result = typeof window !== "undefined" ? window.origin : "localhost";
- } else {
- result = uiSettings.backendBaseURL;
- }
- } else {
- result = overrideUrl;
- }
- try {
- return canonicalizeBaseUrl(result);
- } catch (e4) {
- return canonicalizeBaseUrl(window.origin);
- }
-}
-
-// src/pages/Officer.tsx
-function Officer() {
- var _a;
- const officer2 = useOfficer();
- const { i18n: i18n2 } = useTranslationContext();
- if (officer2.state !== "ready") {
- return /* @__PURE__ */ h(HandleAccountNotReady, { officer: officer2 });
- }
- const url = new URL(getInitialBackendBaseURL());
- const signupEmail = (_a = uiSettings.signupEmail) != null ? _a : `aml-signup@${url.hostname}`;
- return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("h1", { class: "my-2 text-3xl font-bold tracking-tight text-gray-900 " }, /* @__PURE__ */ h(i18n2.Translate, null, "Public key")), /* @__PURE__ */ h("div", { class: "max-w-xl text-base leading-7 text-gray-700 lg:max-w-lg" }, /* @__PURE__ */ h("p", { class: "mt-6 font-mono break-all" }, officer2.account.id)), /* @__PURE__ */ h("p", null, /* @__PURE__ */ h(
- "a",
- {
- href: `mailto:${signupEmail}?subject=${encodeURIComponent("Request AML signup")}&body=${encodeURIComponent(`I want my AML account
-
-
-PubKey: ${officer2.account.id}`)}`,
- target: "_blank",
- rel: "noreferrer",
- class: "m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700"
- },
- /* @__PURE__ */ h(i18n2.Translate, null, "Request account activation")
- )), /* @__PURE__ */ h("p", null, /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- officer2.lock();
- },
- class: "m-4 block rounded-md border-0 bg-gray-200 px-3 py-2 text-center text-sm text-black shadow-sm "
- },
- /* @__PURE__ */ h(i18n2.Translate, null, "Lock account")
- )), /* @__PURE__ */ h("p", null, /* @__PURE__ */ h(
- "button",
- {
- type: "button",
- onClick: () => {
- officer2.forget();
- },
- class: "m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 "
- },
- /* @__PURE__ */ h(i18n2.Translate, null, "Forget account")
- )));
-}
-
-// src/pages/Cases.tsx
-function Cases() {
- const { i18n: i18n2 } = useTranslationContext();
- const form = createNewForm();
- const initial2 = AmlExchangeBackend.AmlState.pending;
- const [stateFilter, setStateFilter] = p3(initial2);
- const list = useCases(stateFilter);
- if (!list) {
- return /* @__PURE__ */ h(Loading, null);
- }
- if (list instanceof TalerError) {
- return /* @__PURE__ */ h(ErrorLoading, { error: list });
- }
- if (list.data.type === "fail") {
- switch (list.data.case) {
- case "unauthorized":
- return /* @__PURE__ */ h(Officer, null);
- case "officer-not-found":
- return /* @__PURE__ */ h(Officer, null);
- case "officer-disabled":
- return /* @__PURE__ */ h(Officer, null);
- default:
- assertUnreachable(list.data);
- }
- }
- const { records } = list.data.body;
- return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("div", { class: "px-4 sm:px-6 lg:px-8" }, /* @__PURE__ */ h("div", { class: "sm:flex sm:items-center" }, /* @__PURE__ */ h("div", { class: "sm:flex-auto" }, /* @__PURE__ */ h("h1", { class: "text-base font-semibold leading-6 text-gray-900" }, /* @__PURE__ */ h(i18n2.Translate, null, "Cases")), /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-700" }, /* @__PURE__ */ h(i18n2.Translate, null, "A list of all the account with the status"))), /* @__PURE__ */ h(
- form.Provider,
- {
- initialValue: { state: stateFilter },
- onUpdate: (v3) => {
- var _a;
- setStateFilter((_a = v3.state) != null ? _a : initial2);
- },
- onSubmit: (v3) => {
- }
- },
- /* @__PURE__ */ h(
- form.InputChoiceHorizontal,
- {
- name: "state",
- label: "Filter",
- converter: amlStateConverter,
- choices: [
- {
- label: "Pending",
- value: AmlExchangeBackend.AmlState.pending
- },
- {
- label: "Frozen",
- value: AmlExchangeBackend.AmlState.frozen
- },
- {
- label: "Normal",
- value: AmlExchangeBackend.AmlState.normal
- }
- ]
- }
- )
- )), /* @__PURE__ */ h("div", { class: "mt-8 flow-root" }, /* @__PURE__ */ h("div", { class: "-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8" }, !records.length ? /* @__PURE__ */ h("div", null, "empty result ") : /* @__PURE__ */ h("div", { class: "inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8" }, /* @__PURE__ */ h(Pagination, null), /* @__PURE__ */ h("table", { class: "min-w-full divide-y divide-gray-300" }, /* @__PURE__ */ h("thead", null, /* @__PURE__ */ h("tr", null, /* @__PURE__ */ h(
- "th",
- {
- scope: "col",
- class: "px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
- },
- "Account Id"
- ), /* @__PURE__ */ h(
- "th",
- {
- scope: "col",
- class: "px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
- },
- "Status"
- ), /* @__PURE__ */ h(
- "th",
- {
- scope: "col",
- class: "px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
- },
- "Threshold"
- ))), /* @__PURE__ */ h("tbody", { class: "divide-y divide-gray-200 bg-white" }, records.map((r3) => {
- return /* @__PURE__ */ h("tr", { class: "hover:bg-gray-100 " }, /* @__PURE__ */ h("td", { class: "whitespace-nowrap px-3 py-5 text-sm text-gray-500 " }, /* @__PURE__ */ h("div", { class: "text-gray-900" }, /* @__PURE__ */ h(
- "a",
- {
- href: Pages.account.url({ account: r3.h_payto }),
- class: "text-indigo-600 hover:text-indigo-900"
- },
- r3.h_payto
- ))), /* @__PURE__ */ h("td", { class: "whitespace-nowrap px-3 py-5 text-sm text-gray-500" }, ((state) => {
- switch (state) {
- case AmlExchangeBackend.AmlState.normal: {
- return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20" }, "Normal");
- }
- case AmlExchangeBackend.AmlState.pending: {
- return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20" }, "Pending");
- }
- case AmlExchangeBackend.AmlState.frozen: {
- return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20" }, "Frozen");
- }
- }
- })(r3.current_state)), /* @__PURE__ */ h("td", { class: "whitespace-nowrap px-3 py-5 text-sm text-gray-900" }, r3.threshold));
- }))), /* @__PURE__ */ h(Pagination, null))))));
-}
-var PeopleIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z" }));
-var HomeIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" }));
-var ChevronRightIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" }));
-var ArrowRightIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3" }));
-function Pagination() {
- return /* @__PURE__ */ h("nav", { class: "flex items-center justify-between px-4 sm:px-0" }, /* @__PURE__ */ h("div", { class: "-mt-px flex w-0 flex-1" }, /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent pr-1 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700"
- },
- /* @__PURE__ */ h(
- "svg",
- {
- class: "mr-3 h-5 w-5 text-gray-400",
- viewBox: "0 0 20 20",
- fill: "currentColor",
- "aria-hidden": "true"
- },
- /* @__PURE__ */ h(
- "path",
- {
- "fill-rule": "evenodd",
- d: "M18 10a.75.75 0 01-.75.75H4.66l2.1 1.95a.75.75 0 11-1.02 1.1l-3.5-3.25a.75.75 0 010-1.1l3.5-3.25a.75.75 0 111.02 1.1l-2.1 1.95h12.59A.75.75 0 0118 10z",
- "clip-rule": "evenodd"
- }
- )
- ),
- "Previous"
- )), /* @__PURE__ */ h("div", { class: "hidden md:-mt-px md:flex" }, /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700"
- },
- "1"
- ), /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500",
- "aria-current": "page"
- },
- "2"
- ), /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700"
- },
- "3"
- ), /* @__PURE__ */ h("span", { class: "inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500" }, "..."), /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700"
- },
- "8"
- ), /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700"
- },
- "9"
- ), /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700"
- },
- "10"
- )), /* @__PURE__ */ h("div", { class: "-mt-px flex w-0 flex-1 justify-end" }, /* @__PURE__ */ h(
- "a",
- {
- href: "#",
- class: "inline-flex items-center border-t-2 border-transparent pl-1 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700"
- },
- "Next",
- /* @__PURE__ */ h(
- "svg",
- {
- class: "ml-3 h-5 w-5 text-gray-400",
- viewBox: "0 0 20 20",
- fill: "currentColor",
- "aria-hidden": "true"
- },
- /* @__PURE__ */ h(
- "path",
- {
- "fill-rule": "evenodd",
- d: "M2 10a.75.75 0 01.75-.75h12.59l-2.1-1.95a.75.75 0 111.02-1.1l3.5 3.25a.75.75 0 010 1.1l-3.5 3.25a.75.75 0 11-1.02-1.1l2.1-1.95H2.75A.75.75 0 012 10z",
- "clip-rule": "evenodd"
- }
- )
- )
- )));
-}
-
-// src/pages/NewFormEntry.tsx
-init_preact_module();
-
-// src/pages/AntiMoneyLaunderingForm.tsx
-init_preact_module();
-
// src/forms/simplest.ts
var v1 = (current) => ({
- versionId: "2023-05-25",
design: [
{
title: "Simple form",
@@ -40912,9 +24720,10 @@ var v1 = (current) => ({
resolutionSection(current)
],
behavior: function formBehavior(v3) {
+ var _a, _b;
return {
- when: {
- disabled: true
+ comment: {
+ help: ((_b = (_a = v3.comment) == null ? void 0 : _a.length) != null ? _b : 0) > 100 ? "keep it short" : ""
},
threshold: {
disabled: v3.state === AmlExchangeBackend.AmlState.frozen
@@ -40932,13 +24741,6 @@ function resolutionSection(current) {
)}`,
fields: [
{
- type: "date",
- props: {
- name: "when",
- label: "Decision Time"
- }
- },
- {
type: "choiceHorizontal",
props: {
name: "state",
@@ -40973,7 +24775,6 @@ function resolutionSection(current) {
// src/forms/902_11e.ts
var v12 = (current) => ({
- versionId: "2023-05-15",
design: [
{
title: "Establishing of the controlling person of operating legal entities and partnerships both not quoted on the stock exchange",
@@ -41011,8 +24812,8 @@ var v12 = (current) => ({
{
type: "array",
props: {
- name: "businessEstablisher",
- label: "Persons",
+ name: "people",
+ label: "People",
required: true,
placeholder: "this is the placeholder",
fields: [
@@ -41063,15 +24864,6 @@ var v12 = (current) => ({
}
]
}
- },
- {
- type: "date",
- props: {
- name: "when",
- pattern: "dd/MM/yyyy",
- label: "Date",
- help: "format 'dd/MM/yyyy'"
- }
}
]
},
@@ -41079,11 +24871,8 @@ var v12 = (current) => ({
],
behavior: function formBehavior(v3) {
return {
- person: {
+ people: {
hidden: v3.declares !== "controlling-in-other-ways" && v3.declares !== "managing-director"
- },
- when: {
- disabled: true
}
};
}
@@ -41091,7 +24880,6 @@ var v12 = (current) => ({
// src/forms/902_12e.ts
var v13 = (current) => ({
- versionId: "2023-05-15",
design: [
{
title: "Foundations",
@@ -41414,15 +25202,6 @@ var v13 = (current) => ({
}
},
{
- type: "date",
- props: {
- name: "when",
- pattern: "dd/MM/yyyy",
- label: "Date",
- help: "format 'dd/MM/yyyy'"
- }
- },
- {
type: "text",
props: {
name: "signature",
@@ -41455,9 +25234,6 @@ var v13 = (current) => ({
}
};
})
- },
- when: {
- disabled: true
}
};
}
@@ -41465,7 +25241,6 @@ var v13 = (current) => ({
// src/forms/902_13e.ts
var v14 = (current) => ({
- versionId: "2023-05-15",
design: [
{
title: "Declaration for trusts",
@@ -41554,12 +25329,12 @@ var v14 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "dateOfBirth",
label: "Date of birth",
- pattern: "dd/MM/yyyy",
- help: "format 'dd/MM/yyyy'"
+ pattern: "dd/MM/yyyy"
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -41570,12 +25345,13 @@ var v14 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "dateOfDeath",
label: "Date of death",
pattern: "dd/MM/yyyy",
- help: "if deceased. format 'dd/MM/yyyy'"
+ // help: "if deceased. format 'dd/MM/yyyy'" as TranslatedString,
+ help: "if deceased'"
}
},
{
@@ -41628,12 +25404,12 @@ var v14 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "dateOfBirth",
label: "Date of birth",
- pattern: "dd/MM/yyyy",
- help: "format 'dd/MM/yyyy'"
+ pattern: "dd/MM/yyyy"
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -41644,12 +25420,13 @@ var v14 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "dateOfDeath",
label: "Date of death",
pattern: "dd/MM/yyyy",
- help: "if deceased. format 'dd/MM/yyyy'"
+ help: "if deceased."
+ // help: "if deceased. format 'dd/MM/yyyy'" as TranslatedString,
}
}
]
@@ -41684,12 +25461,12 @@ var v14 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "dateOfBirth",
label: "Date of birth",
- pattern: "dd/MM/yyyy",
- help: "format 'dd/MM/yyyy'"
+ pattern: "dd/MM/yyyy"
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -41860,15 +25637,6 @@ var v14 = (current) => ({
}
},
{
- type: "date",
- props: {
- name: "when",
- label: "Date",
- pattern: "dd/MM/yyyy",
- help: "format 'dd/MM/yyyy'"
- }
- },
- {
type: "text",
props: {
name: "signature",
@@ -41911,9 +25679,6 @@ var v14 = (current) => ({
}
};
})
- },
- when: {
- disabled: true
}
};
}
@@ -41921,7 +25686,6 @@ var v14 = (current) => ({
// src/forms/902_15e.ts
var v15 = (current) => ({
- versionId: "2023-05-15",
design: [
{
title: "Information on life insurance policies with separately managed accounts/securities accounts",
@@ -41979,12 +25743,12 @@ var v15 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "holder.dateOfBirth",
label: "Date of birth",
- pattern: "dd/MM/yyyy",
- help: "format 'dd/MM/yyyy'"
+ pattern: "dd/MM/yyyy"
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -42017,12 +25781,12 @@ var v15 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "premiumPayer.dateOfBirth",
label: "Date of birth",
- pattern: "dd/MM/yyyy",
- help: "format 'dd/MM/yyyy'"
+ pattern: "dd/MM/yyyy"
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -42042,15 +25806,6 @@ var v15 = (current) => ({
}
},
{
- type: "date",
- props: {
- name: "when",
- pattern: "dd/MM/yyyy",
- label: "Date",
- help: "format 'dd/MM/yyyy'"
- }
- },
- {
type: "text",
props: {
name: "signature",
@@ -42066,14 +25821,7 @@ var v15 = (current) => ({
]
},
resolutionSection(current)
- ],
- behavior: function formBehavior(v3) {
- return {
- when: {
- disabled: true
- }
- };
- }
+ ]
});
// src/forms/index.ts
@@ -42216,31 +25964,8 @@ var currencyList = [
// src/forms/902_1e.ts
var v16 = (current) => ({
- versionId: "2023-05-15",
design: [
{
- title: "This form was completed by",
- description: "The customer has to be identified on entering into a permanent business relationship or on concluding a cash transaction, which meets the according threshold.",
- fields: [
- {
- type: "text",
- props: {
- name: "fullName",
- label: "Full name"
- }
- },
- {
- type: "date",
- props: {
- name: "when",
- pattern: "dd/MM/yyyy",
- label: "Date",
- help: "format 'dd/MM/yyyy'"
- }
- }
- ]
- },
- {
title: "Information on customer",
description: "The customer is the person with whom the member concludes the contract with regard to the financial service provided (civil law). Does the member act as director of a domiciliary company, this domiciliary company is the customer.",
fields: [
@@ -42293,11 +26018,12 @@ var v16 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "naturalCustomer.dateOfBirth",
label: "Date of birth",
required: true
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -42446,12 +26172,12 @@ var v16 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "dateOfBirth",
label: "Date of birth",
- required: true,
- help: "format 'dd/MM/yyyy'"
+ required: true
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -42521,12 +26247,12 @@ var v16 = (current) => ({
title: "Acceptance of business relationship",
fields: [
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "acceptance.when",
pattern: "dd/MM/yyyy",
- label: "Date (conclusion of contract)",
- help: "format 'dd/MM/yyyy'"
+ label: "Date (conclusion of contract)"
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -42710,9 +26436,6 @@ var v16 = (current) => ({
fullName: {
disabled: true
},
- when: {
- disabled: true
- },
businessEstablisher: {
elements: ((_a = v3.businessEstablisher) != null ? _a : []).map((be) => {
return {
@@ -42802,8 +26525,492 @@ var v16 = (current) => ({
// src/forms/902_4e.ts
init_preact_module();
+
+// src/pages/Cases.tsx
+init_preact_module();
+init_hooks_module();
+
+// src/hooks/useCases.ts
+init_hooks_module();
+var useSWR3 = useSWR;
+var PAGE_SIZE = 10;
+function useCases(state) {
+ const officer2 = useOfficer();
+ const session = officer2.state === "ready" ? officer2.account : void 0;
+ const { api } = useExchangeApiContext();
+ const [offset, setOffset] = p3();
+ function fetcher(_0) {
+ return __async(this, arguments, function* ([officer3, state2, offset2]) {
+ return yield api.getDecisionsByState(officer3, state2, {
+ order: "asc",
+ offset: offset2,
+ limit: PAGE_SIZE + 1
+ });
+ });
+ }
+ const { data, error: error2 } = useSWR3(
+ !session ? void 0 : [session, state, offset],
+ fetcher
+ );
+ const isLastPage = data && data.type === "ok" && data.body.records.length <= PAGE_SIZE;
+ const isFirstPage = !offset;
+ const pagination = {
+ isLastPage,
+ isFirstPage,
+ loadMore: () => {
+ if (isLastPage || (data == null ? void 0 : data.type) !== "ok")
+ return;
+ const list = data.body.records;
+ setOffset(String(list[list.length - 1].rowid));
+ },
+ reset: () => {
+ setOffset(void 0);
+ }
+ };
+ if (!session) {
+ return {
+ data: {
+ type: "fail",
+ case: "unauthorized",
+ detail: {}
+ }
+ };
+ }
+ if (data) {
+ if (data.type === "fail") {
+ return { data };
+ }
+ const records = isLastPage ? data.body.records : removeLastElement(data.body.records);
+ return { data: { type: "ok", body: { records } }, pagination };
+ }
+ if (error2) {
+ return error2;
+ }
+ return void 0;
+}
+var example12 = {
+ records: [
+ {
+ current_state: 0,
+ h_payto: "QWEQWEQWEQWEWQE",
+ rowid: 1,
+ threshold: "USD 100"
+ },
+ {
+ current_state: 1,
+ h_payto: "ASDASDASD",
+ rowid: 1,
+ threshold: "USD 100"
+ },
+ {
+ current_state: 2,
+ h_payto: "ZXCZXCZXCXZC",
+ rowid: 1,
+ threshold: "USD 1000"
+ },
+ {
+ current_state: 0,
+ h_payto: "QWEQWEQWEQWEWQE",
+ rowid: 1,
+ threshold: "USD 100"
+ },
+ {
+ current_state: 1,
+ h_payto: "ASDASDASD",
+ rowid: 1,
+ threshold: "USD 100"
+ },
+ {
+ current_state: 2,
+ h_payto: "ZXCZXCZXCXZC",
+ rowid: 1,
+ threshold: "USD 1000"
+ }
+ ].map((e5, idx) => {
+ e5.rowid = idx;
+ e5.threshold = `${e5.threshold}${idx}`;
+ return e5;
+ })
+};
+function removeLastElement(list) {
+ if (list.length === 0) {
+ return list;
+ }
+ return list.slice(0, -1);
+}
+
+// src/pages/Officer.tsx
+init_preact_module();
+
+// src/pages/HandleAccountNotReady.tsx
+init_preact_module();
+
+// src/pages/CreateAccount.tsx
+init_preact_module();
+function CreateAccount({
+ onNewAccount
+}) {
+ const { i18n: i18n2 } = useTranslationContext();
+ const Form = createNewForm();
+ const [settings] = useSettings();
+ return /* @__PURE__ */ h("div", { class: "flex min-h-full flex-col " }, /* @__PURE__ */ h("div", { class: "sm:mx-auto sm:w-full sm:max-w-md" }, /* @__PURE__ */ h("h2", { class: "mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900" }, /* @__PURE__ */ h(i18n2.Translate, null, "Create account"))), /* @__PURE__ */ h("div", { class: "mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] " }, /* @__PURE__ */ h("div", { class: "bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12" }, /* @__PURE__ */ h(
+ Form.Provider,
+ {
+ computeFormState: (v3) => {
+ return {
+ password: {
+ error: !v3.password ? i18n2.str`required` : settings.allowInsecurePassword ? void 0 : v3.password.length < 8 ? i18n2.str`should have at least 8 characters` : !v3.password.match(/[a-z]/) && v3.password.match(/[A-Z]/) ? i18n2.str`should have lowercase and uppercase characters` : !v3.password.match(/\d/) ? i18n2.str`should have numbers` : !v3.password.match(/[^a-zA-Z\d]/) ? i18n2.str`should have at least one character which is not a number or letter` : void 0
+ },
+ repeat: {
+ error: !v3.repeat ? i18n2.str`required` : v3.repeat !== v3.password ? i18n2.str`doesn't match` : void 0
+ }
+ };
+ },
+ onSubmit: (v3, s6) => __async(this, null, function* () {
+ var _a, _b, _c;
+ const error2 = (_c = (_a = s6 == null ? void 0 : s6.password) == null ? void 0 : _a.error) != null ? _c : (_b = s6 == null ? void 0 : s6.repeat) == null ? void 0 : _b.error;
+ if (error2) {
+ notifyError(
+ "Can't create account",
+ error2
+ );
+ } else {
+ onNewAccount(v3.password);
+ }
+ })
+ },
+ /* @__PURE__ */ h("div", { class: "mb-4" }, /* @__PURE__ */ h(
+ Form.InputLine,
+ {
+ label: "Password",
+ name: "password",
+ type: "password",
+ help: settings.allowInsecurePassword ? i18n2.str`short password are insecure, turn off insecure password in settings` : i18n2.str`lower and upper case letters, number and special character`,
+ required: true
+ }
+ )),
+ /* @__PURE__ */ h("div", { class: "mb-4" }, /* @__PURE__ */ h(
+ Form.InputLine,
+ {
+ label: "Repeat password",
+ name: "repeat",
+ type: "password",
+ required: true
+ }
+ )),
+ /* @__PURE__ */ h("div", { class: "mt-8" }, /* @__PURE__ */ h(
+ "button",
+ {
+ type: "submit",
+ class: "flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Create")
+ ))
+ ))));
+}
+
+// src/pages/UnlockAccount.tsx
+init_preact_module();
+function UnlockAccount({
+ onAccountUnlocked,
+ onRemoveAccount
+}) {
+ const { i18n: i18n2 } = useTranslationContext();
+ const Form = createNewForm();
+ return /* @__PURE__ */ h("div", { class: "flex min-h-full flex-col " }, /* @__PURE__ */ h("div", { class: "sm:mx-auto sm:w-full sm:max-w-md" }, /* @__PURE__ */ h("h1", { class: "mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900" }, /* @__PURE__ */ h(i18n2.Translate, null, "Account locked")), /* @__PURE__ */ h("p", { class: "mt-6 text-lg leading-8 text-gray-600" }, /* @__PURE__ */ h(i18n2.Translate, null, "Your account is normally locked anytime you reload. To unlock type your password again."))), /* @__PURE__ */ h("div", { class: "mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] " }, /* @__PURE__ */ h("div", { class: "bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12" }, /* @__PURE__ */ h(
+ Form.Provider,
+ {
+ onSubmit: (v3) => __async(this, null, function* () {
+ try {
+ yield onAccountUnlocked(v3.password);
+ notifyInfo("Account unlocked");
+ } catch (e5) {
+ if (e5 instanceof UnwrapKeyError) {
+ notifyError(
+ "Could not unlock account",
+ e5.message
+ );
+ } else {
+ throw e5;
+ }
+ }
+ })
+ },
+ /* @__PURE__ */ h("div", { class: "mb-4" }, /* @__PURE__ */ h(
+ Form.InputLine,
+ {
+ label: "Password",
+ name: "password",
+ type: "password",
+ required: true
+ }
+ )),
+ /* @__PURE__ */ h("div", { class: "mt-8" }, /* @__PURE__ */ h(
+ "button",
+ {
+ type: "submit",
+ class: "flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Unlock")
+ ))
+ )), /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ onClick: () => {
+ onRemoveAccount();
+ },
+ class: "m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 "
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Forget account")
+ )));
+}
+
+// src/pages/HandleAccountNotReady.tsx
+function HandleAccountNotReady({
+ officer: officer2
+}) {
+ if (officer2.state === "not-found") {
+ return /* @__PURE__ */ h(
+ CreateAccount,
+ {
+ onNewAccount: (password) => {
+ officer2.create(password);
+ }
+ }
+ );
+ }
+ if (officer2.state === "locked") {
+ return /* @__PURE__ */ h(
+ UnlockAccount,
+ {
+ onRemoveAccount: () => {
+ officer2.forget();
+ },
+ onAccountUnlocked: (pwd) => __async(this, null, function* () {
+ yield officer2.tryUnlock(pwd);
+ })
+ }
+ );
+ }
+ assertUnreachable(officer2);
+}
+
+// src/settings.ts
+var defaultSettings2 = {};
+var uiSettings = "talerExchangeAmlSettings" in globalThis ? globalThis.talerExchangeAmlSettings : defaultSettings2;
+
+// src/hooks/useBackend.ts
+init_hooks_module();
+function getInitialBackendBaseURL() {
+ const overrideUrl = typeof localStorage !== "undefined" ? localStorage.getItem("exchange-base-url") : void 0;
+ let result;
+ if (!overrideUrl) {
+ if (!uiSettings.backendBaseURL) {
+ console.error(
+ "ERROR: backendBaseURL was overridden by a setting file and missing. Setting value to 'window.origin'"
+ );
+ result = typeof window !== "undefined" ? window.origin : "localhost";
+ } else {
+ result = uiSettings.backendBaseURL;
+ }
+ } else {
+ result = overrideUrl;
+ }
+ try {
+ return canonicalizeBaseUrl(result);
+ } catch (e5) {
+ return canonicalizeBaseUrl(window.origin);
+ }
+}
+
+// src/pages/Officer.tsx
+function Officer() {
+ var _a;
+ const officer2 = useOfficer();
+ const { i18n: i18n2 } = useTranslationContext();
+ if (officer2.state !== "ready") {
+ return /* @__PURE__ */ h(HandleAccountNotReady, { officer: officer2 });
+ }
+ const url = new URL(getInitialBackendBaseURL());
+ const signupEmail = (_a = uiSettings.signupEmail) != null ? _a : `aml-signup@${url.hostname}`;
+ return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("h1", { class: "my-2 text-3xl font-bold tracking-tight text-gray-900 " }, /* @__PURE__ */ h(i18n2.Translate, null, "Public key")), /* @__PURE__ */ h("div", { class: "max-w-xl text-base leading-7 text-gray-700 lg:max-w-lg" }, /* @__PURE__ */ h("p", { class: "mt-6 font-mono break-all" }, officer2.account.id)), /* @__PURE__ */ h("p", null, /* @__PURE__ */ h(
+ "a",
+ {
+ href: `mailto:${signupEmail}?subject=${encodeURIComponent("Request AML signup")}&body=${encodeURIComponent(`I want my AML account
+
+
+PubKey: ${officer2.account.id}`)}`,
+ target: "_blank",
+ rel: "noreferrer",
+ class: "m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700"
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Request account activation")
+ )), /* @__PURE__ */ h("p", null, /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ onClick: () => {
+ officer2.lock();
+ },
+ class: "m-4 block rounded-md border-0 bg-gray-200 px-3 py-2 text-center text-sm text-black shadow-sm "
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Lock account")
+ )), /* @__PURE__ */ h("p", null, /* @__PURE__ */ h(
+ "button",
+ {
+ type: "button",
+ onClick: () => {
+ officer2.forget();
+ },
+ class: "m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 "
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Forget account")
+ )));
+}
+
+// src/pages/Cases.tsx
+function CasesUI({ records, filter, onChangeFilter, onFirstPage, onNext }) {
+ const { i18n: i18n2 } = useTranslationContext();
+ const form = createNewForm();
+ return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("div", { class: "sm:flex sm:items-center" }, /* @__PURE__ */ h("div", { class: "px-2 sm:flex-auto" }, /* @__PURE__ */ h("h1", { class: "text-base font-semibold leading-6 text-gray-900" }, /* @__PURE__ */ h(i18n2.Translate, null, "Cases")), /* @__PURE__ */ h("p", { class: "mt-2 text-sm text-gray-700 w-80" }, /* @__PURE__ */ h(i18n2.Translate, null, "A list of all the account with the status"))), /* @__PURE__ */ h("div", { class: "px-2" }, /* @__PURE__ */ h(
+ form.Provider,
+ {
+ initial: { state: filter },
+ onUpdate: (v3) => {
+ var _a;
+ onChangeFilter((_a = v3.state) != null ? _a : filter);
+ },
+ onSubmit: (v3) => {
+ }
+ },
+ /* @__PURE__ */ h(
+ form.InputChoiceHorizontal,
+ {
+ name: "state",
+ label: i18n2.str`Filter`,
+ converter: amlStateConverter,
+ choices: [
+ {
+ label: "Pending",
+ value: AmlExchangeBackend.AmlState.pending
+ },
+ {
+ label: "Frozen",
+ value: AmlExchangeBackend.AmlState.frozen
+ },
+ {
+ label: "Normal",
+ value: AmlExchangeBackend.AmlState.normal
+ }
+ ]
+ }
+ )
+ ))), /* @__PURE__ */ h("div", { class: "mt-8 flow-root" }, /* @__PURE__ */ h("div", { class: "overflow-x-auto" }, !records.length ? /* @__PURE__ */ h("div", null, "empty result ") : /* @__PURE__ */ h("div", { class: "inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8" }, /* @__PURE__ */ h("table", { class: "min-w-full divide-y divide-gray-300" }, /* @__PURE__ */ h("thead", null, /* @__PURE__ */ h("tr", null, /* @__PURE__ */ h(
+ "th",
+ {
+ scope: "col",
+ class: "px-3 py-3.5 text-left text-sm font-semibold text-gray-900 w-80"
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Account Id")
+ ), /* @__PURE__ */ h(
+ "th",
+ {
+ scope: "col",
+ class: "px-3 py-3.5 text-left text-sm font-semibold text-gray-900 w-40"
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Status")
+ ), /* @__PURE__ */ h(
+ "th",
+ {
+ scope: "col",
+ class: "sm:hidden px-3 py-3.5 text-left text-sm font-semibold text-gray-900 w-40"
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Threshold")
+ ))), /* @__PURE__ */ h("tbody", { class: "divide-y divide-gray-200 bg-white" }, records.map((r3) => {
+ return /* @__PURE__ */ h("tr", { class: "hover:bg-gray-100 " }, /* @__PURE__ */ h("td", { class: "whitespace-nowrap px-3 py-5 text-sm text-gray-500 " }, /* @__PURE__ */ h("div", { class: "text-gray-900" }, /* @__PURE__ */ h(
+ "a",
+ {
+ href: Pages.account.url({ account: r3.h_payto }),
+ class: "text-indigo-600 hover:text-indigo-900"
+ },
+ r3.h_payto.substring(0, 16),
+ "..."
+ ))), /* @__PURE__ */ h("td", { class: "whitespace-nowrap px-3 py-5 text-sm text-gray-500" }, ((state) => {
+ switch (state) {
+ case AmlExchangeBackend.AmlState.normal: {
+ return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20" }, "Normal");
+ }
+ case AmlExchangeBackend.AmlState.pending: {
+ return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20" }, "Pending");
+ }
+ case AmlExchangeBackend.AmlState.frozen: {
+ return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20" }, "Frozen");
+ }
+ }
+ })(r3.current_state)), /* @__PURE__ */ h("td", { class: "whitespace-nowrap px-3 py-5 text-sm text-gray-900" }, r3.threshold));
+ }))), /* @__PURE__ */ h(Pagination, { onFirstPage, onNext })))));
+}
+function Cases() {
+ const [stateFilter, setStateFilter] = p3(AmlExchangeBackend.AmlState.pending);
+ const list = useCases(stateFilter);
+ if (!list) {
+ return /* @__PURE__ */ h(Loading, null);
+ }
+ if (list instanceof TalerError) {
+ return /* @__PURE__ */ h(ErrorLoading, { error: list });
+ }
+ if (list.data.type === "fail") {
+ switch (list.data.case) {
+ case "unauthorized":
+ return /* @__PURE__ */ h(Officer, null);
+ case "officer-not-found":
+ return /* @__PURE__ */ h(Officer, null);
+ case "officer-disabled":
+ return /* @__PURE__ */ h(Officer, null);
+ default:
+ assertUnreachable(list.data);
+ }
+ }
+ const { records } = list.data.body;
+ return /* @__PURE__ */ h(
+ CasesUI,
+ {
+ records,
+ onFirstPage: list.pagination && !list.pagination.isFirstPage ? list.pagination.reset : void 0,
+ onNext: list.pagination && !list.pagination.isLastPage ? list.pagination.loadMore : void 0,
+ filter: stateFilter,
+ onChangeFilter: setStateFilter
+ }
+ );
+}
+var PeopleIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z" }));
+var HomeIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" }));
+var ChevronRightIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" }));
+var ArrowRightIcon = () => /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3" }));
+function Pagination({ onFirstPage, onNext }) {
+ const { i18n: i18n2 } = useTranslationContext();
+ return /* @__PURE__ */ h("nav", { class: "flex items-center justify-between border-t border-gray-200 bg-white px-4 py-3 sm:px-6 rounded-lg", "aria-label": "Pagination" }, /* @__PURE__ */ h("div", { class: "flex flex-1 justify-between sm:justify-end" }, /* @__PURE__ */ h(
+ "button",
+ {
+ class: "relative disabled:bg-gray-100 disabled:text-gray-500 inline-flex items-center rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus-visible:outline-offset-0",
+ disabled: !onFirstPage,
+ onClick: onFirstPage
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "First page")
+ ), /* @__PURE__ */ h(
+ "button",
+ {
+ class: "relative disabled:bg-gray-100 disabled:text-gray-500 ml-3 inline-flex items-center rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus-visible:outline-offset-0",
+ disabled: !onNext,
+ onClick: onNext
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Next")
+ )));
+}
+
+// src/forms/902_4e.ts
var v17 = (current) => ({
- versionId: "2023-05-15",
design: [
{
title: "Risk Profile AMLA",
@@ -42827,27 +27034,6 @@ var v17 = (current) => ({
]
},
{
- title: "This form was completed by",
- fields: [
- {
- type: "text",
- props: {
- label: "Full name",
- name: "fullName"
- }
- },
- {
- type: "date",
- props: {
- name: "when",
- pattern: "dd/MM/yyyy",
- label: "Date",
- help: "format 'dd/MM/yyyy'"
- }
- }
- ]
- },
- {
title: "Evaluation of politically exposed persons (PEP-Check)",
fields: [
{
@@ -42861,7 +27047,8 @@ var v17 = (current) => ({
type: "choiceStacked",
props: {
label: "Foreign PEP",
- tooltip: "Definition see Art. 7 lit. g numeral 1 SRO Regulations",
+ // tooltip:
+ // "Definition see Art. 7 lit. g numeral 1 SRO Regulations" as TranslatedString,
help: "Is the customer, the beneficial owner or the controlling person or authorized representative a foreign PEP or closely related to such a person?",
name: "pep.foreign",
choices: [
@@ -42881,7 +27068,8 @@ var v17 = (current) => ({
type: "choiceStacked",
props: {
label: "Domestic PEP and PEP of International Organizations",
- tooltip: "Definition see Art. 7 lit. g numeral 2 and 3 SRO Regulations ",
+ // tooltip:
+ // "Definition see Art. 7 lit. g numeral 2 and 3 SRO Regulations " as TranslatedString,
help: "Is the customer, the beneficial owner or the controlling person or authorized representative a domestic PEP or PEP in International Organizations or closely related to such a person?",
name: "pep.domestic",
choices: [
@@ -42902,12 +27090,12 @@ var v17 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
label: "The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on",
name: "pep.when",
- pattern: "dd/MM/yyyy",
- placeholder: "dd/MM/yyyy"
+ pattern: "dd/MM/yyyy"
+ // placeholder: "dd/MM/yyyy" as TranslatedString,
}
}
]
@@ -42942,12 +27130,12 @@ var v17 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
label: "The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on",
name: "highRisk.when",
- pattern: "dd/MM/yyyy",
- placeholder: "dd/MM/yyyy"
+ pattern: "dd/MM/yyyy"
+ // placeholder: "dd/MM/yyyy" as TranslatedString,
}
}
]
@@ -43346,12 +27534,12 @@ var v17 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
label: "The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on",
name: "evaluation.when",
- pattern: "dd/MM/yyyy",
- placeholder: "dd/MM/yyyy"
+ pattern: "dd/MM/yyyy"
+ // placeholder: "dd/MM/yyyy" as TranslatedString,
}
}
]
@@ -43464,17 +27652,12 @@ var v17 = (current) => ({
resolutionSection(current)
],
behavior: function formBehavior(v3) {
- return {
- when: {
- disabled: true
- }
- };
+ return {};
}
});
// src/forms/902_5e.ts
var v18 = (current) => ({
- versionId: "2023-05-15",
design: [
{
title: "Customer Profile",
@@ -43487,22 +27670,6 @@ var v18 = (current) => ({
label: "Customer",
help: "Pursuant Identification Form (VQF doc. No. 902.1) numeral 1"
}
- },
- {
- type: "text",
- props: {
- name: "fullName",
- label: "Full name"
- }
- },
- {
- type: "date",
- props: {
- name: "when",
- pattern: "dd/MM/yyyy",
- label: "Date",
- help: "format 'dd/MM/yyyy'"
- }
}
]
},
@@ -43691,9 +27858,6 @@ var v18 = (current) => ({
behavior: function formBehavior(v3) {
var _a;
return {
- when: {
- disabled: true
- },
originOfAssets: {
categoryOther: {
hidden: ((_a = v3.originOfAssets) == null ? void 0 : _a.category) !== "other"
@@ -43705,7 +27869,6 @@ var v18 = (current) => ({
// src/forms/902_9e.ts
var v19 = (current) => ({
- versionId: "2023-05-15",
design: [
{
title: "Declaration of identity of the beneficial owner",
@@ -43718,15 +27881,6 @@ var v19 = (current) => ({
}
},
{
- type: "date",
- props: {
- name: "when",
- pattern: "dd/MM/yyyy",
- label: "Date",
- help: "format 'dd/MM/yyyy'"
- }
- },
- {
type: "caption",
props: {
label: "The contracting partner hereby declares that the person(s) listed below is/are the beneficial owner(s) of the assets involved in the business relationship. If the contracting partner is also the sole beneficial owner of the assets, the contracting partner's detail must be set out below"
@@ -43754,12 +27908,12 @@ var v19 = (current) => ({
}
},
{
- type: "date",
+ type: "absoluteTime",
props: {
name: "dateOfBirth",
label: "Date of birth",
- pattern: "dd/MM/yyyy",
- help: "format 'dd/MM/yyyy'"
+ pattern: "dd/MM/yyyy"
+ // help: "format 'dd/MM/yyyy'" as TranslatedString,
}
},
{
@@ -43803,31 +27957,28 @@ var v19 = (current) => ({
resolutionSection(current)
],
behavior: function formBehavior(v3) {
- return {
- when: {
- disabled: true
- }
- };
+ return {};
}
});
// src/pages/AntiMoneyLaunderingForm.tsx
-function AntiMoneyLaunderingForm({ account: account2, selectedForm, onSubmit }) {
+function AntiMoneyLaunderingForm({ account: account2, formId, onSubmit }) {
const { i18n: i18n2 } = useTranslationContext();
- const showingFrom = allForms[selectedForm].impl;
- const formName = allForms[selectedForm].name;
+ const theForm = allForms.find((v3) => v3.id === formId);
+ if (!theForm) {
+ return /* @__PURE__ */ h("div", null, "form with id ", formId, " not found");
+ }
const { config } = useExchangeApiContext();
const initial2 = {
- fullName: "loggedIn_user_fullname",
when: AbsoluteTime.now(),
state: AmlExchangeBackend.AmlState.pending,
threshold: Amounts.zeroOfCurrency(config.currency)
};
return /* @__PURE__ */ h(
- NiceForm,
+ DefaultForm,
{
initial: initial2,
- form: showingFrom(initial2),
+ form: theForm.impl(initial2),
onUpdate: () => {
},
onSubmit: (formValue) => {
@@ -43836,8 +27987,9 @@ function AntiMoneyLaunderingForm({ account: account2, selectedForm, onSubmit })
const st = formValue.state;
const amount = formValue.threshold;
const justification = {
- index: selectedForm,
- name: formName,
+ id: theForm.id,
+ label: theForm.label,
+ version: theForm.version,
value: formValue
};
onSubmit(justification, st, amount);
@@ -43861,55 +28013,297 @@ function AntiMoneyLaunderingForm({ account: account2, selectedForm, onSubmit })
);
}
var DocumentDuplicateIcon = /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75" }));
+var codecForSimpleFormMetadata = () => buildCodecForObject().property("id", codecOptional(codecForString())).property("version", codecOptional(codecForNumber())).build("SimpleFormMetadata");
+function parseJustification(s6, listOfAllKnownForms) {
+ try {
+ const justification = JSON.parse(s6);
+ const info = codecForSimpleFormMetadata().decode(justification);
+ if (!info.id) {
+ return {
+ type: "fail",
+ case: "id-not-found",
+ detail: {}
+ };
+ }
+ if (!info.version) {
+ return {
+ type: "fail",
+ case: "version-not-found",
+ detail: {}
+ };
+ }
+ const found = listOfAllKnownForms.find((f3) => {
+ return f3.id === info.id && f3.version === info.version;
+ });
+ if (!found) {
+ return {
+ type: "fail",
+ case: "form-not-found",
+ detail: {}
+ };
+ }
+ return {
+ type: "ok",
+ body: {
+ justification,
+ metadata: found
+ }
+ };
+ } catch (e5) {
+ return {
+ type: "fail",
+ case: "not-json",
+ detail: {}
+ };
+ }
+}
var allForms = [
{
- name: "Simple comment",
+ label: "Simple comment",
+ id: "simple_comment",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v1
},
{
- name: "Identification form (902.1e)",
+ label: "Identification form",
+ id: "902.1e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v16
},
{
- name: "Operational legal entity or partnership (902.11e)",
+ label: "Operational legal entity or partnership",
+ id: "902.11e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v12
},
{
- name: "Foundations (902.12e)",
+ label: "Foundations",
+ id: "902.12e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v13
},
{
- name: "Declaration for trusts (902.13e)",
+ label: "Declaration for trusts",
+ id: "902.13e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v14
},
{
- name: "Information on life insurance policies (902.15e)",
+ label: "Information on life insurance policies",
+ id: "902.15e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v15
},
{
- name: "Declaration of beneficial owner (902.9e)",
+ label: "Declaration of beneficial owner",
+ id: "902.9e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v19
},
{
- name: "Customer profile (902.5e)",
+ label: "Customer profile",
+ id: "902.5e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v18
},
{
- name: "Risk profile (902.4e)",
+ label: "Risk profile",
+ id: "902.4e",
+ version: 1,
icon: DocumentDuplicateIcon,
impl: v17
}
];
+// src/pages/CaseDetails.tsx
+function selectSooner(a6, b5) {
+ return AbsoluteTime.cmp(a6.when, b5.when);
+}
+function titleForJustification(op) {
+ if (op.type === "ok") {
+ return op.body.justification.label;
+ }
+ switch (op.case) {
+ case "not-json":
+ return "error: the justification is not a form";
+ case "id-not-found":
+ return "error: justification form's id not found";
+ case "version-not-found":
+ return "error: justification form's version not found";
+ case "form-not-found":
+ return `error: justification form not found`;
+ }
+ assertUnreachable(op.case);
+}
+function getEventsFromAmlHistory(aml, kyc) {
+ const ae = aml.map((a6) => {
+ const just = parseJustification(a6.justification, allForms);
+ return {
+ type: just.type === "ok" ? "aml-form" : "aml-form-error",
+ state: a6.new_state,
+ threshold: Amounts.parseOrThrow(a6.new_threshold),
+ title: titleForJustification(just),
+ metadata: just.type === "ok" ? just.body.metadata : void 0,
+ justification: just.type === "ok" ? just.body.justification : void 0,
+ when: {
+ t_ms: a6.decision_time.t_s === "never" ? "never" : a6.decision_time.t_s * 1e3
+ }
+ };
+ });
+ const ke = kyc.reduce((prev, k6) => {
+ prev.push({
+ type: "kyc-collection",
+ title: "collection",
+ when: AbsoluteTime.fromProtocolTimestamp(k6.collection_time),
+ values: !k6.attributes ? {} : k6.attributes,
+ provider: k6.provider_section
+ });
+ prev.push({
+ type: "kyc-expiration",
+ title: "expiration",
+ when: AbsoluteTime.fromProtocolTimestamp(k6.expiration_time),
+ fields: !k6.attributes ? [] : Object.keys(k6.attributes)
+ });
+ return prev;
+ }, []);
+ return ae.concat(ke).sort(selectSooner);
+}
+function CaseDetails({ account: account2 }) {
+ const [selected, setSelected] = p3(AbsoluteTime.now());
+ const [showForm, setShowForm] = p3();
+ const { i18n: i18n2 } = useTranslationContext();
+ const details = useCaseDetails(account2);
+ if (!details) {
+ return /* @__PURE__ */ h(Loading, null);
+ }
+ if (details instanceof TalerError) {
+ return /* @__PURE__ */ h(ErrorLoading, { error: details });
+ }
+ if (details.type === "fail") {
+ switch (details.case) {
+ case "unauthorized":
+ case "officer-not-found":
+ case "officer-disabled":
+ return /* @__PURE__ */ h("div", null);
+ default:
+ assertUnreachable(details);
+ }
+ }
+ const { aml_history, kyc_attributes } = details.body;
+ const events = getEventsFromAmlHistory(aml_history, kyc_attributes);
+ if (showForm !== void 0) {
+ return /* @__PURE__ */ h(
+ DefaultForm,
+ {
+ readOnly: true,
+ initial: showForm.justification.value,
+ form: showForm.metadata.impl(showForm.justification.value)
+ },
+ /* @__PURE__ */ h("div", { class: "mt-6 flex items-center justify-end gap-x-6" }, /* @__PURE__ */ h(
+ "button",
+ {
+ class: "text-sm font-semibold leading-6 text-gray-900",
+ onClick: () => {
+ setShowForm(void 0);
+ }
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "Cancel")
+ ))
+ );
+ }
+ return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h(
+ "a",
+ {
+ href: Pages.newFormEntry.url({ account: account2 }),
+ class: "m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700"
+ },
+ /* @__PURE__ */ h(i18n2.Translate, null, "New AML form")
+ ), /* @__PURE__ */ h("header", { class: "flex items-center justify-between border-b border-white/5 px-4 py-4 sm:px-6 sm:py-6 lg:px-8" }, /* @__PURE__ */ h("h1", { class: "text-base font-semibold leading-7 text-black" }, /* @__PURE__ */ h(i18n2.Translate, null, "Case history for account ", /* @__PURE__ */ h("span", { title: account2 }, account2.substring(0, 16), "...")))), /* @__PURE__ */ h(ShowTimeline, { history: events, onSelect: (e5) => {
+ switch (e5.type) {
+ case "aml-form": {
+ const { justification, metadata } = e5;
+ setShowForm({ justification, metadata });
+ break;
+ }
+ case "kyc-collection":
+ case "kyc-expiration": {
+ setSelected(e5.when);
+ break;
+ }
+ case "aml-form-error":
+ }
+ } }), selected && /* @__PURE__ */ h(ShowConsolidated, { history: events, until: selected }));
+}
+function AmlStateBadge({ state }) {
+ switch (state) {
+ case AmlExchangeBackend.AmlState.normal: {
+ return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20" }, "Normal");
+ }
+ case AmlExchangeBackend.AmlState.pending: {
+ return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20" }, "Pending");
+ }
+ case AmlExchangeBackend.AmlState.frozen: {
+ return /* @__PURE__ */ h("span", { class: "inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20" }, "Frozen");
+ }
+ }
+ assertUnreachable(state);
+}
+function ShowTimeline({ history: history2, onSelect }) {
+ return /* @__PURE__ */ h("div", { class: "flow-root" }, /* @__PURE__ */ h("ul", { role: "list" }, history2.map((e5, idx) => {
+ const isLast = history2.length - 1 === idx;
+ return /* @__PURE__ */ h(
+ "li",
+ {
+ "data-ok": e5.type !== "aml-form-error",
+ class: "hover:bg-gray-200 p-2 rounded data-[ok=true]:cursor-pointer",
+ onClick: () => {
+ onSelect(e5);
+ }
+ },
+ /* @__PURE__ */ h("div", { class: "relative pb-6" }, !isLast ? /* @__PURE__ */ h(
+ "span",
+ {
+ class: "absolute left-4 top-4 -ml-px h-full w-1 bg-gray-200",
+ "aria-hidden": "true"
+ }
+ ) : void 0, /* @__PURE__ */ h("div", { class: "relative flex space-x-3" }, (() => {
+ switch (e5.type) {
+ case "aml-form-error":
+ case "aml-form": {
+ return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h(AmlStateBadge, { state: e5.state }), /* @__PURE__ */ h("span", { class: "inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 " }, e5.threshold.currency, " ", Amounts.stringifyValue(e5.threshold)));
+ }
+ case "kyc-collection": {
+ return (
+ // <ArrowDownCircleIcon class="h-8 w-8 text-green-700" />
+ /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M9 12.75l3 3m0 0l3-3m-3 3v-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }))
+ );
+ }
+ case "kyc-expiration": {
+ return /* @__PURE__ */ h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "w-6 h-6" }, /* @__PURE__ */ h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z" }));
+ }
+ }
+ assertUnreachable(e5);
+ })(), /* @__PURE__ */ h("div", { class: "flex min-w-0 flex-1 justify-between space-x-4 pt-1.5" }, e5.type === "aml-form" ? /* @__PURE__ */ h(
+ "span",
+ {
+ class: "block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700"
+ },
+ e5.title
+ ) : /* @__PURE__ */ h("p", { class: "text-sm text-gray-900" }, e5.title), /* @__PURE__ */ h("div", { class: "whitespace-nowrap text-right text-sm text-gray-500" }, e5.when.t_ms === "never" ? "never" : /* @__PURE__ */ h("time", { dateTime: format2(e5.when.t_ms, "dd MMM yyyy") }, format2(e5.when.t_ms, "dd MMM yyyy"))))))
+ );
+ })));
+}
+
// src/pages/NewFormEntry.tsx
+init_preact_module();
function NewFormEntry({
account: account2,
type
@@ -43927,15 +28321,11 @@ function NewFormEntry({
if (officer2.state !== "ready") {
return /* @__PURE__ */ h(HandleAccountNotReady, { officer: officer2 });
}
- const selectedForm = Number.parseInt(type != null ? type : "0", 10);
- if (Number.isNaN(selectedForm)) {
- return /* @__PURE__ */ h("div", null, "WHAT! ", type);
- }
return /* @__PURE__ */ h(p2, null, /* @__PURE__ */ h(LocalNotificationBanner, { notification }), /* @__PURE__ */ h(
AntiMoneyLaunderingForm,
{
account: account2,
- selectedForm,
+ formId: type,
onSubmit: (justification, new_state, new_threshold) => __async(this, null, function* () {
const decision = {
justification: JSON.stringify(justification),
@@ -43947,30 +28337,32 @@ function NewFormEntry({
};
yield handleError(() => __async(this, null, function* () {
const resp = yield api.addDecisionDetails(officer2.account, decision);
- if (resp.type === "fail") {
- switch (resp.case) {
- case "unauthorized":
- return notify2({
- type: "error",
- title: i18n2.str`Wrong credentials for "${officer2.account}"`,
- description: resp.detail.hint,
- debug: resp.detail
- });
- case "officer-or-account-not-found":
- return notify2({
- type: "error",
- title: i18n2.str`Officer or account not found`,
- description: resp.detail.hint,
- debug: resp.detail
- });
- case "officer-disabled-or-recent-decision":
- return notify2({
- type: "error",
- title: i18n2.str`Officer disabled or more recent decision was already submitted.`,
- description: resp.detail.hint,
- debug: resp.detail
- });
- }
+ if (resp.type === "ok") {
+ window.location.href = Pages.cases.url;
+ return;
+ }
+ switch (resp.case) {
+ case "unauthorized":
+ return notify2({
+ type: "error",
+ title: i18n2.str`Wrong credentials for "${officer2.account}"`,
+ description: resp.detail.hint,
+ debug: resp.detail
+ });
+ case "officer-or-account-not-found":
+ return notify2({
+ type: "error",
+ title: i18n2.str`Officer or account not found`,
+ description: resp.detail.hint,
+ debug: resp.detail
+ });
+ case "officer-disabled-or-recent-decision":
+ return notify2({
+ type: "error",
+ title: i18n2.str`Officer disabled or more recent decision was already submitted.`,
+ description: resp.detail.hint,
+ debug: resp.detail
+ });
}
}));
})
@@ -43978,14 +28370,14 @@ function NewFormEntry({
));
}
function SelectForm({ account: account2 }) {
- return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("pre", null, "New form for account: ", account2), allForms.map((form, idx) => {
+ return /* @__PURE__ */ h("div", null, /* @__PURE__ */ h("pre", null, "New form for account: ", account2.substring(0, 16), "..."), allForms.map((form, idx) => {
return /* @__PURE__ */ h(
"a",
{
- href: Pages.newFormEntry.url({ account: account2, type: String(idx) }),
+ href: Pages.newFormEntry.url({ account: account2, type: form.id }),
class: "m-4 block rounded-md w-fit border-0 p-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-600"
},
- form.name
+ form.label
);
}));
}
@@ -43993,8 +28385,8 @@ function SelectForm({ account: account2 }) {
// ../../node_modules/.pnpm/@babel+runtime@7.19.4/node_modules/@babel/runtime/helpers/esm/extends.js
function _extends() {
_extends = Object.assign ? Object.assign.bind() : function(target) {
- for (var i4 = 1; i4 < arguments.length; i4++) {
- var source = arguments[i4];
+ for (var i5 = 1; i5 < arguments.length; i5++) {
+ var source = arguments[i5];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
@@ -44011,8 +28403,8 @@ function isAbsolute(pathname) {
return pathname.charAt(0) === "/";
}
function spliceOne(list, index) {
- for (var i4 = index, k5 = i4 + 1, n2 = list.length; k5 < n2; i4 += 1, k5 += 1) {
- list[i4] = list[k5];
+ for (var i5 = index, k6 = i5 + 1, n2 = list.length; k6 < n2; i5 += 1, k6 += 1) {
+ list[i5] = list[k6];
}
list.pop();
}
@@ -44040,15 +28432,15 @@ function resolvePathname(to, from) {
hasTrailingSlash = false;
}
var up = 0;
- for (var i4 = fromParts.length; i4 >= 0; i4--) {
- var part = fromParts[i4];
+ for (var i5 = fromParts.length; i5 >= 0; i5--) {
+ var part = fromParts[i5];
if (part === ".") {
- spliceOne(fromParts, i4);
+ spliceOne(fromParts, i5);
} else if (part === "..") {
- spliceOne(fromParts, i4);
+ spliceOne(fromParts, i5);
up++;
} else if (up) {
- spliceOne(fromParts, i4);
+ spliceOne(fromParts, i5);
up--;
}
}
@@ -44150,11 +28542,11 @@ function createLocation(path, state, key, currentLocation) {
}
try {
location2.pathname = decodeURI(location2.pathname);
- } catch (e4) {
- if (e4 instanceof URIError) {
+ } catch (e5) {
+ if (e5 instanceof URIError) {
throw new URIError('Pathname "' + location2.pathname + '" could not be decoded. This is likely caused by an invalid percent-encoding.');
} else {
- throw e4;
+ throw e5;
}
}
if (key)
@@ -44289,14 +28681,14 @@ function createHashHistory(props) {
}
var transitionManager = createTransitionManager();
function setState(nextState) {
- _extends(history3, nextState);
- history3.length = globalHistory.length;
- transitionManager.notifyListeners(history3.location, history3.action);
+ _extends(history2, nextState);
+ history2.length = globalHistory.length;
+ transitionManager.notifyListeners(history2.location, history2.action);
}
var forceNextPop = false;
var ignorePath = null;
- function locationsAreEqual$$1(a5, b4) {
- return a5.pathname === b4.pathname && a5.search === b4.search && a5.hash === b4.hash;
+ function locationsAreEqual$$1(a6, b5) {
+ return a6.pathname === b5.pathname && a6.search === b5.search && a6.hash === b5.hash;
}
function handleHashChange() {
var path2 = getHashPath();
@@ -44305,7 +28697,7 @@ function createHashHistory(props) {
replaceHashPath(encodedPath2);
} else {
var location2 = getDOMLocation();
- var prevLocation = history3.location;
+ var prevLocation = history2.location;
if (!forceNextPop && locationsAreEqual$$1(prevLocation, location2))
return;
if (ignorePath === createPath(location2))
@@ -44333,7 +28725,7 @@ function createHashHistory(props) {
}
}
function revertPop(fromLocation) {
- var toLocation = history3.location;
+ var toLocation = history2.location;
var toIndex = allPaths.lastIndexOf(createPath(toLocation));
if (toIndex === -1)
toIndex = 0;
@@ -44363,7 +28755,7 @@ function createHashHistory(props) {
function push(path2, state) {
false ? tiny_warning_esm_default(state === void 0, "Hash history cannot push state; it is ignored") : void 0;
var action = "PUSH";
- var location2 = createLocation(path2, void 0, void 0, history3.location);
+ var location2 = createLocation(path2, void 0, void 0, history2.location);
transitionManager.confirmTransitionTo(location2, action, getUserConfirmation, function(ok) {
if (!ok)
return;
@@ -44373,7 +28765,7 @@ function createHashHistory(props) {
if (hashChanged) {
ignorePath = path3;
pushHashPath(encodedPath2);
- var prevIndex = allPaths.lastIndexOf(createPath(history3.location));
+ var prevIndex = allPaths.lastIndexOf(createPath(history2.location));
var nextPaths = allPaths.slice(0, prevIndex + 1);
nextPaths.push(path3);
allPaths = nextPaths;
@@ -44390,7 +28782,7 @@ function createHashHistory(props) {
function replace(path2, state) {
false ? tiny_warning_esm_default(state === void 0, "Hash history cannot replace state; it is ignored") : void 0;
var action = "REPLACE";
- var location2 = createLocation(path2, void 0, void 0, history3.location);
+ var location2 = createLocation(path2, void 0, void 0, history2.location);
transitionManager.confirmTransitionTo(location2, action, getUserConfirmation, function(ok) {
if (!ok)
return;
@@ -44401,7 +28793,7 @@ function createHashHistory(props) {
ignorePath = path3;
replaceHashPath(encodedPath2);
}
- var prevIndex = allPaths.indexOf(createPath(history3.location));
+ var prevIndex = allPaths.indexOf(createPath(history2.location));
if (prevIndex !== -1)
allPaths[prevIndex] = path3;
setState({
@@ -44455,7 +28847,7 @@ function createHashHistory(props) {
unlisten();
};
}
- var history3 = {
+ var history2 = {
length: globalHistory.length,
action: "POP",
location: initialLocation,
@@ -44468,13 +28860,20 @@ function createHashHistory(props) {
block,
listen
};
- return history3;
+ return history2;
}
// src/route.ts
init_preact_module();
init_hooks_module();
-var history2 = createHashHistory();
+var nullChangeListener = { onChange: () => () => {
+} };
+var Context4 = B(nullChangeListener);
+var usePathChangeContext = () => q2(Context4);
+function HashPathProvider({ children }) {
+ const history2 = createHashHistory();
+ return h(Context4.Provider, { value: { onChange: history2.listen }, children }, children);
+}
function replaceAll(pattern, vars, values) {
let result = pattern;
for (const v3 in vars) {
@@ -44500,60 +28899,62 @@ function pageDefinition(pattern) {
return f3;
}
function Router({
- pageList: pageList3,
+ pageList: pageList2,
onNotFound
}) {
- const current = useCurrentLocation(pageList3);
+ const current = useCurrentLocation(pageList2);
if (current !== void 0) {
return h(current.page.view, current.values);
}
return onNotFound();
}
-function useCurrentLocation(pageList3) {
- const [currentLocation, setCurrentLocation] = p3();
- function doSync(path, params) {
- let result;
- for (let idx = 0; idx < pageList3.length; idx++) {
- const page = pageList3[idx];
- if (typeof page.url === "string") {
- if (page.url === path) {
- const values = {};
- params.forEach((v3, k5) => {
- values[k5] = v3;
- });
- result = { page, values, path };
- break;
- }
- } else {
- const values = doestUrlMatchToRoute(path, page.url.pattern);
- if (values !== void 0) {
- params.forEach((v3, k5) => {
- values[k5] = v3;
- });
- result = { page, values, path };
- break;
- }
- }
- }
- setCurrentLocation(result);
- }
+function useCurrentLocation(pageList2) {
+ const [currentLocation, setCurrentLocation] = p3(null);
+ const path = usePathChangeContext();
h2(() => {
- doSync(window.location.hash, new URLSearchParams(window.location.search));
- return history2.listen(() => {
- doSync(window.location.hash, new URLSearchParams(window.location.search));
+ return path.onChange(() => {
+ const result = doSync(window.location.hash, new URLSearchParams(window.location.search), pageList2);
+ setCurrentLocation(result);
});
}, []);
+ if (currentLocation === null) {
+ return doSync(window.location.hash, new URLSearchParams(window.location.search), pageList2);
+ }
return currentLocation;
}
function useChangeLocation() {
const [location2, setLocation] = p3(window.location.hash);
+ const path = usePathChangeContext();
h2(() => {
- return history2.listen(() => {
+ return path.onChange(() => {
setLocation(window.location.hash);
});
}, []);
return location2;
}
+function doSync(path, params, pageList2) {
+ for (let idx = 0; idx < pageList2.length; idx++) {
+ const page = pageList2[idx];
+ if (typeof page.url === "string") {
+ if (page.url === path) {
+ const values = {};
+ params.forEach((v3, k6) => {
+ values[k6] = v3;
+ });
+ return { page, values, path };
+ }
+ } else {
+ const values = doestUrlMatchToRoute(path, page.url.pattern);
+ if (values !== void 0) {
+ params.forEach((v3, k6) => {
+ values[k6] = v3;
+ });
+ return { page, values, path };
+ }
+ }
+ }
+ return void 0;
+}
function doestUrlMatchToRoute(url, route) {
const paramsPattern = /(?:\?([^#]*))?$/;
const params = url.match(paramsPattern);
@@ -44561,32 +28962,32 @@ function doestUrlMatchToRoute(url, route) {
const result = {};
if (params && params[1]) {
const paramList = params[1].split("&");
- for (let i4 = 0; i4 < paramList.length; i4++) {
- const idx = paramList[i4].indexOf("=");
- const name = paramList[i4].substring(0, idx);
- const value = paramList[i4].substring(idx + 1);
+ for (let i5 = 0; i5 < paramList.length; i5++) {
+ const idx = paramList[i5].indexOf("=");
+ const name = paramList[i5].substring(0, idx);
+ const value = paramList[i5].substring(idx + 1);
result[decodeURIComponent(name)] = decodeURIComponent(value);
}
}
const urlSeg = urlWithoutParams.split("/");
const routeSeg = route.split("/");
let max = Math.max(urlSeg.length, routeSeg.length);
- for (let i4 = 0; i4 < max; i4++) {
- if (routeSeg[i4] && routeSeg[i4].charAt(0) === ":") {
- const param = routeSeg[i4].replace(/(^:|[+*?]+$)/g, "");
- const flags = (routeSeg[i4].match(/[+*?]+$/) || EMPTY)[0] || "";
+ for (let i5 = 0; i5 < max; i5++) {
+ if (routeSeg[i5] && routeSeg[i5].charAt(0) === ":") {
+ const param = routeSeg[i5].replace(/(^:|[+*?]+$)/g, "");
+ const flags = (routeSeg[i5].match(/[+*?]+$/) || EMPTY)[0] || "";
const plus = ~flags.indexOf("+");
const star = ~flags.indexOf("*");
- const val = urlSeg[i4] || "";
+ const val = urlSeg[i5] || "";
if (!val && !star && (flags.indexOf("?") < 0 || plus)) {
return void 0;
}
result[param] = decodeURIComponent(val);
if (plus || star) {
- result[param] = urlSeg.slice(i4).map(decodeURIComponent).join("/");
+ result[param] = urlSeg.slice(i5).map(decodeURIComponent).join("/");
break;
}
- } else if (routeSeg[i4] !== urlSeg[i4]) {
+ } else if (routeSeg[i5] !== urlSeg[i5]) {
return void 0;
}
}
@@ -44627,14 +29028,13 @@ var Pages = {
};
// src/Dashboard.tsx
-var GIT_HASH = true ? "cb2059d73e9b94d7b4179680017b962d12fcf790" : void 0;
+var GIT_HASH = true ? "609ad091e332e4150b4d472284e5a9518cbe7571" : void 0;
var VERSION = true ? "0.1.0" : void 0;
var versionText = VERSION ? GIT_HASH ? `v${VERSION} (${GIT_HASH.substring(0, 8)})` : VERSION : "";
-var pageList = Object.values(Pages);
function ExchangeAmlFrame({
children
}) {
- var _a, _b;
+ var _a;
const { i18n: i18n2 } = useTranslationContext();
const [error2, resetError] = P2();
h2(() => {
@@ -44679,10 +29079,10 @@ function ExchangeAmlFrame({
/* @__PURE__ */ h("span", { "aria-hidden": "true", "data-enabled": isOn, class: "translate-x-5 data-[enabled=false]:translate-x-0 pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out" })
)));
})))
- )), /* @__PURE__ */ h(GlobalNotificationsBanner, null), /* @__PURE__ */ h("main", { class: "-mt-32 flex grow " }, officer2.state !== "ready" ? void 0 : /* @__PURE__ */ h(Navigation, null), /* @__PURE__ */ h("div", { class: "flex mx-auto my-4" }, /* @__PURE__ */ h("div", { class: "rounded-lg bg-white px-5 py-6 shadow sm:px-6" }, children))), /* @__PURE__ */ h(
+ )), /* @__PURE__ */ h(GlobalNotificationsBanner, null), /* @__PURE__ */ h("div", { class: "-mt-32 flex grow " }, officer2.state !== "ready" ? void 0 : /* @__PURE__ */ h(Navigation, null), /* @__PURE__ */ h("div", { class: "flex mx-auto my-4" }, /* @__PURE__ */ h("main", { class: "rounded-lg bg-white px-5 py-6 shadow" }, children))), /* @__PURE__ */ h(
Footer,
{
- testingUrl: (_b = localStorage.getItem("exchange-base-url")) != null ? _b : void 0,
+ testingUrlKey: "exchange-base-url",
GIT_HASH,
VERSION
}
@@ -44690,39 +29090,39 @@ function ExchangeAmlFrame({
}
function Navigation() {
const { i18n: i18n2 } = useTranslationContext();
- const pageList3 = [
+ const pageList2 = [
Pages.officer,
Pages.cases
];
const location2 = useChangeLocation();
- return /* @__PURE__ */ h("div", { class: "flex gap-y-5 w-48 bg-indigo-600 divide-y rounded-r-lg divide-cyan-800 overflow-y-auto overflow-x-clip" }, /* @__PURE__ */ h("nav", { class: "flex flex-1 flex-col mx-4 mt-4 mb-2" }, /* @__PURE__ */ h("ul", { role: "list", class: "flex flex-1 flex-col gap-y-7" }, /* @__PURE__ */ h("li", null, /* @__PURE__ */ h("ul", { role: "list", class: "-mx-2 space-y-1" }, pageList3.map((p4) => {
+ return /* @__PURE__ */ h("div", { class: "hidden sm:block min-w-min bg-indigo-600 divide-y rounded-r-lg divide-cyan-800 overflow-y-auto overflow-x-clip" }, /* @__PURE__ */ h("nav", { class: "flex flex-1 flex-col mx-4 mt-4 mb-2" }, /* @__PURE__ */ h("ul", { role: "list", class: "flex flex-1 flex-col gap-y-7" }, /* @__PURE__ */ h("li", null, /* @__PURE__ */ h("ul", { role: "list", class: "-mx-2 space-y-1" }, pageList2.map((p4) => {
return /* @__PURE__ */ h("li", null, /* @__PURE__ */ h(
"a",
{
href: p4.url,
"data-selected": location2 == p4.url,
- class: "data-[selected=true]:bg-indigo-700 data-[selected=true]:text-white text-indigo-200 hover:text-white hover:bg-indigo-700 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
+ class: "data-[selected=true]:bg-indigo-700 pr-4 data-[selected=true]:text-white text-indigo-200 hover:text-white hover:bg-indigo-700 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
},
p4.Icon && /* @__PURE__ */ h(p4.Icon, null),
- p4.name
+ /* @__PURE__ */ h("span", { class: "hidden md:inline" }, p4.name)
));
}))))));
}
// src/App.tsx
-var pageList2 = Object.values(Pages);
+var pageList = Object.values(Pages);
function App() {
const baseUrl = getInitialBackendBaseURL();
- return /* @__PURE__ */ h(TranslationProvider, { source: {} }, /* @__PURE__ */ h(ExchangeApiProvider, { baseUrl, frameOnError: ExchangeAmlFrame }, /* @__PURE__ */ h(ExchangeAmlFrame, null, /* @__PURE__ */ h(
+ return /* @__PURE__ */ h(TranslationProvider, { source: {} }, /* @__PURE__ */ h(ExchangeApiProvider, { baseUrl, frameOnError: ExchangeAmlFrame }, /* @__PURE__ */ h(HashPathProvider, null, /* @__PURE__ */ h(ExchangeAmlFrame, null, /* @__PURE__ */ h(
Router,
{
- pageList: pageList2,
+ pageList,
onNotFound: () => {
window.location.href = Pages.cases.url;
return /* @__PURE__ */ h("div", null, "not found");
}
}
- ))));
+ )))));
}
// src/index.tsx
@@ -44731,19 +29131,6 @@ var app = document.getElementById("app");
P(/* @__PURE__ */ h(App, null), app);
/*! Bundled license information:
-react/cjs/react.development.js:
- (**
- * @license React
- * react.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *)
-*/
-/*! Bundled license information:
-
jed/jed.js:
(**
* @preserve jed.js https://github.com/SlexAxton/Jed
diff --git a/aml-backoffice/index.js.map b/aml-backoffice/index.js.map
index 522370c4a..281ca099b 100644
--- a/aml-backoffice/index.js.map
+++ b/aml-backoffice/index.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
- "sources": ["../../../../node_modules/.pnpm/big-integer@1.6.51/node_modules/big-integer/BigInteger.js", "../../../../node_modules/.pnpm/jed@1.1.1/node_modules/jed/jed.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/util.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/options.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/create-element.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/component.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/create-context.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/constants.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/children.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/props.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/index.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/render.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/clone-element.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/catch-error.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/hooks/src/index.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/util.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/PureComponent.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/memo.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/forwardRef.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/Children.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/suspense.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/suspense-list.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/portals.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/render.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/index.js", "../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js", "../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/index.js", "../../../taler-util/src/nacl-fast.ts", "../../../taler-util/src/prng-browser.ts", "../../../taler-util/src/taler-error-codes.ts", "../../../taler-util/src/codec.ts", "../../../taler-util/src/amounts.ts", "../../../taler-util/src/punycode.ts", "../../../taler-util/src/whatwg-url.ts", "../../../taler-util/src/url.ts", "../../../taler-util/src/helpers.ts", "../../../taler-util/src/libtool-version.ts", "../../../taler-util/src/notifications.ts", "../../../taler-util/src/sha256.ts", "../../../taler-util/src/kdf.ts", "../../../taler-util/src/taler-crypto.ts", "../../../taler-util/src/time.ts", "../../../taler-util/src/taler-types.ts", "../../../taler-util/src/logging.ts", "../../../taler-util/src/ReserveTransaction.ts", "../../../taler-util/src/taleruri.ts", "../../../taler-util/src/transactions-types.ts", "../../../taler-util/src/wallet-types.ts", "../../../taler-util/src/i18n.ts", "../../../taler-util/src/fnutils.ts", "../../../taler-util/src/http-status-codes.ts", "../../../taler-util/src/RequestThrottler.ts", "../../../taler-util/src/TaskThrottler.ts", "../../../taler-util/src/CancellationToken.ts", "../../../taler-util/src/contract-terms.ts", "../../../taler-util/src/errors.ts", "../../../taler-util/src/iban.ts", "../../../taler-util/src/transaction-test-data.ts", "../../../taler-util/src/http-impl.missing.ts", "../../../taler-util/src/http-common.ts", "../../../taler-util/src/http.ts", "../../../taler-util/src/MerchantApiClient.ts", "../../../taler-util/src/bank-api-client.ts", "../../../taler-util/src/operation.ts", "../../../taler-util/src/http-client/types.ts", "../../../taler-util/src/http-client/utils.ts", "../../../taler-util/src/http-client/exchange.ts", "../../../taler-util/src/http-client/officer-account.ts", "../../../taler-util/src/index.browser.ts", "../../../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.development.js", "../../../../node_modules/.pnpm/react@18.2.0/node_modules/react/index.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AcademicCapIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AdjustmentsHorizontalIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AdjustmentsVerticalIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArchiveBoxArrowDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArchiveBoxXMarkIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArchiveBoxIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownOnSquareStackIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownOnSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownTrayIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLeftCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLeftOnRectangleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowLongUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowPathRoundedSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowPathIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowRightCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowRightOnRectangleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowSmallUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowTopRightOnSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowTrendingDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowTrendingUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpOnSquareStackIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpOnSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpTrayIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowUturnUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsPointingInIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsPointingOutIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsRightLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ArrowsUpDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/AtSymbolIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BackspaceIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BackwardIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BanknotesIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars2Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3BottomLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3BottomRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3CenterLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars3Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Bars4Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BarsArrowDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BarsArrowUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Battery0Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Battery100Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Battery50Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BeakerIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellAlertIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellSlashIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellSnoozeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BellIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BoltSlashIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BoltIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookOpenIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookmarkSlashIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookmarkSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BookmarkIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BriefcaseIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BugAntIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingLibraryIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingOffice2Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingOfficeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/BuildingStorefrontIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CakeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CalculatorIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CalendarDaysIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CalendarIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CameraIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChartBarSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChartBarIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChartPieIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleBottomCenterTextIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleBottomCenterIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleLeftEllipsisIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleLeftRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleOvalLeftEllipsisIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChatBubbleOvalLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CheckBadgeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CheckCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CheckIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDoubleUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronUpDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ChevronUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CircleStackIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardDocumentCheckIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardDocumentListIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardDocumentIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClipboardIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ClockIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CloudArrowDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CloudArrowUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CloudIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CodeBracketSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CodeBracketIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Cog6ToothIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Cog8ToothIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CogIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CommandLineIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ComputerDesktopIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CpuChipIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CreditCardIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CubeTransparentIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CubeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyBangladeshiIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyDollarIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyEuroIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyPoundIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyRupeeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CurrencyYenIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CursorArrowRaysIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/CursorArrowRippleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DevicePhoneMobileIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DeviceTabletIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentArrowDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentArrowUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentChartBarIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentCheckIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentDuplicateIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentMagnifyingGlassIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentMinusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentPlusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentTextIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/DocumentIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EllipsisHorizontalCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EllipsisHorizontalIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EllipsisVerticalIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EnvelopeOpenIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EnvelopeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ExclamationCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ExclamationTriangleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EyeDropperIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EyeSlashIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/EyeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FaceFrownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FaceSmileIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FilmIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FingerPrintIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FireIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FlagIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderArrowDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderMinusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderOpenIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderPlusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FolderIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ForwardIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/FunnelIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GifIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GiftTopIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GiftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeAltIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeAmericasIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeAsiaAustraliaIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/GlobeEuropeAfricaIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HandRaisedIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HandThumbDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HandThumbUpIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HashtagIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HeartIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HomeModernIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/HomeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/IdentificationIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InboxArrowDownIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InboxStackIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InboxIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/InformationCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/KeyIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LanguageIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LifebuoyIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LightBulbIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LinkIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ListBulletIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LockClosedIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/LockOpenIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassMinusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassPlusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MagnifyingGlassIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MapPinIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MapIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MegaphoneIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MicrophoneIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MinusCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MinusSmallIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MinusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MoonIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/MusicalNoteIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/NewspaperIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/NoSymbolIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PaintBrushIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PaperAirplaneIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PaperClipIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PauseCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PauseIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PencilSquareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PencilIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneArrowDownLeftIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneArrowUpRightIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneXMarkIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhoneIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PhotoIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlayCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlayPauseIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlayIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlusCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlusSmallIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PlusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PowerIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PresentationChartBarIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PresentationChartLineIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PrinterIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/PuzzlePieceIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/QrCodeIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/QuestionMarkCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/QueueListIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RadioIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ReceiptPercentIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ReceiptRefundIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RectangleGroupIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RectangleStackIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RocketLaunchIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/RssIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ScaleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ScissorsIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ServerStackIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ServerIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShareIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShieldCheckIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShieldExclamationIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShoppingBagIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ShoppingCartIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SignalSlashIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SignalIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SparklesIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SpeakerWaveIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SpeakerXMarkIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Square2StackIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Square3Stack3DIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/Squares2X2Icon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SquaresPlusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/StarIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/StopCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/StopIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SunIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/SwatchIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TableCellsIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TagIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TicketIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TrashIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TrophyIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TruckIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/TvIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserGroupIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserMinusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserPlusIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UserIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/UsersIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/VariableIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/VideoCameraSlashIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/VideoCameraIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ViewColumnsIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/ViewfinderCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WalletIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WifiIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WindowIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WrenchScrewdriverIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/WrenchIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/XCircleIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/XMarkIcon.js", "../../../../node_modules/.pnpm/@heroicons+react@2.0.17_react@18.2.0/node_modules/@heroicons/react/24/outline/index.js", "../../../web-util/src/hooks/useLocalStorage.ts", "../../../web-util/src/utils/observable.ts", "../../../web-util/src/hooks/useLang.ts", "../../../web-util/src/hooks/useMemoryStorage.ts", "../../../web-util/src/hooks/useNotifications.ts", "../../../web-util/src/hooks/useAsyncAsHook.ts", "../../../web-util/src/utils/base64.ts", "../../../web-util/src/utils/request.ts", "../../../web-util/src/utils/http-impl.browser.ts", "../../../web-util/src/utils/http-impl.sw.ts", "../../../web-util/src/context/api.ts", "../../../web-util/src/context/translation.ts", "../../../web-util/src/components/utils.ts", "../../../web-util/src/components/Attention.tsx", "../../../web-util/src/components/CopyButton.tsx", "../../../web-util/src/components/ErrorLoading.tsx", "../../../web-util/src/components/LangSelector.tsx", "../../../web-util/src/components/Loading.tsx", "../../../web-util/src/components/Header.tsx", "../../../web-util/src/components/Footer.tsx", "../../../web-util/src/components/ShowInputErrorLabel.tsx", "../../../web-util/src/components/LocalNotificationBanner.tsx", "../../../web-util/src/components/GlobalNotificationBanner.tsx", "../../../web-util/src/forms/Caption.tsx", "../../../web-util/src/forms/InputLine.tsx", "../../../web-util/src/forms/useField.ts", "../../../web-util/src/forms/FormProvider.tsx", "../../../web-util/src/forms/InputText.tsx", "../../../web-util/src/forms/InputDate.tsx", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/toInteger/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/requiredArgs/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/toDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultOptions/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/constants/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isValid/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/formatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/longFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/protectedTokens/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultLocale/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/format/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/assign/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Setter.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/constants.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/utils.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCDay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISODay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/index.js", "../../../web-util/src/forms/InputInteger.tsx", "../../../web-util/src/forms/forms.ts", "../../../web-util/src/forms/InputChoiceStacked.tsx", "../../../web-util/src/forms/InputArray.tsx", "../../../web-util/src/forms/InputSelectMultiple.tsx", "../../../web-util/src/forms/InputTextArea.tsx", "../../../web-util/src/forms/InputFile.tsx", "../../../web-util/src/forms/Group.tsx", "../../../web-util/src/forms/InputSelectOne.tsx", "../../../web-util/src/forms/InputAmount.tsx", "../../../web-util/src/forms/InputChoiceHorizontal.tsx", "../../../web-util/src/forms/DefaultForm.tsx", "../../../web-util/src/stories.tsx", "../../src/App.tsx", "../../src/Dashboard.tsx", "../../src/hooks/useOfficer.ts", "../../src/hooks/useSettings.ts", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/toInteger/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/requiredArgs/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/toDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultOptions/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/constants/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isValid/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/formatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/longFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/protectedTokens/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultLocale/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/format/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/assign/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Setter.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/constants.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/utils.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCDay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISODay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/index.js", "../../src/pages/CaseDetails.tsx", "../../../../node_modules/.pnpm/swr@2.0.3_react@18.2.0/node_modules/swr/core/dist/index.mjs", "../../../../node_modules/.pnpm/swr@2.0.3_react@18.2.0/node_modules/swr/_internal/dist/index.mjs", "../../src/context/config.ts", "../../src/hooks/useCaseDetails.ts", "../../src/types.ts", "../../src/pages/ShowConsolidated.tsx", "../../src/NiceForm.tsx", "../../src/handlers/FormProvider.tsx", "../../src/handlers/InputText.tsx", "../../src/handlers/InputLine.tsx", "../../src/handlers/useField.ts", "../../src/handlers/InputDate.tsx", "../../src/handlers/InputInteger.tsx", "../../src/handlers/forms.ts", "../../src/handlers/InputChoiceStacked.tsx", "../../src/handlers/InputArray.tsx", "../../src/handlers/InputSelectMultiple.tsx", "../../src/handlers/InputTextArea.tsx", "../../src/handlers/InputFile.tsx", "../../src/handlers/Caption.tsx", "../../src/handlers/Group.tsx", "../../src/handlers/InputSelectOne.tsx", "../../src/handlers/InputAmount.tsx", "../../src/handlers/InputChoiceHorizontal.tsx", "../../src/pages/Cases.tsx", "../../src/hooks/useCases.ts", "../../src/pages/Officer.tsx", "../../src/pages/HandleAccountNotReady.tsx", "../../src/pages/CreateAccount.tsx", "../../src/pages/UnlockAccount.tsx", "../../src/settings.ts", "../../src/hooks/useBackend.ts", "../../src/pages/NewFormEntry.tsx", "../../src/pages/AntiMoneyLaunderingForm.tsx", "../../src/forms/simplest.ts", "../../src/forms/902_11e.ts", "../../src/forms/902_12e.ts", "../../src/forms/902_13e.ts", "../../src/forms/902_15e.ts", "../../src/forms/index.ts", "../../src/forms/902_1e.ts", "../../src/forms/902_4e.ts", "../../src/forms/902_5e.ts", "../../src/forms/902_9e.ts", "../../../../node_modules/.pnpm/@babel+runtime@7.19.4/node_modules/@babel/runtime/helpers/esm/extends.js", "../../../../node_modules/.pnpm/resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js", "../../../../node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js", "../../../../node_modules/.pnpm/history@4.10.1/node_modules/history/esm/history.js", "../../src/route.ts", "../../src/pages.ts", "../../src/index.tsx"],
- "sourcesContent": ["var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n DEFAULT_ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n\r\n var supportsNativeBigInt = typeof BigInt === \"function\";\r\n\r\n function Integer(v, radix, alphabet, caseSensitive) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function NativeBigInt(value) {\r\n this.value = value;\r\n }\r\n NativeBigInt.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n NativeBigInt.prototype.add = function (v) {\r\n return new NativeBigInt(this.value + parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.plus = NativeBigInt.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n NativeBigInt.prototype.subtract = function (v) {\r\n return new NativeBigInt(this.value - parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n NativeBigInt.prototype.negate = function () {\r\n return new NativeBigInt(-this.value);\r\n }\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n NativeBigInt.prototype.abs = function () {\r\n return new NativeBigInt(this.value >= 0 ? this.value : -this.value);\r\n }\r\n\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n NativeBigInt.prototype.multiply = function (v) {\r\n return new NativeBigInt(this.value * parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n NativeBigInt.prototype.square = function (v) {\r\n return new NativeBigInt(this.value * this.value);\r\n }\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n if (supportsNativeBigInt) {\r\n return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)];\r\n }\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) {\r\n return new NativeBigInt(this.value / parseValue(v).value);\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) {\r\n return new NativeBigInt(this.value % parseValue(v).value);\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n NativeBigInt.prototype.pow = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value, b = n.value;\r\n var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2);\r\n if (b === _0) return Integer[1];\r\n if (a === _0) return Integer[0];\r\n if (a === _1) return Integer[1];\r\n if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.isNegative()) return new NativeBigInt(_0);\r\n var x = this;\r\n var y = Integer[1];\r\n while (true) {\r\n if ((b & _1) === _1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === _0) break;\r\n b /= _2;\r\n x = x.square();\r\n }\r\n return y;\r\n }\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n if (exp.isNegative()) {\r\n exp = exp.multiply(Integer[-1]);\r\n base = base.modInv(mod);\r\n }\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n NativeBigInt.prototype.compareAbs = function (v) {\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n a = a >= 0 ? a : -a;\r\n b = b >= 0 ? b : -b;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n NativeBigInt.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n NativeBigInt.prototype.isEven = function () {\r\n return (this.value & BigInt(1)) === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n NativeBigInt.prototype.isOdd = function () {\r\n return (this.value & BigInt(1)) === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive;\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative;\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n NativeBigInt.prototype.isUnit = function () {\r\n return this.abs().value === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n NativeBigInt.prototype.isZero = function () {\r\n return this.value === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n if (n.isZero()) return false;\r\n if (n.isUnit()) return true;\r\n if (n.compareAbs(2) === 0) return this.isEven();\r\n return this.mod(n).isZero();\r\n };\r\n NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n\r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next: for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.isUnit() || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false;\r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if (bits <= 64)\r\n return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);\r\n var logN = Math.log(2) * bits.toJSNumber();\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations, rng) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2), rng));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.isZero()) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.isUnit()) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n NativeBigInt.prototype.next = function () {\r\n return new NativeBigInt(this.value + BigInt(1));\r\n }\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n NativeBigInt.prototype.prev = function () {\r\n return new NativeBigInt(this.value - BigInt(1));\r\n }\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return Math.abs(n) <= BASE;\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (v) {\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (v) {\r\n var remQuo;\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value,\r\n x = typeof v === \"number\" ? v | LOBMASK_I :\r\n typeof v === \"bigint\" ? v | BigInt(LOBMASK_I) :\r\n v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b, rng) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var usedRNG = rng || Math.random;\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(usedRNG() * range));\r\n var digits = toBase(range, BASE).value;\r\n var result = [], restricted = true;\r\n for (var i = 0; i < digits.length; i++) {\r\n var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE;\r\n var digit = truncate(usedRNG() * top);\r\n result.push(digit);\r\n if (digit < digits[i]) restricted = false;\r\n }\r\n return low.add(Integer.fromArray(result, BASE, false));\r\n }\r\n\r\n var parseBase = function (text, base, alphabet, caseSensitive) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n text = String(text);\r\n if (!caseSensitive) {\r\n text = text.toLowerCase();\r\n alphabet = alphabet.toLowerCase();\r\n }\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n var alphabetValues = {};\r\n for (i = 0; i < alphabet.length; i++) {\r\n alphabetValues[alphabet[i]] = i;\r\n }\r\n for (i = 0; i < length; i++) {\r\n var c = text[i];\r\n if (c === \"-\") continue;\r\n if (c in alphabetValues) {\r\n if (alphabetValues[c] >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i];\r\n if (c in alphabetValues) digits.push(parseValue(alphabetValues[c]));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\" && i < text.length);\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit, alphabet) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n if (digit < alphabet.length) {\r\n return alphabet[digit];\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber()))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(n.toJSNumber() - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.isUnit()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(n.toJSNumber()))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base, alphabet) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(function (x) {\r\n return stringify(x, alphabet);\r\n }).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n NativeBigInt.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10) return toBaseString(this, radix, alphabet);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10) return toBaseString(this, radix, alphabet);\r\n return String(this.value);\r\n };\r\n\r\n NativeBigInt.prototype.toString = SmallInteger.prototype.toString;\r\n\r\n NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () {\r\n return parseInt(this.toString(), 10);\r\n }\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(sign ? \"-\" + v : v));\r\n }\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(v));\r\n }\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n if (typeof v === \"bigint\") {\r\n return new NativeBigInt(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = parseValue(i);\r\n if (i > 0) Integer[-i] = parseValue(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define( function () {\r\n return bigInt;\r\n });\r\n}\r\n", "/**\n * @preserve jed.js https://github.com/SlexAxton/Jed\n */\n/*\n-----------\nA gettext compatible i18n library for modern JavaScript Applications\n\nby Alex Sexton - AlexSexton [at] gmail - @SlexAxton\n\nMIT License\n\nA jQuery Foundation project - requires CLA to contribute -\nhttps://contribute.jquery.org/CLA/\n\n\n\nJed offers the entire applicable GNU gettext spec'd set of\nfunctions, but also offers some nicer wrappers around them.\nThe api for gettext was written for a language with no function\noverloading, so Jed allows a little more of that.\n\nMany thanks to Joshua I. Miller - unrtst@cpan.org - who wrote\ngettext.js back in 2008. I was able to vet a lot of my ideas\nagainst his. I also made sure Jed passed against his tests\nin order to offer easy upgrades -- jsgettext.berlios.de\n*/\n(function (root, undef) {\n\n // Set up some underscore-style functions, if you already have\n // underscore, feel free to delete this section, and use it\n // directly, however, the amount of functions used doesn't\n // warrant having underscore as a full dependency.\n // Underscore 1.3.0 was used to port and is licensed\n // under the MIT License by Jeremy Ashkenas.\n var ArrayProto = Array.prototype,\n ObjProto = Object.prototype,\n slice = ArrayProto.slice,\n hasOwnProp = ObjProto.hasOwnProperty,\n nativeForEach = ArrayProto.forEach,\n breaker = {};\n\n // We're not using the OOP style _ so we don't need the\n // extra level of indirection. This still means that you\n // sub out for real `_` though.\n var _ = {\n forEach : function( obj, iterator, context ) {\n var i, l, key;\n if ( obj === null ) {\n return;\n }\n\n if ( nativeForEach && obj.forEach === nativeForEach ) {\n obj.forEach( iterator, context );\n }\n else if ( obj.length === +obj.length ) {\n for ( i = 0, l = obj.length; i < l; i++ ) {\n if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) {\n return;\n }\n }\n }\n else {\n for ( key in obj) {\n if ( hasOwnProp.call( obj, key ) ) {\n if ( iterator.call (context, obj[key], key, obj ) === breaker ) {\n return;\n }\n }\n }\n }\n },\n extend : function( obj ) {\n this.forEach( slice.call( arguments, 1 ), function ( source ) {\n for ( var prop in source ) {\n obj[prop] = source[prop];\n }\n });\n return obj;\n }\n };\n // END Miniature underscore impl\n\n // Jed is a constructor function\n var Jed = function ( options ) {\n // Some minimal defaults\n this.defaults = {\n \"locale_data\" : {\n \"messages\" : {\n \"\" : {\n \"domain\" : \"messages\",\n \"lang\" : \"en\",\n \"plural_forms\" : \"nplurals=2; plural=(n != 1);\"\n }\n // There are no default keys, though\n }\n },\n // The default domain if one is missing\n \"domain\" : \"messages\",\n // enable debug mode to log untranslated strings to the console\n \"debug\" : false\n };\n\n // Mix in the sent options with the default options\n this.options = _.extend( {}, this.defaults, options );\n this.textdomain( this.options.domain );\n\n if ( options.domain && ! this.options.locale_data[ this.options.domain ] ) {\n throw new Error('Text domain set to non-existent domain: `' + options.domain + '`');\n }\n };\n\n // The gettext spec sets this character as the default\n // delimiter for context lookups.\n // e.g.: context\\u0004key\n // If your translation company uses something different,\n // just change this at any time and it will use that instead.\n Jed.context_delimiter = String.fromCharCode( 4 );\n\n function getPluralFormFunc ( plural_form_string ) {\n return Jed.PF.compile( plural_form_string || \"nplurals=2; plural=(n != 1);\");\n }\n\n function Chain( key, i18n ){\n this._key = key;\n this._i18n = i18n;\n }\n\n // Create a chainable api for adding args prettily\n _.extend( Chain.prototype, {\n onDomain : function ( domain ) {\n this._domain = domain;\n return this;\n },\n withContext : function ( context ) {\n this._context = context;\n return this;\n },\n ifPlural : function ( num, pkey ) {\n this._val = num;\n this._pkey = pkey;\n return this;\n },\n fetch : function ( sArr ) {\n if ( {}.toString.call( sArr ) != '[object Array]' ) {\n sArr = [].slice.call(arguments, 0);\n }\n return ( sArr && sArr.length ? Jed.sprintf : function(x){ return x; } )(\n this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val),\n sArr\n );\n }\n });\n\n // Add functions to the Jed prototype.\n // These will be the functions on the object that's returned\n // from creating a `new Jed()`\n // These seem redundant, but they gzip pretty well.\n _.extend( Jed.prototype, {\n // The sexier api start point\n translate : function ( key ) {\n return new Chain( key, this );\n },\n\n textdomain : function ( domain ) {\n if ( ! domain ) {\n return this._textdomain;\n }\n this._textdomain = domain;\n },\n\n gettext : function ( key ) {\n return this.dcnpgettext.call( this, undef, undef, key );\n },\n\n dgettext : function ( domain, key ) {\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n dcgettext : function ( domain , key /*, category */ ) {\n // Ignores the category anyways\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n ngettext : function ( skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, undef, skey, pkey, val );\n },\n\n dngettext : function ( domain, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n dcngettext : function ( domain, skey, pkey, val/*, category */) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n pgettext : function ( context, key ) {\n return this.dcnpgettext.call( this, undef, context, key );\n },\n\n dpgettext : function ( domain, context, key ) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n dcpgettext : function ( domain, context, key/*, category */) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n npgettext : function ( context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, context, skey, pkey, val );\n },\n\n dnpgettext : function ( domain, context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, context, skey, pkey, val );\n },\n\n // The most fully qualified gettext function. It has every option.\n // Since it has every option, we can use it from every other method.\n // This is the bread and butter.\n // Technically there should be one more argument in this function for 'Category',\n // but since we never use it, we might as well not waste the bytes to define it.\n dcnpgettext : function ( domain, context, singular_key, plural_key, val ) {\n // Set some defaults\n\n plural_key = plural_key || singular_key;\n\n // Use the global domain default if one\n // isn't explicitly passed in\n domain = domain || this._textdomain;\n\n var fallback;\n\n // Handle special cases\n\n // No options found\n if ( ! this.options ) {\n // There's likely something wrong, but we'll return the correct key for english\n // We do this by instantiating a brand new Jed instance with the default set\n // for everything that could be broken.\n fallback = new Jed();\n return fallback.dcnpgettext.call( fallback, undefined, undefined, singular_key, plural_key, val );\n }\n\n // No translation data provided\n if ( ! this.options.locale_data ) {\n throw new Error('No locale data provided.');\n }\n\n if ( ! this.options.locale_data[ domain ] ) {\n throw new Error('Domain `' + domain + '` was not found.');\n }\n\n if ( ! this.options.locale_data[ domain ][ \"\" ] ) {\n throw new Error('No locale meta information provided.');\n }\n\n // Make sure we have a truthy key. Otherwise we might start looking\n // into the empty string key, which is the options for the locale\n // data.\n if ( ! singular_key ) {\n throw new Error('No translation key found.');\n }\n\n var key = context ? context + Jed.context_delimiter + singular_key : singular_key,\n locale_data = this.options.locale_data,\n dict = locale_data[ domain ],\n defaultConf = (locale_data.messages || this.defaults.locale_data.messages)[\"\"],\n pluralForms = dict[\"\"].plural_forms || dict[\"\"][\"Plural-Forms\"] || dict[\"\"][\"plural-forms\"] || defaultConf.plural_forms || defaultConf[\"Plural-Forms\"] || defaultConf[\"plural-forms\"],\n val_list,\n res;\n\n var val_idx;\n if (val === undefined) {\n // No value passed in; assume singular key lookup.\n val_idx = 0;\n\n } else {\n // Value has been passed in; use plural-forms calculations.\n\n // Handle invalid numbers, but try casting strings for good measure\n if ( typeof val != 'number' ) {\n val = parseInt( val, 10 );\n\n if ( isNaN( val ) ) {\n throw new Error('The number that was passed in is not a number.');\n }\n }\n\n val_idx = getPluralFormFunc(pluralForms)(val);\n }\n\n // Throw an error if a domain isn't found\n if ( ! dict ) {\n throw new Error('No domain named `' + domain + '` could be found.');\n }\n\n val_list = dict[ key ];\n\n // If there is no match, then revert back to\n // english style singular/plural with the keys passed in.\n if ( ! val_list || val_idx > val_list.length ) {\n if (this.options.missing_key_callback) {\n this.options.missing_key_callback(key, domain);\n }\n res = [ singular_key, plural_key ];\n\n // collect untranslated strings\n if (this.options.debug===true) {\n console.log(res[ getPluralFormFunc(pluralForms)( val ) ]);\n }\n return res[ getPluralFormFunc()( val ) ];\n }\n\n res = val_list[ val_idx ];\n\n // This includes empty strings on purpose\n if ( ! res ) {\n res = [ singular_key, plural_key ];\n return res[ getPluralFormFunc()( val ) ];\n }\n return res;\n }\n });\n\n\n // We add in sprintf capabilities for post translation value interolation\n // This is not internally used, so you can remove it if you have this\n // available somewhere else, or want to use a different system.\n\n // We _slightly_ modify the normal sprintf behavior to more gracefully handle\n // undefined values.\n\n /**\n sprintf() for JavaScript 0.7-beta1\n http://www.diveintojavascript.com/projects/javascript-sprintf\n\n Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of sprintf() for JavaScript nor the\n names of its contributors may be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n var sprintf = (function() {\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n var str_format = function() {\n if (!str_format.cache.hasOwnProperty(arguments[0])) {\n str_format.cache[arguments[0]] = str_format.parse(arguments[0]);\n }\n return str_format.format.call(null, str_format.cache[arguments[0]], arguments);\n };\n\n str_format.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n\n // Jed EDIT\n if ( typeof arg == 'undefined' || arg === null ) {\n arg = '';\n }\n // Jed EDIT\n\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;\n case 'u': arg = Math.abs(arg); break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);\n pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n str_format.cache = {};\n\n str_format.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return parse_tree;\n };\n\n return str_format;\n })();\n\n var vsprintf = function(fmt, argv) {\n argv.unshift(fmt);\n return sprintf.apply(null, argv);\n };\n\n Jed.parse_plural = function ( plural_forms, n ) {\n plural_forms = plural_forms.replace(/n/g, n);\n return Jed.parse_expression(plural_forms);\n };\n\n Jed.sprintf = function ( fmt, args ) {\n if ( {}.toString.call( args ) == '[object Array]' ) {\n return vsprintf( fmt, [].slice.call(args) );\n }\n return sprintf.apply(this, [].slice.call(arguments) );\n };\n\n Jed.prototype.sprintf = function () {\n return Jed.sprintf.apply(this, arguments);\n };\n // END sprintf Implementation\n\n // Start the Plural forms section\n // This is a full plural form expression parser. It is used to avoid\n // running 'eval' or 'new Function' directly against the plural\n // forms.\n //\n // This can be important if you get translations done through a 3rd\n // party vendor. I encourage you to use this instead, however, I\n // also will provide a 'precompiler' that you can use at build time\n // to output valid/safe function representations of the plural form\n // expressions. This means you can build this code out for the most\n // part.\n Jed.PF = {};\n\n Jed.PF.parse = function ( p ) {\n var plural_str = Jed.PF.extractPluralExpr( p );\n return Jed.PF.parser.parse.call(Jed.PF.parser, plural_str);\n };\n\n Jed.PF.compile = function ( p ) {\n // Handle trues and falses as 0 and 1\n function imply( val ) {\n return (val === true ? 1 : val ? val : 0);\n }\n\n var ast = Jed.PF.parse( p );\n return function ( n ) {\n return imply( Jed.PF.interpreter( ast )( n ) );\n };\n };\n\n Jed.PF.interpreter = function ( ast ) {\n return function ( n ) {\n var res;\n switch ( ast.type ) {\n case 'GROUP':\n return Jed.PF.interpreter( ast.expr )( n );\n case 'TERNARY':\n if ( Jed.PF.interpreter( ast.expr )( n ) ) {\n return Jed.PF.interpreter( ast.truthy )( n );\n }\n return Jed.PF.interpreter( ast.falsey )( n );\n case 'OR':\n return Jed.PF.interpreter( ast.left )( n ) || Jed.PF.interpreter( ast.right )( n );\n case 'AND':\n return Jed.PF.interpreter( ast.left )( n ) && Jed.PF.interpreter( ast.right )( n );\n case 'LT':\n return Jed.PF.interpreter( ast.left )( n ) < Jed.PF.interpreter( ast.right )( n );\n case 'GT':\n return Jed.PF.interpreter( ast.left )( n ) > Jed.PF.interpreter( ast.right )( n );\n case 'LTE':\n return Jed.PF.interpreter( ast.left )( n ) <= Jed.PF.interpreter( ast.right )( n );\n case 'GTE':\n return Jed.PF.interpreter( ast.left )( n ) >= Jed.PF.interpreter( ast.right )( n );\n case 'EQ':\n return Jed.PF.interpreter( ast.left )( n ) == Jed.PF.interpreter( ast.right )( n );\n case 'NEQ':\n return Jed.PF.interpreter( ast.left )( n ) != Jed.PF.interpreter( ast.right )( n );\n case 'MOD':\n return Jed.PF.interpreter( ast.left )( n ) % Jed.PF.interpreter( ast.right )( n );\n case 'VAR':\n return n;\n case 'NUM':\n return ast.val;\n default:\n throw new Error(\"Invalid Token found.\");\n }\n };\n };\n\n Jed.PF.extractPluralExpr = function ( p ) {\n // trim first\n p = p.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\n if (! /;\\s*$/.test(p)) {\n p = p.concat(';');\n }\n\n var nplurals_re = /nplurals\\=(\\d+);/,\n plural_re = /plural\\=(.*);/,\n nplurals_matches = p.match( nplurals_re ),\n res = {},\n plural_matches;\n\n // Find the nplurals number\n if ( nplurals_matches.length > 1 ) {\n res.nplurals = nplurals_matches[1];\n }\n else {\n throw new Error('nplurals not found in plural_forms string: ' + p );\n }\n\n // remove that data to get to the formula\n p = p.replace( nplurals_re, \"\" );\n plural_matches = p.match( plural_re );\n\n if (!( plural_matches && plural_matches.length > 1 ) ) {\n throw new Error('`plural` expression not found: ' + p);\n }\n return plural_matches[ 1 ];\n };\n\n /* Jison generated parser */\n Jed.PF.parser = (function(){\n\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"e\":4,\"EOF\":5,\"?\":6,\":\":7,\"||\":8,\"&&\":9,\"<\":10,\"<=\":11,\">\":12,\">=\":13,\"!=\":14,\"==\":15,\"%\":16,\"(\":17,\")\":18,\"n\":19,\"NUMBER\":20,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",6:\"?\",7:\":\",8:\"||\",9:\"&&\",10:\"<\",11:\"<=\",12:\">\",13:\">=\",14:\"!=\",15:\"==\",16:\"%\",17:\"(\",18:\")\",19:\"n\",20:\"NUMBER\"},\nproductions_: [0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],\nperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1: return { type : 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 2:this.$ = { type: 'TERNARY', expr: $$[$0-4], truthy : $$[$0-2], falsey: $$[$0] };\nbreak;\ncase 3:this.$ = { type: \"OR\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 4:this.$ = { type: \"AND\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 5:this.$ = { type: 'LT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 6:this.$ = { type: 'LTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 7:this.$ = { type: 'GT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 8:this.$ = { type: 'GTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 9:this.$ = { type: 'NEQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 10:this.$ = { type: 'EQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 11:this.$ = { type: 'MOD', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 12:this.$ = { type: 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 13:this.$ = { type: 'VAR' };\nbreak;\ncase 14:this.$ = { type: 'NUM', val: Number(yytext) };\nbreak;\n}\n},\ntable: [{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],\ndefaultActions: {6:[2,1]},\nparseError: function parseError(str, hash) {\n throw new Error(str);\n},\nparse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null], // semantic value stack\n lstack = [], // location stack\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n\n //this.reductionCount = this.shiftCount = 0;\n\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n if (typeof this.lexer.yylloc == 'undefined')\n this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n\n if (typeof this.yy.parseError === 'function')\n this.parseError = this.yy.parseError;\n\n function popStack (n) {\n stack.length = stack.length - 2*n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n function lex() {\n var token;\n token = self.lexer.lex() || 1; // $end = 1\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n\n var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;\n while (true) {\n // retreive state number from top of stack\n state = stack[stack.length-1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol == null)\n symbol = lex();\n // read action for current state and first input\n action = table[state] && table[state][symbol];\n }\n\n // handle parse error\n _handle_error:\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n\n if (!recovering) {\n // Report error\n expected = [];\n for (p in table[state]) if (this.terminals_[p] && p > 2) {\n expected.push(\"'\"+this.terminals_[p]+\"'\");\n }\n var errStr = '';\n if (this.lexer.showPosition) {\n errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + this.terminals_[symbol]+ \"'\";\n } else {\n errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +\n (symbol == 1 /*EOF*/ ? \"end of input\" :\n (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));\n }\n this.parseError(errStr,\n {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n }\n\n // just recovered from another error\n if (recovering == 3) {\n if (symbol == EOF) {\n throw new Error(errStr || 'Parsing halted.');\n }\n\n // discard current lookahead and grab another\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n symbol = lex();\n }\n\n // try to recover from error\n while (1) {\n // check for error recovery rule in this state\n if ((TERROR.toString()) in table[state]) {\n break;\n }\n if (state == 0) {\n throw new Error(errStr || 'Parsing halted.');\n }\n popStack(1);\n state = stack[stack.length-1];\n }\n\n preErrorSymbol = symbol; // save the lookahead token\n symbol = TERROR; // insert generic error symbol as new lookahead\n state = stack[stack.length-1];\n action = table[state] && table[state][TERROR];\n recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n }\n\n // this shouldn't happen, unless resolve defaults are off\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);\n }\n\n switch (action[0]) {\n\n case 1: // shift\n //this.shiftCount++;\n\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]); // push state\n symbol = null;\n if (!preErrorSymbol) { // normal execution/no error\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0)\n recovering--;\n } else { // error just occurred, resume old lookahead f/ before error\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n\n case 2: // reduce\n //this.reductionCount++;\n\n len = this.productions_[action[1]][1];\n\n // perform semantic action\n yyval.$ = vstack[vstack.length-len]; // default to $$ = $1\n // default location, uses first token for firsts, last for lasts\n yyval._$ = {\n first_line: lstack[lstack.length-(len||1)].first_line,\n last_line: lstack[lstack.length-1].last_line,\n first_column: lstack[lstack.length-(len||1)].first_column,\n last_column: lstack[lstack.length-1].last_column\n };\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n // pop off stack\n if (len) {\n stack = stack.slice(0,-1*len*2);\n vstack = vstack.slice(0, -1*len);\n lstack = lstack.slice(0, -1*len);\n }\n\n stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[stack[stack.length-2]][stack[stack.length-1]];\n stack.push(newState);\n break;\n\n case 3: // accept\n return true;\n }\n\n }\n\n return true;\n}};/* Jison generated lexer */\nvar lexer = (function(){\n\nvar lexer = ({EOF:1,\nparseError:function parseError(str, hash) {\n if (this.yy.parseError) {\n this.yy.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\nsetInput:function (input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n return this;\n },\ninput:function () {\n var ch = this._input[0];\n this.yytext+=ch;\n this.yyleng++;\n this.match+=ch;\n this.matched+=ch;\n var lines = ch.match(/\\n/);\n if (lines) this.yylineno++;\n this._input = this._input.slice(1);\n return ch;\n },\nunput:function (ch) {\n this._input = ch + this._input;\n return this;\n },\nmore:function () {\n this._more = true;\n return this;\n },\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n },\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n },\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) this.done = true;\n\n var token,\n match,\n col,\n lines;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i=0;i < rules.length; i++) {\n match = this._input.match(this.rules[rules[i]]);\n if (match) {\n lines = match[0].match(/\\n.*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {first_line: this.yylloc.last_line,\n last_line: this.yylineno+1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);\n if (token) return token;\n else return;\n }\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\n {text: \"\", token: null, line: this.yylineno});\n }\n },\nlex:function lex() {\n var r = this.next();\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\npopState:function popState() {\n return this.conditionStack.pop();\n },\n_currentRules:function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n },\ntopState:function () {\n return this.conditionStack[this.conditionStack.length-2];\n },\npushState:function begin(condition) {\n this.begin(condition);\n }});\nlexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* skip whitespace */\nbreak;\ncase 1:return 20\nbreak;\ncase 2:return 19\nbreak;\ncase 3:return 8\nbreak;\ncase 4:return 9\nbreak;\ncase 5:return 6\nbreak;\ncase 6:return 7\nbreak;\ncase 7:return 11\nbreak;\ncase 8:return 13\nbreak;\ncase 9:return 10\nbreak;\ncase 10:return 12\nbreak;\ncase 11:return 14\nbreak;\ncase 12:return 15\nbreak;\ncase 13:return 16\nbreak;\ncase 14:return 17\nbreak;\ncase 15:return 18\nbreak;\ncase 16:return 5\nbreak;\ncase 17:return 'INVALID'\nbreak;\n}\n};\nlexer.rules = [/^\\s+/,/^[0-9]+(\\.[0-9]+)?\\b/,/^n\\b/,/^\\|\\|/,/^&&/,/^\\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\\(/,/^\\)/,/^$/,/^./];\nlexer.conditions = {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],\"inclusive\":true}};return lexer;})()\nparser.lexer = lexer;\nreturn parser;\n})();\n// End parser\n\n // Handle node, amd, and global systems\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Jed;\n }\n exports.Jed = Jed;\n }\n else {\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Jed;\n });\n }\n // Leak a global regardless of module system\n root['Jed'] = Jed;\n }\n\n})(this);\n", "import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n", "export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 1\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n", "import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n", "import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && i !== oldProps.value))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t\tvnode._component = undefined;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type !== 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n", "import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n", "import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n", "/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n", "import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet EMPTY = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingValue = EMPTY;\n\t\t\t\thookItem._nextValue = hookItem._pendingArgs = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\tif (hookItem._pendingValue !== EMPTY) {\n\t\t\t\thookItem._value = hookItem._pendingValue;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t\thookItem._pendingValue = EMPTY;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({ _pendingValue: EMPTY });\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tconst prevScu = currentComponent.shouldComponentUpdate;\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\tcurrentComponent.shouldComponentUpdate = function(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\tconst stateHooks = hookState._component.__hooks._list.filter(\n\t\t\t\t\tx => x._component\n\t\t\t\t);\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t};\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._pendingValue = factory();\n\t\tstate._pendingArgs = args;\n\t\tstate._factory = factory;\n\t\treturn state._pendingValue;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any, errorInfo: import('preact').ErrorInfo) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\nexport function useId() {\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n", "/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n", "import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n", "import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n", "import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n", "import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n", "import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n", "import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n", "import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n", "import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/i\n\t\t: /fil|che|ra/i\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t\tcontinue;\n\t\t\t} else if (i === 'value' && 'defaultValue' in props && value == null) {\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t\t// a default value\n\t\t\t\tcontinue;\n\t\t\t} else if (\n\t\t\t\ti === 'defaultValue' &&\n\t\t\t\t'value' in props &&\n\t\t\t\tprops.value == null\n\t\t\t) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^onfocus$/i.test(i)) {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (/^onblur$/i.test(i)) {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/g, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\t// Add support for onInput and onChange, see #3561\n\t\t\t// if we have an oninput prop already change it to oninputCapture\n\t\t\tif (/^oninput$/i.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t\tif (normalizedProps[i]) {\n\t\t\t\t\ti = 'oninputCapture';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: <select multiple value={[]} />\n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\t// Adding support for defaultValue in select tag\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tif (normalizedProps.multiple) {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t\t} else {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t\t}\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n", "import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport { is } from './util';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '17.0.2'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional arugment that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport function startTransition(cb) {\n\tcb();\n}\n\nexport function useDeferredValue(val) {\n\treturn val;\n}\n\nexport function useTransition() {\n\treturn [false, startTransition];\n}\n\n// TODO: in theory this should be done after a VNode is diffed as we want to insert\n// styles/... before it attaches\nexport const useInsertionEffect = useLayoutEffect;\n\n/**\n * This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84\n * on a high level this cuts out the warnings, ... and attempts a smaller implementation\n */\nexport function useSyncExternalStore(subscribe, getSnapshot) {\n\tconst value = getSnapshot();\n\n\tconst [{ _instance }, forceUpdate] = useState({\n\t\t_instance: { _value: value, _getSnapshot: getSnapshot }\n\t});\n\n\tuseLayoutEffect(() => {\n\t\t_instance._value = value;\n\t\t_instance._getSnapshot = getSnapshot;\n\n\t\tif (!is(_instance._value, getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\t}, [subscribe, value, getSnapshot]);\n\n\tuseEffect(() => {\n\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\n\t\treturn subscribe(() => {\n\t\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\t\tforceUpdate({ _instance });\n\t\t\t}\n\t\t});\n\t}, [subscribe]);\n\n\treturn value;\n}\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseInsertionEffect,\n\tuseTransition,\n\tuseDeferredValue,\n\tuseSyncExternalStore,\n\tstartTransition,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n", "/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n", "// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// TypeScript port in 2019 by Florian Dold.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nconst gf = function (init: number[] = []): Float64Array {\n const r = new Float64Array(16);\n if (init) for (let i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nlet randombytes = function (x: Uint8Array, n: number): void {\n throw new Error(\"no PRNG\");\n};\n\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\n\n// prettier-ignore\nconst gf0 = gf();\nconst gf1 = gf([1]);\nconst _121665 = gf([0xdb41, 1]);\nconst D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898,\n 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203,\n]);\nconst D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130,\n 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406,\n]);\nconst X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c,\n 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169,\n]);\nconst Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n]);\nconst I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7,\n 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83,\n]);\n\nfunction ts64(x: Uint8Array, i: number, h: number, l: number): void {\n x[i] = (h >> 24) & 0xff;\n x[i + 1] = (h >> 16) & 0xff;\n x[i + 2] = (h >> 8) & 0xff;\n x[i + 3] = h & 0xff;\n x[i + 4] = (l >> 24) & 0xff;\n x[i + 5] = (l >> 16) & 0xff;\n x[i + 6] = (l >> 8) & 0xff;\n x[i + 7] = l & 0xff;\n}\n\nfunction vn(\n x: Uint8Array,\n xi: number,\n y: Uint8Array,\n yi: number,\n n: number,\n): number {\n let i,\n d = 0;\n for (i = 0; i < n; i++) d |= x[xi + i] ^ y[yi + i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(\n x: Uint8Array,\n xi: number,\n y: Uint8Array,\n yi: number,\n) {\n return vn(x, xi, y, yi, 16);\n}\n\nfunction crypto_verify_32(\n x: Uint8Array,\n xi: number,\n y: Uint8Array,\n yi: number,\n): number {\n return vn(x, xi, y, yi, 32);\n}\n\nfunction core_salsa20(\n o: Uint8Array,\n p: Uint8Array,\n k: Uint8Array,\n c: Uint8Array,\n) {\n var j0 =\n (c[0] & 0xff) |\n ((c[1] & 0xff) << 8) |\n ((c[2] & 0xff) << 16) |\n ((c[3] & 0xff) << 24),\n j1 =\n (k[0] & 0xff) |\n ((k[1] & 0xff) << 8) |\n ((k[2] & 0xff) << 16) |\n ((k[3] & 0xff) << 24),\n j2 =\n (k[4] & 0xff) |\n ((k[5] & 0xff) << 8) |\n ((k[6] & 0xff) << 16) |\n ((k[7] & 0xff) << 24),\n j3 =\n (k[8] & 0xff) |\n ((k[9] & 0xff) << 8) |\n ((k[10] & 0xff) << 16) |\n ((k[11] & 0xff) << 24),\n j4 =\n (k[12] & 0xff) |\n ((k[13] & 0xff) << 8) |\n ((k[14] & 0xff) << 16) |\n ((k[15] & 0xff) << 24),\n j5 =\n (c[4] & 0xff) |\n ((c[5] & 0xff) << 8) |\n ((c[6] & 0xff) << 16) |\n ((c[7] & 0xff) << 24),\n j6 =\n (p[0] & 0xff) |\n ((p[1] & 0xff) << 8) |\n ((p[2] & 0xff) << 16) |\n ((p[3] & 0xff) << 24),\n j7 =\n (p[4] & 0xff) |\n ((p[5] & 0xff) << 8) |\n ((p[6] & 0xff) << 16) |\n ((p[7] & 0xff) << 24),\n j8 =\n (p[8] & 0xff) |\n ((p[9] & 0xff) << 8) |\n ((p[10] & 0xff) << 16) |\n ((p[11] & 0xff) << 24),\n j9 =\n (p[12] & 0xff) |\n ((p[13] & 0xff) << 8) |\n ((p[14] & 0xff) << 16) |\n ((p[15] & 0xff) << 24),\n j10 =\n (c[8] & 0xff) |\n ((c[9] & 0xff) << 8) |\n ((c[10] & 0xff) << 16) |\n ((c[11] & 0xff) << 24),\n j11 =\n (k[16] & 0xff) |\n ((k[17] & 0xff) << 8) |\n ((k[18] & 0xff) << 16) |\n ((k[19] & 0xff) << 24),\n j12 =\n (k[20] & 0xff) |\n ((k[21] & 0xff) << 8) |\n ((k[22] & 0xff) << 16) |\n ((k[23] & 0xff) << 24),\n j13 =\n (k[24] & 0xff) |\n ((k[25] & 0xff) << 8) |\n ((k[26] & 0xff) << 16) |\n ((k[27] & 0xff) << 24),\n j14 =\n (k[28] & 0xff) |\n ((k[29] & 0xff) << 8) |\n ((k[30] & 0xff) << 16) |\n ((k[31] & 0xff) << 24),\n j15 =\n (c[12] & 0xff) |\n ((c[13] & 0xff) << 8) |\n ((c[14] & 0xff) << 16) |\n ((c[15] & 0xff) << 24);\n\n var x0 = j0,\n x1 = j1,\n x2 = j2,\n x3 = j3,\n x4 = j4,\n x5 = j5,\n x6 = j6,\n x7 = j7,\n x8 = j8,\n x9 = j9,\n x10 = j10,\n x11 = j11,\n x12 = j12,\n x13 = j13,\n x14 = j14,\n x15 = j15,\n u;\n\n for (var i = 0; i < 20; i += 2) {\n u = (x0 + x12) | 0;\n x4 ^= (u << 7) | (u >>> (32 - 7));\n u = (x4 + x0) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x4) | 0;\n x12 ^= (u << 13) | (u >>> (32 - 13));\n u = (x12 + x8) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x1) | 0;\n x9 ^= (u << 7) | (u >>> (32 - 7));\n u = (x9 + x5) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x9) | 0;\n x1 ^= (u << 13) | (u >>> (32 - 13));\n u = (x1 + x13) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x6) | 0;\n x14 ^= (u << 7) | (u >>> (32 - 7));\n u = (x14 + x10) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x14) | 0;\n x6 ^= (u << 13) | (u >>> (32 - 13));\n u = (x6 + x2) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x11) | 0;\n x3 ^= (u << 7) | (u >>> (32 - 7));\n u = (x3 + x15) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x3) | 0;\n x11 ^= (u << 13) | (u >>> (32 - 13));\n u = (x11 + x7) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x0 + x3) | 0;\n x1 ^= (u << 7) | (u >>> (32 - 7));\n u = (x1 + x0) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x1) | 0;\n x3 ^= (u << 13) | (u >>> (32 - 13));\n u = (x3 + x2) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x4) | 0;\n x6 ^= (u << 7) | (u >>> (32 - 7));\n u = (x6 + x5) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x6) | 0;\n x4 ^= (u << 13) | (u >>> (32 - 13));\n u = (x4 + x7) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x9) | 0;\n x11 ^= (u << 7) | (u >>> (32 - 7));\n u = (x11 + x10) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x11) | 0;\n x9 ^= (u << 13) | (u >>> (32 - 13));\n u = (x9 + x8) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x14) | 0;\n x12 ^= (u << 7) | (u >>> (32 - 7));\n u = (x12 + x15) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x12) | 0;\n x14 ^= (u << 13) | (u >>> (32 - 13));\n u = (x14 + x13) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n }\n x0 = (x0 + j0) | 0;\n x1 = (x1 + j1) | 0;\n x2 = (x2 + j2) | 0;\n x3 = (x3 + j3) | 0;\n x4 = (x4 + j4) | 0;\n x5 = (x5 + j5) | 0;\n x6 = (x6 + j6) | 0;\n x7 = (x7 + j7) | 0;\n x8 = (x8 + j8) | 0;\n x9 = (x9 + j9) | 0;\n x10 = (x10 + j10) | 0;\n x11 = (x11 + j11) | 0;\n x12 = (x12 + j12) | 0;\n x13 = (x13 + j13) | 0;\n x14 = (x14 + j14) | 0;\n x15 = (x15 + j15) | 0;\n\n o[0] = (x0 >>> 0) & 0xff;\n o[1] = (x0 >>> 8) & 0xff;\n o[2] = (x0 >>> 16) & 0xff;\n o[3] = (x0 >>> 24) & 0xff;\n\n o[4] = (x1 >>> 0) & 0xff;\n o[5] = (x1 >>> 8) & 0xff;\n o[6] = (x1 >>> 16) & 0xff;\n o[7] = (x1 >>> 24) & 0xff;\n\n o[8] = (x2 >>> 0) & 0xff;\n o[9] = (x2 >>> 8) & 0xff;\n o[10] = (x2 >>> 16) & 0xff;\n o[11] = (x2 >>> 24) & 0xff;\n\n o[12] = (x3 >>> 0) & 0xff;\n o[13] = (x3 >>> 8) & 0xff;\n o[14] = (x3 >>> 16) & 0xff;\n o[15] = (x3 >>> 24) & 0xff;\n\n o[16] = (x4 >>> 0) & 0xff;\n o[17] = (x4 >>> 8) & 0xff;\n o[18] = (x4 >>> 16) & 0xff;\n o[19] = (x4 >>> 24) & 0xff;\n\n o[20] = (x5 >>> 0) & 0xff;\n o[21] = (x5 >>> 8) & 0xff;\n o[22] = (x5 >>> 16) & 0xff;\n o[23] = (x5 >>> 24) & 0xff;\n\n o[24] = (x6 >>> 0) & 0xff;\n o[25] = (x6 >>> 8) & 0xff;\n o[26] = (x6 >>> 16) & 0xff;\n o[27] = (x6 >>> 24) & 0xff;\n\n o[28] = (x7 >>> 0) & 0xff;\n o[29] = (x7 >>> 8) & 0xff;\n o[30] = (x7 >>> 16) & 0xff;\n o[31] = (x7 >>> 24) & 0xff;\n\n o[32] = (x8 >>> 0) & 0xff;\n o[33] = (x8 >>> 8) & 0xff;\n o[34] = (x8 >>> 16) & 0xff;\n o[35] = (x8 >>> 24) & 0xff;\n\n o[36] = (x9 >>> 0) & 0xff;\n o[37] = (x9 >>> 8) & 0xff;\n o[38] = (x9 >>> 16) & 0xff;\n o[39] = (x9 >>> 24) & 0xff;\n\n o[40] = (x10 >>> 0) & 0xff;\n o[41] = (x10 >>> 8) & 0xff;\n o[42] = (x10 >>> 16) & 0xff;\n o[43] = (x10 >>> 24) & 0xff;\n\n o[44] = (x11 >>> 0) & 0xff;\n o[45] = (x11 >>> 8) & 0xff;\n o[46] = (x11 >>> 16) & 0xff;\n o[47] = (x11 >>> 24) & 0xff;\n\n o[48] = (x12 >>> 0) & 0xff;\n o[49] = (x12 >>> 8) & 0xff;\n o[50] = (x12 >>> 16) & 0xff;\n o[51] = (x12 >>> 24) & 0xff;\n\n o[52] = (x13 >>> 0) & 0xff;\n o[53] = (x13 >>> 8) & 0xff;\n o[54] = (x13 >>> 16) & 0xff;\n o[55] = (x13 >>> 24) & 0xff;\n\n o[56] = (x14 >>> 0) & 0xff;\n o[57] = (x14 >>> 8) & 0xff;\n o[58] = (x14 >>> 16) & 0xff;\n o[59] = (x14 >>> 24) & 0xff;\n\n o[60] = (x15 >>> 0) & 0xff;\n o[61] = (x15 >>> 8) & 0xff;\n o[62] = (x15 >>> 16) & 0xff;\n o[63] = (x15 >>> 24) & 0xff;\n}\n\nfunction core_hsalsa20(\n o: Uint8Array,\n p: Uint8Array,\n k: Uint8Array,\n c: Uint8Array,\n) {\n var j0 =\n (c[0] & 0xff) |\n ((c[1] & 0xff) << 8) |\n ((c[2] & 0xff) << 16) |\n ((c[3] & 0xff) << 24),\n j1 =\n (k[0] & 0xff) |\n ((k[1] & 0xff) << 8) |\n ((k[2] & 0xff) << 16) |\n ((k[3] & 0xff) << 24),\n j2 =\n (k[4] & 0xff) |\n ((k[5] & 0xff) << 8) |\n ((k[6] & 0xff) << 16) |\n ((k[7] & 0xff) << 24),\n j3 =\n (k[8] & 0xff) |\n ((k[9] & 0xff) << 8) |\n ((k[10] & 0xff) << 16) |\n ((k[11] & 0xff) << 24),\n j4 =\n (k[12] & 0xff) |\n ((k[13] & 0xff) << 8) |\n ((k[14] & 0xff) << 16) |\n ((k[15] & 0xff) << 24),\n j5 =\n (c[4] & 0xff) |\n ((c[5] & 0xff) << 8) |\n ((c[6] & 0xff) << 16) |\n ((c[7] & 0xff) << 24),\n j6 =\n (p[0] & 0xff) |\n ((p[1] & 0xff) << 8) |\n ((p[2] & 0xff) << 16) |\n ((p[3] & 0xff) << 24),\n j7 =\n (p[4] & 0xff) |\n ((p[5] & 0xff) << 8) |\n ((p[6] & 0xff) << 16) |\n ((p[7] & 0xff) << 24),\n j8 =\n (p[8] & 0xff) |\n ((p[9] & 0xff) << 8) |\n ((p[10] & 0xff) << 16) |\n ((p[11] & 0xff) << 24),\n j9 =\n (p[12] & 0xff) |\n ((p[13] & 0xff) << 8) |\n ((p[14] & 0xff) << 16) |\n ((p[15] & 0xff) << 24),\n j10 =\n (c[8] & 0xff) |\n ((c[9] & 0xff) << 8) |\n ((c[10] & 0xff) << 16) |\n ((c[11] & 0xff) << 24),\n j11 =\n (k[16] & 0xff) |\n ((k[17] & 0xff) << 8) |\n ((k[18] & 0xff) << 16) |\n ((k[19] & 0xff) << 24),\n j12 =\n (k[20] & 0xff) |\n ((k[21] & 0xff) << 8) |\n ((k[22] & 0xff) << 16) |\n ((k[23] & 0xff) << 24),\n j13 =\n (k[24] & 0xff) |\n ((k[25] & 0xff) << 8) |\n ((k[26] & 0xff) << 16) |\n ((k[27] & 0xff) << 24),\n j14 =\n (k[28] & 0xff) |\n ((k[29] & 0xff) << 8) |\n ((k[30] & 0xff) << 16) |\n ((k[31] & 0xff) << 24),\n j15 =\n (c[12] & 0xff) |\n ((c[13] & 0xff) << 8) |\n ((c[14] & 0xff) << 16) |\n ((c[15] & 0xff) << 24);\n\n var x0 = j0,\n x1 = j1,\n x2 = j2,\n x3 = j3,\n x4 = j4,\n x5 = j5,\n x6 = j6,\n x7 = j7,\n x8 = j8,\n x9 = j9,\n x10 = j10,\n x11 = j11,\n x12 = j12,\n x13 = j13,\n x14 = j14,\n x15 = j15,\n u;\n\n for (var i = 0; i < 20; i += 2) {\n u = (x0 + x12) | 0;\n x4 ^= (u << 7) | (u >>> (32 - 7));\n u = (x4 + x0) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x4) | 0;\n x12 ^= (u << 13) | (u >>> (32 - 13));\n u = (x12 + x8) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x1) | 0;\n x9 ^= (u << 7) | (u >>> (32 - 7));\n u = (x9 + x5) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x9) | 0;\n x1 ^= (u << 13) | (u >>> (32 - 13));\n u = (x1 + x13) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x6) | 0;\n x14 ^= (u << 7) | (u >>> (32 - 7));\n u = (x14 + x10) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x14) | 0;\n x6 ^= (u << 13) | (u >>> (32 - 13));\n u = (x6 + x2) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x11) | 0;\n x3 ^= (u << 7) | (u >>> (32 - 7));\n u = (x3 + x15) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x3) | 0;\n x11 ^= (u << 13) | (u >>> (32 - 13));\n u = (x11 + x7) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x0 + x3) | 0;\n x1 ^= (u << 7) | (u >>> (32 - 7));\n u = (x1 + x0) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x1) | 0;\n x3 ^= (u << 13) | (u >>> (32 - 13));\n u = (x3 + x2) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x4) | 0;\n x6 ^= (u << 7) | (u >>> (32 - 7));\n u = (x6 + x5) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x6) | 0;\n x4 ^= (u << 13) | (u >>> (32 - 13));\n u = (x4 + x7) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x9) | 0;\n x11 ^= (u << 7) | (u >>> (32 - 7));\n u = (x11 + x10) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x11) | 0;\n x9 ^= (u << 13) | (u >>> (32 - 13));\n u = (x9 + x8) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x14) | 0;\n x12 ^= (u << 7) | (u >>> (32 - 7));\n u = (x12 + x15) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x12) | 0;\n x14 ^= (u << 13) | (u >>> (32 - 13));\n u = (x14 + x13) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n }\n\n o[0] = (x0 >>> 0) & 0xff;\n o[1] = (x0 >>> 8) & 0xff;\n o[2] = (x0 >>> 16) & 0xff;\n o[3] = (x0 >>> 24) & 0xff;\n\n o[4] = (x5 >>> 0) & 0xff;\n o[5] = (x5 >>> 8) & 0xff;\n o[6] = (x5 >>> 16) & 0xff;\n o[7] = (x5 >>> 24) & 0xff;\n\n o[8] = (x10 >>> 0) & 0xff;\n o[9] = (x10 >>> 8) & 0xff;\n o[10] = (x10 >>> 16) & 0xff;\n o[11] = (x10 >>> 24) & 0xff;\n\n o[12] = (x15 >>> 0) & 0xff;\n o[13] = (x15 >>> 8) & 0xff;\n o[14] = (x15 >>> 16) & 0xff;\n o[15] = (x15 >>> 24) & 0xff;\n\n o[16] = (x6 >>> 0) & 0xff;\n o[17] = (x6 >>> 8) & 0xff;\n o[18] = (x6 >>> 16) & 0xff;\n o[19] = (x6 >>> 24) & 0xff;\n\n o[20] = (x7 >>> 0) & 0xff;\n o[21] = (x7 >>> 8) & 0xff;\n o[22] = (x7 >>> 16) & 0xff;\n o[23] = (x7 >>> 24) & 0xff;\n\n o[24] = (x8 >>> 0) & 0xff;\n o[25] = (x8 >>> 8) & 0xff;\n o[26] = (x8 >>> 16) & 0xff;\n o[27] = (x8 >>> 24) & 0xff;\n\n o[28] = (x9 >>> 0) & 0xff;\n o[29] = (x9 >>> 8) & 0xff;\n o[30] = (x9 >>> 16) & 0xff;\n o[31] = (x9 >>> 24) & 0xff;\n}\n\nvar sigma = new Uint8Array([\n 101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107,\n]);\n// \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(\n c: Uint8Array,\n cpos: number,\n m: Uint8Array,\n mpos: number,\n b: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var z = new Uint8Array(16),\n x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < 64; i++) c[cpos + i] = m[mpos + i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = (u + (z[i] & 0xff)) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < b; i++) c[cpos + i] = m[mpos + i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(\n c: Uint8Array,\n cpos: number,\n b: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var z = new Uint8Array(16),\n x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < 64; i++) c[cpos + i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = (u + (z[i] & 0xff)) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < b; i++) c[cpos + i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(\n c: Uint8Array,\n cpos: number,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var s = new Uint8Array(32);\n core_hsalsa20(s, n, k, sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i + 16];\n return crypto_stream_salsa20(c, cpos, d, sn, s);\n}\n\nfunction crypto_stream_xor(\n c: Uint8Array,\n cpos: number,\n m: Uint8Array,\n mpos: number,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var s = new Uint8Array(32);\n core_hsalsa20(s, n, k, sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i + 16];\n return crypto_stream_salsa20_xor(c, cpos, m, mpos, d, sn, s);\n}\n\n/*\n * Port of Andrew Moon's Poly1305-donna-16. Public domain.\n * https://github.com/floodyberry/poly1305-donna\n */\n\nclass poly1305 {\n buffer = new Uint8Array(16);\n r = new Uint16Array(10);\n h = new Uint16Array(10);\n pad = new Uint16Array(8);\n leftover = 0;\n fin = 0;\n\n constructor(key: Uint8Array) {\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = (key[0] & 0xff) | ((key[1] & 0xff) << 8);\n this.r[0] = t0 & 0x1fff;\n t1 = (key[2] & 0xff) | ((key[3] & 0xff) << 8);\n this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = (key[4] & 0xff) | ((key[5] & 0xff) << 8);\n this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = (key[6] & 0xff) | ((key[7] & 0xff) << 8);\n this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = (key[8] & 0xff) | ((key[9] & 0xff) << 8);\n this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = (t4 >>> 1) & 0x1ffe;\n t5 = (key[10] & 0xff) | ((key[11] & 0xff) << 8);\n this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = (key[12] & 0xff) | ((key[13] & 0xff) << 8);\n this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = (key[14] & 0xff) | ((key[15] & 0xff) << 8);\n this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = (t7 >>> 5) & 0x007f;\n\n this.pad[0] = (key[16] & 0xff) | ((key[17] & 0xff) << 8);\n this.pad[1] = (key[18] & 0xff) | ((key[19] & 0xff) << 8);\n this.pad[2] = (key[20] & 0xff) | ((key[21] & 0xff) << 8);\n this.pad[3] = (key[22] & 0xff) | ((key[23] & 0xff) << 8);\n this.pad[4] = (key[24] & 0xff) | ((key[25] & 0xff) << 8);\n this.pad[5] = (key[26] & 0xff) | ((key[27] & 0xff) << 8);\n this.pad[6] = (key[28] & 0xff) | ((key[29] & 0xff) << 8);\n this.pad[7] = (key[30] & 0xff) | ((key[31] & 0xff) << 8);\n }\n\n blocks(m: Uint8Array, mpos: number, bytes: number) {\n var hibit = this.fin ? 0 : 1 << 11;\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = (m[mpos + 0] & 0xff) | ((m[mpos + 1] & 0xff) << 8);\n h0 += t0 & 0x1fff;\n t1 = (m[mpos + 2] & 0xff) | ((m[mpos + 3] & 0xff) << 8);\n h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = (m[mpos + 4] & 0xff) | ((m[mpos + 5] & 0xff) << 8);\n h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = (m[mpos + 6] & 0xff) | ((m[mpos + 7] & 0xff) << 8);\n h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = (m[mpos + 8] & 0xff) | ((m[mpos + 9] & 0xff) << 8);\n h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += (t4 >>> 1) & 0x1fff;\n t5 = (m[mpos + 10] & 0xff) | ((m[mpos + 11] & 0xff) << 8);\n h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = (m[mpos + 12] & 0xff) | ((m[mpos + 13] & 0xff) << 8);\n h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = (m[mpos + 14] & 0xff) | ((m[mpos + 15] & 0xff) << 8);\n h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += (t7 >>> 5) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = d0 >>> 13;\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += d0 >>> 13;\n d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = d1 >>> 13;\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += d1 >>> 13;\n d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = d2 >>> 13;\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += d2 >>> 13;\n d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = d3 >>> 13;\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += d3 >>> 13;\n d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = d4 >>> 13;\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += d4 >>> 13;\n d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = d5 >>> 13;\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += d5 >>> 13;\n d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = d6 >>> 13;\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += d6 >>> 13;\n d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = d7 >>> 13;\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += d7 >>> 13;\n d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = d8 >>> 13;\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += d8 >>> 13;\n d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = d9 >>> 13;\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += d9 >>> 13;\n d9 &= 0x1fff;\n\n c = ((c << 2) + c) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = c >>> 13;\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n }\n\n finish(mac: Uint8Array, macpos: number) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += c * 5;\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= 1 << 13;\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = (this.h[0] | (this.h[1] << 13)) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10)) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7)) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4)) & 0xffff;\n this.h[4] =\n ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11)) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8)) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5)) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos + 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos + 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos + 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos + 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos + 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos + 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos + 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos + 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos + 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos + 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos + 10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos + 11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos + 12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos + 13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos + 14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos + 15] = (this.h[7] >>> 8) & 0xff;\n }\n\n update(m: Uint8Array, mpos: number, bytes: number) {\n let i: number;\n let want: number;\n if (this.leftover) {\n want = 16 - this.leftover;\n if (want > bytes) want = bytes;\n for (i = 0; i < want; i++) this.buffer[this.leftover + i] = m[mpos + i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16) return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++) this.buffer[this.leftover + i] = m[mpos + i];\n this.leftover += bytes;\n }\n }\n}\n\nfunction crypto_onetimeauth(\n out: Uint8Array,\n outpos: number,\n m: any,\n mpos: number,\n n: number,\n k: Uint8Array,\n) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(\n h: Uint8Array,\n hpos: number,\n m: any,\n mpos: number,\n n: number,\n k: Uint8Array,\n) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x, 0, m, mpos, n, k);\n return crypto_verify_16(h, hpos, x, 0);\n}\n\nfunction crypto_secretbox(\n c: Uint8Array,\n m: Uint8Array,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n): number {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c, 0, m, 0, d, n, k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(\n m: Uint8Array,\n c: Uint8Array,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n): number {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x, 0, 32, n, k);\n if (crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0) return -1;\n crypto_stream_xor(m, 0, c, 0, d, n, k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r: Float64Array, a: Float64Array): void {\n let i;\n for (i = 0; i < 16; i++) r[i] = a[i] | 0;\n}\n\nfunction car25519(o: Float64Array): void {\n let i,\n v,\n c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\n\nfunction sel25519(p: Float64Array, q: Float64Array, b: number): void {\n let t;\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o: Uint8Array, n: Float64Array): void {\n let i, j, b;\n const m = gf(),\n t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction neq25519(a: Float64Array, b: Float64Array): number {\n const c = new Uint8Array(32),\n d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a: Float64Array): number {\n const d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o: Float64Array, n: Uint8Array): void {\n let i;\n for (i = 0; i < 16; i++) o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o: Float64Array, a: Float64Array, b: Float64Array): void {\n for (let i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o: Float64Array, a: Float64Array, b: Float64Array): void {\n for (let i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o: Float64Array, a: Float64Array, b: Float64Array): void {\n let v,\n c,\n t0 = 0,\n t1 = 0,\n t2 = 0,\n t3 = 0,\n t4 = 0,\n t5 = 0,\n t6 = 0,\n t7 = 0,\n t8 = 0,\n t9 = 0,\n t10 = 0,\n t11 = 0,\n t12 = 0,\n t13 = 0,\n t14 = 0,\n t15 = 0,\n t16 = 0,\n t17 = 0,\n t18 = 0,\n t19 = 0,\n t20 = 0,\n t21 = 0,\n t22 = 0,\n t23 = 0,\n t24 = 0,\n t25 = 0,\n t26 = 0,\n t27 = 0,\n t28 = 0,\n t29 = 0,\n t30 = 0;\n const b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o: Float64Array, a: Float64Array): void {\n M(o, a, a);\n}\n\nfunction inv25519(o: Float64Array, i: Float64Array): void {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if (a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o: Float64Array, i: Float64Array): void {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if (a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(\n q: Uint8Array,\n n: Uint8Array,\n p: Uint8Array,\n): number {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n let r;\n let i;\n const a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (i = 0; i < 16; i++) {\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n a[0] = d[0] = 1;\n for (i = 254; i >= 0; --i) {\n r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q: Uint8Array, n: Uint8Array): number {\n return crypto_scalarmult(q, n, _9);\n}\n\nexport function crypto_scalarmult_noclamp(\n q: Uint8Array,\n n: Uint8Array,\n p: Uint8Array,\n): number {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n let r;\n let i;\n const a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n unpack25519(x, p);\n for (i = 0; i < 16; i++) {\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n a[0] = d[0] = 1;\n for (i = 254; i >= 0; --i) {\n r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n}\n\nexport function crypto_scalarmult_base_noclamp(\n q: Uint8Array,\n n: Uint8Array,\n): number {\n return crypto_scalarmult_noclamp(q, n, _9);\n}\n\n// prettier-ignore\nconst K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(\n hh: Int32Array,\n hl: Int32Array,\n m: Uint8Array,\n n: number,\n): number {\n const wh = new Int32Array(16),\n wl = new Int32Array(16);\n let bh0,\n bh1,\n bh2,\n bh3,\n bh4,\n bh5,\n bh6,\n bh7,\n bl0,\n bl1,\n bl2,\n bl3,\n bl4,\n bl5,\n bl6,\n bl7,\n th,\n tl,\n i,\n j,\n h,\n l,\n a,\n b,\n c,\n d;\n\n let ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n let pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j + 0] << 24) | (m[j + 1] << 16) | (m[j + 2] << 8) | m[j + 3];\n wl[i] = (m[j + 4] << 24) | (m[j + 5] << 16) | (m[j + 6] << 8) | m[j + 7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n // Sigma1\n h =\n ((ah4 >>> 14) | (al4 << (32 - 14))) ^\n ((ah4 >>> 18) | (al4 << (32 - 18))) ^\n ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l =\n ((al4 >>> 14) | (ah4 << (32 - 14))) ^\n ((al4 >>> 18) | (ah4 << (32 - 18))) ^\n ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = (c & 0xffff) | (d << 16);\n tl = (a & 0xffff) | (b << 16);\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n // Sigma0\n h =\n ((ah0 >>> 28) | (al0 << (32 - 28))) ^\n ((al0 >>> (34 - 32)) | (ah0 << (32 - (34 - 32)))) ^\n ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l =\n ((al0 >>> 28) | (ah0 << (32 - 28))) ^\n ((ah0 >>> (34 - 32)) | (al0 << (32 - (34 - 32)))) ^\n ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i % 16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h =\n ((th >>> 1) | (tl << (32 - 1))) ^\n ((th >>> 8) | (tl << (32 - 8))) ^\n (th >>> 7);\n l =\n ((tl >>> 1) | (th << (32 - 1))) ^\n ((tl >>> 8) | (th << (32 - 8))) ^\n ((tl >>> 7) | (th << (32 - 7)));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h =\n ((th >>> 19) | (tl << (32 - 19))) ^\n ((tl >>> (61 - 32)) | (th << (32 - (61 - 32)))) ^\n (th >>> 6);\n l =\n ((tl >>> 19) | (th << (32 - 19))) ^\n ((th >>> (61 - 32)) | (tl << (32 - (61 - 32)))) ^\n ((tl >>> 6) | (th << (32 - 6)));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out: Uint8Array, m: Uint8Array, n: number): number {\n const hh = new Int32Array(8);\n const hl = new Int32Array(8);\n const x = new Uint8Array(256);\n const b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (let i = 0; i < n; i++) x[i] = m[b - n + i];\n x[n] = 128;\n\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (let i = 0; i < 8; i++) ts64(out, 8 * i, hh[i], hl[i]);\n\n return 0;\n}\n\n/**\n * Incremental version of crypto_hash.\n */\nexport class HashState {\n private hh = new Int32Array(8);\n private hl = new Int32Array(8);\n\n private next = new Uint8Array(128);\n private p = 0;\n private total = 0;\n\n constructor() {\n this.hh[0] = 0x6a09e667;\n this.hh[1] = 0xbb67ae85;\n this.hh[2] = 0x3c6ef372;\n this.hh[3] = 0xa54ff53a;\n this.hh[4] = 0x510e527f;\n this.hh[5] = 0x9b05688c;\n this.hh[6] = 0x1f83d9ab;\n this.hh[7] = 0x5be0cd19;\n\n this.hl[0] = 0xf3bcc908;\n this.hl[1] = 0x84caa73b;\n this.hl[2] = 0xfe94f82b;\n this.hl[3] = 0x5f1d36f1;\n this.hl[4] = 0xade682d1;\n this.hl[5] = 0x2b3e6c1f;\n this.hl[6] = 0xfb41bd6b;\n this.hl[7] = 0x137e2179;\n }\n\n update(data: Uint8Array): HashState {\n this.total += data.length;\n let i = 0;\n while (i < data.length) {\n const r = 128 - this.p;\n if (r > data.length - i) {\n for (let j = 0; i + j < data.length; j++) {\n this.next[this.p + j] = data[i + j];\n }\n this.p += data.length - i;\n break;\n } else {\n for (let j = 0; this.p + j < 128; j++) {\n this.next[this.p + j] = data[i + j];\n }\n crypto_hashblocks_hl(this.hh, this.hl, this.next, 128);\n i += 128 - this.p;\n this.p = 0;\n }\n }\n return this;\n }\n\n finish(): Uint8Array {\n const out = new Uint8Array(64);\n let n = this.p;\n const x = new Uint8Array(256);\n const b = this.total;\n for (let i = 0; i < n; i++) x[i] = this.next[i];\n x[n] = 128;\n\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(this.hh, this.hl, x, n);\n\n for (let i = 0; i < 8; i++) ts64(out, 8 * i, this.hh[i], this.hl[i]);\n return out;\n }\n}\n\nfunction add(p: Float64Array[], q: Float64Array[]): void {\n const a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf(),\n g = gf(),\n h = gf(),\n t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p: Float64Array[], q: Float64Array[], b: number): void {\n let i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r: Uint8Array, p: Float64Array[]): void {\n const tx = gf(),\n ty = gf(),\n zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\n/**\n * Ed25519 scalar multiplication\n */\nfunction scalarmult(p: Float64Array[], q: Float64Array[], s: Uint8Array): void {\n let b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p: Float64Array[], s: Uint8Array): void {\n const q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(\n pk: Uint8Array,\n sk: Uint8Array,\n seeded: boolean,\n): number {\n const d = new Uint8Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (let i = 0; i < 32; i++) sk[i + 32] = pk[i];\n return 0;\n}\n\nexport const L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde,\n 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10,\n]);\n\nfunction modL(r: Uint8Array, x: Float64Array): void {\n let carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r: Uint8Array): void {\n const x = new Float64Array(64);\n for (let i = 0; i < 64; i++) x[i] = r[i];\n for (let i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(\n sm: Uint8Array,\n m: Uint8Array,\n n: number,\n sk: Uint8Array,\n): number {\n const d = new Uint8Array(64),\n h = new Uint8Array(64),\n r = new Uint8Array(64);\n let i, j;\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n const smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackpos(r: Float64Array[], p: Uint8Array): number {\n // FIXME: implement directly\n const q = [gf(), gf(), gf(), gf()];\n if (unpackneg(q, p)) return -1;\n const scalar0 = new Uint8Array(32);\n const scalar1 = new Uint8Array(32);\n scalar1[0] = 1;\n const scalarNeg1 = crypto_core_ed25519_scalar_sub(scalar0, scalar1);\n scalarmult(r, q, scalarNeg1);\n return 0;\n}\n\nfunction unpackneg(r: Float64Array[], p: Uint8Array): number {\n const t = gf();\n const chk = gf();\n const num = gf();\n const den = gf();\n const den2 = gf();\n const den4 = gf();\n const den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === p[31] >> 7) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nexport function crypto_scalarmult_ed25519_base_noclamp(\n s: Uint8Array,\n): Uint8Array {\n const r = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n\n scalarbase(p, s);\n pack(r, p);\n return r;\n}\n\nexport function crypto_scalarmult_ed25519_noclamp(\n s: Uint8Array,\n q: Uint8Array,\n): Uint8Array {\n const r = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n const ql = [gf(), gf(), gf(), gf()];\n\n if (unpackpos(ql, q)) throw new Error();\n scalarmult(p, ql, s);\n pack(r, p);\n return r;\n}\n\nexport function crypto_core_ed25519_add(\n p1: Uint8Array,\n p2: Uint8Array,\n): Uint8Array {\n const q1 = [gf(), gf(), gf(), gf()];\n const q2 = [gf(), gf(), gf(), gf()];\n const res = new Uint8Array(32);\n if (unpackpos(q1, p1)) throw new Error();\n if (unpackpos(q2, p2)) throw new Error();\n add(q1, q2);\n pack(res, q1);\n return res;\n}\n\nfunction crypto_sign_open(\n m: Uint8Array,\n sm: Uint8Array,\n n: number,\n pk: Uint8Array,\n): number {\n let i, mlen;\n const t = new Uint8Array(32),\n h = new Uint8Array(64);\n const p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i + 32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n mlen = n;\n return mlen;\n}\n\nconst crypto_secretbox_KEYBYTES = 32;\nconst crypto_secretbox_NONCEBYTES = 24;\nconst crypto_secretbox_ZEROBYTES = 32;\nconst crypto_secretbox_BOXZEROBYTES = 16;\nconst crypto_scalarmult_BYTES = 32;\nconst crypto_scalarmult_SCALARBYTES = 32;\nconst crypto_sign_BYTES = 64;\nconst crypto_sign_PUBLICKEYBYTES = 32;\nconst crypto_sign_SECRETKEYBYTES = 64;\nconst crypto_sign_SEEDBYTES = 32;\nconst crypto_hash_BYTES = 64;\n\n/* High-level API */\n\nfunction checkLengths(k: Uint8Array, n: Uint8Array) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error(\"bad key size\");\n if (n.length !== crypto_secretbox_NONCEBYTES)\n throw new Error(\"bad nonce size\");\n}\n\nfunction checkArrayTypes(...args: Uint8Array[]): void {\n for (let i = 0; i < args.length; i++) {\n if (!(args[i] instanceof Uint8Array))\n throw new TypeError(\"unexpected type, use Uint8Array\");\n }\n}\n\nexport function randomBytes(n: number): Uint8Array {\n const b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n}\n\nexport function scalarMult(n: Uint8Array, p: Uint8Array): Uint8Array {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error(\"bad n size\");\n if (p.length !== crypto_scalarmult_BYTES) throw new Error(\"bad p size\");\n const q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n}\n\nexport function scalarMult_base(n: Uint8Array): Uint8Array {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error(\"bad n size\");\n const q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n}\n\nexport const scalarMult_scalarLength = crypto_scalarmult_SCALARBYTES;\nexport const scalarMult_groupElementLength = crypto_scalarmult_BYTES;\n\nexport function sign(msg: Uint8Array, secretKey: Uint8Array): Uint8Array {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error(\"bad secret key size\");\n const signedMsg = new Uint8Array(crypto_sign_BYTES + msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n}\n\nexport function sign_open(\n signedMsg: Uint8Array,\n publicKey: Uint8Array,\n): Uint8Array | null {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error(\"bad public key size\");\n const tmp = new Uint8Array(signedMsg.length);\n const mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n const m = new Uint8Array(mlen);\n for (let i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n}\n\nexport function sign_detached(\n msg: Uint8Array,\n secretKey: Uint8Array,\n): Uint8Array {\n const signedMsg = sign(msg, secretKey);\n const sig = new Uint8Array(crypto_sign_BYTES);\n for (let i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n}\n\nexport function sign_detached_verify(\n msg: Uint8Array,\n sig: Uint8Array,\n publicKey: Uint8Array,\n): boolean {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES) throw new Error(\"bad signature size\");\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error(\"bad public key size\");\n const sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n const m = new Uint8Array(crypto_sign_BYTES + msg.length);\n let i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i + crypto_sign_BYTES] = msg[i];\n return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;\n}\n\nexport function sign_keyPair(): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n const pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n const sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk, false);\n return { publicKey: pk, secretKey: sk };\n}\n\nexport function x25519_edwards_keyPair_fromSecretKey(\n secretKey: Uint8Array,\n): Uint8Array {\n const p = [gf(), gf(), gf(), gf()];\n const pk = new Uint8Array(32);\n\n const d = new Uint8Array(64);\n if (secretKey.length != 32) {\n throw new Error(\"bad secret key size\");\n }\n d.set(secretKey, 0);\n\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n return pk;\n}\n\nexport function crypto_sign_keyPair_fromSecretKey(secretKey: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error(\"bad secret key size\");\n const pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (let i = 0; i < pk.length; i++) pk[i] = secretKey[32 + i];\n return { publicKey: pk, secretKey: new Uint8Array(secretKey) };\n}\n\nexport function crypto_sign_keyPair_fromSeed(seed: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error(`bad seed size: ${seed.length}`);\n const pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n const sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (let i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return { publicKey: pk, secretKey: sk };\n}\n\nexport const sign_publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nexport const sign_secretKeyLength = crypto_sign_SECRETKEYBYTES;\nexport const sign_seedLength = crypto_sign_SEEDBYTES;\nexport const sign_signatureLength = crypto_sign_BYTES;\n\nexport function hash(msg: Uint8Array): Uint8Array {\n checkArrayTypes(msg);\n const h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n}\n\nexport const hash_hashLength = crypto_hash_BYTES;\n\nexport function verify(x: Uint8Array, y: Uint8Array): boolean {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return vn(x, 0, y, 0, x.length) === 0 ? true : false;\n}\n\nexport function setPRNG(fn: (x: Uint8Array, n: number) => void): void {\n randombytes = fn;\n}\n\nexport function sign_ed25519_pk_to_curve25519(\n ed25519_pk: Uint8Array,\n): Uint8Array {\n const ge_a = [gf(), gf(), gf(), gf()];\n const x = gf();\n const one_minus_y = gf();\n const x25519_pk = new Uint8Array(32);\n\n if (unpackneg(ge_a, ed25519_pk)) {\n throw Error(\"invalid public key\");\n }\n\n set25519(one_minus_y, gf1);\n Z(one_minus_y, one_minus_y, ge_a[1]);\n\n set25519(x, gf1);\n A(x, x, ge_a[1]);\n\n inv25519(one_minus_y, one_minus_y);\n M(x, x, one_minus_y);\n pack25519(x25519_pk, x);\n\n return x25519_pk;\n}\n\nexport function secretbox(\n msg: Uint8Array,\n nonce: Uint8Array,\n key: Uint8Array,\n): Uint8Array {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++)\n m[i + crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n}\n\nexport function secretbox_open(\n box: Uint8Array,\n nonce: Uint8Array,\n key: Uint8Array,\n): Uint8Array | undefined {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++)\n c[i + crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return undefined;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return undefined;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n}\n\nexport function crypto_core_ed25519_scalar_add(\n x: Uint8Array,\n y: Uint8Array,\n): Uint8Array {\n const z = new Float64Array(64);\n for (let i = 0; i < 32; i++) {\n z[i] = x[i] + y[i];\n }\n const o = new Uint8Array(32);\n modL(o, z);\n return o;\n}\n\n/**\n * Reduce a scalar \"s\" to \"s mod L\". The input can be up to 64 bytes long.\n */\nexport function crypto_core_ed25519_scalar_reduce(x: Uint8Array): Uint8Array {\n const len = x.length;\n const z = new Float64Array(64);\n for (let i = 0; i < len; i++) z[i] = x[i];\n const o = new Uint8Array(32);\n modL(o, z);\n return o;\n}\n\nexport function crypto_core_ed25519_scalar_sub(\n x: Uint8Array,\n y: Uint8Array,\n): Uint8Array {\n const z = new Float64Array(64);\n for (let i = 0; i < 32; i++) {\n z[i] = x[i] - y[i];\n }\n const o = new Uint8Array(32);\n modL(o, z);\n return o;\n}\n\nexport function crypto_edx25519_private_key_create(): Uint8Array {\n const seed = new Uint8Array(32);\n randombytes(seed, 32);\n return crypto_edx25519_private_key_create_from_seed(seed);\n}\n\nexport function crypto_edx25519_private_key_create_from_seed(\n seed: Uint8Array,\n): Uint8Array {\n const pk = hash(seed);\n pk[0] &= 248;\n pk[31] &= 127;\n pk[31] |= 64;\n return pk;\n}\n\nexport function crypto_edx25519_get_public(priv: Uint8Array): Uint8Array {\n return crypto_scalarmult_ed25519_base_noclamp(priv.subarray(0, 32));\n}\n\nexport function crypto_edx25519_sign_detached(\n m: Uint8Array,\n skx: Uint8Array,\n pkx: Uint8Array,\n): Uint8Array {\n const n: number = m.length;\n const h = new Uint8Array(64);\n const r = new Uint8Array(64);\n let i, j;\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n const sm = new Uint8Array(n + 64);\n\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = skx[32 + i];\n\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = pkx[i - 32];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * skx[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return sm.subarray(0, 64);\n}\n\nexport function crypto_edx25519_sign_detached_verify(\n msg: Uint8Array,\n sig: Uint8Array,\n publicKey: Uint8Array,\n): boolean {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES) throw new Error(\"bad signature size\");\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error(\"bad public key size\");\n const sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n const m = new Uint8Array(crypto_sign_BYTES + msg.length);\n let i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i + crypto_sign_BYTES] = msg[i];\n return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;\n}\n", "import { setPRNG } from \"./nacl-fast.js\";\n\nexport function loadBrowserPrng() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n // @ts-ignore-error\n const cr = typeof self !== \"undefined\" ? self.crypto || self.msCrypto : null;\n\n const QUOTA = 65536;\n setPRNG(function (x: Uint8Array, n: number) {\n let i;\n const v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n cr.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n for (i = 0; i < v.length; i++) v[i] = 0;\n });\n}\n", "/*\n This file is part of GNU Taler\n Copyright (C) 2012-2020 Taler Systems SA\n\n GNU Taler is free software: you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as published\n by the Free Software Foundation, either version 3 of the License,\n or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but\n WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with this program. If not, see <http://www.gnu.org/licenses/>.\n\n SPDX-License-Identifier: LGPL3.0-or-later\n\n Note: the LGPL does not apply to all components of GNU Taler,\n but it does apply to this file.\n */\n\nexport enum TalerErrorCode {\n\n\n /**\n * Special code to indicate success (no error).\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n NONE = 0,\n\n\n /**\n * A non-integer error code was returned in the JSON response.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n INVALID = 1,\n\n\n /**\n * An internal failure happened on the client side.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CLIENT_INTERNAL_ERROR = 2,\n\n\n /**\n * The response we got from the server was not even in JSON format.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_INVALID_RESPONSE = 10,\n\n\n /**\n * An operation timed out.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TIMEOUT = 11,\n\n\n /**\n * The version string given does not follow the expected CURRENT:REVISION:AGE Format.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_VERSION_MALFORMED = 12,\n\n\n /**\n * The service responded with a reply that was in JSON but did not satsify the protocol. Note that invalid cryptographic signatures should have signature-specific error codes.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_REPLY_MALFORMED = 13,\n\n\n /**\n * There is an error in the client-side configuration, for example the base URL specified is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CONFIGURATION_INVALID = 14,\n\n\n /**\n * The client made a request to a service, but received an error response it does not know how to handle.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_UNEXPECTED_REQUEST_ERROR = 15,\n\n\n /**\n * The token used by the client to authorize the request does not grant the required permissions for the request.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_PERMISSION_INSUFFICIENT = 16,\n\n\n /**\n * The HTTP method used is invalid for this endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_METHOD_NOT_ALLOWED (405).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_METHOD_INVALID = 20,\n\n\n /**\n * There is no endpoint defined for the URL provided by the client.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_ENDPOINT_UNKNOWN = 21,\n\n\n /**\n * The JSON in the client's request was malformed (generic parse error).\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_JSON_INVALID = 22,\n\n\n /**\n * Some of the HTTP headers provided by the client caused the server to not be able to handle the request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_HTTP_HEADERS_MALFORMED = 23,\n\n\n /**\n * The payto:// URI provided by the client is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PAYTO_URI_MALFORMED = 24,\n\n\n /**\n * A required parameter in the request was missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PARAMETER_MISSING = 25,\n\n\n /**\n * A parameter in the request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PARAMETER_MALFORMED = 26,\n\n\n /**\n * The reserve public key given as part of a /reserves/ endpoint was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_RESERVE_PUB_MALFORMED = 27,\n\n\n /**\n * The body in the request could not be decompressed by the server.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_COMPRESSION_INVALID = 28,\n\n\n /**\n * The currency involved in the operation is not acceptable for this backend.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CURRENCY_MISMATCH = 30,\n\n\n /**\n * The URI is longer than the longest URI the HTTP server is willing to parse.\n * Returned with an HTTP status code of #MHD_HTTP_URI_TOO_LONG (414).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_URI_TOO_LONG = 31,\n\n\n /**\n * The body is too large to be permissible for the endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_UPLOAD_EXCEEDS_LIMIT = 32,\n\n\n /**\n * The service refused the request due to lack of proper authorization.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_UNAUTHORIZED = 40,\n\n\n /**\n * The service refused the request as the given authorization token is unknown.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_UNKNOWN = 41,\n\n\n /**\n * The service refused the request as the given authorization token expired.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_EXPIRED = 42,\n\n\n /**\n * The service refused the request as the given authorization token is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_MALFORMED = 43,\n\n\n /**\n * The service refused the request due to lack of proper rights on the resource.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FORBIDDEN = 44,\n\n\n /**\n * The service failed initialize its connection to the database.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_SETUP_FAILED = 50,\n\n\n /**\n * The service encountered an error event to just start the database transaction.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_START_FAILED = 51,\n\n\n /**\n * The service failed to store information in its database.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_STORE_FAILED = 52,\n\n\n /**\n * The service failed to fetch information from its database.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_FETCH_FAILED = 53,\n\n\n /**\n * The service encountered an error event to commit the database transaction (hard, unrecoverable error).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_COMMIT_FAILED = 54,\n\n\n /**\n * The service encountered an error event to commit the database transaction, even after repeatedly retrying it there was always a conflicting transaction. (This indicates a repeated serialization error; should only happen if some client maliciously tries to create conflicting concurrent transactions.)\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_SOFT_FAILURE = 55,\n\n\n /**\n * The service's database is inconsistent and violates service-internal invariants.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_INVARIANT_FAILURE = 56,\n\n\n /**\n * The HTTP server experienced an internal invariant failure (bug).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_INTERNAL_INVARIANT_FAILURE = 60,\n\n\n /**\n * The service could not compute a cryptographic hash over some JSON value.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_COMPUTE_JSON_HASH = 61,\n\n\n /**\n * The service could not compute an amount.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_COMPUTE_AMOUNT = 62,\n\n\n /**\n * The HTTP server had insufficient memory to parse the request.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PARSER_OUT_OF_MEMORY = 70,\n\n\n /**\n * The HTTP server failed to allocate memory.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_ALLOCATION_FAILURE = 71,\n\n\n /**\n * The HTTP server failed to allocate memory for building JSON reply.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_JSON_ALLOCATION_FAILURE = 72,\n\n\n /**\n * The HTTP server failed to allocate memory for making a CURL request.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CURL_ALLOCATION_FAILURE = 73,\n\n\n /**\n * The backend could not locate a required template to generate an HTML reply.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_TO_LOAD_TEMPLATE = 74,\n\n\n /**\n * The backend could not expand the template to generate an HTML reply.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_TO_EXPAND_TEMPLATE = 75,\n\n\n /**\n * Exchange is badly configured and thus cannot operate.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_BAD_CONFIGURATION = 1000,\n\n\n /**\n * Operation specified unknown for this endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_OPERATION_UNKNOWN = 1001,\n\n\n /**\n * The number of segments included in the URI does not match the number of segments expected by the endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_WRONG_NUMBER_OF_SEGMENTS = 1002,\n\n\n /**\n * The same coin was already used with a different denomination previously.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY = 1003,\n\n\n /**\n * The public key of given to a \"/coins/\" endpoint of the exchange was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COINS_INVALID_COIN_PUB = 1004,\n\n\n /**\n * The exchange is not aware of the denomination key the wallet requested for the operation.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN = 1005,\n\n\n /**\n * The signature of the denomination key over the coin is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_SIGNATURE_INVALID = 1006,\n\n\n /**\n * The exchange failed to perform the operation as it could not find the private keys. This is a problem with the exchange setup, not with the client's request.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_KEYS_MISSING = 1007,\n\n\n /**\n * Validity period of the denomination lies in the future.\n * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE = 1008,\n\n\n /**\n * Denomination key of the coin is past its expiration time for the requested operation.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_EXPIRED = 1009,\n\n\n /**\n * Denomination key of the coin has been revoked.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_REVOKED = 1010,\n\n\n /**\n * An operation where the exchange interacted with a security module timed out.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_SECMOD_TIMEOUT = 1011,\n\n\n /**\n * The respective coin did not have sufficient residual value for the operation. The \"history\" in this response provides the \"residual_value\" of the coin, which may be less than its \"original_value\".\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_INSUFFICIENT_FUNDS = 1012,\n\n\n /**\n * The exchange had an internal error reconstructing the transaction history of the coin that was being processed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_HISTORY_COMPUTATION_FAILED = 1013,\n\n\n /**\n * The exchange failed to obtain the transaction history of the given coin from the database while generating an insufficient funds errors.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1014,\n\n\n /**\n * The same coin was already used with a different age hash previously.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH = 1015,\n\n\n /**\n * The requested operation is not valid for the cipher used by the selected denomination.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION = 1016,\n\n\n /**\n * The provided arguments for the operation use inconsistent ciphers.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_CIPHER_MISMATCH = 1017,\n\n\n /**\n * The number of denominations specified in the request exceeds the limit of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE = 1018,\n\n\n /**\n * The coin is not known to the exchange (yet).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_UNKNOWN = 1019,\n\n\n /**\n * The time at the server is too far off from the time specified in the request. Most likely the client system time is wrong.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_CLOCK_SKEW = 1020,\n\n\n /**\n * The specified amount for the coin is higher than the value of the denomination of the coin.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE = 1021,\n\n\n /**\n * The exchange was not properly configured with global fees.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_GLOBAL_FEES_MISSING = 1022,\n\n\n /**\n * The exchange was not properly configured with wire fees.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_WIRE_FEES_MISSING = 1023,\n\n\n /**\n * The purse public key was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_PUB_MALFORMED = 1024,\n\n\n /**\n * The purse is unknown.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_UNKNOWN = 1025,\n\n\n /**\n * The purse has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_EXPIRED = 1026,\n\n\n /**\n * The exchange has no information about the \"reserve_pub\" that was given.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_RESERVE_UNKNOWN = 1027,\n\n\n /**\n * The exchange is not allowed to proceed with the operation until the client has satisfied a KYC check.\n * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_KYC_REQUIRED = 1028,\n\n\n /**\n * Inconsistency between provided age commitment and attest: either none or both must be provided\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_COIN_CONFLICTING_ATTEST_VS_AGE_COMMITMENT = 1029,\n\n\n /**\n * The provided attestation for the minimum age couldn't be verified by the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_COIN_AGE_ATTESTATION_FAILURE = 1030,\n\n\n /**\n * The purse was deleted.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_DELETED = 1031,\n\n\n /**\n * The public key of the AML officer in the URL was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_OFFICER_PUB_MALFORMED = 1032,\n\n\n /**\n * The signature affirming the GET request of the AML officer is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID = 1033,\n\n\n /**\n * The specified AML officer does not have access at this time.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED = 1034,\n\n\n /**\n * The requested operation is denied pending the resolution of an anti-money laundering investigation by the exchange operator. This is a manual process, please wait and retry later.\n * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_PENDING = 1035,\n\n\n /**\n * The requested operation is denied as the account was frozen on suspicion of money laundering. Please contact the exchange operator.\n * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_FROZEN = 1036,\n\n\n /**\n * The exchange did not find information about the specified transaction in the database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_NOT_FOUND = 1100,\n\n\n /**\n * The wire hash of given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE = 1101,\n\n\n /**\n * The merchant key of given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB = 1102,\n\n\n /**\n * The hash of the contract terms given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_H_CONTRACT_TERMS = 1103,\n\n\n /**\n * The coin public key of given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_COIN_PUB = 1104,\n\n\n /**\n * The signature returned by the exchange in a /deposits/ request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_SIGNATURE_BY_EXCHANGE = 1105,\n\n\n /**\n * The signature of the merchant is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID = 1106,\n\n\n /**\n * The provided policy data was not accepted\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_POLICY_NOT_ACCEPTED = 1107,\n\n\n /**\n * The given reserve does not have sufficient funds to admit the requested withdraw operation at this time. The response includes the current \"balance\" of the reserve as well as the transaction \"history\" that lead to this balance.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS = 1150,\n\n\n /**\n * The given reserve does not have sufficient funds to admit the requested age-withdraw operation at this time. The response includes the current \"balance\" of the reserve as well as the transaction \"history\" that lead to this balance.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_INSUFFICIENT_FUNDS = 1151,\n\n\n /**\n * The amount to withdraw together with the fee exceeds the numeric range for Taler amounts. This is not a client failure, as the coin value and fees come from the exchange's configuration.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW = 1152,\n\n\n /**\n * The exchange failed to create the signature using the denomination key.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_SIGNATURE_FAILED = 1153,\n\n\n /**\n * The signature of the reserve is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_RESERVE_SIGNATURE_INVALID = 1154,\n\n\n /**\n * When computing the reserve history, we ended up with a negative overall balance, which should be impossible.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS = 1155,\n\n\n /**\n * The reserve did not have sufficient funds in it to pay for a full reserve history statement.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GET_RESERVE_HISTORY_ERROR_INSUFFICIENT_BALANCE = 1156,\n\n\n /**\n * Withdraw period of the coin to be withdrawn is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST = 1158,\n\n\n /**\n * The client failed to unblind the blind signature.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_UNBLIND_FAILURE = 1159,\n\n\n /**\n * The client re-used a withdraw nonce, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_NONCE_REUSE = 1160,\n\n\n /**\n * The client provided an unknown commitment for an age-withdraw request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_COMMITMENT_UNKNOWN = 1161,\n\n\n /**\n * The total sum of amounts from the denominations did overflow.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_AMOUNT_OVERFLOW = 1162,\n\n\n /**\n * The total sum of value and fees from the denominations differs from the committed amount with fees.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_AMOUNT_INCORRECT = 1163,\n\n\n /**\n * The original commitment differs from the calculated hash\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_REVEAL_INVALID_HASH = 1164,\n\n\n /**\n * The maximum age in the commitment is too large for the reserve\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_MAXIMUM_AGE_TOO_LARGE = 1165,\n\n\n /**\n * The batch withdraw included a planchet that was already withdrawn. This is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET = 1175,\n\n\n /**\n * The signature made by the coin over the deposit permission is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_COIN_SIGNATURE_INVALID = 1205,\n\n\n /**\n * The same coin was already deposited for the same merchant and contract with other details.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_CONFLICTING_CONTRACT = 1206,\n\n\n /**\n * The stated value of the coin after the deposit fee is subtracted would be negative.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE = 1207,\n\n\n /**\n * The stated refund deadline is after the wire deadline.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE = 1208,\n\n\n /**\n * The stated wire deadline is \"never\", which makes no sense.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_WIRE_DEADLINE_IS_NEVER = 1209,\n\n\n /**\n * The exchange failed to canonicalize and hash the given wire format. For example, the merchant failed to provide the \"salt\" or a valid payto:// URI in the wire details. Note that while the exchange will do some basic sanity checking on the wire details, it cannot warrant that the banking system will ultimately be able to route to the specified address, even if this check passed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_JSON = 1210,\n\n\n /**\n * The hash of the given wire address does not match the wire hash specified in the proposal data.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_CONTRACT_HASH_CONFLICT = 1211,\n\n\n /**\n * The signature provided by the exchange is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE = 1221,\n\n\n /**\n * The deposited amount is smaller than the deposit fee, which would result in a negative contribution.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_FEE_ABOVE_AMOUNT = 1222,\n\n\n /**\n * The proof of policy fulfillment was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_EXTENSIONS_INVALID_FULFILLMENT = 1240,\n\n\n /**\n * The coin history was requested with a bad signature.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_COIN_HISTORY_BAD_SIGNATURE = 1251,\n\n\n /**\n * The reserve history was requested with a bad signature.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVE_HISTORY_BAD_SIGNATURE = 1252,\n\n\n /**\n * The exchange encountered melt fees exceeding the melted coin's contribution.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_FEES_EXCEED_CONTRIBUTION = 1302,\n\n\n /**\n * The signature made with the coin to be melted is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_COIN_SIGNATURE_INVALID = 1303,\n\n\n /**\n * The denomination of the given coin has past its expiration date and it is also not a valid zombie (that is, was not refreshed with the fresh coin being subjected to recoup).\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_COIN_EXPIRED_NO_ZOMBIE = 1305,\n\n\n /**\n * The signature returned by the exchange in a melt request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_INVALID_SIGNATURE_BY_EXCHANGE = 1306,\n\n\n /**\n * The provided transfer keys do not match up with the original commitment. Information about the original commitment is included in the response.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_COMMITMENT_VIOLATION = 1353,\n\n\n /**\n * Failed to produce the blinded signatures over the coins to be returned.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_SIGNING_ERROR = 1354,\n\n\n /**\n * The exchange is unaware of the refresh session specified in the request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_SESSION_UNKNOWN = 1355,\n\n\n /**\n * The size of the cut-and-choose dimension of the private transfer keys request does not match #TALER_CNC_KAPPA - 1.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID = 1356,\n\n\n /**\n * The number of envelopes given does not match the number of denomination keys given.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH = 1358,\n\n\n /**\n * The exchange encountered a numeric overflow totaling up the cost for the refresh operation.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_COST_CALCULATION_OVERFLOW = 1359,\n\n\n /**\n * The exchange's cost calculation shows that the melt amount is below the costs of the transaction.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_AMOUNT_INSUFFICIENT = 1360,\n\n\n /**\n * The signature made with the coin over the link data is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_LINK_SIGNATURE_INVALID = 1361,\n\n\n /**\n * The refresh session hash given to a /refreshes/ handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_INVALID_RCH = 1362,\n\n\n /**\n * Operation specified invalid for this endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_OPERATION_INVALID = 1363,\n\n\n /**\n * The client provided age commitment data, but age restriction is not supported on this server.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_NOT_SUPPORTED = 1364,\n\n\n /**\n * The client provided invalid age commitment data: missing, not an array, or array of invalid size.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_COMMITMENT_INVALID = 1365,\n\n\n /**\n * The coin specified in the link request is unknown to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_LINK_COIN_UNKNOWN = 1400,\n\n\n /**\n * The public key of given to a /transfers/ handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WTID_MALFORMED = 1450,\n\n\n /**\n * The exchange did not find information about the specified wire transfer identifier in the database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WTID_NOT_FOUND = 1451,\n\n\n /**\n * The exchange did not find information about the wire transfer fees it charged.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WIRE_FEE_NOT_FOUND = 1452,\n\n\n /**\n * The exchange found a wire fee that was above the total transfer value (and thus could not have been charged).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WIRE_FEE_INCONSISTENT = 1453,\n\n\n /**\n * The wait target of the URL was not in the set of expected values.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSES_INVALID_WAIT_TARGET = 1475,\n\n\n /**\n * The signature on the purse status returned by the exchange was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSES_GET_INVALID_SIGNATURE_BY_EXCHANGE = 1476,\n\n\n /**\n * The exchange knows literally nothing about the coin we were asked to refund. But without a transaction history, we cannot issue a refund. This is kind-of OK, the owner should just refresh it directly without executing the refund.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_COIN_NOT_FOUND = 1500,\n\n\n /**\n * We could not process the refund request as the coin's transaction history does not permit the requested refund because then refunds would exceed the deposit amount. The \"history\" in the response proves this.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_CONFLICT_DEPOSIT_INSUFFICIENT = 1501,\n\n\n /**\n * The exchange knows about the coin we were asked to refund, but not about the specific /deposit operation. Hence, we cannot issue a refund (as we do not know if this merchant public key is authorized to do a refund).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_DEPOSIT_NOT_FOUND = 1502,\n\n\n /**\n * The exchange can no longer refund the customer/coin as the money was already transferred (paid out) to the merchant. (It should be past the refund deadline.)\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_MERCHANT_ALREADY_PAID = 1503,\n\n\n /**\n * The refund fee specified for the request is lower than the refund fee charged by the exchange for the given denomination key of the refunded coin.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_FEE_TOO_LOW = 1504,\n\n\n /**\n * The refunded amount is smaller than the refund fee, which would result in a negative refund.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_FEE_ABOVE_AMOUNT = 1505,\n\n\n /**\n * The signature of the merchant is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_MERCHANT_SIGNATURE_INVALID = 1506,\n\n\n /**\n * Merchant backend failed to create the refund confirmation signature.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_MERCHANT_SIGNING_FAILED = 1507,\n\n\n /**\n * The signature returned by the exchange in a refund request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_INVALID_SIGNATURE_BY_EXCHANGE = 1508,\n\n\n /**\n * The failure proof returned by the exchange is incorrect.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_INVALID_FAILURE_PROOF_BY_EXCHANGE = 1509,\n\n\n /**\n * Conflicting refund granted before with different amount but same refund transaction ID.\n * Returned with an HTTP status code of #MHD_HTTP_FAILED_DEPENDENCY (424).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_INCONSISTENT_AMOUNT = 1510,\n\n\n /**\n * The given coin signature is invalid for the request.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_SIGNATURE_INVALID = 1550,\n\n\n /**\n * The exchange could not find the corresponding withdraw operation. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_WITHDRAW_NOT_FOUND = 1551,\n\n\n /**\n * The coin's remaining balance is zero. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_COIN_BALANCE_ZERO = 1552,\n\n\n /**\n * The exchange failed to reproduce the coin's blinding.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_BLINDING_FAILED = 1553,\n\n\n /**\n * The coin's remaining balance is zero. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_COIN_BALANCE_NEGATIVE = 1554,\n\n\n /**\n * The coin's denomination has not been revoked yet.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_NOT_ELIGIBLE = 1555,\n\n\n /**\n * The given coin signature is invalid for the request.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_SIGNATURE_INVALID = 1575,\n\n\n /**\n * The exchange could not find the corresponding melt operation. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_MELT_NOT_FOUND = 1576,\n\n\n /**\n * The exchange failed to reproduce the coin's blinding.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED = 1578,\n\n\n /**\n * The coin's denomination has not been revoked yet.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_NOT_ELIGIBLE = 1580,\n\n\n /**\n * This exchange does not allow clients to request /keys for times other than the current (exchange) time.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KEYS_TIMETRAVEL_FORBIDDEN = 1600,\n\n\n /**\n * A signature in the server's response was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_SIGNATURE_INVALID = 1650,\n\n\n /**\n * No bank accounts are enabled for the exchange. The administrator should enable-account using the taler-exchange-offline tool.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_NO_ACCOUNTS_CONFIGURED = 1651,\n\n\n /**\n * The payto:// URI stored in the exchange database for its bank account is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_INVALID_PAYTO_CONFIGURED = 1652,\n\n\n /**\n * No wire fees are configured for an enabled wire method of the exchange. The administrator must set the wire-fee using the taler-exchange-offline tool.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_FEES_NOT_CONFIGURED = 1653,\n\n\n /**\n * This purse was previously created with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_CREATE_CONFLICTING_META_DATA = 1675,\n\n\n /**\n * This purse was previously merged with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_MERGE_CONFLICTING_META_DATA = 1676,\n\n\n /**\n * The reserve has insufficient funds to create another purse.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_CREATE_INSUFFICIENT_FUNDS = 1677,\n\n\n /**\n * The purse fee specified for the request is lower than the purse fee charged by the exchange at this time.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_FEE_TOO_LOW = 1678,\n\n\n /**\n * The payment request cannot be deleted anymore, as it either already completed or timed out.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DELETE_ALREADY_DECIDED = 1679,\n\n\n /**\n * The signature affirming the purse deletion is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DELETE_SIGNATURE_INVALID = 1680,\n\n\n /**\n * Withdrawal from the reserve requires age restriction to be set.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED = 1681,\n\n\n /**\n * The exchange failed to talk to the process responsible for its private denomination keys or the helpers had no denominations (properly) configured.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE = 1700,\n\n\n /**\n * The response from the denomination key helper process was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_HELPER_BUG = 1701,\n\n\n /**\n * The helper refuses to sign with the key, because it is too early: the validity period has not yet started.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_HELPER_TOO_EARLY = 1702,\n\n\n /**\n * The signature of the exchange on the reply was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_EXCHANGE_SIGNATURE_INVALID = 1725,\n\n\n /**\n * The exchange failed to talk to the process responsible for its private signing keys.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE = 1750,\n\n\n /**\n * The response from the online signing key helper process was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_SIGNKEY_HELPER_BUG = 1751,\n\n\n /**\n * The helper refuses to sign with the key, because it is too early: the validity period has not yet started.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_SIGNKEY_HELPER_TOO_EARLY = 1752,\n\n\n /**\n * The purse expiration time is in the past at the time of its creation.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_EXPIRATION_BEFORE_NOW = 1775,\n\n\n /**\n * The purse expiration time is set to never, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_EXPIRATION_IS_NEVER = 1776,\n\n\n /**\n * The signature affirming the merge of the purse is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_MERGE_SIGNATURE_INVALID = 1777,\n\n\n /**\n * The signature by the reserve affirming the merge is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_RESERVE_MERGE_SIGNATURE_INVALID = 1778,\n\n\n /**\n * The signature by the reserve affirming the open operation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_OPEN_BAD_SIGNATURE = 1785,\n\n\n /**\n * The signature by the reserve affirming the close operation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_CLOSE_BAD_SIGNATURE = 1786,\n\n\n /**\n * The signature by the reserve affirming the attestion request is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_ATTEST_BAD_SIGNATURE = 1787,\n\n\n /**\n * The exchange does not know an origin account to which the remaining reserve balance could be wired to, and the wallet failed to provide one.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_CLOSE_NO_TARGET_ACCOUNT = 1788,\n\n\n /**\n * The reserve balance is insufficient to pay for the open operation.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_OPEN_INSUFFICIENT_FUNDS = 1789,\n\n\n /**\n * The auditor that was supposed to be disabled is unknown to this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND = 1800,\n\n\n /**\n * The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_MORE_RECENT_PRESENT = 1801,\n\n\n /**\n * The signature to add or enable the auditor does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_ADD_SIGNATURE_INVALID = 1802,\n\n\n /**\n * The signature to disable the auditor does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_DEL_SIGNATURE_INVALID = 1803,\n\n\n /**\n * The signature to revoke the denomination does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_DENOMINATION_REVOKE_SIGNATURE_INVALID = 1804,\n\n\n /**\n * The signature to revoke the online signing key does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_SIGNKEY_REVOKE_SIGNATURE_INVALID = 1805,\n\n\n /**\n * The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_MORE_RECENT_PRESENT = 1806,\n\n\n /**\n * The signingkey specified is unknown to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_UNKNOWN = 1807,\n\n\n /**\n * The signature to publish wire account does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_DETAILS_SIGNATURE_INVALID = 1808,\n\n\n /**\n * The signature to add the wire account does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_ADD_SIGNATURE_INVALID = 1809,\n\n\n /**\n * The signature to disable the wire account does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_DEL_SIGNATURE_INVALID = 1810,\n\n\n /**\n * The wire account to be disabled is unknown to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_NOT_FOUND = 1811,\n\n\n /**\n * The signature to affirm wire fees does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_FEE_SIGNATURE_INVALID = 1812,\n\n\n /**\n * The signature conflicts with a previous signature affirming different fees.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_FEE_MISMATCH = 1813,\n\n\n /**\n * The signature affirming the denomination key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_KEYS_DENOMKEY_ADD_SIGNATURE_INVALID = 1814,\n\n\n /**\n * The signature affirming the signing key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_ADD_SIGNATURE_INVALID = 1815,\n\n\n /**\n * The signature conflicts with a previous signature affirming different fees.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_GLOBAL_FEE_MISMATCH = 1816,\n\n\n /**\n * The signature affirming the fee structure is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_GLOBAL_FEE_SIGNATURE_INVALID = 1817,\n\n\n /**\n * The signature affirming the profit drain is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_DRAIN_PROFITS_SIGNATURE_INVALID = 1818,\n\n\n /**\n * The signature affirming the AML decision is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_ADD_SIGNATURE_INVALID = 1825,\n\n\n /**\n * The AML officer specified is not allowed to make AML decisions right now.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_INVALID_OFFICER = 1826,\n\n\n /**\n * There is a more recent AML decision on file. The decision was rejected as timestamps of AML decisions must be monotonically increasing.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_MORE_RECENT_PRESENT = 1827,\n\n\n /**\n * There AML decision would impose an AML check of a type that is not provided by any KYC provider known to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_UNKNOWN_CHECK = 1828,\n\n\n /**\n * The signature affirming the change in the AML officer status is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_UPDATE_AML_OFFICER_SIGNATURE_INVALID = 1830,\n\n\n /**\n * A more recent decision about the AML officer status is known to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AML_OFFICERS_MORE_RECENT_PRESENT = 1831,\n\n\n /**\n * The purse was previously created with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_CONFLICTING_META_DATA = 1850,\n\n\n /**\n * The purse was previously created with a different contract.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_CONFLICTING_CONTRACT_STORED = 1851,\n\n\n /**\n * A coin signature for a deposit into the purse is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_COIN_SIGNATURE_INVALID = 1852,\n\n\n /**\n * The purse expiration time is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_EXPIRATION_BEFORE_NOW = 1853,\n\n\n /**\n * The purse expiration time is \"never\".\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_EXPIRATION_IS_NEVER = 1854,\n\n\n /**\n * The purse signature over the purse meta data is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_SIGNATURE_INVALID = 1855,\n\n\n /**\n * The signature over the encrypted contract is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_ECONTRACT_SIGNATURE_INVALID = 1856,\n\n\n /**\n * The signature from the exchange over the confirmation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_EXCHANGE_SIGNATURE_INVALID = 1857,\n\n\n /**\n * The coin was previously deposited with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_CONFLICTING_META_DATA = 1858,\n\n\n /**\n * The encrypted contract was previously uploaded with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_ECONTRACT_CONFLICTING_META_DATA = 1859,\n\n\n /**\n * The deposited amount is less than the purse fee.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CREATE_PURSE_NEGATIVE_VALUE_AFTER_FEE = 1860,\n\n\n /**\n * The signature using the merge key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_MERGE_INVALID_MERGE_SIGNATURE = 1876,\n\n\n /**\n * The signature using the reserve key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_MERGE_INVALID_RESERVE_SIGNATURE = 1877,\n\n\n /**\n * The targeted purse is not yet full and thus cannot be merged. Retrying the request later may succeed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_NOT_FULL = 1878,\n\n\n /**\n * The signature from the exchange over the confirmation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_MERGE_EXCHANGE_SIGNATURE_INVALID = 1879,\n\n\n /**\n * The exchange of the target account is not a partner of this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN = 1880,\n\n\n /**\n * The signature affirming the new partner is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_ADD_PARTNER_SIGNATURE_INVALID = 1890,\n\n\n /**\n * Conflicting data for the partner already exists with the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_ADD_PARTNER_DATA_CONFLICT = 1891,\n\n\n /**\n * The auditor signature over the denomination meta data is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID = 1900,\n\n\n /**\n * The auditor that was specified is unknown to this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AUDITORS_AUDITOR_UNKNOWN = 1901,\n\n\n /**\n * The auditor that was specified is no longer used by this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AUDITORS_AUDITOR_INACTIVE = 1902,\n\n\n /**\n * The signature affirming the wallet's KYC request was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_WALLET_SIGNATURE_INVALID = 1925,\n\n\n /**\n * The exchange received an unexpected malformed response from its KYC backend.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_BACKEND_INVALID_RESPONSE = 1926,\n\n\n /**\n * The backend signaled an unexpected failure.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_BACKEND_ERROR = 1927,\n\n\n /**\n * The backend signaled an authorization failure.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_BACKEND_AUTHORIZATION_FAILED = 1928,\n\n\n /**\n * The exchange is unaware of having made an the authorization request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_REQUEST_UNKNOWN = 1929,\n\n\n /**\n * The payto-URI hash did not match. Hence the request was denied.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED = 1930,\n\n\n /**\n * The request used a logic specifier that is not known to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_LOGIC_UNKNOWN = 1931,\n\n\n /**\n * The request requires a logic which is no longer configured at the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_LOGIC_GONE = 1932,\n\n\n /**\n * The logic plugin had a bug in its interaction with the KYC provider.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_LOGIC_BUG = 1933,\n\n\n /**\n * The exchange could not process the request with its KYC provider because the provider refused access to the service. This indicates some configuration issue at the Taler exchange operator.\n * Returned with an HTTP status code of #MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED (511).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_ACCESS_REFUSED = 1934,\n\n\n /**\n * There was a timeout in the interaction between the exchange and the KYC provider. The most likely cause is some networking problem. Trying again later might succeed.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_TIMEOUT = 1935,\n\n\n /**\n * The KYC provider responded with a status that was completely unexpected by the KYC logic of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_UNEXPECTED_REPLY = 1936,\n\n\n /**\n * The rate limit of the exchange at the KYC provider has been exceeded. Trying much later might work.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_RATE_LIMIT_EXCEEDED = 1937,\n\n\n /**\n * The request to the webhook lacked proper authorization or authentication data.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_WEBHOOK_UNAUTHORIZED = 1938,\n\n\n /**\n * The exchange does not know a contract under the given contract public key.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_UNKNOWN = 1950,\n\n\n /**\n * The URL does not encode a valid exchange public key in its path.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_INVALID_CONTRACT_PUB = 1951,\n\n\n /**\n * The returned encrypted contract did not decrypt.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_DECRYPTION_FAILED = 1952,\n\n\n /**\n * The signature on the encrypted contract did not validate.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_SIGNATURE_INVALID = 1953,\n\n\n /**\n * The decrypted contract was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_DECODING_FAILED = 1954,\n\n\n /**\n * A coin signature for a deposit into the purse is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID = 1975,\n\n\n /**\n * It is too late to deposit coins into the purse.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_DECIDED_ALREADY = 1976,\n\n\n /**\n * TOTP key is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TOTP_KEY_INVALID = 1980,\n\n\n /**\n * The backend could not find the merchant instance specified in the request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_INSTANCE_UNKNOWN = 2000,\n\n\n /**\n * The start and end-times in the wire fee structure leave a hole. This is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_HOLE_IN_WIRE_FEE_STRUCTURE = 2001,\n\n\n /**\n * The merchant was unable to obtain a valid answer to /wire from the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_WIRE_REQUEST_FAILED = 2002,\n\n\n /**\n * The proposal is not known to the backend.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_ORDER_UNKNOWN = 2005,\n\n\n /**\n * The order provided to the backend could not be completed, because a product to be completed via inventory data is not actually in our inventory.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_PRODUCT_UNKNOWN = 2006,\n\n\n /**\n * The reward ID is unknown. This could happen if the reward has expired.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_REWARD_ID_UNKNOWN = 2007,\n\n\n /**\n * The contract obtained from the merchant backend was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_DB_CONTRACT_CONTENT_INVALID = 2008,\n\n\n /**\n * The order we found does not match the provided contract hash.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_CONTRACT_HASH_DOES_NOT_MATCH_ORDER = 2009,\n\n\n /**\n * The exchange failed to provide a valid response to the merchant's /keys request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_KEYS_FAILURE = 2010,\n\n\n /**\n * The exchange failed to respond to the merchant on time.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_TIMEOUT = 2011,\n\n\n /**\n * The merchant failed to talk to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_CONNECT_FAILURE = 2012,\n\n\n /**\n * The exchange returned a maformed response.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_REPLY_MALFORMED = 2013,\n\n\n /**\n * The exchange returned an unexpected response status.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_UNEXPECTED_STATUS = 2014,\n\n\n /**\n * The merchant refused the request due to lack of authorization.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_UNAUTHORIZED = 2015,\n\n\n /**\n * The merchant instance specified in the request was deleted.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_INSTANCE_DELETED = 2016,\n\n\n /**\n * The backend could not find the inbound wire transfer specified in the request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_TRANSFER_UNKNOWN = 2017,\n\n\n /**\n * The backend could not find the template(id) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_TEMPLATE_UNKNOWN = 2018,\n\n\n /**\n * The backend could not find the webhook(id) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_WEBHOOK_UNKNOWN = 2019,\n\n\n /**\n * The backend could not find the webhook(serial) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_PENDING_WEBHOOK_UNKNOWN = 2020,\n\n\n /**\n * The backend could not find the OTP device(id) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_OTP_DEVICE_UNKNOWN = 2021,\n\n\n /**\n * The account is not known to the backend.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_ACCOUNT_UNKNOWN = 2022,\n\n\n /**\n * The wire hash was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_H_WIRE_MALFORMED = 2023,\n\n\n /**\n * The currency specified in the operation does not work with the current state of the given resource.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_CURRENCY_MISMATCH = 2024,\n\n\n /**\n * The exchange failed to provide a valid answer to the tracking request, thus those details are not in the response.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_EXCHANGE_TRACKING_FAILURE = 2100,\n\n\n /**\n * The merchant backend failed to construct the request for tracking to the exchange, thus tracking details are not in the response.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE = 2103,\n\n\n /**\n * The merchant backend failed trying to contact the exchange for tracking details, thus those details are not in the response.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_EXCHANGE_LOOKUP_START_FAILURE = 2104,\n\n\n /**\n * The claim token used to authenticate the client is invalid for this order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_INVALID_TOKEN = 2105,\n\n\n /**\n * The contract terms hash used to authenticate the client is invalid for this order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_INVALID_CONTRACT_HASH = 2106,\n\n\n /**\n * The exchange responded saying that funds were insufficient (for example, due to double-spending).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_FUNDS = 2150,\n\n\n /**\n * The denomination key used for payment is not listed among the denomination keys of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_NOT_FOUND = 2151,\n\n\n /**\n * The denomination key used for payment is not audited by an auditor approved by the merchant.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_AUDITOR_FAILURE = 2152,\n\n\n /**\n * There was an integer overflow totaling up the amounts or deposit fees in the payment.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AMOUNT_OVERFLOW = 2153,\n\n\n /**\n * The deposit fees exceed the total value of the payment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_FEES_EXCEED_PAYMENT = 2154,\n\n\n /**\n * After considering deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract. The client should revisit the logic used to calculate fees it must cover.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_ACCEPTABLE (406).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES = 2155,\n\n\n /**\n * Even if we do not consider deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_ACCEPTABLE (406).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT = 2156,\n\n\n /**\n * The signature over the contract of one of the coins was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID = 2157,\n\n\n /**\n * When we tried to find information about the exchange to issue the deposit, we failed. This usually only happens if the merchant backend is somehow unable to get its own HTTP client logic to work.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_LOOKUP_FAILED = 2158,\n\n\n /**\n * The refund deadline in the contract is after the transfer deadline.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE = 2159,\n\n\n /**\n * The order was already paid (maybe by another wallet).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_ALREADY_PAID = 2160,\n\n\n /**\n * The payment is too late, the offer has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_OFFER_EXPIRED = 2161,\n\n\n /**\n * The \"merchant\" field is missing in the proposal data. This is an internal error as the proposal is from the merchant's own database at this point.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_MERCHANT_FIELD_MISSING = 2162,\n\n\n /**\n * Failed to locate merchant's account information matching the wire hash given in the proposal.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_WIRE_HASH_UNKNOWN = 2163,\n\n\n /**\n * The deposit time for the denomination has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_DEPOSIT_EXPIRED = 2165,\n\n\n /**\n * The exchange of the deposited coin charges a wire fee that could not be added to the total (total amount too high).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_WIRE_FEE_ADDITION_FAILED = 2166,\n\n\n /**\n * The contract was not fully paid because of refunds. Note that clients MAY treat this as paid if, for example, contracts must be executed despite of refunds.\n * Returned with an HTTP status code of #MHD_HTTP_PAYMENT_REQUIRED (402).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_REFUNDED = 2167,\n\n\n /**\n * According to our database, we have refunded more than we were paid (which should not be possible).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_REFUNDS_EXCEED_PAYMENTS = 2168,\n\n\n /**\n * Legacy stuff. Remove me with protocol v1.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n DEAD_QQQ_PAY_MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2169,\n\n\n /**\n * The payment failed at the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_FAILED = 2170,\n\n\n /**\n * The payment required a minimum age but one of the coins (of a denomination with support for age restriction) did not provide any age_commitment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_MISSING = 2171,\n\n\n /**\n * The payment required a minimum age but one of the coins provided an age_commitment that contained a wrong number of public keys compared to the number of age groups defined in the denomination of the coin.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_SIZE_MISMATCH = 2172,\n\n\n /**\n * The payment required a minimum age but one of the coins provided a minimum_age_sig that couldn't be verified with the given age_commitment for that particular minimum age.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_VERIFICATION_FAILED = 2173,\n\n\n /**\n * The payment required no minimum age but one of the coins (of a denomination with support for age restriction) did not provide the required h_age_commitment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_HASH_MISSING = 2174,\n\n\n /**\n * The exchange does not support the selected bank account of the merchant. Likely the merchant had stale data on the bank accounts of the exchange and thus selected an inappropriate exchange when making the offer.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_WIRE_METHOD_UNSUPPORTED = 2175,\n\n\n /**\n * The contract hash does not match the given order ID.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH = 2200,\n\n\n /**\n * The signature of the merchant is not valid for the given contract hash.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAID_COIN_SIGNATURE_INVALID = 2201,\n\n\n /**\n * The merchant failed to send the exchange the refund request.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED = 2251,\n\n\n /**\n * The merchant failed to find the exchange to process the lookup.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_LOOKUP_FAILED = 2252,\n\n\n /**\n * The merchant could not find the contract.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_NOT_FOUND = 2253,\n\n\n /**\n * The payment was already completed and thus cannot be aborted anymore.\n * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2254,\n\n\n /**\n * The hash provided by the wallet does not match the order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_HASH_MISSMATCH = 2255,\n\n\n /**\n * The array of coins cannot be empty.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_COINS_ARRAY_EMPTY = 2256,\n\n\n /**\n * We could not claim the order because the backend is unaware of it.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_CLAIM_NOT_FOUND = 2300,\n\n\n /**\n * We could not claim the order because someone else claimed it first.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_CLAIM_ALREADY_CLAIMED = 2301,\n\n\n /**\n * The client-side experienced an internal failure.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_CLAIM_CLIENT_INTERNAL_FAILURE = 2302,\n\n\n /**\n * The backend failed to sign the refund request.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_REFUND_SIGNATURE_FAILED = 2350,\n\n\n /**\n * The client failed to unblind the signature returned by the merchant.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_UNBLIND_FAILURE = 2400,\n\n\n /**\n * The exchange returned a failure code for the withdraw operation.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_EXCHANGE_ERROR = 2403,\n\n\n /**\n * The merchant failed to add up the amounts to compute the pick up value.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_SUMMATION_FAILED = 2404,\n\n\n /**\n * The reward expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_HAS_EXPIRED = 2405,\n\n\n /**\n * The requested withdraw amount exceeds the amount remaining to be picked up.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_AMOUNT_EXCEEDS_REWARD_REMAINING = 2406,\n\n\n /**\n * The merchant did not find the specified denomination key in the exchange's key set.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_DENOMINATION_UNKNOWN = 2407,\n\n\n /**\n * The backend lacks a wire transfer method configuration option for the given instance. Thus, this instance is unavailable (not findable for creating new orders).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE = 2500,\n\n\n /**\n * The proposal had no timestamp and the backend failed to obtain the local time. Likely to be an internal error.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME = 2501,\n\n\n /**\n * The order provided to the backend could not be parsed, some required fields were missing or ill-formed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR = 2502,\n\n\n /**\n * The backend encountered an error: the proposal already exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS = 2503,\n\n\n /**\n * The request is invalid: the wire deadline is before the refund deadline.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE = 2504,\n\n\n /**\n * The request is invalid: a delivery date was given, but it is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST = 2505,\n\n\n /**\n * The request is invalid: the wire deadline for the order would be \"never\".\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_WIRE_DEADLINE_IS_NEVER = 2506,\n\n\n /**\n * The request is invalid: a payment deadline was given, but it is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_PAY_DEADLINE_IN_PAST = 2507,\n\n\n /**\n * The request is invalid: a refund deadline was given, but it is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_REFUND_DEADLINE_IN_PAST = 2508,\n\n\n /**\n * The backend does not trust any exchange that would allow funds to be wired to any bank account of this instance using the selected wire method. Note that right now, we do not support the use of exchange bank accounts with mandatory currency conversion.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_NO_EXCHANGES_FOR_WIRE_METHOD = 2509,\n\n\n /**\n * One of the paths to forget is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT = 2510,\n\n\n /**\n * One of the paths to forget was not marked as forgettable.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_NOT_FORGETTABLE = 2511,\n\n\n /**\n * The order provided to the backend could not be deleted, our offer is still valid and awaiting payment.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT = 2520,\n\n\n /**\n * The order provided to the backend could not be deleted as the order was already paid.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_ORDERS_ALREADY_PAID = 2521,\n\n\n /**\n * The amount to be refunded is inconsistent: either is lower than the previous amount being awarded, or it is too big to be paid back. In this second case, the fault stays on the business dept. side.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT = 2530,\n\n\n /**\n * The frontend gave an unpaid order id to issue the refund to.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID = 2531,\n\n\n /**\n * The refund delay was set to 0 and thus no refunds are allowed for this order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT = 2532,\n\n\n /**\n * The exchange says it does not know this transfer.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_EXCHANGE_UNKNOWN = 2550,\n\n\n /**\n * We internally failed to execute the /track/transfer request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_REQUEST_ERROR = 2551,\n\n\n /**\n * The amount transferred differs between what was submitted and what the exchange claimed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_TRANSFERS = 2552,\n\n\n /**\n * The exchange gave conflicting information about a coin which has been wire transferred.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_REPORTS = 2553,\n\n\n /**\n * The exchange charged a different wire fee than what it originally advertised, and it is higher.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_BAD_WIRE_FEE = 2554,\n\n\n /**\n * We did not find the account that the transfer was made to.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_ACCOUNT_NOT_FOUND = 2555,\n\n\n /**\n * The backend could not delete the transfer as the echange already replied to our inquiry about it and we have integrated the result.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_TRANSFERS_ALREADY_CONFIRMED = 2556,\n\n\n /**\n * The backend was previously informed about a wire transfer with the same ID but a different amount. Multiple wire transfers with the same ID are not allowed. If the new amount is correct, the old transfer should first be deleted.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_SUBMISSION = 2557,\n\n\n /**\n * We are waiting for the exchange to provide us with key material before checking the wire transfer.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_AWAITING_KEYS = 2258,\n\n\n /**\n * We are waiting for the exchange to provide us with the list of aggregated transactions.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_AWAITING_LIST = 2259,\n\n\n /**\n * The endpoint indicated in the wire transfer does not belong to a GNU Taler exchange.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_FATAL_NO_EXCHANGE = 2260,\n\n\n /**\n * The exchange indicated in the wire transfer claims to know nothing about the wire transfer.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_FATAL_NOT_FOUND = 2261,\n\n\n /**\n * The interaction with the exchange is delayed due to rate limiting.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_RATE_LIMITED = 2262,\n\n\n /**\n * We experienced a transient failure in our interaction with the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_TRANSIENT_FAILURE = 2263,\n\n\n /**\n * The response from the exchange was unacceptable and should be reviewed with an auditor.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_HARD_FAILURE = 2264,\n\n\n /**\n * The amount transferred differs between what was submitted and what the exchange claimed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_CONFLICTING_TRANSFERS = 2563,\n\n\n /**\n * The merchant backend cannot create an instance under the given identifier as one already exists. Use PATCH to modify the existing entry.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCES_ALREADY_EXISTS = 2600,\n\n\n /**\n * The merchant backend cannot create an instance because the authentication configuration field is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCES_BAD_AUTH = 2601,\n\n\n /**\n * The merchant backend cannot update an instance's authentication settings because the provided authentication settings are malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCE_AUTH_BAD_AUTH = 2602,\n\n\n /**\n * The merchant backend cannot create an instance under the given identifier, the previous one was deleted but must be purged first.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCES_PURGE_REQUIRED = 2603,\n\n\n /**\n * The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_INSTANCES_PURGE_REQUIRED = 2625,\n\n\n /**\n * The bank account referenced in the requested operation was not found.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_ACCOUNT_DELETE_UNKNOWN_ACCOUNT = 2626,\n\n\n /**\n * The bank account specified in the request already exists at the merchant.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_ACCOUNT_EXISTS = 2627,\n\n\n /**\n * The product ID exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_PRODUCTS_CONFLICT_PRODUCT_EXISTS = 2650,\n\n\n /**\n * The update would have reduced the total amount of product lost, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_REDUCED = 2660,\n\n\n /**\n * The update would have mean that more stocks were lost than what remains from total inventory after sales, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_EXCEEDS_STOCKS = 2661,\n\n\n /**\n * The update would have reduced the total amount of product in stock, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_STOCKED_REDUCED = 2662,\n\n\n /**\n * The update would have reduced the total amount of product sold, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_SOLD_REDUCED = 2663,\n\n\n /**\n * The lock request is for more products than we have left (unlocked) in stock.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_PRODUCTS_LOCK_INSUFFICIENT_STOCKS = 2670,\n\n\n /**\n * The deletion request is for a product that is locked.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_PRODUCTS_CONFLICTING_LOCK = 2680,\n\n\n /**\n * The requested wire method is not supported by the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_RESERVES_UNSUPPORTED_WIRE_METHOD = 2700,\n\n\n /**\n * The requested exchange does not allow rewards.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_RESERVES_REWARDS_NOT_ALLOWED = 2701,\n\n\n /**\n * The reserve could not be deleted because it is unknown.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE = 2710,\n\n\n /**\n * The reserve that was used to fund the rewards has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_EXPIRED = 2750,\n\n\n /**\n * The reserve that was used to fund the rewards was not found in the DB.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_UNKNOWN = 2751,\n\n\n /**\n * The backend knows the instance that was supposed to support the reward, and it was configured for rewardping. However, the funds remaining are insufficient to cover the reward, and the merchant should top up the reserve.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_INSUFFICIENT_FUNDS = 2752,\n\n\n /**\n * The backend failed to find a reserve needed to authorize the reward.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_NOT_FOUND = 2753,\n\n\n /**\n * The merchant backend encountered a failure in computing the deposit total.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_GET_ORDERS_ID_AMOUNT_ARITHMETIC_FAILURE = 2800,\n\n\n /**\n * The template ID already exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TEMPLATES_CONFLICT_TEMPLATE_EXISTS = 2850,\n\n\n /**\n * The OTP device ID already exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_OTP_DEVICES_CONFLICT_OTP_DEVICE_EXISTS = 2851,\n\n\n /**\n * Amount given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_AMOUNT_CONFLICT_TEMPLATES_CONTRACT_AMOUNT = 2860,\n\n\n /**\n * Subject given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_SUMMARY_CONFLICT_TEMPLATES_CONTRACT_SUBJECT = 2861,\n\n\n /**\n * Amount not given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_NO_AMOUNT = 2862,\n\n\n /**\n * Subject not given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_NO_SUMMARY = 2863,\n\n\n /**\n * The webhook ID elready exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_WEBHOOKS_CONFLICT_WEBHOOK_EXISTS = 2900,\n\n\n /**\n * The webhook serial elready exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_PENDING_WEBHOOKS_CONFLICT_PENDING_WEBHOOK_EXISTS = 2910,\n\n\n /**\n * The signature from the exchange on the deposit confirmation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n AUDITOR_DEPOSIT_CONFIRMATION_SIGNATURE_INVALID = 3100,\n\n\n /**\n * The exchange key used for the signature on the deposit confirmation was revoked.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n AUDITOR_EXCHANGE_SIGNING_KEY_REVOKED = 3101,\n\n\n /**\n * Wire transfer attempted with credit and debit party being the same bank account.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_SAME_ACCOUNT = 5101,\n\n\n /**\n * Wire transfer impossible, due to financial limitation of the party that attempted the payment.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNALLOWED_DEBIT = 5102,\n\n\n /**\n * Negative numbers are not allowed (as value and/or fraction) to instantiate an amount object.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NEGATIVE_NUMBER_AMOUNT = 5103,\n\n\n /**\n * A too big number was used (as value and/or fraction) to instantiate an amount object.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NUMBER_TOO_BIG = 5104,\n\n\n /**\n * The bank account referenced in the requested operation was not found.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNKNOWN_ACCOUNT = 5106,\n\n\n /**\n * The transaction referenced in the requested operation (typically a reject operation), was not found.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TRANSACTION_NOT_FOUND = 5107,\n\n\n /**\n * Bank received a malformed amount string.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_BAD_FORMAT_AMOUNT = 5108,\n\n\n /**\n * The client does not own the account credited by the transaction which is to be rejected, so it has no rights do reject it.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REJECT_NO_RIGHTS = 5109,\n\n\n /**\n * This error code is returned when no known exception types captured the exception.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNMANAGED_EXCEPTION = 5110,\n\n\n /**\n * This error code is used for all those exceptions that do not really need a specific error code to return to the client. Used for example when a client is trying to register with a unavailable username.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_SOFT_EXCEPTION = 5111,\n\n\n /**\n * The request UID for a request to transfer funds has already been used, but with different details for the transfer.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TRANSFER_REQUEST_UID_REUSED = 5112,\n\n\n /**\n * The withdrawal operation already has a reserve selected. The current request conflicts with the existing selection.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_WITHDRAWAL_OPERATION_RESERVE_SELECTION_CONFLICT = 5113,\n\n\n /**\n * The wire transfer subject duplicates an existing reserve public key. But wire transfer subjects must be unique.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_DUPLICATE_RESERVE_PUB_SUBJECT = 5114,\n\n\n /**\n * The client requested a transaction that is so far in the past, that it has been forgotten by the bank.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ANCIENT_TRANSACTION_GONE = 5115,\n\n\n /**\n * The client attempted to abort a transaction that was already confirmed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ABORT_CONFIRM_CONFLICT = 5116,\n\n\n /**\n * The client attempted to confirm a transaction that was already aborted.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_CONFIRM_ABORT_CONFLICT = 5117,\n\n\n /**\n * The client attempted to register an account with the same name.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REGISTER_CONFLICT = 5118,\n\n\n /**\n * The client attempted to confirm a withdrawal operation before the wallet posted the required details.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_POST_WITHDRAWAL_OPERATION_REQUIRED = 5119,\n\n\n /**\n * The client tried to register a new account under a reserved username (like 'admin' for example).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_RESERVED_USERNAME_CONFLICT = 5120,\n\n\n /**\n * The client tried to register a new account with an username already in use.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REGISTER_USERNAME_REUSE = 5121,\n\n\n /**\n * The client tried to register a new account with a payto:// URI already in use.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REGISTER_PAYTO_URI_REUSE = 5122,\n\n\n /**\n * The client tried to delete an account with a non null balance.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ACCOUNT_BALANCE_NOT_ZERO = 5123,\n\n\n /**\n * The client tried to create a transaction or an operation that credit an unknown account.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNKNOWN_CREDITOR = 5124,\n\n\n /**\n * The client tried to create a transaction or an operation that debit an unknown account.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNKNOWN_DEBTOR = 5125,\n\n\n /**\n * The client tried to perform an action prohibited for exchange accounts.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ACCOUNT_IS_EXCHANGE = 5126,\n\n\n /**\n * The client tried to perform an action reserved for exchange accounts.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ACCOUNT_IS_NOT_EXCHANGE = 5127,\n\n\n /**\n * Received currency conversion is wrong.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_BAD_CONVERSION = 5128,\n\n\n /**\n * The account referenced in this operation is missing tan info for the chosen channel.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_MISSING_TAN_INFO = 5129,\n\n\n /**\n * The client attempted to confirm a transaction with incomplete info.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_CONFIRM_INCOMPLETE = 5130,\n\n\n /**\n * The sync service failed find the account in its database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_ACCOUNT_UNKNOWN = 6100,\n\n\n /**\n * The SHA-512 hash provided in the If-None-Match header is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_BAD_IF_NONE_MATCH = 6101,\n\n\n /**\n * The SHA-512 hash provided in the If-Match header is malformed or missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_BAD_IF_MATCH = 6102,\n\n\n /**\n * The signature provided in the \"Sync-Signature\" header is malformed or missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_BAD_SYNC_SIGNATURE = 6103,\n\n\n /**\n * The signature provided in the \"Sync-Signature\" header does not match the account, old or new Etags.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_INVALID_SIGNATURE = 6104,\n\n\n /**\n * The \"Content-length\" field for the upload is not a number.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_MALFORMED_CONTENT_LENGTH = 6105,\n\n\n /**\n * The \"Content-length\" field for the upload is too big based on the server's terms of service.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_EXCESSIVE_CONTENT_LENGTH = 6106,\n\n\n /**\n * The server is out of memory to handle the upload. Trying again later may succeed.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 6107,\n\n\n /**\n * The uploaded data does not match the Etag.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_INVALID_UPLOAD = 6108,\n\n\n /**\n * HTTP server experienced a timeout while awaiting promised payment.\n * Returned with an HTTP status code of #MHD_HTTP_REQUEST_TIMEOUT (408).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_PAYMENT_GENERIC_TIMEOUT = 6109,\n\n\n /**\n * Sync could not setup the payment request with its own backend.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_PAYMENT_CREATE_BACKEND_ERROR = 6110,\n\n\n /**\n * The sync service failed find the backup to be updated in its database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_PREVIOUS_BACKUP_UNKNOWN = 6111,\n\n\n /**\n * The \"Content-length\" field for the upload is missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_MISSING_CONTENT_LENGTH = 6112,\n\n\n /**\n * Sync had problems communicating with its payment backend.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_GENERIC_BACKEND_ERROR = 6113,\n\n\n /**\n * Sync experienced a timeout communicating with its payment backend.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_GENERIC_BACKEND_TIMEOUT = 6114,\n\n\n /**\n * The wallet does not implement a version of the exchange protocol that is compatible with the protocol version of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_PROTOCOL_VERSION_INCOMPATIBLE = 7000,\n\n\n /**\n * The wallet encountered an unexpected exception. This is likely a bug in the wallet implementation.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_UNEXPECTED_EXCEPTION = 7001,\n\n\n /**\n * The wallet received a response from a server, but the response can't be parsed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_RECEIVED_MALFORMED_RESPONSE = 7002,\n\n\n /**\n * The wallet tried to make a network request, but it received no response.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_NETWORK_ERROR = 7003,\n\n\n /**\n * The wallet tried to make a network request, but it was throttled.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_HTTP_REQUEST_THROTTLED = 7004,\n\n\n /**\n * The wallet made a request to a service, but received an error response it does not know how to handle.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_UNEXPECTED_REQUEST_ERROR = 7005,\n\n\n /**\n * The denominations offered by the exchange are insufficient. Likely the exchange is badly configured or not maintained.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_DENOMINATIONS_INSUFFICIENT = 7006,\n\n\n /**\n * The wallet does not support the operation requested by a client.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CORE_API_OPERATION_UNKNOWN = 7007,\n\n\n /**\n * The given taler://pay URI is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_INVALID_TALER_PAY_URI = 7008,\n\n\n /**\n * The signature on a coin by the exchange's denomination key is invalid after unblinding it.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_COIN_SIGNATURE_INVALID = 7009,\n\n\n /**\n * The exchange does not know about the reserve (yet), and thus withdrawal can't progress.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_WITHDRAW_RESERVE_UNKNOWN_AT_EXCHANGE = 7010,\n\n\n /**\n * The wallet core service is not available.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CORE_NOT_AVAILABLE = 7011,\n\n\n /**\n * The bank has aborted a withdrawal operation, and thus a withdrawal can't complete.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_WITHDRAWAL_OPERATION_ABORTED_BY_BANK = 7012,\n\n\n /**\n * An HTTP request made by the wallet timed out.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_HTTP_REQUEST_GENERIC_TIMEOUT = 7013,\n\n\n /**\n * The order has already been claimed by another wallet.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_ORDER_ALREADY_CLAIMED = 7014,\n\n\n /**\n * A group of withdrawal operations (typically for the same reserve at the same exchange) has errors and will be tried again later.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_WITHDRAWAL_GROUP_INCOMPLETE = 7015,\n\n\n /**\n * The signature on a coin by the exchange's denomination key (obtained through the merchant via a reward) is invalid after unblinding it.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_REWARD_COIN_SIGNATURE_INVALID = 7016,\n\n\n /**\n * The wallet does not implement a version of the bank integration API that is compatible with the version offered by the bank.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_BANK_INTEGRATION_PROTOCOL_VERSION_INCOMPATIBLE = 7017,\n\n\n /**\n * The wallet processed a taler://pay URI, but the merchant base URL in the downloaded contract terms does not match the merchant base URL derived from the URI.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CONTRACT_TERMS_BASE_URL_MISMATCH = 7018,\n\n\n /**\n * The merchant's signature on the contract terms is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CONTRACT_TERMS_SIGNATURE_INVALID = 7019,\n\n\n /**\n * The contract terms given by the merchant are malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CONTRACT_TERMS_MALFORMED = 7020,\n\n\n /**\n * A pending operation failed, and thus the request can't be completed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PENDING_OPERATION_FAILED = 7021,\n\n\n /**\n * A payment was attempted, but the merchant had an internal server error (5xx).\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PAY_MERCHANT_SERVER_ERROR = 7022,\n\n\n /**\n * The crypto worker failed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CRYPTO_WORKER_ERROR = 7023,\n\n\n /**\n * The crypto worker received a bad request.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CRYPTO_WORKER_BAD_REQUEST = 7024,\n\n\n /**\n * A KYC step is required before withdrawal can proceed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_WITHDRAWAL_KYC_REQUIRED = 7025,\n\n\n /**\n * The wallet does not have sufficient balance to create a deposit group.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE = 7026,\n\n\n /**\n * The wallet does not have sufficient balance to create a peer push payment.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE = 7027,\n\n\n /**\n * The wallet does not have sufficient balance to pay for an invoice.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PEER_PULL_PAYMENT_INSUFFICIENT_BALANCE = 7028,\n\n\n /**\n * A group of refresh operations has errors and will be tried again later.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_REFRESH_GROUP_INCOMPLETE = 7029,\n\n\n /**\n * The exchange's self-reported base URL does not match the one that the wallet is using.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_BASE_URL_MISMATCH = 7030,\n\n\n /**\n * The order has already been paid by another wallet.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_ORDER_ALREADY_PAID = 7031,\n\n\n /**\n * We encountered a timeout with our payment backend.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_BACKEND_TIMEOUT = 8000,\n\n\n /**\n * The backend requested payment, but the request is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_INVALID_PAYMENT_REQUEST = 8001,\n\n\n /**\n * The backend got an unexpected reply from the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_BACKEND_ERROR = 8002,\n\n\n /**\n * The \"Content-length\" field for the upload is missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_MISSING_CONTENT_LENGTH = 8003,\n\n\n /**\n * The \"Content-length\" field for the upload is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_MALFORMED_CONTENT_LENGTH = 8004,\n\n\n /**\n * The backend failed to setup an order with the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_ORDER_CREATE_BACKEND_ERROR = 8005,\n\n\n /**\n * The backend was not authorized to check for payment with the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_PAYMENT_CHECK_UNAUTHORIZED = 8006,\n\n\n /**\n * The backend could not check payment status with the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_PAYMENT_CHECK_START_FAILED = 8007,\n\n\n /**\n * The Anastasis provider could not be reached.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_PROVIDER_UNREACHABLE = 8008,\n\n\n /**\n * HTTP server experienced a timeout while awaiting promised payment.\n * Returned with an HTTP status code of #MHD_HTTP_REQUEST_TIMEOUT (408).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_PAYMENT_GENERIC_TIMEOUT = 8009,\n\n\n /**\n * The key share is unknown to the provider.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UNKNOWN = 8108,\n\n\n /**\n * The authorization method used for the key share is no longer supported by the provider.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_AUTHORIZATION_METHOD_NO_LONGER_SUPPORTED = 8109,\n\n\n /**\n * The client needs to respond to the challenge.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_RESPONSE_REQUIRED = 8110,\n\n\n /**\n * The client's response to the challenge was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_FAILED = 8111,\n\n\n /**\n * The backend is not aware of having issued the provided challenge code. Either this is the wrong code, or it has expired.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_UNKNOWN = 8112,\n\n\n /**\n * The backend failed to initiate the authorization process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_AUTHORIZATION_START_FAILED = 8114,\n\n\n /**\n * The authorization succeeded, but the key share is no longer available.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_KEY_SHARE_GONE = 8115,\n\n\n /**\n * The backend forgot the order we asked the client to pay for\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_ORDER_DISAPPEARED = 8116,\n\n\n /**\n * The backend itself reported a bad exchange interaction.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_BACKEND_EXCHANGE_BAD = 8117,\n\n\n /**\n * The backend reported a payment status we did not expect.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UNEXPECTED_PAYMENT_STATUS = 8118,\n\n\n /**\n * The backend failed to setup the order for payment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_PAYMENT_CREATE_BACKEND_ERROR = 8119,\n\n\n /**\n * The decryption of the key share failed with the provided key.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_DECRYPTION_FAILED = 8120,\n\n\n /**\n * The request rate is too high. The server is refusing requests to guard against brute-force attacks.\n * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_RATE_LIMITED = 8121,\n\n\n /**\n * A request to issue a challenge is not valid for this authentication method.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_WRONG_METHOD = 8123,\n\n\n /**\n * The backend failed to store the key share because the UUID is already in use.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UPLOAD_UUID_EXISTS = 8150,\n\n\n /**\n * The backend failed to store the key share because the authorization method is not supported.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UPLOAD_METHOD_NOT_SUPPORTED = 8151,\n\n\n /**\n * The provided phone number is not an acceptable number.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_SMS_PHONE_INVALID = 8200,\n\n\n /**\n * Failed to run the SMS transmission helper process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_SMS_HELPER_EXEC_FAILED = 8201,\n\n\n /**\n * Provider failed to send SMS. Helper terminated with a non-successful result.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_SMS_HELPER_COMMAND_FAILED = 8202,\n\n\n /**\n * The provided email address is not an acceptable address.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_EMAIL_INVALID = 8210,\n\n\n /**\n * Failed to run the E-mail transmission helper process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_EMAIL_HELPER_EXEC_FAILED = 8211,\n\n\n /**\n * Provider failed to send E-mail. Helper terminated with a non-successful result.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_EMAIL_HELPER_COMMAND_FAILED = 8212,\n\n\n /**\n * The provided postal address is not an acceptable address.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POST_INVALID = 8220,\n\n\n /**\n * Failed to run the mail transmission helper process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POST_HELPER_EXEC_FAILED = 8221,\n\n\n /**\n * Provider failed to send mail. Helper terminated with a non-successful result.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POST_HELPER_COMMAND_FAILED = 8222,\n\n\n /**\n * The provided IBAN address is not an acceptable IBAN.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_IBAN_INVALID = 8230,\n\n\n /**\n * The provider has not yet received the IBAN wire transfer authorizing the disclosure of the key share.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_IBAN_MISSING_TRANSFER = 8231,\n\n\n /**\n * The backend did not find a TOTP key in the data provided.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TOTP_KEY_MISSING = 8240,\n\n\n /**\n * The key provided does not satisfy the format restrictions for an Anastasis TOTP key.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TOTP_KEY_INVALID = 8241,\n\n\n /**\n * The given if-none-match header is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_BAD_IF_NONE_MATCH = 8301,\n\n\n /**\n * The server is out of memory to handle the upload. Trying again later may succeed.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 8304,\n\n\n /**\n * The signature provided in the \"Anastasis-Policy-Signature\" header is malformed or missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_BAD_SIGNATURE = 8305,\n\n\n /**\n * The given if-match header is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_BAD_IF_MATCH = 8306,\n\n\n /**\n * The uploaded data does not match the Etag.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_INVALID_UPLOAD = 8307,\n\n\n /**\n * The provider is unaware of the requested policy.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_NOT_FOUND = 8350,\n\n\n /**\n * The given action is invalid for the current state of the reducer.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_ACTION_INVALID = 8400,\n\n\n /**\n * The given state of the reducer is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_STATE_INVALID = 8401,\n\n\n /**\n * The given input to the reducer is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_INVALID = 8402,\n\n\n /**\n * The selected authentication method does not work for the Anastasis provider.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_AUTHENTICATION_METHOD_NOT_SUPPORTED = 8403,\n\n\n /**\n * The given input and action do not work for the current state.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_INVALID_FOR_STATE = 8404,\n\n\n /**\n * We experienced an unexpected failure interacting with the backend.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_BACKEND_FAILURE = 8405,\n\n\n /**\n * The contents of a resource file did not match our expectations.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_RESOURCE_MALFORMED = 8406,\n\n\n /**\n * A required resource file is missing.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_RESOURCE_MISSING = 8407,\n\n\n /**\n * An input did not match the regular expression.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_REGEX_FAILED = 8408,\n\n\n /**\n * An input did not match the custom validation logic.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_VALIDATION_FAILED = 8409,\n\n\n /**\n * Our attempts to download the recovery document failed with all providers. Most likely the personal information you entered differs from the information you provided during the backup process and you should go back to the previous step. Alternatively, if you used a backup provider that is unknown to this application, you should add that provider manually.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_POLICY_LOOKUP_FAILED = 8410,\n\n\n /**\n * Anastasis provider reported a fatal failure.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_BACKUP_PROVIDER_FAILED = 8411,\n\n\n /**\n * Anastasis provider failed to respond to the configuration request.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_PROVIDER_CONFIG_FAILED = 8412,\n\n\n /**\n * The policy we downloaded is malformed. Must have been a client error while creating the backup.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_POLICY_MALFORMED = 8413,\n\n\n /**\n * We failed to obtain the policy, likely due to a network issue.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_NETWORK_FAILED = 8414,\n\n\n /**\n * The recovered secret did not match the required syntax.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_SECRET_MALFORMED = 8415,\n\n\n /**\n * The challenge data provided is too large for the available providers.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_CHALLENGE_DATA_TOO_BIG = 8416,\n\n\n /**\n * The provided core secret is too large for some of the providers.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_SECRET_TOO_BIG = 8417,\n\n\n /**\n * The provider returned in invalid configuration.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_PROVIDER_INVALID_CONFIG = 8418,\n\n\n /**\n * The reducer encountered an internal error, likely a bug that needs to be reported.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INTERNAL_ERROR = 8419,\n\n\n /**\n * The reducer already synchronized with all providers.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED = 8420,\n\n\n /**\n * A generic error happened in the LibEuFin nexus. See the enclose details JSON for more information.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_NEXUS_GENERIC_ERROR = 9000,\n\n\n /**\n * An uncaught exception happened in the LibEuFin nexus service.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_NEXUS_UNCAUGHT_EXCEPTION = 9001,\n\n\n /**\n * A generic error happened in the LibEuFin sandbox. See the enclose details JSON for more information.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_SANDBOX_GENERIC_ERROR = 9500,\n\n\n /**\n * An uncaught exception happened in the LibEuFin sandbox service.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_SANDBOX_UNCAUGHT_EXCEPTION = 9501,\n\n\n /**\n * This validation method is not supported by the service.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n TALDIR_METHOD_NOT_SUPPORTED = 9600,\n\n\n /**\n * Number of allowed attempts for initiating a challenge exceeded.\n * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).\n * (A value of 0 indicates that the error is generated client-side).\n */\n TALDIR_REGISTER_RATE_LIMITED = 9601,\n\n\n /**\n * The client is unknown or unauthorized.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GENERIC_CLIENT_UNKNOWN = 9750,\n\n\n /**\n * The client is not authorized to use the given redirect URI.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GENERIC_CLIENT_FORBIDDEN_BAD_REDIRECT_URI = 9751,\n\n\n /**\n * The service failed to execute its helper process to send the challenge.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_HELPER_EXEC_FAILED = 9752,\n\n\n /**\n * The grant is unknown to the service (it could also have expired).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GRANT_UNKNOWN = 9753,\n\n\n /**\n * The code given is not even well-formed.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_CLIENT_FORBIDDEN_BAD_CODE = 9754,\n\n\n /**\n * The service is not aware of the referenced validation process.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GENERIC_VALIDATION_UNKNOWN = 9755,\n\n\n /**\n * The code given is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_CLIENT_FORBIDDEN_INVALID_CODE = 9756,\n\n\n /**\n * Too many attempts have been made, validation is temporarily disabled for this address.\n * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_TOO_MANY_ATTEMPTS = 9757,\n\n\n /**\n * The PIN code provided is incorrect.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_INVALID_PIN = 9758,\n\n\n /**\n * The token cannot be valid as no address was ever provided by the client.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_MISSING_ADDRESS = 9759,\n\n\n /**\n * End of error code range.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n END = 9999,\n\n\n}\n", "/*\n This file is part of GNU Taler\n (C) 2018-2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type-safe codecs for converting from/to JSON.\n */\n\n/* eslint-disable @typescript-eslint/ban-types */\n\n/**\n * Error thrown when decoding fails.\n */\nexport class DecodingError extends Error {\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, DecodingError.prototype);\n this.name = \"DecodingError\";\n }\n}\n\n/**\n * Context information to show nicer error messages when decoding fails.\n */\nexport interface Context {\n readonly path?: string[];\n}\n\nexport function renderContext(c?: Context): string {\n const p = c?.path;\n if (p) {\n return p.join(\".\");\n } else {\n return \"(unknown)\";\n }\n}\n\nfunction joinContext(c: Context | undefined, part: string): Context {\n const path = c?.path ?? [];\n return {\n path: path.concat([part]),\n };\n}\n\n/**\n * A codec converts untyped JSON to a typed object.\n */\nexport interface Codec<V> {\n /**\n * Decode untyped JSON to an object of type [[V]].\n */\n readonly decode: (x: any, c?: Context) => V;\n}\n\ntype SingletonRecord<K extends keyof any, V> = { [Y in K]: V };\n\ninterface Prop {\n name: string;\n codec: Codec<any>;\n}\n\ninterface Alternative {\n tagValue: any;\n codec: Codec<any>;\n}\n\nclass ObjectCodecBuilder<OutputType, PartialOutputType> {\n private propList: Prop[] = [];\n\n /**\n * Define a property for the object.\n */\n property<K extends keyof OutputType & string, V extends OutputType[K]>(\n x: K,\n codec: Codec<V>,\n ): ObjectCodecBuilder<OutputType, PartialOutputType & SingletonRecord<K, V>> {\n if (!codec) {\n throw Error(\"inner codec must be defined\");\n }\n this.propList.push({ name: x, codec: codec });\n return this as any;\n }\n\n /**\n * Return the built codec.\n *\n * @param objectDisplayName name of the object that this codec operates on,\n * used in error messages.\n */\n build(objectDisplayName: string): Codec<PartialOutputType> {\n const propList = this.propList;\n return {\n decode(x: any, c?: Context): PartialOutputType {\n if (!c) {\n c = {\n path: [`(${objectDisplayName})`],\n };\n }\n if (typeof x !== \"object\") {\n throw new DecodingError(\n `expected object for ${objectDisplayName} at ${renderContext(\n c,\n )} but got ${typeof x}`,\n );\n }\n const obj: any = {};\n for (const prop of propList) {\n const propRawVal = x[prop.name];\n const propVal = prop.codec.decode(\n propRawVal,\n joinContext(c, prop.name),\n );\n obj[prop.name] = propVal;\n }\n return obj as PartialOutputType;\n },\n };\n }\n}\n\nclass UnionCodecBuilder<\n TargetType,\n TagPropertyLabel extends keyof TargetType,\n CommonBaseType,\n PartialTargetType,\n> {\n private alternatives = new Map<any, Alternative>();\n\n constructor(\n private discriminator: TagPropertyLabel,\n private baseCodec?: Codec<CommonBaseType>,\n ) {}\n\n /**\n * Define a property for the object.\n */\n alternative<V>(\n tagValue: TargetType[TagPropertyLabel],\n codec: Codec<V>,\n ): UnionCodecBuilder<\n TargetType,\n TagPropertyLabel,\n CommonBaseType,\n PartialTargetType | V\n > {\n if (!codec) {\n throw Error(\"inner codec must be defined\");\n }\n this.alternatives.set(tagValue, { codec, tagValue });\n return this as any;\n }\n\n /**\n * Return the built codec.\n *\n * @param objectDisplayName name of the object that this codec operates on,\n * used in error messages.\n */\n build<R extends PartialTargetType & CommonBaseType = never>(\n objectDisplayName: string,\n ): Codec<R> {\n const alternatives = this.alternatives;\n const discriminator = this.discriminator;\n const baseCodec = this.baseCodec;\n return {\n decode(x: any, c?: Context): R {\n if (!c) {\n c = {\n path: [`(${objectDisplayName})`],\n };\n }\n const d = x[discriminator];\n if (d === undefined) {\n throw new DecodingError(\n `expected tag for ${objectDisplayName} at ${renderContext(\n c,\n )}.${String(discriminator)}`,\n );\n }\n const alt = alternatives.get(d);\n if (!alt) {\n throw new DecodingError(\n `unknown tag for ${objectDisplayName} ${d} at ${renderContext(\n c,\n )}.${String(discriminator)}`,\n );\n }\n const altDecoded = alt.codec.decode(x);\n if (baseCodec) {\n const baseDecoded = baseCodec.decode(x, c);\n return { ...baseDecoded, ...altDecoded };\n } else {\n return altDecoded;\n }\n },\n };\n }\n}\n\nexport class UnionCodecPreBuilder<T> {\n discriminateOn<D extends keyof T, B = {}>(\n discriminator: D,\n baseCodec?: Codec<B>,\n ): UnionCodecBuilder<T, D, B, never> {\n return new UnionCodecBuilder<T, D, B, never>(discriminator, baseCodec);\n }\n}\n\n/**\n * Return a builder for a codec that decodes an object with properties.\n */\nexport function buildCodecForObject<T>(): ObjectCodecBuilder<T, {}> {\n return new ObjectCodecBuilder<T, {}>();\n}\n\nexport function buildCodecForUnion<T>(): UnionCodecPreBuilder<T> {\n return new UnionCodecPreBuilder<T>();\n}\n\n/**\n * Return a codec for a mapping from a string to values described by the inner codec.\n */\nexport function codecForMap<T>(\n innerCodec: Codec<T>,\n): Codec<{ [x: string]: T }> {\n if (!innerCodec) {\n throw Error(\"inner codec must be defined\");\n }\n return {\n decode(x: any, c?: Context): { [x: string]: T } {\n const map: { [x: string]: T } = {};\n if (typeof x !== \"object\") {\n throw new DecodingError(`expected object at ${renderContext(c)}`);\n }\n for (const i in x) {\n map[i] = innerCodec.decode(x[i], joinContext(c, `[${i}]`));\n }\n return map;\n },\n };\n}\n\n/**\n * Return a codec for a list, containing values described by the inner codec.\n */\nexport function codecForList<T>(innerCodec: Codec<T>): Codec<T[]> {\n if (!innerCodec) {\n throw Error(\"inner codec must be defined\");\n }\n return {\n decode(x: any, c?: Context): T[] {\n const arr: T[] = [];\n if (!Array.isArray(x)) {\n throw new DecodingError(`expected array at ${renderContext(c)}`);\n }\n for (const i in x) {\n arr.push(innerCodec.decode(x[i], joinContext(c, `[${i}]`)));\n }\n return arr;\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a number.\n */\nexport function codecForNumber(): Codec<number> {\n return {\n decode(x: any, c?: Context): number {\n if (typeof x === \"number\") {\n return x;\n }\n throw new DecodingError(\n `expected number at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a number.\n */\nexport function codecForBoolean(): Codec<boolean> {\n return {\n decode(x: any, c?: Context): boolean {\n if (typeof x === \"boolean\") {\n return x;\n }\n throw new DecodingError(\n `expected boolean at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a string.\n */\nexport function codecForString(): Codec<string> {\n return {\n decode(x: any, c?: Context): string {\n if (typeof x === \"string\") {\n return x;\n }\n throw new DecodingError(\n `expected string at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Codec that allows any value.\n */\nexport function codecForAny(): Codec<any> {\n return {\n decode(x: any, c?: Context): any {\n return x;\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a string.\n */\nexport function codecForConstString<V extends string>(s: V): Codec<V> {\n return {\n decode(x: any, c?: Context): V {\n if (x === s) {\n return x;\n }\n if (typeof x !== \"string\") {\n throw new DecodingError(\n `expected string constant \"${s}\" at ${renderContext(\n c,\n )} but got ${typeof x}`,\n );\n }\n throw new DecodingError(\n `expected string constant \"${s}\" at ${renderContext(\n c,\n )} but got string value \"${x}\"`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a boolean true constant.\n */\nexport function codecForConstTrue(): Codec<true> {\n return {\n decode(x: any, c?: Context): true {\n if (x === true) {\n return x;\n }\n throw new DecodingError(\n `expected boolean true at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a boolean true constant.\n */\nexport function codecForConstFalse(): Codec<false> {\n return {\n decode(x: any, c?: Context): false {\n if (x === false) {\n return x;\n }\n throw new DecodingError(\n `expected boolean false at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a constant number.\n */\nexport function codecForConstNumber<V extends number>(n: V): Codec<V> {\n return {\n decode(x: any, c?: Context): V {\n if (x === n) {\n return x;\n }\n throw new DecodingError(\n `expected number constant \"${n}\" at ${renderContext(\n c,\n )} but got ${typeof x}`,\n );\n },\n };\n}\n\nexport function codecOptional<V>(innerCodec: Codec<V>): Codec<V | undefined> {\n return {\n decode(x: any, c?: Context): V | undefined {\n if (x === undefined || x === null) {\n return undefined;\n }\n return innerCodec.decode(x, c);\n },\n };\n}\n\nexport type CodecType<T> = T extends Codec<infer X> ? X : any;\n\nexport function codecForEither<T extends Array<Codec<unknown>>>(\n ...alts: [...T]\n): Codec<CodecType<T[number]>> {\n return {\n decode(x: any, c?: Context): any {\n for (const alt of alts) {\n try {\n return alt.decode(x, c);\n } catch (e) {\n continue;\n }\n }\n throw new DecodingError(\n `No alternative matched at at ${renderContext(c)}`,\n );\n },\n };\n}\n\nconst x = codecForEither(codecForString(), codecForNumber());\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Types and helper functions for dealing with Taler amounts.\n */\n\n/**\n * Imports.\n */\nimport {\n buildCodecForObject,\n codecForString,\n codecForNumber,\n Codec,\n Context,\n DecodingError,\n renderContext,\n} from \"./codec.js\";\nimport { AmountString } from \"./taler-types.js\";\n\n/**\n * Number of fractional units that one value unit represents.\n */\nexport const amountFractionalBase = 1e8;\n\n/**\n * How many digits behind the comma are required to represent the\n * fractional value in human readable decimal format? Must match\n * lg(fractionalBase)\n */\nexport const amountFractionalLength = 8;\n\n/**\n * Maximum allowed value field of an amount.\n */\nexport const amountMaxValue = 2 ** 52;\n\n/**\n * Non-negative financial amount. Fractional values are expressed as multiples\n * of 1e-8.\n */\nexport interface AmountJson {\n /**\n * Value, must be an integer.\n */\n readonly value: number;\n\n /**\n * Fraction, must be an integer. Represent 1/1e8 of a unit.\n */\n readonly fraction: number;\n\n /**\n * Currency of the amount.\n */\n readonly currency: string;\n}\n\nexport const codecForAmountJson = (): Codec<AmountJson> =>\n buildCodecForObject<AmountJson>()\n .property(\"currency\", codecForString())\n .property(\"value\", codecForNumber())\n .property(\"fraction\", codecForNumber())\n .build(\"AmountJson\");\n\nexport function codecForAmountString(): Codec<AmountString> {\n return {\n decode(x: any, c?: Context): AmountString {\n if (typeof x !== \"string\") {\n throw new DecodingError(\n `expected string at ${renderContext(c)} but got ${typeof x}`,\n );\n }\n if (Amounts.parse(x) === undefined) {\n throw new DecodingError(\n `invalid amount at ${renderContext(c)} got \"${x}\"`,\n );\n }\n return x as AmountString;\n },\n };\n}\n\n/**\n * Result of a possibly overflowing operation.\n */\nexport interface Result {\n /**\n * Resulting, possibly saturated amount.\n */\n amount: AmountJson;\n /**\n * Was there an over-/underflow?\n */\n saturated: boolean;\n}\n\n/**\n * Type for things that are treated like amounts.\n */\nexport type AmountLike = string | AmountString | AmountJson;\n\nexport interface DivmodResult {\n quotient: number;\n remainder: AmountJson;\n}\n\n/**\n * Helper class for dealing with amounts.\n */\nexport class Amounts {\n private constructor() {\n throw Error(\"not instantiable\");\n }\n\n static currencyOf(amount: AmountLike) {\n const amt = Amounts.parseOrThrow(amount);\n return amt.currency;\n }\n\n static zeroOfAmount(amount: AmountLike): AmountJson {\n const amt = Amounts.parseOrThrow(amount);\n return {\n currency: amt.currency,\n fraction: 0,\n value: 0,\n };\n }\n\n /**\n * Get an amount that represents zero units of a currency.\n */\n static zeroOfCurrency(currency: string): AmountJson {\n return {\n currency,\n fraction: 0,\n value: 0,\n };\n }\n\n static jsonifyAmount(amt: AmountLike): AmountJson {\n if (typeof amt === \"string\") {\n return Amounts.parseOrThrow(amt);\n }\n return amt;\n }\n\n static divmod(a1: AmountLike, a2: AmountLike): DivmodResult {\n const am1 = Amounts.jsonifyAmount(a1);\n const am2 = Amounts.jsonifyAmount(a2);\n if (am1.currency != am2.currency) {\n throw Error(`incompatible currency (${am1.currency} vs${am2.currency})`);\n }\n\n const x1 =\n BigInt(am1.value) * BigInt(amountFractionalBase) + BigInt(am1.fraction);\n const x2 =\n BigInt(am2.value) * BigInt(amountFractionalBase) + BigInt(am2.fraction);\n\n const quotient = x1 / x2;\n const remainderScaled = x1 % x2;\n\n return {\n quotient: Number(quotient),\n remainder: {\n currency: am1.currency,\n value: Number(remainderScaled / BigInt(amountFractionalBase)),\n fraction: Number(remainderScaled % BigInt(amountFractionalBase)),\n },\n };\n }\n\n static sum(amounts: AmountLike[]): Result {\n if (amounts.length <= 0) {\n throw Error(\"can't sum zero amounts\");\n }\n const jsonAmounts = amounts.map((x) => Amounts.jsonifyAmount(x));\n return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));\n }\n\n static sumOrZero(currency: string, amounts: AmountLike[]): Result {\n if (amounts.length <= 0) {\n return {\n amount: Amounts.zeroOfCurrency(currency),\n saturated: false,\n };\n }\n const jsonAmounts = amounts.map((x) => Amounts.jsonifyAmount(x));\n return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));\n }\n\n /**\n * Add two amounts. Return the result and whether\n * the addition overflowed. The overflow is always handled\n * by saturating and never by wrapping.\n *\n * Throws when currencies don't match.\n */\n static add(first: AmountLike, ...rest: AmountLike[]): Result {\n const firstJ = Amounts.jsonifyAmount(first);\n const currency = firstJ.currency;\n let value =\n firstJ.value + Math.floor(firstJ.fraction / amountFractionalBase);\n if (value > amountMaxValue) {\n return {\n amount: {\n currency,\n value: amountMaxValue,\n fraction: amountFractionalBase - 1,\n },\n saturated: true,\n };\n }\n let fraction = firstJ.fraction % amountFractionalBase;\n for (const x of rest) {\n const xJ = Amounts.jsonifyAmount(x);\n if (xJ.currency.toUpperCase() !== currency.toUpperCase()) {\n throw Error(`Mismatched currency: ${xJ.currency} and ${currency}`);\n }\n\n value =\n value +\n xJ.value +\n Math.floor((fraction + xJ.fraction) / amountFractionalBase);\n fraction = Math.floor((fraction + xJ.fraction) % amountFractionalBase);\n if (value > amountMaxValue) {\n return {\n amount: {\n currency,\n value: amountMaxValue,\n fraction: amountFractionalBase - 1,\n },\n saturated: true,\n };\n }\n }\n return { amount: { currency, value, fraction }, saturated: false };\n }\n\n /**\n * Subtract two amounts. Return the result and whether\n * the subtraction overflowed. The overflow is always handled\n * by saturating and never by wrapping.\n *\n * Throws when currencies don't match.\n */\n static sub(a: AmountLike, ...rest: AmountLike[]): Result {\n const aJ = Amounts.jsonifyAmount(a);\n const currency = aJ.currency;\n let value = aJ.value;\n let fraction = aJ.fraction;\n\n for (const b of rest) {\n const bJ = Amounts.jsonifyAmount(b);\n if (bJ.currency.toUpperCase() !== aJ.currency.toUpperCase()) {\n throw Error(`Mismatched currency: ${bJ.currency} and ${currency}`);\n }\n if (fraction < bJ.fraction) {\n if (value < 1) {\n return {\n amount: { currency, value: 0, fraction: 0 },\n saturated: true,\n };\n }\n value--;\n fraction += amountFractionalBase;\n }\n console.assert(fraction >= bJ.fraction);\n fraction -= bJ.fraction;\n if (value < bJ.value) {\n return { amount: { currency, value: 0, fraction: 0 }, saturated: true };\n }\n value -= bJ.value;\n }\n\n return { amount: { currency, value, fraction }, saturated: false };\n }\n\n /**\n * Compare two amounts. Returns 0 when equal, -1 when a < b\n * and +1 when a > b. Throws when currencies don't match.\n */\n static cmp(a: AmountLike, b: AmountLike): -1 | 0 | 1 {\n a = Amounts.jsonifyAmount(a);\n b = Amounts.jsonifyAmount(b);\n if (a.currency !== b.currency) {\n throw Error(`Mismatched currency: ${a.currency} and ${b.currency}`);\n }\n const av = a.value + Math.floor(a.fraction / amountFractionalBase);\n const af = a.fraction % amountFractionalBase;\n const bv = b.value + Math.floor(b.fraction / amountFractionalBase);\n const bf = b.fraction % amountFractionalBase;\n switch (true) {\n case av < bv:\n return -1;\n case av > bv:\n return 1;\n case af < bf:\n return -1;\n case af > bf:\n return 1;\n case af === bf:\n return 0;\n default:\n throw Error(\"assertion failed\");\n }\n }\n\n /**\n * Create a copy of an amount.\n */\n static copy(a: AmountJson): AmountJson {\n return {\n currency: a.currency,\n fraction: a.fraction,\n value: a.value,\n };\n }\n\n /**\n * Divide an amount. Throws on division by zero.\n */\n static divide(a: AmountJson, n: number): AmountJson {\n if (n === 0) {\n throw Error(`Division by 0`);\n }\n if (n === 1) {\n return { value: a.value, fraction: a.fraction, currency: a.currency };\n }\n const r = a.value % n;\n return {\n currency: a.currency,\n fraction: Math.floor((r * amountFractionalBase + a.fraction) / n),\n value: Math.floor(a.value / n),\n };\n }\n\n /**\n * Check if an amount is non-zero.\n */\n static isNonZero(a: AmountLike): boolean {\n a = Amounts.jsonifyAmount(a);\n return a.value > 0 || a.fraction > 0;\n }\n\n static isZero(a: AmountLike): boolean {\n a = Amounts.jsonifyAmount(a);\n return a.value === 0 && a.fraction === 0;\n }\n\n /**\n * Parse an amount like 'EUR:20.5' for 20 Euros and 50 ct.\n * \n * Currency name size limit is 11 of ASCII letters\n * Fraction size limit is 8\n */\n static parse(s: string): AmountJson | undefined {\n const res = s.match(/^([a-zA-Z]{1,11}):([0-9]+)([.][0-9]{1,8})?$/);\n if (!res) {\n return undefined;\n }\n const tail = res[3] || \".0\";\n if (tail.length > amountFractionalLength + 1) {\n return undefined;\n }\n const value = Number.parseInt(res[2]);\n if (value > amountMaxValue) {\n return undefined;\n }\n return {\n currency: res[1].toUpperCase(),\n fraction: Math.round(amountFractionalBase * Number.parseFloat(tail)),\n value,\n };\n }\n\n /**\n * Parse amount in standard string form (like 'EUR:20.5'),\n * throw if the input is not a valid amount.\n */\n static parseOrThrow(s: AmountLike): AmountJson {\n if (typeof s === \"object\") {\n if (typeof s.currency !== \"string\") {\n throw Error(\"invalid amount object\");\n }\n if (typeof s.value !== \"number\") {\n throw Error(\"invalid amount object\");\n }\n if (typeof s.fraction !== \"number\") {\n throw Error(\"invalid amount object\");\n }\n return { currency: s.currency, value: s.value, fraction: s.fraction };\n } else if (typeof s === \"string\") {\n const res = Amounts.parse(s);\n if (!res) {\n throw Error(`Can't parse amount: \"${s}\"`);\n }\n return res;\n } else {\n throw Error(\"invalid amount (illegal type)\");\n }\n }\n\n static min(a: AmountLike, b: AmountLike): AmountJson {\n const cr = Amounts.cmp(a, b);\n if (cr >= 0) {\n return Amounts.jsonifyAmount(b);\n } else {\n return Amounts.jsonifyAmount(a);\n }\n }\n\n static max(a: AmountLike, b: AmountLike): AmountJson {\n const cr = Amounts.cmp(a, b);\n if (cr >= 0) {\n return Amounts.jsonifyAmount(a);\n } else {\n return Amounts.jsonifyAmount(b);\n }\n }\n\n static mult(a: AmountLike, n: number): Result {\n a = this.jsonifyAmount(a);\n if (!Number.isInteger(n)) {\n throw Error(\"amount can only be multipied by an integer\");\n }\n if (n < 0) {\n throw Error(\"amount can only be multiplied by a positive integer\");\n }\n if (n == 0) {\n return {\n amount: Amounts.zeroOfCurrency(a.currency),\n saturated: false,\n };\n }\n let x = a;\n let acc = Amounts.zeroOfCurrency(a.currency);\n while (n > 1) {\n if (n % 2 == 0) {\n n = n / 2;\n } else {\n n = (n - 1) / 2;\n const r2 = Amounts.add(acc, x);\n if (r2.saturated) {\n return r2;\n }\n acc = r2.amount;\n }\n const r2 = Amounts.add(x, x);\n if (r2.saturated) {\n return r2;\n }\n x = r2.amount;\n }\n return Amounts.add(acc, x);\n }\n\n /**\n * Check if the argument is a valid amount in string form.\n */\n static check(a: any): boolean {\n if (typeof a !== \"string\") {\n return false;\n }\n try {\n const parsedAmount = Amounts.parse(a);\n return !!parsedAmount;\n } catch {\n return false;\n }\n }\n\n /**\n * Convert to standard human-readable string representation that's\n * also used in JSON formats.\n */\n static stringify(a: AmountLike): AmountString {\n a = Amounts.jsonifyAmount(a);\n const s = this.stringifyValue(a);\n\n return `${a.currency}:${s}` as AmountString;\n }\n\n static isSameCurrency(a1: AmountLike, a2: AmountLike): boolean {\n const x1 = this.jsonifyAmount(a1);\n const x2 = this.jsonifyAmount(a2);\n return x1.currency.toUpperCase() === x2.currency.toUpperCase();\n }\n\n static stringifyValue(a: AmountLike, minFractional = 0): string {\n const aJ = Amounts.jsonifyAmount(a);\n const av = aJ.value + Math.floor(aJ.fraction / amountFractionalBase);\n const af = aJ.fraction % amountFractionalBase;\n let s = av.toString();\n\n if (af || minFractional) {\n s = s + \".\";\n let n = af;\n for (let i = 0; i < amountFractionalLength; i++) {\n if (!n && i >= minFractional) {\n break;\n }\n s = s + Math.floor((n / amountFractionalBase) * 10).toString();\n n = (n * 10) % amountFractionalBase;\n }\n }\n\n return s;\n }\n\n /**\n * Number of fractional digits needed to fully represent the amount\n * @param a amount\n * @returns\n */\n static maxFractionalDigits(a: AmountJson): number {\n if (a.fraction === 0) return 0;\n if (a.fraction < 0) {\n console.error(\"amount fraction can not be negative\", a);\n return 0;\n }\n let i = 0;\n let check = true;\n let rest = a.fraction;\n while (rest > 0 && check) {\n check = rest % 10 === 0;\n rest = rest / 10;\n i++;\n }\n return amountFractionalLength - i + 1;\n }\n}\n", "/*\nCopyright Mathias Bynens <https://mathiasbynens.be/>\nCopyright (c) 2022 Taler Systems S.A.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = \"-\"; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n overflow: \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\",\n} as { [x: string]: string };\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type: string) {\n throw new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array: any[], fn: (arg0: any) => any) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(\n string: string,\n fn: { (string: any): any; (string: any): any; (arg0: any): any },\n) {\n const parts = string.split(\"@\");\n let result = \"\";\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + \"@\";\n string = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n string = string.replace(regexSeparators, \"\\x2E\");\n const labels = string.split(\".\");\n const encoded = map(labels, fn).join(\".\");\n return result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string: string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 0xd800 && value <= 0xdbff && counter < length) {\n // It's a high surrogate, and there is a next character.\n const extra = string.charCodeAt(counter++);\n if ((extra & 0xfc00) == 0xdc00) {\n // Low surrogate.\n output.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = (array: any): string => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function (codePoint: number) {\n if (codePoint - 0x30 < 0x0a) {\n return codePoint - 0x16;\n }\n if (codePoint - 0x41 < 0x1a) {\n return codePoint - 0x41;\n }\n if (codePoint - 0x61 < 0x1a) {\n return codePoint - 0x61;\n }\n return base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function (digit: number, flag: number) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * Number(digit < 26) - (Number(flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function (delta: number, numPoints: number, firstTime: boolean) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (\n ;\n /* no initialization */ delta > (baseMinusTMin * tMax) >> 1;\n k += base\n ) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + ((baseMinusTMin + 1) * delta) / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function (input: string) {\n // Don't use UCS-2.\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n\n // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n\n for (let j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error(\"not-basic\");\n }\n output.push(input.charCodeAt(j));\n }\n\n // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n for (\n let index = basic > 0 ? basic + 1 : 0;\n index < inputLength /* no final expression */;\n\n ) {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n let oldi = i;\n for (let w = 1, k = base /* no condition */; ; k += base) {\n if (index >= inputLength) {\n error(\"invalid-input\");\n }\n\n const digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error(\"overflow\");\n }\n\n i += digit * w;\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error(\"overflow\");\n }\n\n w *= baseMinusT;\n }\n\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n\n // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n if (floor(i / out) > maxInt - n) {\n error(\"overflow\");\n }\n\n n += floor(i / out);\n i %= out;\n\n // Insert `n` at position `i` of the output.\n output.splice(i++, 0, n);\n }\n\n return String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function (inputArg: string) {\n const output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n let input = ucs2decode(inputArg);\n\n // Cache the length.\n let inputLength = input.length;\n\n // Initialize the state.\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n\n // Handle the basic code points.\n for (const currentValue of input) {\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n let basicLength = output.length;\n let handledCPCount = basicLength;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n let m = maxInt;\n for (const currentValue of input) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow.\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error(\"overflow\");\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (const currentValue of input) {\n if (currentValue < n && ++delta > maxInt) {\n error(\"overflow\");\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n let q = delta;\n for (let k = base /* no condition */; ; k += base) {\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + (qMinusT % baseMinusT), 0)),\n );\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(\n delta,\n handledCPCountPlusOne,\n handledCPCount == basicLength,\n );\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join(\"\");\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function (input: string) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string)\n ? decode(string.slice(4).toLowerCase())\n : string;\n });\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function (input: string) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n });\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nexport const punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n version: \"2.1.0\",\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n ucs2: {\n decode: ucs2decode,\n encode: ucs2encode,\n },\n decode: decode,\n encode: encode,\n toASCII: toASCII,\n toUnicode: toUnicode,\n};\n", "/*\nThe MIT License (MIT)\n\nCopyright (c) Sebastian Mayr\nCopyright (c) 2022 Taler Systems S.A.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// Vendored with modifications (TypeScript etc.) from https://github.com/jsdom/whatwg-url\n\nconst utf8Encoder = new TextEncoder();\nconst utf8Decoder = new TextDecoder(\"utf-8\", { ignoreBOM: true });\n\nfunction utf8Encode(string: string | undefined) {\n return utf8Encoder.encode(string);\n}\n\nfunction utf8DecodeWithoutBOM(\n bytes: DataView | ArrayBuffer | null | undefined,\n) {\n return utf8Decoder.decode(bytes);\n}\n\n// https://url.spec.whatwg.org/#concept-urlencoded-parser\nfunction parseUrlencoded(input: Uint8Array) {\n const sequences = strictlySplitByteSequence(input, p(\"&\"));\n const output = [];\n for (const bytes of sequences) {\n if (bytes.length === 0) {\n continue;\n }\n\n let name, value;\n const indexOfEqual = bytes.indexOf(p(\"=\")!);\n\n if (indexOfEqual >= 0) {\n name = bytes.slice(0, indexOfEqual);\n value = bytes.slice(indexOfEqual + 1);\n } else {\n name = bytes;\n value = new Uint8Array(0);\n }\n\n name = replaceByteInByteSequence(name, 0x2b, 0x20);\n value = replaceByteInByteSequence(value, 0x2b, 0x20);\n\n const nameString = utf8DecodeWithoutBOM(percentDecodeBytes(name));\n const valueString = utf8DecodeWithoutBOM(percentDecodeBytes(value));\n\n output.push([nameString, valueString]);\n }\n return output;\n}\n\n// https://url.spec.whatwg.org/#concept-urlencoded-string-parser\nfunction parseUrlencodedString(input: string | undefined) {\n return parseUrlencoded(utf8Encode(input));\n}\n\n// https://url.spec.whatwg.org/#concept-urlencoded-serializer\nfunction serializeUrlencoded(tuples: any[], encodingOverride = undefined) {\n let encoding = \"utf-8\";\n if (encodingOverride !== undefined) {\n // TODO \"get the output encoding\", i.e. handle encoding labels vs. names.\n encoding = encodingOverride;\n }\n\n let output = \"\";\n for (const [i, tuple] of tuples.entries()) {\n // TODO: handle encoding override\n\n const name = utf8PercentEncodeString(\n tuple[0],\n isURLEncodedPercentEncode,\n true,\n );\n\n let value = tuple[1];\n if (tuple.length > 2 && tuple[2] !== undefined) {\n if (tuple[2] === \"hidden\" && name === \"_charset_\") {\n value = encoding;\n } else if (tuple[2] === \"file\") {\n // value is a File object\n value = value.name;\n }\n }\n\n value = utf8PercentEncodeString(value, isURLEncodedPercentEncode, true);\n\n if (i !== 0) {\n output += \"&\";\n }\n output += `${name}=${value}`;\n }\n return output;\n}\n\nfunction strictlySplitByteSequence(buf: Uint8Array, cp: any) {\n const list = [];\n let last = 0;\n let i = buf.indexOf(cp);\n while (i >= 0) {\n list.push(buf.slice(last, i));\n last = i + 1;\n i = buf.indexOf(cp, last);\n }\n if (last !== buf.length) {\n list.push(buf.slice(last));\n }\n return list;\n}\n\nfunction replaceByteInByteSequence(buf: Uint8Array, from: number, to: number) {\n let i = buf.indexOf(from);\n while (i >= 0) {\n buf[i] = to;\n i = buf.indexOf(from, i + 1);\n }\n return buf;\n}\n\nfunction p(char: string) {\n return char.codePointAt(0);\n}\n\n// https://url.spec.whatwg.org/#percent-encode\nfunction percentEncode(c: number) {\n let hex = c.toString(16).toUpperCase();\n if (hex.length === 1) {\n hex = `0${hex}`;\n }\n\n return `%${hex}`;\n}\n\n// https://url.spec.whatwg.org/#percent-decode\nfunction percentDecodeBytes(input: Uint8Array) {\n const output = new Uint8Array(input.byteLength);\n let outputIndex = 0;\n for (let i = 0; i < input.byteLength; ++i) {\n const byte = input[i];\n if (byte !== 0x25) {\n output[outputIndex++] = byte;\n } else if (\n byte === 0x25 &&\n (!isASCIIHex(input[i + 1]) || !isASCIIHex(input[i + 2]))\n ) {\n output[outputIndex++] = byte;\n } else {\n const bytePoint = parseInt(\n String.fromCodePoint(input[i + 1], input[i + 2]),\n 16,\n );\n output[outputIndex++] = bytePoint;\n i += 2;\n }\n }\n\n return output.slice(0, outputIndex);\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\nfunction percentDecodeString(input: string) {\n const bytes = utf8Encode(input);\n return percentDecodeBytes(bytes);\n}\n\n// https://url.spec.whatwg.org/#c0-control-percent-encode-set\nfunction isC0ControlPercentEncode(c: number) {\n return c <= 0x1f || c > 0x7e;\n}\n\n// https://url.spec.whatwg.org/#fragment-percent-encode-set\nconst extraFragmentPercentEncodeSet = new Set([\n p(\" \"),\n p('\"'),\n p(\"<\"),\n p(\">\"),\n p(\"`\"),\n]);\n\nfunction isFragmentPercentEncode(c: number) {\n return isC0ControlPercentEncode(c) || extraFragmentPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#query-percent-encode-set\nconst extraQueryPercentEncodeSet = new Set([\n p(\" \"),\n p('\"'),\n p(\"#\"),\n p(\"<\"),\n p(\">\"),\n]);\n\nfunction isQueryPercentEncode(c: number) {\n return isC0ControlPercentEncode(c) || extraQueryPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#special-query-percent-encode-set\nfunction isSpecialQueryPercentEncode(c: number) {\n return isQueryPercentEncode(c) || c === p(\"'\");\n}\n\n// https://url.spec.whatwg.org/#path-percent-encode-set\nconst extraPathPercentEncodeSet = new Set([p(\"?\"), p(\"`\"), p(\"{\"), p(\"}\")]);\nfunction isPathPercentEncode(c: number) {\n return isQueryPercentEncode(c) || extraPathPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#userinfo-percent-encode-set\nconst extraUserinfoPercentEncodeSet = new Set([\n p(\"/\"),\n p(\":\"),\n p(\";\"),\n p(\"=\"),\n p(\"@\"),\n p(\"[\"),\n p(\"\\\\\"),\n p(\"]\"),\n p(\"^\"),\n p(\"|\"),\n]);\nfunction isUserinfoPercentEncode(c: number) {\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#component-percent-encode-set\nconst extraComponentPercentEncodeSet = new Set([\n p(\"$\"),\n p(\"%\"),\n p(\"&\"),\n p(\"+\"),\n p(\",\"),\n]);\nfunction isComponentPercentEncode(c: number) {\n return isUserinfoPercentEncode(c) || extraComponentPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#application-x-www-form-urlencoded-percent-encode-set\nconst extraURLEncodedPercentEncodeSet = new Set([\n p(\"!\"),\n p(\"'\"),\n p(\"(\"),\n p(\")\"),\n p(\"~\"),\n]);\n\nfunction isURLEncodedPercentEncode(c: number) {\n return isComponentPercentEncode(c) || extraURLEncodedPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#code-point-percent-encode-after-encoding\n// https://url.spec.whatwg.org/#utf-8-percent-encode\n// Assuming encoding is always utf-8 allows us to trim one of the logic branches. TODO: support encoding.\n// The \"-Internal\" variant here has code points as JS strings. The external version used by other files has code points\n// as JS numbers, like the rest of the codebase.\nfunction utf8PercentEncodeCodePointInternal(\n codePoint: string,\n percentEncodePredicate: (arg0: number) => any,\n) {\n const bytes = utf8Encode(codePoint);\n let output = \"\";\n for (const byte of bytes) {\n // Our percentEncodePredicate operates on bytes, not code points, so this is slightly different from the spec.\n if (!percentEncodePredicate(byte)) {\n output += String.fromCharCode(byte);\n } else {\n output += percentEncode(byte);\n }\n }\n\n return output;\n}\n\nfunction utf8PercentEncodeCodePoint(\n codePoint: number,\n percentEncodePredicate: (arg0: number) => any,\n) {\n return utf8PercentEncodeCodePointInternal(\n String.fromCodePoint(codePoint),\n percentEncodePredicate,\n );\n}\n\n// https://url.spec.whatwg.org/#string-percent-encode-after-encoding\n// https://url.spec.whatwg.org/#string-utf-8-percent-encode\nfunction utf8PercentEncodeString(\n input: string,\n percentEncodePredicate: {\n (c: number): boolean;\n (c: number): boolean;\n (arg0: number): any;\n },\n spaceAsPlus = false,\n) {\n let output = \"\";\n for (const codePoint of input) {\n if (spaceAsPlus && codePoint === \" \") {\n output += \"+\";\n } else {\n output += utf8PercentEncodeCodePointInternal(\n codePoint,\n percentEncodePredicate,\n );\n }\n }\n return output;\n}\n\n// Note that we take code points as JS numbers, not JS strings.\n\nfunction isASCIIDigit(c: number) {\n return c >= 0x30 && c <= 0x39;\n}\n\nfunction isASCIIAlpha(c: number) {\n return (c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a);\n}\n\nfunction isASCIIAlphanumeric(c: number) {\n return isASCIIAlpha(c) || isASCIIDigit(c);\n}\n\nfunction isASCIIHex(c: number) {\n return (\n isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66)\n );\n}\n\nexport class URLSearchParamsImpl {\n _list: any[];\n _url: any;\n constructor(init: any, { doNotStripQMark = false }: any = {}) {\n this._list = [];\n this._url = null;\n\n if (!doNotStripQMark && typeof init === \"string\" && init[0] === \"?\") {\n init = init.slice(1);\n }\n\n if (Array.isArray(init)) {\n for (const pair of init) {\n if (pair.length !== 2) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1 sequence's element does not \" +\n \"contain exactly two elements.\",\n );\n }\n this._list.push([pair[0], pair[1]]);\n }\n } else if (\n typeof init === \"object\" &&\n Object.getPrototypeOf(init) === null\n ) {\n for (const name of Object.keys(init)) {\n const value = init[name];\n this._list.push([name, value]);\n }\n } else {\n this._list = parseUrlencodedString(init);\n }\n }\n\n _updateSteps() {\n if (this._url !== null) {\n let query: string | null = serializeUrlencoded(this._list);\n if (query === \"\") {\n query = null;\n }\n this._url._url.query = query;\n }\n }\n\n append(name: string, value: string) {\n this._list.push([name, value]);\n this._updateSteps();\n }\n\n delete(name: string) {\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n this._list.splice(i, 1);\n } else {\n i++;\n }\n }\n this._updateSteps();\n }\n\n get(name: string) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return tuple[1];\n }\n }\n return null;\n }\n\n getAll(name: string) {\n const output = [];\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n output.push(tuple[1]);\n }\n }\n return output;\n }\n\n forEach(\n callbackfn: (\n value: string,\n key: string,\n parent: URLSearchParamsImpl,\n ) => void,\n thisArg?: any,\n ): void {\n for (const tuple of this._list) {\n callbackfn.call(thisArg, tuple[1], tuple[0], this);\n }\n }\n\n has(name: string) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return true;\n }\n }\n return false;\n }\n\n set(name: string, value: string) {\n let found = false;\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n if (found) {\n this._list.splice(i, 1);\n } else {\n found = true;\n this._list[i][1] = value;\n i++;\n }\n } else {\n i++;\n }\n }\n if (!found) {\n this._list.push([name, value]);\n }\n this._updateSteps();\n }\n\n sort() {\n this._list.sort((a, b) => {\n if (a[0] < b[0]) {\n return -1;\n }\n if (a[0] > b[0]) {\n return 1;\n }\n return 0;\n });\n\n this._updateSteps();\n }\n\n [Symbol.iterator]() {\n return this._list[Symbol.iterator]();\n }\n\n toString() {\n return serializeUrlencoded(this._list);\n }\n}\n\nconst specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n} as { [x: string]: number | null };\n\nconst failure = Symbol(\"failure\");\n\nfunction countSymbols(str: any) {\n return [...str].length;\n}\n\nfunction at(input: any, idx: any) {\n const c = input[idx];\n return isNaN(c) ? undefined : String.fromCodePoint(c);\n}\n\nfunction isSingleDot(buffer: string) {\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\n}\n\nfunction isDoubleDot(buffer: string) {\n buffer = buffer.toLowerCase();\n return (\n buffer === \"..\" ||\n buffer === \"%2e.\" ||\n buffer === \".%2e\" ||\n buffer === \"%2e%2e\"\n );\n}\n\nfunction isWindowsDriveLetterCodePoints(cp1: number, cp2: number) {\n return isASCIIAlpha(cp1) && (cp2 === p(\":\") || cp2 === p(\"|\"));\n}\n\nfunction isWindowsDriveLetterString(string: string) {\n return (\n string.length === 2 &&\n isASCIIAlpha(string.codePointAt(0)!) &&\n (string[1] === \":\" || string[1] === \"|\")\n );\n}\n\nfunction isNormalizedWindowsDriveLetterString(string: string) {\n return (\n string.length === 2 &&\n isASCIIAlpha(string.codePointAt(0)!) &&\n string[1] === \":\"\n );\n}\n\nfunction containsForbiddenHostCodePoint(string: string) {\n return (\n string.search(\n /\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|<|>|\\?|@|\\[|\\\\|\\]|\\^|\\|/u,\n ) !== -1\n );\n}\n\nfunction containsForbiddenDomainCodePoint(string: string) {\n return (\n containsForbiddenHostCodePoint(string) ||\n string.search(/[\\u0000-\\u001F]|%|\\u007F/u) !== -1\n );\n}\n\nfunction isSpecialScheme(scheme: string) {\n return specialSchemes[scheme] !== undefined;\n}\n\nfunction isSpecial(url: any) {\n return isSpecialScheme(url.scheme);\n}\n\nfunction isNotSpecial(url: UrlObj) {\n return !isSpecialScheme(url.scheme);\n}\n\nfunction defaultPort(scheme: string) {\n return specialSchemes[scheme];\n}\n\nfunction parseIPv4Number(input: string) {\n if (input === \"\") {\n return failure;\n }\n\n let R = 10;\n\n if (\n input.length >= 2 &&\n input.charAt(0) === \"0\" &&\n input.charAt(1).toLowerCase() === \"x\"\n ) {\n input = input.substring(2);\n R = 16;\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\n input = input.substring(1);\n R = 8;\n }\n\n if (input === \"\") {\n return 0;\n }\n\n let regex = /[^0-7]/u;\n if (R === 10) {\n regex = /[^0-9]/u;\n }\n if (R === 16) {\n regex = /[^0-9A-Fa-f]/u;\n }\n\n if (regex.test(input)) {\n return failure;\n }\n\n return parseInt(input, R);\n}\n\nfunction parseIPv4(input: string) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length > 1) {\n parts.pop();\n }\n }\n\n if (parts.length > 4) {\n return failure;\n }\n\n const numbers = [];\n for (const part of parts) {\n const n = parseIPv4Number(part);\n if (n === failure) {\n return failure;\n }\n\n numbers.push(n);\n }\n\n for (let i = 0; i < numbers.length - 1; ++i) {\n if (numbers[i] > 255) {\n return failure;\n }\n }\n if (numbers[numbers.length - 1] >= 256 ** (5 - numbers.length)) {\n return failure;\n }\n\n let ipv4 = numbers.pop();\n let counter = 0;\n\n for (const n of numbers) {\n ipv4! += n * 256 ** (3 - counter);\n ++counter;\n }\n\n return ipv4;\n}\n\nfunction serializeIPv4(address: number) {\n let output = \"\";\n let n = address;\n\n for (let i = 1; i <= 4; ++i) {\n output = String(n % 256) + output;\n if (i !== 4) {\n output = `.${output}`;\n }\n n = Math.floor(n / 256);\n }\n\n return output;\n}\n\nfunction parseIPv6(inputArg: string) {\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\n let pieceIndex = 0;\n let compress = null;\n let pointer = 0;\n\n const input = Array.from(inputArg, (c) => c.codePointAt(0));\n\n if (input[pointer] === p(\":\")) {\n if (input[pointer + 1] !== p(\":\")) {\n return failure;\n }\n\n pointer += 2;\n ++pieceIndex;\n compress = pieceIndex;\n }\n\n while (pointer < input.length) {\n if (pieceIndex === 8) {\n return failure;\n }\n\n if (input[pointer] === p(\":\")) {\n if (compress !== null) {\n return failure;\n }\n ++pointer;\n ++pieceIndex;\n compress = pieceIndex;\n continue;\n }\n\n let value = 0;\n let length = 0;\n\n while (length < 4 && isASCIIHex(input[pointer]!)) {\n value = value * 0x10 + parseInt(at(input, pointer)!, 16);\n ++pointer;\n ++length;\n }\n\n if (input[pointer] === p(\".\")) {\n if (length === 0) {\n return failure;\n }\n\n pointer -= length;\n\n if (pieceIndex > 6) {\n return failure;\n }\n\n let numbersSeen = 0;\n\n while (input[pointer] !== undefined) {\n let ipv4Piece = null;\n\n if (numbersSeen > 0) {\n if (input[pointer] === p(\".\") && numbersSeen < 4) {\n ++pointer;\n } else {\n return failure;\n }\n }\n\n if (!isASCIIDigit(input[pointer]!)) {\n return failure;\n }\n\n while (isASCIIDigit(input[pointer]!)) {\n const number = parseInt(at(input, pointer)!);\n if (ipv4Piece === null) {\n ipv4Piece = number;\n } else if (ipv4Piece === 0) {\n return failure;\n } else {\n ipv4Piece = ipv4Piece * 10 + number;\n }\n if (ipv4Piece > 255) {\n return failure;\n }\n ++pointer;\n }\n\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece!;\n\n ++numbersSeen;\n\n if (numbersSeen === 2 || numbersSeen === 4) {\n ++pieceIndex;\n }\n }\n\n if (numbersSeen !== 4) {\n return failure;\n }\n\n break;\n } else if (input[pointer] === p(\":\")) {\n ++pointer;\n if (input[pointer] === undefined) {\n return failure;\n }\n } else if (input[pointer] !== undefined) {\n return failure;\n }\n\n address[pieceIndex] = value;\n ++pieceIndex;\n }\n\n if (compress !== null) {\n let swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n const temp = address[compress + swaps - 1];\n address[compress + swaps - 1] = address[pieceIndex];\n address[pieceIndex] = temp;\n --pieceIndex;\n --swaps;\n }\n } else if (compress === null && pieceIndex !== 8) {\n return failure;\n }\n\n return address;\n}\n\nfunction serializeIPv6(address: any[]) {\n let output = \"\";\n const compress = findLongestZeroSequence(address);\n let ignore0 = false;\n\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\n if (ignore0 && address[pieceIndex] === 0) {\n continue;\n } else if (ignore0) {\n ignore0 = false;\n }\n\n if (compress === pieceIndex) {\n const separator = pieceIndex === 0 ? \"::\" : \":\";\n output += separator;\n ignore0 = true;\n continue;\n }\n\n output += address[pieceIndex].toString(16);\n\n if (pieceIndex !== 7) {\n output += \":\";\n }\n }\n\n return output;\n}\n\nfunction parseHost(input: string, isNotSpecialArg = false) {\n if (input[0] === \"[\") {\n if (input[input.length - 1] !== \"]\") {\n return failure;\n }\n\n return parseIPv6(input.substring(1, input.length - 1));\n }\n\n if (isNotSpecialArg) {\n return parseOpaqueHost(input);\n }\n\n const domain = utf8DecodeWithoutBOM(percentDecodeString(input));\n const asciiDomain = domainToASCII(domain);\n if (asciiDomain === failure) {\n return failure;\n }\n\n if (containsForbiddenDomainCodePoint(asciiDomain)) {\n return failure;\n }\n\n if (endsInANumber(asciiDomain)) {\n return parseIPv4(asciiDomain);\n }\n\n return asciiDomain;\n}\n\nfunction endsInANumber(input: string) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length === 1) {\n return false;\n }\n parts.pop();\n }\n\n const last = parts[parts.length - 1];\n if (parseIPv4Number(last) !== failure) {\n return true;\n }\n\n if (/^[0-9]+$/u.test(last)) {\n return true;\n }\n\n return false;\n}\n\nfunction parseOpaqueHost(input: string) {\n if (containsForbiddenHostCodePoint(input)) {\n return failure;\n }\n\n return utf8PercentEncodeString(input, isC0ControlPercentEncode);\n}\n\nfunction findLongestZeroSequence(arr: number[]) {\n let maxIdx = null;\n let maxLen = 1; // only find elements > 1\n let currStart = null;\n let currLen = 0;\n\n for (let i = 0; i < arr.length; ++i) {\n if (arr[i] !== 0) {\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n currStart = null;\n currLen = 0;\n } else {\n if (currStart === null) {\n currStart = i;\n }\n ++currLen;\n }\n }\n\n // if trailing zeros\n if (currLen > maxLen) {\n return currStart;\n }\n\n return maxIdx;\n}\n\nfunction serializeHost(host: number | number[] | string) {\n if (typeof host === \"number\") {\n return serializeIPv4(host);\n }\n\n // IPv6 serializer\n if (host instanceof Array) {\n return `[${serializeIPv6(host)}]`;\n }\n\n return host;\n}\n\nimport { punycode } from \"./punycode.js\";\n\nfunction domainToASCII(domain: string, beStrict = false) {\n // const result = tr46.toASCII(domain, {\n // checkBidi: true,\n // checkHyphens: false,\n // checkJoiners: true,\n // useSTD3ASCIIRules: beStrict,\n // verifyDNSLength: beStrict,\n // });\n let result;\n try {\n result = punycode.toASCII(domain);\n } catch (e) {\n return failure;\n }\n if (result === null || result === \"\") {\n return failure;\n }\n return result;\n}\n\nfunction trimControlChars(url: string) {\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/gu, \"\");\n}\n\nfunction trimTabAndNewline(url: string) {\n return url.replace(/\\u0009|\\u000A|\\u000D/gu, \"\");\n}\n\nfunction shortenPath(url: UrlObj) {\n const { path } = url;\n if (path.length === 0) {\n return;\n }\n if (\n url.scheme === \"file\" &&\n path.length === 1 &&\n isNormalizedWindowsDriveLetter(path[0])\n ) {\n return;\n }\n\n path.pop();\n}\n\nfunction includesCredentials(url: UrlObj) {\n return url.username !== \"\" || url.password !== \"\";\n}\n\nfunction cannotHaveAUsernamePasswordPort(url: UrlObj) {\n return url.host === null || url.host === \"\" || url.scheme === \"file\";\n}\n\nfunction hasAnOpaquePath(url: UrlObj) {\n return typeof url.path === \"string\";\n}\n\nfunction isNormalizedWindowsDriveLetter(string: string) {\n return /^[A-Za-z]:$/u.test(string);\n}\n\nexport interface UrlObj {\n scheme: string;\n username: string;\n password: string;\n host: string | number[] | number | null | undefined;\n port: number | null;\n path: string[];\n query: any;\n fragment: any;\n}\n\nclass URLStateMachine {\n pointer: number;\n input: number[];\n base: any;\n encodingOverride: string;\n url: UrlObj;\n state: string;\n stateOverride: string;\n failure: boolean;\n parseError: boolean;\n buffer: string;\n atFlag: boolean;\n arrFlag: boolean;\n passwordTokenSeenFlag: boolean;\n\n constructor(\n input: string,\n base: any,\n encodingOverride: string,\n url: UrlObj,\n stateOverride: string,\n ) {\n this.pointer = 0;\n this.base = base || null;\n this.encodingOverride = encodingOverride || \"utf-8\";\n this.url = url;\n this.failure = false;\n this.parseError = false;\n\n if (!this.url) {\n this.url = {\n scheme: \"\",\n username: \"\",\n password: \"\",\n host: null,\n port: null,\n path: [],\n query: null,\n fragment: null,\n };\n\n const res = trimControlChars(input);\n if (res !== input) {\n this.parseError = true;\n }\n input = res;\n }\n\n const res = trimTabAndNewline(input);\n if (res !== input) {\n this.parseError = true;\n }\n input = res;\n\n this.state = stateOverride || \"scheme start\";\n\n this.buffer = \"\";\n this.atFlag = false;\n this.arrFlag = false;\n this.passwordTokenSeenFlag = false;\n\n this.input = Array.from(input, (c) => c.codePointAt(0)!);\n\n for (; this.pointer <= this.input.length; ++this.pointer) {\n const c = this.input[this.pointer];\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\n\n // exec state machine\n const ret = this.table[`parse ${this.state}`].call(this, c, cStr!);\n if (!ret) {\n break; // terminate algorithm\n } else if (ret === failure) {\n this.failure = true;\n break;\n }\n }\n }\n\n table = {\n \"parse scheme start\": this.parseSchemeStart,\n \"parse scheme\": this.parseScheme,\n \"parse no scheme\": this.parseNoScheme,\n \"parse special relative or authority\": this.parseSpecialRelativeOrAuthority,\n \"parse path or authority\": this.parsePathOrAuthority,\n \"parse relative\": this.parseRelative,\n \"parse relative slash\": this.parseRelativeSlash,\n \"parse special authority slashes\": this.parseSpecialAuthoritySlashes,\n \"parse special authority ignore slashes\":\n this.parseSpecialAuthorityIgnoreSlashes,\n \"parse authority\": this.parseAuthority,\n \"parse host\": this.parseHostName,\n \"parse hostname\": this.parseHostName /* intentional duplication */,\n \"parse port\": this.parsePort,\n \"parse file\": this.parseFile,\n \"parse file slash\": this.parseFileSlash,\n \"parse file host\": this.parseFileHost,\n \"parse path start\": this.parsePathStart,\n \"parse path\": this.parsePath,\n \"parse opaque path\": this.parseOpaquePath,\n \"parse query\": this.parseQuery,\n \"parse fragment\": this.parseFragment,\n } as { [x: string]: (c: number, cStr: string) => any };\n\n parseSchemeStart(c: number, cStr: string) {\n if (isASCIIAlpha(c)) {\n this.buffer += cStr.toLowerCase();\n this.state = \"scheme\";\n } else if (!this.stateOverride) {\n this.state = \"no scheme\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n }\n\n parseScheme(c: number, cStr: string) {\n if (\n isASCIIAlphanumeric(c) ||\n c === p(\"+\") ||\n c === p(\"-\") ||\n c === p(\".\")\n ) {\n this.buffer += cStr.toLowerCase();\n } else if (c === p(\":\")) {\n if (this.stateOverride) {\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (\n (includesCredentials(this.url) || this.url.port !== null) &&\n this.buffer === \"file\"\n ) {\n return false;\n }\n\n if (this.url.scheme === \"file\" && this.url.host === \"\") {\n return false;\n }\n }\n this.url.scheme = this.buffer;\n if (this.stateOverride) {\n if (this.url.port === defaultPort(this.url.scheme)) {\n this.url.port = null;\n }\n return false;\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\") {\n if (\n this.input[this.pointer + 1] !== p(\"/\") ||\n this.input[this.pointer + 2] !== p(\"/\")\n ) {\n this.parseError = true;\n }\n this.state = \"file\";\n } else if (\n isSpecial(this.url) &&\n this.base !== null &&\n this.base.scheme === this.url.scheme\n ) {\n this.state = \"special relative or authority\";\n } else if (isSpecial(this.url)) {\n this.state = \"special authority slashes\";\n } else if (this.input[this.pointer + 1] === p(\"/\")) {\n this.state = \"path or authority\";\n ++this.pointer;\n } else {\n this.url.path = [\"\"];\n this.state = \"opaque path\";\n }\n } else if (!this.stateOverride) {\n this.buffer = \"\";\n this.state = \"no scheme\";\n this.pointer = -1;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n }\n\n parseNoScheme(c: number) {\n if (this.base === null || (hasAnOpaquePath(this.base) && c !== p(\"#\"))) {\n return failure;\n } else if (hasAnOpaquePath(this.base) && c === p(\"#\")) {\n this.url.scheme = this.base.scheme;\n this.url.path = this.base.path;\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (this.base.scheme === \"file\") {\n this.state = \"file\";\n --this.pointer;\n } else {\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseSpecialRelativeOrAuthority(c: number) {\n if (c === p(\"/\") && this.input[this.pointer + 1] === p(\"/\")) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n }\n\n parsePathOrAuthority(c: number) {\n if (c === p(\"/\")) {\n this.state = \"authority\";\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseRelative(c: number) {\n this.url.scheme = this.base.scheme;\n if (c === p(\"/\")) {\n this.state = \"relative slash\";\n } else if (isSpecial(this.url) && c === p(\"\\\\\")) {\n this.parseError = true;\n this.state = \"relative slash\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (!isNaN(c)) {\n this.url.query = null;\n this.url.path.pop();\n this.state = \"path\";\n --this.pointer;\n }\n }\n\n return true;\n }\n\n parseRelativeSlash(c: number) {\n if (isSpecial(this.url) && (c === p(\"/\") || c === p(\"\\\\\"))) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"special authority ignore slashes\";\n } else if (c === p(\"/\")) {\n this.state = \"authority\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseSpecialAuthoritySlashes(c: number) {\n if (c === p(\"/\") && this.input[this.pointer + 1] === p(\"/\")) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"special authority ignore slashes\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseSpecialAuthorityIgnoreSlashes(c: number) {\n if (c !== p(\"/\") && c !== p(\"\\\\\")) {\n this.state = \"authority\";\n --this.pointer;\n } else {\n this.parseError = true;\n }\n\n return true;\n }\n\n parseAuthority(c: number, cStr: string) {\n if (c === p(\"@\")) {\n this.parseError = true;\n if (this.atFlag) {\n this.buffer = `%40${this.buffer}`;\n }\n this.atFlag = true;\n\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\n const len = countSymbols(this.buffer);\n for (let pointer = 0; pointer < len; ++pointer) {\n const codePoint = this.buffer.codePointAt(pointer);\n\n if (codePoint === p(\":\") && !this.passwordTokenSeenFlag) {\n this.passwordTokenSeenFlag = true;\n continue;\n }\n const encodedCodePoints = utf8PercentEncodeCodePoint(\n codePoint!,\n isUserinfoPercentEncode,\n );\n if (this.passwordTokenSeenFlag) {\n this.url.password += encodedCodePoints;\n } else {\n this.url.username += encodedCodePoints;\n }\n }\n this.buffer = \"\";\n } else if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"?\") ||\n c === p(\"#\") ||\n (isSpecial(this.url) && c === p(\"\\\\\"))\n ) {\n if (this.atFlag && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n this.pointer -= countSymbols(this.buffer) + 1;\n this.buffer = \"\";\n this.state = \"host\";\n } else {\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parseHostName(c: number, cStr: string) {\n if (this.stateOverride && this.url.scheme === \"file\") {\n --this.pointer;\n this.state = \"file host\";\n } else if (c === p(\":\") && !this.arrFlag) {\n if (this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n\n if (this.stateOverride === \"hostname\") {\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"port\";\n } else if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"?\") ||\n c === p(\"#\") ||\n (isSpecial(this.url) && c === p(\"\\\\\"))\n ) {\n --this.pointer;\n if (isSpecial(this.url) && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n } else if (\n this.stateOverride &&\n this.buffer === \"\" &&\n (includesCredentials(this.url) || this.url.port !== null)\n ) {\n this.parseError = true;\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"path start\";\n if (this.stateOverride) {\n return false;\n }\n } else {\n if (c === p(\"[\")) {\n this.arrFlag = true;\n } else if (c === p(\"]\")) {\n this.arrFlag = false;\n }\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parsePort(c: number, cStr: any) {\n if (isASCIIDigit(c)) {\n this.buffer += cStr;\n } else if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"?\") ||\n c === p(\"#\") ||\n (isSpecial(this.url) && c === p(\"\\\\\")) ||\n this.stateOverride\n ) {\n if (this.buffer !== \"\") {\n const port = parseInt(this.buffer);\n if (port > 2 ** 16 - 1) {\n this.parseError = true;\n return failure;\n }\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\n this.buffer = \"\";\n }\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n }\n\n parseFile(c: number) {\n this.url.scheme = \"file\";\n this.url.host = \"\";\n\n if (c === p(\"/\") || c === p(\"\\\\\")) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"file slash\";\n } else if (this.base !== null && this.base.scheme === \"file\") {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (!isNaN(c)) {\n this.url.query = null;\n if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {\n shortenPath(this.url);\n } else {\n this.parseError = true;\n this.url.path = [];\n }\n\n this.state = \"path\";\n --this.pointer;\n }\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseFileSlash(c: number) {\n if (c === p(\"/\") || c === p(\"\\\\\")) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"file host\";\n } else {\n if (this.base !== null && this.base.scheme === \"file\") {\n if (\n !startsWithWindowsDriveLetter(this.input, this.pointer) &&\n isNormalizedWindowsDriveLetterString(this.base.path[0])\n ) {\n this.url.path.push(this.base.path[0]);\n }\n this.url.host = this.base.host;\n }\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseFileHost(c: number, cStr: string) {\n if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"\\\\\") ||\n c === p(\"?\") ||\n c === p(\"#\")\n ) {\n --this.pointer;\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\n this.parseError = true;\n this.state = \"path\";\n } else if (this.buffer === \"\") {\n this.url.host = \"\";\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n } else {\n let host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n if (host === \"localhost\") {\n host = \"\";\n }\n this.url.host = host as any;\n\n if (this.stateOverride) {\n return false;\n }\n\n this.buffer = \"\";\n this.state = \"path start\";\n }\n } else {\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parsePathStart(c: number) {\n if (isSpecial(this.url)) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"path\";\n\n if (c !== p(\"/\") && c !== p(\"\\\\\")) {\n --this.pointer;\n }\n } else if (!this.stateOverride && c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (!this.stateOverride && c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (c !== undefined) {\n this.state = \"path\";\n if (c !== p(\"/\")) {\n --this.pointer;\n }\n } else if (this.stateOverride && this.url.host === null) {\n this.url.path.push(\"\");\n }\n\n return true;\n }\n\n parsePath(c: number) {\n if (\n isNaN(c) ||\n c === p(\"/\") ||\n (isSpecial(this.url) && c === p(\"\\\\\")) ||\n (!this.stateOverride && (c === p(\"?\") || c === p(\"#\")))\n ) {\n if (isSpecial(this.url) && c === p(\"\\\\\")) {\n this.parseError = true;\n }\n\n if (isDoubleDot(this.buffer)) {\n shortenPath(this.url);\n if (c !== p(\"/\") && !(isSpecial(this.url) && c === p(\"\\\\\"))) {\n this.url.path.push(\"\");\n }\n } else if (\n isSingleDot(this.buffer) &&\n c !== p(\"/\") &&\n !(isSpecial(this.url) && c === p(\"\\\\\"))\n ) {\n this.url.path.push(\"\");\n } else if (!isSingleDot(this.buffer)) {\n if (\n this.url.scheme === \"file\" &&\n this.url.path.length === 0 &&\n isWindowsDriveLetterString(this.buffer)\n ) {\n this.buffer = `${this.buffer[0]}:`;\n }\n this.url.path.push(this.buffer);\n }\n this.buffer = \"\";\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n }\n if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n this.buffer += utf8PercentEncodeCodePoint(c, isPathPercentEncode);\n }\n\n return true;\n }\n\n parseOpaquePath(c: number) {\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n // TODO: Add: not a URL code point\n if (!isNaN(c) && c !== p(\"%\")) {\n this.parseError = true;\n }\n\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n if (!isNaN(c)) {\n // @ts-ignore\n this.url.path += utf8PercentEncodeCodePoint(\n c,\n isC0ControlPercentEncode,\n );\n }\n }\n\n return true;\n }\n\n parseQuery(c: number, cStr: string) {\n if (\n !isSpecial(this.url) ||\n this.url.scheme === \"ws\" ||\n this.url.scheme === \"wss\"\n ) {\n this.encodingOverride = \"utf-8\";\n }\n\n if ((!this.stateOverride && c === p(\"#\")) || isNaN(c)) {\n const queryPercentEncodePredicate = isSpecial(this.url)\n ? isSpecialQueryPercentEncode\n : isQueryPercentEncode;\n this.url.query += utf8PercentEncodeString(\n this.buffer,\n queryPercentEncodePredicate,\n );\n\n this.buffer = \"\";\n\n if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else if (!isNaN(c)) {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parseFragment(c: number) {\n if (!isNaN(c)) {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n this.url.fragment += utf8PercentEncodeCodePoint(\n c,\n isFragmentPercentEncode,\n );\n }\n\n return true;\n }\n}\n\nconst fileOtherwiseCodePoints = new Set([p(\"/\"), p(\"\\\\\"), p(\"?\"), p(\"#\")]);\n\nfunction startsWithWindowsDriveLetter(input: number[], pointer: number) {\n const length = input.length - pointer;\n return (\n length >= 2 &&\n isWindowsDriveLetterCodePoints(input[pointer], input[pointer + 1]) &&\n (length === 2 || fileOtherwiseCodePoints.has(input[pointer + 2]))\n );\n}\n\nfunction serializeURL(url: any, excludeFragment?: boolean) {\n let output = `${url.scheme}:`;\n if (url.host !== null) {\n output += \"//\";\n\n if (url.username !== \"\" || url.password !== \"\") {\n output += url.username;\n if (url.password !== \"\") {\n output += `:${url.password}`;\n }\n output += \"@\";\n }\n\n output += serializeHost(url.host);\n\n if (url.port !== null) {\n output += `:${url.port}`;\n }\n }\n\n if (\n url.host === null &&\n !hasAnOpaquePath(url) &&\n url.path.length > 1 &&\n url.path[0] === \"\"\n ) {\n output += \"/.\";\n }\n output += serializePath(url);\n\n if (url.query !== null) {\n output += `?${url.query}`;\n }\n\n if (!excludeFragment && url.fragment !== null) {\n output += `#${url.fragment}`;\n }\n\n return output;\n}\n\nfunction serializeOrigin(tuple: {\n scheme: string;\n port: number;\n host: number | number[] | string;\n}) {\n let result = `${tuple.scheme}://`;\n result += serializeHost(tuple.host);\n\n if (tuple.port !== null) {\n result += `:${tuple.port}`;\n }\n\n return result;\n}\n\nfunction serializePath(url: UrlObj): string {\n if (typeof url.path === \"string\") {\n return url.path;\n }\n\n let output = \"\";\n for (const segment of url.path) {\n output += `/${segment}`;\n }\n return output;\n}\n\nfunction serializeURLOrigin(url: any): any {\n // https://url.spec.whatwg.org/#concept-url-origin\n switch (url.scheme) {\n case \"blob\":\n try {\n return serializeURLOrigin(parseURL(serializePath(url)));\n } catch (e) {\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n case \"ftp\":\n case \"http\":\n case \"https\":\n case \"ws\":\n case \"wss\":\n return serializeOrigin({\n scheme: url.scheme,\n host: url.host,\n port: url.port,\n });\n case \"file\":\n // The spec says:\n // > Unfortunate as it is, this is left as an exercise to the reader. When in doubt, return a new opaque origin.\n // Browsers tested so far:\n // - Chrome says \"file://\", but treats file: URLs as cross-origin for most (all?) purposes; see e.g.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=37586\n // - Firefox says \"null\", but treats file: URLs as same-origin sometimes based on directory stuff; see\n // https://developer.mozilla.org/en-US/docs/Archive/Misc_top_level/Same-origin_policy_for_file:_URIs\n return \"null\";\n default:\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n}\n\nexport function basicURLParse(input: string, options?: any) {\n if (options === undefined) {\n options = {};\n }\n\n const usm = new URLStateMachine(\n input,\n options.baseURL,\n options.encodingOverride,\n options.url,\n options.stateOverride,\n );\n\n if (usm.failure) {\n return null;\n }\n\n return usm.url;\n}\n\nfunction setTheUsername(url: UrlObj, username: string) {\n url.username = utf8PercentEncodeString(username, isUserinfoPercentEncode);\n}\n\nfunction setThePassword(url: UrlObj, password: string) {\n url.password = utf8PercentEncodeString(password, isUserinfoPercentEncode);\n}\n\nfunction serializeInteger(integer: number) {\n return String(integer);\n}\n\nfunction parseURL(\n input: any,\n options?: { baseURL?: any; encodingOverride?: any },\n) {\n if (options === undefined) {\n options = {};\n }\n\n // We don't handle blobs, so this just delegates:\n return basicURLParse(input, {\n baseURL: options.baseURL,\n encodingOverride: options.encodingOverride,\n });\n}\n\nexport class URLImpl {\n constructor(url: string, base?: string) {\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = basicURLParse(base);\n if (parsedBase === null) {\n throw new TypeError(`Invalid base URL: ${base}`);\n }\n }\n\n const parsedURL = basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${url}`);\n }\n\n const query = parsedURL.query !== null ? parsedURL.query : \"\";\n\n this._url = parsedURL;\n\n // We cannot invoke the \"new URLSearchParams object\" algorithm without going through the constructor, which strips\n // question mark by default. Therefore the doNotStripQMark hack is used.\n this._query = new URLSearchParamsImpl(query, {\n doNotStripQMark: true,\n });\n this._query._url = this;\n }\n\n get href() {\n return serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = basicURLParse(v);\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${v}`);\n }\n\n this._url = parsedURL;\n\n this._query._list.splice(0);\n const { query } = parsedURL;\n if (query !== null) {\n this._query._list = parseUrlencodedString(query);\n }\n }\n\n get origin() {\n return serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return `${this._url.scheme}:`;\n }\n\n set protocol(v) {\n basicURLParse(`${v}:`, {\n url: this._url,\n stateOverride: \"scheme start\",\n });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return serializeHost(url.host);\n }\n\n return `${serializeHost(url.host)}:${serializeInteger(url.port)}`;\n }\n\n set host(v) {\n if (hasAnOpaquePath(this._url)) {\n return;\n }\n\n basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (hasAnOpaquePath(this._url)) {\n return;\n }\n\n basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n return serializePath(this._url);\n }\n\n set pathname(v: string) {\n if (hasAnOpaquePath(this._url)) {\n return;\n }\n\n this._url.path = [];\n basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return `?${this._url.query}`;\n }\n\n set search(v) {\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n this._query._list = [];\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n basicURLParse(input, { url, stateOverride: \"query\" });\n this._query._list = parseUrlencodedString(input);\n }\n\n get searchParams() {\n return this._query;\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return `#${this._url.fragment}`;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n\n // FIXME: type!\n _url: any;\n _query: any;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2020 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { URLImpl, URLSearchParamsImpl } from \"./whatwg-url.js\";\n\ninterface URL {\n hash: string;\n host: string;\n hostname: string;\n href: string;\n toString(): string;\n readonly origin: string;\n password: string;\n pathname: string;\n port: string;\n protocol: string;\n search: string;\n readonly searchParams: URLSearchParams;\n username: string;\n toJSON(): string;\n}\n\ninterface URLSearchParams {\n append(name: string, value: string): void;\n delete(name: string): void;\n get(name: string): string | null;\n getAll(name: string): string[];\n has(name: string): boolean;\n set(name: string, value: string): void;\n sort(): void;\n toString(): string;\n forEach(\n callbackfn: (value: string, key: string, parent: URLSearchParams) => void,\n thisArg?: any,\n ): void;\n entries(): IterableIterator<[string, string]>;\n keys(): IterableIterator<string>;\n values(): IterableIterator<string>;\n [Symbol.iterator](): IterableIterator<[string, string]>;\n}\n\nexport interface URLSearchParamsCtor {\n new (\n init?:\n | URLSearchParams\n | string\n | Record<string, string | ReadonlyArray<string>>\n | Iterable<[string, string]>\n | ReadonlyArray<[string, string]>,\n ): URLSearchParams;\n}\n\nexport interface URLCtor {\n new (url: string, base?: string | URL): URL;\n}\n\n// globalThis polyfill, see https://mathiasbynens.be/notes/globalthis\n(function () {\n if (typeof globalThis === \"object\") return;\n Object.defineProperty(Object.prototype, \"__magic__\", {\n get: function () {\n return this;\n },\n configurable: true, // This makes it possible to `delete` the getter later.\n });\n // @ts-ignore: polyfill magic\n __magic__.globalThis = __magic__; // lolwat\n // @ts-ignore: polyfill magic\n delete Object.prototype.__magic__;\n})();\n\n// Use native or pure JS URL implementation?\nconst useOwnUrlImp = true;\n\n// @ts-ignore\nlet _URL = globalThis.URL;\nif (useOwnUrlImp || !_URL) {\n // @ts-ignore\n globalThis.URL = _URL = URLImpl;\n // @ts-ignore\n _URL = URLImpl;\n}\n\nexport const URL: URLCtor = _URL;\n\n// @ts-ignore\nlet _URLSearchParams = globalThis.URLSearchParams;\n\nif (useOwnUrlImp || !_URLSearchParams) {\n // @ts-ignore\n globalThis.URLSearchParams = URLSearchParamsImpl;\n // @ts-ignore\n _URLSearchParams = URLSearchParamsImpl;\n}\n\nexport const URLSearchParams: URLSearchParamsCtor = _URLSearchParams;\n", "/*\n This file is part of TALER\n (C) 2016 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Small helper functions that don't fit anywhere else.\n */\n\n/**\n * Imports.\n */\nimport { AmountJson } from \"./amounts.js\";\nimport * as Amounts from \"./amounts.js\";\nimport { URL } from \"./url.js\";\n\n/**\n * Show an amount in a form suitable for the user.\n * FIXME: In the future, this should consider currency-specific\n * settings such as significant digits or currency symbols.\n */\nexport function amountToPretty(amount: AmountJson): string {\n const x = amount.value + amount.fraction / Amounts.amountFractionalBase;\n return `${x} ${amount.currency}`;\n}\n\n/**\n * Canonicalize a base url, typically for the exchange.\n *\n * See http://api.taler.net/wallet.html#general\n */\nexport function canonicalizeBaseUrl(url: string): string {\n if (!url.startsWith(\"http\") && !url.startsWith(\"https\")) {\n url = \"https://\" + url;\n }\n const x = new URL(url);\n if (!x.pathname.endsWith(\"/\")) {\n x.pathname = x.pathname + \"/\";\n }\n x.search = \"\";\n x.hash = \"\";\n return x.href;\n}\n\n/**\n * Convert object to JSON with canonical ordering of keys\n * and whitespace omitted.\n *\n * See RFC 4885 (https://tools.ietf.org/html/rfc8785).\n */\nexport function canonicalJson(obj: any): string {\n // Check for cycles, etc.\n obj = JSON.parse(JSON.stringify(obj));\n if (typeof obj === \"string\") {\n return JSON.stringify(obj);\n }\n if (typeof obj === \"number\" || typeof obj === \"boolean\" || obj === null) {\n return JSON.stringify(obj);\n }\n if (Array.isArray(obj)) {\n const objs: string[] = obj.map((e) => canonicalJson(e));\n return `[${objs.join(\",\")}]`;\n }\n const keys: string[] = [];\n for (const key in obj) {\n keys.push(key);\n }\n keys.sort();\n let s = \"{\";\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n s += JSON.stringify(key) + \":\" + canonicalJson(obj[key]);\n if (i !== keys.length - 1) {\n s += \",\";\n }\n }\n return s + \"}\";\n}\n\n/**\n * Lexically compare two strings.\n */\nexport function strcmp(s1: string, s2: string): -1 | 0 | 1 {\n if (s1 < s2) {\n return -1;\n }\n if (s1 > s2) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Shorthand function for formatted JSON stringification.\n */\nexport function j2s(x: any): string {\n return JSON.stringify(x, undefined, 2);\n}\n\n/**\n * Use this to filter null or undefined from an array in a type-safe fashion\n *\n * example:\n * const array: Array<T | undefined> = [undefined, null]\n * const filtered: Array<T> = array.filter(notEmpty)\n *\n * @param value\n * @returns\n */\nexport function notEmpty<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\n/**\n * Safe function to stringify errors.\n */\nexport function stringifyError(x: any): string {\n if (typeof x === \"undefined\") {\n return \"<thrown undefined>\";\n }\n if (x === null) {\n return `<thrown null>`;\n }\n if (typeof x === \"object\") {\n return x.toString();\n }\n return `<thrown ${typeof x}>`;\n}\n", "/*\n This file is part of TALER\n (C) 2017 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Semantic versioning, but libtool-style.\n * See https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html\n */\n\n/**\n * Result of comparing two libtool versions.\n */\nexport interface VersionMatchResult {\n /**\n * Is the first version compatible with the second?\n */\n compatible: boolean;\n\n /**\n * Is the first version older (-1), newer (+1) or\n * identical (0)?\n */\n currentCmp: number;\n}\n\nexport interface Version {\n current: number;\n revision: number;\n age: number;\n}\n\nexport namespace LibtoolVersion {\n /**\n * Compare two libtool-style version strings.\n */\n export function compare(\n me: string,\n other: string,\n ): VersionMatchResult | undefined {\n const meVer = parseVersion(me);\n const otherVer = parseVersion(other);\n\n if (!(meVer && otherVer)) {\n return undefined;\n }\n\n const compatible =\n meVer.current - meVer.age <= otherVer.current &&\n meVer.current >= otherVer.current - otherVer.age;\n\n const currentCmp = Math.sign(meVer.current - otherVer.current);\n\n return { compatible, currentCmp };\n }\n\n export function parseVersion(v: string): Version | undefined {\n const [currentStr, revisionStr, ageStr, ...rest] = v.split(\":\");\n if (rest.length !== 0) {\n return undefined;\n }\n const current = Number.parseInt(currentStr);\n const revision = Number.parseInt(revisionStr);\n const age = Number.parseInt(ageStr);\n\n if (Number.isNaN(current)) {\n return undefined;\n }\n\n if (Number.isNaN(revision)) {\n return undefined;\n }\n\n if (Number.isNaN(age)) {\n return undefined;\n }\n\n return { current, revision, age };\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type and schema definitions for notifications from the wallet to clients\n * of the wallet.\n */\n\n/**\n * Imports.\n */\nimport { TransactionState } from \"./transactions-types.js\";\nimport { TalerErrorDetail } from \"./wallet-types.js\";\n\nexport enum NotificationType {\n BalanceChange = \"balance-change\",\n ExchangeOperationError = \"exchange-operation-error\",\n ExchangeAdded = \"exchange-added\",\n BackupOperationError = \"backup-error\",\n PendingOperationProcessed = \"pending-operation-processed\",\n TransactionStateTransition = \"transaction-state-transition\",\n}\n\nexport interface ErrorInfoSummary {\n code: number;\n hint?: string;\n message?: string;\n}\n\nexport interface TransactionStateTransitionNotification {\n type: NotificationType.TransactionStateTransition;\n transactionId: string;\n oldTxState: TransactionState;\n newTxState: TransactionState;\n errorInfo?: ErrorInfoSummary;\n\n /**\n * Additional \"user data\" that is dependent on the\n * state transition.\n *\n * Usage should be avoided.\n *\n * Currently used to notify the iOS app about\n * the KYC URL.\n */\n experimentalUserData?: any;\n}\n\nexport interface ExchangeAddedNotification {\n type: NotificationType.ExchangeAdded;\n}\n\nexport interface BalanceChangeNotification {\n type: NotificationType.BalanceChange;\n}\n\nexport interface ExchangeOperationErrorNotification {\n type: NotificationType.ExchangeOperationError;\n error: TalerErrorDetail;\n}\n\nexport interface BackupOperationErrorNotification {\n type: NotificationType.BackupOperationError;\n error: TalerErrorDetail;\n}\n\nexport interface PendingOperationProcessedNotification {\n type: NotificationType.PendingOperationProcessed;\n id: string;\n}\n\nexport type WalletNotification =\n | BalanceChangeNotification\n | BackupOperationErrorNotification\n | ExchangeAddedNotification\n | ExchangeOperationErrorNotification\n | PendingOperationProcessedNotification\n | TransactionStateTransitionNotification;\n", "// SHA-256 for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n//\n// Classes:\n//\n// new sha256.Hash()\nexport const digestLength = 32;\nexport const blockSize = 64;\n\n// SHA-256 constants\nconst K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n]);\n\nfunction hashBlocks(\n w: Int32Array,\n v: Int32Array,\n p: Uint8Array,\n pos: number,\n len: number,\n): number {\n let a: number,\n b: number,\n c: number,\n d: number,\n e: number,\n f: number,\n g: number,\n h: number,\n u: number,\n i: number,\n j: number,\n t1: number,\n t2: number;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] =\n ((p[j] & 0xff) << 24) |\n ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) |\n (p[j + 3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 =\n ((u >>> 17) | (u << (32 - 17))) ^\n ((u >>> 19) | (u << (32 - 19))) ^\n (u >>> 10);\n\n u = w[i - 15];\n t2 =\n ((u >>> 7) | (u << (32 - 7))) ^\n ((u >>> 18) | (u << (32 - 18))) ^\n (u >>> 3);\n\n w[i] = ((t1 + w[i - 7]) | 0) + ((t2 + w[i - 16]) | 0);\n }\n\n for (i = 0; i < 64; i++) {\n t1 =\n ((((((e >>> 6) | (e << (32 - 6))) ^\n ((e >>> 11) | (e << (32 - 11))) ^\n ((e >>> 25) | (e << (32 - 25)))) +\n ((e & f) ^ (~e & g))) |\n 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) |\n 0;\n\n t2 =\n ((((a >>> 2) | (a << (32 - 2))) ^\n ((a >>> 13) | (a << (32 - 13))) ^\n ((a >>> 22) | (a << (32 - 22)))) +\n ((a & b) ^ (a & c) ^ (b & c))) |\n 0;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n\n// Hash implements SHA256 hash algorithm.\nexport class HashSha256 {\n digestLength: number = digestLength;\n blockSize: number = blockSize;\n\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n private state: Int32Array = new Int32Array(8); // hash state\n private temp: Int32Array = new Int32Array(64); // temporary state\n private buffer: Uint8Array = new Uint8Array(128); // buffer for data to hash\n private bufferLength = 0; // number of bytes in buffer\n private bytesHashed = 0; // number of total bytes hashed\n\n finished = false; // indicates whether the hash was finalized\n\n constructor() {\n this.reset();\n }\n\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n reset(): this {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n }\n\n // Cleans internal buffers and re-initializes hash state.\n clean(): void {\n for (let i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (let i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n }\n\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n update(data: Uint8Array, dataLength: number = data.length): this {\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n let dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n }\n\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n finish(out: Uint8Array): this {\n if (!this.finished) {\n const bytesHashed = this.bytesHashed;\n const left = this.bufferLength;\n const bitLenHi = (bytesHashed / 0x20000000) | 0;\n const bitLenLo = bytesHashed << 3;\n const padLength = bytesHashed % 64 < 56 ? 64 : 128;\n\n this.buffer[left] = 0x80;\n for (let i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n\n this.finished = true;\n }\n\n for (let i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return this;\n }\n\n // Returns the final hash digest.\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n // Internal function for use in HMAC for optimization.\n _saveState(out: Uint32Array): void {\n for (let i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n }\n\n // Internal function for use in HMAC for optimization.\n _restoreState(from: Uint32Array, bytesHashed: number): void {\n for (let i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n }\n}\n\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nexport class HMAC {\n private inner: HashSha256 = new HashSha256();\n private outer: HashSha256 = new HashSha256();\n\n blockSize: number = this.inner.blockSize;\n digestLength: number = this.inner.digestLength;\n\n // Copies of hash states after keying.\n // Need for quick reset without hashing they key again.\n private istate: Uint32Array;\n private ostate: Uint32Array;\n\n constructor(key: Uint8Array) {\n const pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n new HashSha256().update(key).finish(pad).clean();\n } else {\n for (let i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n\n for (let i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n reset(): this {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n }\n\n // Cleans HMAC state.\n clean(): void {\n for (let i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n }\n\n // Updates state with provided data.\n update(data: Uint8Array): this {\n this.inner.update(data);\n return this;\n }\n\n // Finalizes HMAC and puts the result in out.\n finish(out: Uint8Array): this {\n if (this.outer.finished) {\n this.outer.finish(out);\n } else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n }\n\n // Returns message authentication code.\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n}\n\n// Returns SHA256 hash of data.\nexport function sha256(data: Uint8Array): Uint8Array {\n const h = new HashSha256().update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n\n// Returns HMAC-SHA256 of data under the key.\nexport function hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array {\n const h = new HMAC(key).update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport * as nacl from \"./nacl-fast.js\";\nimport { sha256 } from \"./sha256.js\";\n\nexport function sha512(data: Uint8Array): Uint8Array {\n return nacl.hash(data);\n}\n\nexport function hmac(\n digest: (d: Uint8Array) => Uint8Array,\n blockSize: number,\n key: Uint8Array,\n message: Uint8Array,\n): Uint8Array {\n if (key.byteLength > blockSize) {\n key = digest(key);\n }\n if (key.byteLength < blockSize) {\n const k = key;\n key = new Uint8Array(blockSize);\n key.set(k, 0);\n }\n const okp = new Uint8Array(blockSize);\n const ikp = new Uint8Array(blockSize);\n for (let i = 0; i < blockSize; i++) {\n ikp[i] = key[i] ^ 0x36;\n okp[i] = key[i] ^ 0x5c;\n }\n const b1 = new Uint8Array(blockSize + message.byteLength);\n b1.set(ikp, 0);\n b1.set(message, blockSize);\n const h0 = digest(b1);\n const b2 = new Uint8Array(blockSize + h0.length);\n b2.set(okp, 0);\n b2.set(h0, blockSize);\n return digest(b2);\n}\n\nexport function hmacSha512(key: Uint8Array, message: Uint8Array): Uint8Array {\n return hmac(sha512, 128, key, message);\n}\n\nexport function hmacSha256(key: Uint8Array, message: Uint8Array): Uint8Array {\n return hmac(sha256, 64, key, message);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Native implementation of GNU Taler crypto primitives.\n */\n\n/**\n * Imports.\n */\nimport * as nacl from \"./nacl-fast.js\";\nimport { hmacSha256, hmacSha512 } from \"./kdf.js\";\nimport bigint from \"big-integer\";\nimport * as argon2 from \"./argon2.js\";\nimport {\n CoinEnvelope,\n CoinPublicKeyString,\n DenominationPubKey,\n DenomKeyType,\n HashCodeString,\n} from \"./taler-types.js\";\nimport { Logger } from \"./logging.js\";\nimport { secretbox } from \"./nacl-fast.js\";\nimport * as fflate from \"fflate\";\nimport { canonicalJson } from \"./helpers.js\";\nimport { TalerProtocolDuration, TalerProtocolTimestamp } from \"./time.js\";\nimport { AmountLike, Amounts } from \"./amounts.js\";\n\nexport type Flavor<T, FlavorT extends string> = T & {\n _flavor?: `taler.${FlavorT}`;\n};\n\nexport type FlavorP<T, FlavorT extends string, S extends number> = T & {\n _flavor?: `taler.${FlavorT}`;\n _size?: S;\n};\n\nexport function getRandomBytes(n: number): Uint8Array {\n return nacl.randomBytes(n);\n}\n\nexport function getRandomBytesF<T extends number, N extends string>(\n n: T,\n): FlavorP<Uint8Array, N, T> {\n return nacl.randomBytes(n);\n}\n\nexport const useNative = true;\n\n/**\n * Interface of the native Taler runtime library.\n */\ninterface NativeTartLib {\n decodeUtf8(buf: Uint8Array): string;\n decodeUtf8(str: string): Uint8Array;\n randomBytes(n: number): Uint8Array;\n encodeCrock(buf: Uint8Array | ArrayBuffer): string;\n decodeCrock(str: string): Uint8Array;\n hash(buf: Uint8Array): Uint8Array;\n hashArgon2id(\n password: Uint8Array,\n salt: Uint8Array,\n iterations: number,\n memorySize: number,\n hashLength: number,\n ): Uint8Array;\n eddsaGetPublic(buf: Uint8Array): Uint8Array;\n ecdheGetPublic(buf: Uint8Array): Uint8Array;\n eddsaSign(msg: Uint8Array, priv: Uint8Array): Uint8Array;\n eddsaVerify(msg: Uint8Array, sig: Uint8Array, pub: Uint8Array): boolean;\n kdf(\n outLen: number,\n ikm: Uint8Array,\n salt?: Uint8Array,\n info?: Uint8Array,\n ): Uint8Array;\n keyExchangeEcdhEddsa(ecdhPriv: Uint8Array, eddsaPub: Uint8Array): Uint8Array;\n keyExchangeEddsaEcdh(eddsaPriv: Uint8Array, ecdhPub: Uint8Array): Uint8Array;\n rsaBlind(hmsg: Uint8Array, bks: Uint8Array, rsaPub: Uint8Array): Uint8Array;\n rsaUnblind(\n blindSig: Uint8Array,\n rsaPub: Uint8Array,\n bks: Uint8Array,\n ): Uint8Array;\n rsaVerify(hmsg: Uint8Array, rsaSig: Uint8Array, rsaPub: Uint8Array): boolean;\n hashStateInit(): any;\n hashStateUpdate(st: any, data: Uint8Array): any;\n hashStateFinish(st: any): Uint8Array;\n}\n\n// @ts-ignore\nlet tart: NativeTartLib | undefined;\n\nif (useNative) {\n // @ts-ignore\n tart = globalThis._tart;\n}\n\nconst encTable = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\n\nclass EncodingError extends Error {\n constructor() {\n super(\"Encoding error\");\n Object.setPrototypeOf(this, EncodingError.prototype);\n }\n}\n\nfunction getValue(chr: string): number {\n let a = chr;\n switch (chr) {\n case \"O\":\n case \"o\":\n a = \"0\";\n break;\n case \"i\":\n case \"I\":\n case \"l\":\n case \"L\":\n a = \"1\";\n break;\n case \"u\":\n case \"U\":\n a = \"V\";\n }\n\n if (a >= \"0\" && a <= \"9\") {\n return a.charCodeAt(0) - \"0\".charCodeAt(0);\n }\n\n if (a >= \"a\" && a <= \"z\") a = a.toUpperCase();\n let dec = 0;\n if (a >= \"A\" && a <= \"Z\") {\n if (\"I\" < a) dec++;\n if (\"L\" < a) dec++;\n if (\"O\" < a) dec++;\n if (\"U\" < a) dec++;\n return a.charCodeAt(0) - \"A\".charCodeAt(0) + 10 - dec;\n }\n throw new EncodingError();\n}\n\nexport function encodeCrock(data: ArrayBuffer): string {\n if (tart) {\n return tart.encodeCrock(data);\n }\n const dataBytes = new Uint8Array(data);\n let sb = \"\";\n const size = data.byteLength;\n let bitBuf = 0;\n let numBits = 0;\n let pos = 0;\n while (pos < size || numBits > 0) {\n if (pos < size && numBits < 5) {\n const d = dataBytes[pos++];\n bitBuf = (bitBuf << 8) | d;\n numBits += 8;\n }\n if (numBits < 5) {\n // zero-padding\n bitBuf = bitBuf << (5 - numBits);\n numBits = 5;\n }\n const v = (bitBuf >>> (numBits - 5)) & 31;\n sb += encTable[v];\n numBits -= 5;\n }\n return sb;\n}\n\nexport function kdf(\n outputLength: number,\n ikm: Uint8Array,\n salt?: Uint8Array,\n info?: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.kdf(outputLength, ikm, salt, info);\n }\n salt = salt ?? new Uint8Array(64);\n // extract\n const prk = hmacSha512(salt, ikm);\n\n info = info ?? new Uint8Array(0);\n\n // expand\n const N = Math.ceil(outputLength / 32);\n const output = new Uint8Array(N * 32);\n for (let i = 0; i < N; i++) {\n let buf;\n if (i == 0) {\n buf = new Uint8Array(info.byteLength + 1);\n buf.set(info, 0);\n } else {\n buf = new Uint8Array(info.byteLength + 1 + 32);\n for (let j = 0; j < 32; j++) {\n buf[j] = output[(i - 1) * 32 + j];\n }\n buf.set(info, 32);\n }\n buf[buf.length - 1] = i + 1;\n const chunk = hmacSha256(prk, buf);\n output.set(chunk, i * 32);\n }\n\n return output.slice(0, outputLength);\n}\n\n/**\n * HMAC-SHA512-SHA256 (see RFC 5869).\n */\nexport function kdfKw(args: {\n outputLength: number;\n ikm: Uint8Array;\n salt?: Uint8Array;\n info?: Uint8Array;\n}) {\n return kdf(args.outputLength, args.ikm, args.salt, args.info);\n}\n\nexport function decodeCrock(encoded: string): Uint8Array {\n if (tart) {\n return tart.decodeCrock(encoded);\n }\n const size = encoded.length;\n let bitpos = 0;\n let bitbuf = 0;\n let readPosition = 0;\n const outLen = Math.floor((size * 5) / 8);\n const out = new Uint8Array(outLen);\n let outPos = 0;\n\n while (readPosition < size || bitpos > 0) {\n if (readPosition < size) {\n const v = getValue(encoded[readPosition++]);\n bitbuf = (bitbuf << 5) | v;\n bitpos += 5;\n }\n while (bitpos >= 8) {\n const d = (bitbuf >>> (bitpos - 8)) & 0xff;\n out[outPos++] = d;\n bitpos -= 8;\n }\n if (readPosition == size && bitpos > 0) {\n bitbuf = (bitbuf << (8 - bitpos)) & 0xff;\n bitpos = bitbuf == 0 ? 0 : 8;\n }\n }\n return out;\n}\n\nexport async function hashArgon2id(\n password: Uint8Array,\n salt: Uint8Array,\n iterations: number,\n memorySize: number,\n hashLength: number,\n): Promise<Uint8Array> {\n if (tart) {\n return tart.hashArgon2id(\n password,\n salt,\n iterations,\n memorySize,\n hashLength,\n );\n }\n return await argon2.hashArgon2id(\n password,\n salt,\n iterations,\n memorySize,\n hashLength,\n );\n}\n\nexport function eddsaGetPublic(eddsaPriv: Uint8Array): Uint8Array {\n if (tart) {\n return tart.eddsaGetPublic(eddsaPriv);\n }\n const pair = nacl.crypto_sign_keyPair_fromSeed(eddsaPriv);\n return pair.publicKey;\n}\n\nexport function ecdhGetPublic(ecdhePriv: Uint8Array): Uint8Array {\n if (tart) {\n return tart.ecdheGetPublic(ecdhePriv);\n }\n return nacl.scalarMult_base(ecdhePriv);\n}\n\nexport function keyExchangeEddsaEcdh(\n eddsaPriv: Uint8Array,\n ecdhPub: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.keyExchangeEddsaEcdh(eddsaPriv, ecdhPub);\n }\n const ph = hash(eddsaPriv);\n const a = new Uint8Array(32);\n for (let i = 0; i < 32; i++) {\n a[i] = ph[i];\n }\n const x = nacl.scalarMult(a, ecdhPub);\n return hash(x);\n}\n\nexport function keyExchangeEcdhEddsa(\n ecdhPriv: Uint8Array & MaterialEcdhePriv,\n eddsaPub: Uint8Array & MaterialEddsaPub,\n): Uint8Array {\n if (tart) {\n return tart.keyExchangeEcdhEddsa(ecdhPriv, eddsaPub);\n }\n const curve25519Pub = nacl.sign_ed25519_pk_to_curve25519(eddsaPub);\n const x = nacl.scalarMult(ecdhPriv, curve25519Pub);\n return hash(x);\n}\n\ninterface RsaPub {\n N: bigint.BigInteger;\n e: bigint.BigInteger;\n}\n\n/**\n * KDF modulo a big integer.\n */\nfunction kdfMod(\n n: bigint.BigInteger,\n ikm: Uint8Array,\n salt: Uint8Array,\n info: Uint8Array,\n): bigint.BigInteger {\n const nbits = n.bitLength().toJSNumber();\n const buflen = Math.floor((nbits - 1) / 8 + 1);\n const mask = (1 << (8 - (buflen * 8 - nbits))) - 1;\n let counter = 0;\n while (true) {\n const ctx = new Uint8Array(info.byteLength + 2);\n ctx.set(info, 0);\n ctx[ctx.length - 2] = (counter >>> 8) & 0xff;\n ctx[ctx.length - 1] = counter & 0xff;\n const buf = kdf(buflen, ikm, salt, ctx);\n const arr = Array.from(buf);\n arr[0] = arr[0] & mask;\n const r = bigint.fromArray(arr, 256, false);\n if (r.lt(n)) {\n return r;\n }\n counter++;\n }\n}\n\nfunction csKdfMod(\n n: bigint.BigInteger,\n ikm: Uint8Array,\n salt: Uint8Array,\n info: Uint8Array,\n): Uint8Array {\n const nbits = n.bitLength().toJSNumber();\n const buflen = Math.floor((nbits - 1) / 8 + 1);\n const mask = (1 << (8 - (buflen * 8 - nbits))) - 1;\n let counter = 0;\n while (true) {\n const ctx = new Uint8Array(info.byteLength + 2);\n ctx.set(info, 0);\n ctx[ctx.length - 2] = (counter >>> 8) & 0xff;\n ctx[ctx.length - 1] = counter & 0xff;\n const buf = kdf(buflen, ikm, salt, ctx);\n const arr = Array.from(buf);\n arr[0] = arr[0] & mask;\n const r = bigint.fromArray(arr, 256, false);\n if (r.lt(n)) {\n return new Uint8Array(arr);\n }\n counter++;\n }\n}\n\n// Newer versions of node have TextEncoder and TextDecoder as a global,\n// just like modern browsers.\n// In older versions of node or environments that do not have these\n// globals, they must be polyfilled (by adding them to global/globalThis)\n// before stringToBytes or bytesToString is called the first time.\n\nlet encoder: any;\nlet decoder: any;\n\nexport function stringToBytes(s: string): Uint8Array {\n if (!encoder) {\n encoder = new TextEncoder();\n }\n return encoder.encode(s);\n}\n\nexport function bytesToString(b: Uint8Array): string {\n if (!decoder) {\n decoder = new TextDecoder();\n }\n return decoder.decode(b);\n}\n\nfunction loadBigInt(arr: Uint8Array): bigint.BigInteger {\n return bigint.fromArray(Array.from(arr), 256, false);\n}\n\nfunction rsaBlindingKeyDerive(\n rsaPub: RsaPub,\n bks: Uint8Array,\n): bigint.BigInteger {\n const salt = stringToBytes(\"Blinding KDF extractor HMAC key\");\n const info = stringToBytes(\"Blinding KDF\");\n return kdfMod(rsaPub.N, bks, salt, info);\n}\n\n/*\n * Test for malicious RSA key.\n *\n * Assuming n is an RSA modulous and r is generated using a call to\n * GNUNET_CRYPTO_kdf_mod_mpi, if gcd(r,n) != 1 then n must be a\n * malicious RSA key designed to deanomize the user.\n *\n * @param r KDF result\n * @param n RSA modulus of the public key\n */\nfunction rsaGcdValidate(r: bigint.BigInteger, n: bigint.BigInteger): void {\n const t = bigint.gcd(r, n);\n if (!t.equals(bigint.one)) {\n throw Error(\"malicious RSA public key\");\n }\n}\n\nfunction rsaFullDomainHash(hm: Uint8Array, rsaPub: RsaPub): bigint.BigInteger {\n const info = stringToBytes(\"RSA-FDA FTpsW!\");\n const salt = rsaPubEncode(rsaPub);\n const r = kdfMod(rsaPub.N, hm, salt, info);\n rsaGcdValidate(r, rsaPub.N);\n return r;\n}\n\nfunction rsaPubDecode(rsaPub: Uint8Array): RsaPub {\n const modulusLength = (rsaPub[0] << 8) | rsaPub[1];\n const exponentLength = (rsaPub[2] << 8) | rsaPub[3];\n if (4 + exponentLength + modulusLength != rsaPub.length) {\n throw Error(\"invalid RSA public key (format wrong)\");\n }\n const modulus = rsaPub.slice(4, 4 + modulusLength);\n const exponent = rsaPub.slice(\n 4 + modulusLength,\n 4 + modulusLength + exponentLength,\n );\n const res = {\n N: loadBigInt(modulus),\n e: loadBigInt(exponent),\n };\n return res;\n}\n\nfunction rsaPubEncode(rsaPub: RsaPub): Uint8Array {\n const mb = rsaPub.N.toArray(256).value;\n const eb = rsaPub.e.toArray(256).value;\n const out = new Uint8Array(4 + mb.length + eb.length);\n out[0] = (mb.length >>> 8) & 0xff;\n out[1] = mb.length & 0xff;\n out[2] = (eb.length >>> 8) & 0xff;\n out[3] = eb.length & 0xff;\n out.set(mb, 4);\n out.set(eb, 4 + mb.length);\n return out;\n}\n\nexport function rsaBlind(\n hm: Uint8Array,\n bks: Uint8Array,\n rsaPubEnc: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.rsaBlind(hm, bks, rsaPubEnc);\n }\n const rsaPub = rsaPubDecode(rsaPubEnc);\n const data = rsaFullDomainHash(hm, rsaPub);\n const r = rsaBlindingKeyDerive(rsaPub, bks);\n const r_e = r.modPow(rsaPub.e, rsaPub.N);\n const bm = r_e.multiply(data).mod(rsaPub.N);\n return new Uint8Array(bm.toArray(256).value);\n}\n\nexport function rsaUnblind(\n sig: Uint8Array,\n rsaPubEnc: Uint8Array,\n bks: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.rsaUnblind(sig, rsaPubEnc, bks);\n }\n const rsaPub = rsaPubDecode(rsaPubEnc);\n const blinded_s = loadBigInt(sig);\n const r = rsaBlindingKeyDerive(rsaPub, bks);\n const r_inv = r.modInv(rsaPub.N);\n const s = blinded_s.multiply(r_inv).mod(rsaPub.N);\n return new Uint8Array(s.toArray(256).value);\n}\n\nexport function rsaVerify(\n hm: Uint8Array,\n rsaSig: Uint8Array,\n rsaPubEnc: Uint8Array,\n): boolean {\n if (tart) {\n return tart.rsaVerify(hm, rsaSig, rsaPubEnc);\n }\n const rsaPub = rsaPubDecode(rsaPubEnc);\n const d = rsaFullDomainHash(hm, rsaPub);\n const sig = loadBigInt(rsaSig);\n const sig_e = sig.modPow(rsaPub.e, rsaPub.N);\n return sig_e.equals(d);\n}\n\nexport type CsSignature = {\n s: Uint8Array;\n rPub: Uint8Array;\n};\n\nexport type CsBlindSignature = {\n sBlind: Uint8Array;\n rPubBlind: Uint8Array;\n};\n\nexport type CsBlindingSecrets = {\n alpha: [Uint8Array, Uint8Array];\n beta: [Uint8Array, Uint8Array];\n};\n\nexport function typedArrayConcat(chunks: Uint8Array[]): Uint8Array {\n let payloadLen = 0;\n for (const c of chunks) {\n payloadLen += c.byteLength;\n }\n const buf = new ArrayBuffer(payloadLen);\n const u8buf = new Uint8Array(buf);\n let p = 0;\n for (const c of chunks) {\n u8buf.set(c, p);\n p += c.byteLength;\n }\n return u8buf;\n}\n\n/**\n * Map to scalar subgroup function\n * perform clamping as described in RFC7748\n * @param scalar\n */\nfunction mtoSS(scalar: Uint8Array): Uint8Array {\n scalar[0] &= 248;\n scalar[31] &= 127;\n scalar[31] |= 64;\n return scalar;\n}\n\n/**\n * The function returns the CS blinding secrets from a seed\n * @param bseed seed to derive blinding secrets\n * @returns blinding secrets\n */\nexport function deriveSecrets(bseed: Uint8Array): CsBlindingSecrets {\n const outLen = 130;\n const salt = stringToBytes(\"alphabeta\");\n const rndout = kdf(outLen, bseed, salt);\n const secrets: CsBlindingSecrets = {\n alpha: [mtoSS(rndout.slice(0, 32)), mtoSS(rndout.slice(64, 96))],\n beta: [mtoSS(rndout.slice(32, 64)), mtoSS(rndout.slice(96, 128))],\n };\n return secrets;\n}\n\n/**\n * calculation of the blinded public point R in CS\n * @param csPub denomination publik key\n * @param secrets client blinding secrets\n * @param rPub public R received from /csr API\n */\nexport async function calcRBlind(\n csPub: Uint8Array,\n secrets: CsBlindingSecrets,\n rPub: [Uint8Array, Uint8Array],\n): Promise<[Uint8Array, Uint8Array]> {\n const aG0 = nacl.crypto_scalarmult_ed25519_base_noclamp(secrets.alpha[0]);\n const aG1 = nacl.crypto_scalarmult_ed25519_base_noclamp(secrets.alpha[1]);\n\n const bDp0 = nacl.crypto_scalarmult_ed25519_noclamp(secrets.beta[0], csPub);\n const bDp1 = nacl.crypto_scalarmult_ed25519_noclamp(secrets.beta[1], csPub);\n\n const res0 = nacl.crypto_core_ed25519_add(aG0, bDp0);\n const res1 = nacl.crypto_core_ed25519_add(aG1, bDp1);\n return [\n nacl.crypto_core_ed25519_add(rPub[0], res0),\n nacl.crypto_core_ed25519_add(rPub[1], res1),\n ];\n}\n\n/**\n * FDH function used in CS\n * @param hm message hash\n * @param rPub public R included in FDH\n * @param csPub denomination public key as context\n * @returns mapped Curve25519 scalar\n */\nfunction csFDH(\n hm: Uint8Array,\n rPub: Uint8Array,\n csPub: Uint8Array,\n): Uint8Array {\n const lMod = Array.from(\n new Uint8Array([\n 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x14, 0xde, 0xf9, 0xde, 0xa2, 0xf7, 0x9c, 0xd6,\n 0x58, 0x12, 0x63, 0x1a, 0x5c, 0xf5, 0xd3, 0xed,\n ]),\n );\n const L = bigint.fromArray(lMod, 256, false);\n\n const info = stringToBytes(\"Curve25519FDH\");\n const preshash = hash(typedArrayConcat([rPub, hm]));\n return csKdfMod(L, preshash, csPub, info).reverse();\n}\n\n/**\n * blinding seed derived from coin private key\n * @param coinPriv private key of the corresponding coin\n * @param rPub public R received from /csr API\n * @returns blinding seed\n */\nexport function deriveBSeed(\n coinPriv: Uint8Array,\n rPub: [Uint8Array, Uint8Array],\n): Uint8Array {\n const outLen = 32;\n const salt = stringToBytes(\"b-seed\");\n const ikm = typedArrayConcat([coinPriv, rPub[0], rPub[1]]);\n return kdf(outLen, ikm, salt);\n}\n\n/**\n * Derive withdraw nonce, used in /csr request\n * Note: In withdraw protocol, the nonce is chosen randomly\n * @param coinPriv coin private key\n * @returns nonce\n */\nexport function deriveWithdrawNonce(coinPriv: Uint8Array): Uint8Array {\n const outLen = 32;\n const salt = stringToBytes(\"n\");\n return kdf(outLen, coinPriv, salt);\n}\n\n/**\n * Blind operation for CS signatures, used after /csr call\n * @param bseed blinding seed to derive blinding secrets\n * @param rPub public R received from /csr\n * @param csPub denomination public key\n * @param hm message to blind\n * @returns two blinded c\n */\nexport async function csBlind(\n bseed: Uint8Array,\n rPub: [Uint8Array, Uint8Array],\n csPub: Uint8Array,\n hm: Uint8Array,\n): Promise<[Uint8Array, Uint8Array]> {\n const secrets = deriveSecrets(bseed);\n const rPubBlind = await calcRBlind(csPub, secrets, rPub);\n const c_0 = csFDH(hm, rPubBlind[0], csPub);\n const c_1 = csFDH(hm, rPubBlind[1], csPub);\n return [\n nacl.crypto_core_ed25519_scalar_add(c_0, secrets.beta[0]),\n nacl.crypto_core_ed25519_scalar_add(c_1, secrets.beta[1]),\n ];\n}\n\n/**\n * Unblind operation to unblind the signature\n * @param bseed seed to derive secrets\n * @param rPub public R received from /csr\n * @param csPub denomination public key\n * @param b returned from exchange to select c\n * @param csSig blinded signature\n * @returns unblinded signature\n */\nexport async function csUnblind(\n bseed: Uint8Array,\n rPub: [Uint8Array, Uint8Array],\n csPub: Uint8Array,\n b: number,\n csSig: CsBlindSignature,\n): Promise<CsSignature> {\n if (b != 0 && b != 1) {\n throw new Error();\n }\n const secrets = deriveSecrets(bseed);\n const rPubDash = (await calcRBlind(csPub, secrets, rPub))[b];\n const sig: CsSignature = {\n s: nacl.crypto_core_ed25519_scalar_add(csSig.sBlind, secrets.alpha[b]),\n rPub: rPubDash,\n };\n return sig;\n}\n\n/**\n * Verification algorithm for CS signatures\n * @param hm message signed\n * @param csSig unblinded signature\n * @param csPub denomination public key\n * @returns true if valid, false if invalid\n */\nexport async function csVerify(\n hm: Uint8Array,\n csSig: CsSignature,\n csPub: Uint8Array,\n): Promise<boolean> {\n const cDash = csFDH(hm, csSig.rPub, csPub);\n const sG = nacl.crypto_scalarmult_ed25519_base_noclamp(csSig.s);\n const cbDp = nacl.crypto_scalarmult_ed25519_noclamp(cDash, csPub);\n const sGeq = nacl.crypto_core_ed25519_add(csSig.rPub, cbDp);\n return nacl.verify(sG, sGeq);\n}\n\nexport interface EddsaKeyPair {\n eddsaPub: Uint8Array;\n eddsaPriv: Uint8Array;\n}\n\nexport interface EcdheKeyPair {\n ecdhePub: Uint8Array;\n ecdhePriv: Uint8Array;\n}\n\nexport interface Edx25519Keypair {\n edxPub: string;\n edxPriv: string;\n}\n\nexport function createEddsaKeyPair(): EddsaKeyPair {\n const eddsaPriv = nacl.randomBytes(32);\n const eddsaPub = eddsaGetPublic(eddsaPriv);\n return { eddsaPriv, eddsaPub };\n}\n\nexport function createEcdheKeyPair(): EcdheKeyPair {\n const ecdhePriv = nacl.randomBytes(32);\n const ecdhePub = ecdhGetPublic(ecdhePriv);\n return { ecdhePriv, ecdhePub };\n}\n\nexport function hash(d: Uint8Array): Uint8Array {\n if (tart) {\n return tart.hash(d);\n }\n return nacl.hash(d);\n}\n\n/**\n * Hash the input with SHA-512 and truncate the result\n * to 32 bytes.\n */\nexport function hashTruncate32(d: Uint8Array): Uint8Array {\n const sha512HashCode = hash(d);\n return sha512HashCode.subarray(0, 32);\n}\n\nexport function hashCoinEv(\n coinEv: CoinEnvelope,\n denomPubHash: HashCodeString,\n): Uint8Array {\n const hashContext = createHashContext();\n hashContext.update(decodeCrock(denomPubHash));\n hashCoinEvInner(coinEv, hashContext);\n return hashContext.finish();\n}\n\nconst logger = new Logger(\"talerCrypto.ts\");\n\nexport function hashCoinEvInner(\n coinEv: CoinEnvelope,\n hashState: TalerHashState,\n): void {\n const hashInputBuf = new ArrayBuffer(4);\n const uint8ArrayBuf = new Uint8Array(hashInputBuf);\n const dv = new DataView(hashInputBuf);\n dv.setUint32(0, DenomKeyType.toIntTag(coinEv.cipher));\n hashState.update(uint8ArrayBuf);\n switch (coinEv.cipher) {\n case DenomKeyType.Rsa:\n hashState.update(decodeCrock(coinEv.rsa_blinded_planchet));\n return;\n default:\n throw new Error();\n }\n}\n\nexport function hashCoinPub(\n coinPub: CoinPublicKeyString,\n ach?: HashCodeString,\n): Uint8Array {\n if (!ach) {\n return hash(decodeCrock(coinPub));\n }\n\n return hash(typedArrayConcat([decodeCrock(coinPub), decodeCrock(ach)]));\n}\n\n/**\n * Hash a denomination public key.\n */\nexport function hashDenomPub(pub: DenominationPubKey): Uint8Array {\n if (pub.cipher === DenomKeyType.Rsa) {\n const pubBuf = decodeCrock(pub.rsa_public_key);\n const hashInputBuf = new ArrayBuffer(pubBuf.length + 4 + 4);\n const uint8ArrayBuf = new Uint8Array(hashInputBuf);\n const dv = new DataView(hashInputBuf);\n dv.setUint32(0, pub.age_mask ?? 0);\n dv.setUint32(4, DenomKeyType.toIntTag(pub.cipher));\n uint8ArrayBuf.set(pubBuf, 8);\n return hash(uint8ArrayBuf);\n } else if (pub.cipher === DenomKeyType.ClauseSchnorr) {\n const pubBuf = decodeCrock(pub.cs_public_key);\n const hashInputBuf = new ArrayBuffer(pubBuf.length + 4 + 4);\n const uint8ArrayBuf = new Uint8Array(hashInputBuf);\n const dv = new DataView(hashInputBuf);\n dv.setUint32(0, pub.age_mask ?? 0);\n dv.setUint32(4, DenomKeyType.toIntTag(pub.cipher));\n uint8ArrayBuf.set(pubBuf, 8);\n return hash(uint8ArrayBuf);\n } else {\n throw Error(\n `unsupported cipher (${(pub as DenominationPubKey).cipher\n }), unable to hash`,\n );\n }\n}\n\nexport function eddsaSign(msg: Uint8Array, eddsaPriv: Uint8Array): Uint8Array {\n if (tart) {\n return tart.eddsaSign(msg, eddsaPriv);\n }\n const pair = nacl.crypto_sign_keyPair_fromSeed(eddsaPriv);\n return nacl.sign_detached(msg, pair.secretKey);\n}\n\nexport function eddsaVerify(\n msg: Uint8Array,\n sig: Uint8Array,\n eddsaPub: Uint8Array,\n): boolean {\n if (tart) {\n return tart.eddsaVerify(msg, sig, eddsaPub);\n }\n return nacl.sign_detached_verify(msg, sig, eddsaPub);\n}\n\nexport interface TalerHashState {\n update(data: Uint8Array): void;\n finish(): Uint8Array;\n}\n\nexport function createHashContext(): TalerHashState {\n if (tart) {\n const t = tart;\n const st = tart.hashStateInit();\n return {\n finish: () => t.hashStateFinish(st),\n update: (d) => t.hashStateUpdate(st, d),\n };\n }\n return new nacl.HashState();\n}\n\nexport interface FreshCoin {\n coinPub: Uint8Array;\n coinPriv: Uint8Array;\n bks: Uint8Array;\n maxAge: number;\n ageCommitmentProof: AgeCommitmentProof | undefined;\n}\n\nexport function bufferForUint32(n: number): Uint8Array {\n const arrBuf = new ArrayBuffer(4);\n const buf = new Uint8Array(arrBuf);\n const dv = new DataView(arrBuf);\n dv.setUint32(0, n);\n return buf;\n}\n\n/**\n * This makes the assumption that the uint64 fits a float,\n * which should be true for all Taler protocol messages.\n */\nexport function bufferForUint64(n: number): Uint8Array {\n const arrBuf = new ArrayBuffer(8);\n const buf = new Uint8Array(arrBuf);\n const dv = new DataView(arrBuf);\n if (n < 0 || !Number.isInteger(n)) {\n throw Error(\"non-negative integer expected\");\n }\n dv.setBigUint64(0, BigInt(n));\n return buf;\n}\n\nexport function bufferForUint8(n: number): Uint8Array {\n const arrBuf = new ArrayBuffer(1);\n const buf = new Uint8Array(arrBuf);\n const dv = new DataView(arrBuf);\n dv.setUint8(0, n);\n return buf;\n}\n\nexport async function setupTipPlanchet(\n secretSeed: Uint8Array,\n denomPub: DenominationPubKey,\n coinNumber: number,\n): Promise<FreshCoin> {\n const info = stringToBytes(\"taler-tip-coin-derivation\");\n const saltArrBuf = new ArrayBuffer(4);\n const salt = new Uint8Array(saltArrBuf);\n const saltDataView = new DataView(saltArrBuf);\n saltDataView.setUint32(0, coinNumber);\n const out = kdf(64, secretSeed, salt, info);\n const coinPriv = out.slice(0, 32);\n const bks = out.slice(32, 64);\n let maybeAcp: AgeCommitmentProof | undefined;\n if (denomPub.age_mask != 0) {\n maybeAcp = await AgeRestriction.restrictionCommitSeeded(\n denomPub.age_mask,\n AgeRestriction.AGE_UNRESTRICTED,\n secretSeed,\n );\n }\n return {\n bks,\n coinPriv,\n coinPub: eddsaGetPublic(coinPriv),\n maxAge: AgeRestriction.AGE_UNRESTRICTED,\n ageCommitmentProof: maybeAcp,\n };\n}\n/**\n *\n * @param paytoUri\n * @param salt 16-byte salt\n * @returns\n */\nexport function hashWire(paytoUri: string, salt: string): string {\n const r = kdf(\n 64,\n stringToBytes(paytoUri + \"\\0\"),\n decodeCrock(salt),\n stringToBytes(\"merchant-wire-signature\"),\n );\n return encodeCrock(r);\n}\n\nexport enum TalerSignaturePurpose {\n MERCHANT_TRACK_TRANSACTION = 1103,\n WALLET_RESERVE_WITHDRAW = 1200,\n WALLET_COIN_DEPOSIT = 1201,\n GLOBAL_FEES = 1022,\n MASTER_DENOMINATION_KEY_VALIDITY = 1025,\n MASTER_WIRE_FEES = 1028,\n MASTER_WIRE_DETAILS = 1030,\n WALLET_COIN_MELT = 1202,\n TEST = 4242,\n MERCHANT_PAYMENT_OK = 1104,\n MERCHANT_CONTRACT = 1101,\n MERCHANT_REFUND = 1102,\n WALLET_COIN_RECOUP = 1203,\n WALLET_COIN_LINK = 1204,\n WALLET_COIN_RECOUP_REFRESH = 1206,\n WALLET_AGE_ATTESTATION = 1207,\n WALLET_PURSE_CREATE = 1210,\n WALLET_PURSE_DEPOSIT = 1211,\n WALLET_PURSE_MERGE = 1213,\n WALLET_ACCOUNT_MERGE = 1214,\n WALLET_PURSE_ECONTRACT = 1216,\n WALLET_PURSE_DELETE = 1220,\n EXCHANGE_CONFIRM_RECOUP = 1039,\n EXCHANGE_CONFIRM_RECOUP_REFRESH = 1041,\n TALER_SIGNATURE_AML_DECISION = 1350,\n TALER_SIGNATURE_AML_QUERY = 1351,\n TALER_SIGNATURE_MASTER_AML_KEY = 1017,\n ANASTASIS_POLICY_UPLOAD = 1400,\n ANASTASIS_POLICY_DOWNLOAD = 1401,\n SYNC_BACKUP_UPLOAD = 1450,\n}\n\nexport enum WalletAccountMergeFlags {\n /**\n * Not a legal mode!\n */\n None = 0,\n\n /**\n * We are merging a fully paid-up purse into a reserve.\n */\n MergeFullyPaidPurse = 1,\n\n CreateFromPurseQuota = 2,\n\n CreateWithPurseFee = 3,\n}\n\nexport class SignaturePurposeBuilder {\n private chunks: Uint8Array[] = [];\n\n constructor(private purposeNum: number) { }\n\n put(bytes: Uint8Array): SignaturePurposeBuilder {\n this.chunks.push(Uint8Array.from(bytes));\n return this;\n }\n\n build(): Uint8Array {\n let payloadLen = 0;\n for (const c of this.chunks) {\n payloadLen += c.byteLength;\n }\n const buf = new ArrayBuffer(4 + 4 + payloadLen);\n const u8buf = new Uint8Array(buf);\n let p = 8;\n for (const c of this.chunks) {\n u8buf.set(c, p);\n p += c.byteLength;\n }\n const dvbuf = new DataView(buf);\n dvbuf.setUint32(0, payloadLen + 4 + 4);\n dvbuf.setUint32(4, this.purposeNum);\n return u8buf;\n }\n}\n\nexport function buildSigPS(purposeNum: number): SignaturePurposeBuilder {\n return new SignaturePurposeBuilder(purposeNum);\n}\n\nexport type OpaqueData = Flavor<Uint8Array, any>;\nexport type Edx25519PublicKey = FlavorP<Uint8Array, \"Edx25519PublicKey\", 32>;\nexport type Edx25519PrivateKey = FlavorP<Uint8Array, \"Edx25519PrivateKey\", 64>;\nexport type Edx25519Signature = FlavorP<Uint8Array, \"Edx25519Signature\", 64>;\n\nexport type Edx25519PublicKeyEnc = FlavorP<string, \"Edx25519PublicKeyEnc\", 32>;\nexport type Edx25519PrivateKeyEnc = FlavorP<\n string,\n \"Edx25519PrivateKeyEnc\",\n 64\n>;\n\n/**\n * Convert a big integer to a fixed-size, little-endian array.\n */\nexport function bigintToNaclArr(\n x: bigint.BigInteger,\n size: number,\n): Uint8Array {\n const byteArr = new Uint8Array(size);\n const arr = x.toArray(256).value.reverse();\n byteArr.set(arr, 0);\n return byteArr;\n}\n\nexport function bigintFromNaclArr(arr: Uint8Array): bigint.BigInteger {\n let rev = new Uint8Array(arr);\n rev = rev.reverse();\n return bigint.fromArray(Array.from(rev), 256, false);\n}\n\nexport namespace Edx25519 {\n const revL = [\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,\n 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10,\n ];\n\n const L = bigint.fromArray(revL.reverse(), 256, false);\n\n export async function keyCreateFromSeed(\n seed: OpaqueData,\n ): Promise<Edx25519PrivateKey> {\n return nacl.crypto_edx25519_private_key_create_from_seed(seed);\n }\n\n export async function keyCreate(): Promise<Edx25519PrivateKey> {\n return nacl.crypto_edx25519_private_key_create();\n }\n\n export async function getPublic(\n priv: Edx25519PrivateKey,\n ): Promise<Edx25519PublicKey> {\n return nacl.crypto_edx25519_get_public(priv);\n }\n\n export function sign(\n msg: OpaqueData,\n key: Edx25519PrivateKey,\n ): Promise<Edx25519Signature> {\n throw Error(\"not implemented\");\n }\n\n async function deriveFactor(\n pub: Edx25519PublicKey,\n seed: OpaqueData,\n ): Promise<OpaqueData> {\n const res = kdfKw({\n outputLength: 64,\n salt: seed,\n ikm: pub,\n info: stringToBytes(\"edx25519-derivation\"),\n });\n\n return res;\n }\n\n export async function privateKeyDerive(\n priv: Edx25519PrivateKey,\n seed: OpaqueData,\n ): Promise<Edx25519PrivateKey> {\n const pub = await getPublic(priv);\n const privDec = priv;\n const a = bigintFromNaclArr(privDec.subarray(0, 32));\n const factorEnc = await deriveFactor(pub, seed);\n const factorModL = bigintFromNaclArr(factorEnc).mod(L);\n\n const aPrime = a.divide(8).multiply(factorModL).mod(L).multiply(8).mod(L);\n const bPrime = nacl\n .hash(typedArrayConcat([privDec.subarray(32, 64), factorEnc]))\n .subarray(0, 32);\n\n const newPriv = typedArrayConcat([bigintToNaclArr(aPrime, 32), bPrime]);\n\n return newPriv;\n }\n\n export async function publicKeyDerive(\n pub: Edx25519PublicKey,\n seed: OpaqueData,\n ): Promise<Edx25519PublicKey> {\n const factorEnc = await deriveFactor(pub, seed);\n const factorReduced = nacl.crypto_core_ed25519_scalar_reduce(factorEnc);\n const res = nacl.crypto_scalarmult_ed25519_noclamp(factorReduced, pub);\n return res;\n }\n}\n\nexport interface AgeCommitment {\n mask: number;\n\n /**\n * Public keys, one for each age group specified in the age mask.\n */\n publicKeys: Edx25519PublicKeyEnc[];\n}\n\nexport interface AgeProof {\n /**\n * Private keys. Typically smaller than the number of public keys,\n * because we drop private keys from age groups that are restricted.\n */\n privateKeys: Edx25519PrivateKeyEnc[];\n}\n\nexport interface AgeCommitmentProof {\n commitment: AgeCommitment;\n proof: AgeProof;\n}\n\nfunction invariant(cond: boolean): asserts cond {\n if (!cond) {\n throw Error(\"invariant failed\");\n }\n}\n\nexport namespace AgeRestriction {\n /**\n * Smallest age value that the protocol considers \"unrestricted\".\n */\n export const AGE_UNRESTRICTED = 32;\n\n export function hashCommitment(ac: AgeCommitment): HashCodeString {\n const hc = new nacl.HashState();\n for (const pub of ac.publicKeys) {\n hc.update(decodeCrock(pub));\n }\n return encodeCrock(hc.finish().subarray(0, 32));\n }\n\n export function countAgeGroups(mask: number): number {\n let count = 0;\n let m = mask;\n while (m > 0) {\n count += m & 1;\n m = m >> 1;\n }\n return count;\n }\n\n /**\n * Get the starting points for age groups in the mask.\n */\n export function getAgeGroupsFromMask(mask: number): number[] {\n const groups: number[] = [];\n let age = 1;\n let m = mask >> 1;\n while (m > 0) {\n if (m & 1) {\n groups.push(age);\n }\n m = m >> 1;\n age++;\n }\n return groups;\n }\n\n export function getAgeGroupIndex(mask: number, age: number): number {\n invariant((mask & 1) === 1);\n let i = 0;\n let m = mask;\n let a = age;\n while (m > 0) {\n if (a <= 0) {\n break;\n }\n m = m >> 1;\n i += m & 1;\n a--;\n }\n return i;\n }\n\n export function ageGroupSpecToMask(ageGroupSpec: string): number {\n throw Error(\"not implemented\");\n }\n\n export async function restrictionCommit(\n ageMask: number,\n age: number,\n ): Promise<AgeCommitmentProof> {\n invariant((ageMask & 1) === 1);\n const numPubs = countAgeGroups(ageMask) - 1;\n const numPrivs = getAgeGroupIndex(ageMask, age);\n\n const pubs: Edx25519PublicKey[] = [];\n const privs: Edx25519PrivateKey[] = [];\n\n for (let i = 0; i < numPubs; i++) {\n const priv = await Edx25519.keyCreate();\n const pub = await Edx25519.getPublic(priv);\n pubs.push(pub);\n if (i < numPrivs) {\n privs.push(priv);\n }\n }\n\n return {\n commitment: {\n mask: ageMask,\n publicKeys: pubs.map((x) => encodeCrock(x)),\n },\n proof: {\n privateKeys: privs.map((x) => encodeCrock(x)),\n },\n };\n }\n\n const PublishedAgeRestrictionBaseKey: Edx25519PublicKey = decodeCrock(\n \"CH0VKFDZ2GWRWHQBBGEK9MWV5YDQVJ0RXEE0KYT3NMB69F0R96TG\",\n );\n\n export async function restrictionCommitSeeded(\n ageMask: number,\n age: number,\n seed: Uint8Array,\n ): Promise<AgeCommitmentProof> {\n invariant((ageMask & 1) === 1);\n const numPubs = countAgeGroups(ageMask) - 1;\n const numPrivs = getAgeGroupIndex(ageMask, age);\n\n const pubs: Edx25519PublicKey[] = [];\n const privs: Edx25519PrivateKey[] = [];\n\n for (let i = 0; i < numPrivs; i++) {\n const privSeed = await kdfKw({\n outputLength: 32,\n ikm: seed,\n info: stringToBytes(\"age-commitment\"),\n salt: bufferForUint32(i),\n });\n\n const priv = await Edx25519.keyCreateFromSeed(privSeed);\n const pub = await Edx25519.getPublic(priv);\n pubs.push(pub);\n privs.push(priv);\n }\n\n for (let i = numPrivs; i < numPubs; i++) {\n const deriveSeed = await kdfKw({\n outputLength: 32,\n ikm: seed,\n info: stringToBytes(\"age-factor\"),\n salt: bufferForUint32(i),\n });\n const pub = await Edx25519.publicKeyDerive(\n PublishedAgeRestrictionBaseKey,\n deriveSeed,\n );\n pubs.push(pub);\n }\n\n return {\n commitment: {\n mask: ageMask,\n publicKeys: pubs.map((x) => encodeCrock(x)),\n },\n proof: {\n privateKeys: privs.map((x) => encodeCrock(x)),\n },\n };\n }\n\n /**\n * Check that c1 = c2*salt\n */\n export async function commitCompare(\n c1: AgeCommitment,\n c2: AgeCommitment,\n salt: OpaqueData,\n ): Promise<boolean> {\n if (c1.publicKeys.length != c2.publicKeys.length) {\n return false;\n }\n for (let i = 0; i < c1.publicKeys.length; i++) {\n const k1 = decodeCrock(c1.publicKeys[i]);\n const k2 = await Edx25519.publicKeyDerive(\n decodeCrock(c2.publicKeys[i]),\n salt,\n );\n if (k1 != k2) {\n return false;\n }\n }\n return true;\n }\n\n export async function commitmentDerive(\n commitmentProof: AgeCommitmentProof,\n salt: OpaqueData,\n ): Promise<AgeCommitmentProof> {\n const newPrivs: Edx25519PrivateKey[] = [];\n const newPubs: Edx25519PublicKey[] = [];\n\n for (const oldPub of commitmentProof.commitment.publicKeys) {\n newPubs.push(await Edx25519.publicKeyDerive(decodeCrock(oldPub), salt));\n }\n\n for (const oldPriv of commitmentProof.proof.privateKeys) {\n newPrivs.push(\n await Edx25519.privateKeyDerive(decodeCrock(oldPriv), salt),\n );\n }\n\n return {\n commitment: {\n mask: commitmentProof.commitment.mask,\n publicKeys: newPubs.map((x) => encodeCrock(x)),\n },\n proof: {\n privateKeys: newPrivs.map((x) => encodeCrock(x)),\n },\n };\n }\n\n export function commitmentAttest(\n commitmentProof: AgeCommitmentProof,\n age: number,\n ): Edx25519Signature {\n const d = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION)\n .put(bufferForUint32(commitmentProof.commitment.mask))\n .put(bufferForUint32(age))\n .build();\n const group = getAgeGroupIndex(commitmentProof.commitment.mask, age);\n if (group === 0) {\n // No attestation required.\n return new Uint8Array(64);\n }\n const priv = commitmentProof.proof.privateKeys[group - 1];\n const pub = commitmentProof.commitment.publicKeys[group - 1];\n const sig = nacl.crypto_edx25519_sign_detached(\n d,\n decodeCrock(priv),\n decodeCrock(pub),\n );\n return sig;\n }\n\n export function commitmentVerify(\n commitment: AgeCommitment,\n sig: string,\n age: number,\n ): boolean {\n const d = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION)\n .put(bufferForUint32(commitment.mask))\n .put(bufferForUint32(age))\n .build();\n const group = getAgeGroupIndex(commitment.mask, age);\n if (group === 0) {\n // No attestation required.\n return true;\n }\n const pub = commitment.publicKeys[group - 1];\n return nacl.crypto_edx25519_sign_detached_verify(\n d,\n decodeCrock(sig),\n decodeCrock(pub),\n );\n }\n}\n\n// FIXME: make it a branded type!\ntype EncryptionNonce = FlavorP<Uint8Array, \"EncryptionNonce\", 24>;\n\nasync function deriveKey(\n keySeed: OpaqueData,\n nonce: EncryptionNonce,\n salt: string,\n): Promise<Uint8Array> {\n return kdfKw({\n outputLength: 32,\n salt: nonce,\n ikm: keySeed,\n info: stringToBytes(salt),\n });\n}\n\nexport async function encryptWithDerivedKey(\n nonce: EncryptionNonce,\n keySeed: OpaqueData,\n plaintext: OpaqueData,\n salt: string,\n): Promise<OpaqueData> {\n const key = await deriveKey(keySeed, nonce, salt);\n const cipherText = secretbox(plaintext, nonce, key);\n return typedArrayConcat([nonce, cipherText]);\n}\n\nconst nonceSize = 24;\n\nexport async function decryptWithDerivedKey(\n ciphertext: OpaqueData,\n keySeed: OpaqueData,\n salt: string,\n): Promise<OpaqueData> {\n const ctBuf = ciphertext;\n const nonceBuf = ctBuf.slice(0, nonceSize);\n const enc = ctBuf.slice(nonceSize);\n const key = await deriveKey(keySeed, nonceBuf, salt);\n const clearText = nacl.secretbox_open(enc, nonceBuf, key);\n if (!clearText) {\n throw Error(\"could not decrypt\");\n }\n return clearText;\n}\n\nenum ContractFormatTag {\n PaymentOffer = 0,\n PaymentRequest = 1,\n}\n\ntype MaterialEddsaPub = {\n _materialType?: \"eddsa-pub\";\n _size?: 32;\n};\n\ntype MaterialEddsaPriv = {\n _materialType?: \"ecdhe-priv\";\n _size?: 32;\n};\n\ntype MaterialEcdhePub = {\n _materialType?: \"ecdhe-pub\";\n _size?: 32;\n};\n\ntype MaterialEcdhePriv = {\n _materialType?: \"ecdhe-priv\";\n _size?: 32;\n};\n\ntype PursePublicKey = FlavorP<Uint8Array, \"PursePublicKey\", 32> &\n MaterialEddsaPub;\n\ntype ContractPrivateKey = FlavorP<Uint8Array, \"ContractPrivateKey\", 32> &\n MaterialEcdhePriv;\n\ntype MergePrivateKey = FlavorP<Uint8Array, \"MergePrivateKey\", 32> &\n MaterialEddsaPriv;\n\nconst mergeSalt = \"p2p-merge-contract\";\nconst depositSalt = \"p2p-deposit-contract\";\n\nexport function encryptContractForMerge(\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n mergePriv: MergePrivateKey,\n contractTerms: any,\n nonce: EncryptionNonce,\n): Promise<OpaqueData> {\n const contractTermsCanon = canonicalJson(contractTerms) + \"\\0\";\n const contractTermsBytes = stringToBytes(contractTermsCanon);\n const contractTermsCompressed = fflate.zlibSync(contractTermsBytes);\n const data = typedArrayConcat([\n bufferForUint32(ContractFormatTag.PaymentOffer),\n bufferForUint32(contractTermsBytes.length),\n mergePriv,\n contractTermsCompressed,\n ]);\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n return encryptWithDerivedKey(nonce, key, data, mergeSalt);\n}\n\nexport function encryptContractForDeposit(\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n contractTerms: any,\n nonce: EncryptionNonce,\n): Promise<OpaqueData> {\n const contractTermsCanon = canonicalJson(contractTerms) + \"\\0\";\n const contractTermsBytes = stringToBytes(contractTermsCanon);\n const contractTermsCompressed = fflate.zlibSync(contractTermsBytes);\n const data = typedArrayConcat([\n bufferForUint32(ContractFormatTag.PaymentRequest),\n bufferForUint32(contractTermsBytes.length),\n contractTermsCompressed,\n ]);\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n return encryptWithDerivedKey(nonce, key, data, depositSalt);\n}\n\nexport interface DecryptForMergeResult {\n contractTerms: any;\n mergePriv: Uint8Array;\n}\n\nexport interface DecryptForDepositResult {\n contractTerms: any;\n}\n\nexport async function decryptContractForMerge(\n enc: OpaqueData,\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n): Promise<DecryptForMergeResult> {\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n const dec = await decryptWithDerivedKey(enc, key, mergeSalt);\n const mergePriv = dec.slice(8, 8 + 32);\n const contractTermsCompressed = dec.slice(8 + 32);\n const contractTermsBuf = fflate.unzlibSync(contractTermsCompressed);\n // Slice of the '\\0' at the end and decode to a string\n const contractTermsString = bytesToString(\n contractTermsBuf.slice(0, contractTermsBuf.length - 1),\n );\n return {\n mergePriv: mergePriv,\n contractTerms: JSON.parse(contractTermsString),\n };\n}\n\nexport async function decryptContractForDeposit(\n enc: OpaqueData,\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n): Promise<DecryptForDepositResult> {\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n const dec = await decryptWithDerivedKey(enc, key, depositSalt);\n const contractTermsCompressed = dec.slice(8);\n const contractTermsBuf = fflate.unzlibSync(contractTermsCompressed);\n // Slice of the '\\0' at the end and decode to a string\n const contractTermsString = bytesToString(\n contractTermsBuf.slice(0, contractTermsBuf.length - 1),\n );\n return {\n contractTerms: JSON.parse(contractTermsString),\n };\n}\n\nexport function amountToBuffer(amount: AmountLike): Uint8Array {\n const amountJ = Amounts.jsonifyAmount(amount);\n const buffer = new ArrayBuffer(8 + 4 + 12);\n const dvbuf = new DataView(buffer);\n const u8buf = new Uint8Array(buffer);\n const curr = stringToBytes(amountJ.currency);\n if (typeof dvbuf.setBigUint64 !== \"undefined\") {\n dvbuf.setBigUint64(0, BigInt(amountJ.value));\n } else {\n const arr = bigint(amountJ.value).toArray(2 ** 8).value;\n let offset = 8 - arr.length;\n for (let i = 0; i < arr.length; i++) {\n dvbuf.setUint8(offset++, arr[i]);\n }\n }\n dvbuf.setUint32(8, amountJ.fraction);\n u8buf.set(curr, 8 + 4);\n\n return u8buf;\n}\n\nexport function timestampRoundedToBuffer(\n ts: TalerProtocolTimestamp,\n): Uint8Array {\n const b = new ArrayBuffer(8);\n const v = new DataView(b);\n // The buffer we sign over represents the timestamp in microseconds.\n if (typeof v.setBigUint64 !== \"undefined\") {\n const s = BigInt(ts.t_s) * BigInt(1000 * 1000);\n v.setBigUint64(0, s);\n } else {\n const s =\n ts.t_s === \"never\" ? bigint.zero : bigint(ts.t_s).multiply(1000 * 1000);\n const arr = s.toArray(2 ** 8).value;\n let offset = 8 - arr.length;\n for (let i = 0; i < arr.length; i++) {\n v.setUint8(offset++, arr[i]);\n }\n }\n return new Uint8Array(b);\n}\n\nexport function durationRoundedToBuffer(ts: TalerProtocolDuration): Uint8Array {\n const b = new ArrayBuffer(8);\n const v = new DataView(b);\n // The buffer we sign over represents the timestamp in microseconds.\n if (typeof v.setBigUint64 !== \"undefined\") {\n const s = BigInt(ts.d_us);\n v.setBigUint64(0, s);\n } else {\n const s = ts.d_us === \"forever\" ? bigint.zero : bigint(ts.d_us);\n const arr = s.toArray(2 ** 8).value;\n let offset = 8 - arr.length;\n for (let i = 0; i < arr.length; i++) {\n v.setUint8(offset++, arr[i]);\n }\n }\n return new Uint8Array(b);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2017-2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Helpers for relative and absolute time.\n */\n\n/**\n * Imports.\n */\nimport { Codec, renderContext, Context } from \"./codec.js\";\n\ndeclare const flavor_AbsoluteTime: unique symbol;\ndeclare const flavor_TalerProtocolTimestamp: unique symbol;\ndeclare const flavor_TalerPreciseTimestamp: unique symbol;\n\nconst opaque_AbsoluteTime: unique symbol = Symbol(\"opaque_AbsoluteTime\");\n\n// FIXME: Make this opaque!\nexport interface AbsoluteTime {\n /**\n * Timestamp in milliseconds.\n */\n readonly t_ms: number | \"never\";\n\n readonly _flavor?: typeof flavor_AbsoluteTime;\n\n // Make the type opaque, we only want our constructors\n // to able to create an AbsoluteTime value.\n [opaque_AbsoluteTime]: true;\n}\n\nexport interface TalerProtocolTimestamp {\n /**\n * Seconds (as integer) since epoch.\n */\n readonly t_s: number | \"never\";\n\n readonly _flavor?: typeof flavor_TalerProtocolTimestamp;\n}\n\n/**\n * Precise timestamp, typically used in the wallet-core\n * API but not in other Taler APIs so far.\n */\nexport interface TalerPreciseTimestamp {\n /**\n * Seconds (as integer) since epoch.\n */\n readonly t_s: number | \"never\";\n\n /**\n * Optional microsecond offset (non-negative integer).\n */\n readonly off_us?: number;\n\n readonly _flavor?: typeof flavor_TalerPreciseTimestamp;\n}\n\nexport namespace TalerPreciseTimestamp {\n export function now(): TalerPreciseTimestamp {\n const absNow = AbsoluteTime.now();\n return AbsoluteTime.toPreciseTimestamp(absNow);\n }\n\n export function round(t: TalerPreciseTimestamp): TalerProtocolTimestamp {\n return {\n t_s: t.t_s,\n };\n }\n\n export function fromSeconds(s: number): TalerPreciseTimestamp {\n return {\n t_s: Math.floor(s),\n off_us: Math.floor((s - Math.floor(s)) / 1000 / 1000),\n };\n }\n\n export function fromMilliseconds(ms: number): TalerPreciseTimestamp {\n return {\n t_s: Math.floor(ms / 1000),\n off_us: Math.floor((ms - Math.floor(ms / 1000) * 1000) * 1000),\n };\n }\n}\n\nexport namespace TalerProtocolTimestamp {\n export function now(): TalerProtocolTimestamp {\n return AbsoluteTime.toProtocolTimestamp(AbsoluteTime.now());\n }\n\n export function zero(): TalerProtocolTimestamp {\n return {\n t_s: 0,\n };\n }\n\n export function never(): TalerProtocolTimestamp {\n return {\n t_s: \"never\",\n };\n }\n\n export function isNever(t: TalerProtocolTimestamp): boolean {\n return t.t_s === \"never\";\n }\n\n export function fromSeconds(s: number): TalerProtocolTimestamp {\n return {\n t_s: s,\n };\n }\n\n export function min(\n t1: TalerProtocolTimestamp,\n t2: TalerProtocolTimestamp,\n ): TalerProtocolTimestamp {\n if (t1.t_s === \"never\") {\n return { t_s: t2.t_s };\n }\n if (t2.t_s === \"never\") {\n return { t_s: t1.t_s };\n }\n return { t_s: Math.min(t1.t_s, t2.t_s) };\n }\n export function max(\n t1: TalerProtocolTimestamp,\n t2: TalerProtocolTimestamp,\n ): TalerProtocolTimestamp {\n if (t1.t_s === \"never\" || t2.t_s === \"never\") {\n return { t_s: \"never\" };\n }\n return { t_s: Math.max(t1.t_s, t2.t_s) };\n }\n}\n\nexport interface Duration {\n /**\n * Duration in milliseconds.\n */\n readonly d_ms: number | \"forever\";\n}\n\nexport interface TalerProtocolDuration {\n readonly d_us: number | \"forever\";\n}\n\n/**\n * Timeshift in milliseconds.\n */\nlet timeshift = 0;\n\n/**\n * Set timetravel offset in milliseconds.\n *\n * Use carefully and only for testing.\n */\nexport function setDangerousTimetravel(dt: number): void {\n timeshift = dt;\n}\n\nexport namespace Duration {\n export function toMilliseconds(d: Duration): number {\n if (d.d_ms === \"forever\") {\n return Number.MAX_VALUE;\n }\n return d.d_ms;\n }\n export function getRemaining(\n deadline: AbsoluteTime,\n now = AbsoluteTime.now(),\n ): Duration {\n if (deadline.t_ms === \"never\") {\n return { d_ms: \"forever\" };\n }\n if (now.t_ms === \"never\") {\n throw Error(\"invalid argument for 'now'\");\n }\n if (deadline.t_ms < now.t_ms) {\n return { d_ms: 0 };\n }\n return { d_ms: deadline.t_ms - now.t_ms };\n }\n\n export function fromPrettyString(s: string): Duration {\n let dMs = 0;\n let currentNum = \"\";\n let parsingNum = true;\n for (let i = 0; i < s.length; i++) {\n const cc = s.charCodeAt(i);\n if (cc >= \"0\".charCodeAt(0) && cc <= \"9\".charCodeAt(0)) {\n if (!parsingNum) {\n throw Error(\"invalid duration, unexpected number\");\n }\n currentNum += s[i];\n continue;\n }\n if (s[i] == \" \") {\n if (currentNum != \"\") {\n parsingNum = false;\n }\n continue;\n }\n\n if (currentNum == \"\") {\n throw Error(\"invalid duration, missing number\");\n }\n\n if (s[i] === \"s\") {\n dMs += 1000 * Number.parseInt(currentNum, 10);\n } else if (s[i] === \"m\") {\n dMs += 60 * 1000 * Number.parseInt(currentNum, 10);\n } else if (s[i] === \"h\") {\n dMs += 60 * 60 * 1000 * Number.parseInt(currentNum, 10);\n } else if (s[i] === \"d\") {\n dMs += 24 * 60 * 60 * 1000 * Number.parseInt(currentNum, 10);\n } else {\n throw Error(\"invalid duration, unsupported unit\");\n }\n currentNum = \"\";\n parsingNum = true;\n }\n return {\n d_ms: dMs,\n };\n }\n\n /**\n * Compare two durations. Returns 0 when equal, -1 when a < b\n * and +1 when a > b.\n */\n export function cmp(d1: Duration, d2: Duration): 1 | 0 | -1 {\n if (d1.d_ms === \"forever\") {\n if (d2.d_ms === \"forever\") {\n return 0;\n }\n return 1;\n }\n if (d2.d_ms === \"forever\") {\n return -1;\n }\n if (d1.d_ms == d2.d_ms) {\n return 0;\n }\n if (d1.d_ms > d2.d_ms) {\n return 1;\n }\n return -1;\n }\n\n export function max(d1: Duration, d2: Duration): Duration {\n return durationMax(d1, d2);\n }\n\n export function min(d1: Duration, d2: Duration): Duration {\n return durationMin(d1, d2);\n }\n\n export function multiply(d1: Duration, n: number): Duration {\n return durationMul(d1, n);\n }\n\n export function toIntegerYears(d: Duration): number {\n if (typeof d.d_ms !== \"number\") {\n throw Error(\"infinite duration\");\n }\n return Math.ceil(d.d_ms / 1000 / 60 / 60 / 24 / 365);\n }\n\n export const fromSpec = durationFromSpec;\n\n export function getForever(): Duration {\n return { d_ms: \"forever\" };\n }\n\n export function getZero(): Duration {\n return { d_ms: 0 };\n }\n\n export function fromTalerProtocolDuration(\n d: TalerProtocolDuration,\n ): Duration {\n if (d.d_us === \"forever\") {\n return {\n d_ms: \"forever\",\n };\n }\n return {\n d_ms: Math.floor(d.d_us / 1000),\n };\n }\n\n export function toTalerProtocolDuration(d: Duration): TalerProtocolDuration {\n if (d.d_ms === \"forever\") {\n return {\n d_us: \"forever\",\n };\n }\n return {\n d_us: d.d_ms * 1000,\n };\n }\n\n export function fromMilliseconds(ms: number): Duration {\n return {\n d_ms: ms,\n };\n }\n\n export function clamp(args: {\n lower: Duration;\n upper: Duration;\n value: Duration;\n }): Duration {\n return durationMax(durationMin(args.value, args.upper), args.lower);\n }\n}\n\nexport namespace AbsoluteTime {\n export function getStampMsNow(): number {\n return new Date().getTime();\n }\n\n export function getStampMsNever(): number {\n return Number.MAX_SAFE_INTEGER;\n }\n\n export function now(): AbsoluteTime {\n return {\n t_ms: new Date().getTime() + timeshift,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function never(): AbsoluteTime {\n return {\n t_ms: \"never\",\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function fromMilliseconds(ms: number): AbsoluteTime {\n return {\n t_ms: ms,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function cmp(t1: AbsoluteTime, t2: AbsoluteTime): number {\n if (t1.t_ms === \"never\") {\n if (t2.t_ms === \"never\") {\n return 0;\n }\n return 1;\n }\n if (t2.t_ms === \"never\") {\n return -1;\n }\n if (t1.t_ms == t2.t_ms) {\n return 0;\n }\n if (t1.t_ms > t2.t_ms) {\n return 1;\n }\n return -1;\n }\n\n export function min(t1: AbsoluteTime, t2: AbsoluteTime): AbsoluteTime {\n if (t1.t_ms === \"never\") {\n return { t_ms: t2.t_ms, [opaque_AbsoluteTime]: true };\n }\n if (t2.t_ms === \"never\") {\n return { t_ms: t2.t_ms, [opaque_AbsoluteTime]: true };\n }\n return { t_ms: Math.min(t1.t_ms, t2.t_ms), [opaque_AbsoluteTime]: true };\n }\n\n export function max(t1: AbsoluteTime, t2: AbsoluteTime): AbsoluteTime {\n if (t1.t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n if (t2.t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n return { t_ms: Math.max(t1.t_ms, t2.t_ms), [opaque_AbsoluteTime]: true };\n }\n\n export function difference(t1: AbsoluteTime, t2: AbsoluteTime): Duration {\n if (t1.t_ms === \"never\") {\n return { d_ms: \"forever\" };\n }\n if (t2.t_ms === \"never\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: Math.abs(t1.t_ms - t2.t_ms) };\n }\n\n export function isExpired(t: AbsoluteTime) {\n return cmp(t, now()) <= 0;\n }\n\n export function fromProtocolTimestamp(\n t: TalerProtocolTimestamp,\n ): AbsoluteTime {\n if (t.t_s === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n return {\n t_ms: t.t_s * 1000,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function fromStampMs(stampMs: number): AbsoluteTime {\n return {\n t_ms: stampMs,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function fromPreciseTimestamp(t: TalerPreciseTimestamp): AbsoluteTime {\n if (t.t_s === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n const offsetUs = t.off_us ?? 0;\n return {\n t_ms: t.t_s * 1000 + Math.floor(offsetUs / 1000),\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function toStampMs(at: AbsoluteTime): number {\n if (at.t_ms === \"never\") {\n return Number.MAX_SAFE_INTEGER;\n }\n return at.t_ms;\n }\n\n export function toPreciseTimestamp(at: AbsoluteTime): TalerPreciseTimestamp {\n if (at.t_ms == \"never\") {\n return {\n t_s: \"never\",\n };\n }\n const t_s = Math.floor(at.t_ms / 1000);\n const off_us = Math.floor(1000 * (at.t_ms - t_s * 1000));\n return {\n t_s,\n off_us,\n };\n }\n\n export function toProtocolTimestamp(\n at: AbsoluteTime,\n ): TalerProtocolTimestamp {\n if (at.t_ms === \"never\") {\n return { t_s: \"never\" };\n }\n return {\n t_s: Math.floor(at.t_ms / 1000),\n };\n }\n\n export function isBetween(\n t: AbsoluteTime,\n start: AbsoluteTime,\n end: AbsoluteTime,\n ): boolean {\n if (cmp(t, start) < 0) {\n return false;\n }\n if (cmp(t, end) > 0) {\n return false;\n }\n return true;\n }\n\n export function toIsoString(t: AbsoluteTime): string {\n if (t.t_ms === \"never\") {\n return \"<never>\";\n } else {\n return new Date(t.t_ms).toISOString();\n }\n }\n\n export function addDuration(t1: AbsoluteTime, d: Duration): AbsoluteTime {\n if (t1.t_ms === \"never\" || d.d_ms === \"forever\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n return { t_ms: t1.t_ms + d.d_ms, [opaque_AbsoluteTime]: true };\n }\n\n export function subtractDuraction(\n t1: AbsoluteTime,\n d: Duration,\n ): AbsoluteTime {\n if (t1.t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n if (d.d_ms === \"forever\") {\n return { t_ms: 0, [opaque_AbsoluteTime]: true };\n }\n return { t_ms: Math.max(0, t1.t_ms - d.d_ms), [opaque_AbsoluteTime]: true };\n }\n\n export function stringify(t: AbsoluteTime): string {\n if (t.t_ms === \"never\") {\n return \"never\";\n }\n return new Date(t.t_ms).toISOString();\n }\n}\n\nconst SECONDS = 1000;\nconst MINUTES = SECONDS * 60;\nconst HOURS = MINUTES * 60;\nconst DAYS = HOURS * 24;\nconst MONTHS = DAYS * 30;\nconst YEARS = DAYS * 365;\n\nexport function durationFromSpec(spec: {\n seconds?: number;\n minutes?: number;\n hours?: number;\n days?: number;\n months?: number;\n years?: number;\n}): Duration {\n let d_ms = 0;\n d_ms += (spec.seconds ?? 0) * SECONDS;\n d_ms += (spec.minutes ?? 0) * MINUTES;\n d_ms += (spec.hours ?? 0) * HOURS;\n d_ms += (spec.days ?? 0) * DAYS;\n d_ms += (spec.months ?? 0) * MONTHS;\n d_ms += (spec.years ?? 0) * YEARS;\n return { d_ms };\n}\n\nexport function durationMin(d1: Duration, d2: Duration): Duration {\n if (d1.d_ms === \"forever\") {\n return { d_ms: d2.d_ms };\n }\n if (d2.d_ms === \"forever\") {\n return { d_ms: d1.d_ms };\n }\n return { d_ms: Math.min(d1.d_ms, d2.d_ms) };\n}\n\nexport function durationMax(d1: Duration, d2: Duration): Duration {\n if (d1.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n if (d2.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: Math.max(d1.d_ms, d2.d_ms) };\n}\n\nexport function durationMul(d: Duration, n: number): Duration {\n if (d.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: Math.round(d.d_ms * n) };\n}\n\nexport function durationAdd(d1: Duration, d2: Duration): Duration {\n if (d1.d_ms === \"forever\" || d2.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: d1.d_ms + d2.d_ms };\n}\n\nexport const codecForAbsoluteTime: Codec<AbsoluteTime> = {\n decode(x: any, c?: Context): AbsoluteTime {\n const t_ms = x.t_ms;\n if (typeof t_ms === \"string\") {\n if (t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n } else if (typeof t_ms === \"number\") {\n return { t_ms, [opaque_AbsoluteTime]: true };\n }\n throw Error(`expected timestamp at ${renderContext(c)}`);\n },\n};\n\nexport const codecForTimestamp: Codec<TalerProtocolTimestamp> = {\n decode(x: any, c?: Context): TalerProtocolTimestamp {\n // Compatibility, should be removed soon.\n const t_ms = x.t_ms;\n if (typeof t_ms === \"string\") {\n if (t_ms === \"never\") {\n return { t_s: \"never\" };\n }\n } else if (typeof t_ms === \"number\") {\n return { t_s: Math.floor(t_ms / 1000) };\n }\n const t_s = x.t_s;\n if (typeof t_s === \"string\") {\n if (t_s === \"never\") {\n return { t_s: \"never\" };\n }\n throw Error(`expected timestamp at ${renderContext(c)}`);\n }\n if (typeof t_s === \"number\") {\n return { t_s };\n }\n throw Error(`expected timestamp at ${renderContext(c)}`);\n },\n};\n\nexport const codecForDuration: Codec<TalerProtocolDuration> = {\n decode(x: any, c?: Context): TalerProtocolDuration {\n const d_us = x.d_us;\n if (typeof d_us === \"string\") {\n if (d_us === \"forever\") {\n return { d_us: \"forever\" };\n }\n throw Error(`expected duration at ${renderContext(c)}`);\n }\n if (typeof d_us === \"number\") {\n return { d_us };\n }\n throw Error(`expected duration at ${renderContext(c)}`);\n },\n};\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type and schema definitions and helpers for the core GNU Taler protocol.\n *\n * Even though the rest of the wallet uses camelCase for fields, use snake_case\n * here, since that's the convention for the Taler JSON+HTTP API.\n */\n\n/**\n * Imports.\n */\n\nimport { Amounts, codecForAmountString } from \"./amounts.js\";\nimport {\n buildCodecForObject,\n buildCodecForUnion,\n Codec,\n codecForAny,\n codecForBoolean,\n codecForConstNumber,\n codecForConstString,\n codecForList,\n codecForMap,\n codecForNumber,\n codecForString,\n codecOptional,\n} from \"./codec.js\";\nimport { strcmp } from \"./helpers.js\";\nimport { AgeCommitmentProof, Edx25519PublicKeyEnc } from \"./taler-crypto.js\";\nimport {\n codecForAbsoluteTime,\n codecForDuration,\n codecForTimestamp,\n TalerProtocolDuration,\n TalerProtocolTimestamp,\n} from \"./time.js\";\n\n/**\n * Denomination as found in the /keys response from the exchange.\n */\nexport class ExchangeDenomination {\n /**\n * Value of one coin of the denomination.\n */\n value: string;\n\n /**\n * Public signing key of the denomination.\n */\n denom_pub: DenominationPubKey;\n\n /**\n * Fee for withdrawing.\n */\n fee_withdraw: string;\n\n /**\n * Fee for depositing.\n */\n fee_deposit: string;\n\n /**\n * Fee for refreshing.\n */\n fee_refresh: string;\n\n /**\n * Fee for refunding.\n */\n fee_refund: string;\n\n /**\n * Start date from which withdraw is allowed.\n */\n stamp_start: TalerProtocolTimestamp;\n\n /**\n * End date for withdrawing.\n */\n stamp_expire_withdraw: TalerProtocolTimestamp;\n\n /**\n * Expiration date after which the exchange can forget about\n * the currency.\n */\n stamp_expire_legal: TalerProtocolTimestamp;\n\n /**\n * Date after which the coins of this denomination can't be\n * deposited anymore.\n */\n stamp_expire_deposit: TalerProtocolTimestamp;\n\n /**\n * Signature over the denomination information by the exchange's master\n * signing key.\n */\n master_sig: string;\n}\n\n/**\n * Signature by the auditor that a particular denomination key is audited.\n */\nexport class AuditorDenomSig {\n /**\n * Denomination public key's hash.\n */\n denom_pub_h: string;\n\n /**\n * The signature.\n */\n auditor_sig: string;\n}\n\n/**\n * Auditor information as given by the exchange in /keys.\n */\nexport class ExchangeAuditor {\n /**\n * Auditor's public key.\n */\n auditor_pub: string;\n\n /**\n * Base URL of the auditor.\n */\n auditor_url: string;\n\n /**\n * List of signatures for denominations by the auditor.\n */\n denomination_keys: AuditorDenomSig[];\n}\n\nexport type ExchangeWithdrawValue =\n | ExchangeRsaWithdrawValue\n | ExchangeCsWithdrawValue;\n\nexport interface ExchangeRsaWithdrawValue {\n cipher: \"RSA\";\n}\n\nexport interface ExchangeCsWithdrawValue {\n cipher: \"CS\";\n\n /**\n * CSR R0 value\n */\n r_pub_0: string;\n\n /**\n * CSR R1 value\n */\n r_pub_1: string;\n}\n\nexport interface RecoupRequest {\n /**\n * Hashed denomination public key of the coin we want to get\n * paid back.\n */\n denom_pub_hash: string;\n\n /**\n * Signature over the coin public key by the denomination.\n *\n * The string variant is for the legacy exchange protocol.\n */\n denom_sig: UnblindedSignature;\n\n /**\n * Blinding key that was used during withdraw,\n * used to prove that we were actually withdrawing the coin.\n */\n coin_blind_key_secret: string;\n\n /**\n * Signature of TALER_RecoupRequestPS created with the coin's private key.\n */\n coin_sig: string;\n\n ewv: ExchangeWithdrawValue;\n}\n\nexport interface RecoupRefreshRequest {\n /**\n * Hashed enomination public key of the coin we want to get\n * paid back.\n */\n denom_pub_hash: string;\n\n /**\n * Signature over the coin public key by the denomination.\n *\n * The string variant is for the legacy exchange protocol.\n */\n denom_sig: UnblindedSignature;\n\n /**\n * Coin's blinding factor.\n */\n coin_blind_key_secret: string;\n\n /**\n * Signature of TALER_RecoupRefreshRequestPS created with\n * the coin's private key.\n */\n coin_sig: string;\n\n ewv: ExchangeWithdrawValue;\n}\n\n/**\n * Response that we get from the exchange for a payback request.\n */\nexport interface RecoupConfirmation {\n /**\n * Public key of the reserve that will receive the payback.\n */\n reserve_pub?: string;\n\n /**\n * Public key of the old coin that will receive the recoup,\n * provided if refreshed was true.\n */\n old_coin_pub?: string;\n}\n\nexport type UnblindedSignature = RsaUnblindedSignature;\n\nexport interface RsaUnblindedSignature {\n cipher: DenomKeyType.Rsa;\n rsa_signature: string;\n}\n\n/**\n * Deposit permission for a single coin.\n */\nexport interface CoinDepositPermission {\n /**\n * Signature by the coin.\n */\n coin_sig: string;\n\n /**\n * Public key of the coin being spend.\n */\n coin_pub: string;\n\n /**\n * Signature made by the denomination public key.\n *\n * The string variant is for legacy protocol support.\n */\n\n ub_sig: UnblindedSignature;\n\n /**\n * The denomination public key associated with this coin.\n */\n h_denom: string;\n\n /**\n * The amount that is subtracted from this coin with this payment.\n */\n contribution: string;\n\n /**\n * URL of the exchange this coin was withdrawn from.\n */\n exchange_url: string;\n\n minimum_age_sig?: EddsaSignatureString;\n\n age_commitment?: Edx25519PublicKeyEnc[];\n\n h_age_commitment?: string;\n}\n\n/**\n * Information about an exchange as stored inside a\n * merchant's contract terms.\n */\nexport interface ExchangeHandle {\n /**\n * Master public signing key of the exchange.\n */\n master_pub: string;\n\n /**\n * Base URL of the exchange.\n */\n url: string;\n}\n\nexport interface AuditorHandle {\n /**\n * Official name of the auditor.\n */\n name: string;\n\n /**\n * Master public signing key of the auditor.\n */\n auditor_pub: string;\n\n /**\n * Base URL of the auditor.\n */\n url: string;\n}\n\n// Delivery location, loosely modeled as a subset of\n// ISO20022's PostalAddress25.\nexport interface Location {\n // Nation with its own government.\n country?: string;\n\n // Identifies a subdivision of a country such as state, region, county.\n country_subdivision?: string;\n\n // Identifies a subdivision within a country sub-division.\n district?: string;\n\n // Name of a built-up area, with defined boundaries, and a local government.\n town?: string;\n\n // Specific location name within the town.\n town_location?: string;\n\n // Identifier consisting of a group of letters and/or numbers that\n // is added to a postal address to assist the sorting of mail.\n post_code?: string;\n\n // Name of a street or thoroughfare.\n street?: string;\n\n // Name of the building or house.\n building_name?: string;\n\n // Number that identifies the position of a building on a street.\n building_number?: string;\n\n // Free-form address lines, should not exceed 7 elements.\n address_lines?: string[];\n}\n\nexport interface MerchantInfo {\n name: string;\n jurisdiction?: Location;\n address?: Location;\n logo?: string;\n website?: string;\n email?: string;\n}\n\nexport interface Tax {\n // the name of the tax\n name: string;\n\n // amount paid in tax\n tax: AmountString;\n}\n\nexport interface Product {\n // merchant-internal identifier for the product.\n product_id?: string;\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions\n description_i18n?: { [lang_tag: string]: string };\n\n // The number of units of the product to deliver to the customer.\n quantity?: number;\n\n // The unit in which the product is measured (liters, kilograms, packages, etc.)\n unit?: string;\n\n // The price of the product; this is the total price for quantity times unit of this product.\n price?: AmountString;\n\n // An optional base64-encoded product image\n image?: string;\n\n // a list of taxes paid by the merchant for this product. Can be empty.\n taxes?: Tax[];\n\n // time indicating when this product should be delivered\n delivery_date?: TalerProtocolTimestamp;\n}\n\nexport interface InternationalizedString {\n [lang_tag: string]: string;\n}\n\n/**\n * Contract terms from a merchant.\n * FIXME: Add type field!\n */\nexport interface MerchantContractTerms {\n /**\n * Hash of the merchant's wire details.\n */\n h_wire: string;\n\n /**\n * Hash of the merchant's wire details.\n */\n auto_refund?: TalerProtocolDuration;\n\n /**\n * Wire method the merchant wants to use.\n */\n wire_method: string;\n\n /**\n * Human-readable short summary of the contract.\n */\n summary: string;\n\n summary_i18n?: InternationalizedString;\n\n /**\n * Nonce used to ensure freshness.\n */\n nonce: string;\n\n /**\n * Total amount payable.\n */\n amount: string;\n\n /**\n * Deadline to pay for the contract.\n */\n pay_deadline: TalerProtocolTimestamp;\n\n /**\n * Maximum deposit fee covered by the merchant.\n */\n max_fee: string;\n\n /**\n * Information about the merchant.\n */\n merchant: MerchantInfo;\n\n /**\n * Public key of the merchant.\n */\n merchant_pub: string;\n\n /**\n * Time indicating when the order should be delivered.\n * May be overwritten by individual products.\n */\n delivery_date?: TalerProtocolTimestamp;\n\n /**\n * Delivery location for (all!) products.\n */\n delivery_location?: Location;\n\n /**\n * List of accepted exchanges.\n */\n exchanges: ExchangeHandle[];\n\n /**\n * Products that are sold in this contract.\n */\n products?: Product[];\n\n /**\n * Deadline for refunds.\n */\n refund_deadline: TalerProtocolTimestamp;\n\n /**\n * Deadline for the wire transfer.\n */\n wire_transfer_deadline: TalerProtocolTimestamp;\n\n /**\n * Time when the contract was generated by the merchant.\n */\n timestamp: TalerProtocolTimestamp;\n\n /**\n * Order id to uniquely identify the purchase within\n * one merchant instance.\n */\n order_id: string;\n\n /**\n * Base URL of the merchant's backend.\n */\n merchant_base_url: string;\n\n /**\n * Fulfillment URL to view the product or\n * delivery status.\n */\n fulfillment_url?: string;\n\n /**\n * URL meant to share the shopping cart.\n */\n public_reorder_url?: string;\n\n /**\n * Plain text fulfillment message in the merchant's default language.\n */\n fulfillment_message?: string;\n\n /**\n * Internationalized fulfillment messages.\n */\n fulfillment_message_i18n?: InternationalizedString;\n\n /**\n * Share of the wire fee that must be settled with one payment.\n */\n wire_fee_amortization?: number;\n\n /**\n * Maximum wire fee that the merchant agrees to pay for.\n */\n max_wire_fee?: string;\n\n minimum_age?: number;\n\n /**\n * Extra data, interpreted by the mechant only.\n */\n extra?: any;\n}\n\n/**\n * Refund permission in the format that the merchant gives it to us.\n */\nexport interface MerchantAbortPayRefundDetails {\n /**\n * Amount to be refunded.\n */\n refund_amount: string;\n\n /**\n * Fee for the refund.\n */\n refund_fee: string;\n\n /**\n * Public key of the coin being refunded.\n */\n coin_pub: string;\n\n /**\n * Refund transaction ID between merchant and exchange.\n */\n rtransaction_id: number;\n\n /**\n * Exchange's key used for the signature.\n */\n exchange_pub?: string;\n\n /**\n * Exchange's signature to confirm the refund.\n */\n exchange_sig?: string;\n\n /**\n * Error replay from the exchange (if any).\n */\n exchange_reply?: any;\n\n /**\n * Error code from the exchange (if any).\n */\n exchange_code?: number;\n\n /**\n * HTTP status code of the exchange's response\n * to the merchant's refund request.\n */\n exchange_http_status: number;\n}\n\n/**\n * Response for a refund pickup or a /pay in abort mode.\n */\nexport interface MerchantRefundResponse {\n /**\n * Public key of the merchant\n */\n merchant_pub: string;\n\n /**\n * Contract terms hash of the contract that\n * is being refunded.\n */\n h_contract_terms: string;\n\n /**\n * The signed refund permissions, to be sent to the exchange.\n */\n refunds: MerchantAbortPayRefundDetails[];\n}\n\n/**\n * Planchet detail sent to the merchant.\n */\nexport interface TipPlanchetDetail {\n /**\n * Hashed denomination public key.\n */\n denom_pub_hash: string;\n\n /**\n * Coin's blinded public key.\n */\n coin_ev: CoinEnvelope;\n}\n\n/**\n * Request sent to the merchant to pick up a tip.\n */\nexport interface TipPickupRequest {\n /**\n * Identifier of the tip.\n */\n tip_id: string;\n\n /**\n * List of planchets the wallet wants to use for the tip.\n */\n planchets: TipPlanchetDetail[];\n}\n\n/**\n * Reserve signature, defined as separate class to facilitate\n * schema validation.\n */\nexport interface MerchantBlindSigWrapperV1 {\n /**\n * Reserve signature.\n */\n blind_sig: string;\n}\n\n/**\n * Response of the merchant\n * to the TipPickupRequest.\n */\nexport interface MerchantTipResponseV1 {\n /**\n * The order of the signatures matches the planchets list.\n */\n blind_sigs: MerchantBlindSigWrapperV1[];\n}\n\nexport interface MerchantBlindSigWrapperV2 {\n blind_sig: BlindedDenominationSignature;\n}\n\n/**\n * Response of the merchant\n * to the TipPickupRequest.\n */\nexport interface MerchantTipResponseV2 {\n /**\n * The order of the signatures matches the planchets list.\n */\n blind_sigs: MerchantBlindSigWrapperV2[];\n}\n\n/**\n * Element of the payback list that the\n * exchange gives us in /keys.\n */\nexport class Recoup {\n /**\n * The hash of the denomination public key for which the payback is offered.\n */\n h_denom_pub: string;\n}\n\n/**\n * Structure of one exchange signing key in the /keys response.\n */\nexport class ExchangeSignKeyJson {\n stamp_start: TalerProtocolTimestamp;\n stamp_expire: TalerProtocolTimestamp;\n stamp_end: TalerProtocolTimestamp;\n key: EddsaPublicKeyString;\n master_sig: EddsaSignatureString;\n}\n\n/**\n * Structure that the exchange gives us in /keys.\n */\nexport class ExchangeKeysJson {\n /**\n * Canonical, public base URL of the exchange.\n */\n base_url: string;\n\n currency: string;\n\n /**\n * The exchange's master public key.\n */\n master_public_key: string;\n\n /**\n * The list of auditors (partially) auditing the exchange.\n */\n auditors: ExchangeAuditor[];\n\n /**\n * Timestamp when this response was issued.\n */\n list_issue_date: TalerProtocolTimestamp;\n\n /**\n * List of revoked denominations.\n */\n recoup?: Recoup[];\n\n /**\n * Short-lived signing keys used to sign online\n * responses.\n */\n signkeys: ExchangeSignKeyJson[];\n\n /**\n * Protocol version.\n */\n version: string;\n\n reserve_closing_delay: TalerProtocolDuration;\n\n global_fees: GlobalFees[];\n\n accounts: AccountInfo[];\n\n wire_fees: { [methodName: string]: WireFeesJson[] };\n\n denominations: DenomGroup[];\n}\n\nexport type DenomGroup =\n | DenomGroupRsa\n | DenomGroupCs\n | DenomGroupRsaAgeRestricted\n | DenomGroupCsAgeRestricted;\n\nexport interface DenomGroupCommon {\n // How much are coins of this denomination worth?\n value: AmountString;\n\n // Fee charged by the exchange for withdrawing a coin of this denomination.\n fee_withdraw: AmountString;\n\n // Fee charged by the exchange for depositing a coin of this denomination.\n fee_deposit: AmountString;\n\n // Fee charged by the exchange for refreshing a coin of this denomination.\n fee_refresh: AmountString;\n\n // Fee charged by the exchange for refunding a coin of this denomination.\n fee_refund: AmountString;\n\n // XOR of all the SHA-512 hash values of the denominations' public keys\n // in this group. Note that for hashing, the binary format of the\n // public keys is used, and not their base32 encoding.\n hash: HashCodeString;\n}\n\nexport interface DenomCommon {\n // Signature of TALER_DenominationKeyValidityPS.\n master_sig: EddsaSignatureString;\n\n // When does the denomination key become valid?\n stamp_start: TalerProtocolTimestamp;\n\n // When is it no longer possible to deposit coins\n // of this denomination?\n stamp_expire_withdraw: TalerProtocolTimestamp;\n\n // Timestamp indicating by when legal disputes relating to these coins must\n // be settled, as the exchange will afterwards destroy its evidence relating to\n // transactions involving this coin.\n stamp_expire_legal: TalerProtocolTimestamp;\n\n stamp_expire_deposit: TalerProtocolTimestamp;\n\n // Set to 'true' if the exchange somehow \"lost\"\n // the private key. The denomination was not\n // necessarily revoked, but still cannot be used\n // to withdraw coins at this time (theoretically,\n // the private key could be recovered in the\n // future; coins signed with the private key\n // remain valid).\n lost?: boolean;\n}\n\nexport type RsaPublicKeySring = string;\nexport type AgeMask = number;\n\n/**\n * 32-byte value representing a point on Curve25519.\n */\nexport type Cs25519Point = string;\n\nexport interface DenomGroupRsa extends DenomGroupCommon {\n cipher: \"RSA\";\n\n denoms: ({\n rsa_pub: RsaPublicKeySring;\n } & DenomCommon)[];\n}\n\nexport interface DenomGroupRsaAgeRestricted extends DenomGroupCommon {\n cipher: \"RSA+age_restricted\";\n age_mask: AgeMask;\n\n denoms: ({\n rsa_pub: RsaPublicKeySring;\n } & DenomCommon)[];\n}\n\nexport interface DenomGroupCs extends DenomGroupCommon {\n cipher: \"CS\";\n age_mask: AgeMask;\n\n denoms: ({\n cs_pub: Cs25519Point;\n } & DenomCommon)[];\n}\n\nexport interface DenomGroupCsAgeRestricted extends DenomGroupCommon {\n cipher: \"CS+age_restricted\";\n age_mask: AgeMask;\n\n denoms: ({\n cs_pub: Cs25519Point;\n } & DenomCommon)[];\n}\n\nexport interface GlobalFees {\n // What date (inclusive) does these fees go into effect?\n start_date: TalerProtocolTimestamp;\n\n // What date (exclusive) does this fees stop going into effect?\n end_date: TalerProtocolTimestamp;\n\n // Account history fee, charged when a user wants to\n // obtain a reserve/account history.\n history_fee: AmountString;\n\n // Annual fee charged for having an open account at the\n // exchange. Charged to the account. If the account\n // balance is insufficient to cover this fee, the account\n // is automatically deleted/closed. (Note that the exchange\n // will keep the account history around for longer for\n // regulatory reasons.)\n account_fee: AmountString;\n\n // Purse fee, charged only if a purse is abandoned\n // and was not covered by the account limit.\n purse_fee: AmountString;\n\n // How long will the exchange preserve the account history?\n // After an account was deleted/closed, the exchange will\n // retain the account history for legal reasons until this time.\n history_expiration: TalerProtocolDuration;\n\n // Non-negative number of concurrent purses that any\n // account holder is allowed to create without having\n // to pay the purse_fee.\n purse_account_limit: number;\n\n // How long does an exchange keep a purse around after a purse\n // has expired (or been successfully merged)? A 'GET' request\n // for a purse will succeed until the purse expiration time\n // plus this value.\n purse_timeout: TalerProtocolDuration;\n\n // Signature of TALER_GlobalFeesPS.\n master_sig: string;\n}\n/**\n * Wire fees as announced by the exchange.\n */\nexport class WireFeesJson {\n /**\n * Cost of a wire transfer.\n */\n wire_fee: string;\n\n /**\n * Cost of clising a reserve.\n */\n closing_fee: string;\n\n /**\n * Signature made with the exchange's master key.\n */\n sig: string;\n\n /**\n * Date from which the fee applies.\n */\n start_date: TalerProtocolTimestamp;\n\n /**\n * Data after which the fee doesn't apply anymore.\n */\n end_date: TalerProtocolTimestamp;\n}\n\nexport interface AccountInfo {\n payto_uri: string;\n master_sig: string;\n // Will become mandatory in later protocol versions\n conversion_url?: string;\n credit_restrictions?: any;\n debit_restrictions?: any;\n}\n\n/**\n * @deprecated\n */\nexport interface ExchangeWireJson { }\n\n/**\n * Proposal returned from the contract URL.\n */\nexport class Proposal {\n /**\n * Contract terms for the propoal.\n * Raw, un-decoded JSON object.\n */\n contract_terms: any;\n\n /**\n * Signature over contract, made by the merchant. The public key used for signing\n * must be contract_terms.merchant_pub.\n */\n sig: string;\n}\n\n/**\n * Response from the internal merchant API.\n */\nexport class CheckPaymentResponse {\n order_status: string;\n refunded: boolean | undefined;\n refunded_amount: string | undefined;\n contract_terms: any | undefined;\n taler_pay_uri: string | undefined;\n contract_url: string | undefined;\n}\n\n/**\n * Response from the bank.\n */\nexport class WithdrawOperationStatusResponse {\n selection_done: boolean;\n\n transfer_done: boolean;\n\n aborted: boolean;\n\n amount: string;\n\n sender_wire?: string;\n\n suggested_exchange?: string;\n\n confirm_transfer_url?: string;\n\n wire_types: string[];\n}\n\n/**\n * Response from the merchant.\n */\nexport class RewardPickupGetResponse {\n reward_amount: string;\n\n exchange_url: string;\n\n next_url?: string;\n\n expiration: TalerProtocolTimestamp;\n}\n\nexport enum DenomKeyType {\n Rsa = \"RSA\",\n ClauseSchnorr = \"CS\",\n}\n\nexport namespace DenomKeyType {\n export function toIntTag(t: DenomKeyType): number {\n switch (t) {\n case DenomKeyType.Rsa:\n return 1;\n case DenomKeyType.ClauseSchnorr:\n return 2;\n }\n }\n}\n\nexport interface RsaBlindedDenominationSignature {\n cipher: DenomKeyType.Rsa;\n blinded_rsa_signature: string;\n}\n\nexport interface CSBlindedDenominationSignature {\n cipher: DenomKeyType.ClauseSchnorr;\n}\n\nexport type BlindedDenominationSignature =\n | RsaBlindedDenominationSignature\n | CSBlindedDenominationSignature;\n\nexport const codecForRsaBlindedDenominationSignature = () =>\n buildCodecForObject<RsaBlindedDenominationSignature>()\n .property(\"cipher\", codecForConstString(DenomKeyType.Rsa))\n .property(\"blinded_rsa_signature\", codecForString())\n .build(\"RsaBlindedDenominationSignature\");\n\nexport const codecForBlindedDenominationSignature = () =>\n buildCodecForUnion<BlindedDenominationSignature>()\n .discriminateOn(\"cipher\")\n .alternative(DenomKeyType.Rsa, codecForRsaBlindedDenominationSignature())\n .build(\"BlindedDenominationSignature\");\n\nexport class ExchangeWithdrawResponse {\n ev_sig: BlindedDenominationSignature;\n}\n\nexport class ExchangeWithdrawBatchResponse {\n ev_sigs: ExchangeWithdrawResponse[];\n}\n\nexport interface MerchantPayResponse {\n sig: string;\n pos_confirmation?: string;\n}\n\nexport interface ExchangeMeltRequest {\n coin_pub: CoinPublicKeyString;\n confirm_sig: EddsaSignatureString;\n denom_pub_hash: HashCodeString;\n denom_sig: UnblindedSignature;\n rc: string;\n value_with_fee: AmountString;\n age_commitment_hash?: HashCodeString;\n}\n\nexport interface ExchangeMeltResponse {\n /**\n * Which of the kappa indices does the client not have to reveal.\n */\n noreveal_index: number;\n\n /**\n * Signature of TALER_RefreshMeltConfirmationPS whereby the exchange\n * affirms the successful melt and confirming the noreveal_index\n */\n exchange_sig: EddsaSignatureString;\n\n /*\n * public EdDSA key of the exchange that was used to generate the signature.\n * Should match one of the exchange's signing keys from /keys. Again given\n * explicitly as the client might otherwise be confused by clock skew as to\n * which signing key was used.\n */\n exchange_pub: EddsaPublicKeyString;\n\n /*\n * Base URL to use for operations on the refresh context\n * (so the reveal operation). If not given,\n * the base URL is the same as the one used for this request.\n * Can be used if the base URL for /refreshes/ differs from that\n * for /coins/, i.e. for load balancing. Clients SHOULD\n * respect the refresh_base_url if provided. Any HTTP server\n * belonging to an exchange MUST generate a 307 or 308 redirection\n * to the correct base URL should a client uses the wrong base\n * URL, or if the base URL has changed since the melt.\n *\n * When melting the same coin twice (technically allowed\n * as the response might have been lost on the network),\n * the exchange may return different values for the refresh_base_url.\n */\n refresh_base_url?: string;\n}\n\nexport interface ExchangeRevealItem {\n ev_sig: BlindedDenominationSignature;\n}\n\nexport interface ExchangeRevealResponse {\n // List of the exchange's blinded RSA signatures on the new coins.\n ev_sigs: ExchangeRevealItem[];\n}\n\ninterface MerchantOrderStatusPaid {\n // Was the payment refunded (even partially, via refund or abort)?\n refunded: boolean;\n\n // Is any amount of the refund still waiting to be picked up (even partially)?\n refund_pending: boolean;\n\n // Amount that was refunded in total.\n refund_amount: AmountString;\n\n // Amount that already taken by the wallet.\n refund_taken: AmountString;\n}\n\ninterface MerchantOrderRefundResponse {\n /**\n * Amount that was refunded in total.\n */\n refund_amount: AmountString;\n\n /**\n * Successful refunds for this payment, empty array for none.\n */\n refunds: MerchantCoinRefundStatus[];\n\n /**\n * Public key of the merchant.\n */\n merchant_pub: EddsaPublicKeyString;\n}\n\nexport type MerchantCoinRefundStatus =\n | MerchantCoinRefundSuccessStatus\n | MerchantCoinRefundFailureStatus;\n\nexport interface MerchantCoinRefundSuccessStatus {\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // the EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund\n exchange_sig: EddsaSignatureString;\n\n // public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n\n // Refund transaction ID.\n rtransaction_id: number;\n\n // public key of a coin that was refunded\n coin_pub: EddsaPublicKeyString;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n execution_time: TalerProtocolTimestamp;\n}\n\nexport interface MerchantCoinRefundFailureStatus {\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: number;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: number;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: any;\n\n // Refund transaction ID.\n rtransaction_id: number;\n\n // public key of a coin that was refunded\n coin_pub: EddsaPublicKeyString;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n execution_time: TalerProtocolTimestamp;\n}\n\nexport interface MerchantOrderStatusUnpaid {\n /**\n * URI that the wallet must process to complete the payment.\n */\n taler_pay_uri: string;\n\n /**\n * Alternative order ID which was paid for already in the same session.\n *\n * Only given if the same product was purchased before in the same session.\n */\n already_paid_order_id?: string;\n}\n\n/**\n * Response body for the following endpoint:\n *\n * POST {talerBankIntegrationApi}/withdrawal-operation/{wopid}\n */\nexport interface BankWithdrawalOperationPostResponse {\n transfer_done: boolean;\n}\n\nexport type DenominationPubKey = RsaDenominationPubKey | CsDenominationPubKey;\n\nexport interface RsaDenominationPubKey {\n readonly cipher: DenomKeyType.Rsa;\n readonly rsa_public_key: string;\n readonly age_mask: number;\n}\n\nexport interface CsDenominationPubKey {\n readonly cipher: DenomKeyType.ClauseSchnorr;\n readonly age_mask: number;\n readonly cs_public_key: string;\n}\n\nexport namespace DenominationPubKey {\n export function cmp(\n p1: DenominationPubKey,\n p2: DenominationPubKey,\n ): -1 | 0 | 1 {\n if (p1.cipher < p2.cipher) {\n return -1;\n } else if (p1.cipher > p2.cipher) {\n return +1;\n } else if (\n p1.cipher === DenomKeyType.Rsa &&\n p2.cipher === DenomKeyType.Rsa\n ) {\n if ((p1.age_mask ?? 0) < (p2.age_mask ?? 0)) {\n return -1;\n } else if ((p1.age_mask ?? 0) > (p2.age_mask ?? 0)) {\n return 1;\n }\n return strcmp(p1.rsa_public_key, p2.rsa_public_key);\n } else if (\n p1.cipher === DenomKeyType.ClauseSchnorr &&\n p2.cipher === DenomKeyType.ClauseSchnorr\n ) {\n if ((p1.age_mask ?? 0) < (p2.age_mask ?? 0)) {\n return -1;\n } else if ((p1.age_mask ?? 0) > (p2.age_mask ?? 0)) {\n return 1;\n }\n return strcmp(p1.cs_public_key, p2.cs_public_key);\n } else {\n throw Error(\"unsupported cipher\");\n }\n }\n}\n\nexport const codecForRsaDenominationPubKey = () =>\n buildCodecForObject<RsaDenominationPubKey>()\n .property(\"cipher\", codecForConstString(DenomKeyType.Rsa))\n .property(\"rsa_public_key\", codecForString())\n .property(\"age_mask\", codecForNumber())\n .build(\"DenominationPubKey\");\n\nexport const codecForCsDenominationPubKey = () =>\n buildCodecForObject<CsDenominationPubKey>()\n .property(\"cipher\", codecForConstString(DenomKeyType.ClauseSchnorr))\n .property(\"cs_public_key\", codecForString())\n .property(\"age_mask\", codecForNumber())\n .build(\"CsDenominationPubKey\");\n\nexport const codecForDenominationPubKey = () =>\n buildCodecForUnion<DenominationPubKey>()\n .discriminateOn(\"cipher\")\n .alternative(DenomKeyType.Rsa, codecForRsaDenominationPubKey())\n .alternative(DenomKeyType.ClauseSchnorr, codecForCsDenominationPubKey())\n .build(\"DenominationPubKey\");\n\ndeclare const __amount_str: unique symbol;\nexport type AmountString = string & { [__amount_str]: true };\n// export type AmountString = string;\nexport type Base32String = string;\nexport type EddsaSignatureString = string;\nexport type EddsaPublicKeyString = string;\nexport type CoinPublicKeyString = string;\n\nexport const codecForDenomination = (): Codec<ExchangeDenomination> =>\n buildCodecForObject<ExchangeDenomination>()\n .property(\"value\", codecForString())\n .property(\"denom_pub\", codecForDenominationPubKey())\n .property(\"fee_withdraw\", codecForString())\n .property(\"fee_deposit\", codecForString())\n .property(\"fee_refresh\", codecForString())\n .property(\"fee_refund\", codecForString())\n .property(\"stamp_start\", codecForTimestamp)\n .property(\"stamp_expire_withdraw\", codecForTimestamp)\n .property(\"stamp_expire_legal\", codecForTimestamp)\n .property(\"stamp_expire_deposit\", codecForTimestamp)\n .property(\"master_sig\", codecForString())\n .build(\"Denomination\");\n\nexport const codecForAuditorDenomSig = (): Codec<AuditorDenomSig> =>\n buildCodecForObject<AuditorDenomSig>()\n .property(\"denom_pub_h\", codecForString())\n .property(\"auditor_sig\", codecForString())\n .build(\"AuditorDenomSig\");\n\nexport const codecForAuditor = (): Codec<ExchangeAuditor> =>\n buildCodecForObject<ExchangeAuditor>()\n .property(\"auditor_pub\", codecForString())\n .property(\"auditor_url\", codecForString())\n .property(\"denomination_keys\", codecForList(codecForAuditorDenomSig()))\n .build(\"Auditor\");\n\nexport const codecForExchangeHandle = (): Codec<ExchangeHandle> =>\n buildCodecForObject<ExchangeHandle>()\n .property(\"master_pub\", codecForString())\n .property(\"url\", codecForString())\n .build(\"ExchangeHandle\");\n\nexport const codecForAuditorHandle = (): Codec<AuditorHandle> =>\n buildCodecForObject<AuditorHandle>()\n .property(\"name\", codecForString())\n .property(\"auditor_pub\", codecForString())\n .property(\"url\", codecForString())\n .build(\"AuditorHandle\");\n\nexport const codecForLocation = (): Codec<Location> =>\n buildCodecForObject<Location>()\n .property(\"country\", codecOptional(codecForString()))\n .property(\"country_subdivision\", codecOptional(codecForString()))\n .property(\"building_name\", codecOptional(codecForString()))\n .property(\"building_number\", codecOptional(codecForString()))\n .property(\"district\", codecOptional(codecForString()))\n .property(\"street\", codecOptional(codecForString()))\n .property(\"post_code\", codecOptional(codecForString()))\n .property(\"town\", codecOptional(codecForString()))\n .property(\"town_location\", codecOptional(codecForString()))\n .property(\"address_lines\", codecOptional(codecForList(codecForString())))\n .build(\"Location\");\n\nexport const codecForMerchantInfo = (): Codec<MerchantInfo> =>\n buildCodecForObject<MerchantInfo>()\n .property(\"name\", codecForString())\n .property(\"address\", codecOptional(codecForLocation()))\n .property(\"jurisdiction\", codecOptional(codecForLocation()))\n .build(\"MerchantInfo\");\n\nexport const codecForTax = (): Codec<Tax> =>\n buildCodecForObject<Tax>()\n .property(\"name\", codecForString())\n .property(\"tax\", codecForAmountString())\n .build(\"Tax\");\n\nexport const codecForInternationalizedString =\n (): Codec<InternationalizedString> => codecForMap(codecForString());\n\nexport const codecForProduct = (): Codec<Product> =>\n buildCodecForObject<Product>()\n .property(\"product_id\", codecOptional(codecForString()))\n .property(\"description\", codecForString())\n .property(\n \"description_i18n\",\n codecOptional(codecForInternationalizedString()),\n )\n .property(\"quantity\", codecOptional(codecForNumber()))\n .property(\"unit\", codecOptional(codecForString()))\n .property(\"price\", codecOptional(codecForAmountString()))\n .build(\"Tax\");\n\nexport const codecForMerchantContractTerms = (): Codec<MerchantContractTerms> =>\n buildCodecForObject<MerchantContractTerms>()\n .property(\"order_id\", codecForString())\n .property(\"fulfillment_url\", codecOptional(codecForString()))\n .property(\"fulfillment_message\", codecOptional(codecForString()))\n .property(\n \"fulfillment_message_i18n\",\n codecOptional(codecForInternationalizedString()),\n )\n .property(\"merchant_base_url\", codecForString())\n .property(\"h_wire\", codecForString())\n .property(\"auto_refund\", codecOptional(codecForDuration))\n .property(\"wire_method\", codecForString())\n .property(\"summary\", codecForString())\n .property(\"summary_i18n\", codecOptional(codecForInternationalizedString()))\n .property(\"nonce\", codecForString())\n .property(\"amount\", codecForString())\n .property(\"pay_deadline\", codecForTimestamp)\n .property(\"refund_deadline\", codecForTimestamp)\n .property(\"wire_transfer_deadline\", codecForTimestamp)\n .property(\"timestamp\", codecForTimestamp)\n .property(\"delivery_location\", codecOptional(codecForLocation()))\n .property(\"delivery_date\", codecOptional(codecForTimestamp))\n .property(\"max_fee\", codecForString())\n .property(\"max_wire_fee\", codecOptional(codecForString()))\n .property(\"merchant\", codecForMerchantInfo())\n .property(\"merchant_pub\", codecForString())\n .property(\"exchanges\", codecForList(codecForExchangeHandle()))\n .property(\"products\", codecOptional(codecForList(codecForProduct())))\n .property(\"extra\", codecForAny())\n .property(\"minimum_age\", codecOptional(codecForNumber()))\n .build(\"MerchantContractTerms\");\n\nexport const codecForPeerContractTerms = (): Codec<PeerContractTerms> =>\n buildCodecForObject<PeerContractTerms>()\n .property(\"summary\", codecForString())\n .property(\"amount\", codecForAmountString())\n .property(\"purse_expiration\", codecForTimestamp)\n .build(\"PeerContractTerms\");\n\nexport const codecForMerchantRefundPermission =\n (): Codec<MerchantAbortPayRefundDetails> =>\n buildCodecForObject<MerchantAbortPayRefundDetails>()\n .property(\"refund_amount\", codecForAmountString())\n .property(\"refund_fee\", codecForAmountString())\n .property(\"coin_pub\", codecForString())\n .property(\"rtransaction_id\", codecForNumber())\n .property(\"exchange_http_status\", codecForNumber())\n .property(\"exchange_code\", codecOptional(codecForNumber()))\n .property(\"exchange_reply\", codecOptional(codecForAny()))\n .property(\"exchange_sig\", codecOptional(codecForString()))\n .property(\"exchange_pub\", codecOptional(codecForString()))\n .build(\"MerchantRefundPermission\");\n\nexport const codecForMerchantRefundResponse =\n (): Codec<MerchantRefundResponse> =>\n buildCodecForObject<MerchantRefundResponse>()\n .property(\"merchant_pub\", codecForString())\n .property(\"h_contract_terms\", codecForString())\n .property(\"refunds\", codecForList(codecForMerchantRefundPermission()))\n .build(\"MerchantRefundResponse\");\n\nexport const codecForBlindSigWrapperV2 = (): Codec<MerchantBlindSigWrapperV2> =>\n buildCodecForObject<MerchantBlindSigWrapperV2>()\n .property(\"blind_sig\", codecForBlindedDenominationSignature())\n .build(\"MerchantBlindSigWrapperV2\");\n\nexport const codecForMerchantTipResponseV2 = (): Codec<MerchantTipResponseV2> =>\n buildCodecForObject<MerchantTipResponseV2>()\n .property(\"blind_sigs\", codecForList(codecForBlindSigWrapperV2()))\n .build(\"MerchantTipResponseV2\");\n\nexport const codecForRecoup = (): Codec<Recoup> =>\n buildCodecForObject<Recoup>()\n .property(\"h_denom_pub\", codecForString())\n .build(\"Recoup\");\n\nexport const codecForExchangeSigningKey = (): Codec<ExchangeSignKeyJson> =>\n buildCodecForObject<ExchangeSignKeyJson>()\n .property(\"key\", codecForString())\n .property(\"master_sig\", codecForString())\n .property(\"stamp_end\", codecForTimestamp)\n .property(\"stamp_start\", codecForTimestamp)\n .property(\"stamp_expire\", codecForTimestamp)\n .build(\"ExchangeSignKeyJson\");\n\nexport const codecForGlobalFees = (): Codec<GlobalFees> =>\n buildCodecForObject<GlobalFees>()\n .property(\"start_date\", codecForTimestamp)\n .property(\"end_date\", codecForTimestamp)\n .property(\"history_fee\", codecForAmountString())\n .property(\"account_fee\", codecForAmountString())\n .property(\"purse_fee\", codecForAmountString())\n .property(\"history_expiration\", codecForDuration)\n .property(\"purse_account_limit\", codecForNumber())\n .property(\"purse_timeout\", codecForDuration)\n .property(\"master_sig\", codecForString())\n .build(\"GlobalFees\");\n\n// FIXME: Validate properly!\nexport const codecForNgDenominations: Codec<DenomGroup> = codecForAny();\n\nexport const codecForExchangeKeysJson = (): Codec<ExchangeKeysJson> =>\n buildCodecForObject<ExchangeKeysJson>()\n .property(\"base_url\", codecForString())\n .property(\"currency\", codecForString())\n .property(\"master_public_key\", codecForString())\n .property(\"auditors\", codecForList(codecForAuditor()))\n .property(\"list_issue_date\", codecForTimestamp)\n .property(\"recoup\", codecOptional(codecForList(codecForRecoup())))\n .property(\"signkeys\", codecForList(codecForExchangeSigningKey()))\n .property(\"version\", codecForString())\n .property(\"reserve_closing_delay\", codecForDuration)\n .property(\"global_fees\", codecForList(codecForGlobalFees()))\n .property(\"accounts\", codecForList(codecForAccountInfo()))\n .property(\"wire_fees\", codecForMap(codecForList(codecForWireFeesJson())))\n .property(\"denominations\", codecForList(codecForNgDenominations))\n .build(\"ExchangeKeysJson\");\n\nexport const codecForWireFeesJson = (): Codec<WireFeesJson> =>\n buildCodecForObject<WireFeesJson>()\n .property(\"wire_fee\", codecForString())\n .property(\"closing_fee\", codecForString())\n .property(\"sig\", codecForString())\n .property(\"start_date\", codecForTimestamp)\n .property(\"end_date\", codecForTimestamp)\n .build(\"WireFeesJson\");\n\nexport const codecForAccountInfo = (): Codec<AccountInfo> =>\n buildCodecForObject<AccountInfo>()\n .property(\"payto_uri\", codecForString())\n .property(\"master_sig\", codecForString())\n .property(\"conversion_url\", codecOptional(codecForString()))\n .property(\"credit_restrictions\", codecForAny())\n .property(\"debit_restrictions\", codecForAny())\n .build(\"AccountInfo\");\n\nexport const codecForProposal = (): Codec<Proposal> =>\n buildCodecForObject<Proposal>()\n .property(\"contract_terms\", codecForAny())\n .property(\"sig\", codecForString())\n .build(\"Proposal\");\n\nexport const codecForCheckPaymentResponse = (): Codec<CheckPaymentResponse> =>\n buildCodecForObject<CheckPaymentResponse>()\n .property(\"order_status\", codecForString())\n .property(\"refunded\", codecOptional(codecForBoolean()))\n .property(\"refunded_amount\", codecOptional(codecForString()))\n .property(\"contract_terms\", codecOptional(codecForAny()))\n .property(\"taler_pay_uri\", codecOptional(codecForString()))\n .property(\"contract_url\", codecOptional(codecForString()))\n .build(\"CheckPaymentResponse\");\n\nexport const codecForWithdrawOperationStatusResponse =\n (): Codec<WithdrawOperationStatusResponse> =>\n buildCodecForObject<WithdrawOperationStatusResponse>()\n .property(\"selection_done\", codecForBoolean())\n .property(\"transfer_done\", codecForBoolean())\n .property(\"aborted\", codecForBoolean())\n .property(\"amount\", codecForString())\n .property(\"sender_wire\", codecOptional(codecForString()))\n .property(\"suggested_exchange\", codecOptional(codecForString()))\n .property(\"confirm_transfer_url\", codecOptional(codecForString()))\n .property(\"wire_types\", codecForList(codecForString()))\n .build(\"WithdrawOperationStatusResponse\");\n\nexport const codecForRewardPickupGetResponse = (): Codec<RewardPickupGetResponse> =>\n buildCodecForObject<RewardPickupGetResponse>()\n .property(\"reward_amount\", codecForString())\n .property(\"exchange_url\", codecForString())\n .property(\"next_url\", codecOptional(codecForString()))\n .property(\"expiration\", codecForTimestamp)\n .build(\"TipPickupGetResponse\");\n\nexport const codecForRecoupConfirmation = (): Codec<RecoupConfirmation> =>\n buildCodecForObject<RecoupConfirmation>()\n .property(\"reserve_pub\", codecOptional(codecForString()))\n .property(\"old_coin_pub\", codecOptional(codecForString()))\n .build(\"RecoupConfirmation\");\n\nexport const codecForWithdrawResponse = (): Codec<ExchangeWithdrawResponse> =>\n buildCodecForObject<ExchangeWithdrawResponse>()\n .property(\"ev_sig\", codecForBlindedDenominationSignature())\n .build(\"WithdrawResponse\");\n\nexport const codecForExchangeWithdrawBatchResponse =\n (): Codec<ExchangeWithdrawBatchResponse> =>\n buildCodecForObject<ExchangeWithdrawBatchResponse>()\n .property(\"ev_sigs\", codecForList(codecForWithdrawResponse()))\n .build(\"WithdrawBatchResponse\");\n\nexport const codecForMerchantPayResponse = (): Codec<MerchantPayResponse> =>\n buildCodecForObject<MerchantPayResponse>()\n .property(\"sig\", codecForString())\n .property(\"pos_confirmation\", codecOptional(codecForString()))\n .build(\"MerchantPayResponse\");\n\nexport const codecForExchangeMeltResponse = (): Codec<ExchangeMeltResponse> =>\n buildCodecForObject<ExchangeMeltResponse>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"noreveal_index\", codecForNumber())\n .property(\"refresh_base_url\", codecOptional(codecForString()))\n .build(\"ExchangeMeltResponse\");\n\nexport const codecForExchangeRevealItem = (): Codec<ExchangeRevealItem> =>\n buildCodecForObject<ExchangeRevealItem>()\n .property(\"ev_sig\", codecForBlindedDenominationSignature())\n .build(\"ExchangeRevealItem\");\n\nexport const codecForExchangeRevealResponse =\n (): Codec<ExchangeRevealResponse> =>\n buildCodecForObject<ExchangeRevealResponse>()\n .property(\"ev_sigs\", codecForList(codecForExchangeRevealItem()))\n .build(\"ExchangeRevealResponse\");\n\nexport const codecForMerchantCoinRefundSuccessStatus =\n (): Codec<MerchantCoinRefundSuccessStatus> =>\n buildCodecForObject<MerchantCoinRefundSuccessStatus>()\n .property(\"type\", codecForConstString(\"success\"))\n .property(\"coin_pub\", codecForString())\n .property(\"exchange_status\", codecForConstNumber(200))\n .property(\"exchange_sig\", codecForString())\n .property(\"rtransaction_id\", codecForNumber())\n .property(\"refund_amount\", codecForAmountString())\n .property(\"exchange_pub\", codecForString())\n .property(\"execution_time\", codecForTimestamp)\n .build(\"MerchantCoinRefundSuccessStatus\");\n\nexport const codecForMerchantCoinRefundFailureStatus =\n (): Codec<MerchantCoinRefundFailureStatus> =>\n buildCodecForObject<MerchantCoinRefundFailureStatus>()\n .property(\"type\", codecForConstString(\"failure\"))\n .property(\"coin_pub\", codecForString())\n .property(\"exchange_status\", codecForNumber())\n .property(\"rtransaction_id\", codecForNumber())\n .property(\"refund_amount\", codecForAmountString())\n .property(\"exchange_code\", codecOptional(codecForNumber()))\n .property(\"exchange_reply\", codecOptional(codecForAny()))\n .property(\"execution_time\", codecForTimestamp)\n .build(\"MerchantCoinRefundFailureStatus\");\n\nexport const codecForMerchantCoinRefundStatus =\n (): Codec<MerchantCoinRefundStatus> =>\n buildCodecForUnion<MerchantCoinRefundStatus>()\n .discriminateOn(\"type\")\n .alternative(\"success\", codecForMerchantCoinRefundSuccessStatus())\n .alternative(\"failure\", codecForMerchantCoinRefundFailureStatus())\n .build(\"MerchantCoinRefundStatus\");\n\nexport const codecForMerchantOrderStatusPaid =\n (): Codec<MerchantOrderStatusPaid> =>\n buildCodecForObject<MerchantOrderStatusPaid>()\n .property(\"refund_amount\", codecForAmountString())\n .property(\"refund_taken\", codecForAmountString())\n .property(\"refund_pending\", codecForBoolean())\n .property(\"refunded\", codecForBoolean())\n .build(\"MerchantOrderStatusPaid\");\n\nexport const codecForMerchantOrderRefundPickupResponse =\n (): Codec<MerchantOrderRefundResponse> =>\n buildCodecForObject<MerchantOrderRefundResponse>()\n .property(\"merchant_pub\", codecForString())\n .property(\"refund_amount\", codecForAmountString())\n .property(\"refunds\", codecForList(codecForMerchantCoinRefundStatus()))\n .build(\"MerchantOrderRefundPickupResponse\");\n\nexport const codecForMerchantOrderStatusUnpaid =\n (): Codec<MerchantOrderStatusUnpaid> =>\n buildCodecForObject<MerchantOrderStatusUnpaid>()\n .property(\"taler_pay_uri\", codecForString())\n .property(\"already_paid_order_id\", codecOptional(codecForString()))\n .build(\"MerchantOrderStatusUnpaid\");\n\nexport interface AbortRequest {\n // hash of the order's contract terms (this is used to authenticate the\n // wallet/customer in case $ORDER_ID is guessable).\n h_contract: string;\n\n // List of coins the wallet would like to see refunds for.\n // (Should be limited to the coins for which the original\n // payment succeeded, as far as the wallet knows.)\n coins: AbortingCoin[];\n}\n\nexport interface AbortingCoin {\n // Public key of a coin for which the wallet is requesting an abort-related refund.\n coin_pub: EddsaPublicKeyString;\n\n // The amount to be refunded (matches the original contribution)\n contribution: AmountString;\n\n // URL of the exchange this coin was withdrawn from.\n exchange_url: string;\n}\n\nexport interface AbortResponse {\n // List of refund responses about the coins that the wallet\n // requested an abort for. In the same order as the 'coins'\n // from the original request.\n // The rtransaction_id is implied to be 0.\n refunds: MerchantAbortPayRefundStatus[];\n}\n\nexport const codecForMerchantAbortPayRefundSuccessStatus =\n (): Codec<MerchantAbortPayRefundSuccessStatus> =>\n buildCodecForObject<MerchantAbortPayRefundSuccessStatus>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"exchange_status\", codecForConstNumber(200))\n .property(\"type\", codecForConstString(\"success\"))\n .build(\"MerchantAbortPayRefundSuccessStatus\");\n\nexport const codecForMerchantAbortPayRefundFailureStatus =\n (): Codec<MerchantAbortPayRefundFailureStatus> =>\n buildCodecForObject<MerchantAbortPayRefundFailureStatus>()\n .property(\"exchange_code\", codecForNumber())\n .property(\"exchange_reply\", codecForAny())\n .property(\"exchange_status\", codecForNumber())\n .property(\"type\", codecForConstString(\"failure\"))\n .build(\"MerchantAbortPayRefundFailureStatus\");\n\nexport const codecForMerchantAbortPayRefundStatus =\n (): Codec<MerchantAbortPayRefundStatus> =>\n buildCodecForUnion<MerchantAbortPayRefundStatus>()\n .discriminateOn(\"type\")\n .alternative(\"success\", codecForMerchantAbortPayRefundSuccessStatus())\n .alternative(\"failure\", codecForMerchantAbortPayRefundFailureStatus())\n .build(\"MerchantAbortPayRefundStatus\");\n\nexport const codecForAbortResponse = (): Codec<AbortResponse> =>\n buildCodecForObject<AbortResponse>()\n .property(\"refunds\", codecForList(codecForMerchantAbortPayRefundStatus()))\n .build(\"AbortResponse\");\n\nexport type MerchantAbortPayRefundStatus =\n | MerchantAbortPayRefundSuccessStatus\n | MerchantAbortPayRefundFailureStatus;\n\n// Details about why a refund failed.\nexport interface MerchantAbortPayRefundFailureStatus {\n // Used as tag for the sum type RefundStatus sum type.\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: number;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: number;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: unknown;\n}\n\n// Additional details needed to verify the refund confirmation signature\n// (h_contract_terms and merchant_pub) are already known\n// to the wallet and thus not included.\nexport interface MerchantAbortPayRefundSuccessStatus {\n // Used as tag for the sum type MerchantCoinRefundStatus sum type.\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // the EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund\n exchange_sig: string;\n\n // public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: string;\n}\n\nexport interface TalerConfigResponse {\n name: string;\n version: string;\n currency?: string;\n}\n\nexport const codecForTalerConfigResponse = (): Codec<TalerConfigResponse> =>\n buildCodecForObject<TalerConfigResponse>()\n .property(\"name\", codecForString())\n .property(\"version\", codecForString())\n .property(\"currency\", codecOptional(codecForString()))\n .build(\"TalerConfigResponse\");\n\nexport interface FutureKeysResponse {\n future_denoms: any[];\n\n future_signkeys: any[];\n\n master_pub: string;\n\n denom_secmod_public_key: string;\n\n // Public key of the signkey security module.\n signkey_secmod_public_key: string;\n}\n\nexport const codecForKeysManagementResponse = (): Codec<FutureKeysResponse> =>\n buildCodecForObject<FutureKeysResponse>()\n .property(\"master_pub\", codecForString())\n .property(\"future_signkeys\", codecForList(codecForAny()))\n .property(\"future_denoms\", codecForList(codecForAny()))\n .property(\"denom_secmod_public_key\", codecForAny())\n .property(\"signkey_secmod_public_key\", codecForAny())\n .build(\"FutureKeysResponse\");\n\nexport interface MerchantConfigResponse {\n currency: string;\n name: string;\n version: string;\n}\n\nexport const codecForMerchantConfigResponse =\n (): Codec<MerchantConfigResponse> =>\n buildCodecForObject<MerchantConfigResponse>()\n .property(\"currency\", codecForString())\n .property(\"name\", codecForString())\n .property(\"version\", codecForString())\n .build(\"MerchantConfigResponse\");\n\nexport enum ExchangeProtocolVersion {\n /**\n * Current version supported by the wallet.\n */\n V12 = 12,\n}\n\nexport enum MerchantProtocolVersion {\n /**\n * Current version supported by the wallet.\n */\n V3 = 3,\n}\n\nexport type CoinEnvelope = CoinEnvelopeRsa | CoinEnvelopeCs;\n\nexport interface CoinEnvelopeRsa {\n cipher: DenomKeyType.Rsa;\n rsa_blinded_planchet: string;\n}\n\nexport interface CoinEnvelopeCs {\n cipher: DenomKeyType.ClauseSchnorr;\n // FIXME: add remaining fields\n}\n\nexport type HashCodeString = string;\n\nexport interface ExchangeWithdrawRequest {\n denom_pub_hash: HashCodeString;\n reserve_sig: EddsaSignatureString;\n coin_ev: CoinEnvelope;\n}\n\nexport interface ExchangeBatchWithdrawRequest {\n planchets: ExchangeWithdrawRequest[];\n}\n\nexport interface ExchangeRefreshRevealRequest {\n new_denoms_h: HashCodeString[];\n coin_evs: CoinEnvelope[];\n /**\n * kappa - 1 transfer private keys (ephemeral ECDHE keys).\n */\n transfer_privs: string[];\n\n transfer_pub: EddsaPublicKeyString;\n\n link_sigs: EddsaSignatureString[];\n\n /**\n * Iff the corresponding denomination has support for age restriction,\n * the client MUST provide the original age commitment, i.e. the vector\n * of public keys.\n */\n old_age_commitment?: Edx25519PublicKeyEnc[];\n}\n\ninterface DepositConfirmationSignature {\n // The EdDSA signature of `TALER_DepositConfirmationPS` using a current\n // `signing key of the exchange <sign-key-priv>` affirming the successful\n // deposit and that the exchange will transfer the funds after the refund\n // deadline, or as soon as possible if the refund deadline is zero.\n exchange_sig: EddsaSignatureString;\n}\n\nexport interface BatchDepositSuccess {\n // Optional base URL of the exchange for looking up wire transfers\n // associated with this transaction. If not given,\n // the base URL is the same as the one used for this request.\n // Can be used if the base URL for ``/transactions/`` differs from that\n // for ``/coins/``, i.e. for load balancing. Clients SHOULD\n // respect the ``transaction_base_url`` if provided. Any HTTP server\n // belonging to an exchange MUST generate a 307 or 308 redirection\n // to the correct base URL should a client uses the wrong base\n // URL, or if the base URL has changed since the deposit.\n transaction_base_url?: string;\n\n // Timestamp when the deposit was received by the exchange.\n exchange_timestamp: TalerProtocolTimestamp;\n\n // `Public EdDSA key of the exchange <sign-key-pub>` that was used to\n // generate the signature.\n // Should match one of the exchange's signing keys from ``/keys``. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n\n // Array of deposit confirmation signatures from the exchange\n // Entries must be in the same order the coins were given\n // in the batch deposit request.\n exchange_sig: EddsaSignatureString;\n}\n\nexport const codecForBatchDepositSuccess = (): Codec<BatchDepositSuccess> =>\n buildCodecForObject<BatchDepositSuccess>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"exchange_timestamp\", codecForTimestamp)\n .property(\"transaction_base_url\", codecOptional(codecForString()))\n .build(\"BatchDepositSuccess\");\n\nexport interface TrackTransactionWired {\n // Raw wire transfer identifier of the deposit.\n wtid: Base32String;\n\n // When was the wire transfer given to the bank.\n execution_time: TalerProtocolTimestamp;\n\n // The contribution of this coin to the total (without fees)\n coin_contribution: AmountString;\n\n // Binary-only Signature_ with purpose TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE\n // over a TALER_ConfirmWirePS\n // whereby the exchange affirms the successful wire transfer.\n exchange_sig: EddsaSignatureString;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. Again given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n}\n\nexport const codecForTackTransactionWired = (): Codec<TrackTransactionWired> =>\n buildCodecForObject<TrackTransactionWired>()\n .property(\"wtid\", codecForString())\n .property(\"execution_time\", codecForTimestamp)\n .property(\"coin_contribution\", codecForAmountString())\n .property(\"exchange_sig\", codecForString())\n .property(\"exchange_pub\", codecForString())\n .build(\"TackTransactionWired\");\n\ninterface TrackTransactionAccepted {\n // Legitimization target that the merchant should\n // use to check for its KYC status using\n // the /kyc-check/$REQUIREMENT_ROW/... endpoint.\n // Optional, not present if the deposit has not\n // yet been aggregated to the point that a KYC\n // need has been evaluated.\n requirement_row?: number;\n\n // True if the KYC check for the merchant has been\n // satisfied. False does not mean that KYC\n // is strictly needed, unless also a\n // legitimization_uuid is provided.\n kyc_ok: boolean;\n\n // Time by which the exchange currently thinks the deposit will be executed.\n // Actual execution may be later if the KYC check is not satisfied by then.\n execution_time: TalerProtocolTimestamp;\n}\n\nexport const codecForTackTransactionAccepted =\n (): Codec<TrackTransactionAccepted> =>\n buildCodecForObject<TrackTransactionAccepted>()\n .property(\"requirement_row\", codecOptional(codecForNumber()))\n .property(\"kyc_ok\", codecForBoolean())\n .property(\"execution_time\", codecForTimestamp)\n .build(\"TackTransactionAccepted\");\n\nexport type TrackTransaction =\n | ({ type: \"accepted\" } & TrackTransactionAccepted)\n | ({ type: \"wired\" } & TrackTransactionWired);\n\nexport interface PurseDeposit {\n /**\n * Amount to be deposited, can be a fraction of the\n * coin's total value.\n */\n amount: AmountString;\n\n /**\n * Hash of denomination RSA key with which the coin is signed.\n */\n denom_pub_hash: HashCodeString;\n\n /**\n * Exchange's unblinded RSA signature of the coin.\n */\n ub_sig: UnblindedSignature;\n\n /**\n * Age commitment for the coin, if the denomination is age-restricted.\n */\n age_commitment?: string[];\n\n /**\n * Attestation for the minimum age, if the denomination is age-restricted.\n */\n attest?: string;\n\n /**\n * Signature over TALER_PurseDepositSignaturePS\n * of purpose TALER_SIGNATURE_WALLET_PURSE_DEPOSIT\n * made by the customer with the\n * coin's private key.\n */\n coin_sig: EddsaSignatureString;\n\n /**\n * Public key of the coin being deposited into the purse.\n */\n coin_pub: EddsaPublicKeyString;\n}\n\nexport interface ExchangePurseMergeRequest {\n // payto://-URI of the account the purse is to be merged into.\n // Must be of the form: 'payto://taler/$EXCHANGE_URL/$RESERVE_PUB'.\n payto_uri: string;\n\n // EdDSA signature of the account/reserve affirming the merge\n // over a TALER_AccountMergeSignaturePS.\n // Must be of purpose TALER_SIGNATURE_ACCOUNT_MERGE\n reserve_sig: EddsaSignatureString;\n\n // EdDSA signature of the purse private key affirming the merge\n // over a TALER_PurseMergeSignaturePS.\n // Must be of purpose TALER_SIGNATURE_PURSE_MERGE.\n merge_sig: EddsaSignatureString;\n\n // Client-side timestamp of when the merge request was made.\n merge_timestamp: TalerProtocolTimestamp;\n}\n\nexport interface ExchangeGetContractResponse {\n purse_pub: string;\n econtract_sig: string;\n econtract: string;\n}\n\nexport const codecForExchangeGetContractResponse =\n (): Codec<ExchangeGetContractResponse> =>\n buildCodecForObject<ExchangeGetContractResponse>()\n .property(\"purse_pub\", codecForString())\n .property(\"econtract_sig\", codecForString())\n .property(\"econtract\", codecForString())\n .build(\"ExchangeGetContractResponse\");\n\n/**\n * Contract terms between two wallets (as opposed to a merchant and wallet).\n */\nexport interface PeerContractTerms {\n amount: AmountString;\n summary: string;\n purse_expiration: TalerProtocolTimestamp;\n}\n\nexport interface EncryptedContract {\n // Encrypted contract.\n econtract: string;\n\n // Signature over the (encrypted) contract.\n econtract_sig: string;\n\n // Ephemeral public key for the DH operation to decrypt the encrypted contract.\n contract_pub: string;\n}\n\n/**\n * Payload for /reserves/{reserve_pub}/purse\n * endpoint of the exchange.\n */\nexport interface ExchangeReservePurseRequest {\n /**\n * Minimum amount that must be credited to the reserve, that is\n * the total value of the purse minus the deposit fees.\n * If the deposit fees are lower, the contribution to the\n * reserve can be higher!\n */\n purse_value: AmountString;\n\n // Minimum age required for all coins deposited into the purse.\n min_age: number;\n\n // Purse fee the reserve owner is willing to pay\n // for the purse creation. Optional, if not present\n // the purse is to be created from the purse quota\n // of the reserve.\n purse_fee: AmountString;\n\n // Optional encrypted contract, in case the buyer is\n // proposing the contract and thus establishing the\n // purse with the payment.\n econtract?: EncryptedContract;\n\n // EdDSA public key used to approve merges of this purse.\n merge_pub: EddsaPublicKeyString;\n\n // EdDSA signature of the purse private key affirming the merge\n // over a TALER_PurseMergeSignaturePS.\n // Must be of purpose TALER_SIGNATURE_PURSE_MERGE.\n merge_sig: EddsaSignatureString;\n\n // EdDSA signature of the account/reserve affirming the merge.\n // Must be of purpose TALER_SIGNATURE_WALLET_ACCOUNT_MERGE\n reserve_sig: EddsaSignatureString;\n\n // Purse public key.\n purse_pub: EddsaPublicKeyString;\n\n // EdDSA signature of the purse over\n // TALER_PurseRequestSignaturePS of\n // purpose TALER_SIGNATURE_PURSE_REQUEST\n // confirming that the\n // above details hold for this purse.\n purse_sig: EddsaSignatureString;\n\n // SHA-512 hash of the contact of the purse.\n h_contract_terms: HashCodeString;\n\n // Client-side timestamp of when the merge request was made.\n merge_timestamp: TalerProtocolTimestamp;\n\n // Indicative time by which the purse should expire\n // if it has not been paid.\n purse_expiration: TalerProtocolTimestamp;\n}\n\nexport interface ExchangePurseDeposits {\n // Array of coins to deposit into the purse.\n deposits: PurseDeposit[];\n}\n\n/**\n * @deprecated batch deposit should be used.\n */\nexport interface ExchangeDepositRequest {\n // Amount to be deposited, can be a fraction of the\n // coin's total value.\n contribution: AmountString;\n\n // The merchant's account details.\n // In case of an auction policy, it refers to the seller.\n merchant_payto_uri: string;\n\n // The salt is used to hide the payto_uri from customers\n // when computing the h_wire of the merchant.\n wire_salt: string;\n\n // SHA-512 hash of the contract of the merchant with the customer. Further\n // details are never disclosed to the exchange.\n h_contract_terms: HashCodeString;\n\n // Hash of denomination RSA key with which the coin is signed.\n denom_pub_hash: HashCodeString;\n\n // Exchange's unblinded RSA signature of the coin.\n ub_sig: UnblindedSignature;\n\n // Timestamp when the contract was finalized.\n timestamp: TalerProtocolTimestamp;\n\n // Indicative time by which the exchange undertakes to transfer the funds to\n // the merchant, in case of successful payment. A wire transfer deadline of 'never'\n // is not allowed.\n wire_transfer_deadline: TalerProtocolTimestamp;\n\n // EdDSA public key of the merchant, so that the client can identify the\n // merchant for refund requests.\n //\n // THIS FIELD WILL BE DEPRECATED, once the refund mechanism becomes a\n // policy via extension.\n merchant_pub: EddsaPublicKeyString;\n\n // Date until which the merchant can issue a refund to the customer via the\n // exchange, to be omitted if refunds are not allowed.\n //\n // THIS FIELD WILL BE DEPRECATED, once the refund mechanism becomes a\n // policy via extension.\n refund_deadline?: TalerProtocolTimestamp;\n\n // CAVEAT: THIS IS WORK IN PROGRESS\n // (Optional) policy for the deposit.\n // This might be a refund, auction or escrow policy.\n //\n // Note that support for policies is an optional feature of the exchange.\n // Optional features are so called \"extensions\" in Taler. The exchange\n // provides the list of supported extensions, including policies, in the\n // ExtensionsManifestsResponse response to the /keys endpoint.\n policy?: any;\n\n // Signature over TALER_DepositRequestPS, made by the customer with the\n // coin's private key.\n coin_sig: EddsaSignatureString;\n\n h_age_commitment?: string;\n}\n\nexport type WireSalt = string;\n\nexport interface ExchangeBatchDepositRequest {\n // The merchant's account details.\n merchant_payto_uri: string;\n\n // The salt is used to hide the ``payto_uri`` from customers\n // when computing the ``h_wire`` of the merchant.\n wire_salt: WireSalt;\n\n // SHA-512 hash of the contract of the merchant with the customer. Further\n // details are never disclosed to the exchange.\n h_contract_terms: HashCodeString;\n\n // The list of coins that are going to be deposited with this Request.\n coins: BatchDepositRequestCoin[];\n\n // Timestamp when the contract was finalized.\n timestamp: TalerProtocolTimestamp;\n\n // Indicative time by which the exchange undertakes to transfer the funds to\n // the merchant, in case of successful payment. A wire transfer deadline of 'never'\n // is not allowed.\n wire_transfer_deadline: TalerProtocolTimestamp;\n\n // EdDSA `public key of the merchant <merchant-pub>`, so that the client can identify the\n // merchant for refund requests.\n merchant_pub: EddsaPublicKeyString;\n\n // Date until which the merchant can issue a refund to the customer via the\n // exchange, to be omitted if refunds are not allowed.\n //\n // THIS FIELD WILL BE DEPRICATED, once the refund mechanism becomes a\n // policy via extension.\n refund_deadline?: TalerProtocolTimestamp;\n\n // CAVEAT: THIS IS WORK IN PROGRESS\n // (Optional) policy for the batch-deposit.\n // This might be a refund, auction or escrow policy.\n policy?: any;\n}\n\nexport interface BatchDepositRequestCoin {\n // EdDSA public key of the coin being deposited.\n coin_pub: EddsaPublicKeyString;\n\n // Hash of denomination RSA key with which the coin is signed.\n denom_pub_hash: HashCodeString;\n\n // Exchange's unblinded RSA signature of the coin.\n ub_sig: UnblindedSignature;\n\n // Amount to be deposited, can be a fraction of the\n // coin's total value.\n contribution: Amounts;\n\n // Signature over `TALER_DepositRequestPS`, made by the customer with the\n // `coin's private key <coin-priv>`.\n coin_sig: EddsaSignatureString;\n\n h_age_commitment?: string;\n}\n\nexport interface WalletKycUuid {\n // UUID that the wallet should use when initiating\n // the KYC check.\n requirement_row: number;\n\n // Hash of the payto:// account URI for the wallet.\n h_payto: string;\n}\n\nexport const codecForWalletKycUuid = (): Codec<WalletKycUuid> =>\n buildCodecForObject<WalletKycUuid>()\n .property(\"requirement_row\", codecForNumber())\n .property(\"h_payto\", codecForString())\n .build(\"WalletKycUuid\");\n\nexport interface MerchantUsingTemplateDetails {\n summary?: string;\n amount?: AmountString;\n}\n\nexport interface ExchangeRefundRequest {\n // Amount to be refunded, can be a fraction of the\n // coin's total deposit value (including deposit fee);\n // must be larger than the refund fee.\n refund_amount: AmountString;\n\n // SHA-512 hash of the contact of the merchant with the customer.\n h_contract_terms: HashCodeString;\n\n // 64-bit transaction id of the refund transaction between merchant and customer.\n rtransaction_id: number;\n\n // EdDSA public key of the merchant.\n merchant_pub: EddsaPublicKeyString;\n\n // EdDSA signature of the merchant over a\n // TALER_RefundRequestPS with purpose\n // TALER_SIGNATURE_MERCHANT_REFUND\n // affirming the refund.\n merchant_sig: EddsaPublicKeyString;\n}\n\nexport interface ExchangeRefundSuccessResponse {\n // The EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND over\n // a TALER_RecoupRefreshConfirmationPS\n // using a current signing key of the\n // exchange affirming the successful refund.\n exchange_sig: EddsaSignatureString;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n}\n\nexport const codecForExchangeRefundSuccessResponse =\n (): Codec<ExchangeRefundSuccessResponse> =>\n buildCodecForObject<ExchangeRefundSuccessResponse>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .build(\"ExchangeRefundSuccessResponse\");\n\nexport type AccountRestriction =\n | RegexAccountRestriction\n | DenyAllAccountRestriction;\n\nexport interface DenyAllAccountRestriction {\n type: \"deny\";\n}\n\n// Accounts interacting with this type of account\n// restriction must have a payto://-URI matching\n// the given regex.\nexport interface RegexAccountRestriction {\n type: \"regex\";\n\n // Regular expression that the payto://-URI of the\n // partner account must follow. The regular expression\n // should follow posix-egrep, but without support for character\n // classes, GNU extensions, back-references or intervals. See\n // https://www.gnu.org/software/findutils/manual/html_node/find_html/posix_002degrep-regular-expression-syntax.html\n // for a description of the posix-egrep syntax. Applications\n // may support regexes with additional features, but exchanges\n // must not use such regexes.\n payto_regex: string;\n\n // Hint for a human to understand the restriction\n // (that is hopefully easier to comprehend than the regex itself).\n human_hint: string;\n\n // Map from IETF BCP 47 language tags to localized\n // human hints.\n human_hint_i18n?: InternationalizedString;\n}\n\nexport interface WireAccount {\n // payto:// URI identifying the account and wire method\n payto_uri: string;\n\n // URI to convert amounts from or to the currency used by\n // this wire account of the exchange. Missing if no\n // conversion is applicable.\n conversion_url?: string;\n\n // Restrictions that apply to bank accounts that would send\n // funds to the exchange (crediting this exchange bank account).\n // Optional, empty array for unrestricted.\n credit_restrictions: AccountRestriction[];\n\n // Restrictions that apply to bank accounts that would receive\n // funds from the exchange (debiting this exchange bank account).\n // Optional, empty array for unrestricted.\n debit_restrictions: AccountRestriction[];\n\n // Signature using the exchange's offline key over\n // a TALER_MasterWireDetailsPS\n // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.\n master_sig: EddsaSignatureString;\n}\n\nexport const codecForWireAccount = (): Codec<WireAccount> =>\n buildCodecForObject<WireAccount>()\n .property(\"conversion_url\", codecOptional(codecForString()))\n .property(\"credit_restrictions\", codecForList(codecForAny()))\n .property(\"debit_restrictions\", codecForList(codecForAny()))\n .property(\"master_sig\", codecForString())\n .property(\"payto_uri\", codecForString())\n .build(\"WireAccount\");\n", "/*\n This file is part of TALER\n (C) 2019 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n\n/**\n * Check if we are running under nodejs.\n */\n\nconst isNode =\n typeof process !== \"undefined\" &&\n typeof process.release !== \"undefined\" &&\n process.release.name === \"node\";\n\nexport enum LogLevel {\n Trace = \"trace\",\n Message = \"message\",\n Info = \"info\",\n Warn = \"warn\",\n Error = \"error\",\n None = \"none\",\n}\n\nlet globalLogLevel = LogLevel.Info;\nconst byTagLogLevel: Record<string, LogLevel> = {};\n\nlet nativeLogging: boolean = false;\n\nexport function getGlobalLogLevel(): string {\n return globalLogLevel;\n}\n\nexport function setGlobalLogLevelFromString(logLevelStr: string): void {\n globalLogLevel = getLevelForString(logLevelStr);\n}\n\nexport function setLogLevelFromString(tag: string, logLevelStr: string): void {\n byTagLogLevel[tag] = getLevelForString(logLevelStr);\n}\n\nexport function enableNativeLogging() {\n nativeLogging = true;\n}\n\nfunction getLevelForString(logLevelStr: string): LogLevel {\n switch (logLevelStr.toLowerCase()) {\n case \"trace\":\n return LogLevel.Trace;\n case \"info\":\n return LogLevel.Info;\n case \"warn\":\n case \"warning\":\n return LogLevel.Warn;\n case \"error\":\n return LogLevel.Error;\n case \"none\":\n return LogLevel.None;\n default:\n if (isNode) {\n process.stderr.write(`Invalid log level, defaulting to WARNING\\n`);\n } else {\n console.warn(`Invalid log level, defaulting to WARNING`);\n }\n return LogLevel.Warn;\n }\n}\n\nfunction writeNativeLog(\n message: any,\n tag: string,\n level: number,\n args: any[],\n): void {\n const logFn = (globalThis as any).__nativeLog;\n if (logFn) {\n let m: string;\n if (args.length == 0) {\n m = message;\n } else {\n m = message + \" \" + args.toString();\n }\n logFn(level, tag, message);\n }\n}\n\nfunction writeNodeLog(\n message: any,\n tag: string,\n level: string,\n args: any[],\n): void {\n try {\n let msg = `${new Date().toISOString()} ${tag} ${level} ${message}`;\n if (args.length != 0) {\n msg += ` ${JSON.stringify(args, undefined, 2)}\\n`;\n } else {\n msg += `\\n`;\n }\n process.stderr.write(msg);\n } catch (e) {\n // This can happen when we're trying to log something that doesn't want to be\n // converted to a string.\n let msg = `${new Date().toISOString()} (logger) FATAL `;\n if (e instanceof Error) {\n msg += `failed to write log: ${e.message}\\n`;\n } else {\n msg += \"failed to write log\\n\";\n }\n process.stderr.write(msg);\n }\n}\n\n/**\n * Logger that writes to stderr when running under node,\n * and uses the corresponding console.* method to log in the browser.\n */\nexport class Logger {\n constructor(private tag: string) {}\n\n shouldLogTrace(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n return true;\n case LogLevel.Message:\n case LogLevel.Info:\n case LogLevel.Warn:\n case LogLevel.Error:\n case LogLevel.None:\n return false;\n }\n }\n\n shouldLogInfo(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n case LogLevel.Message:\n case LogLevel.Info:\n return true;\n case LogLevel.Warn:\n case LogLevel.Error:\n case LogLevel.None:\n return false;\n }\n }\n\n shouldLogWarn(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n case LogLevel.Message:\n case LogLevel.Info:\n case LogLevel.Warn:\n return true;\n case LogLevel.Error:\n case LogLevel.None:\n return false;\n }\n }\n\n shouldLogError(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n case LogLevel.Message:\n case LogLevel.Info:\n case LogLevel.Warn:\n case LogLevel.Error:\n return true;\n case LogLevel.None:\n return false;\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (!this.shouldLogInfo()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 2, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"INFO\", args);\n } else {\n console.info(\n `${new Date().toISOString()} ${this.tag} INFO ` + message,\n ...args,\n );\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (!this.shouldLogWarn()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 3, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"WARN\", args);\n } else {\n console.warn(\n `${new Date().toISOString()} ${this.tag} INFO ` + message,\n ...args,\n );\n }\n }\n\n error(message: string, ...args: any[]): void {\n if (!this.shouldLogError()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 4, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"ERROR\", args);\n } else {\n console.info(\n `${new Date().toISOString()} ${this.tag} ERROR ` + message,\n ...args,\n );\n }\n }\n\n trace(message: string, ...args: any[]): void {\n if (!this.shouldLogTrace()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 1, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"TRACE\", args);\n } else {\n console.info(\n `${new Date().toISOString()} ${this.tag} TRACE ` + message,\n ...args,\n );\n }\n }\n\n reportBreak(): void {\n if (!this.shouldLogError()) {\n return;\n }\n const location = new Error(\"programming error\");\n this.error(`assertion failed: ${location.stack}`);\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type declarations for the exchange's reserve transaction information.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\n/**\n * Imports.\n */\nimport { codecForAmountString } from \"./amounts.js\";\nimport {\n codecForString,\n buildCodecForObject,\n codecForConstString,\n buildCodecForUnion,\n Codec,\n codecForNumber,\n} from \"./codec.js\";\nimport {\n AmountString,\n Base32String,\n EddsaSignatureString,\n EddsaPublicKeyString,\n CoinPublicKeyString,\n} from \"./taler-types.js\";\nimport {\n AbsoluteTime,\n codecForTimestamp,\n TalerProtocolTimestamp,\n} from \"./time.js\";\n\nexport enum ReserveTransactionType {\n Withdraw = \"WITHDRAW\",\n Credit = \"CREDIT\",\n Recoup = \"RECOUP\",\n Closing = \"CLOSING\",\n}\n\nexport interface ReserveWithdrawTransaction {\n type: ReserveTransactionType.Withdraw;\n\n /**\n * Amount withdrawn.\n */\n amount: AmountString;\n\n /**\n * Hash of the denomination public key of the coin.\n */\n h_denom_pub: Base32String;\n\n /**\n * Hash of the blinded coin to be signed\n */\n h_coin_envelope: Base32String;\n\n /**\n * Signature of 'TALER_WithdrawRequestPS' created with the reserves's\n * private key.\n */\n reserve_sig: EddsaSignatureString;\n\n /**\n * Fee that is charged for withdraw.\n */\n withdraw_fee: AmountString;\n}\n\nexport interface ReserveCreditTransaction {\n type: ReserveTransactionType.Credit;\n\n /**\n * Amount withdrawn.\n */\n amount: AmountString;\n\n /**\n * Sender account payto://-URL\n */\n sender_account_url: string;\n\n /**\n * Transfer details uniquely identifying the transfer.\n */\n wire_reference: number;\n\n /**\n * Timestamp of the incoming wire transfer.\n */\n timestamp: TalerProtocolTimestamp;\n}\n\nexport interface ReserveClosingTransaction {\n type: ReserveTransactionType.Closing;\n\n /**\n * Closing balance.\n */\n amount: AmountString;\n\n /**\n * Closing fee charged by the exchange.\n */\n closing_fee: AmountString;\n\n /**\n * Wire transfer subject.\n */\n wtid: string;\n\n /**\n * Hash of the wire account into which the funds were returned to.\n */\n h_wire: string;\n\n /**\n * This is a signature over a\n * struct TALER_ReserveCloseConfirmationPS with purpose\n * TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED.\n */\n exchange_sig: EddsaSignatureString;\n\n /**\n * Public key used to create exchange_sig.\n */\n exchange_pub: EddsaPublicKeyString;\n\n /**\n * Time when the reserve was closed.\n */\n timestamp: TalerProtocolTimestamp;\n}\n\nexport interface ReserveRecoupTransaction {\n type: ReserveTransactionType.Recoup;\n\n /**\n * Amount paid back.\n */\n amount: AmountString;\n\n /**\n * This is a signature over\n * a struct TALER_PaybackConfirmationPS with purpose\n * TALER_SIGNATURE_EXCHANGE_CONFIRM_PAYBACK.\n */\n exchange_sig: EddsaSignatureString;\n\n /**\n * Public key used to create exchange_sig.\n */\n exchange_pub: EddsaPublicKeyString;\n\n /**\n * Time when the funds were paid back into the reserve.\n */\n timestamp: TalerProtocolTimestamp;\n\n /**\n * Public key of the coin that was paid back.\n */\n coin_pub: CoinPublicKeyString;\n}\n\n/**\n * Format of the exchange's transaction history for a reserve.\n */\nexport type ReserveTransaction =\n | ReserveWithdrawTransaction\n | ReserveCreditTransaction\n | ReserveClosingTransaction\n | ReserveRecoupTransaction;\n\nexport const codecForReserveWithdrawTransaction =\n (): Codec<ReserveWithdrawTransaction> =>\n buildCodecForObject<ReserveWithdrawTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"h_coin_envelope\", codecForString())\n .property(\"h_denom_pub\", codecForString())\n .property(\"reserve_sig\", codecForString())\n .property(\"type\", codecForConstString(ReserveTransactionType.Withdraw))\n .property(\"withdraw_fee\", codecForAmountString())\n .build(\"ReserveWithdrawTransaction\");\n\nexport const codecForReserveCreditTransaction =\n (): Codec<ReserveCreditTransaction> =>\n buildCodecForObject<ReserveCreditTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"sender_account_url\", codecForString())\n .property(\"timestamp\", codecForTimestamp)\n .property(\"wire_reference\", codecForNumber())\n .property(\"type\", codecForConstString(ReserveTransactionType.Credit))\n .build(\"ReserveCreditTransaction\");\n\nexport const codecForReserveClosingTransaction =\n (): Codec<ReserveClosingTransaction> =>\n buildCodecForObject<ReserveClosingTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"closing_fee\", codecForAmountString())\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"h_wire\", codecForString())\n .property(\"timestamp\", codecForTimestamp)\n .property(\"type\", codecForConstString(ReserveTransactionType.Closing))\n .property(\"wtid\", codecForString())\n .build(\"ReserveClosingTransaction\");\n\nexport const codecForReserveRecoupTransaction =\n (): Codec<ReserveRecoupTransaction> =>\n buildCodecForObject<ReserveRecoupTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"coin_pub\", codecForString())\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"timestamp\", codecForTimestamp)\n .property(\"type\", codecForConstString(ReserveTransactionType.Recoup))\n .build(\"ReserveRecoupTransaction\");\n\nexport const codecForReserveTransaction = (): Codec<ReserveTransaction> =>\n buildCodecForUnion<ReserveTransaction>()\n .discriminateOn(\"type\")\n .alternative(\n ReserveTransactionType.Withdraw,\n codecForReserveWithdrawTransaction(),\n )\n .alternative(\n ReserveTransactionType.Closing,\n codecForReserveClosingTransaction(),\n )\n .alternative(\n ReserveTransactionType.Recoup,\n codecForReserveRecoupTransaction(),\n )\n .alternative(\n ReserveTransactionType.Credit,\n codecForReserveCreditTransaction(),\n )\n .build<ReserveTransaction>(\"ReserveTransaction\");\n", "/*\n This file is part of GNU Taler\n (C) 2019-2020 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Codec, Context, DecodingError, renderContext } from \"./codec.js\";\nimport { canonicalizeBaseUrl } from \"./helpers.js\";\nimport { AmountString } from \"./taler-types.js\";\nimport { URLSearchParams, URL } from \"./url.js\";\n\nexport type TalerUri =\n | PayUriResult\n | PayTemplateUriResult\n | DevExperimentUri\n | PayPullUriResult\n | PayPushUriResult\n | BackupRestoreUri\n | RefundUriResult\n | RewardUriResult\n | WithdrawUriResult\n | ExchangeUri\n | WithdrawExchangeUri\n | AuditorUri;\n\ndeclare const __action_str: unique symbol;\nexport type TalerActionString = string & { [__action_str]: true };\n\nexport function codecForTalerActionString(): Codec<TalerActionString> {\n return {\n decode(x: any, c?: Context): TalerActionString {\n if (typeof x !== \"string\") {\n throw new DecodingError(\n `expected string at ${renderContext(c)} but got ${typeof x}`,\n );\n }\n if (parseTalerUri(x) === undefined) {\n throw new DecodingError(\n `invalid taler action at ${renderContext(c)} but got \"${x}\"`,\n );\n }\n return x as TalerActionString;\n },\n };\n}\n\nexport interface PayUriResult {\n type: TalerUriAction.Pay;\n merchantBaseUrl: string;\n orderId: string;\n sessionId: string;\n claimToken?: string;\n noncePriv?: string;\n}\n\nexport interface PayTemplateUriResult {\n type: TalerUriAction.PayTemplate;\n merchantBaseUrl: string;\n templateId: string;\n templateParams: Record<string, string>;\n}\n\nexport interface WithdrawUriResult {\n type: TalerUriAction.Withdraw;\n bankIntegrationApiBaseUrl: string;\n withdrawalOperationId: string;\n}\n\nexport interface RefundUriResult {\n type: TalerUriAction.Refund;\n merchantBaseUrl: string;\n orderId: string;\n}\n\nexport interface RewardUriResult {\n type: TalerUriAction.Reward;\n merchantBaseUrl: string;\n merchantRewardId: string;\n}\n\nexport interface ExchangeUri {\n type: TalerUriAction.Exchange;\n exchangeBaseUrl: string;\n exchangePub: string;\n}\n\nexport interface AuditorUri {\n type: TalerUriAction.Auditor;\n auditorBaseUrl: string;\n auditorPub: string;\n}\n\nexport interface PayPushUriResult {\n type: TalerUriAction.PayPush;\n exchangeBaseUrl: string;\n contractPriv: string;\n}\n\nexport interface PayPullUriResult {\n type: TalerUriAction.PayPull;\n exchangeBaseUrl: string;\n contractPriv: string;\n}\n\nexport interface DevExperimentUri {\n type: TalerUriAction.DevExperiment;\n devExperimentId: string;\n}\n\nexport interface BackupRestoreUri {\n type: TalerUriAction.Restore;\n walletRootPriv: string;\n providers: Array<string>;\n}\n\nexport interface WithdrawExchangeUri {\n type: TalerUriAction.WithdrawExchange;\n exchangeBaseUrl: string;\n exchangePub: string;\n amount?: AmountString;\n}\n\n/**\n * Parse a taler[+http]://withdraw URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parseWithdrawUri(s: string): WithdrawUriResult | undefined {\n const pi = parseProtoInfo(s, \"withdraw\");\n if (!pi) {\n return undefined;\n }\n const parts = pi.rest.split(\"/\");\n\n if (parts.length < 2) {\n return undefined;\n }\n\n const host = parts[0].toLowerCase();\n const pathSegments = parts.slice(1, parts.length - 1);\n /**\n * The statement below does not tolerate a slash-ended URI.\n * This results in (1) the withdrawalId being passed as the\n * empty string, and (2) the bankIntegrationApi ending with the\n * actual withdrawal operation ID. That can be fixed by\n * trimming the parts-list. FIXME\n */\n const withdrawId = parts[parts.length - 1];\n const p = [host, ...pathSegments].join(\"/\");\n\n return {\n type: TalerUriAction.Withdraw,\n bankIntegrationApiBaseUrl: canonicalizeBaseUrl(`${pi.innerProto}://${p}/`),\n withdrawalOperationId: withdrawId,\n };\n}\n\n/**\n * @deprecated use TalerUriAction\n */\nexport enum TalerUriType {\n TalerPay = \"taler-pay\",\n TalerTemplate = \"taler-template\",\n TalerPayTemplate = \"taler-pay-template\",\n TalerWithdraw = \"taler-withdraw\",\n TalerTip = \"taler-tip\",\n TalerRefund = \"taler-refund\",\n TalerPayPush = \"taler-pay-push\",\n TalerPayPull = \"taler-pay-pull\",\n TalerRecovery = \"taler-recovery\",\n TalerDevExperiment = \"taler-dev-experiment\",\n Unknown = \"unknown\",\n}\n\nconst talerActionPayPull = \"pay-pull\";\nconst talerActionPayPush = \"pay-push\";\nconst talerActionPayTemplate = \"pay-template\";\n\nexport enum TalerUriAction {\n Pay = \"pay\",\n Withdraw = \"withdraw\",\n Refund = \"refund\",\n Reward = \"reward\",\n PayPull = \"pay-pull\",\n PayPush = \"pay-push\",\n PayTemplate = \"pay-template\",\n Exchange = \"exchange\",\n Auditor = \"auditor\",\n Restore = \"restore\",\n DevExperiment = \"dev-experiment\",\n WithdrawExchange = \"withdraw-exchange\",\n}\n\ninterface TalerUriProtoInfo {\n innerProto: \"http\" | \"https\";\n rest: string;\n}\n\nfunction parseProtoInfo(\n s: string,\n action: string,\n): TalerUriProtoInfo | undefined {\n const pfxPlain = `taler://${action}/`;\n const pfxHttp = `taler+http://${action}/`;\n if (s.toLowerCase().startsWith(pfxPlain)) {\n return {\n innerProto: \"https\",\n rest: s.substring(pfxPlain.length),\n };\n } else if (s.toLowerCase().startsWith(pfxHttp)) {\n return {\n innerProto: \"http\",\n rest: s.substring(pfxHttp.length),\n };\n } else {\n return undefined;\n }\n}\n\ntype Parser = (s: string) => TalerUri | undefined;\nconst parsers: { [A in TalerUriAction]: Parser } = {\n [TalerUriAction.Pay]: parsePayUri,\n [TalerUriAction.PayPull]: parsePayPullUri,\n [TalerUriAction.PayPush]: parsePayPushUri,\n [TalerUriAction.PayTemplate]: parsePayTemplateUri,\n [TalerUriAction.Restore]: parseRestoreUri,\n [TalerUriAction.Refund]: parseRefundUri,\n [TalerUriAction.Reward]: parseRewardUri,\n [TalerUriAction.Withdraw]: parseWithdrawUri,\n [TalerUriAction.DevExperiment]: parseDevExperimentUri,\n [TalerUriAction.Exchange]: parseExchangeUri,\n [TalerUriAction.Auditor]: parseAuditorUri,\n [TalerUriAction.WithdrawExchange]: parseWithdrawExchangeUri,\n};\n\nexport function parseTalerUri(string: string): TalerUri | undefined {\n const https = string.startsWith(\"taler://\");\n const http = string.startsWith(\"taler+http://\");\n if (!https && !http) return undefined;\n const actionStart = https ? 8 : 13;\n const actionEnd = string.indexOf(\"/\", actionStart + 1);\n const action = string.substring(actionStart, actionEnd);\n const found = Object.values(TalerUriAction).find((x) => x === action);\n if (!found) return undefined;\n return parsers[found](string);\n}\n\nexport function stringifyTalerUri(uri: TalerUri): string {\n switch (uri.type) {\n case TalerUriAction.DevExperiment: {\n return stringifyDevExperimentUri(uri);\n }\n case TalerUriAction.Pay: {\n return stringifyPayUri(uri);\n }\n case TalerUriAction.PayPull: {\n return stringifyPayPullUri(uri);\n }\n case TalerUriAction.PayPush: {\n return stringifyPayPushUri(uri);\n }\n case TalerUriAction.PayTemplate: {\n return stringifyPayTemplateUri(uri);\n }\n case TalerUriAction.Restore: {\n return stringifyRestoreUri(uri);\n }\n case TalerUriAction.Refund: {\n return stringifyRefundUri(uri);\n }\n case TalerUriAction.Reward: {\n return stringifyRewardUri(uri);\n }\n case TalerUriAction.Withdraw: {\n return stringifyWithdrawUri(uri);\n }\n case TalerUriAction.Exchange: {\n return stringifyExchangeUri(uri);\n }\n case TalerUriAction.WithdrawExchange: {\n return stringifyWithdrawExchange(uri);\n }\n case TalerUriAction.Auditor: {\n return stringifyAuditorUri(uri);\n }\n }\n}\n\n/**\n * Parse a taler[+http]://pay URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parsePayUri(s: string): PayUriResult | undefined {\n const pi = parseProtoInfo(s, \"pay\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const q = new URLSearchParams(c[1] ?? \"\");\n const claimToken = q.get(\"c\") ?? undefined;\n const noncePriv = q.get(\"n\") ?? undefined;\n const parts = c[0].split(\"/\");\n if (parts.length < 3) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const sessionId = parts[parts.length - 1];\n const orderId = parts[parts.length - 2];\n const pathSegments = parts.slice(1, parts.length - 2);\n const p = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(`${pi.innerProto}://${p}/`);\n\n return {\n type: TalerUriAction.Pay,\n merchantBaseUrl,\n orderId,\n sessionId,\n claimToken,\n noncePriv,\n };\n}\n\nexport function parsePayTemplateUri(\n uriString: string,\n): PayTemplateUriResult | undefined {\n const pi = parseProtoInfo(uriString, talerActionPayTemplate);\n if (!pi) {\n return undefined;\n }\n const c = pi.rest.split(\"?\");\n\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n\n const q = new URLSearchParams(c[1] ?? \"\");\n const params: Record<string, string> = {};\n q.forEach((v, k) => {\n params[k] = v;\n });\n\n const host = parts[0].toLowerCase();\n const templateId = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.PayTemplate,\n merchantBaseUrl,\n templateId,\n templateParams: params,\n };\n}\n\nexport function parsePayPushUri(s: string): PayPushUriResult | undefined {\n const pi = parseProtoInfo(s, talerActionPayPush);\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const contractPriv = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.PayPush,\n exchangeBaseUrl,\n contractPriv,\n };\n}\n\nexport function parsePayPullUri(s: string): PayPullUriResult | undefined {\n const pi = parseProtoInfo(s, talerActionPayPull);\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const contractPriv = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.PayPull,\n exchangeBaseUrl,\n contractPriv,\n };\n}\n\n/**\n * Parse a taler[+http]://reward URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parseRewardUri(s: string): RewardUriResult | undefined {\n const pi = parseProtoInfo(s, \"reward\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const rewardId = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Reward,\n merchantBaseUrl,\n merchantRewardId: rewardId,\n };\n}\n\nexport function parseExchangeUri(s: string): ExchangeUri | undefined {\n const pi = parseProtoInfo(s, \"exchange\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const exchangePub = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Exchange,\n exchangeBaseUrl,\n exchangePub,\n };\n}\n\nexport function parseWithdrawExchangeUri(\n s: string,\n): WithdrawExchangeUri | undefined {\n const pi = parseProtoInfo(s, \"withdraw-exchange\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const exchangePub = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n const q = new URLSearchParams(c[1] ?? \"\");\n const amount = (q.get(\"a\") ?? undefined) as AmountString | undefined;\n\n return {\n type: TalerUriAction.WithdrawExchange,\n exchangeBaseUrl,\n exchangePub,\n amount,\n };\n}\n\nexport function parseAuditorUri(s: string): AuditorUri | undefined {\n const pi = parseProtoInfo(s, \"auditor\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const auditorPub = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const auditorBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Auditor,\n auditorBaseUrl,\n auditorPub,\n };\n}\n\n/**\n * Parse a taler[+http]://refund URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parseRefundUri(s: string): RefundUriResult | undefined {\n const pi = parseProtoInfo(s, \"refund\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 3) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const sessionId = parts[parts.length - 1];\n const orderId = parts[parts.length - 2];\n const pathSegments = parts.slice(1, parts.length - 2);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Refund,\n merchantBaseUrl,\n orderId,\n };\n}\n\nexport function parseDevExperimentUri(s: string): DevExperimentUri | undefined {\n const pi = parseProtoInfo(s, \"dev-experiment\");\n const c = pi?.rest.split(\"?\");\n if (!c) {\n return undefined;\n }\n const parts = c[0].split(\"/\");\n return {\n type: TalerUriAction.DevExperiment,\n devExperimentId: parts[0],\n };\n}\n\nexport function parseRestoreUri(uri: string): BackupRestoreUri | undefined {\n const pi = parseProtoInfo(uri, \"restore\");\n if (!pi) {\n return undefined;\n }\n const c = pi.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n\n const walletRootPriv = parts[0];\n if (!walletRootPriv) return undefined;\n const providers = new Array<string>();\n parts[1].split(\",\").map((name) => {\n const url = canonicalizeBaseUrl(\n `${pi.innerProto}://${decodeURIComponent(name)}/`,\n );\n providers.push(url);\n });\n return {\n type: TalerUriAction.Restore,\n walletRootPriv,\n providers,\n };\n}\n\n// ================================================\n// To string functions\n// ================================================\n\n/**\n * @deprecated use stringifyRecoveryUri\n */\nexport function constructRecoveryUri(args: {\n walletRootPriv: string;\n providers: string[];\n}): string {\n return stringifyRestoreUri(args);\n}\n\n/**\n * @deprecated stringifyPayPullUri\n */\nexport function constructPayPullUri(args: {\n exchangeBaseUrl: string;\n contractPriv: string;\n}): string {\n return stringifyPayPullUri(args);\n}\n\n/**\n * @deprecated use stringifyPayPushUri\n */\nexport function constructPayPushUri(args: {\n exchangeBaseUrl: string;\n contractPriv: string;\n}): string {\n return stringifyPayPushUri(args);\n}\n\n/**\n *\n * @deprecated use stringifyPayUri\n */\nexport function constructPayUri(\n merchantBaseUrl: string,\n orderId: string,\n sessionId: string,\n claimToken?: string,\n noncePriv?: string,\n): string {\n return stringifyPayUri({\n merchantBaseUrl,\n orderId,\n sessionId,\n claimToken,\n noncePriv,\n });\n}\n\nexport function stringifyPayUri({\n merchantBaseUrl,\n orderId,\n sessionId,\n claimToken,\n noncePriv,\n}: Omit<PayUriResult, \"type\">): string {\n const { proto, path, query } = getUrlInfo(merchantBaseUrl, {\n c: claimToken,\n n: noncePriv,\n });\n return `${proto}://pay/${path}${orderId}/${sessionId}${query}`;\n}\n\nexport function stringifyPayPullUri({\n contractPriv,\n exchangeBaseUrl,\n}: Omit<PayPullUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(exchangeBaseUrl);\n return `${proto}://pay-pull/${path}${contractPriv}`;\n}\n\nexport function stringifyPayPushUri({\n contractPriv,\n exchangeBaseUrl,\n}: Omit<PayPushUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(exchangeBaseUrl);\n\n return `${proto}://pay-push/${path}${contractPriv}`;\n}\n\nexport function stringifyRestoreUri({\n providers,\n walletRootPriv,\n}: Omit<BackupRestoreUri, \"type\">): string {\n const list = providers\n .map((url) => `${encodeURIComponent(new URL(url).href)}`)\n .join(\",\");\n return `taler://restore/${walletRootPriv}/${list}`;\n}\n\nexport function stringifyWithdrawExchange({\n exchangeBaseUrl,\n exchangePub,\n amount,\n}: Omit<WithdrawExchangeUri, \"type\">): string {\n const { proto, path, query } = getUrlInfo(exchangeBaseUrl, {\n a: amount,\n });\n return `${proto}://withdraw-exchange/${path}${exchangePub}${query}`;\n}\n\nexport function stringifyDevExperimentUri({\n devExperimentId,\n}: Omit<DevExperimentUri, \"type\">): string {\n return `taler://dev-experiment/${devExperimentId}`;\n}\n\nexport function stringifyPayTemplateUri({\n merchantBaseUrl,\n templateId,\n templateParams,\n}: Omit<PayTemplateUriResult, \"type\">): string {\n const { proto, path, query } = getUrlInfo(merchantBaseUrl, templateParams);\n return `${proto}://pay-template/${path}${templateId}${query}`;\n}\nexport function stringifyRefundUri({\n merchantBaseUrl,\n orderId,\n}: Omit<RefundUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(merchantBaseUrl);\n return `${proto}://refund/${path}${orderId}`;\n}\nexport function stringifyRewardUri({\n merchantBaseUrl,\n merchantRewardId,\n}: Omit<RewardUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(merchantBaseUrl);\n return `${proto}://reward/${path}${merchantRewardId}`;\n}\n\nexport function stringifyExchangeUri({\n exchangeBaseUrl,\n exchangePub,\n}: Omit<ExchangeUri, \"type\">): string {\n const { proto, path } = getUrlInfo(exchangeBaseUrl);\n return `${proto}://exchange/${path}${exchangePub}`;\n}\n\nexport function stringifyAuditorUri({\n auditorBaseUrl,\n auditorPub,\n}: Omit<AuditorUri, \"type\">): string {\n const { proto, path } = getUrlInfo(auditorBaseUrl);\n return `${proto}://auditor/${path}${auditorPub}`;\n}\n\nexport function stringifyWithdrawUri({\n bankIntegrationApiBaseUrl,\n withdrawalOperationId,\n}: Omit<WithdrawUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(bankIntegrationApiBaseUrl);\n return `${proto}://withdraw/${path}${withdrawalOperationId}`;\n}\n\n/**\n * Use baseUrl to defined http or https\n * create path using host+port+pathname\n * use params to create a query parameter string or empty\n *\n * @param baseUrl\n * @param params\n * @returns\n */\nfunction getUrlInfo(\n baseUrl: string,\n params: Record<string, string | undefined> = {},\n): { proto: string; path: string; query: string } {\n const url = new URL(baseUrl);\n let proto: string;\n if (url.protocol === \"https:\") {\n proto = \"taler\";\n } else if (url.protocol === \"http:\") {\n proto = \"taler+http\";\n } else {\n throw Error(`Unsupported URL protocol in ${baseUrl}`);\n }\n let path = url.hostname;\n if (url.port) {\n path = path + \":\" + url.port;\n }\n if (url.pathname) {\n path = path + url.pathname;\n }\n if (!path.endsWith(\"/\")) {\n path = path + \"/\";\n }\n\n const qp = new URLSearchParams();\n let withParams = false;\n Object.entries(params).forEach(([name, value]) => {\n if (value !== undefined) {\n withParams = true;\n qp.append(name, value);\n }\n });\n const query = withParams ? \"?\" + qp.toString() : \"\";\n\n return { proto, path, query };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type and schema definitions for the wallet's transaction list.\n *\n * @author Florian Dold\n * @author Torsten Grote\n */\n\n/**\n * Imports.\n */\nimport { TalerPreciseTimestamp, TalerProtocolTimestamp } from \"./time.js\";\nimport {\n AmountString,\n Product,\n InternationalizedString,\n MerchantInfo,\n codecForInternationalizedString,\n codecForMerchantInfo,\n codecForProduct,\n Location,\n} from \"./taler-types.js\";\nimport {\n Codec,\n buildCodecForObject,\n codecOptional,\n codecForString,\n codecForList,\n codecForAny,\n codecForBoolean,\n codecForEither,\n codecForConstString,\n} from \"./codec.js\";\nimport {\n RefreshReason,\n TalerErrorDetail,\n TransactionIdStr,\n TransactionStateFilter,\n} from \"./wallet-types.js\";\n\nexport interface TransactionsRequest {\n /**\n * return only transactions in the given currency\n */\n currency?: string;\n\n /**\n * if present, results will be limited to transactions related to the given search string\n */\n search?: string;\n\n /**\n * Sort order of the transaction items.\n * By default, items are sorted ascending by their\n * main timestamp.\n */\n sort?: \"ascending\" | \"descending\";\n\n /**\n * If true, include all refreshes in the transactions list.\n */\n includeRefreshes?: boolean;\n\n filterByState?: TransactionStateFilter;\n}\n\nexport interface TransactionState {\n major: TransactionMajorState;\n minor?: TransactionMinorState;\n}\n\nexport enum TransactionMajorState {\n // No state, only used when reporting transitions into the initial state\n None = \"none\",\n Pending = \"pending\",\n Done = \"done\",\n Aborting = \"aborting\",\n Aborted = \"aborted\",\n Suspended = \"suspended\",\n Dialog = \"dialog\",\n SuspendedAborting = \"suspended-aborting\",\n Failed = \"failed\",\n Expired = \"expired\",\n // Only used for the notification, never in the transaction history\n Deleted = \"deleted\",\n}\n\nexport enum TransactionMinorState {\n // Placeholder until D37 is fully implemented\n Unknown = \"unknown\",\n Deposit = \"deposit\",\n KycRequired = \"kyc\",\n AmlRequired = \"aml\",\n MergeKycRequired = \"merge-kyc\",\n Track = \"track\",\n SubmitPayment = \"submit-payment\",\n RebindSession = \"rebind-session\",\n Refresh = \"refresh\",\n Pickup = \"pickup\",\n AutoRefund = \"auto-refund\",\n User = \"user\",\n Bank = \"bank\",\n Exchange = \"exchange\",\n ClaimProposal = \"claim-proposal\",\n CheckRefund = \"check-refund\",\n CreatePurse = \"create-purse\",\n DeletePurse = \"delete-purse\",\n Ready = \"ready\",\n Merge = \"merge\",\n Repurchase = \"repurchase\",\n BankRegisterReserve = \"bank-register-reserve\",\n BankConfirmTransfer = \"bank-confirm-transfer\",\n WithdrawCoins = \"withdraw-coins\",\n ExchangeWaitReserve = \"exchange-wait-reserve\",\n AbortingBank = \"aborting-bank\",\n Aborting = \"aborting\",\n Refused = \"refused\",\n Withdraw = \"withdraw\",\n MerchantOrderProposed = \"merchant-order-proposed\",\n Proposed = \"proposed\",\n RefundAvailable = \"refund-available\",\n AcceptRefund = \"accept-refund\",\n}\n\nexport enum TransactionAction {\n Delete = \"delete\",\n Suspend = \"suspend\",\n Resume = \"resume\",\n Abort = \"abort\",\n Fail = \"fail\",\n Retry = \"retry\",\n}\n\nexport interface TransactionsResponse {\n // a list of past and pending transactions sorted by pending, timestamp and transactionId.\n // In case two events are both pending and have the same timestamp,\n // they are sorted by the transactionId\n // (lexically ascending and locale-independent comparison).\n transactions: Transaction[];\n}\n\nexport interface TransactionCommon {\n // opaque unique ID for the transaction, used as a starting point for paginating queries\n // and for invoking actions on the transaction (e.g. deleting/hiding it from the history)\n transactionId: TransactionIdStr;\n\n // the type of the transaction; different types might provide additional information\n type: TransactionType;\n\n // main timestamp of the transaction\n timestamp: TalerPreciseTimestamp;\n\n /**\n * Transaction state, as per DD37.\n */\n txState: TransactionState;\n\n /**\n * Possible transitions based on the current state.\n */\n txActions: TransactionAction[];\n\n /**\n * Raw amount of the transaction (exclusive of fees or other extra costs).\n */\n amountRaw: AmountString;\n\n /**\n * Amount added or removed from the wallet's balance (including all fees and other costs).\n */\n amountEffective: AmountString;\n\n error?: TalerErrorDetail;\n\n /**\n * If the transaction minor state is in KycRequired this field is going to\n * have the location where the user need to go to complete KYC information.\n */\n kycUrl?: string;\n}\n\nexport type Transaction =\n | TransactionWithdrawal\n | TransactionPayment\n | TransactionRefund\n | TransactionReward\n | TransactionRefresh\n | TransactionDeposit\n | TransactionPeerPullCredit\n | TransactionPeerPullDebit\n | TransactionPeerPushCredit\n | TransactionPeerPushDebit\n | TransactionInternalWithdrawal;\n\nexport enum TransactionType {\n Withdrawal = \"withdrawal\",\n InternalWithdrawal = \"internal-withdrawal\",\n Payment = \"payment\",\n Refund = \"refund\",\n Refresh = \"refresh\",\n Reward = \"reward\",\n Deposit = \"deposit\",\n PeerPushDebit = \"peer-push-debit\",\n PeerPushCredit = \"peer-push-credit\",\n PeerPullDebit = \"peer-pull-debit\",\n PeerPullCredit = \"peer-pull-credit\",\n}\n\nexport enum WithdrawalType {\n TalerBankIntegrationApi = \"taler-bank-integration-api\",\n ManualTransfer = \"manual-transfer\",\n}\n\nexport type WithdrawalDetails =\n | WithdrawalDetailsForManualTransfer\n | WithdrawalDetailsForTalerBankIntegrationApi;\n\ninterface WithdrawalDetailsForManualTransfer {\n type: WithdrawalType.ManualTransfer;\n\n /**\n * Payto URIs that the exchange supports.\n *\n * Already contains the amount and message.\n */\n exchangePaytoUris: string[];\n\n // Public key of the reserve\n reservePub: string;\n\n /**\n * Is the reserve ready for withdrawal?\n */\n reserveIsReady: boolean;\n}\n\ninterface WithdrawalDetailsForTalerBankIntegrationApi {\n type: WithdrawalType.TalerBankIntegrationApi;\n\n /**\n * Set to true if the bank has confirmed the withdrawal, false if not.\n * An unconfirmed withdrawal usually requires user-input and should be highlighted in the UI.\n * See also bankConfirmationUrl below.\n */\n confirmed: boolean;\n\n /**\n * If the withdrawal is unconfirmed, this can include a URL for user\n * initiated confirmation.\n */\n bankConfirmationUrl?: string;\n\n // Public key of the reserve\n reservePub: string;\n\n /**\n * Is the reserve ready for withdrawal?\n */\n reserveIsReady: boolean;\n}\n\n/**\n * A withdrawal transaction (either bank-integrated or manual).\n */\nexport interface TransactionWithdrawal extends TransactionCommon {\n type: TransactionType.Withdrawal;\n\n /**\n * Exchange of the withdrawal.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n withdrawalDetails: WithdrawalDetails;\n}\n\n/**\n * Internal withdrawal operation, only reported on request.\n *\n * Some transactions (peer-*-credit) internally do a withdrawal,\n * but only the peer-*-credit transaction is reported.\n *\n * The internal withdrawal transaction allows to access the details of\n * the underlying withdrawal for testing/debugging.\n *\n * It is usually not reported, so that amounts of transactions properly\n * add up, since the amountEffecive of the withdrawal is already reported\n * in the peer-*-credit transaction.\n */\nexport interface TransactionInternalWithdrawal extends TransactionCommon {\n type: TransactionType.InternalWithdrawal;\n\n /**\n * Exchange of the withdrawal.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n withdrawalDetails: WithdrawalDetails;\n}\n\nexport interface PeerInfoShort {\n expiration: TalerProtocolTimestamp | undefined;\n summary: string | undefined;\n}\n\n/**\n * Credit because we were paid for a P2P invoice we created.\n */\nexport interface TransactionPeerPullCredit extends TransactionCommon {\n type: TransactionType.PeerPullCredit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n /**\n * URI to send to the other party.\n */\n talerUri: string;\n}\n\n/**\n * Debit because we paid someone's invoice.\n */\nexport interface TransactionPeerPullDebit extends TransactionCommon {\n type: TransactionType.PeerPullDebit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n amountRaw: AmountString;\n\n amountEffective: AmountString;\n}\n\n/**\n * We sent money via a P2P payment.\n */\nexport interface TransactionPeerPushDebit extends TransactionCommon {\n type: TransactionType.PeerPushDebit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n /**\n * URI to accept the payment.\n *\n * Only present if the transaction is in a state where the other party can\n * accept the payment.\n */\n talerUri?: string;\n}\n\n/**\n * We received money via a P2P payment.\n */\nexport interface TransactionPeerPushCredit extends TransactionCommon {\n type: TransactionType.PeerPushCredit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n}\n\nexport enum PaymentStatus {\n /**\n * Explicitly aborted after timeout / failure\n */\n Aborted = \"aborted\",\n\n /**\n * Payment failed, wallet will auto-retry.\n * User should be given the option to retry now / abort.\n */\n Failed = \"failed\",\n\n /**\n * Paid successfully\n */\n Paid = \"paid\",\n\n /**\n * User accepted, payment is processing.\n */\n Accepted = \"accepted\",\n}\n\nexport interface TransactionPayment extends TransactionCommon {\n type: TransactionType.Payment;\n\n /**\n * Additional information about the payment.\n */\n info: OrderShortInfo;\n\n /**\n * Wallet-internal end-to-end identifier for the payment.\n */\n proposalId: string;\n\n /**\n * Amount that must be paid for the contract\n */\n amountRaw: AmountString;\n\n /**\n * Amount that was paid, including deposit, wire and refresh fees.\n */\n amountEffective: AmountString;\n\n /**\n * Amount that has been refunded by the merchant\n */\n totalRefundRaw: AmountString;\n\n /**\n * Amount will be added to the wallet's balance after fees and refreshing\n */\n totalRefundEffective: AmountString;\n\n /**\n * Amount pending to be picked up\n */\n refundPending: AmountString | undefined;\n\n /**\n * Reference to applied refunds\n */\n refunds: RefundInfoShort[];\n\n /**\n * Is the wallet currently checking for a refund?\n */\n refundQueryActive: boolean;\n\n /**\n * Does this purchase has an pos validation\n */\n posConfirmation: string | undefined;\n}\n\nexport interface OrderShortInfo {\n /**\n * Order ID, uniquely identifies the order within a merchant instance\n */\n orderId: string;\n\n /**\n * Hash of the contract terms.\n */\n contractTermsHash: string;\n\n /**\n * More information about the merchant\n */\n merchant: MerchantInfo;\n\n /**\n * Summary of the order, given by the merchant\n */\n summary: string;\n\n /**\n * Map from IETF BCP 47 language tags to localized summaries\n */\n summary_i18n?: InternationalizedString;\n\n /**\n * URL of the fulfillment, given by the merchant\n */\n fulfillmentUrl?: string;\n\n /**\n * Plain text message that should be shown to the user\n * when the payment is complete.\n */\n fulfillmentMessage?: string;\n\n /**\n * Translations of fulfillmentMessage.\n */\n fulfillmentMessage_i18n?: InternationalizedString;\n}\n\nexport interface RefundInfoShort {\n transactionId: string;\n timestamp: TalerProtocolTimestamp;\n amountEffective: AmountString;\n amountRaw: AmountString;\n}\n\n/**\n * Summary information about the payment that we got a refund for.\n */\nexport interface RefundPaymentInfo {\n summary: string;\n summary_i18n?: InternationalizedString;\n /**\n * More information about the merchant\n */\n merchant: MerchantInfo;\n}\n\nexport interface TransactionRefund extends TransactionCommon {\n type: TransactionType.Refund;\n\n // Amount that has been refunded by the merchant\n amountRaw: AmountString;\n\n // Amount will be added to the wallet's balance after fees and refreshing\n amountEffective: AmountString;\n\n // ID for the transaction that is refunded\n refundedTransactionId: string;\n\n paymentInfo: RefundPaymentInfo | undefined;\n}\n\nexport interface TransactionReward extends TransactionCommon {\n type: TransactionType.Reward;\n\n // Raw amount of the tip, without extra fees that apply\n amountRaw: AmountString;\n\n /**\n * More information about the merchant\n */\n // merchant: MerchantInfo;\n\n // Amount will be (or was) added to the wallet's balance after fees and refreshing\n amountEffective: AmountString;\n\n merchantBaseUrl: string;\n}\n\n/**\n * A transaction shown for refreshes.\n * Only shown for (1) refreshes not associated with other transactions\n * and (2) refreshes in an error state.\n */\nexport interface TransactionRefresh extends TransactionCommon {\n type: TransactionType.Refresh;\n\n refreshReason: RefreshReason;\n\n /**\n * Transaction ID that caused this refresh.\n */\n originatingTransactionId?: string;\n\n /**\n * Always zero for refreshes\n */\n amountRaw: AmountString;\n\n /**\n * Fees, i.e. the effective, negative effect of the refresh\n * on the balance.\n *\n * Only applicable for stand-alone refreshes, and zero for\n * other refreshes where the transaction itself accounts for the\n * refresh fee.\n */\n amountEffective: AmountString;\n\n refreshInputAmount: AmountString;\n refreshOutputAmount: AmountString;\n}\n\nexport interface DepositTransactionTrackingState {\n // Raw wire transfer identifier of the deposit.\n wireTransferId: string;\n // When was the wire transfer given to the bank.\n timestampExecuted: TalerProtocolTimestamp;\n // Total amount transfer for this wtid (including fees)\n amountRaw: AmountString;\n // Wire fee amount for this exchange\n wireFee: AmountString;\n}\n\n/**\n * Deposit transaction, which effectively sends\n * money from this wallet somewhere else.\n */\nexport interface TransactionDeposit extends TransactionCommon {\n type: TransactionType.Deposit;\n\n depositGroupId: string;\n\n /**\n * Target for the deposit.\n */\n targetPaytoUri: string;\n\n /**\n * Raw amount that is being deposited\n */\n amountRaw: AmountString;\n\n /**\n * Effective amount that is being deposited\n */\n amountEffective: AmountString;\n\n wireTransferDeadline: TalerProtocolTimestamp;\n\n wireTransferProgress: number;\n\n /**\n * Did all the deposit requests succeed?\n */\n deposited: boolean;\n\n trackingState: Array<DepositTransactionTrackingState>;\n}\n\nexport interface TransactionByIdRequest {\n transactionId: string;\n}\n\nexport const codecForTransactionByIdRequest =\n (): Codec<TransactionByIdRequest> =>\n buildCodecForObject<TransactionByIdRequest>()\n .property(\"transactionId\", codecForString())\n .build(\"TransactionByIdRequest\");\n\nexport const codecForTransactionsRequest = (): Codec<TransactionsRequest> =>\n buildCodecForObject<TransactionsRequest>()\n .property(\"currency\", codecOptional(codecForString()))\n .property(\"search\", codecOptional(codecForString()))\n .property(\n \"sort\",\n codecOptional(\n codecForEither(\n codecForConstString(\"ascending\"),\n codecForConstString(\"descending\"),\n ),\n ),\n )\n .property(\"includeRefreshes\", codecOptional(codecForBoolean()))\n .build(\"TransactionsRequest\");\n\n// FIXME: do full validation here!\nexport const codecForTransactionsResponse = (): Codec<TransactionsResponse> =>\n buildCodecForObject<TransactionsResponse>()\n .property(\"transactions\", codecForList(codecForAny()))\n .build(\"TransactionsResponse\");\n\nexport const codecForOrderShortInfo = (): Codec<OrderShortInfo> =>\n buildCodecForObject<OrderShortInfo>()\n .property(\"contractTermsHash\", codecForString())\n .property(\"fulfillmentMessage\", codecOptional(codecForString()))\n .property(\n \"fulfillmentMessage_i18n\",\n codecOptional(codecForInternationalizedString()),\n )\n .property(\"fulfillmentUrl\", codecOptional(codecForString()))\n .property(\"merchant\", codecForMerchantInfo())\n .property(\"orderId\", codecForString())\n .property(\"summary\", codecForString())\n .property(\"summary_i18n\", codecOptional(codecForInternationalizedString()))\n .build(\"OrderShortInfo\");\n", "/*\n This file is part of GNU Taler\n (C) 2015-2020 Taler Systems SA\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Types used by clients of the wallet.\n *\n * These types are defined in a separate file make tree shaking easier, since\n * some components use these types (via RPC) but do not depend on the wallet\n * code directly.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\n/**\n * Imports.\n */\nimport { AmountJson, codecForAmountString } from \"./amounts.js\";\nimport { BackupRecovery } from \"./backup-types.js\";\nimport {\n Codec,\n Context,\n DecodingError,\n buildCodecForObject,\n buildCodecForUnion,\n codecForAny,\n codecForBoolean,\n codecForConstString,\n codecForEither,\n codecForList,\n codecForMap,\n codecForNumber,\n codecForString,\n codecOptional,\n renderContext,\n} from \"./codec.js\";\nimport { CurrencySpecification } from \"./index.js\";\nimport { VersionMatchResult } from \"./libtool-version.js\";\nimport { PaytoUri } from \"./payto.js\";\nimport { AgeCommitmentProof } from \"./taler-crypto.js\";\nimport { TalerErrorCode } from \"./taler-error-codes.js\";\nimport {\n AmountString,\n AuditorDenomSig,\n CoinEnvelope,\n DenomKeyType,\n DenominationPubKey,\n ExchangeAuditor,\n InternationalizedString,\n MerchantContractTerms,\n MerchantInfo,\n PeerContractTerms,\n UnblindedSignature,\n codecForMerchantContractTerms,\n codecForPeerContractTerms,\n} from \"./taler-types.js\";\nimport {\n AbsoluteTime,\n TalerPreciseTimestamp,\n TalerProtocolDuration,\n TalerProtocolTimestamp,\n codecForAbsoluteTime,\n codecForTimestamp,\n} from \"./time.js\";\nimport {\n OrderShortInfo,\n TransactionMajorState,\n TransactionMinorState,\n TransactionState,\n TransactionType,\n} from \"./transactions-types.js\";\n\n/**\n * Identifier for a transaction in the wallet.\n */\ndeclare const __txId: unique symbol;\nexport type TransactionIdStr = `txn:${string}:${string}` & { [__txId]: true };\n\n/**\n * Identifier for a pending task in the wallet.\n */\ndeclare const __pndId: unique symbol;\nexport type PendingIdStr = `pnd:${string}:${string}` & { [__pndId]: true };\n\ndeclare const __tmbId: unique symbol;\nexport type TombstoneIdStr = `tmb:${string}:${string}` & { [__tmbId]: true };\n\nfunction codecForTransactionIdStr(): Codec<TransactionIdStr> {\n return {\n decode(x: any, c?: Context): TransactionIdStr {\n if (typeof x === \"string\" && x.startsWith(\"txn:\")) {\n return x as TransactionIdStr;\n }\n throw new DecodingError(\n `expected string starting with \"txn:\" at ${renderContext(\n c,\n )} but got ${x}`,\n );\n },\n };\n}\n\nfunction codecForPendingIdStr(): Codec<PendingIdStr> {\n return {\n decode(x: any, c?: Context): PendingIdStr {\n if (typeof x === \"string\" && x.startsWith(\"txn:\")) {\n return x as PendingIdStr;\n }\n throw new DecodingError(\n `expected string starting with \"txn:\" at ${renderContext(\n c,\n )} but got ${x}`,\n );\n },\n };\n}\n\nfunction codecForTombstoneIdStr(): Codec<TombstoneIdStr> {\n return {\n decode(x: any, c?: Context): TombstoneIdStr {\n if (typeof x === \"string\" && x.startsWith(\"tmb:\")) {\n return x as TombstoneIdStr;\n }\n throw new DecodingError(\n `expected string starting with \"tmb:\" at ${renderContext(\n c,\n )} but got ${x}`,\n );\n },\n };\n}\n\n/**\n * Response for the create reserve request to the wallet.\n */\nexport class CreateReserveResponse {\n /**\n * Exchange URL where the bank should create the reserve.\n * The URL is canonicalized in the response.\n */\n exchange: string;\n\n /**\n * Reserve public key of the newly created reserve.\n */\n reservePub: string;\n}\n\nexport interface GetBalanceDetailRequest {\n currency: string;\n}\n\nexport const codecForGetBalanceDetailRequest =\n (): Codec<GetBalanceDetailRequest> =>\n buildCodecForObject<GetBalanceDetailRequest>()\n .property(\"currency\", codecForString())\n .build(\"GetBalanceDetailRequest\");\n\n/**\n * How the amount should be interpreted in a transaction\n * Effective = how the balance is change\n * Raw = effective amount without fee\n *\n * Depending on the transaction, raw can be higher than effective\n */\nexport enum TransactionAmountMode {\n Effective = \"effective\",\n Raw = \"raw\",\n}\n\nexport type GetPlanForOperationRequest =\n | GetPlanForWithdrawRequest\n | GetPlanForDepositRequest;\n// | GetPlanForPushDebitRequest\n// | GetPlanForPullCreditRequest\n// | GetPlanForPaymentRequest\n// | GetPlanForTipRequest\n// | GetPlanForRefundRequest\n// | GetPlanForPullDebitRequest\n// | GetPlanForPushCreditRequest;\n\ninterface GetPlanForWalletInitiatedOperation {\n instructedAmount: AmountString;\n mode: TransactionAmountMode;\n}\n\nexport interface ConvertAmountRequest {\n amount: AmountString;\n type: TransactionAmountMode;\n}\n\nexport const codecForConvertAmountRequest =\n buildCodecForObject<ConvertAmountRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\n \"type\",\n codecForEither(\n codecForConstString(TransactionAmountMode.Raw),\n codecForConstString(TransactionAmountMode.Effective),\n ),\n )\n .build(\"ConvertAmountRequest\");\n\nexport interface GetAmountRequest {\n currency: string;\n}\n\nexport const codecForGetAmountRequest = buildCodecForObject<GetAmountRequest>()\n .property(\"currency\", codecForString())\n .build(\"GetAmountRequest\");\n\ninterface GetPlanToCompleteOperation {\n instructedAmount: AmountString;\n}\n\nconst codecForGetPlanForWalletInitiatedOperation = <\n T extends GetPlanForWalletInitiatedOperation,\n>() =>\n buildCodecForObject<T>()\n .property(\n \"mode\",\n codecForEither(\n codecForConstString(TransactionAmountMode.Raw),\n codecForConstString(TransactionAmountMode.Effective),\n ),\n )\n .property(\"instructedAmount\", codecForAmountString());\n\ninterface GetPlanForWithdrawRequest extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.Withdrawal;\n exchangeUrl?: string;\n}\ninterface GetPlanForDepositRequest extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.Deposit;\n account: string; //payto string\n}\ninterface GetPlanForPushDebitRequest\n extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.PeerPushDebit;\n}\n\ninterface GetPlanForPullCreditRequest\n extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.PeerPullCredit;\n exchangeUrl: string;\n}\n\nconst codecForGetPlanForWithdrawRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForWithdrawRequest>()\n .property(\"type\", codecForConstString(TransactionType.Withdrawal))\n .property(\"exchangeUrl\", codecOptional(codecForString()))\n .build(\"GetPlanForWithdrawRequest\");\n\nconst codecForGetPlanForDepositRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForDepositRequest>()\n .property(\"type\", codecForConstString(TransactionType.Deposit))\n .property(\"account\", codecForString())\n .build(\"GetPlanForDepositRequest\");\n\nconst codecForGetPlanForPushDebitRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForPushDebitRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPushDebit))\n .build(\"GetPlanForPushDebitRequest\");\n\nconst codecForGetPlanForPullCreditRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForPullCreditRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPullCredit))\n .property(\"exchangeUrl\", codecForString())\n .build(\"GetPlanForPullCreditRequest\");\n\ninterface GetPlanForPaymentRequest extends GetPlanToCompleteOperation {\n type: TransactionType.Payment;\n wireMethod: string;\n ageRestriction: number;\n maxDepositFee: AmountString;\n maxWireFee: AmountString;\n}\n\n// interface GetPlanForTipRequest extends GetPlanForOperationBase {\n// type: TransactionType.Tip;\n// }\n// interface GetPlanForRefundRequest extends GetPlanForOperationBase {\n// type: TransactionType.Refund;\n// }\ninterface GetPlanForPullDebitRequest extends GetPlanToCompleteOperation {\n type: TransactionType.PeerPullDebit;\n}\ninterface GetPlanForPushCreditRequest extends GetPlanToCompleteOperation {\n type: TransactionType.PeerPushCredit;\n}\n\nconst codecForGetPlanForPaymentRequest =\n buildCodecForObject<GetPlanForPaymentRequest>()\n .property(\"type\", codecForConstString(TransactionType.Payment))\n .property(\"maxDepositFee\", codecForAmountString())\n .property(\"maxWireFee\", codecForAmountString())\n .build(\"GetPlanForPaymentRequest\");\n\nconst codecForGetPlanForPullDebitRequest =\n buildCodecForObject<GetPlanForPullDebitRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPullDebit))\n .build(\"GetPlanForPullDebitRequest\");\n\nconst codecForGetPlanForPushCreditRequest =\n buildCodecForObject<GetPlanForPushCreditRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPushCredit))\n .build(\"GetPlanForPushCreditRequest\");\n\nexport const codecForGetPlanForOperationRequest =\n (): Codec<GetPlanForOperationRequest> =>\n buildCodecForUnion<GetPlanForOperationRequest>()\n .discriminateOn(\"type\")\n .alternative(\n TransactionType.Withdrawal,\n codecForGetPlanForWithdrawRequest,\n )\n .alternative(TransactionType.Deposit, codecForGetPlanForDepositRequest)\n // .alternative(\n // TransactionType.PeerPushDebit,\n // codecForGetPlanForPushDebitRequest,\n // )\n // .alternative(\n // TransactionType.PeerPullCredit,\n // codecForGetPlanForPullCreditRequest,\n // )\n // .alternative(TransactionType.Payment, codecForGetPlanForPaymentRequest)\n // .alternative(\n // TransactionType.PeerPullDebit,\n // codecForGetPlanForPullDebitRequest,\n // )\n // .alternative(\n // TransactionType.PeerPushCredit,\n // codecForGetPlanForPushCreditRequest,\n // )\n .build(\"GetPlanForOperationRequest\");\n\nexport interface GetPlanForOperationResponse {\n effectiveAmount: AmountString;\n rawAmount: AmountString;\n counterPartyAmount?: AmountString;\n details: any;\n}\n\nexport const codecForGetPlanForOperationResponse =\n (): Codec<GetPlanForOperationResponse> =>\n buildCodecForObject<GetPlanForOperationResponse>()\n .property(\"effectiveAmount\", codecForAmountString())\n .property(\"rawAmount\", codecForAmountString())\n .property(\"details\", codecForAny())\n .property(\"counterPartyAmount\", codecOptional(codecForAmountString()))\n .build(\"GetPlanForOperationResponse\");\n\nexport interface AmountResponse {\n effectiveAmount: AmountString;\n rawAmount: AmountString;\n}\n\nexport const codecForAmountResponse = (): Codec<AmountResponse> =>\n buildCodecForObject<AmountResponse>()\n .property(\"effectiveAmount\", codecForAmountString())\n .property(\"rawAmount\", codecForAmountString())\n .build(\"AmountResponse\");\n\nexport interface WalletBalance {\n scopeInfo: ScopeInfo;\n available: AmountString;\n pendingIncoming: AmountString;\n pendingOutgoing: AmountString;\n\n // Does the balance for this currency have a pending\n // transaction?\n hasPendingTransactions: boolean;\n\n // Is there a pending transaction that would affect the balance\n // and requires user input?\n requiresUserInput: boolean;\n}\n\nexport const codecForScopeInfoGlobal = (): Codec<ScopeInfoGlobal> =>\n buildCodecForObject<ScopeInfoGlobal>()\n .property(\"currency\", codecForString())\n .property(\"type\", codecForConstString(ScopeType.Global))\n .build(\"ScopeInfoGlobal\");\n\nexport const codecForScopeInfoExchange = (): Codec<ScopeInfoExchange> =>\n buildCodecForObject<ScopeInfoExchange>()\n .property(\"currency\", codecForString())\n .property(\"type\", codecForConstString(ScopeType.Exchange))\n .property(\"url\", codecForString())\n .build(\"ScopeInfoExchange\");\n\nexport const codecForScopeInfoAuditor = (): Codec<ScopeInfoAuditor> =>\n buildCodecForObject<ScopeInfoAuditor>()\n .property(\"currency\", codecForString())\n .property(\"type\", codecForConstString(ScopeType.Auditor))\n .property(\"url\", codecForString())\n .build(\"ScopeInfoAuditor\");\n\nexport const codecForScopeInfo = (): Codec<ScopeInfo> =>\n buildCodecForUnion<ScopeInfo>()\n .discriminateOn(\"type\")\n .alternative(ScopeType.Global, codecForScopeInfoGlobal())\n .alternative(ScopeType.Exchange, codecForScopeInfoExchange())\n .alternative(ScopeType.Auditor, codecForScopeInfoAuditor())\n .build(\"ScopeInfo\");\n\nexport interface GetCurrencySpecificationRequest {\n scope: ScopeInfo;\n}\n\nexport const codecForGetCurrencyInfoRequest =\n (): Codec<GetCurrencySpecificationRequest> =>\n buildCodecForObject<GetCurrencySpecificationRequest>()\n .property(\"scope\", codecForScopeInfo())\n .build(\"GetCurrencySpecificationRequest\");\n\nexport interface ListExchangesForScopedCurrencyRequest {\n scope: ScopeInfo;\n}\n\nexport const codecForListExchangesForScopedCurrencyRequest =\n (): Codec<ListExchangesForScopedCurrencyRequest> =>\n buildCodecForObject<ListExchangesForScopedCurrencyRequest>()\n .property(\"scope\", codecForScopeInfo())\n .build(\"ListExchangesForScopedCurrencyRequest\");\n\nexport interface GetCurrencySpecificationResponse {\n currencySpecification: CurrencySpecification;\n}\n\nexport interface InitRequest {\n skipDefaults?: boolean;\n}\n\nexport interface InitResponse {\n versionInfo: WalletCoreVersion;\n}\n\nexport enum ScopeType {\n Global = \"global\",\n Exchange = \"exchange\",\n Auditor = \"auditor\",\n}\n\nexport type ScopeInfoGlobal = { type: ScopeType.Global; currency: string };\nexport type ScopeInfoExchange = {\n type: ScopeType.Exchange;\n currency: string;\n url: string;\n};\nexport type ScopeInfoAuditor = {\n type: ScopeType.Auditor;\n currency: string;\n url: string;\n};\n\nexport type ScopeInfo = ScopeInfoGlobal | ScopeInfoExchange | ScopeInfoAuditor;\n\nexport interface BalancesResponse {\n balances: WalletBalance[];\n}\n\nexport const codecForBalance = (): Codec<WalletBalance> =>\n buildCodecForObject<WalletBalance>()\n .property(\"scopeInfo\", codecForAny()) // FIXME\n .property(\"available\", codecForAmountString())\n .property(\"hasPendingTransactions\", codecForBoolean())\n .property(\"pendingIncoming\", codecForAmountString())\n .property(\"pendingOutgoing\", codecForAmountString())\n .property(\"requiresUserInput\", codecForBoolean())\n .build(\"Balance\");\n\nexport const codecForBalancesResponse = (): Codec<BalancesResponse> =>\n buildCodecForObject<BalancesResponse>()\n .property(\"balances\", codecForList(codecForBalance()))\n .build(\"BalancesResponse\");\n\n/**\n * For terseness.\n */\nexport function mkAmount(\n value: number,\n fraction: number,\n currency: string,\n): AmountJson {\n return { value, fraction, currency };\n}\n\n/**\n * Status of a coin.\n */\nexport enum CoinStatus {\n /**\n * Withdrawn and never shown to anybody.\n */\n Fresh = \"fresh\",\n\n /**\n * Fresh, but currently marked as \"suspended\", thus won't be used\n * for spending. Used for testing.\n */\n FreshSuspended = \"fresh-suspended\",\n\n /**\n * A coin that has been spent and refreshed.\n */\n Dormant = \"dormant\",\n}\n\n/**\n * Easy to process format for the public data of coins\n * managed by the wallet.\n */\nexport interface CoinDumpJson {\n coins: Array<{\n /**\n * The coin's denomination's public key.\n */\n denom_pub: DenominationPubKey;\n /**\n * Hash of denom_pub.\n */\n denom_pub_hash: string;\n /**\n * Value of the denomination (without any fees).\n */\n denom_value: string;\n /**\n * Public key of the coin.\n */\n coin_pub: string;\n /**\n * Base URL of the exchange for the coin.\n */\n exchange_base_url: string;\n /**\n * Public key of the parent coin.\n * Only present if this coin was obtained via refreshing.\n */\n refresh_parent_coin_pub: string | undefined;\n /**\n * Public key of the reserve for this coin.\n * Only present if this coin was obtained via refreshing.\n */\n withdrawal_reserve_pub: string | undefined;\n coin_status: CoinStatus;\n spend_allocation:\n | {\n id: string;\n amount: AmountString;\n }\n | undefined;\n /**\n * Information about the age restriction\n */\n ageCommitmentProof: AgeCommitmentProof | undefined;\n }>;\n}\n\nexport enum ConfirmPayResultType {\n Done = \"done\",\n Pending = \"pending\",\n}\n\n/**\n * Result for confirmPay\n */\nexport interface ConfirmPayResultDone {\n type: ConfirmPayResultType.Done;\n contractTerms: MerchantContractTerms;\n transactionId: TransactionIdStr;\n}\n\nexport interface ConfirmPayResultPending {\n type: ConfirmPayResultType.Pending;\n transactionId: TransactionIdStr;\n lastError: TalerErrorDetail | undefined;\n}\n\nexport const codecForTalerErrorDetail = (): Codec<TalerErrorDetail> =>\n buildCodecForObject<TalerErrorDetail>()\n .property(\"code\", codecForNumber())\n .property(\"when\", codecOptional(codecForAbsoluteTime))\n .property(\"hint\", codecOptional(codecForString()))\n .build(\"TalerErrorDetail\");\n\nexport type ConfirmPayResult = ConfirmPayResultDone | ConfirmPayResultPending;\n\nexport const codecForConfirmPayResultPending =\n (): Codec<ConfirmPayResultPending> =>\n buildCodecForObject<ConfirmPayResultPending>()\n .property(\"lastError\", codecOptional(codecForTalerErrorDetail()))\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"type\", codecForConstString(ConfirmPayResultType.Pending))\n .build(\"ConfirmPayResultPending\");\n\nexport const codecForConfirmPayResultDone = (): Codec<ConfirmPayResultDone> =>\n buildCodecForObject<ConfirmPayResultDone>()\n .property(\"type\", codecForConstString(ConfirmPayResultType.Done))\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"contractTerms\", codecForMerchantContractTerms())\n .build(\"ConfirmPayResultDone\");\n\nexport const codecForConfirmPayResult = (): Codec<ConfirmPayResult> =>\n buildCodecForUnion<ConfirmPayResult>()\n .discriminateOn(\"type\")\n .alternative(\n ConfirmPayResultType.Pending,\n codecForConfirmPayResultPending(),\n )\n .alternative(ConfirmPayResultType.Done, codecForConfirmPayResultDone())\n .build(\"ConfirmPayResult\");\n\n/**\n * Information about all sender wire details known to the wallet,\n * as well as exchanges that accept these wire types.\n */\nexport interface SenderWireInfos {\n /**\n * Mapping from exchange base url to list of accepted\n * wire types.\n */\n exchangeWireTypes: { [exchangeBaseUrl: string]: string[] };\n\n /**\n * Sender wire information stored in the wallet.\n */\n senderWires: string[];\n}\n\n/**\n * Request to mark a reserve as confirmed.\n */\nexport interface ConfirmReserveRequest {\n /**\n * Public key of then reserve that should be marked\n * as confirmed.\n */\n reservePub: string;\n}\n\nexport const codecForConfirmReserveRequest = (): Codec<ConfirmReserveRequest> =>\n buildCodecForObject<ConfirmReserveRequest>()\n .property(\"reservePub\", codecForString())\n .build(\"ConfirmReserveRequest\");\n\nexport interface PrepareRefundResult {\n proposalId: string;\n\n effectivePaid: AmountString;\n gone: AmountString;\n granted: AmountString;\n pending: boolean;\n awaiting: AmountString;\n\n info: OrderShortInfo;\n}\n\nexport interface PrepareTipResult {\n /**\n * Unique ID for the tip assigned by the wallet.\n * Typically different from the merchant-generated tip ID.\n *\n * @deprecated use transactionId instead\n */\n walletRewardId: string;\n\n /**\n * Tip transaction ID.\n */\n transactionId: string;\n\n /**\n * Has the tip already been accepted?\n */\n accepted: boolean;\n\n /**\n * Amount that the merchant gave.\n */\n rewardAmountRaw: AmountString;\n\n /**\n * Amount that arrived at the wallet.\n * Might be lower than the raw amount due to fees.\n */\n rewardAmountEffective: AmountString;\n\n /**\n * Base URL of the merchant backend giving then tip.\n */\n merchantBaseUrl: string;\n\n /**\n * Base URL of the exchange that is used to withdraw the tip.\n * Determined by the merchant, the wallet/user has no choice here.\n */\n exchangeBaseUrl: string;\n\n /**\n * Time when the tip will expire. After it expired, it can't be picked\n * up anymore.\n */\n expirationTimestamp: TalerProtocolTimestamp;\n}\n\nexport interface AcceptTipResponse {\n transactionId: TransactionIdStr;\n next_url?: string;\n}\n\nexport const codecForPrepareTipResult = (): Codec<PrepareTipResult> =>\n buildCodecForObject<PrepareTipResult>()\n .property(\"accepted\", codecForBoolean())\n .property(\"rewardAmountRaw\", codecForAmountString())\n .property(\"rewardAmountEffective\", codecForAmountString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"expirationTimestamp\", codecForTimestamp)\n .property(\"walletRewardId\", codecForString())\n .property(\"transactionId\", codecForString())\n .build(\"PrepareRewardResult\");\n\nexport interface BenchmarkResult {\n time: { [s: string]: number };\n repetitions: number;\n}\n\nexport enum PreparePayResultType {\n PaymentPossible = \"payment-possible\",\n InsufficientBalance = \"insufficient-balance\",\n AlreadyConfirmed = \"already-confirmed\",\n}\n\nexport const codecForPreparePayResultPaymentPossible =\n (): Codec<PreparePayResultPaymentPossible> =>\n buildCodecForObject<PreparePayResultPaymentPossible>()\n .property(\"amountEffective\", codecForAmountString())\n .property(\"amountRaw\", codecForAmountString())\n .property(\"contractTerms\", codecForMerchantContractTerms())\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"proposalId\", codecForString())\n .property(\"contractTermsHash\", codecForString())\n .property(\"talerUri\", codecForString())\n .property(\n \"status\",\n codecForConstString(PreparePayResultType.PaymentPossible),\n )\n .build(\"PreparePayResultPaymentPossible\");\n\n/**\n * Detailed reason for why the wallet's balance is insufficient.\n */\nexport interface PayMerchantInsufficientBalanceDetails {\n /**\n * Amount requested by the merchant.\n */\n amountRequested: AmountString;\n\n /**\n * Balance of type \"available\" (see balance.ts for definition).\n */\n balanceAvailable: AmountString;\n\n /**\n * Balance of type \"material\" (see balance.ts for definition).\n */\n balanceMaterial: AmountString;\n\n /**\n * Balance of type \"age-acceptable\" (see balance.ts for definition).\n */\n balanceAgeAcceptable: AmountString;\n\n /**\n * Balance of type \"merchant-acceptable\" (see balance.ts for definition).\n */\n balanceMerchantAcceptable: AmountString;\n\n /**\n * Balance of type \"merchant-depositable\" (see balance.ts for definition).\n */\n balanceMerchantDepositable: AmountString;\n\n /**\n * If the payment would succeed without fees\n * (i.e. balanceMerchantDepositable >= amountRequested),\n * this field contains an estimate of the amount that would additionally\n * be required to cover the fees.\n *\n * It is not possible to give an exact value here, since it depends\n * on the coin selection for the amount that would be additionally withdrawn.\n */\n feeGapEstimate: AmountString;\n}\n\nexport const codecForPayMerchantInsufficientBalanceDetails =\n (): Codec<PayMerchantInsufficientBalanceDetails> =>\n buildCodecForObject<PayMerchantInsufficientBalanceDetails>()\n .property(\"amountRequested\", codecForAmountString())\n .property(\"balanceAgeAcceptable\", codecForAmountString())\n .property(\"balanceAvailable\", codecForAmountString())\n .property(\"balanceMaterial\", codecForAmountString())\n .property(\"balanceMerchantAcceptable\", codecForAmountString())\n .property(\"balanceMerchantDepositable\", codecForAmountString())\n .property(\"feeGapEstimate\", codecForAmountString())\n .build(\"PayMerchantInsufficientBalanceDetails\");\n\nexport const codecForPreparePayResultInsufficientBalance =\n (): Codec<PreparePayResultInsufficientBalance> =>\n buildCodecForObject<PreparePayResultInsufficientBalance>()\n .property(\"amountRaw\", codecForAmountString())\n .property(\"contractTerms\", codecForAny())\n .property(\"talerUri\", codecForString())\n .property(\"proposalId\", codecForString())\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\n \"status\",\n codecForConstString(PreparePayResultType.InsufficientBalance),\n )\n .property(\n \"balanceDetails\",\n codecForPayMerchantInsufficientBalanceDetails(),\n )\n .build(\"PreparePayResultInsufficientBalance\");\n\nexport const codecForPreparePayResultAlreadyConfirmed =\n (): Codec<PreparePayResultAlreadyConfirmed> =>\n buildCodecForObject<PreparePayResultAlreadyConfirmed>()\n .property(\n \"status\",\n codecForConstString(PreparePayResultType.AlreadyConfirmed),\n )\n .property(\"amountEffective\", codecOptional(codecForAmountString()))\n .property(\"amountRaw\", codecForAmountString())\n .property(\"paid\", codecForBoolean())\n .property(\"talerUri\", codecForString())\n .property(\"contractTerms\", codecForAny())\n .property(\"contractTermsHash\", codecForString())\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"proposalId\", codecForString())\n .build(\"PreparePayResultAlreadyConfirmed\");\n\nexport const codecForPreparePayResult = (): Codec<PreparePayResult> =>\n buildCodecForUnion<PreparePayResult>()\n .discriminateOn(\"status\")\n .alternative(\n PreparePayResultType.AlreadyConfirmed,\n codecForPreparePayResultAlreadyConfirmed(),\n )\n .alternative(\n PreparePayResultType.InsufficientBalance,\n codecForPreparePayResultInsufficientBalance(),\n )\n .alternative(\n PreparePayResultType.PaymentPossible,\n codecForPreparePayResultPaymentPossible(),\n )\n .build(\"PreparePayResult\");\n\n/**\n * Result of a prepare pay operation.\n */\nexport type PreparePayResult =\n | PreparePayResultInsufficientBalance\n | PreparePayResultAlreadyConfirmed\n | PreparePayResultPaymentPossible;\n\n/**\n * Payment is possible.\n */\nexport interface PreparePayResultPaymentPossible {\n status: PreparePayResultType.PaymentPossible;\n transactionId: TransactionIdStr;\n /**\n * @deprecated use transactionId instead\n */\n proposalId: string;\n contractTerms: MerchantContractTerms;\n contractTermsHash: string;\n amountRaw: AmountString;\n amountEffective: AmountString;\n talerUri: string;\n}\n\nexport interface PreparePayResultInsufficientBalance {\n status: PreparePayResultType.InsufficientBalance;\n transactionId: TransactionIdStr;\n /**\n * @deprecated use transactionId\n */\n proposalId: string;\n contractTerms: MerchantContractTerms;\n amountRaw: AmountString;\n talerUri: string;\n balanceDetails: PayMerchantInsufficientBalanceDetails;\n}\n\nexport interface PreparePayResultAlreadyConfirmed {\n status: PreparePayResultType.AlreadyConfirmed;\n transactionId: TransactionIdStr;\n contractTerms: MerchantContractTerms;\n paid: boolean;\n amountRaw: AmountString;\n amountEffective: AmountString | undefined;\n contractTermsHash: string;\n /**\n * @deprecated use transactionId\n */\n proposalId: string;\n talerUri: string;\n}\n\nexport interface BankWithdrawDetails {\n selectionDone: boolean;\n transferDone: boolean;\n amount: AmountJson;\n senderWire?: string;\n suggestedExchange?: string;\n confirmTransferUrl?: string;\n wireTypes: string[];\n}\n\nexport interface AcceptWithdrawalResponse {\n reservePub: string;\n confirmTransferUrl?: string;\n transactionId: TransactionIdStr;\n}\n\n/**\n * Details about a purchase, including refund status.\n */\nexport interface PurchaseDetails {\n contractTerms: Record<string, undefined>;\n hasRefund: boolean;\n totalRefundAmount: AmountJson;\n totalRefundAndRefreshFees: AmountJson;\n}\n\nexport interface WalletDiagnostics {\n walletManifestVersion: string;\n walletManifestDisplayVersion: string;\n errors: string[];\n firefoxIdbProblem: boolean;\n dbOutdated: boolean;\n}\n\nexport interface TalerErrorDetail {\n code: TalerErrorCode;\n when?: AbsoluteTime;\n hint?: string;\n [x: string]: unknown;\n}\n\n/**\n * Minimal information needed about a planchet for unblinding a signature.\n *\n * Can be a withdrawal/tipping/refresh planchet.\n */\nexport interface PlanchetUnblindInfo {\n denomPub: DenominationPubKey;\n blindingKey: string;\n}\n\nexport interface WithdrawalPlanchet {\n coinPub: string;\n coinPriv: string;\n reservePub: string;\n denomPubHash: string;\n denomPub: DenominationPubKey;\n blindingKey: string;\n withdrawSig: string;\n coinEv: CoinEnvelope;\n coinValue: AmountJson;\n coinEvHash: string;\n ageCommitmentProof?: AgeCommitmentProof;\n}\n\nexport interface PlanchetCreationRequest {\n secretSeed: string;\n coinIndex: number;\n value: AmountJson;\n feeWithdraw: AmountJson;\n denomPub: DenominationPubKey;\n reservePub: string;\n reservePriv: string;\n restrictAge?: number;\n}\n\n/**\n * Reasons for why a coin is being refreshed.\n */\nexport enum RefreshReason {\n Manual = \"manual\",\n PayMerchant = \"pay-merchant\",\n PayDeposit = \"pay-deposit\",\n PayPeerPush = \"pay-peer-push\",\n PayPeerPull = \"pay-peer-pull\",\n Refund = \"refund\",\n AbortPay = \"abort-pay\",\n AbortDeposit = \"abort-deposit\",\n AbortPeerPushDebit = \"abort-peer-push-debit\",\n Recoup = \"recoup\",\n BackupRestored = \"backup-restored\",\n Scheduled = \"scheduled\",\n}\n\n/**\n * Request to refresh a single coin.\n */\nexport interface CoinRefreshRequest {\n readonly coinPub: string;\n readonly amount: AmountString;\n}\n\n/**\n * Wrapper for refresh group IDs.\n */\nexport interface RefreshGroupId {\n readonly refreshGroupId: string;\n}\n\n/**\n * Private data required to make a deposit permission.\n */\nexport interface DepositInfo {\n exchangeBaseUrl: string;\n contractTermsHash: string;\n coinPub: string;\n coinPriv: string;\n spendAmount: AmountJson;\n timestamp: TalerProtocolTimestamp;\n refundDeadline: TalerProtocolTimestamp;\n merchantPub: string;\n feeDeposit: AmountJson;\n wireInfoHash: string;\n denomKeyType: DenomKeyType;\n denomPubHash: string;\n denomSig: UnblindedSignature;\n\n requiredMinimumAge?: number;\n\n ageCommitmentProof?: AgeCommitmentProof;\n}\n\nexport interface ExchangesShortListResponse {\n exchanges: ShortExchangeListItem[];\n}\n\nexport interface ExchangesListResponse {\n exchanges: ExchangeListItem[];\n}\n\nexport interface ExchangeDetailedResponse {\n exchange: ExchangeFullDetails;\n}\n\nexport interface WalletCoreVersion {\n /**\n * @deprecated\n */\n hash: string | undefined;\n version: string;\n exchange: string;\n merchant: string;\n bank: string;\n /**\n * @deprecated will be removed\n */\n devMode: boolean;\n}\n\nexport interface KnownBankAccountsInfo {\n uri: PaytoUri;\n kyc_completed: boolean;\n currency: string;\n alias: string;\n}\n\nexport interface KnownBankAccounts {\n accounts: KnownBankAccountsInfo[];\n}\n\n/**\n * Wire fee for one wire method\n */\nexport interface WireFee {\n /**\n * Fee for wire transfers.\n */\n wireFee: AmountString;\n\n /**\n * Fees to close and refund a reserve.\n */\n closingFee: AmountString;\n\n /**\n * Start date of the fee.\n */\n startStamp: TalerProtocolTimestamp;\n\n /**\n * End date of the fee.\n */\n endStamp: TalerProtocolTimestamp;\n\n /**\n * Signature made by the exchange master key.\n */\n sig: string;\n}\n\n/**\n * Information about one of the exchange's bank accounts.\n */\nexport interface ExchangeAccount {\n payto_uri: string;\n master_sig: string;\n}\n\nexport type WireFeeMap = { [wireMethod: string]: WireFee[] };\n\nexport interface WireInfo {\n feesForType: WireFeeMap;\n accounts: ExchangeAccount[];\n}\n\nexport interface ExchangeGlobalFees {\n startDate: TalerProtocolTimestamp;\n endDate: TalerProtocolTimestamp;\n\n historyFee: AmountString;\n accountFee: AmountString;\n purseFee: AmountString;\n\n historyTimeout: TalerProtocolDuration;\n purseTimeout: TalerProtocolDuration;\n\n purseLimit: number;\n\n signature: string;\n}\n\nconst codecForExchangeAccount = (): Codec<ExchangeAccount> =>\n buildCodecForObject<ExchangeAccount>()\n .property(\"payto_uri\", codecForString())\n .property(\"master_sig\", codecForString())\n .build(\"codecForExchangeAccount\");\n\nconst codecForWireFee = (): Codec<WireFee> =>\n buildCodecForObject<WireFee>()\n .property(\"sig\", codecForString())\n .property(\"wireFee\", codecForAmountString())\n .property(\"closingFee\", codecForAmountString())\n .property(\"startStamp\", codecForTimestamp)\n .property(\"endStamp\", codecForTimestamp)\n .build(\"codecForWireFee\");\n\nconst codecForWireInfo = (): Codec<WireInfo> =>\n buildCodecForObject<WireInfo>()\n .property(\"feesForType\", codecForMap(codecForList(codecForWireFee())))\n .property(\"accounts\", codecForList(codecForExchangeAccount()))\n .build(\"codecForWireInfo\");\n\nexport interface DenominationInfo {\n /**\n * Value of one coin of the denomination.\n */\n value: AmountString;\n\n /**\n * Hash of the denomination public key.\n * Stored in the database for faster lookups.\n */\n denomPubHash: string;\n\n denomPub: DenominationPubKey;\n\n /**\n * Fee for withdrawing.\n */\n feeWithdraw: AmountString;\n\n /**\n * Fee for depositing.\n */\n feeDeposit: AmountString;\n\n /**\n * Fee for refreshing.\n */\n feeRefresh: AmountString;\n\n /**\n * Fee for refunding.\n */\n feeRefund: AmountString;\n\n /**\n * Validity start date of the denomination.\n */\n stampStart: TalerProtocolTimestamp;\n\n /**\n * Date after which the currency can't be withdrawn anymore.\n */\n stampExpireWithdraw: TalerProtocolTimestamp;\n\n /**\n * Date after the denomination officially doesn't exist anymore.\n */\n stampExpireLegal: TalerProtocolTimestamp;\n\n /**\n * Data after which coins of this denomination can't be deposited anymore.\n */\n stampExpireDeposit: TalerProtocolTimestamp;\n\n exchangeBaseUrl: string;\n}\n\nexport type DenomOperation = \"deposit\" | \"withdraw\" | \"refresh\" | \"refund\";\nexport type DenomOperationMap<T> = { [op in DenomOperation]: T };\n\nexport interface FeeDescription {\n group: string;\n from: AbsoluteTime;\n until: AbsoluteTime;\n fee?: AmountString;\n}\n\nexport interface FeeDescriptionPair {\n group: string;\n from: AbsoluteTime;\n until: AbsoluteTime;\n left?: AmountString;\n right?: AmountString;\n}\n\nexport interface TimePoint<T> {\n id: string;\n group: string;\n fee: AmountString;\n type: \"start\" | \"end\";\n moment: AbsoluteTime;\n denom: T;\n}\n\nexport interface ExchangeFullDetails {\n exchangeBaseUrl: string;\n currency: string;\n paytoUris: string[];\n auditors: ExchangeAuditor[];\n wireInfo: WireInfo;\n denomFees: DenomOperationMap<FeeDescription[]>;\n transferFees: Record<string, FeeDescription[]>;\n globalFees: FeeDescription[];\n}\n\nexport enum ExchangeTosStatus {\n Pending = \"pending\",\n Proposed = \"proposed\",\n Accepted = \"accepted\",\n}\n\nexport enum ExchangeEntryStatus {\n Preset = \"preset\",\n Ephemeral = \"ephemeral\",\n Used = \"used\",\n}\n\nexport enum ExchangeUpdateStatus {\n Initial = \"initial\",\n InitialUpdate = \"initial(update)\",\n Suspended = \"suspended\",\n Failed = \"failed\",\n OutdatedUpdate = \"outdated(update)\",\n Ready = \"ready\",\n ReadyUpdate = \"ready(update)\",\n}\n\nexport interface OperationErrorInfo {\n error: TalerErrorDetail;\n}\n\nexport interface ShortExchangeListItem {\n exchangeBaseUrl: string;\n}\n\n// FIXME: This should probably include some error status.\nexport interface ExchangeListItem {\n exchangeBaseUrl: string;\n currency: string | undefined;\n paytoUris: string[];\n tosStatus: ExchangeTosStatus;\n exchangeEntryStatus: ExchangeEntryStatus;\n exchangeUpdateStatus: ExchangeUpdateStatus;\n ageRestrictionOptions: number[];\n\n /**\n * Information about the last error that occurred when trying\n * to update the exchange info.\n */\n lastUpdateErrorInfo?: OperationErrorInfo;\n}\n\nconst codecForAuditorDenomSig = (): Codec<AuditorDenomSig> =>\n buildCodecForObject<AuditorDenomSig>()\n .property(\"denom_pub_h\", codecForString())\n .property(\"auditor_sig\", codecForString())\n .build(\"AuditorDenomSig\");\n\nconst codecForExchangeAuditor = (): Codec<ExchangeAuditor> =>\n buildCodecForObject<ExchangeAuditor>()\n .property(\"auditor_pub\", codecForString())\n .property(\"auditor_url\", codecForString())\n .property(\"denomination_keys\", codecForList(codecForAuditorDenomSig()))\n .build(\"codecForExchangeAuditor\");\n\nexport const codecForFeeDescriptionPair = (): Codec<FeeDescriptionPair> =>\n buildCodecForObject<FeeDescriptionPair>()\n .property(\"group\", codecForString())\n .property(\"from\", codecForAbsoluteTime)\n .property(\"until\", codecForAbsoluteTime)\n .property(\"left\", codecOptional(codecForAmountString()))\n .property(\"right\", codecOptional(codecForAmountString()))\n .build(\"FeeDescriptionPair\");\n\nexport const codecForFeeDescription = (): Codec<FeeDescription> =>\n buildCodecForObject<FeeDescription>()\n .property(\"group\", codecForString())\n .property(\"from\", codecForAbsoluteTime)\n .property(\"until\", codecForAbsoluteTime)\n .property(\"fee\", codecOptional(codecForAmountString()))\n .build(\"FeeDescription\");\n\nexport const codecForFeesByOperations = (): Codec<\n DenomOperationMap<FeeDescription[]>\n> =>\n buildCodecForObject<DenomOperationMap<FeeDescription[]>>()\n .property(\"deposit\", codecForList(codecForFeeDescription()))\n .property(\"withdraw\", codecForList(codecForFeeDescription()))\n .property(\"refresh\", codecForList(codecForFeeDescription()))\n .property(\"refund\", codecForList(codecForFeeDescription()))\n .build(\"DenomOperationMap\");\n\nexport const codecForExchangeFullDetails = (): Codec<ExchangeFullDetails> =>\n buildCodecForObject<ExchangeFullDetails>()\n .property(\"currency\", codecForString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"paytoUris\", codecForList(codecForString()))\n .property(\"auditors\", codecForList(codecForExchangeAuditor()))\n .property(\"wireInfo\", codecForWireInfo())\n .property(\"denomFees\", codecForFeesByOperations())\n .property(\n \"transferFees\",\n codecForMap(codecForList(codecForFeeDescription())),\n )\n .property(\"globalFees\", codecForList(codecForFeeDescription()))\n .build(\"ExchangeFullDetails\");\n\nexport const codecForExchangeListItem = (): Codec<ExchangeListItem> =>\n buildCodecForObject<ExchangeListItem>()\n .property(\"currency\", codecForString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"paytoUris\", codecForList(codecForString()))\n .property(\"tosStatus\", codecForAny())\n .property(\"exchangeEntryStatus\", codecForAny())\n .property(\"exchangeUpdateStatus\", codecForAny())\n .property(\"ageRestrictionOptions\", codecForList(codecForNumber()))\n .build(\"ExchangeListItem\");\n\nexport const codecForExchangesListResponse = (): Codec<ExchangesListResponse> =>\n buildCodecForObject<ExchangesListResponse>()\n .property(\"exchanges\", codecForList(codecForExchangeListItem()))\n .build(\"ExchangesListResponse\");\n\nexport interface AcceptManualWithdrawalResult {\n /**\n * Payto URIs that can be used to fund the withdrawal.\n */\n exchangePaytoUris: string[];\n\n /**\n * Public key of the newly created reserve.\n */\n reservePub: string;\n\n transactionId: TransactionIdStr;\n}\n\nexport interface ManualWithdrawalDetails {\n /**\n * Did the user accept the current version of the exchange's\n * terms of service?\n */\n tosAccepted: boolean;\n\n /**\n * Amount that the user will transfer to the exchange.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that will be added to the user's wallet balance.\n */\n amountEffective: AmountString;\n\n /**\n * Number of coins that would be used for withdrawal.\n *\n * The UIs should warn if this number is too high (roughly at >100).\n */\n numCoins: number;\n\n /**\n * Ways to pay the exchange.\n */\n paytoUris: string[];\n\n /**\n * If the exchange supports age-restricted coins it will return\n * the array of ages.\n */\n ageRestrictionOptions?: number[];\n}\n\n/**\n * Selected denominations withn some extra info.\n */\nexport interface DenomSelectionState {\n totalCoinValue: AmountString;\n totalWithdrawCost: AmountString;\n selectedDenoms: {\n denomPubHash: string;\n count: number;\n }[];\n}\n\n/**\n * Information about what will happen doing a withdrawal.\n *\n * Sent to the wallet frontend to be rendered and shown to the user.\n */\nexport interface ExchangeWithdrawalDetails {\n exchangePaytoUris: string[];\n\n /**\n * Filtered wire info to send to the bank.\n */\n exchangeWireAccounts: string[];\n\n /**\n * Selected denominations for withdraw.\n */\n selectedDenoms: DenomSelectionState;\n\n /**\n * Did the user already accept the current terms of service for the exchange?\n */\n termsOfServiceAccepted: boolean;\n\n /**\n * The earliest deposit expiration of the selected coins.\n */\n earliestDepositExpiration: TalerProtocolTimestamp;\n\n /**\n * Number of currently offered denominations.\n */\n numOfferedDenoms: number;\n\n /**\n * Public keys of trusted auditors for the currency we're withdrawing.\n */\n trustedAuditorPubs: string[];\n\n /**\n * Result of checking the wallet's version\n * against the exchange's version.\n *\n * Older exchanges don't return version information.\n */\n versionMatch: VersionMatchResult | undefined;\n\n /**\n * Libtool-style version string for the exchange or \"unknown\"\n * for older exchanges.\n */\n exchangeVersion: string;\n\n /**\n * Libtool-style version string for the wallet.\n */\n walletVersion: string;\n\n /**\n * Amount that will be subtracted from the reserve's balance.\n */\n withdrawalAmountRaw: AmountString;\n\n /**\n * Amount that will actually be added to the wallet's balance.\n */\n withdrawalAmountEffective: AmountString;\n\n /**\n * If the exchange supports age-restricted coins it will return\n * the array of ages.\n *\n */\n ageRestrictionOptions?: number[];\n}\n\nexport interface GetExchangeTosResult {\n /**\n * Markdown version of the current ToS.\n */\n content: string;\n\n /**\n * Version tag of the current ToS.\n */\n currentEtag: string;\n\n /**\n * Version tag of the last ToS that the user has accepted,\n * if any.\n */\n acceptedEtag: string | undefined;\n\n /**\n * Accepted content type\n */\n contentType: string;\n\n tosStatus: ExchangeTosStatus;\n}\n\nexport interface TestPayArgs {\n merchantBaseUrl: string;\n merchantAuthToken?: string;\n amount: AmountString;\n summary: string;\n forcedCoinSel?: ForcedCoinSel;\n}\n\nexport const codecForTestPayArgs = (): Codec<TestPayArgs> =>\n buildCodecForObject<TestPayArgs>()\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"merchantAuthToken\", codecOptional(codecForString()))\n .property(\"amount\", codecForAmountString())\n .property(\"summary\", codecForString())\n .property(\"forcedCoinSel\", codecForAny())\n .build(\"TestPayArgs\");\n\nexport interface IntegrationTestArgs {\n exchangeBaseUrl: string;\n corebankApiBaseUrl: string;\n merchantBaseUrl: string;\n merchantAuthToken?: string;\n amountToWithdraw: AmountString;\n amountToSpend: AmountString;\n}\n\nexport const codecForIntegrationTestArgs = (): Codec<IntegrationTestArgs> =>\n buildCodecForObject<IntegrationTestArgs>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"merchantAuthToken\", codecOptional(codecForString()))\n .property(\"amountToSpend\", codecForAmountString())\n .property(\"amountToWithdraw\", codecForAmountString())\n .property(\"corebankApiBaseUrl\", codecForString())\n .build(\"IntegrationTestArgs\");\n\nexport interface IntegrationTestV2Args {\n exchangeBaseUrl: string;\n corebankApiBaseUrl: string;\n merchantBaseUrl: string;\n merchantAuthToken?: string;\n}\n\nexport const codecForIntegrationTestV2Args = (): Codec<IntegrationTestV2Args> =>\n buildCodecForObject<IntegrationTestV2Args>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"merchantAuthToken\", codecOptional(codecForString()))\n .property(\"corebankApiBaseUrl\", codecForString())\n .build(\"IntegrationTestV2Args\");\n\nexport interface AddExchangeRequest {\n exchangeBaseUrl: string;\n masterPub?: string;\n forceUpdate?: boolean;\n}\n\nexport const codecForAddExchangeRequest = (): Codec<AddExchangeRequest> =>\n buildCodecForObject<AddExchangeRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"forceUpdate\", codecOptional(codecForBoolean()))\n .property(\"masterPub\", codecOptional(codecForString()))\n .build(\"AddExchangeRequest\");\n\nexport interface UpdateExchangeEntryRequest {\n exchangeBaseUrl: string;\n}\n\nexport const codecForUpdateExchangeEntryRequest =\n (): Codec<UpdateExchangeEntryRequest> =>\n buildCodecForObject<UpdateExchangeEntryRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .build(\"UpdateExchangeEntryRequest\");\n\nexport interface ForceExchangeUpdateRequest {\n exchangeBaseUrl: string;\n}\n\nexport const codecForForceExchangeUpdateRequest =\n (): Codec<AddExchangeRequest> =>\n buildCodecForObject<AddExchangeRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .build(\"AddExchangeRequest\");\n\nexport interface GetExchangeTosRequest {\n exchangeBaseUrl: string;\n acceptedFormat?: string[];\n}\n\nexport const codecForGetExchangeTosRequest = (): Codec<GetExchangeTosRequest> =>\n buildCodecForObject<GetExchangeTosRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"acceptedFormat\", codecOptional(codecForList(codecForString())))\n .build(\"GetExchangeTosRequest\");\n\nexport interface AcceptManualWithdrawalRequest {\n exchangeBaseUrl: string;\n amount: AmountString;\n restrictAge?: number;\n}\n\nexport const codecForAcceptManualWithdrawalRequet =\n (): Codec<AcceptManualWithdrawalRequest> =>\n buildCodecForObject<AcceptManualWithdrawalRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"amount\", codecForAmountString())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"AcceptManualWithdrawalRequest\");\n\nexport interface GetWithdrawalDetailsForAmountRequest {\n exchangeBaseUrl: string;\n amount: AmountString;\n restrictAge?: number;\n}\n\nexport interface AcceptBankIntegratedWithdrawalRequest {\n talerWithdrawUri: string;\n exchangeBaseUrl: string;\n forcedDenomSel?: ForcedDenomSel;\n restrictAge?: number;\n}\n\nexport const codecForAcceptBankIntegratedWithdrawalRequest =\n (): Codec<AcceptBankIntegratedWithdrawalRequest> =>\n buildCodecForObject<AcceptBankIntegratedWithdrawalRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"talerWithdrawUri\", codecForString())\n .property(\"forcedDenomSel\", codecForAny())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"AcceptBankIntegratedWithdrawalRequest\");\n\nexport const codecForGetWithdrawalDetailsForAmountRequest =\n (): Codec<GetWithdrawalDetailsForAmountRequest> =>\n buildCodecForObject<GetWithdrawalDetailsForAmountRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"amount\", codecForAmountString())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"GetWithdrawalDetailsForAmountRequest\");\n\nexport interface AcceptExchangeTosRequest {\n exchangeBaseUrl: string;\n etag: string | undefined;\n}\n\nexport const codecForAcceptExchangeTosRequest =\n (): Codec<AcceptExchangeTosRequest> =>\n buildCodecForObject<AcceptExchangeTosRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"etag\", codecOptional(codecForString()))\n .build(\"AcceptExchangeTosRequest\");\n\nexport interface AcceptRefundRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForApplyRefundRequest = (): Codec<AcceptRefundRequest> =>\n buildCodecForObject<AcceptRefundRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"AcceptRefundRequest\");\n\nexport interface ApplyRefundFromPurchaseIdRequest {\n purchaseId: string;\n}\n\nexport const codecForApplyRefundFromPurchaseIdRequest =\n (): Codec<ApplyRefundFromPurchaseIdRequest> =>\n buildCodecForObject<ApplyRefundFromPurchaseIdRequest>()\n .property(\"purchaseId\", codecForString())\n .build(\"ApplyRefundFromPurchaseIdRequest\");\n\nexport interface GetWithdrawalDetailsForUriRequest {\n talerWithdrawUri: string;\n restrictAge?: number;\n}\n\nexport const codecForGetWithdrawalDetailsForUri =\n (): Codec<GetWithdrawalDetailsForUriRequest> =>\n buildCodecForObject<GetWithdrawalDetailsForUriRequest>()\n .property(\"talerWithdrawUri\", codecForString())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"GetWithdrawalDetailsForUriRequest\");\n\nexport interface ListKnownBankAccountsRequest {\n currency?: string;\n}\n\nexport const codecForListKnownBankAccounts =\n (): Codec<ListKnownBankAccountsRequest> =>\n buildCodecForObject<ListKnownBankAccountsRequest>()\n .property(\"currency\", codecOptional(codecForString()))\n .build(\"ListKnownBankAccountsRequest\");\n\nexport interface AddKnownBankAccountsRequest {\n payto: string;\n alias: string;\n currency: string;\n}\nexport const codecForAddKnownBankAccounts =\n (): Codec<AddKnownBankAccountsRequest> =>\n buildCodecForObject<AddKnownBankAccountsRequest>()\n .property(\"payto\", codecForString())\n .property(\"alias\", codecForString())\n .property(\"currency\", codecForString())\n .build(\"AddKnownBankAccountsRequest\");\n\nexport interface ForgetKnownBankAccountsRequest {\n payto: string;\n}\n\nexport const codecForForgetKnownBankAccounts =\n (): Codec<ForgetKnownBankAccountsRequest> =>\n buildCodecForObject<ForgetKnownBankAccountsRequest>()\n .property(\"payto\", codecForString())\n .build(\"ForgetKnownBankAccountsRequest\");\n\nexport interface AbortProposalRequest {\n proposalId: string;\n}\n\nexport const codecForAbortProposalRequest = (): Codec<AbortProposalRequest> =>\n buildCodecForObject<AbortProposalRequest>()\n .property(\"proposalId\", codecForString())\n .build(\"AbortProposalRequest\");\n\nexport interface GetContractTermsDetailsRequest {\n proposalId: string;\n}\n\nexport const codecForGetContractTermsDetails =\n (): Codec<GetContractTermsDetailsRequest> =>\n buildCodecForObject<GetContractTermsDetailsRequest>()\n .property(\"proposalId\", codecForString())\n .build(\"GetContractTermsDetails\");\n\nexport interface PreparePayRequest {\n talerPayUri: string;\n}\n\nexport const codecForPreparePayRequest = (): Codec<PreparePayRequest> =>\n buildCodecForObject<PreparePayRequest>()\n .property(\"talerPayUri\", codecForString())\n .build(\"PreparePay\");\n\nexport interface SharePaymentRequest {\n merchantBaseUrl: string;\n orderId: string;\n}\nexport const codecForSharePaymentRequest = (): Codec<SharePaymentRequest> =>\n buildCodecForObject<SharePaymentRequest>()\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"orderId\", codecForString())\n .build(\"SharePaymentRequest\");\n\nexport interface SharePaymentResult {\n privatePayUri: string;\n}\nexport const codecForSharePaymentResult = (): Codec<SharePaymentResult> =>\n buildCodecForObject<SharePaymentResult>()\n .property(\"privatePayUri\", codecForString())\n .build(\"SharePaymentResult\");\n\nexport interface PreparePayTemplateRequest {\n talerPayTemplateUri: string;\n templateParams: Record<string, string>;\n}\n\nexport const codecForPreparePayTemplateRequest =\n (): Codec<PreparePayTemplateRequest> =>\n buildCodecForObject<PreparePayTemplateRequest>()\n .property(\"talerPayTemplateUri\", codecForString())\n .property(\"templateParams\", codecForAny())\n .build(\"PreparePayTemplate\");\n\nexport interface ConfirmPayRequest {\n /**\n * @deprecated use transactionId instead\n */\n proposalId?: string;\n transactionId?: string;\n sessionId?: string;\n forcedCoinSel?: ForcedCoinSel;\n}\n\nexport const codecForConfirmPayRequest = (): Codec<ConfirmPayRequest> =>\n buildCodecForObject<ConfirmPayRequest>()\n .property(\"proposalId\", codecOptional(codecForString()))\n .property(\"transactionId\", codecOptional(codecForString()))\n .property(\"sessionId\", codecOptional(codecForString()))\n .property(\"forcedCoinSel\", codecForAny())\n .build(\"ConfirmPay\");\n\nexport interface CoreApiRequestEnvelope {\n id: string;\n operation: string;\n args: unknown;\n}\n\nexport type CoreApiResponse = CoreApiResponseSuccess | CoreApiResponseError;\n\nexport type CoreApiMessageEnvelope = CoreApiResponse | CoreApiNotification;\n\nexport interface CoreApiNotification {\n type: \"notification\";\n payload: unknown;\n}\n\nexport interface CoreApiResponseSuccess {\n // To distinguish the message from notifications\n type: \"response\";\n operation: string;\n id: string;\n result: unknown;\n}\n\nexport interface CoreApiResponseError {\n // To distinguish the message from notifications\n type: \"error\";\n operation: string;\n id: string;\n error: TalerErrorDetail;\n}\n\nexport interface WithdrawTestBalanceRequest {\n amount: AmountString;\n /**\n * Corebank API base URL.\n */\n corebankApiBaseUrl: string;\n exchangeBaseUrl: string;\n forcedDenomSel?: ForcedDenomSel;\n}\n\n/**\n * Request to the crypto worker to make a sync signature.\n */\nexport interface MakeSyncSignatureRequest {\n accountPriv: string;\n oldHash: string | undefined;\n newHash: string;\n}\n\n/**\n * Planchet for a coin during refresh.\n */\nexport interface RefreshPlanchetInfo {\n /**\n * Public key for the coin.\n */\n coinPub: string;\n\n /**\n * Private key for the coin.\n */\n coinPriv: string;\n\n /**\n * Blinded public key.\n */\n coinEv: CoinEnvelope;\n\n coinEvHash: string;\n\n /**\n * Blinding key used.\n */\n blindingKey: string;\n\n maxAge: number;\n ageCommitmentProof?: AgeCommitmentProof;\n}\n\n/**\n * Strategy for loading recovery information.\n */\nexport enum RecoveryMergeStrategy {\n /**\n * Keep the local wallet root key, import and take over providers.\n */\n Ours = \"ours\",\n\n /**\n * Migrate to the wallet root key from the recovery information.\n */\n Theirs = \"theirs\",\n}\n\n/**\n * Load recovery information into the wallet.\n */\nexport interface RecoveryLoadRequest {\n recovery: BackupRecovery;\n strategy?: RecoveryMergeStrategy;\n}\n\nexport const codecForWithdrawTestBalance =\n (): Codec<WithdrawTestBalanceRequest> =>\n buildCodecForObject<WithdrawTestBalanceRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"forcedDenomSel\", codecForAny())\n .property(\"corebankApiBaseUrl\", codecForString())\n .build(\"WithdrawTestBalanceRequest\");\n\nexport interface SetCoinSuspendedRequest {\n coinPub: string;\n suspended: boolean;\n}\n\nexport const codecForSetCoinSuspendedRequest =\n (): Codec<SetCoinSuspendedRequest> =>\n buildCodecForObject<SetCoinSuspendedRequest>()\n .property(\"coinPub\", codecForString())\n .property(\"suspended\", codecForBoolean())\n .build(\"SetCoinSuspendedRequest\");\n\nexport interface ForceRefreshRequest {\n coinPubList: string[];\n}\n\nexport const codecForForceRefreshRequest = (): Codec<ForceRefreshRequest> =>\n buildCodecForObject<ForceRefreshRequest>()\n .property(\"coinPubList\", codecForList(codecForString()))\n .build(\"ForceRefreshRequest\");\n\nexport interface PrepareRefundRequest {\n talerRefundUri: string;\n}\n\nexport interface StartRefundQueryForUriResponse {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForPrepareRefundRequest = (): Codec<PrepareRefundRequest> =>\n buildCodecForObject<PrepareRefundRequest>()\n .property(\"talerRefundUri\", codecForString())\n .build(\"PrepareRefundRequest\");\n\nexport interface StartRefundQueryRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForStartRefundQueryRequest =\n (): Codec<StartRefundQueryRequest> =>\n buildCodecForObject<StartRefundQueryRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"StartRefundQueryRequest\");\n\nexport interface PrepareRewardRequest {\n talerRewardUri: string;\n}\n\nexport const codecForPrepareRewardRequest = (): Codec<PrepareRewardRequest> =>\n buildCodecForObject<PrepareRewardRequest>()\n .property(\"talerRewardUri\", codecForString())\n .build(\"PrepareRewardRequest\");\n\nexport interface AcceptRewardRequest {\n walletRewardId: string;\n}\n\nexport const codecForAcceptTipRequest = (): Codec<AcceptRewardRequest> =>\n buildCodecForObject<AcceptRewardRequest>()\n .property(\"walletRewardId\", codecForString())\n .build(\"AcceptRewardRequest\");\n\nexport interface FailTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForFailTransactionRequest =\n (): Codec<FailTransactionRequest> =>\n buildCodecForObject<FailTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"FailTransactionRequest\");\n\nexport interface SuspendTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForSuspendTransaction =\n (): Codec<SuspendTransactionRequest> =>\n buildCodecForObject<AbortTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"SuspendTransactionRequest\");\n\nexport interface ResumeTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForResumeTransaction = (): Codec<ResumeTransactionRequest> =>\n buildCodecForObject<ResumeTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"ResumeTransactionRequest\");\n\nexport interface AbortTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport interface FailTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForAbortTransaction = (): Codec<AbortTransactionRequest> =>\n buildCodecForObject<AbortTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"AbortTransactionRequest\");\n\nexport interface DepositGroupFees {\n coin: AmountString;\n wire: AmountString;\n refresh: AmountString;\n}\n\nexport interface CreateDepositGroupRequest {\n /**\n * Pre-allocated transaction ID.\n * Allows clients to easily handle notifications\n * that occur while the operation has been created but\n * before the creation request has returned.\n */\n transactionId?: string;\n depositPaytoUri: string;\n amount: AmountString;\n}\n\nexport interface PrepareDepositRequest {\n depositPaytoUri: string;\n amount: AmountString;\n}\nexport const codecForPrepareDepositRequest = (): Codec<PrepareDepositRequest> =>\n buildCodecForObject<PrepareDepositRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"depositPaytoUri\", codecForString())\n .build(\"PrepareDepositRequest\");\n\nexport interface PrepareDepositResponse {\n totalDepositCost: AmountString;\n effectiveDepositAmount: AmountString;\n fees: DepositGroupFees;\n}\n\nexport const codecForCreateDepositGroupRequest =\n (): Codec<CreateDepositGroupRequest> =>\n buildCodecForObject<CreateDepositGroupRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"depositPaytoUri\", codecForString())\n .property(\"transactionId\", codecOptional(codecForString()))\n .build(\"CreateDepositGroupRequest\");\n\nexport interface CreateDepositGroupResponse {\n depositGroupId: string;\n transactionId: TransactionIdStr;\n}\n\nexport interface TxIdResponse {\n transactionId: TransactionIdStr;\n}\n\nexport interface WithdrawUriInfoResponse {\n amount: AmountString;\n defaultExchangeBaseUrl?: string;\n possibleExchanges: ExchangeListItem[];\n}\n\nexport const codecForWithdrawUriInfoResponse =\n (): Codec<WithdrawUriInfoResponse> =>\n buildCodecForObject<WithdrawUriInfoResponse>()\n .property(\"amount\", codecForAmountString())\n .property(\"defaultExchangeBaseUrl\", codecOptional(codecForString()))\n .property(\"possibleExchanges\", codecForList(codecForExchangeListItem()))\n .build(\"WithdrawUriInfoResponse\");\n\nexport interface WalletCurrencyInfo {\n trustedAuditors: {\n currency: string;\n auditorPub: string;\n auditorBaseUrl: string;\n }[];\n trustedExchanges: {\n currency: string;\n exchangeMasterPub: string;\n exchangeBaseUrl: string;\n }[];\n}\n\nexport interface DeleteTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport interface RetryTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForDeleteTransactionRequest =\n (): Codec<DeleteTransactionRequest> =>\n buildCodecForObject<DeleteTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"DeleteTransactionRequest\");\n\nexport const codecForRetryTransactionRequest =\n (): Codec<RetryTransactionRequest> =>\n buildCodecForObject<RetryTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"RetryTransactionRequest\");\n\nexport interface SetWalletDeviceIdRequest {\n /**\n * New wallet device ID to set.\n */\n walletDeviceId: string;\n}\n\nexport const codecForSetWalletDeviceIdRequest =\n (): Codec<SetWalletDeviceIdRequest> =>\n buildCodecForObject<SetWalletDeviceIdRequest>()\n .property(\"walletDeviceId\", codecForString())\n .build(\"SetWalletDeviceIdRequest\");\n\nexport interface WithdrawFakebankRequest {\n amount: AmountString;\n exchange: string;\n bank: string;\n}\n\nexport enum AttentionPriority {\n High = \"high\",\n Medium = \"medium\",\n Low = \"low\",\n}\n\nexport interface UserAttentionByIdRequest {\n entityId: string;\n type: AttentionType;\n}\n\nexport const codecForUserAttentionByIdRequest =\n (): Codec<UserAttentionByIdRequest> =>\n buildCodecForObject<UserAttentionByIdRequest>()\n .property(\"type\", codecForAny())\n .property(\"entityId\", codecForString())\n .build(\"UserAttentionByIdRequest\");\n\nexport const codecForUserAttentionsRequest = (): Codec<UserAttentionsRequest> =>\n buildCodecForObject<UserAttentionsRequest>()\n .property(\n \"priority\",\n codecOptional(\n codecForEither(\n codecForConstString(AttentionPriority.Low),\n codecForConstString(AttentionPriority.Medium),\n codecForConstString(AttentionPriority.High),\n ),\n ),\n )\n .build(\"UserAttentionsRequest\");\n\nexport interface UserAttentionsRequest {\n priority?: AttentionPriority;\n}\n\nexport type AttentionInfo =\n | AttentionKycWithdrawal\n | AttentionBackupUnpaid\n | AttentionBackupExpiresSoon\n | AttentionMerchantRefund\n | AttentionExchangeTosChanged\n | AttentionExchangeKeyExpired\n | AttentionExchangeDenominationExpired\n | AttentionAuditorTosChanged\n | AttentionAuditorKeyExpires\n | AttentionAuditorDenominationExpires\n | AttentionPullPaymentPaid\n | AttentionPushPaymentReceived;\n\nexport enum AttentionType {\n KycWithdrawal = \"kyc-withdrawal\",\n\n BackupUnpaid = \"backup-unpaid\",\n BackupExpiresSoon = \"backup-expires-soon\",\n MerchantRefund = \"merchant-refund\",\n\n ExchangeTosChanged = \"exchange-tos-changed\",\n ExchangeKeyExpired = \"exchange-key-expired\",\n ExchangeKeyExpiresSoon = \"exchange-key-expires-soon\",\n ExchangeDenominationsExpired = \"exchange-denominations-expired\",\n ExchangeDenominationsExpiresSoon = \"exchange-denominations-expires-soon\",\n\n AuditorTosChanged = \"auditor-tos-changed\",\n AuditorKeyExpires = \"auditor-key-expires\",\n AuditorDenominationsExpires = \"auditor-denominations-expires\",\n\n PullPaymentPaid = \"pull-payment-paid\",\n PushPaymentReceived = \"push-payment-withdrawn\",\n}\n\nexport const UserAttentionPriority: {\n [type in AttentionType]: AttentionPriority;\n} = {\n \"kyc-withdrawal\": AttentionPriority.Medium,\n\n \"backup-unpaid\": AttentionPriority.High,\n \"backup-expires-soon\": AttentionPriority.Medium,\n \"merchant-refund\": AttentionPriority.Medium,\n\n \"exchange-tos-changed\": AttentionPriority.Medium,\n\n \"exchange-key-expired\": AttentionPriority.High,\n \"exchange-key-expires-soon\": AttentionPriority.Medium,\n \"exchange-denominations-expired\": AttentionPriority.High,\n \"exchange-denominations-expires-soon\": AttentionPriority.Medium,\n\n \"auditor-tos-changed\": AttentionPriority.Medium,\n \"auditor-key-expires\": AttentionPriority.Medium,\n \"auditor-denominations-expires\": AttentionPriority.Medium,\n\n \"pull-payment-paid\": AttentionPriority.High,\n \"push-payment-withdrawn\": AttentionPriority.High,\n};\n\ninterface AttentionBackupExpiresSoon {\n type: AttentionType.BackupExpiresSoon;\n provider_base_url: string;\n}\ninterface AttentionBackupUnpaid {\n type: AttentionType.BackupUnpaid;\n provider_base_url: string;\n talerUri: string;\n}\n\ninterface AttentionMerchantRefund {\n type: AttentionType.MerchantRefund;\n transactionId: TransactionIdStr;\n}\n\ninterface AttentionKycWithdrawal {\n type: AttentionType.KycWithdrawal;\n transactionId: TransactionIdStr;\n}\n\ninterface AttentionExchangeTosChanged {\n type: AttentionType.ExchangeTosChanged;\n exchange_base_url: string;\n}\ninterface AttentionExchangeKeyExpired {\n type: AttentionType.ExchangeKeyExpired;\n exchange_base_url: string;\n}\ninterface AttentionExchangeDenominationExpired {\n type: AttentionType.ExchangeDenominationsExpired;\n exchange_base_url: string;\n}\ninterface AttentionAuditorTosChanged {\n type: AttentionType.AuditorTosChanged;\n auditor_base_url: string;\n}\n\ninterface AttentionAuditorKeyExpires {\n type: AttentionType.AuditorKeyExpires;\n auditor_base_url: string;\n}\ninterface AttentionAuditorDenominationExpires {\n type: AttentionType.AuditorDenominationsExpires;\n auditor_base_url: string;\n}\ninterface AttentionPullPaymentPaid {\n type: AttentionType.PullPaymentPaid;\n transactionId: TransactionIdStr;\n}\n\ninterface AttentionPushPaymentReceived {\n type: AttentionType.PushPaymentReceived;\n transactionId: TransactionIdStr;\n}\n\nexport type UserAttentionUnreadList = Array<{\n info: AttentionInfo;\n when: TalerPreciseTimestamp;\n read: boolean;\n}>;\n\nexport interface UserAttentionsResponse {\n pending: UserAttentionUnreadList;\n}\n\nexport interface UserAttentionsCountResponse {\n total: number;\n}\n\nexport const codecForWithdrawFakebankRequest =\n (): Codec<WithdrawFakebankRequest> =>\n buildCodecForObject<WithdrawFakebankRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"bank\", codecForString())\n .property(\"exchange\", codecForString())\n .build(\"WithdrawFakebankRequest\");\n\nexport interface ImportDb {\n dump: any;\n}\n\nexport const codecForImportDbRequest = (): Codec<ImportDb> =>\n buildCodecForObject<ImportDb>()\n .property(\"dump\", codecForAny())\n .build(\"ImportDbRequest\");\n\nexport interface ForcedDenomSel {\n denoms: {\n value: AmountString;\n count: number;\n }[];\n}\n\n/**\n * Forced coin selection for deposits/payments.\n */\nexport interface ForcedCoinSel {\n coins: {\n value: AmountString;\n contribution: AmountString;\n }[];\n}\n\nexport interface TestPayResult {\n payCoinSelection: PayCoinSelection;\n}\n\n/**\n * Result of selecting coins, contains the exchange, and selected\n * coins with their denomination.\n */\nexport interface PayCoinSelection {\n /**\n * Amount requested by the merchant.\n */\n paymentAmount: AmountString;\n\n /**\n * Public keys of the coins that were selected.\n */\n coinPubs: string[];\n\n /**\n * Amount that each coin contributes.\n */\n coinContributions: AmountString[];\n\n /**\n * How much of the wire fees is the customer paying?\n */\n customerWireFees: AmountString;\n\n /**\n * How much of the deposit fees is the customer paying?\n */\n customerDepositFees: AmountString;\n}\n\nexport interface CheckPeerPushDebitRequest {\n /**\n * Preferred exchange to use for the p2p payment.\n */\n exchangeBaseUrl?: string;\n\n /**\n * Instructed amount.\n *\n * FIXME: Allow specifying the instructed amount type.\n */\n amount: AmountString;\n}\n\nexport const codecForCheckPeerPushDebitRequest =\n (): Codec<CheckPeerPushDebitRequest> =>\n buildCodecForObject<CheckPeerPushDebitRequest>()\n .property(\"exchangeBaseUrl\", codecOptional(codecForString()))\n .property(\"amount\", codecForAmountString())\n .build(\"CheckPeerPushDebitRequest\");\n\nexport interface CheckPeerPushDebitResponse {\n amountRaw: AmountString;\n amountEffective: AmountString;\n}\n\nexport interface InitiatePeerPushDebitRequest {\n exchangeBaseUrl?: string;\n partialContractTerms: PeerContractTerms;\n}\n\nexport interface InitiatePeerPushDebitResponse {\n exchangeBaseUrl: string;\n pursePub: string;\n mergePriv: string;\n contractPriv: string;\n transactionId: TransactionIdStr;\n}\n\nexport const codecForInitiatePeerPushDebitRequest =\n (): Codec<InitiatePeerPushDebitRequest> =>\n buildCodecForObject<InitiatePeerPushDebitRequest>()\n .property(\"partialContractTerms\", codecForPeerContractTerms())\n .build(\"InitiatePeerPushDebitRequest\");\n\nexport interface PreparePeerPushCreditRequest {\n talerUri: string;\n}\n\nexport interface PreparePeerPullDebitRequest {\n talerUri: string;\n}\n\nexport interface PreparePeerPushCreditResponse {\n contractTerms: PeerContractTerms;\n /**\n * @deprecated\n */\n amount: AmountString;\n amountRaw: AmountString;\n amountEffective: AmountString;\n peerPushCreditId: string;\n\n transactionId: string;\n}\n\nexport interface PreparePeerPullDebitResponse {\n contractTerms: PeerContractTerms;\n /**\n * @deprecated Redundant field with bad name, will be removed soon.\n */\n amount: AmountString;\n\n amountRaw: AmountString;\n amountEffective: AmountString;\n\n peerPullDebitId: string;\n\n transactionId: string;\n}\n\nexport const codecForPreparePeerPushCreditRequest =\n (): Codec<PreparePeerPushCreditRequest> =>\n buildCodecForObject<PreparePeerPushCreditRequest>()\n .property(\"talerUri\", codecForString())\n .build(\"CheckPeerPushPaymentRequest\");\n\nexport const codecForCheckPeerPullPaymentRequest =\n (): Codec<PreparePeerPullDebitRequest> =>\n buildCodecForObject<PreparePeerPullDebitRequest>()\n .property(\"talerUri\", codecForString())\n .build(\"PreparePeerPullDebitRequest\");\n\nexport interface ConfirmPeerPushCreditRequest {\n /**\n * Transparent identifier of the incoming peer push payment.\n *\n * @deprecated specify transactionId instead!\n */\n peerPushCreditId?: string;\n\n transactionId?: string;\n}\nexport interface AcceptPeerPushPaymentResponse {\n transactionId: TransactionIdStr;\n}\n\nexport interface AcceptPeerPullPaymentResponse {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForConfirmPeerPushPaymentRequest =\n (): Codec<ConfirmPeerPushCreditRequest> =>\n buildCodecForObject<ConfirmPeerPushCreditRequest>()\n .property(\"peerPushCreditId\", codecOptional(codecForString()))\n .property(\"transactionId\", codecOptional(codecForString()))\n .build(\"ConfirmPeerPushCreditRequest\");\n\nexport interface ConfirmPeerPullDebitRequest {\n /**\n * Transparent identifier of the incoming peer pull payment.\n *\n * @deprecated use transactionId instead\n */\n peerPullDebitId?: string;\n\n transactionId?: string;\n}\n\nexport interface ApplyDevExperimentRequest {\n devExperimentUri: string;\n}\n\nexport const codecForApplyDevExperiment =\n (): Codec<ApplyDevExperimentRequest> =>\n buildCodecForObject<ApplyDevExperimentRequest>()\n .property(\"devExperimentUri\", codecForString())\n .build(\"ApplyDevExperimentRequest\");\n\nexport const codecForAcceptPeerPullPaymentRequest =\n (): Codec<ConfirmPeerPullDebitRequest> =>\n buildCodecForObject<ConfirmPeerPullDebitRequest>()\n .property(\"peerPullDebitId\", codecOptional(codecForString()))\n .property(\"transactionId\", codecOptional(codecForString()))\n .build(\"ConfirmPeerPullDebitRequest\");\n\nexport interface CheckPeerPullCreditRequest {\n exchangeBaseUrl?: string;\n amount: AmountString;\n}\nexport const codecForPreparePeerPullPaymentRequest =\n (): Codec<CheckPeerPullCreditRequest> =>\n buildCodecForObject<CheckPeerPullCreditRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"exchangeBaseUrl\", codecOptional(codecForString()))\n .build(\"CheckPeerPullCreditRequest\");\n\nexport interface CheckPeerPullCreditResponse {\n exchangeBaseUrl: string;\n amountRaw: AmountString;\n amountEffective: AmountString;\n\n /**\n * Number of coins that will be used,\n * can be used by the UI to warn if excessively large.\n */\n numCoins: number;\n}\nexport interface InitiatePeerPullCreditRequest {\n exchangeBaseUrl?: string;\n partialContractTerms: PeerContractTerms;\n}\n\nexport const codecForInitiatePeerPullPaymentRequest =\n (): Codec<InitiatePeerPullCreditRequest> =>\n buildCodecForObject<InitiatePeerPullCreditRequest>()\n .property(\"partialContractTerms\", codecForPeerContractTerms())\n .property(\"exchangeBaseUrl\", codecOptional(codecForString()))\n .build(\"InitiatePeerPullCreditRequest\");\n\nexport interface InitiatePeerPullCreditResponse {\n /**\n * Taler URI for the other party to make the payment\n * that was requested.\n *\n * @deprecated since it's not necessarily valid yet until the tx is in the right state\n */\n talerUri: string;\n\n transactionId: TransactionIdStr;\n}\n\n/**\n * Detailed reason for why the wallet's balance is insufficient.\n */\nexport interface PayPeerInsufficientBalanceDetails {\n /**\n * Amount requested by the merchant.\n */\n amountRequested: AmountString;\n\n /**\n * Balance of type \"available\" (see balance.ts for definition).\n */\n balanceAvailable: AmountString;\n\n /**\n * Balance of type \"material\" (see balance.ts for definition).\n */\n balanceMaterial: AmountString;\n\n /**\n * If non-zero, the largest fee gap estimate of an exchange\n * where we would otherwise have enough balance available.\n */\n feeGapEstimate: AmountString;\n\n perExchange: {\n [url: string]: {\n balanceAvailable: AmountString;\n balanceMaterial: AmountString;\n feeGapEstimate: AmountString;\n };\n };\n}\n\nexport interface ValidateIbanRequest {\n iban: string;\n}\n\nexport const codecForValidateIbanRequest = (): Codec<ValidateIbanRequest> =>\n buildCodecForObject<ValidateIbanRequest>()\n .property(\"iban\", codecForString())\n .build(\"ValidateIbanRequest\");\n\nexport interface ValidateIbanResponse {\n valid: boolean;\n}\n\nexport const codecForValidateIbanResponse = (): Codec<ValidateIbanResponse> =>\n buildCodecForObject<ValidateIbanResponse>()\n .property(\"valid\", codecForBoolean())\n .build(\"ValidateIbanResponse\");\n\nexport type TransactionStateFilter = \"nonfinal\";\n\nexport interface TransactionRecordFilter {\n onlyState?: TransactionStateFilter;\n onlyCurrency?: string;\n}\n\nexport interface StoredBackupList {\n storedBackups: {\n name: string;\n }[];\n}\n\nexport interface CreateStoredBackupResponse {\n name: string;\n}\n\nexport interface RecoverStoredBackupRequest {\n name: string;\n}\n\nexport interface DeleteStoredBackupRequest {\n name: string;\n}\n\nexport const codecForDeleteStoredBackupRequest =\n (): Codec<DeleteStoredBackupRequest> =>\n buildCodecForObject<DeleteStoredBackupRequest>()\n .property(\"name\", codecForString())\n .build(\"DeleteStoredBackupRequest\");\n\nexport const codecForRecoverStoredBackupRequest =\n (): Codec<RecoverStoredBackupRequest> =>\n buildCodecForObject<RecoverStoredBackupRequest>()\n .property(\"name\", codecForString())\n .build(\"RecoverStoredBackupRequest\");\n\nexport interface TestingSetTimetravelRequest {\n offsetMs: number;\n}\n\nexport const codecForTestingSetTimetravelRequest =\n (): Codec<TestingSetTimetravelRequest> =>\n buildCodecForObject<TestingSetTimetravelRequest>()\n .property(\"offsetMs\", codecForNumber())\n .build(\"TestingSetTimetravelRequest\");\n\nexport interface AllowedAuditorInfo {\n auditorBaseUrl: string;\n auditorPub: string;\n}\n\nexport interface AllowedExchangeInfo {\n exchangeBaseUrl: string;\n exchangePub: string;\n}\n\n/**\n * Data extracted from the contract terms that is relevant for payment\n * processing in the wallet.\n */\nexport interface WalletContractData {\n /**\n * Fulfillment URL, or the empty string if the order has no fulfillment URL.\n *\n * Stored as a non-nullable string as we use this field for IndexedDB indexing.\n */\n fulfillmentUrl: string;\n\n contractTermsHash: string;\n fulfillmentMessage?: string;\n fulfillmentMessageI18n?: InternationalizedString;\n merchantSig: string;\n merchantPub: string;\n merchant: MerchantInfo;\n amount: AmountString;\n orderId: string;\n merchantBaseUrl: string;\n summary: string;\n summaryI18n: { [lang_tag: string]: string } | undefined;\n autoRefund: TalerProtocolDuration | undefined;\n maxWireFee: AmountString;\n wireFeeAmortization: number;\n payDeadline: TalerProtocolTimestamp;\n refundDeadline: TalerProtocolTimestamp;\n allowedExchanges: AllowedExchangeInfo[];\n timestamp: TalerProtocolTimestamp;\n wireMethod: string;\n wireInfoHash: string;\n maxDepositFee: AmountString;\n minimumAge?: number;\n}\n\nexport interface TestingWaitTransactionRequest {\n transactionId: string;\n txState: TransactionState;\n}\n", "// @ts-ignore: no type decl for this library\nimport * as jedLib from \"jed\";\nimport { Logger } from \"./logging.js\";\n\nconst logger = new Logger(\"i18n/index.ts\");\n\nexport let jed: any = undefined;\n\n/**\n * Set up jed library for internationalization,\n * based on browser language settings.\n */\nexport function setupI18n(lang: string, strings: { [s: string]: any }): void {\n lang = lang.replace(\"_\", \"-\");\n\n if (!strings[lang]) {\n strings[lang] = {};\n // logger.warn(`language ${lang} not found, defaulting to source strings`);\n }\n jed = new jedLib.Jed(strings[lang]);\n}\n\n/**\n * Use different translations for testing. Should not be used outside\n * of test cases.\n */\nexport function internalSetStrings(langStrings: any): void {\n jed = new jedLib.Jed(langStrings);\n}\n\ndeclare const __translated: unique symbol;\nexport type TranslatedString = string & { [__translated]: true };\n\n/**\n * Convert template strings to a msgid\n */\nfunction toI18nString(stringSeq: ReadonlyArray<string>): TranslatedString {\n let s = \"\";\n for (let i = 0; i < stringSeq.length; i++) {\n s += stringSeq[i];\n if (i < stringSeq.length - 1) {\n s += `%${i + 1}$s`;\n }\n }\n return s as TranslatedString;\n}\n\n/**\n * Internationalize a string template with arbitrary serialized values.\n */\nexport function singular(\n stringSeq: TemplateStringsArray,\n ...values: any[]\n): TranslatedString {\n const s = toI18nString(stringSeq);\n const tr = jed\n .translate(s)\n .ifPlural(1, s)\n .fetch(...values);\n return tr;\n}\n\n/**\n * Internationalize a string template without serializing\n */\nexport function translate(\n stringSeq: TemplateStringsArray,\n ...values: any[]\n): TranslatedString[] {\n const s = toI18nString(stringSeq);\n if (!s) return [];\n const translation: TranslatedString = jed.ngettext(s, s, 1);\n return replacePlaceholderWithValues(translation, values);\n}\n\n/**\n * Internationalize a string template without serializing\n */\nexport function Translate({\n children,\n debug,\n}: {\n children: any;\n debug?: boolean;\n}): any {\n const c = [].concat(children);\n const s = stringifyArray(c);\n if (!s) return [];\n const translation: TranslatedString = jed.ngettext(s, s, 1);\n if (debug) {\n console.log(\"looking for \", s, \"got\", translation);\n }\n return replacePlaceholderWithValues(translation, c);\n}\n\n/**\n * Get an internationalized string (based on the globally set, current language)\n * from a JSON object. Fall back to the default language of the JSON object\n * if no match exists.\n */\nexport function getJsonI18n<K extends string>(\n obj: Record<K, string>,\n key: K,\n): string {\n return obj[key];\n}\n\nexport function getTranslatedArray(array: Array<any>) {\n const s = stringifyArray(array);\n const translation: TranslatedString = jed.ngettext(s, s, 1);\n return replacePlaceholderWithValues(translation, array);\n}\n\nfunction replacePlaceholderWithValues(\n translation: TranslatedString,\n childArray: Array<any>,\n): Array<any> {\n const tr = translation.split(/%(\\d+)\\$s/);\n // const childArray = toChildArray(children);\n // Merge consecutive string children.\n const placeholderChildren = [];\n for (let i = 0; i < childArray.length; i++) {\n const x = childArray[i];\n if (x === undefined) {\n continue;\n } else if (typeof x === \"string\") {\n continue;\n } else {\n placeholderChildren.push(x);\n }\n }\n const result = [];\n for (let i = 0; i < tr.length; i++) {\n if (i % 2 == 0) {\n // Text\n result.push(tr[i]);\n } else {\n const childIdx = Number.parseInt(tr[i]) - 1;\n result.push(placeholderChildren[childIdx]);\n }\n }\n return result;\n}\n\nfunction stringifyArray(children: Array<any>): string {\n let n = 1;\n const ss = children.map((c) => {\n if (typeof c === \"string\") {\n return c;\n }\n return `%${n++}$s`;\n });\n const s = ss.join(\"\").replace(/ +/g, \" \").trim();\n return s;\n}\n\nexport const i18n = {\n str: singular,\n singular,\n Translate,\n translate,\n};\n", "/*\n This file is part of GNU Taler\n (C) 2021 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Functional programming utilities.\n */\nexport namespace fnutil {\n export function all<T>(arr: T[], f: (x: T) => boolean): boolean {\n for (const x of arr) {\n if (!f(x)) {\n return false;\n }\n }\n return true;\n }\n\n export function any<T>(arr: T[], f: (x: T) => boolean): boolean {\n for (const x of arr) {\n if (f(x)) {\n return true;\n }\n }\n return false;\n }\n}\n", "/**\n * Hypertext Transfer Protocol (HTTP) response status codes.\n *\n * @see {@link https://en.wikipedia.org/wiki/List_of_HTTP_status_codes}\n */\nexport enum HttpStatusCode {\n /**\n * The server has received the request headers and the client should proceed to send the request body\n * (in the case of a request for which a body needs to be sent; for example, a POST request).\n * Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient.\n * To have a server check the request's headers, a client must send Expect: 100-continue as a header in its initial request\n * and receive a 100 Continue status code in response before sending the body. The response 417 Expectation Failed indicates the request should not be continued.\n */\n Continue = 100,\n\n /**\n * The requester has asked the server to switch protocols and the server has agreed to do so.\n */\n SwitchingProtocols = 101,\n\n /**\n * A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request.\n * This code indicates that the server has received and is processing the request, but no response is available yet.\n * This prevents the client from timing out and assuming the request was lost.\n */\n Processing = 102,\n\n /**\n * Standard response for successful HTTP requests.\n * The actual response will depend on the request method used.\n * In a GET request, the response will contain an entity corresponding to the requested resource.\n * In a POST request, the response will contain an entity describing or containing the result of the action.\n */\n Ok = 200,\n\n /**\n * The request has been fulfilled, resulting in the creation of a new resource.\n */\n Created = 201,\n\n /**\n * The request has been accepted for processing, but the processing has not been completed.\n * The request might or might not be eventually acted upon, and may be disallowed when processing occurs.\n */\n Accepted = 202,\n\n /**\n * SINCE HTTP/1.1\n * The server is a transforming proxy that received a 200 OK from its origin,\n * but is returning a modified version of the origin's response.\n */\n NonAuthoritativeInformation = 203,\n\n /**\n * The server successfully processed the request and is not returning any content.\n */\n NoContent = 204,\n\n /**\n * The server successfully processed the request, but is not returning any content.\n * Unlike a 204 response, this response requires that the requester reset the document view.\n */\n ResetContent = 205,\n\n /**\n * The server is delivering only part of the resource (byte serving) due to a range header sent by the client.\n * The range header is used by HTTP clients to enable resuming of interrupted downloads,\n * or split a download into multiple simultaneous streams.\n */\n PartialContent = 206,\n\n /**\n * The message body that follows is an XML message and can contain a number of separate response codes,\n * depending on how many sub-requests were made.\n */\n MultiStatus = 207,\n\n /**\n * The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response,\n * and are not being included again.\n */\n AlreadyReported = 208,\n\n /**\n * The server has fulfilled a request for the resource,\n * and the response is a representation of the result of one or more instance-manipulations applied to the current instance.\n */\n ImUsed = 226,\n\n /**\n * Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation).\n * For example, this code could be used to present multiple video format options,\n * to list files with different filename extensions, or to suggest word-sense disambiguation.\n */\n MultipleChoices = 300,\n\n /**\n * This and all future requests should be directed to the given URI.\n */\n MovedPermanently = 301,\n\n /**\n * This is an example of industry practice contradicting the standard.\n * The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect\n * (the original describing phrase was \"Moved Temporarily\"), but popular browsers implemented 302\n * with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307\n * to distinguish between the two behaviours. However, some Web applications and frameworks\n * use the 302 status code as if it were the 303.\n */\n Found = 302,\n\n /**\n * SINCE HTTP/1.1\n * The response to the request can be found under another URI using a GET method.\n * When received in response to a POST (or PUT/DELETE), the client should presume that\n * the server has received the data and should issue a redirect with a separate GET message.\n */\n SeeOther = 303,\n\n /**\n * Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.\n * In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.\n */\n NotModified = 304,\n\n /**\n * SINCE HTTP/1.1\n * The requested resource is available only through a proxy, the address for which is provided in the response.\n * Many HTTP clients (such as Mozilla and Internet Explorer) do not correctly handle responses with this status code, primarily for security reasons.\n */\n UseProxy = 305,\n\n /**\n * No longer used. Originally meant \"Subsequent requests should use the specified proxy.\"\n */\n SwitchProxy = 306,\n\n /**\n * SINCE HTTP/1.1\n * In this case, the request should be repeated with another URI; however, future requests should still use the original URI.\n * In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request.\n * For example, a POST request should be repeated using another POST request.\n */\n TemporaryRedirect = 307,\n\n /**\n * The request and all future requests should be repeated using another URI.\n * 307 and 308 parallel the behaviors of 302 and 301, but do not allow the HTTP method to change.\n * So, for example, submitting a form to a permanently redirected resource may continue smoothly.\n */\n PermanentRedirect = 308,\n\n /**\n * The server cannot or will not process the request due to an apparent client error\n * (e.g., malformed request syntax, too large size, invalid request message framing, or deceptive request routing).\n */\n BadRequest = 400,\n\n /**\n * Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet\n * been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the\n * requested resource. See Basic access authentication and Digest access authentication. 401 semantically means\n * \"unauthenticated\",i.e. the user does not have the necessary credentials.\n */\n Unauthorized = 401,\n\n /**\n * Reserved for future use. The original intention was that this code might be used as part of some form of digital\n * cash or micro payment scheme, but that has not happened, and this code is not usually used.\n * Google Developers API uses this status if a particular developer has exceeded the daily limit on requests.\n */\n PaymentRequired = 402,\n\n /**\n * The request was valid, but the server is refusing action.\n * The user might not have the necessary permissions for a resource.\n */\n Forbidden = 403,\n\n /**\n * The requested resource could not be found but may be available in the future.\n * Subsequent requests by the client are permissible.\n */\n NotFound = 404,\n\n /**\n * A request method is not supported for the requested resource;\n * for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.\n */\n MethodNotAllowed = 405,\n\n /**\n * The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.\n */\n NotAcceptable = 406,\n\n /**\n * The client must first authenticate itself with the proxy.\n */\n ProxyAuthenticationRequired = 407,\n\n /**\n * The server timed out waiting for the request.\n * According to HTTP specifications:\n * \"The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.\"\n */\n RequestTimeout = 408,\n\n /**\n * Indicates that the request could not be processed because of conflict in the request,\n * such as an edit conflict between multiple simultaneous updates.\n */\n Conflict = 409,\n\n /**\n * Indicates that the resource requested is no longer available and will not be available again.\n * This should be used when a resource has been intentionally removed and the resource should be purged.\n * Upon receiving a 410 status code, the client should not request the resource in the future.\n * Clients such as search engines should remove the resource from their indices.\n * Most use cases do not require clients and search engines to purge the resource, and a \"404 Not Found\" may be used instead.\n */\n Gone = 410,\n\n /**\n * The request did not specify the length of its content, which is required by the requested resource.\n */\n LengthRequired = 411,\n\n /**\n * The server does not meet one of the preconditions that the requester put on the request.\n */\n PreconditionFailed = 412,\n\n /**\n * The request is larger than the server is willing or able to process. Previously called \"Request Entity Too Large\".\n */\n PayloadTooLarge = 413,\n\n /**\n * The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request,\n * in which case it should be converted to a POST request.\n * Called \"Request-URI Too Long\" previously.\n */\n UriTooLong = 414,\n\n /**\n * The request entity has a media type which the server or resource does not support.\n * For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.\n */\n UnsupportedMediaType = 415,\n\n /**\n * The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.\n * For example, if the client asked for a part of the file that lies beyond the end of the file.\n * Called \"Requested Range Not Satisfiable\" previously.\n */\n RangeNotSatisfiable = 416,\n\n /**\n * The server cannot meet the requirements of the Expect request-header field.\n */\n ExpectationFailed = 417,\n\n /**\n * This code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol,\n * and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by\n * teapots requested to brew coffee. This HTTP status is used as an Easter egg in some websites, including Google.com.\n */\n IAmATeapot = 418,\n\n /**\n * The request was directed at a server that is not able to produce a response (for example because a connection reuse).\n */\n MisdirectedRequest = 421,\n\n /**\n * The request was well-formed but was unable to be followed due to semantic errors.\n */\n UnprocessableEntity = 422,\n\n /**\n * The resource that is being accessed is locked.\n */\n Locked = 423,\n\n /**\n * The request failed due to failure of a previous request (e.g., a PROPPATCH).\n */\n FailedDependency = 424,\n\n /**\n * The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.\n */\n UpgradeRequired = 426,\n\n /**\n * The origin server requires the request to be conditional.\n * Intended to prevent \"the 'lost update' problem, where a client\n * GETs a resource's state, modifies it, and PUTs it back to the server,\n * when meanwhile a third party has modified the state on the server, leading to a conflict.\"\n */\n PreconditionRequired = 428,\n\n /**\n * The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.\n */\n TooManyRequests = 429,\n\n /**\n * The server is unwilling to process the request because either an individual header field,\n * or all the header fields collectively, are too large.\n */\n RequestHeaderFieldsTooLarge = 431,\n\n /**\n * A server operator has received a legal demand to deny access to a resource or to a set of resources\n * that includes the requested resource. The code 451 was chosen as a reference to the novel Fahrenheit 451.\n */\n UnavailableForLegalReasons = 451,\n\n /**\n * A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.\n */\n InternalServerError = 500,\n\n /**\n * The server either does not recognize the request method, or it lacks the ability to fulfill the request.\n * Usually this implies future availability (e.g., a new feature of a web-service API).\n */\n NotImplemented = 501,\n\n /**\n * The server was acting as a gateway or proxy and received an invalid response from the upstream server.\n */\n BadGateway = 502,\n\n /**\n * The server is currently unavailable (because it is overloaded or down for maintenance).\n * Generally, this is a temporary state.\n */\n ServiceUnavailable = 503,\n\n /**\n * The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.\n */\n GatewayTimeout = 504,\n\n /**\n * The server does not support the HTTP protocol version used in the request\n */\n HttpVersionNotSupported = 505,\n\n /**\n * Transparent content negotiation for the request results in a circular reference.\n */\n VariantAlsoNegotiates = 506,\n\n /**\n * The server is unable to store the representation needed to complete the request.\n */\n InsufficientStorage = 507,\n\n /**\n * The server detected an infinite loop while processing the request.\n */\n LoopDetected = 508,\n\n /**\n * Further extensions to the request are required for the server to fulfill it.\n */\n NotExtended = 510,\n\n /**\n * The client needs to authenticate to gain network access.\n * Intended for use by intercepting proxies used to control access to the network (e.g., \"captive portals\" used\n * to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).\n */\n NetworkAuthenticationRequired = 511,\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Logger } from \"./logging.js\";\nimport { AbsoluteTime } from \"./time.js\";\n\n/**\n * Implementation of token bucket throttling.\n */\n\nconst logger = new Logger(\"RequestThrottler.ts\");\n\n/**\n * Maximum request per second, per origin.\n */\nconst MAX_PER_SECOND = 100;\n\n/**\n * Maximum request per minute, per origin.\n */\nconst MAX_PER_MINUTE = 500;\n\n/**\n * Maximum request per hour, per origin.\n */\nconst MAX_PER_HOUR = 2000;\n\n/**\n * Throttling state for one origin.\n */\nclass OriginState {\n tokensSecond: number = MAX_PER_SECOND;\n tokensMinute: number = MAX_PER_MINUTE;\n tokensHour: number = MAX_PER_HOUR;\n private lastUpdate = AbsoluteTime.now();\n\n private refill(): void {\n const now = AbsoluteTime.now();\n if (AbsoluteTime.cmp(now, this.lastUpdate) < 0) {\n // Did the system time change?\n this.lastUpdate = now;\n return;\n }\n const d = AbsoluteTime.difference(now, this.lastUpdate);\n if (d.d_ms === \"forever\") {\n throw Error(\"assertion failed\");\n }\n this.tokensSecond = Math.min(\n MAX_PER_SECOND,\n this.tokensSecond + d.d_ms / 1000,\n );\n this.tokensMinute = Math.min(\n MAX_PER_MINUTE,\n this.tokensMinute + d.d_ms / 1000 / 60,\n );\n this.tokensHour = Math.min(\n MAX_PER_HOUR,\n this.tokensHour + d.d_ms / 1000 / 60 / 60,\n );\n this.lastUpdate = now;\n }\n\n /**\n * Return true if the request for this origin should be throttled.\n * Otherwise, take a token out of the respective buckets.\n */\n applyThrottle(): boolean {\n this.refill();\n if (this.tokensSecond < 1) {\n logger.warn(\"request throttled (per second limit exceeded)\");\n return true;\n }\n if (this.tokensMinute < 1) {\n logger.warn(\"request throttled (per minute limit exceeded)\");\n return true;\n }\n if (this.tokensHour < 1) {\n logger.warn(\"request throttled (per hour limit exceeded)\");\n return true;\n }\n this.tokensSecond--;\n this.tokensMinute--;\n this.tokensHour--;\n return false;\n }\n}\n\n/**\n * Request throttler, used as a \"last layer of defense\" when some\n * other part of the re-try logic is broken and we're sending too\n * many requests to the same exchange/bank/merchant.\n */\nexport class RequestThrottler {\n private perOriginInfo: { [origin: string]: OriginState } = {};\n\n /**\n * Get the throttling state for an origin, or\n * initialize if no state is associated with the\n * origin yet.\n */\n private getState(origin: string): OriginState {\n const s = this.perOriginInfo[origin];\n if (s) {\n return s;\n }\n const ns = (this.perOriginInfo[origin] = new OriginState());\n return ns;\n }\n\n /**\n * Apply throttling to a request.\n *\n * @returns whether the request should be throttled.\n */\n applyThrottle(requestUrl: string): boolean {\n const origin = new URL(requestUrl).origin;\n return this.getState(origin).applyThrottle();\n }\n\n /**\n * Get the throttle statistics for a particular URL.\n */\n getThrottleStats(requestUrl: string): Record<string, unknown> {\n const origin = new URL(requestUrl).origin;\n const state = this.getState(origin);\n return {\n tokensHour: state.tokensHour,\n tokensMinute: state.tokensMinute,\n tokensSecond: state.tokensSecond,\n maxTokensHour: MAX_PER_HOUR,\n maxTokensMinute: MAX_PER_MINUTE,\n maxTokensSecond: MAX_PER_SECOND,\n };\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Logger } from \"./logging.js\";\nimport { AbsoluteTime, Duration } from \"./time.js\";\n\n/**\n * Implementation of token bucket throttling.\n */\n\n/**\n * Logger.\n */\nconst logger = new Logger(\"OperationThrottler.ts\");\n\n/**\n * Maximum request per second, per origin.\n */\nconst MAX_PER_SECOND = 100;\n\n/**\n * Maximum request per minute, per origin.\n */\nconst MAX_PER_MINUTE = 500;\n\n/**\n * Maximum request per hour, per origin.\n */\nconst MAX_PER_HOUR = 2000;\n\n/**\n * Throttling state for one task.\n */\nclass TaskState {\n tokensSecond: number = MAX_PER_SECOND;\n tokensMinute: number = MAX_PER_MINUTE;\n tokensHour: number = MAX_PER_HOUR;\n lastUpdate = AbsoluteTime.now();\n\n private refill(): void {\n const now = AbsoluteTime.now();\n if (AbsoluteTime.cmp(now, this.lastUpdate) < 0) {\n // Did the system time change?\n this.lastUpdate = now;\n return;\n }\n const d = AbsoluteTime.difference(now, this.lastUpdate);\n if (d.d_ms === \"forever\") {\n throw Error(\"assertion failed\");\n }\n this.tokensSecond = Math.min(\n MAX_PER_SECOND,\n this.tokensSecond + d.d_ms / 1000,\n );\n this.tokensMinute = Math.min(\n MAX_PER_MINUTE,\n this.tokensMinute + d.d_ms / 1000 / 60,\n );\n this.tokensHour = Math.min(\n MAX_PER_HOUR,\n this.tokensHour + d.d_ms / 1000 / 60 / 60,\n );\n this.lastUpdate = now;\n }\n\n /**\n * Return true if the request for this origin should be throttled.\n * Otherwise, take a token out of the respective buckets.\n */\n applyThrottle(): boolean {\n this.refill();\n if (this.tokensSecond < 1) {\n logger.warn(\"request throttled (per second limit exceeded)\");\n return true;\n }\n if (this.tokensMinute < 1) {\n logger.warn(\"request throttled (per minute limit exceeded)\");\n return true;\n }\n if (this.tokensHour < 1) {\n logger.warn(\"request throttled (per hour limit exceeded)\");\n return true;\n }\n this.tokensSecond--;\n this.tokensMinute--;\n this.tokensHour--;\n return false;\n }\n}\n\n/**\n * Request throttler, used as a \"last layer of defense\" when some\n * other part of the re-try logic is broken and we're sending too\n * many requests to the same exchange/bank/merchant.\n */\nexport class TaskThrottler {\n private perTaskInfo: { [taskId: string]: TaskState } = {};\n\n /**\n * Get the throttling state for an origin, or\n * initialize if no state is associated with the\n * origin yet.\n */\n private getState(origin: string): TaskState {\n const s = this.perTaskInfo[origin];\n if (s) {\n return s;\n }\n const ns = (this.perTaskInfo[origin] = new TaskState());\n return ns;\n }\n\n /**\n * Apply throttling to a request.\n *\n * @returns whether the request should be throttled.\n */\n applyThrottle(taskId: string): boolean {\n for (let [k, v] of Object.entries(this.perTaskInfo)) {\n // Remove throttled tasks that haven't seen an update in more than one hour.\n if (\n Duration.cmp(\n AbsoluteTime.difference(v.lastUpdate, AbsoluteTime.now()),\n Duration.fromSpec({ hours: 1 }),\n ) > 1\n ) {\n delete this.perTaskInfo[k];\n }\n }\n return this.getState(taskId).applyThrottle();\n }\n\n /**\n * Get the throttle statistics for a particular URL.\n */\n getThrottleStats(taskId: string): Record<string, unknown> {\n const state = this.getState(taskId);\n return {\n tokensHour: state.tokensHour,\n tokensMinute: state.tokensMinute,\n tokensSecond: state.tokensSecond,\n maxTokensHour: MAX_PER_HOUR,\n maxTokensMinute: MAX_PER_MINUTE,\n maxTokensSecond: MAX_PER_SECOND,\n };\n }\n}\n", "/*\nMIT License\n\nCopyright (c) 2017 Conrad Reuter\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nconst NOOP = () => {};\n\n/**\n * A token that can be passed around to inform consumers of the token that a\n * certain operation has been cancelled.\n */\nclass CancellationToken {\n private _reason: any;\n private _callbacks?: Set<(reason?: any) => void> = new Set();\n\n /**\n * A cancellation token that is already cancelled.\n */\n public static readonly CANCELLED: CancellationToken = new CancellationToken(\n true,\n true,\n );\n\n /**\n * A cancellation token that is never cancelled.\n */\n public static readonly CONTINUE: CancellationToken = new CancellationToken(\n false,\n false,\n );\n\n /**\n * Whether the token has been cancelled.\n */\n public get isCancelled(): boolean {\n return this._isCancelled;\n }\n\n /**\n * Whether the token can be cancelled.\n */\n public get canBeCancelled(): boolean {\n return this._canBeCancelled;\n }\n\n /**\n * Why this token has been cancelled.\n */\n public get reason(): any {\n if (this.isCancelled) {\n return this._reason;\n } else {\n throw new Error(\"This token is not cancelled.\");\n }\n }\n\n /**\n * Make a promise that resolves when the async operation resolves,\n * or rejects when the operation is rejected or this token is cancelled.\n */\n public racePromise<T>(asyncOperation: Promise<T>): Promise<T> {\n if (!this.canBeCancelled) {\n return asyncOperation;\n }\n return new Promise<T>((resolve, reject) => {\n // we could use Promise.finally here as soon as it's implemented in the major browsers\n const unregister = this.onCancelled((reason) =>\n reject(new CancellationToken.CancellationError(reason)),\n );\n asyncOperation.then(\n (value) => {\n resolve(value);\n unregister();\n },\n (err) => {\n reject(err);\n unregister();\n },\n );\n });\n }\n\n /**\n * Throw a {CancellationToken.CancellationError} if this token is cancelled.\n */\n public throwIfCancelled(): void {\n if (this._isCancelled) {\n throw new CancellationToken.CancellationError(this._reason);\n }\n }\n\n /**\n * Invoke the callback when this token is cancelled.\n * If this token is already cancelled, the callback is invoked immediately.\n * Returns a function that unregisters the cancellation callback.\n */\n public onCancelled(cb: (reason?: any) => void): () => void {\n if (!this.canBeCancelled) {\n return NOOP;\n }\n if (this.isCancelled) {\n cb(this.reason);\n return NOOP;\n }\n\n /* istanbul ignore next */\n this._callbacks?.add(cb);\n return () => this._callbacks?.delete(cb);\n }\n\n private constructor(\n /**\n * Whether the token is already cancelled.\n */\n private _isCancelled: boolean,\n /**\n * Whether the token can be cancelled.\n */\n private _canBeCancelled: boolean,\n ) {}\n\n /**\n * Create a {CancellationTokenSource}.\n */\n public static create(): CancellationToken.Source {\n const token = new CancellationToken(false, true);\n\n const cancel = (reason?: any) => {\n if (token._isCancelled) return;\n token._isCancelled = true;\n token._reason = reason;\n token._callbacks?.forEach((cb) => cb(reason));\n dispose();\n };\n\n const dispose = () => {\n token._canBeCancelled = token.isCancelled;\n delete token._callbacks; // release memory\n };\n\n return { token, cancel, dispose };\n }\n\n /**\n * Create a {CancellationTokenSource}.\n * The token will be cancelled automatically after the specified timeout in milliseconds.\n */\n public static timeout(ms: number): CancellationToken.Source {\n const {\n token,\n cancel: originalCancel,\n dispose: originalDispose,\n } = CancellationToken.create();\n\n let timer: NodeJS.Timeout | null;\n timer = setTimeout(() => originalCancel(CancellationToken.timeout), ms);\n const disposeTimer = () => {\n if (timer == null) return;\n clearTimeout(timer);\n timer = null;\n };\n\n const cancel = (reason?: any) => {\n disposeTimer();\n originalCancel(reason);\n };\n\n /* istanbul ignore next */\n const dispose = () => {\n disposeTimer();\n originalDispose();\n };\n\n return { token, cancel, dispose };\n }\n\n /**\n * Create a {CancellationToken} that is cancelled when all of the given tokens are cancelled.\n *\n * This is like {Promise<T>.all} for {CancellationToken}s.\n */\n public static all(...tokens: CancellationToken[]): CancellationToken {\n // If *any* of the tokens cannot be cancelled, then the token we return can never be.\n if (tokens.some((token) => !token.canBeCancelled)) {\n return CancellationToken.CONTINUE;\n }\n\n const combined = CancellationToken.create();\n let countdown = tokens.length;\n const handleNextTokenCancelled = () => {\n if (--countdown === 0) {\n const reasons = tokens.map((token) => token._reason);\n combined.cancel(reasons);\n }\n };\n tokens.forEach((token) => token.onCancelled(handleNextTokenCancelled));\n return combined.token;\n }\n\n /**\n * Create a {CancellationToken} that is cancelled when at least one of the given tokens is cancelled.\n *\n * This is like {Promise<T>.race} for {CancellationToken}s.\n */\n public static race(...tokens: CancellationToken[]): CancellationToken {\n // If *any* of the tokens is already cancelled, immediately return that token.\n for (const token of tokens) {\n if (token._isCancelled) {\n return token;\n }\n }\n\n const combined = CancellationToken.create();\n let unregistrations: (() => void)[];\n const handleAnyTokenCancelled = (reason?: any) => {\n unregistrations.forEach((unregister) => unregister()); // release memory\n combined.cancel(reason);\n };\n unregistrations = tokens.map((token) =>\n token.onCancelled(handleAnyTokenCancelled),\n );\n return combined.token;\n }\n}\n\n/* istanbul ignore next */\nnamespace CancellationToken {\n /**\n * Provides a {CancellationToken}, along with some methods to operate on it.\n */\n export interface Source {\n /**\n * The token provided by this source.\n */\n token: CancellationToken;\n\n /**\n * Cancel the provided token with the given reason.\n * Do nothing if the provided token cannot be cancelled or is already cancelled.\n */\n cancel(reason?: any): void;\n\n /**\n * Dispose of the token and this source and release memory.\n */\n dispose(): void;\n }\n\n /**\n * The error that is thrown when a {CancellationToken} has been cancelled and a\n * consumer of the token calls {CancellationToken.throwIfCancelled} on it.\n */\n export class CancellationError extends Error {\n public constructor(\n /**\n * The reason why the token was cancelled.\n */\n public readonly reason: any,\n ) {\n super(\"Operation cancelled\");\n Object.setPrototypeOf(this, CancellationError.prototype);\n }\n }\n}\n\nexport { CancellationToken };\n", "/*\n This file is part of GNU Taler\n (C) 2021 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { canonicalJson } from \"./helpers.js\";\nimport { Logger } from \"./logging.js\";\nimport {\n decodeCrock,\n encodeCrock,\n getRandomBytes,\n hash,\n kdf,\n stringToBytes,\n} from \"./taler-crypto.js\";\n\nconst logger = new Logger(\"contractTerms.ts\");\n\nexport namespace ContractTermsUtil {\n export function forgetAllImpl(\n anyJson: any,\n path: string[],\n pred: PathPredicate,\n ): any {\n const dup = JSON.parse(JSON.stringify(anyJson));\n if (Array.isArray(dup)) {\n for (let i = 0; i < dup.length; i++) {\n dup[i] = forgetAllImpl(dup[i], [...path, `${i}`], pred);\n }\n } else if (typeof dup === \"object\" && dup != null) {\n if (typeof dup.$forgettable === \"object\") {\n for (const x of Object.keys(dup.$forgettable)) {\n if (!pred([...path, x])) {\n continue;\n }\n if (!dup.$forgotten) {\n dup.$forgotten = {};\n }\n if (!dup.$forgotten[x]) {\n const membValCanon = stringToBytes(\n canonicalJson(scrub(dup[x])) + \"\\0\",\n );\n const membSalt = stringToBytes(dup.$forgettable[x] + \"\\0\");\n const h = kdf(64, membValCanon, membSalt, new Uint8Array([]));\n dup.$forgotten[x] = encodeCrock(h);\n }\n delete dup[x];\n delete dup.$forgettable[x];\n }\n if (Object.keys(dup.$forgettable).length === 0) {\n delete dup.$forgettable;\n }\n }\n for (const x of Object.keys(dup)) {\n if (x.startsWith(\"$\")) {\n continue;\n }\n dup[x] = forgetAllImpl(dup[x], [...path, x], pred);\n }\n }\n return dup;\n }\n\n export type PathPredicate = (path: string[]) => boolean;\n\n /**\n * Scrub all forgettable members from an object.\n */\n export function scrub(anyJson: any): any {\n return forgetAllImpl(anyJson, [], () => true);\n }\n\n /**\n * Recursively forget all forgettable members of an object,\n * where the path matches a predicate.\n */\n export function forgetAll(anyJson: any, pred: PathPredicate): any {\n return forgetAllImpl(anyJson, [], pred);\n }\n\n /**\n * Generate a salt for all members marked as forgettable,\n * but which don't have an actual salt yet.\n */\n export function saltForgettable(anyJson: any): any {\n const dup = JSON.parse(JSON.stringify(anyJson));\n if (Array.isArray(dup)) {\n for (let i = 0; i < dup.length; i++) {\n dup[i] = saltForgettable(dup[i]);\n }\n } else if (typeof dup === \"object\" && dup !== null) {\n if (typeof dup.$forgettable === \"object\") {\n for (const k of Object.keys(dup.$forgettable)) {\n if (dup.$forgettable[k] === true) {\n dup.$forgettable[k] = encodeCrock(getRandomBytes(32));\n }\n }\n }\n for (const x of Object.keys(dup)) {\n if (x.startsWith(\"$\")) {\n continue;\n }\n dup[x] = saltForgettable(dup[x]);\n }\n }\n return dup;\n }\n\n const nameRegex = /^[0-9A-Za-z_]+$/;\n\n /**\n * Check that the given JSON object is well-formed with regards\n * to forgettable fields and other restrictions for forgettable JSON.\n */\n export function validateForgettable(anyJson: any): boolean {\n if (typeof anyJson === \"string\") {\n return true;\n }\n if (typeof anyJson === \"number\") {\n return (\n Number.isInteger(anyJson) &&\n anyJson >= Number.MIN_SAFE_INTEGER &&\n anyJson <= Number.MAX_SAFE_INTEGER\n );\n }\n if (typeof anyJson === \"boolean\") {\n return true;\n }\n if (anyJson === null) {\n return true;\n }\n if (Array.isArray(anyJson)) {\n return anyJson.every((x) => validateForgettable(x));\n }\n if (typeof anyJson === \"object\") {\n for (const k of Object.keys(anyJson)) {\n if (k.match(nameRegex)) {\n if (validateForgettable(anyJson[k])) {\n continue;\n } else {\n return false;\n }\n }\n if (k === \"$forgettable\") {\n const fga = anyJson.$forgettable;\n if (!fga || typeof fga !== \"object\") {\n return false;\n }\n for (const fk of Object.keys(fga)) {\n if (!fk.match(nameRegex)) {\n return false;\n }\n if (!(fk in anyJson)) {\n return false;\n }\n const fv = anyJson.$forgettable[fk];\n if (typeof fv !== \"string\") {\n return false;\n }\n }\n } else if (k === \"$forgotten\") {\n const fgo = anyJson.$forgotten;\n if (!fgo || typeof fgo !== \"object\") {\n return false;\n }\n for (const fk of Object.keys(fgo)) {\n if (!fk.match(nameRegex)) {\n return false;\n }\n // Check that the value has actually been forgotten.\n if (fk in anyJson) {\n return false;\n }\n const fv = anyJson.$forgotten[fk];\n if (typeof fv !== \"string\") {\n return false;\n }\n try {\n const decFv = decodeCrock(fv);\n if (decFv.length != 64) {\n return false;\n }\n } catch (e) {\n return false;\n }\n // Check that salt has been deleted after forgetting.\n if (anyJson.$forgettable?.[k] !== undefined) {\n return false;\n }\n }\n } else {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n\n /**\n * Check that no forgettable information has been forgotten.\n *\n * Must only be called on an object already validated with validateForgettable.\n */\n export function validateNothingForgotten(contractTerms: any): boolean {\n throw Error(\"not implemented yet\");\n }\n\n /**\n * Hash a contract terms object. Forgettable fields\n * are scrubbed and JSON canonicalization is applied\n * before hashing.\n */\n export function hashContractTerms(contractTerms: unknown): string {\n const cleaned = scrub(contractTerms);\n const canon = canonicalJson(cleaned) + \"\\0\";\n const bytes = stringToBytes(canon);\n return encodeCrock(hash(bytes));\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019-2020 Taler Systems SA\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Classes and helpers for error handling specific to wallet operations.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\n/**\n * Imports.\n */\nimport {\n AbsoluteTime,\n PayMerchantInsufficientBalanceDetails,\n PayPeerInsufficientBalanceDetails,\n TalerErrorCode,\n TalerErrorDetail,\n TransactionType,\n} from \"@gnu-taler/taler-util\";\n\ntype empty = Record<string, never>;\n\nexport interface DetailsMap {\n [TalerErrorCode.WALLET_PENDING_OPERATION_FAILED]: {\n innerError: TalerErrorDetail;\n transactionId?: string;\n };\n [TalerErrorCode.WALLET_EXCHANGE_DENOMINATIONS_INSUFFICIENT]: {\n exchangeBaseUrl: string;\n };\n [TalerErrorCode.WALLET_EXCHANGE_PROTOCOL_VERSION_INCOMPATIBLE]: {\n exchangeProtocolVersion: string;\n walletProtocolVersion: string;\n };\n [TalerErrorCode.WALLET_WITHDRAWAL_OPERATION_ABORTED_BY_BANK]: empty;\n [TalerErrorCode.WALLET_REWARD_COIN_SIGNATURE_INVALID]: empty;\n [TalerErrorCode.WALLET_ORDER_ALREADY_CLAIMED]: {\n orderId: string;\n claimUrl: string;\n };\n [TalerErrorCode.WALLET_ORDER_ALREADY_PAID]: {\n orderId: string;\n fulfillmentUrl: string;\n };\n [TalerErrorCode.WALLET_CONTRACT_TERMS_MALFORMED]: empty;\n [TalerErrorCode.WALLET_CONTRACT_TERMS_SIGNATURE_INVALID]: {\n merchantPub: string;\n orderId: string;\n };\n [TalerErrorCode.WALLET_CONTRACT_TERMS_BASE_URL_MISMATCH]: {\n baseUrlForDownload: string;\n baseUrlFromContractTerms: string;\n };\n [TalerErrorCode.WALLET_INVALID_TALER_PAY_URI]: {\n talerPayUri: string;\n };\n [TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR]: {\n requestUrl: string;\n requestMethod: string;\n httpStatusCode: number;\n errorResponse?: any;\n };\n [TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION]: {\n stack?: string;\n };\n [TalerErrorCode.WALLET_BANK_INTEGRATION_PROTOCOL_VERSION_INCOMPATIBLE]: {\n bankProtocolVersion: string;\n walletProtocolVersion: string;\n };\n [TalerErrorCode.WALLET_CORE_API_OPERATION_UNKNOWN]: {\n operation: string;\n };\n [TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED]: {\n requestUrl: string;\n requestMethod: string;\n throttleStats: Record<string, unknown>;\n };\n [TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT]: {\n requestUrl: string;\n requestMethod: string;\n timeoutMs: number;\n };\n [TalerErrorCode.WALLET_NETWORK_ERROR]: {\n requestUrl: string;\n requestMethod: string;\n };\n [TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE]: {\n requestUrl: string;\n requestMethod: string;\n httpStatusCode: number;\n validationError?: string;\n };\n [TalerErrorCode.WALLET_EXCHANGE_COIN_SIGNATURE_INVALID]: empty;\n [TalerErrorCode.WALLET_WITHDRAWAL_GROUP_INCOMPLETE]: {\n numErrors: number;\n errorsPerCoin: Record<number, TalerErrorDetail>;\n };\n [TalerErrorCode.WALLET_CORE_NOT_AVAILABLE]: empty;\n [TalerErrorCode.GENERIC_UNEXPECTED_REQUEST_ERROR]: {\n httpStatusCode: number;\n };\n [TalerErrorCode.WALLET_PAY_MERCHANT_SERVER_ERROR]: {\n requestError: TalerErrorDetail;\n };\n [TalerErrorCode.WALLET_CRYPTO_WORKER_ERROR]: {\n innerError: TalerErrorDetail;\n };\n [TalerErrorCode.WALLET_CRYPTO_WORKER_BAD_REQUEST]: {\n detail: string;\n };\n [TalerErrorCode.WALLET_WITHDRAWAL_KYC_REQUIRED]: {\n kycUrl: string;\n };\n [TalerErrorCode.WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE]: {\n insufficientBalanceDetails: PayMerchantInsufficientBalanceDetails;\n };\n [TalerErrorCode.WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE]: {\n insufficientBalanceDetails: PayPeerInsufficientBalanceDetails;\n };\n [TalerErrorCode.WALLET_REFRESH_GROUP_INCOMPLETE]: {\n numErrors: number;\n /**\n * Errors, can be truncated.\n */\n errors: TalerErrorDetail[];\n };\n [TalerErrorCode.WALLET_EXCHANGE_BASE_URL_MISMATCH]: {\n urlWallet: string;\n urlExchange: string;\n };\n}\n\ntype ErrBody<Y> = Y extends keyof DetailsMap ? DetailsMap[Y] : empty;\n\nexport function makeErrorDetail<C extends TalerErrorCode>(\n code: C,\n detail: ErrBody<C>,\n hint?: string,\n): TalerErrorDetail {\n if (!hint && !(detail as any).hint) {\n hint = getDefaultHint(code);\n }\n const when = AbsoluteTime.now();\n return { code, when, hint, ...detail };\n}\n\nexport function makePendingOperationFailedError(\n innerError: TalerErrorDetail,\n tag: TransactionType,\n uid: string,\n): TalerError {\n return TalerError.fromDetail(TalerErrorCode.WALLET_PENDING_OPERATION_FAILED, {\n innerError,\n transactionId: `${tag}:${uid}`,\n });\n}\n\nexport function summarizeTalerErrorDetail(ed: TalerErrorDetail): string {\n const errName = TalerErrorCode[ed.code] ?? \"<unknown>\";\n return `Error (${ed.code}/${errName})`;\n}\n\nfunction getDefaultHint(code: number): string {\n const errName = TalerErrorCode[code];\n if (errName) {\n return `Error (${errName})`;\n } else {\n return `Error (<unknown>)`;\n }\n}\n\nexport class TalerProtocolViolationError extends Error {\n constructor(hint?: string) {\n let msg: string;\n if (hint) {\n msg = `Taler protocol violation error (${hint})`;\n } else {\n msg = `Taler protocol violation error`;\n }\n super(msg);\n Object.setPrototypeOf(this, TalerProtocolViolationError.prototype);\n }\n}\n\n// compute a subset of TalerError, just for http request\ntype HttpErrors = TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT\n | TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED\n | TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE\n | TalerErrorCode.WALLET_NETWORK_ERROR\n | TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR;\n\ntype TalerHttpErrorsDetails = {\n [code in HttpErrors]: TalerError<DetailsMap[code]>\n}\n\nexport type TalerHttpError = TalerHttpErrorsDetails[keyof TalerHttpErrorsDetails]\n\nexport class TalerError<T = any> extends Error {\n errorDetail: TalerErrorDetail & T;\n private constructor(d: TalerErrorDetail & T) {\n super(d.hint ?? `Error (code ${d.code})`);\n this.errorDetail = d;\n Object.setPrototypeOf(this, TalerError.prototype);\n }\n\n static fromDetail<C extends TalerErrorCode>(\n code: C,\n detail: ErrBody<C>,\n hint?: string,\n ): TalerError {\n if (!hint) {\n hint = getDefaultHint(code);\n }\n const when = AbsoluteTime.now();\n return new TalerError<unknown>({ code, when, hint, ...detail });\n }\n\n static fromUncheckedDetail(d: TalerErrorDetail): TalerError {\n return new TalerError<unknown>({ ...d });\n }\n\n static fromException(e: any): TalerError {\n const errDetail = getErrorDetailFromException(e);\n return new TalerError(errDetail);\n }\n\n hasErrorCode<C extends keyof DetailsMap>(\n code: C,\n ): this is TalerError<DetailsMap[C]> {\n return this.errorDetail.code === code;\n }\n\n}\n\n/**\n * Convert an exception (or anything that was thrown) into\n * a TalerErrorDetail object.\n */\nexport function getErrorDetailFromException(e: any): TalerErrorDetail {\n if (e instanceof TalerError) {\n return e.errorDetail;\n }\n if (e instanceof Error) {\n const err = makeErrorDetail(\n TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION,\n {\n stack: e.stack,\n },\n `unexpected exception (message: ${e.message})`,\n );\n return err;\n }\n // Something was thrown that is not even an exception!\n // Try to stringify it.\n let excString: string;\n try {\n excString = e.toString();\n } catch (e) {\n // Something went horribly wrong.\n excString = \"can't stringify exception\";\n }\n const err = makeErrorDetail(\n TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION,\n {},\n `unexpected exception (not an exception, ${excString})`,\n );\n return err;\n}\n\nexport function assertUnreachable(x: never): never {\n throw new Error(\"Didn't expect to get here\");\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * IBAN validation.\n *\n * Currently only validates the checksum.\n *\n * It does not validate:\n * - Country-specific length\n * - Country-specific checksums\n *\n * The country list is also not complete.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\nexport type IbanValidationResult =\n | { type: \"invalid\" }\n | {\n type: \"valid\";\n normalizedIban: string;\n };\n\nexport interface IbanCountryInfo {\n name: string;\n isSepa?: boolean;\n length?: number;\n}\n\n/**\n * Incomplete list, see https://www.swift.com/resource/iban-registry-pdf\n */\nexport const ibanCountryInfoTable: Record<string, IbanCountryInfo> = {\n AE: { name: \"U.A.E.\" },\n AF: { name: \"Afghanistan\" },\n AL: { name: \"Albania\" },\n AM: { name: \"Armenia\" },\n AN: { name: \"Netherlands Antilles\" },\n AR: { name: \"Argentina\" },\n AT: { name: \"Austria\" },\n AU: { name: \"Australia\" },\n AZ: { name: \"Azerbaijan\" },\n BA: { name: \"Bosnia and Herzegovina\" },\n BD: { name: \"Bangladesh\" },\n BE: { name: \"Belgium\" },\n BG: { name: \"Bulgaria\" },\n BH: { name: \"Bahrain\" },\n BN: { name: \"Brunei Darussalam\" },\n BO: { name: \"Bolivia\" },\n BR: { name: \"Brazil\" },\n BT: { name: \"Bhutan\" },\n BY: { name: \"Belarus\" },\n BZ: { name: \"Belize\" },\n CA: { name: \"Canada\" },\n CG: { name: \"Congo\" },\n CH: { name: \"Switzerland\" },\n CI: { name: \"Cote d'Ivoire\" },\n CL: { name: \"Chile\" },\n CM: { name: \"Cameroon\" },\n CN: { name: \"People's Republic of China\" },\n CO: { name: \"Colombia\" },\n CR: { name: \"Costa Rica\" },\n CS: { name: \"Serbia and Montenegro\" },\n CZ: { name: \"Czech Republic\" },\n DE: { name: \"Germany\" },\n DK: { name: \"Denmark\" },\n DO: { name: \"Dominican Republic\" },\n DZ: { name: \"Algeria\" },\n EC: { name: \"Ecuador\" },\n EE: { name: \"Estonia\" },\n EG: { name: \"Egypt\" },\n ER: { name: \"Eritrea\" },\n ES: { name: \"Spain\" },\n ET: { name: \"Ethiopia\" },\n FI: { name: \"Finland\" },\n FO: { name: \"Faroe Islands\" },\n FR: { name: \"France\" },\n GB: { name: \"United Kingdom\" },\n GD: { name: \"Caribbean\" },\n GE: { name: \"Georgia\" },\n GL: { name: \"Greenland\" },\n GR: { name: \"Greece\" },\n GT: { name: \"Guatemala\" },\n HK: { name: \"Hong Kong S.A.R.\" },\n HN: { name: \"Honduras\" },\n HR: { name: \"Croatia\" },\n HT: { name: \"Haiti\" },\n HU: { name: \"Hungary\" },\n ID: { name: \"Indonesia\" },\n IE: { name: \"Ireland\" },\n IL: { name: \"Israel\" },\n IN: { name: \"India\" },\n IQ: { name: \"Iraq\" },\n IR: { name: \"Iran\" },\n IS: { name: \"Iceland\" },\n IT: { name: \"Italy\" },\n JM: { name: \"Jamaica\" },\n JO: { name: \"Jordan\" },\n JP: { name: \"Japan\" },\n KE: { name: \"Kenya\" },\n KG: { name: \"Kyrgyzstan\" },\n KH: { name: \"Cambodia\" },\n KR: { name: \"South Korea\" },\n KW: { name: \"Kuwait\" },\n KZ: { name: \"Kazakhstan\" },\n LA: { name: \"Laos\" },\n LB: { name: \"Lebanon\" },\n LI: { name: \"Liechtenstein\" },\n LK: { name: \"Sri Lanka\" },\n LT: { name: \"Lithuania\" },\n LU: { name: \"Luxembourg\" },\n LV: { name: \"Latvia\" },\n LY: { name: \"Libya\" },\n MA: { name: \"Morocco\" },\n MC: { name: \"Principality of Monaco\" },\n MD: { name: \"Moldava\" },\n ME: { name: \"Montenegro\" },\n MK: { name: \"Former Yugoslav Republic of Macedonia\" },\n ML: { name: \"Mali\" },\n MM: { name: \"Myanmar\" },\n MN: { name: \"Mongolia\" },\n MO: { name: \"Macau S.A.R.\" },\n MT: { name: \"Malta\" },\n MV: { name: \"Maldives\" },\n MX: { name: \"Mexico\" },\n MY: { name: \"Malaysia\" },\n NG: { name: \"Nigeria\" },\n NI: { name: \"Nicaragua\" },\n NL: { name: \"Netherlands\" },\n NO: { name: \"Norway\" },\n NP: { name: \"Nepal\" },\n NZ: { name: \"New Zealand\" },\n OM: { name: \"Oman\" },\n PA: { name: \"Panama\" },\n PE: { name: \"Peru\" },\n PH: { name: \"Philippines\" },\n PK: { name: \"Islamic Republic of Pakistan\" },\n PL: { name: \"Poland\" },\n PR: { name: \"Puerto Rico\" },\n PT: { name: \"Portugal\" },\n PY: { name: \"Paraguay\" },\n QA: { name: \"Qatar\" },\n RE: { name: \"Reunion\" },\n RO: { name: \"Romania\" },\n RS: { name: \"Serbia\" },\n RU: { name: \"Russia\" },\n RW: { name: \"Rwanda\" },\n SA: { name: \"Saudi Arabia\" },\n SE: { name: \"Sweden\" },\n SG: { name: \"Singapore\" },\n SI: { name: \"Slovenia\" },\n SK: { name: \"Slovak\" },\n SN: { name: \"Senegal\" },\n SO: { name: \"Somalia\" },\n SR: { name: \"Suriname\" },\n SV: { name: \"El Salvador\" },\n SY: { name: \"Syria\" },\n TH: { name: \"Thailand\" },\n TJ: { name: \"Tajikistan\" },\n TM: { name: \"Turkmenistan\" },\n TN: { name: \"Tunisia\" },\n TR: { name: \"Turkey\" },\n TT: { name: \"Trinidad and Tobago\" },\n TW: { name: \"Taiwan\" },\n TZ: { name: \"Tanzania\" },\n UA: { name: \"Ukraine\" },\n US: { name: \"United States\" },\n UY: { name: \"Uruguay\" },\n VA: { name: \"Vatican\" },\n VE: { name: \"Venezuela\" },\n VN: { name: \"Viet Nam\" },\n YE: { name: \"Yemen\" },\n ZA: { name: \"South Africa\" },\n ZW: { name: \"Zimbabwe\" },\n};\n\nlet ccZero = \"0\".charCodeAt(0);\nlet ccNine = \"9\".charCodeAt(0);\nlet ccA = \"A\".charCodeAt(0);\nlet ccZ = \"Z\".charCodeAt(0);\n\n/**\n * Append a IBAN digit(s) based on a char code.\n */\nfunction appendDigit(digits: number[], cc: number): boolean {\n if (cc >= ccZero && cc <= ccNine) {\n digits.push(cc - ccZero);\n } else if (cc >= ccA && cc <= ccZ) {\n const n = cc - ccA + 10;\n digits.push(Math.floor(n / 10) % 10);\n digits.push(n % 10);\n } else {\n return false;\n }\n return true;\n}\n\n/**\n * Compute MOD-97-10 as per ISO/IEC 7064:2003.\n */\nfunction mod97(digits: number[]): number {\n let i = 0;\n let modAccum = 0;\n while (i < digits.length) {\n let n = 0;\n while (n < 9 && i < digits.length) {\n modAccum = modAccum * 10 + digits[i];\n i++;\n n++;\n }\n modAccum = modAccum % 97;\n }\n return modAccum;\n}\n\nexport function validateIban(ibanString: string): IbanValidationResult {\n let myIban = ibanString.toLocaleUpperCase().replace(\" \", \"\");\n let countryCode = myIban.substring(0, 2);\n let countryInfo = ibanCountryInfoTable[countryCode];\n\n if (!countryInfo) {\n return {\n type: \"invalid\",\n };\n }\n\n let digits: number[] = [];\n\n for (let i = 4; i < myIban.length; i++) {\n const cc = myIban.charCodeAt(i);\n if (!appendDigit(digits, cc)) {\n return {\n type: \"invalid\",\n };\n }\n }\n\n for (let i = 0; i < 4; i++) {\n if (!appendDigit(digits, ibanString.charCodeAt(i))) {\n return {\n type: \"invalid\",\n };\n }\n }\n\n const rem = mod97(digits);\n if (rem === 1) {\n return {\n type: \"valid\",\n normalizedIban: myIban,\n };\n } else {\n return {\n type: \"invalid\",\n };\n }\n}\n\nexport function generateIban(countryCode: string, length: number): string {\n let ibanSuffix = \"\";\n let digits: number[] = [];\n\n for (let i = 0; i < length; i++) {\n const cc = ccZero + (Math.floor(Math.random() * 100) % 10);\n appendDigit(digits, cc);\n ibanSuffix += String.fromCharCode(cc);\n }\n\n appendDigit(digits, countryCode.charCodeAt(0));\n appendDigit(digits, countryCode.charCodeAt(1));\n\n // Try using \"00\" as check digits\n appendDigit(digits, ccZero);\n appendDigit(digits, ccZero);\n\n const requiredChecksum = 98 - mod97(digits);\n\n const checkDigit1 = Math.floor(requiredChecksum / 10) % 10;\n const checkDigit2 = requiredChecksum % 10;\n\n return countryCode + checkDigit1 + checkDigit2 + ibanSuffix;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport {\n TransactionType,\n PaymentStatus,\n TransactionMajorState,\n} from \"./transactions-types.js\";\nimport { RefreshReason } from \"./wallet-types.js\";\n\n/**\n * Sample transaction list entries.\n */\nexport const sampleWalletCoreTransactions = [\n {\n type: TransactionType.Payment,\n txState: {\n major: TransactionMajorState.Done,\n },\n amountRaw: \"KUDOS:10\",\n amountEffective: \"KUDOS:10\",\n totalRefundRaw: \"KUDOS:0\",\n totalRefundEffective: \"KUDOS:0\",\n status: PaymentStatus.Paid,\n refundPending: undefined,\n posConfirmation: undefined,\n pending: false,\n refunds: [],\n timestamp: {\n t_s: 1677166045,\n },\n transactionId:\n \"txn:payment:NRRD9KJ8970P5HDAGPW1MBA6HZHB1XMFKF5M3CNR6WA0GT98DHY0\",\n proposalId: \"NRRD9KJ8970P5HDAGPW1MBA6HZHB1XMFKF5M3CNR6WA0GT98DHY0\",\n info: {\n merchant: {\n name: \"woocommerce\",\n website: \"woocommerce.demo.taler.net\",\n email: \"foo@example.com\",\n address: {},\n jurisdiction: {},\n },\n orderId: \"wc_order_KQCRldghIgDRB-100\",\n products: [\n {\n description: \"Using GCC\",\n quantity: 1,\n price: \"KUDOS:10\",\n product_id: \"28\",\n },\n ],\n summary: \"WooTalerShop #100\",\n contractTermsHash:\n \"A02E1M6ARWKBJ87K2TV4S6WQ4X5YH7BRVR6MYCHCTVAED8MBXTFD6PZ5Q50Y7Z5K18PYBTDA14NQ56XPC1VCQW1EVRWTSB7ZYT65B5G\",\n fulfillmentUrl:\n \"https://woocommerce.demo.taler.net/?wc-api=wc_gnutaler_gateway&order_id=wc_order_KQCRldghIgDRB-100\",\n },\n refundQueryActive: false,\n frozen: false,\n },\n {\n type: TransactionType.Refresh,\n txState: {\n major: TransactionMajorState.Pending,\n },\n refreshReason: RefreshReason.PayMerchant,\n amountEffective: \"KUDOS:0\",\n amountRaw: \"KUDOS:0\",\n refreshInputAmount: \"KUDOS:1.5\",\n refreshOutputAmount: \"KUDOS:1.4\",\n originatingTransactionId:\n \"txn:proposal:ZCGBZFE8KZ1CBYYGSC3ZC8E40KVJWV16VYCTHGC8FFSVZ5HD24BG\",\n pending: true,\n timestamp: {\n t_s: 1681376214,\n },\n transactionId:\n \"txn:refresh:QQSWHHXCRQ269G0E3RW14JMC6F7NFDYDW26NSFHRTXSKDS6CMCZ0\",\n frozen: false,\n error: {\n code: 7029,\n when: {\n t_ms: 1681376473665,\n },\n hint: \"Error (WALLET_REFRESH_GROUP_INCOMPLETE)\",\n numErrors: 1,\n errors: [\n {\n code: 7001,\n when: {\n t_ms: 1681376473189,\n },\n hint: \"unexpected exception (message: exchange wire fee signature invalid)\",\n stack:\n \" at validateWireInfo (../taler-wallet-core-qjs.mjs:23166)\\n\",\n },\n ],\n },\n },\n];\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n\n SPDX-License-Identifier: AGPL3.0-or-later\n*/\n\n/**\n * Imports.\n */\nimport {\n HttpRequestLibrary,\n HttpRequestOptions,\n HttpResponse,\n} from \"./http.js\";\n\n/**\n * Implementation of the HTTP request library interface for node.\n */\nexport class HttpLibImpl implements HttpRequestLibrary {\n get(\n url: string,\n opt?: HttpRequestOptions | undefined,\n ): Promise<HttpResponse> {\n throw new Error(\"Method not implemented.\");\n }\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions | undefined,\n ): Promise<HttpResponse> {\n throw new Error(\"Method not implemented.\");\n }\n fetch(\n url: string,\n opt?: HttpRequestOptions | undefined,\n ): Promise<HttpResponse> {\n throw new Error(\"Method not implemented.\");\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n\n SPDX-License-Identifier: AGPL3.0-or-later\n*/\n\nimport type { CancellationToken } from \"./CancellationToken.js\";\nimport { Codec } from \"./codec.js\";\nimport { j2s } from \"./helpers.js\";\nimport {\n TalerError,\n base64FromArrayBuffer,\n makeErrorDetail,\n stringToBytes,\n} from \"./index.js\";\nimport { Logger } from \"./logging.js\";\nimport { TalerErrorCode } from \"./taler-error-codes.js\";\nimport { Duration, AbsoluteTime } from \"./time.js\";\nimport { TalerErrorDetail } from \"./wallet-types.js\";\n\nconst textEncoder = new TextEncoder();\n\nconst logger = new Logger(\"http.ts\");\n\n/**\n * An HTTP response that is returned by all request methods of this library.\n */\nexport interface HttpResponse {\n requestUrl: string;\n requestMethod: string;\n status: number;\n headers: Headers;\n json(): Promise<any>;\n text(): Promise<string>;\n bytes(): Promise<ArrayBuffer>;\n}\n\nexport const DEFAULT_REQUEST_TIMEOUT_MS = 60000;\n\nexport interface HttpRequestOptions {\n method?: \"POST\" | \"PATCH\" | \"PUT\" | \"GET\" | \"DELETE\";\n headers?: { [name: string]: string };\n\n /**\n * Timeout after which the request should be aborted.\n */\n timeout?: Duration;\n\n /**\n * Cancellation token that should abort the request when\n * cancelled.\n */\n cancellationToken?: CancellationToken;\n\n body?: string | ArrayBuffer | object;\n}\n\n/**\n * Headers, roughly modeled after the fetch API's headers object.\n */\nexport class Headers {\n private headerMap = new Map<string, string>();\n\n get(name: string): string | null {\n const r = this.headerMap.get(name.toLowerCase());\n if (r) {\n return r;\n }\n return null;\n }\n\n set(name: string, value: string): void {\n const normalizedName = name.toLowerCase();\n const existing = this.headerMap.get(normalizedName);\n if (existing !== undefined) {\n this.headerMap.set(normalizedName, existing + \",\" + value);\n } else {\n this.headerMap.set(normalizedName, value);\n }\n }\n\n toJSON(): any {\n const m: Record<string, string> = {};\n this.headerMap.forEach((v, k) => (m[k] = v));\n return m;\n }\n}\n\n/**\n * Interface for the HTTP request library used by the wallet.\n *\n * The request library is bundled into an interface to make mocking and\n * request tunneling easy.\n */\nexport interface HttpRequestLibrary {\n /**\n * Make an HTTP GET request.\n *\n * FIXME: Get rid of this, we want the API surface to be minimal.\n *\n * @deprecated use fetch instead\n */\n get(url: string, opt?: HttpRequestOptions): Promise<HttpResponse>;\n\n /**\n * Make an HTTP POST request with a JSON body.\n *\n * FIXME: Get rid of this, we want the API surface to be minimal.\n *\n * @deprecated use fetch instead\n */\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions,\n ): Promise<HttpResponse>;\n\n /**\n * Make an HTTP POST request with a JSON body.\n */\n fetch(url: string, opt?: HttpRequestOptions): Promise<HttpResponse>;\n}\n\ntype TalerErrorResponse = {\n code: number;\n} & unknown;\n\ntype ResponseOrError<T> =\n | { isError: false; response: T }\n | { isError: true; talerErrorResponse: TalerErrorResponse };\n\nexport async function readTalerErrorResponse(\n httpResponse: HttpResponse,\n): Promise<TalerErrorDetail> {\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n logger.warn(\n `malformed error response (status ${httpResponse.status}): ${j2s(\n errJson,\n )}`,\n );\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n },\n \"Error response did not contain error code\",\n );\n }\n return errJson;\n}\n\nexport async function readUnexpectedResponseDetails(\n httpResponse: HttpResponse,\n): Promise<TalerErrorDetail> {\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n return makeErrorDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n },\n \"Error response did not contain error code\",\n );\n }\n return makeErrorDetail(\n TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n errorResponse: errJson,\n },\n `Unexpected HTTP status (${httpResponse.status}) in response`,\n );\n}\n\nexport async function readSuccessResponseJsonOrErrorCode<T>(\n httpResponse: HttpResponse,\n codec: Codec<T>,\n): Promise<ResponseOrError<T>> {\n if (!(httpResponse.status >= 200 && httpResponse.status < 300)) {\n return {\n isError: true,\n talerErrorResponse: await readTalerErrorResponse(httpResponse),\n };\n }\n let respJson;\n try {\n respJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from response\",\n );\n }\n let parsedResponse: T;\n try {\n parsedResponse = codec.decode(respJson);\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Response invalid\",\n );\n }\n return {\n isError: false,\n response: parsedResponse,\n };\n}\n\ntype HttpErrorDetails = {\n requestUrl: string;\n requestMethod: string;\n httpStatusCode: number;\n};\n\nexport function getHttpResponseErrorDetails(\n httpResponse: HttpResponse,\n): HttpErrorDetails {\n return {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n };\n}\n\nexport function throwUnexpectedRequestError(\n httpResponse: HttpResponse,\n talerErrorResponse: TalerErrorResponse,\n): never {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n errorResponse: talerErrorResponse,\n },\n `Unexpected HTTP status ${httpResponse.status} in response`,\n );\n}\n\nexport async function readSuccessResponseJsonOrThrow<T>(\n httpResponse: HttpResponse,\n codec: Codec<T>,\n): Promise<T> {\n const r = await readSuccessResponseJsonOrErrorCode(httpResponse, codec);\n if (!r.isError) {\n return r.response;\n }\n throwUnexpectedRequestError(httpResponse, r.talerErrorResponse);\n}\n\nexport async function expectSuccessResponseOrThrow<T>(\n httpResponse: HttpResponse,\n): Promise<void> {\n if (httpResponse.status >= 200 && httpResponse.status <= 299) {\n return;\n }\n const errResp = await readTalerErrorResponse(httpResponse);\n throwUnexpectedRequestError(httpResponse, errResp);\n}\n\nexport async function readSuccessResponseTextOrErrorCode<T>(\n httpResponse: HttpResponse,\n): Promise<ResponseOrError<string>> {\n if (!(httpResponse.status >= 200 && httpResponse.status < 300)) {\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n httpStatusCode: httpResponse.status,\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n },\n \"Error response did not contain error code\",\n );\n }\n return {\n isError: true,\n talerErrorResponse: errJson,\n };\n }\n const respJson = await httpResponse.text();\n return {\n isError: false,\n response: respJson,\n };\n}\n\nexport async function checkSuccessResponseOrThrow(\n httpResponse: HttpResponse,\n): Promise<void> {\n if (!(httpResponse.status >= 200 && httpResponse.status < 300)) {\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n httpStatusCode: httpResponse.status,\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n },\n \"Error response did not contain error code\",\n );\n }\n throwUnexpectedRequestError(httpResponse, errJson);\n }\n}\n\nexport async function readSuccessResponseTextOrThrow<T>(\n httpResponse: HttpResponse,\n): Promise<string> {\n const r = await readSuccessResponseTextOrErrorCode(httpResponse);\n if (!r.isError) {\n return r.response;\n }\n throwUnexpectedRequestError(httpResponse, r.talerErrorResponse);\n}\n\n/**\n * Get the timestamp at which the response's content is considered expired.\n */\nexport function getExpiry(\n httpResponse: HttpResponse,\n opt: { minDuration?: Duration },\n): AbsoluteTime {\n const expiryDateMs = new Date(\n httpResponse.headers.get(\"expiry\") ?? \"\",\n ).getTime();\n let t: AbsoluteTime;\n if (Number.isNaN(expiryDateMs)) {\n t = AbsoluteTime.now();\n } else {\n t = AbsoluteTime.fromMilliseconds(expiryDateMs);\n }\n if (opt.minDuration) {\n const t2 = AbsoluteTime.addDuration(AbsoluteTime.now(), opt.minDuration);\n return AbsoluteTime.max(t, t2);\n }\n return t;\n}\n\nexport interface HttpLibArgs {\n enableThrottling?: boolean;\n /**\n * Only allow HTTPS connections, not plain http.\n */\n requireTls?: boolean;\n}\n\nexport function encodeBody(body: any): ArrayBuffer {\n if (body == null) {\n return new ArrayBuffer(0);\n }\n if (typeof body === \"string\") {\n return textEncoder.encode(body).buffer;\n } else if (ArrayBuffer.isView(body)) {\n return body.buffer;\n } else if (body instanceof ArrayBuffer) {\n return body;\n } else if (typeof body === \"object\") {\n return textEncoder.encode(JSON.stringify(body)).buffer;\n }\n throw new TypeError(\"unsupported request body type\");\n}\n\nexport function getDefaultHeaders(method: string): Record<string, string> {\n const headers: Record<string, string> = {};\n\n if (method === \"POST\" || method === \"PUT\" || method === \"PATCH\") {\n // Default to JSON if we have a body\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n headers[\"Accept\"] = \"application/json\";\n\n return headers;\n}\n\n/**\n * Helper function to generate the \"Authorization\" HTTP header.\n */\nexport function makeBasicAuthHeader(\n username: string,\n password: string,\n): string {\n const auth = `${username}:${password}`;\n const authEncoded: string = base64FromArrayBuffer(stringToBytes(auth));\n return `Basic ${authEncoded}`;\n}\n", "/*\n This file is part of TALER\n (C) 2016 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Helpers for doing XMLHttpRequest-s that are based on ES6 promises.\n * Allows for easy mocking for test cases.\n *\n * The API is inspired by the HTML5 fetch API.\n */\n\n/**\n * Imports\n */\n\nimport * as impl from \"#http-impl\";\nimport * as common from \"./http-common.js\";\n\nexport * from \"./http-common.js\";\n\nexport function createPlatformHttpLib(\n args?: common.HttpLibArgs,\n): common.HttpRequestLibrary {\n return new impl.HttpLibImpl(args);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { codecForAny } from \"./codec.js\";\nimport {\n createPlatformHttpLib,\n expectSuccessResponseOrThrow,\n readSuccessResponseJsonOrThrow,\n} from \"./http.js\";\nimport { FacadeCredentials } from \"./libeufin-api-types.js\";\nimport { Logger } from \"./logging.js\";\nimport {\n MerchantReserveCreateConfirmation,\n codecForMerchantReserveCreateConfirmation,\n TippingReserveStatus,\n MerchantInstancesResponse,\n MerchantPostOrderRequest,\n MerchantPostOrderResponse,\n codecForMerchantPostOrderResponse,\n MerchantOrderPrivateStatusResponse,\n codecForMerchantOrderPrivateStatusResponse,\n RewardCreateRequest,\n RewardCreateConfirmation,\n MerchantTemplateAddDetails,\n} from \"./merchant-api-types.js\";\nimport { AmountString } from \"./taler-types.js\";\nimport { TalerProtocolDuration } from \"./time.js\";\n\nconst logger = new Logger(\"MerchantApiClient.ts\");\n\nexport interface MerchantAuthConfiguration {\n method: \"external\" | \"token\";\n token?: string;\n}\n\n// FIXME: Why do we need this? Describe / fix!\nexport interface PartialMerchantInstanceConfig {\n auth?: MerchantAuthConfiguration;\n id: string;\n name: string;\n paytoUris: string[];\n address?: unknown;\n jurisdiction?: unknown;\n defaultWireTransferDelay?: TalerProtocolDuration;\n defaultPayDelay?: TalerProtocolDuration;\n}\n\nexport interface CreateMerchantTippingReserveRequest {\n // Amount that the merchant promises to put into the reserve\n initial_balance: AmountString;\n\n // Exchange the merchant intends to use for tipping\n exchange_url: string;\n\n // Desired wire method, for example \"iban\" or \"x-taler-bank\"\n wire_method: string;\n}\n\nexport interface DeleteTippingReserveArgs {\n reservePub: string;\n purge?: boolean;\n}\n\ninterface MerchantBankAccount {\n // The payto:// URI where the wallet will send coins.\n payto_uri: string;\n\n // Optional base URL for a facade where the\n // merchant backend can see incoming wire\n // transfers to reconcile its accounting\n // with that of the exchange. Used by\n // taler-merchant-wirewatch.\n credit_facade_url?: string;\n\n // Credentials for accessing the credit facade.\n credit_facade_credentials?: FacadeCredentials;\n}\n\nexport interface MerchantInstanceConfig {\n auth: MerchantAuthConfiguration;\n id: string;\n name: string;\n address: unknown;\n jurisdiction: unknown;\n use_stefan: boolean;\n default_wire_transfer_delay: TalerProtocolDuration;\n default_pay_delay: TalerProtocolDuration;\n}\n\nexport interface PrivateOrderStatusQuery {\n instance?: string;\n orderId: string;\n sessionId?: string;\n}\n\n/**\n * Client for the GNU Taler merchant backend.\n */\nexport class MerchantApiClient {\n /**\n * Base URL for the particular instance that this merchant API client\n * is for.\n */\n private baseUrl: string;\n\n readonly auth: MerchantAuthConfiguration;\n\n constructor(baseUrl: string, auth?: MerchantAuthConfiguration) {\n this.baseUrl = baseUrl;\n\n this.auth = auth ?? {\n method: \"external\",\n };\n }\n\n httpClient = createPlatformHttpLib();\n\n async changeAuth(auth: MerchantAuthConfiguration): Promise<void> {\n const url = new URL(\"private/auth\", this.baseUrl);\n const res = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: auth,\n headers: this.makeAuthHeader(),\n });\n await expectSuccessResponseOrThrow(res);\n }\n\n async deleteTippingReserve(req: DeleteTippingReserveArgs): Promise<void> {\n const url = new URL(`private/reserves/${req.reservePub}`, this.baseUrl);\n if (req.purge) {\n url.searchParams.set(\"purge\", \"YES\");\n }\n const resp = await this.httpClient.fetch(url.href, {\n method: \"DELETE\",\n headers: this.makeAuthHeader(),\n });\n logger.info(`delete status: ${resp.status}`);\n return;\n }\n\n async createTippingReserve(\n req: CreateMerchantTippingReserveRequest,\n ): Promise<MerchantReserveCreateConfirmation> {\n const url = new URL(\"private/reserves\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n const respData = readSuccessResponseJsonOrThrow(\n resp,\n codecForMerchantReserveCreateConfirmation(),\n );\n return respData;\n }\n\n async getPrivateInstanceInfo(): Promise<any> {\n const url = new URL(\"private\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"GET\",\n headers: this.makeAuthHeader(),\n });\n return await resp.json();\n }\n\n async getPrivateTipReserves(): Promise<TippingReserveStatus> {\n const url = new URL(\"private/reserves\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"GET\",\n headers: this.makeAuthHeader(),\n });\n // FIXME: Validate!\n return await resp.json();\n }\n\n async deleteInstance(instanceId: string) {\n const url = new URL(`management/instances/${instanceId}`, this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"DELETE\",\n headers: this.makeAuthHeader(),\n });\n await expectSuccessResponseOrThrow(resp);\n }\n\n async createInstance(req: MerchantInstanceConfig): Promise<void> {\n const url = new URL(\"management/instances\", this.baseUrl);\n await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n }\n\n async getInstances(): Promise<MerchantInstancesResponse> {\n const url = new URL(\"management/instances\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n\n async getInstanceFullDetails(instanceId: string): Promise<any> {\n const url = new URL(`management/instances/${instanceId}`, this.baseUrl);\n try {\n const resp = await this.httpClient.fetch(url.href, {\n headers: this.makeAuthHeader(),\n });\n return resp.json();\n } catch (e) {\n throw e;\n }\n }\n\n async createOrder(\n req: MerchantPostOrderRequest,\n ): Promise<MerchantPostOrderResponse> {\n let url = new URL(\"private/orders\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(\n resp,\n codecForMerchantPostOrderResponse(),\n );\n }\n\n async queryPrivateOrderStatus(\n query: PrivateOrderStatusQuery,\n ): Promise<MerchantOrderPrivateStatusResponse> {\n const reqUrl = new URL(`private/orders/${query.orderId}`, this.baseUrl);\n if (query.sessionId) {\n reqUrl.searchParams.set(\"session_id\", query.sessionId);\n }\n const resp = await this.httpClient.fetch(reqUrl.href, {\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(\n resp,\n codecForMerchantOrderPrivateStatusResponse(),\n );\n }\n\n async giveTip(req: RewardCreateRequest): Promise<RewardCreateConfirmation> {\n const reqUrl = new URL(`private/rewards`, this.baseUrl);\n const resp = await this.httpClient.fetch(reqUrl.href, {\n method: \"POST\",\n body: req,\n });\n // FIXME: validate\n return resp.json();\n }\n\n async queryTippingReserves(): Promise<TippingReserveStatus> {\n const reqUrl = new URL(`private/reserves`, this.baseUrl);\n const resp = await this.httpClient.fetch(reqUrl.href, {\n headers: this.makeAuthHeader(),\n });\n // FIXME: validate\n return resp.json();\n }\n\n async giveRefund(r: {\n instance: string;\n orderId: string;\n amount: string;\n justification: string;\n }): Promise<{ talerRefundUri: string }> {\n const reqUrl = new URL(`private/orders/${r.orderId}/refund`, this.baseUrl);\n const resp = await this.httpClient.fetch(reqUrl.href, {\n method: \"POST\",\n body: {\n refund: r.amount,\n reason: r.justification,\n },\n });\n const respBody = await resp.json();\n return {\n talerRefundUri: respBody.taler_refund_uri,\n };\n }\n\n async createTemplate(req: MerchantTemplateAddDetails) {\n let url = new URL(\"private/templates\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n if (resp.status !== 204) {\n throw Error(\"failed to create template\");\n }\n }\n\n private makeAuthHeader(): Record<string, string> {\n switch (this.auth.method) {\n case \"external\":\n return {};\n case \"token\":\n return {\n Authorization: `Bearer ${this.auth.token}`,\n };\n }\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Client for the Taler (demo-)bank.\n */\n\n/**\n * Imports.\n */\nimport {\n AmountString,\n base64FromArrayBuffer,\n buildCodecForObject,\n Codec,\n codecForAny,\n codecForString,\n encodeCrock,\n generateIban,\n getRandomBytes,\n j2s,\n Logger,\n stringToBytes,\n TalerError,\n TalerErrorCode,\n} from \"@gnu-taler/taler-util\";\nimport {\n checkSuccessResponseOrThrow,\n createPlatformHttpLib,\n HttpRequestLibrary,\n readSuccessResponseJsonOrThrow,\n} from \"@gnu-taler/taler-util/http\";\n\nconst logger = new Logger(\"bank-api-client.ts\");\n\nexport enum CreditDebitIndicator {\n Credit = \"credit\",\n Debit = \"debit\",\n}\n\nexport interface BankAccountBalanceResponse {\n balance: {\n amount: AmountString;\n credit_debit_indicator: CreditDebitIndicator;\n };\n}\n\nexport interface BankUser {\n username: string;\n password: string;\n accountPaytoUri: string;\n}\n\nexport interface WithdrawalOperationInfo {\n withdrawal_id: string;\n taler_withdraw_uri: string;\n}\n\n/**\n * Helper function to generate the \"Authorization\" HTTP header.\n */\nfunction makeBasicAuthHeader(username: string, password: string): string {\n const auth = `${username}:${password}`;\n const authEncoded: string = base64FromArrayBuffer(stringToBytes(auth));\n return `Basic ${authEncoded}`;\n}\n\nconst codecForWithdrawalOperationInfo = (): Codec<WithdrawalOperationInfo> =>\n buildCodecForObject<WithdrawalOperationInfo>()\n .property(\"withdrawal_id\", codecForString())\n .property(\"taler_withdraw_uri\", codecForString())\n .build(\"WithdrawalOperationInfo\");\n\nexport interface BankAccessApiClientArgs {\n auth?: { username: string; password: string };\n httpClient?: HttpRequestLibrary;\n}\n\nexport interface BankAccessApiCreateTransactionRequest {\n amount: AmountString;\n paytoUri: string;\n}\n\nexport class WireGatewayApiClientArgs {\n auth?: {\n username: string;\n password: string;\n };\n httpClient?: HttpRequestLibrary;\n}\n\n/**\n * This API look like it belongs to harness\n * but it will be nice to have in utils to be used by others\n */\nexport class WireGatewayApiClient {\n httpLib;\n\n constructor(\n private baseUrl: string,\n private args: WireGatewayApiClientArgs = {},\n ) {\n this.httpLib = args.httpClient ?? createPlatformHttpLib();\n }\n\n private makeAuthHeader(): Record<string, string> {\n const auth = this.args.auth;\n if (auth) {\n return {\n Authorization: makeBasicAuthHeader(auth.username, auth.password),\n };\n }\n return {};\n }\n\n async adminAddIncoming(params: {\n amount: string;\n reservePub: string;\n debitAccountPayto: string;\n }): Promise<void> {\n let url = new URL(`admin/add-incoming`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {\n amount: params.amount,\n reserve_pub: params.reservePub,\n debit_account: params.debitAccountPayto,\n },\n headers: this.makeAuthHeader(),\n });\n logger.info(`add-incoming response status: ${resp.status}`);\n await checkSuccessResponseOrThrow(resp);\n }\n}\n\nexport interface ChallengeContactData {\n // E-Mail address\n email?: string;\n\n // Phone number.\n phone?: string;\n}\n\nexport interface AccountBalance {\n amount: AmountString;\n credit_debit_indicator: \"credit\" | \"debit\";\n}\n\nexport interface RegisterAccountRequest {\n // Username\n username: string;\n\n // Password.\n password: string;\n\n // Legal name of the account owner\n name: string;\n\n // Defaults to false.\n is_public?: boolean;\n\n // Is this a taler exchange account?\n // If true:\n // - incoming transactions to the account that do not\n // have a valid reserve public key are automatically\n // - the account provides the taler-wire-gateway-api endpoints\n // Defaults to false.\n is_taler_exchange?: boolean;\n\n // Addresses where to send the TAN for transactions.\n // Currently only used for cashouts.\n // If missing, cashouts will fail.\n // In the future, might be used for other transactions\n // as well.\n challenge_contact_data?: ChallengeContactData;\n\n // 'payto' address pointing a bank account\n // external to the libeufin-bank.\n // Payments will be sent to this bank account\n // when the user wants to convert the local currency\n // back to fiat currency outside libeufin-bank.\n cashout_payto_uri?: string;\n\n // Internal payto URI of this bank account.\n // Used mostly for testing.\n internal_payto_uri?: string;\n}\n\nexport interface AccountData {\n // Legal name of the account owner.\n name: string;\n\n // Available balance on the account.\n balance: AccountBalance;\n\n // payto://-URI of the account.\n payto_uri: string;\n\n // Number indicating the max debit allowed for the requesting user.\n debit_threshold: AmountString;\n\n contact_data?: ChallengeContactData;\n\n // 'payto' address pointing the bank account\n // where to send cashouts. This field is optional\n // because not all the accounts are required to participate\n // in the merchants' circuit. One example is the exchange:\n // that never cashouts. Registering these accounts can\n // be done via the access API.\n cashout_payto_uri?: string;\n}\n\nexport interface ConfirmWithdrawalArgs {\n withdrawalOperationId: string;\n}\n\n/**\n * Client for the Taler corebank API.\n */\nexport class TalerCorebankApiClient {\n httpLib: HttpRequestLibrary;\n\n constructor(\n private baseUrl: string,\n private args: BankAccessApiClientArgs = {},\n ) {\n this.httpLib = args.httpClient ?? createPlatformHttpLib();\n }\n\n setAuth(auth: { username: string; password: string }) {\n this.args.auth = auth;\n }\n\n private makeAuthHeader(): Record<string, string> {\n if (!this.args.auth) {\n return {};\n }\n const authHeaderValue = makeBasicAuthHeader(\n this.args.auth.username,\n this.args.auth.password,\n );\n return {\n Authorization: authHeaderValue,\n };\n }\n\n async getAccountBalance(\n username: string,\n ): Promise<BankAccountBalanceResponse> {\n const url = new URL(`accounts/${username}`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n\n async getTransactions(username: string): Promise<void> {\n const reqUrl = new URL(`accounts/${username}/transactions`, this.baseUrl);\n const resp = await this.httpLib.fetch(reqUrl.href, {\n method: \"GET\",\n headers: {\n ...this.makeAuthHeader(),\n },\n });\n\n const res = await readSuccessResponseJsonOrThrow(resp, codecForAny());\n logger.info(`result: ${j2s(res)}`);\n }\n\n async createTransaction(\n username: string,\n req: BankAccessApiCreateTransactionRequest,\n ): Promise<any> {\n const reqUrl = new URL(`accounts/${username}/transactions`, this.baseUrl);\n\n const resp = await this.httpLib.fetch(reqUrl.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n\n return await readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n\n async registerAccountExtended(req: RegisterAccountRequest): Promise<void> {\n const url = new URL(\"accounts\", this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: req,\n });\n\n if (\n resp.status !== 200 &&\n resp.status !== 201 &&\n resp.status !== 202 &&\n resp.status !== 204\n ) {\n logger.error(`unexpected status ${resp.status} from POST ${url.href}`);\n logger.error(`${j2s(await resp.json())}`);\n throw TalerError.fromDetail(\n TalerErrorCode.GENERIC_UNEXPECTED_REQUEST_ERROR,\n {\n httpStatusCode: resp.status,\n },\n );\n }\n }\n\n /**\n * Register a new account and return information about it.\n *\n * This is a helper, as it does both the registration and the\n * account info query.\n */\n async registerAccount(username: string, password: string): Promise<BankUser> {\n const url = new URL(\"accounts\", this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {\n username,\n password,\n name: username,\n },\n });\n if (\n resp.status !== 200 &&\n resp.status !== 201 &&\n resp.status !== 202 &&\n resp.status !== 204\n ) {\n logger.error(`unexpected status ${resp.status} from POST ${url.href}`);\n logger.error(`${j2s(await resp.json())}`);\n throw TalerError.fromDetail(\n TalerErrorCode.GENERIC_UNEXPECTED_REQUEST_ERROR,\n {\n httpStatusCode: resp.status,\n },\n );\n }\n // FIXME: Corebank should directly return this info!\n const infoUrl = new URL(`accounts/${username}`, this.baseUrl);\n const infoResp = await this.httpLib.fetch(infoUrl.href, {\n headers: {\n Authorization: makeBasicAuthHeader(username, password),\n },\n });\n // FIXME: Validate!\n const acctInfo: AccountData = await readSuccessResponseJsonOrThrow(\n infoResp,\n codecForAny(),\n );\n return {\n password,\n username,\n accountPaytoUri: acctInfo.payto_uri,\n };\n }\n\n async createRandomBankUser(): Promise<BankUser> {\n const username = \"user-\" + encodeCrock(getRandomBytes(10)).toLowerCase();\n const password = \"pw-\" + encodeCrock(getRandomBytes(10)).toLowerCase();\n return await this.registerAccount(username, password);\n }\n\n async createWithdrawalOperation(\n user: string,\n amount: string,\n ): Promise<WithdrawalOperationInfo> {\n const url = new URL(`accounts/${user}/withdrawals`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {\n amount,\n },\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(\n resp,\n codecForWithdrawalOperationInfo(),\n );\n }\n\n async confirmWithdrawalOperation(\n username: string,\n wopi: ConfirmWithdrawalArgs,\n ): Promise<void> {\n const url = new URL(\n `withdrawals/${wopi.withdrawalOperationId}/confirm`,\n this.baseUrl,\n );\n logger.info(`confirming withdrawal operation via ${url.href}`);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {},\n headers: this.makeAuthHeader(),\n });\n\n logger.info(`response status ${resp.status}`);\n // const respJson = await readSuccessResponseJsonOrThrow(resp, codecForAny());\n\n // FIXME: We don't check the status here!\n }\n\n async abortWithdrawalOperation(\n wopi: WithdrawalOperationInfo,\n ): Promise<void> {\n const url = new URL(\n `withdrawals/${wopi.withdrawal_id}/abort`,\n this.baseUrl,\n );\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {},\n headers: this.makeAuthHeader(),\n });\n await readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n}\n", "import { HttpResponse, readSuccessResponseJsonOrThrow, readTalerErrorResponse } from \"./http-common.js\";\nimport { Codec, TalerError, TalerErrorCode, TalerErrorDetail } from \"./index.js\";\n\nexport type OperationResult<Body, ErrorEnum> =\n | OperationOk<Body>\n | OperationFail<ErrorEnum>;\n\nexport interface OperationOk<T> {\n type: \"ok\",\n body: T;\n}\nexport function isOperationOk<T, E>(c: OperationResult<T, E>): c is OperationOk<T> {\n return c.type === \"ok\"\n}\nexport function isOperationFail<T, E>(c: OperationResult<T, E>): c is OperationFail<E> {\n return c.type === \"fail\"\n}\nexport interface OperationFail<T> {\n type: \"fail\",\n case: T,\n detail: TalerErrorDetail,\n}\n\nexport async function opSuccess<T>(resp: HttpResponse, codec: Codec<T>): Promise<OperationOk<T>> {\n const body = await readSuccessResponseJsonOrThrow(resp, codec)\n return { type: \"ok\" as const, body }\n}\nexport function opFixedSuccess<T>(body: T): OperationOk<T> {\n return { type: \"ok\" as const, body }\n}\nexport function opEmptySuccess(): OperationOk<void> {\n return { type: \"ok\" as const, body: void 0 }\n}\nexport async function opKnownFailure<T extends string>(s: T, resp: HttpResponse): Promise<OperationFail<T>> {\n const detail = await readTalerErrorResponse(resp)\n return { type: \"fail\", case: s, detail }\n}\nexport function opUnknownFailure(resp: HttpResponse, text: string): never {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,\n {\n requestUrl: resp.requestUrl,\n requestMethod: resp.requestMethod,\n httpStatusCode: resp.status,\n errorResponse: text,\n },\n `Unexpected HTTP status ${resp.status} in response`,\n );\n}\nexport async function succeedOrThrow<R, E>(cb: () => Promise<OperationResult<R, E>>): Promise<R> {\n const resp = await cb()\n if (resp.type === \"ok\") return resp.body\n throw TalerError.fromUncheckedDetail({ ...resp.detail, case: resp.case })\n}\nexport async function failOrThrow<E>(s: E, cb: () => Promise<OperationResult<unknown, E>>): Promise<TalerErrorDetail> {\n const resp = await cb()\n if (resp.type === \"ok\") {\n throw TalerError.fromException(new Error(`request succeed but failure \"${s}\" was expected`))\n }\n if (resp.case === s) {\n return resp.detail\n }\n throw TalerError.fromException(new Error(`request failed with \"${resp.case}\" but case \"${s}\" was expected`))\n}\n\n\n\nexport type ResultByMethod<TT extends object, p extends keyof TT> = TT[p] extends (...args: any[]) => infer Ret ?\n Ret extends Promise<infer Result> ?\n Result extends OperationResult<any, any> ? Result : never :\n never : //api always use Promises\n never; //error cases just for functions\n\nexport type FailCasesByMethod<TT extends object, p extends keyof TT> = Exclude<ResultByMethod<TT, p>, OperationOk<any>>\n\ntype MethodsOfOperations<T extends object> = keyof {\n [P in keyof T as\n //when the property is a function\n T[P] extends (...args: any[]) => infer Ret ?\n // that returns a promise\n Ret extends Promise<infer Result> ?\n // of an operation\n Result extends OperationResult<any, any> ?\n P : never\n : never\n : never]: any\n}\n\ntype AllKnownCases<t extends object, d extends keyof t> = \"success\" | FailCasesByMethod<t, d>[\"case\"]\n\nexport type TestForApi<ApiType extends object> = {\n [OpType in MethodsOfOperations<ApiType> as `test_${OpType & string}`]: {\n [c in AllKnownCases<ApiType, OpType>]: undefined | (() => Promise<void>);\n };\n};\n", "import { codecForAmountString } from \"../amounts.js\";\nimport { Codec, buildCodecForObject, buildCodecForUnion, codecForAny, codecForBoolean, codecForConstString, codecForEither, codecForList, codecForMap, codecForNumber, codecForString, codecOptional } from \"../codec.js\";\nimport { PaytoString, codecForPaytoString } from \"../payto.js\";\nimport { AmountString } from \"../taler-types.js\";\nimport { TalerActionString, codecForTalerActionString } from \"../taleruri.js\";\nimport { codecForTimestamp } from \"../time.js\";\n\n\nexport type UserAndPassword = {\n username: string,\n password: string,\n}\n\nexport type UserAndToken = {\n username: string,\n token: AccessToken,\n}\n\ndeclare const opaque_OfficerAccount: unique symbol;\nexport type LockedAccount = string & { [opaque_OfficerAccount]: true };\n\ndeclare const opaque_OfficerId: unique symbol;\nexport type OfficerId = string & { [opaque_OfficerId]: true };\n\ndeclare const opaque_OfficerSigningKey: unique symbol;\nexport type SigningKey = Uint8Array & { [opaque_OfficerSigningKey]: true };\n\n\nexport interface OfficerAccount {\n id: OfficerId;\n signingKey: SigningKey;\n}\n\n\nexport type PaginationParams = {\n /**\n * row identifier as the starting point of the query\n */\n offset?: string,\n /**\n * max number of element in the result response\n * always greater than 0\n */\n limit?: number,\n /**\n * milliseconds the server should wait for at least one result to be shown\n */\n timoutMs?: number,\n /**\n * order\n */\n order: \"asc\" | \"dec\"\n}\n\n///\n/// HASH\n///\n\n// 64-byte hash code.\ntype HashCode = string;\n\ntype PaytoHash = string;\n\ntype AmlOfficerPublicKeyP = string;\n\n// 32-byte hash code.\ntype ShortHashCode = string;\n\n// 16-byte salt.\ntype WireSalt = string;\n\ntype SHA256HashCode = ShortHashCode;\n\ntype SHA512HashCode = HashCode;\n\n// 32-byte nonce value, must only be used once.\ntype CSNonce = string;\n\n// 32-byte nonce value, must only be used once.\ntype RefreshMasterSeed = string;\n\n// 32-byte value representing a point on Curve25519.\ntype Cs25519Point = string;\n\n// 32-byte value representing a scalar multiplier\n// for scalar operations on points on Curve25519.\ntype Cs25519Scalar = string;\n\n///\n/// KEYS\n///\n\n// 16-byte access token used to authorize access.\ntype ClaimToken = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EddsaPublicKey = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EddsaPrivateKey = string;\n\n// Edx25519 public keys are points on Curve25519 and represented using the\n// standard 256 bits Ed25519 compact format converted to Crockford\n// Base32.\ntype Edx25519PublicKey = string;\n\n// Edx25519 private keys are always points on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype Edx25519PrivateKey = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EcdhePublicKey = string;\n\n// Point on Curve25519 represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype CsRPublic = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EcdhePrivateKey = string;\n\ntype CoinPublicKey = EddsaPublicKey;\n\n// RSA public key converted to Crockford Base32.\ntype RsaPublicKey = string;\n\ntype Integer = number;\n\ntype WireTransferIdentifierRawP = string;\n// Subset of numbers: Integers in the\n// inclusive range 0 .. (2^53 - 1).\ntype SafeUint64 = number;\n\n// The string must be a data URL according to RFC 2397\n// with explicit mediatype and base64 parameters.\n//\n// data:<mediatype>;base64,<data>\n//\n// Supported mediatypes are image/jpeg and image/png.\n// Invalid strings will be rejected by the wallet.\ntype ImageDataUrl = string;\n\n\ntype WadId = string;\n\ninterface Timestamp {\n // Seconds since epoch, or the special\n // value \"never\" to represent an event that will\n // never happen.\n t_s: number | \"never\";\n}\n\ninterface RelativeTime {\n // Duration in microseconds or \"forever\"\n // to represent an infinite duration. Numeric\n // values are capped at 2^53 - 1 inclusive.\n d_us: number | \"forever\";\n}\n\nexport interface LoginToken {\n token: AccessToken,\n expiration: Timestamp,\n}\n\ndeclare const __ac_token: unique symbol;\nexport type AccessToken = string & {\n [__ac_token]: true;\n};\n\n\ndeclare const __officer_signature: unique symbol;\nexport type OfficerSignature = string & {\n [__officer_signature]: true;\n};\n\nexport namespace TalerAuthentication {\n\n export interface TokenRequest {\n // Service-defined scope for the token.\n // Typical scopes would be \"readonly\" or \"readwrite\".\n scope: string;\n\n // Server may impose its own upper bound\n // on the token validity duration\n duration?: RelativeTime;\n\n // Is the token refreshable into a new token during its\n // validity?\n // Refreshable tokens effectively provide indefinite\n // access if they are refreshed in time.\n refreshable?: boolean;\n }\n\n export interface TokenSuccessResponse {\n // Expiration determined by the server.\n // Can be based on the token_duration\n // from the request, but ultimately the\n // server decides the expiration.\n expiration: Timestamp;\n\n // Opque access token.\n access_token: AccessToken;\n }\n}\n\n// DD51 https://docs.taler.net/design-documents/051-fractional-digits.html\nexport interface CurrencySpecification {\n\n // Name of the currency.\n name: string;\n\n // how many digits the user may enter after the decimal_separator\n num_fractional_input_digits: Integer;\n\n // Number of fractional digits to render in normal font and size.\n num_fractional_normal_digits: Integer;\n\n // Number of fractional digits to render always, if needed by\n // padding with zeros.\n num_fractional_trailing_zero_digits: Integer;\n\n // map of powers of 10 to alternative currency names / symbols, must\n // always have an entry under \"0\" that defines the base name,\n // e.g. \"0 => \u20AC\" or \"3 => k\u20AC\". For BTC, would be \"0 => BTC, -3 => mBTC\".\n // Communicates the currency symbol to be used.\n alt_unit_names: { [log10: string]: string };\n}\n\nexport const codecForAccessToken = codecForString as () => Codec<AccessToken>;\nexport const codecForTokenSuccessResponse =\n (): Codec<TalerAuthentication.TokenSuccessResponse> =>\n buildCodecForObject<TalerAuthentication.TokenSuccessResponse>()\n .property(\"access_token\", codecForAccessToken())\n .property(\"expiration\", codecForTimestamp)\n .build(\"TalerAuthentication.TokenSuccessResponse\")\n\nexport const codecForCurrencySpecificiation =\n (): Codec<CurrencySpecification> =>\n buildCodecForObject<CurrencySpecification>()\n .property(\"name\", codecForString())\n .property(\"num_fractional_input_digits\", codecForNumber())\n .property(\"num_fractional_normal_digits\", codecForNumber())\n .property(\"num_fractional_trailing_zero_digits\", codecForNumber())\n .property(\"alt_unit_names\", codecForMap(codecForString()))\n .build(\"CurrencySpecification\")\n\nexport const codecForIntegrationBankConfig =\n (): Codec<TalerCorebankApi.IntegrationConfig> =>\n buildCodecForObject<TalerCorebankApi.IntegrationConfig>()\n .property(\"name\", codecForConstString(\"taler-bank-integration\"))\n .property(\"version\", codecForString())\n .property(\"currency\", codecForString())\n .property(\"currency_specification\", codecForCurrencySpecificiation())\n .build(\"TalerCorebankApi.IntegrationConfig\")\n\nexport const codecForCoreBankConfig =\n (): Codec<TalerCorebankApi.Config> =>\n buildCodecForObject<TalerCorebankApi.Config>()\n .property(\"name\", codecForConstString(\"libeufin-bank\"))\n // .property(\"name\", codecForConstString(\"taler-corebank\"))\n .property(\"version\", codecForString())\n .property(\"allow_deletions\", codecForBoolean())\n .property(\"allow_registrations\", codecForBoolean())\n .property(\"have_cashout\", codecOptional(codecForBoolean()))\n .property(\"currency\", codecForCurrencySpecificiation())\n .property(\"fiat_currency\", codecOptional(codecForCurrencySpecificiation()))\n .property(\"conversion_info\", codecOptional(codecForConversionRatesResponse()))\n .build(\"TalerCorebankApi.Config\")\n\nexport const codecForMerchantConfig =\n (): Codec<TalerMerchantApi.VersionResponse> =>\n buildCodecForObject<TalerMerchantApi.VersionResponse>()\n .property(\"name\", codecForConstString(\"taler-merchant\"))\n .property(\"currency\", codecForString())\n .property(\"version\", codecForString())\n .property(\"currencies\", codecForMap(codecForCurrencySpecificiation()))\n .build(\"TalerMerchantApi.VersionResponse\")\n\nexport const codecForExchangeConfig =\n (): Codec<TalerExchangeApi.ExchangeVersionResponse> =>\n buildCodecForObject<TalerExchangeApi.ExchangeVersionResponse>()\n .property(\"version\", codecForString())\n .property(\"name\", codecForConstString(\"taler-exchange\"))\n .property(\"currency\", codecForString())\n .property(\"currency_specification\", codecForCurrencySpecificiation())\n .property(\"supported_kyc_requirements\", codecForList(codecForString()))\n .build(\"TalerExchangeApi.ExchangeVersionResponse\")\n\nconst codecForBalance = (): Codec<TalerCorebankApi.Balance> =>\n buildCodecForObject<TalerCorebankApi.Balance>()\n .property(\"amount\", codecForAmountString())\n .property(\"credit_debit_indicator\", codecForEither(codecForConstString(\"credit\"), codecForConstString(\"debit\")))\n .build(\"TalerCorebankApi.Balance\")\n\nconst codecForPublicAccount = (): Codec<TalerCorebankApi.PublicAccount> =>\n buildCodecForObject<TalerCorebankApi.PublicAccount>()\n .property(\"account_name\", codecForString())\n .property(\"balance\", codecForBalance())\n .property(\"payto_uri\", codecForPaytoString())\n .build(\"TalerCorebankApi.PublicAccount\")\n\nexport const codecForPublicAccountsResponse =\n (): Codec<TalerCorebankApi.PublicAccountsResponse> =>\n buildCodecForObject<TalerCorebankApi.PublicAccountsResponse>()\n .property(\"public_accounts\", codecForList(codecForPublicAccount()))\n .build(\"TalerCorebankApi.PublicAccountsResponse\")\n\n\nexport const codecForAccountMinimalData =\n (): Codec<TalerCorebankApi.AccountMinimalData> =>\n buildCodecForObject<TalerCorebankApi.AccountMinimalData>()\n .property(\"balance\", codecForBalance())\n .property(\"debit_threshold\", codecForAmountString())\n .property(\"name\", codecForString())\n .property(\"username\", codecForString())\n .build(\"TalerCorebankApi.AccountMinimalData\")\n\nexport const codecForListBankAccountsResponse =\n (): Codec<TalerCorebankApi.ListBankAccountsResponse> =>\n buildCodecForObject<TalerCorebankApi.ListBankAccountsResponse>()\n .property(\"accounts\", codecForList(codecForAccountMinimalData()))\n .build(\"TalerCorebankApi.ListBankAccountsResponse\")\n\nexport const codecForAccountData =\n (): Codec<TalerCorebankApi.AccountData> =>\n buildCodecForObject<TalerCorebankApi.AccountData>()\n .property(\"name\", codecForString())\n .property(\"balance\", codecForBalance())\n .property(\"payto_uri\", codecForPaytoString())\n .property(\"debit_threshold\", codecForAmountString())\n .property(\"contact_data\", codecOptional(codecForChallengeContactData()))\n .property(\"cashout_payto_uri\", codecOptional(codecForPaytoString()))\n .build(\"TalerCorebankApi.AccountData\")\n\n\nexport const codecForChallengeContactData =\n (): Codec<TalerCorebankApi.ChallengeContactData> =>\n buildCodecForObject<TalerCorebankApi.ChallengeContactData>()\n .property(\"email\", codecOptional(codecForString()))\n .property(\"phone\", codecOptional(codecForString()))\n .build(\"TalerCorebankApi.ChallengeContactData\")\n\nexport const codecForBankAccountTransactionsResponse =\n (): Codec<TalerCorebankApi.BankAccountTransactionsResponse> =>\n buildCodecForObject<TalerCorebankApi.BankAccountTransactionsResponse>()\n .property(\"transactions\", codecForList(codecForBankAccountTransactionInfo()))\n .build(\"TalerCorebankApi.BankAccountTransactionsResponse\");\n\nexport const codecForBankAccountTransactionInfo =\n (): Codec<TalerCorebankApi.BankAccountTransactionInfo> =>\n buildCodecForObject<TalerCorebankApi.BankAccountTransactionInfo>()\n .property(\"creditor_payto_uri\", codecForPaytoString())\n .property(\"debtor_payto_uri\", codecForPaytoString())\n .property(\"amount\", codecForAmountString())\n .property(\"direction\", codecForEither(codecForConstString(\"debit\"), codecForConstString(\"credit\")))\n .property(\"subject\", codecForString())\n .property(\"row_id\", codecForNumber())\n .property(\"date\", codecForTimestamp)\n .build(\"TalerCorebankApi.BankAccountTransactionInfo\");\n\nexport const codecForBankAccountCreateWithdrawalResponse =\n (): Codec<TalerCorebankApi.BankAccountCreateWithdrawalResponse> =>\n buildCodecForObject<TalerCorebankApi.BankAccountCreateWithdrawalResponse>()\n .property(\"taler_withdraw_uri\", codecForTalerActionString())\n .property(\"withdrawal_id\", codecForString())\n .build(\"TalerCorebankApi.BankAccountCreateWithdrawalResponse\");\n\nexport const codecForBankAccountGetWithdrawalResponse =\n (): Codec<TalerCorebankApi.BankAccountGetWithdrawalResponse> =>\n buildCodecForObject<TalerCorebankApi.BankAccountGetWithdrawalResponse>()\n .property(\"amount\", codecForAmountString())\n .property(\"aborted\", codecForBoolean())\n .property(\"confirmation_done\", codecForBoolean())\n .property(\"selected_exchange_account\", codecOptional(codecForPaytoString()))\n .property(\"selected_reserve_pub\", codecOptional(codecForString()))\n .property(\"selection_done\", (codecForBoolean()))\n .build(\"TalerCorebankApi.BankAccountGetWithdrawalResponse\");\n\nexport const codecForCashoutPending =\n (): Codec<TalerCorebankApi.CashoutPending> =>\n buildCodecForObject<TalerCorebankApi.CashoutPending>()\n .property(\"cashout_id\", codecForString())\n .build(\"TalerCorebankApi.CashoutPending\");\n\nexport const codecForCashoutConversionResponse =\n (): Codec<TalerCorebankApi.CashoutConversionResponse> =>\n buildCodecForObject<TalerCorebankApi.CashoutConversionResponse>()\n .property(\"amount_credit\", codecForAmountString())\n .property(\"amount_debit\", codecForAmountString())\n .build(\"TalerCorebankApi.CashoutConversionResponse\");\n\nexport const codecForCashinConversionResponse =\n (): Codec<TalerCorebankApi.CashinConversionResponse> =>\n buildCodecForObject<TalerCorebankApi.CashinConversionResponse>()\n .property(\"amount_credit\", codecForAmountString())\n .property(\"amount_debit\", codecForAmountString())\n .build(\"TalerCorebankApi.CashinConversionResponse\");\n\nexport const codecForCashouts =\n (): Codec<TalerCorebankApi.Cashouts> =>\n buildCodecForObject<TalerCorebankApi.Cashouts>()\n .property(\"cashouts\", codecForList(codecForCashoutInfo()))\n .build(\"TalerCorebankApi.Cashouts\");\n\nexport const codecForCashoutInfo =\n (): Codec<TalerCorebankApi.CashoutInfo> =>\n buildCodecForObject<TalerCorebankApi.CashoutInfo>()\n .property(\"cashout_id\", codecForString())\n .property(\"status\", codecForEither(codecForConstString(\"pending\"), codecForConstString(\"aborted\"), codecForConstString(\"confirmed\"),))\n .build(\"TalerCorebankApi.CashoutInfo\");\n\nexport const codecForGlobalCashouts =\n (): Codec<TalerCorebankApi.GlobalCashouts> =>\n buildCodecForObject<TalerCorebankApi.GlobalCashouts>()\n .property(\"cashouts\", codecForList(codecForGlobalCashoutInfo()))\n .build(\"TalerCorebankApi.GlobalCashouts\");\n\nexport const codecForGlobalCashoutInfo =\n (): Codec<TalerCorebankApi.GlobalCashoutInfo> =>\n buildCodecForObject<TalerCorebankApi.GlobalCashoutInfo>()\n .property(\"cashout_id\", codecForString())\n .property(\"username\", codecForString())\n .property(\"status\", codecForEither(codecForConstString(\"pending\"), codecForConstString(\"aborted\"), codecForConstString(\"confirmed\"),))\n .build(\"TalerCorebankApi.GlobalCashoutInfo\");\n\nexport const codecForCashoutStatusResponse =\n (): Codec<TalerCorebankApi.CashoutStatusResponse> =>\n buildCodecForObject<TalerCorebankApi.CashoutStatusResponse>()\n .property(\"amount_credit\", codecForAmountString())\n .property(\"amount_debit\", codecForAmountString())\n .property(\"confirmation_time\", codecForTimestamp)\n .property(\"creation_time\", codecForTimestamp)\n // .property(\"credit_payto_uri\", codecForPaytoString())\n .property(\"status\", codecForEither(codecForConstString(\"pending\"), codecForConstString(\"aborted\"), codecForConstString(\"confirmed\")))\n .property(\"subject\", codecForString())\n .build(\"TalerCorebankApi.CashoutStatusResponse\");\n\nexport const codecForConversionRatesResponse =\n (): Codec<TalerCorebankApi.ConversionRatesResponse> =>\n buildCodecForObject<TalerCorebankApi.ConversionRatesResponse>()\n .property(\"buy_at_ratio\", codecForDecimalNumber())\n .property(\"buy_in_fee\", codecForDecimalNumber())\n .property(\"sell_at_ratio\", codecForDecimalNumber())\n .property(\"sell_out_fee\", codecForDecimalNumber())\n .build(\"TalerCorebankApi.ConversionRatesResponse\");\n\n\nexport const codecForMonitorResponse = (): Codec<TalerCorebankApi.MonitorResponse> => buildCodecForUnion<TalerCorebankApi.MonitorResponse>()\n .discriminateOn(\"type\")\n .alternative(\"no-conversions\", codecForMonitorNoConversion())\n .alternative(\"with-conversions\", codecForMonitorWithCashout())\n .build(\"TalerWireGatewayApi.IncomingBankTransaction\");\n\nexport const codecForMonitorNoConversion =\n (): Codec<TalerCorebankApi.MonitorNoConversion> =>\n buildCodecForObject<TalerCorebankApi.MonitorNoConversion>()\n .property(\"type\", codecForConstString(\"no-conversions\"))\n .property(\"talerInCount\", codecForNumber())\n .property(\"talerInVolume\", codecForAmountString())\n .property(\"talerOutCount\", codecForNumber())\n .property(\"talerOutVolume\", codecForAmountString())\n .build(\"TalerCorebankApi.MonitorJustPayouts\");\n\nexport const codecForMonitorWithCashout =\n (): Codec<TalerCorebankApi.MonitorWithConversion> =>\n buildCodecForObject<TalerCorebankApi.MonitorWithConversion>()\n .property(\"type\", codecForConstString(\"with-conversions\"))\n .property(\"cashinCount\", codecForNumber())\n .property(\"cashinFiatVolume\", codecForAmountString())\n .property(\"cashinRegionalVolume\", codecForAmountString())\n .property(\"cashoutCount\", codecForNumber())\n .property(\"cashoutFiatVolume\", codecForAmountString())\n .property(\"cashoutRegionalVolume\", codecForAmountString())\n .property(\"talerInCount\", codecForNumber())\n .property(\"talerInVolume\", codecForAmountString())\n .property(\"talerOutCount\", codecForNumber())\n .property(\"talerOutVolume\", codecForAmountString())\n .build(\"TalerCorebankApi.MonitorWithCashout\");\n\nexport const codecForBankVersion =\n (): Codec<TalerBankIntegrationApi.BankVersion> =>\n buildCodecForObject<TalerBankIntegrationApi.BankVersion>()\n .property(\"currency\", codecForCurrencyName())\n .property(\"currency_specification\", codecForCurrencySpecificiation())\n .property(\"name\", codecForConstString(\"taler-bank-integration\"))\n .property(\"version\", codecForLibtoolVersion())\n .build(\"TalerBankIntegrationApi.BankVersion\");\n\nexport const codecForBankWithdrawalOperationStatus =\n (): Codec<TalerBankIntegrationApi.BankWithdrawalOperationStatus> =>\n buildCodecForObject<TalerBankIntegrationApi.BankWithdrawalOperationStatus>()\n .property(\"aborted\", codecForBoolean())\n .property(\"selection_done\", codecForBoolean())\n .property(\"transfer_done\", codecForBoolean())\n .property(\"amount\", codecForAmountString())\n .property(\"sender_wire\", codecOptional(codecForPaytoString()))\n .property(\"suggested_exchange\", codecOptional(codecForString()))\n .property(\"confirm_transfer_url\", codecOptional(codecForURL()))\n .property(\"wire_types\", codecForList(codecForString()))\n .build(\"TalerBankIntegrationApi.BankWithdrawalOperationStatus\");\n\nexport const codecForBankWithdrawalOperationPostResponse =\n (): Codec<TalerBankIntegrationApi.BankWithdrawalOperationPostResponse> =>\n buildCodecForObject<TalerBankIntegrationApi.BankWithdrawalOperationPostResponse>()\n .property(\"confirm_transfer_url\", codecOptional(codecForURL()))\n .property(\"transfer_done\", codecForBoolean())\n .build(\"TalerBankIntegrationApi.BankWithdrawalOperationPostResponse\");\n\nexport const codecForMerchantIncomingHistory =\n (): Codec<TalerRevenueApi.MerchantIncomingHistory> =>\n buildCodecForObject<TalerRevenueApi.MerchantIncomingHistory>()\n .property(\"credit_account\", codecForPaytoString())\n .property(\"incoming_transactions\", codecForList(codecForMerchantIncomingBankTransaction()))\n .build(\"TalerRevenueApi.MerchantIncomingHistory\");\n\nexport const codecForMerchantIncomingBankTransaction =\n (): Codec<TalerRevenueApi.MerchantIncomingBankTransaction> =>\n buildCodecForObject<TalerRevenueApi.MerchantIncomingBankTransaction>()\n .property(\"row_id\", codecForNumber())\n .property(\"date\", codecForTimestamp)\n .property(\"amount\", codecForAmountString())\n .property(\"debit_account\", codecForPaytoString())\n .property(\"exchange_url\", codecForURL())\n .property(\"wtid\", codecForString())\n .build(\"TalerRevenueApi.MerchantIncomingBankTransaction\");\n\nexport const codecForTransferResponse =\n (): Codec<TalerWireGatewayApi.TransferResponse> =>\n buildCodecForObject<TalerWireGatewayApi.TransferResponse>()\n .property(\"row_id\", codecForNumber())\n .property(\"timestamp\", codecForTimestamp)\n .build(\"TalerWireGatewayApi.TransferResponse\");\n\nexport const codecForIncomingHistory =\n (): Codec<TalerWireGatewayApi.IncomingHistory> =>\n buildCodecForObject<TalerWireGatewayApi.IncomingHistory>()\n .property(\"credit_account\", codecForPaytoString())\n .property(\"incoming_transactions\", codecForList(codecForIncomingBankTransaction()))\n .build(\"TalerWireGatewayApi.IncomingHistory\");\n\nexport const codecForIncomingBankTransaction = (): Codec<TalerWireGatewayApi.IncomingBankTransaction> => buildCodecForUnion<TalerWireGatewayApi.IncomingBankTransaction>()\n .discriminateOn(\"type\")\n .alternative(\"RESERVE\", codecForIncomingReserveTransaction())\n .alternative(\"WAD\", codecForIncomingWadTransaction())\n .build(\"TalerWireGatewayApi.IncomingBankTransaction\");\n\nexport const codecForIncomingReserveTransaction =\n (): Codec<TalerWireGatewayApi.IncomingReserveTransaction> =>\n buildCodecForObject<TalerWireGatewayApi.IncomingReserveTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"date\", codecForTimestamp)\n .property(\"debit_account\", codecForPaytoString())\n .property(\"reserve_pub\", codecForString())\n .property(\"row_id\", codecForNumber())\n .property(\"type\", codecForConstString(\"RESERVE\"))\n .build(\"TalerWireGatewayApi.IncomingReserveTransaction\");\n\nexport const codecForIncomingWadTransaction =\n (): Codec<TalerWireGatewayApi.IncomingWadTransaction> =>\n buildCodecForObject<TalerWireGatewayApi.IncomingWadTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"credit_account\", codecForPaytoString())\n .property(\"date\", codecForTimestamp)\n .property(\"debit_account\", codecForPaytoString())\n .property(\"origin_exchange_url\", codecForURL())\n .property(\"row_id\", codecForNumber())\n .property(\"type\", codecForConstString(\"WAD\"))\n .property(\"wad_id\", codecForString())\n .build(\"TalerWireGatewayApi.IncomingWadTransaction\");\n\nexport const codecForOutgoingHistory =\n (): Codec<TalerWireGatewayApi.OutgoingHistory> =>\n buildCodecForObject<TalerWireGatewayApi.OutgoingHistory>()\n .property(\"debit_account\", codecForPaytoString())\n .property(\"outgoing_transactions\", codecForList(codecForOutgoingBankTransaction()))\n .build(\"TalerWireGatewayApi.OutgoingHistory\");\n\nexport const codecForOutgoingBankTransaction =\n (): Codec<TalerWireGatewayApi.OutgoingBankTransaction> =>\n buildCodecForObject<TalerWireGatewayApi.OutgoingBankTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"credit_account\", codecForPaytoString())\n .property(\"date\", codecForTimestamp)\n .property(\"exchange_base_url\", codecForURL())\n .property(\"row_id\", codecForNumber())\n .property(\"wtid\", codecForString())\n .build(\"TalerWireGatewayApi.OutgoingBankTransaction\");\n\nexport const codecForAddIncomingResponse =\n (): Codec<TalerWireGatewayApi.AddIncomingResponse> =>\n buildCodecForObject<TalerWireGatewayApi.AddIncomingResponse>()\n .property(\"row_id\", codecForNumber())\n .property(\"timestamp\", codecForTimestamp)\n .build(\"TalerWireGatewayApi.AddIncomingResponse\");\n\nexport const codecForAmlRecords =\n (): Codec<TalerExchangeApi.AmlRecords> =>\n buildCodecForObject<TalerExchangeApi.AmlRecords>()\n .property(\"records\", codecForList(codecForAmlRecord()))\n .build(\"TalerExchangeApi.PublicAccountsResponse\");\n\nexport const codecForAmlRecord =\n (): Codec<TalerExchangeApi.AmlRecord> =>\n buildCodecForObject<TalerExchangeApi.AmlRecord>()\n .property(\"current_state\", codecForNumber())\n .property(\"h_payto\", codecForString())\n .property(\"rowid\", codecForNumber())\n .property(\"threshold\", codecForAmountString())\n .build(\"TalerExchangeApi.AmlRecord\");\n\nexport const codecForAmlDecisionDetails =\n (): Codec<TalerExchangeApi.AmlDecisionDetails> =>\n buildCodecForObject<TalerExchangeApi.AmlDecisionDetails>()\n .property(\"aml_history\", codecForList(codecForAmlDecisionDetail()))\n .property(\"kyc_attributes\", codecForList(codecForKycDetail()))\n .build(\"TalerExchangeApi.AmlDecisionDetails\");\n\nexport const codecForAmlDecisionDetail =\n (): Codec<TalerExchangeApi.AmlDecisionDetail> =>\n buildCodecForObject<TalerExchangeApi.AmlDecisionDetail>()\n .property(\"justification\", codecForString())\n .property(\"new_state\", codecForNumber())\n .property(\"decision_time\", codecForTimestamp)\n .property(\"new_threshold\", codecForAmountString())\n .property(\"decider_pub\", codecForString())\n .build(\"TalerExchangeApi.AmlDecisionDetail\");\n\ninterface KycDetail {\n provider_section: string;\n attributes?: Object;\n collection_time: Timestamp;\n expiration_time: Timestamp;\n}\nexport const codecForKycDetail =\n (): Codec<TalerExchangeApi.KycDetail> =>\n buildCodecForObject<TalerExchangeApi.KycDetail>()\n .property(\"provider_section\", codecForString())\n .property(\"attributes\", codecOptional(codecForAny()))\n .property(\"collection_time\", codecForTimestamp)\n .property(\"expiration_time\", codecForTimestamp)\n .build(\"TalerExchangeApi.KycDetail\");\n\nexport const codecForAmlDecision =\n (): Codec<TalerExchangeApi.AmlDecision> =>\n buildCodecForObject<TalerExchangeApi.AmlDecision>()\n .property(\"justification\", codecForString())\n .property(\"new_threshold\", codecForAmountString())\n .property(\"h_payto\", codecForString())\n .property(\"new_state\", codecForNumber())\n .property(\"officer_sig\", codecForString())\n .property(\"decision_time\", codecForTimestamp)\n .property(\"kyc_requirements\", codecOptional(codecForList(codecForString())))\n .build(\"TalerExchangeApi.AmlDecision\");\n\n\n// export const codecFor =\n// (): Codec<TalerWireGatewayApi.PublicAccountsResponse> =>\n// buildCodecForObject<TalerWireGatewayApi.PublicAccountsResponse>()\n// .property(\"\", codecForString())\n// .build(\"TalerWireGatewayApi.PublicAccountsResponse\");\n\n\ntype EmailAddress = string;\ntype PhoneNumber = string;\ntype EddsaSignature = string;\n// base32 encoded RSA blinded signature.\ntype BlindedRsaSignature = string;\ntype Base32 = string;\n\ntype DecimalNumber = number;\ntype RsaSignature = string;\n// The type of a coin's blinded envelope depends on the cipher that is used\n// for signing with a denomination key.\ntype CoinEnvelope = RSACoinEnvelope | CSCoinEnvelope;\n// For denomination signatures based on RSA, the planchet is just a blinded\n// coin's public EdDSA key.\ninterface RSACoinEnvelope {\n cipher: \"RSA\" | \"RSA+age_restricted\";\n rsa_blinded_planchet: string; // Crockford Base32 encoded\n}\n// For denomination signatures based on Blind Clause-Schnorr, the planchet\n// consists of the public nonce and two Curve25519 scalars which are two\n// blinded challenges in the Blinded Clause-Schnorr signature scheme.\n// See https://taler.net/papers/cs-thesis.pdf for details.\ninterface CSCoinEnvelope {\n cipher: \"CS\" | \"CS+age_restricted\";\n cs_nonce: string; // Crockford Base32 encoded\n cs_blinded_c0: string; // Crockford Base32 encoded\n cs_blinded_c1: string; // Crockford Base32 encoded\n}\n// Secret for blinding/unblinding.\n// An RSA blinding secret, which is basically\n// a 256-bit nonce, converted to Crockford Base32.\ntype DenominationBlindingKeyP = string;\n\nconst codecForURL = codecForString\nconst codecForLibtoolVersion = codecForString\nconst codecForCurrencyName = codecForString\nconst codecForEddsaSignature = codecForString\nconst codecForDecimalNumber = codecForNumber\n\nenum TanChannel {\n SMS = \"sms\",\n EMAIL = \"email\",\n}\n\nexport namespace TalerWireGatewayApi {\n\n export interface TransferResponse {\n\n // Timestamp that indicates when the wire transfer will be executed.\n // In cases where the wire transfer gateway is unable to know when\n // the wire transfer will be executed, the time at which the request\n // has been received and stored will be returned.\n // The purpose of this field is for debugging (humans trying to find\n // the transaction) as well as for taxation (determining which\n // time period a transaction belongs to).\n timestamp: Timestamp;\n\n // Opaque ID of the transaction that the bank has made.\n row_id: SafeUint64;\n }\n\n export interface TransferRequest {\n // Nonce to make the request idempotent. Requests with the same\n // transaction_uid that differ in any of the other fields\n // are rejected.\n request_uid: HashCode;\n\n // Amount to transfer.\n amount: AmountString;\n\n // Base URL of the exchange. Shall be included by the bank gateway\n // in the appropriate section of the wire transfer details.\n exchange_base_url: string;\n\n // Wire transfer identifier chosen by the exchange,\n // used by the merchant to identify the Taler order(s)\n // associated with this wire transfer.\n wtid: ShortHashCode;\n\n // The recipient's account identifier as a payto URI.\n credit_account: PaytoString;\n }\n\n export interface IncomingHistory {\n\n // Array of incoming transactions.\n incoming_transactions: IncomingBankTransaction[];\n\n // Payto URI to identify the receiver of funds.\n // This must be one of the exchange's bank accounts.\n // Credit account is shared by all incoming transactions\n // as per the nature of the request.\n credit_account: PaytoString;\n\n }\n\n // Union discriminated by the \"type\" field.\n export type IncomingBankTransaction =\n | IncomingReserveTransaction\n | IncomingWadTransaction;\n\n export interface IncomingReserveTransaction {\n type: \"RESERVE\";\n\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the sender of funds.\n debit_account: PaytoString;\n\n // The reserve public key extracted from the transaction details.\n reserve_pub: EddsaPublicKey;\n\n }\n\n export interface IncomingWadTransaction {\n type: \"WAD\";\n\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the receiver of funds.\n // This must be one of the exchange's bank accounts.\n credit_account: PaytoString;\n\n // Payto URI to identify the sender of funds.\n debit_account: PaytoString;\n\n // Base URL of the exchange that originated the wad.\n origin_exchange_url: string;\n\n // The reserve public key extracted from the transaction details.\n wad_id: WadId;\n }\n\n\n export interface OutgoingHistory {\n\n // Array of outgoing transactions.\n outgoing_transactions: OutgoingBankTransaction[];\n\n // Payto URI to identify the sender of funds.\n // This must be one of the exchange's bank accounts.\n // Credit account is shared by all incoming transactions\n // as per the nature of the request.\n debit_account: PaytoString;\n\n }\n\n export interface OutgoingBankTransaction {\n\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the receiver of funds.\n credit_account: PaytoString;\n\n // The wire transfer ID in the outgoing transaction.\n wtid: ShortHashCode;\n\n // Base URL of the exchange.\n exchange_base_url: string;\n }\n\n export interface AddIncomingRequest {\n // Amount to transfer.\n amount: AmountString;\n\n // Reserve public key that is included in the wire transfer details\n // to identify the reserve that is being topped up.\n reserve_pub: EddsaPublicKey;\n\n // Account (as payto URI) that makes the wire transfer to the exchange.\n // Usually this account must be created by the test harness before this API is\n // used. An exception is the \"exchange-fakebank\", where any debit account can be\n // specified, as it is automatically created.\n debit_account: PaytoString;\n }\n\n export interface AddIncomingResponse {\n\n // Timestamp that indicates when the wire transfer will be executed.\n // In cases where the wire transfer gateway is unable to know when\n // the wire transfer will be executed, the time at which the request\n // has been received and stored will be returned.\n // The purpose of this field is for debugging (humans trying to find\n // the transaction) as well as for taxation (determining which\n // time period a transaction belongs to).\n timestamp: Timestamp;\n\n // Opaque ID of the transaction that the bank has made.\n row_id: SafeUint64;\n }\n\n\n\n}\n\nexport namespace TalerRevenueApi {\n export interface MerchantIncomingHistory {\n\n // Array of incoming transactions.\n incoming_transactions: MerchantIncomingBankTransaction[];\n\n // Payto URI to identify the receiver of funds.\n // This must be one of the merchant's bank accounts.\n // Credit account is shared by all incoming transactions\n // as per the nature of the request.\n credit_account: PaytoString;\n\n }\n\n export interface MerchantIncomingBankTransaction {\n\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the sender of funds.\n debit_account: PaytoString;\n\n // Base URL of the exchange where the transfer originated form.\n exchange_url: string;\n\n // The wire transfer identifier.\n wtid: WireTransferIdentifierRawP;\n }\n}\n\nexport namespace TalerBankIntegrationApi {\n export interface BankVersion {\n // libtool-style representation of the Bank protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Currency used by this bank.\n currency: string;\n\n // How the bank SPA should render this currency.\n currency_specification: CurrencySpecification;\n\n // Name of the API.\n name: \"taler-bank-integration\";\n }\n\n export interface BankWithdrawalOperationStatus {\n // Indicates whether the withdrawal was aborted.\n aborted: boolean;\n\n // Has the wallet selected parameters for the withdrawal operation\n // (exchange and reserve public key) and successfully sent it\n // to the bank?\n selection_done: boolean;\n\n // The transfer has been confirmed and registered by the bank.\n // Does not guarantee that the funds have arrived at the exchange already.\n transfer_done: boolean;\n\n // Amount that will be withdrawn with this operation\n // (raw amount without fee considerations).\n amount: AmountString;\n\n // Bank account of the customer that is withdrawing, as a\n // payto URI.\n sender_wire?: PaytoString;\n\n // Suggestion for an exchange given by the bank.\n suggested_exchange?: string;\n\n // URL that the user needs to navigate to in order to\n // complete some final confirmation (e.g. 2FA).\n // It may contain withdrawal operation id\n confirm_transfer_url?: string;\n\n // Wire transfer types supported by the bank.\n wire_types: string[];\n }\n\n export interface BankWithdrawalOperationPostRequest {\n\n // Reserve public key.\n reserve_pub: string;\n\n // Payto address of the exchange selected for the withdrawal.\n selected_exchange: PaytoString;\n }\n\n export interface BankWithdrawalOperationPostResponse {\n\n // The transfer has been confirmed and registered by the bank.\n // Does not guarantee that the funds have arrived at the exchange already.\n transfer_done: boolean;\n\n // URL that the user needs to navigate to in order to\n // complete some final confirmation (e.g. 2FA).\n //\n // Only applicable when transfer_done is false.\n // It may contain withdrawal operation id\n confirm_transfer_url?: string;\n }\n\n\n}\nexport namespace TalerCorebankApi {\n\n export interface IntegrationConfig {\n // libtool-style representation of the Bank protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Currency used by this bank.\n currency: string;\n\n // How the bank SPA should render this currency.\n currency_specification: CurrencySpecification;\n\n // Name of the API.\n name: \"taler-bank-integration\";\n\n }\n export interface Config {\n // Name of this API, always \"taler-corebank\".\n name: \"libeufin-bank\";\n // name: \"taler-corebank\";\n\n // API version in the form $n:$n:$n\n version: string;\n\n // If 'true' anyone can register\n // If 'false' only the admin can\n allow_registrations: boolean;\n\n // If 'true' account can delete themselves\n // If 'false' only the admin can delete accounts\n allow_deletions: boolean;\n\n // If 'true', the server provides local currency\n // conversion support.\n // If missing or false, some parts of the API\n // are not supported and return 404.\n have_cashout?: boolean;\n\n // How the bank SPA should render the currency.\n currency: CurrencySpecification;\n\n // Fiat currency. That is the currency in which\n // cash-out operations ultimately wire money.\n // Only applicable if have_cashout=true.\n fiat_currency?: CurrencySpecification;\n\n // Extra conversion rate information.\n // Only present if conversion is supported and the server opts in\n // to report the static conversion rate.\n conversion_info?: ConversionRatesResponse\n }\n\n export interface BankAccountCreateWithdrawalRequest {\n // Amount to withdraw.\n amount: AmountString;\n }\n export interface BankAccountCreateWithdrawalResponse {\n // ID of the withdrawal, can be used to view/modify the withdrawal operation.\n withdrawal_id: string;\n\n // URI that can be passed to the wallet to initiate the withdrawal.\n taler_withdraw_uri: TalerActionString;\n }\n export interface BankAccountGetWithdrawalResponse {\n // Amount that will be withdrawn with this withdrawal operation.\n amount: AmountString;\n\n // Was the withdrawal aborted?\n aborted: boolean;\n\n // Has the withdrawal been confirmed by the bank?\n // The wire transfer for a withdrawal is only executed once\n // both confirmation_done is true and selection_done is true.\n confirmation_done: boolean;\n\n // Did the wallet select reserve details?\n selection_done: boolean;\n\n // Reserve public key selected by the exchange,\n // only non-null if selection_done is true.\n selected_reserve_pub: string | undefined;\n\n // Exchange account selected by the wallet, or by the bank\n // (with the default exchange) in case the wallet did not provide one\n // through the Integration API.\n selected_exchange_account: PaytoString | undefined;\n }\n\n export interface BankAccountTransactionsResponse {\n transactions: BankAccountTransactionInfo[];\n }\n\n export interface BankAccountTransactionInfo {\n creditor_payto_uri: PaytoString;\n debtor_payto_uri: PaytoString;\n\n amount: AmountString;\n direction: \"debit\" | \"credit\";\n\n subject: string;\n\n // Transaction unique ID. Matches\n // $transaction_id from the URI.\n row_id: number;\n date: Timestamp;\n }\n\n export interface CreateBankAccountTransactionCreate {\n // Address in the Payto format of the wire transfer receiver.\n // It needs at least the 'message' query string parameter.\n payto_uri: PaytoString;\n\n // Transaction amount (in the $currency:x.y format), optional.\n // However, when not given, its value must occupy the 'amount'\n // query string parameter of the 'payto' field. In case it\n // is given in both places, the paytoUri's takes the precedence.\n amount?: AmountString;\n }\n\n export interface RegisterAccountRequest {\n // Username\n username: string;\n\n // Password.\n password: string;\n\n // Legal name of the account owner\n name: string;\n\n // Defaults to false.\n is_public?: boolean;\n\n // Is this a taler exchange account?\n // If true:\n // - incoming transactions to the account that do not\n // have a valid reserve public key are automatically\n // - the account provides the taler-wire-gateway-api endpoints\n // Defaults to false.\n is_taler_exchange?: boolean;\n\n // Addresses where to send the TAN for transactions.\n // Currently only used for cashouts.\n // If missing, cashouts will fail.\n // In the future, might be used for other transactions\n // as well.\n challenge_contact_data?: ChallengeContactData;\n\n // 'payto' address pointing a bank account\n // external to the libeufin-bank.\n // Payments will be sent to this bank account\n // when the user wants to convert the local currency\n // back to fiat currency outside libeufin-bank.\n cashout_payto_uri?: PaytoString;\n\n // Internal payto URI of this bank account.\n // Used mostly for testing.\n internal_payto_uri?: PaytoString;\n }\n export interface ChallengeContactData {\n\n // E-Mail address\n email?: EmailAddress;\n\n // Phone number.\n phone?: PhoneNumber;\n }\n\n export interface AccountReconfiguration {\n\n // Addresses where to send the TAN for transactions.\n // Currently only used for cashouts.\n // If missing, cashouts will fail.\n // In the future, might be used for other transactions\n // as well.\n challenge_contact_data?: ChallengeContactData;\n\n // 'payto' address pointing a bank account\n // external to the libeufin-bank.\n // Payments will be sent to this bank account\n // when the user wants to convert the local currency\n // back to fiat currency outside libeufin-bank.\n cashout_address?: PaytoString;\n\n // Legal name associated with $username.\n // When missing, the old name is kept.\n name?: string;\n\n // If present, change the is_exchange configuration.\n // See RegisterAccountRequest\n is_taler_exchange?: boolean;\n\n // If present, change the max debit allowed for this user\n // Only admin can change this property.\n debit_threshold?: AmountString\n\n }\n\n\n export interface AccountPasswordChange {\n // New password.\n new_password: string;\n // Old password. If present, chec that the old password matches.\n // Optional for admin account.\n old_password?: string;\n }\n\n export interface PublicAccountsResponse {\n public_accounts: PublicAccount[];\n }\n export interface PublicAccount {\n payto_uri: PaytoString;\n\n balance: Balance;\n\n // The account name (=username) of the\n // libeufin-bank account.\n account_name: string;\n }\n\n export interface ListBankAccountsResponse {\n accounts: AccountMinimalData[];\n }\n export interface Balance {\n amount: AmountString;\n credit_debit_indicator: \"credit\" | \"debit\";\n }\n export interface AccountMinimalData {\n // Username\n username: string;\n\n // Legal name of the account owner.\n name: string;\n\n // current balance of the account\n balance: Balance;\n\n // Number indicating the max debit allowed for the requesting user.\n debit_threshold: AmountString;\n }\n\n export interface AccountData {\n // Legal name of the account owner.\n name: string;\n\n // Available balance on the account.\n balance: Balance;\n\n // payto://-URI of the account.\n payto_uri: PaytoString;\n\n // Number indicating the max debit allowed for the requesting user.\n debit_threshold: AmountString;\n\n contact_data?: ChallengeContactData;\n\n // 'payto' address pointing the bank account\n // where to send cashouts. This field is optional\n // because not all the accounts are required to participate\n // in the merchants' circuit. One example is the exchange:\n // that never cashouts. Registering these accounts can\n // be done via the access API.\n cashout_payto_uri?: PaytoString;\n }\n\n\n export interface CashoutRequest {\n\n // Nonce to make the request idempotent. Requests with the same\n // request_uid that differ in any of the other fields\n // are rejected.\n request_uid: ShortHashCode;\n\n // Optional subject to associate to the\n // cashout operation. This data will appear\n // as the incoming wire transfer subject in\n // the user's fiat bank account.\n subject?: string;\n\n // That is the plain amount that the user specified\n // to cashout. Its $currency is the (regional) currency of the\n // bank instance.\n amount_debit: AmountString;\n\n // That is the amount that will effectively be\n // transferred by the bank to the user's bank\n // account, that is external to the regional currency.\n // It is expressed in the fiat currency and\n // is calculated after the cashout fee and the\n // exchange rate. See the /cashout-rates call.\n // The client needs to calculate this amount\n // correctly based on the amount_debit and the cashout rate,\n // otherwise the request will fail.\n amount_credit: AmountString;\n\n // Which channel the TAN should be sent to. If\n // this field is missing, it defaults to SMS.\n // The default choice prefers to change the communication\n // channel respect to the one used to issue this request.\n tan_channel?: TanChannel;\n }\n\n export interface CashoutPending {\n // ID identifying the operation being created\n // and now waiting for the TAN confirmation.\n cashout_id: string;\n }\n\n export interface CashoutConfirmRequest {\n // the TAN that confirms $CASHOUT_ID.\n tan: string;\n }\n\n export interface CashoutConversionResponse {\n // Amount that the user will get deducted from their regional\n // bank account, according to the 'amount_credit' value.\n amount_debit: AmountString;\n // Amount that the user will receive in their fiat\n // bank account, according to 'amount_debit'.\n amount_credit: AmountString;\n }\n\n export interface CashinConversionResponse {\n // Amount that the user will get deducted from their fiat\n // bank account, according to the 'amount_credit' value.\n amount_debit: AmountString;\n // Amount that the user will receive in their regional\n // bank account, according to 'amount_debit'.\n amount_credit: AmountString;\n }\n\n export interface Cashouts {\n // Every string represents a cash-out operation ID.\n cashouts: CashoutInfo[];\n }\n\n export interface CashoutInfo {\n cashout_id: string;\n status: \"pending\" | \"aborted\" | \"confirmed\";\n }\n export interface GlobalCashouts {\n // Every string represents a cash-out operation ID.\n cashouts: GlobalCashoutInfo[];\n }\n export interface GlobalCashoutInfo {\n cashout_id: string;\n username: string;\n status: \"pending\" | \"aborted\" | \"confirmed\";\n }\n\n export interface CashoutStatusResponse {\n status: \"pending\" | \"aborted\" | \"confirmed\";\n\n // Amount debited to the internal\n // regional currency bank account.\n amount_debit: AmountString;\n\n // Amount credited to the external bank account.\n amount_credit: AmountString;\n\n // Transaction subject.\n subject: string;\n\n // Fiat bank account that will receive the cashed out amount.\n // Specified as a payto URI.\n // credit_payto_uri: PaytoString;\n\n // Time when the cashout was created.\n creation_time: Timestamp;\n\n // Time when the cashout was confirmed via its TAN.\n // Missing when the operation wasn't confirmed yet.\n confirmation_time?: Timestamp;\n }\n\n export interface ConversionRatesResponse {\n\n // Exchange rate to buy the local currency from the external one\n buy_at_ratio: DecimalNumber;\n\n // Exchange rate to sell the local currency for the external one\n sell_at_ratio: DecimalNumber;\n\n // Fee to subtract after applying the buy ratio.\n buy_in_fee: DecimalNumber;\n\n // Fee to subtract after applying the sell ratio.\n sell_out_fee: DecimalNumber;\n }\n\n export enum MonitorTimeframeParam {\n hour, day, month, year, decade,\n }\n\n export type MonitorResponse =\n | MonitorNoConversion\n | MonitorWithConversion;\n\n // Monitoring stats when conversion is not supported\n export interface MonitorNoConversion {\n type: \"no-conversions\";\n\n // How many payments were made to a Taler exchange by another\n // bank account.\n talerInCount: number;\n\n // Overall volume that has been paid to a Taler\n // exchange by another bank account.\n talerInVolume: AmountString;\n\n // How many payments were made by a Taler exchange to another\n // bank account.\n talerOutCount: number;\n\n // Overall volume that has been paid by a Taler\n // exchange to another bank account.\n talerOutVolume: AmountString;\n }\n // Monitoring stats when conversion is supported\n export interface MonitorWithConversion {\n type: \"with-conversions\";\n\n // How many cashin operations were confirmed by a\n // wallet owner. Note: wallet owners\n // are NOT required to be customers of the libeufin-bank.\n cashinCount: number;\n\n // Overall regional currency that has been paid by the regional admin account\n // to regional bank accounts to fulfill all the confirmed cashin operations.\n cashinRegionalVolume: AmountString;\n\n // Overall fiat currency that has been paid to the fiat admin account\n // by fiat bank accounts to fulfill all the confirmed cashin operations.\n cashinFiatVolume: AmountString;\n\n // How many cashout operations were confirmed.\n cashoutCount: number;\n\n // Overall regional currency that has been paid to the regional admin account\n // by fiat bank accounts to fulfill all the confirmed cashout operations.\n cashoutRegionalVolume: AmountString;\n\n // Overall fiat currency that has been paid by the fiat admin account\n // to fiat bank accounts to fulfill all the confirmed cashout operations.\n cashoutFiatVolume: AmountString;\n\n // How many payments were made to a Taler exchange by another\n // bank account.\n talerInCount: number;\n\n // Overall volume that has been paid to a Taler\n // exchange by another bank account.\n talerInVolume: AmountString;\n\n // How many payments were made by a Taler exchange to another\n // bank account.\n talerOutCount: number;\n\n // Overall volume that has been paid by a Taler\n // exchange to another bank account.\n talerOutVolume: AmountString;\n }\n\n\n}\n\nexport namespace TalerExchangeApi {\n\n export enum AmlState {\n normal = 0,\n pending = 1,\n frozen = 2,\n }\n\n export interface AmlRecords {\n\n // Array of AML records matching the query.\n records: AmlRecord[];\n }\n export interface AmlRecord {\n\n // Which payto-address is this record about.\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n\n // What is the current AML state.\n current_state: AmlState;\n\n // Monthly transaction threshold before a review will be triggered\n threshold: AmountString;\n\n // RowID of the record.\n rowid: Integer;\n\n }\n\n export interface AmlDecisionDetails {\n\n // Array of AML decisions made for this account. Possibly\n // contains only the most recent decision if \"history\" was\n // not set to 'true'.\n aml_history: AmlDecisionDetail[];\n\n // Array of KYC attributes obtained for this account.\n kyc_attributes: KycDetail[];\n }\n export interface AmlDecisionDetail {\n\n // What was the justification given?\n justification: string;\n\n // What is the new AML state.\n new_state: Integer;\n\n // When was this decision made?\n decision_time: Timestamp;\n\n // What is the new AML decision threshold (in monthly transaction volume)?\n new_threshold: AmountString;\n\n // Who made the decision?\n decider_pub: AmlOfficerPublicKeyP;\n\n }\n export interface KycDetail {\n\n // Name of the configuration section that specifies the provider\n // which was used to collect the KYC details\n provider_section: string;\n\n // The collected KYC data. NULL if the attribute data could not\n // be decrypted (internal error of the exchange, likely the\n // attribute key was changed).\n attributes?: Object;\n\n // Time when the KYC data was collected\n collection_time: Timestamp;\n\n // Time when the validity of the KYC data will expire\n expiration_time: Timestamp;\n\n }\n\n\n export interface AmlDecision {\n\n // Human-readable justification for the decision.\n justification: string;\n\n // At what monthly transaction volume should the\n // decision be automatically reviewed?\n new_threshold: AmountString;\n\n // Which payto-address is the decision about?\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n\n // What is the new AML state (e.g. frozen, unfrozen, etc.)\n // Numerical values are defined in AmlDecisionState.\n new_state: Integer;\n\n // Signature by the AML officer over a\n // TALER_MasterAmlOfficerStatusPS.\n // Must have purpose TALER_SIGNATURE_MASTER_AML_KEY.\n officer_sig: EddsaSignature;\n\n // When was the decision made?\n decision_time: Timestamp;\n\n // Optional argument to impose new KYC requirements\n // that the customer has to satisfy to unblock transactions.\n kyc_requirements?: string[];\n }\n\n\n export interface ExchangeVersionResponse {\n // libtool-style representation of the Exchange protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Name of the protocol.\n name: \"taler-exchange\";\n\n // Currency supported by this exchange.\n currency: string;\n\n // How wallets should render this currency.\n currency_specification: CurrencySpecification;\n\n // Names of supported KYC requirements.\n supported_kyc_requirements: string[];\n\n }\n\n export type AccountRestriction =\n | RegexAccountRestriction\n | DenyAllAccountRestriction\n // Account restriction that disables this type of\n // account for the indicated operation categorically.\n export interface DenyAllAccountRestriction {\n\n type: \"deny\";\n }\n // Accounts interacting with this type of account\n // restriction must have a payto://-URI matching\n // the given regex.\n export interface RegexAccountRestriction {\n\n type: \"regex\";\n\n // Regular expression that the payto://-URI of the\n // partner account must follow. The regular expression\n // should follow posix-egrep, but without support for character\n // classes, GNU extensions, back-references or intervals. See\n // https://www.gnu.org/software/findutils/manual/html_node/find_html/posix_002degrep-regular-expression-syntax.html\n // for a description of the posix-egrep syntax. Applications\n // may support regexes with additional features, but exchanges\n // must not use such regexes.\n payto_regex: string;\n\n // Hint for a human to understand the restriction\n // (that is hopefully easier to comprehend than the regex itself).\n human_hint: string;\n\n // Map from IETF BCP 47 language tags to localized\n // human hints.\n human_hint_i18n?: { [lang_tag: string]: string };\n\n }\n\n export interface WireAccount {\n // payto:// URI identifying the account and wire method\n payto_uri: PaytoString;\n\n // URI to convert amounts from or to the currency used by\n // this wire account of the exchange. Missing if no\n // conversion is applicable.\n conversion_url?: string;\n\n // Restrictions that apply to bank accounts that would send\n // funds to the exchange (crediting this exchange bank account).\n // Optional, empty array for unrestricted.\n credit_restrictions: AccountRestriction[];\n\n // Restrictions that apply to bank accounts that would receive\n // funds from the exchange (debiting this exchange bank account).\n // Optional, empty array for unrestricted.\n debit_restrictions: AccountRestriction[];\n\n // Signature using the exchange's offline key over\n // a TALER_MasterWireDetailsPS\n // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.\n master_sig: EddsaSignature;\n }\n\n}\n\nexport namespace TalerMerchantApi {\n export interface VersionResponse {\n // libtool-style representation of the Merchant protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Name of the protocol.\n name: \"taler-merchant\";\n\n // Default (!) currency supported by this backend.\n // This is the currency that the backend should\n // suggest by default to the user when entering\n // amounts. See currencies for a list of\n // supported currencies and how to render them.\n currency: string;\n\n // How wallets should render currencies supported\n // by this backend. Maps\n // currency codes (e.g. \"EUR\" or \"KUDOS\") to\n // the respective currency specification.\n // All currencies in this map are supported by\n // the backend.\n currencies: { [currency: string]: CurrencySpecification };\n\n }\n\n export interface ClaimRequest {\n // Nonce to identify the wallet that claimed the order.\n nonce: string;\n\n // Token that authorizes the wallet to claim the order.\n // *Optional* as the merchant may not have required it\n // (create_token set to false in PostOrderRequest).\n token?: ClaimToken;\n }\n\n export interface ClaimResponse {\n // Contract terms of the claimed order\n contract_terms: ContractTerms;\n\n // Signature by the merchant over the contract terms.\n sig: EddsaSignature;\n }\n\n export interface PaymentResponse {\n // Signature on TALER_PaymentResponsePS with the public\n // key of the merchant instance.\n sig: EddsaSignature;\n\n // Text to be shown to the point-of-sale staff as a proof of\n // payment.\n pos_confirmation?: string;\n\n }\n\n interface PayRequest {\n // The coins used to make the payment.\n coins: CoinPaySig[];\n\n // Custom inputs from the wallet for the contract.\n wallet_data?: Object;\n\n // The session for which the payment is made (or replayed).\n // Only set for session-based payments.\n session_id?: string;\n\n }\n export interface CoinPaySig {\n // Signature by the coin.\n coin_sig: EddsaSignature;\n\n // Public key of the coin being spent.\n coin_pub: EddsaPublicKey;\n\n // Signature made by the denomination public key.\n ub_sig: RsaSignature;\n\n // The hash of the denomination public key associated with this coin.\n h_denom: HashCode;\n\n // The amount that is subtracted from this coin with this payment.\n contribution: AmountString;\n\n // URL of the exchange this coin was withdrawn from.\n exchange_url: string;\n }\n\n\n interface StatusPaid {\n // Was the payment refunded (even partially, via refund or abort)?\n refunded: boolean;\n\n // Is any amount of the refund still waiting to be picked up (even partially)?\n refund_pending: boolean;\n\n // Amount that was refunded in total.\n refund_amount: AmountString;\n\n // Amount that already taken by the wallet.\n refund_taken: AmountString;\n }\n interface StatusGotoResponse {\n // The client should go to the reorder URL, there a fresh\n // order might be created as this one is taken by another\n // customer or wallet (or repurchase detection logic may\n // apply).\n public_reorder_url: string;\n }\n interface StatusUnpaidResponse {\n // URI that the wallet must process to complete the payment.\n taler_pay_uri: string;\n\n // Status URL, can be used as a redirect target for the browser\n // to show the order QR code / trigger the wallet.\n fulfillment_url?: string;\n\n // Alternative order ID which was paid for already in the same session.\n // Only given if the same product was purchased before in the same session.\n already_paid_order_id?: string;\n }\n\n interface PaidRefundStatusResponse {\n\n // Text to be shown to the point-of-sale staff as a proof of\n // payment (present only if re-usable OTP algorithm is used).\n pos_confirmation?: string;\n\n // True if the order has been subjected to\n // refunds. False if it was simply paid.\n refunded: boolean;\n }\n interface PaidRequest {\n // Signature on TALER_PaymentResponsePS with the public\n // key of the merchant instance.\n sig: EddsaSignature;\n\n // Hash of the order's contract terms (this is used to authenticate the\n // wallet/customer and to enable signature verification without\n // database access).\n h_contract: HashCode;\n\n // Hash over custom inputs from the wallet for the contract.\n wallet_data_hash?: HashCode;\n\n // Session id for which the payment is proven.\n session_id: string;\n }\n\n interface AbortRequest {\n\n // Hash of the order's contract terms (this is used to authenticate the\n // wallet/customer in case $ORDER_ID is guessable).\n h_contract: HashCode;\n\n // List of coins the wallet would like to see refunds for.\n // (Should be limited to the coins for which the original\n // payment succeeded, as far as the wallet knows.)\n coins: AbortingCoin[];\n }\n interface AbortingCoin {\n // Public key of a coin for which the wallet is requesting an abort-related refund.\n coin_pub: EddsaPublicKey;\n\n // The amount to be refunded (matches the original contribution)\n contribution: AmountString;\n\n // URL of the exchange this coin was withdrawn from.\n exchange_url: string;\n }\n interface AbortResponse {\n\n // List of refund responses about the coins that the wallet\n // requested an abort for. In the same order as the coins\n // from the original request.\n // The rtransaction_id is implied to be 0.\n refunds: MerchantAbortPayRefundStatus[];\n }\n type MerchantAbortPayRefundStatus =\n | MerchantAbortPayRefundSuccessStatus\n | MerchantAbortPayRefundFailureStatus;\n // Details about why a refund failed.\n interface MerchantAbortPayRefundFailureStatus {\n // Used as tag for the sum type RefundStatus sum type.\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: Integer;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: Integer;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: Object;\n }\n // Additional details needed to verify the refund confirmation signature\n // (h_contract_terms and merchant_pub) are already known\n // to the wallet and thus not included.\n interface MerchantAbortPayRefundSuccessStatus {\n // Used as tag for the sum type MerchantCoinRefundStatus sum type.\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // The EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund.\n exchange_sig: EddsaSignature;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKey;\n }\n\n interface WalletRefundRequest {\n // Hash of the order's contract terms (this is used to authenticate the\n // wallet/customer).\n h_contract: HashCode;\n }\n interface WalletRefundResponse {\n // Amount that was refunded in total.\n refund_amount: AmountString;\n\n // Successful refunds for this payment, empty array for none.\n refunds: MerchantCoinRefundStatus[];\n\n // Public key of the merchant.\n merchant_pub: EddsaPublicKey;\n\n }\n type MerchantCoinRefundStatus =\n | MerchantCoinRefundSuccessStatus\n | MerchantCoinRefundFailureStatus;\n // Details about why a refund failed.\n interface MerchantCoinRefundFailureStatus {\n // Used as tag for the sum type RefundStatus sum type.\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: Integer;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: Integer;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: Object;\n\n // Refund transaction ID.\n rtransaction_id: Integer;\n\n // Public key of a coin that was refunded.\n coin_pub: EddsaPublicKey;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n // Timestamp when the merchant approved the refund.\n // Useful for grouping refunds.\n execution_time: Timestamp;\n }\n // Additional details needed to verify the refund confirmation signature\n // (h_contract_terms and merchant_pub) are already known\n // to the wallet and thus not included.\n interface MerchantCoinRefundSuccessStatus {\n // Used as tag for the sum type MerchantCoinRefundStatus sum type.\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // The EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund.\n exchange_sig: EddsaSignature;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKey;\n\n // Refund transaction ID.\n rtransaction_id: Integer;\n\n // Public key of a coin that was refunded.\n coin_pub: EddsaPublicKey;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n // Timestamp when the merchant approved the refund.\n // Useful for grouping refunds.\n execution_time: Timestamp;\n }\n\n interface RewardInformation {\n\n // Exchange from which the reward will be withdrawn. Needed by the\n // wallet to determine denominations, fees, etc.\n exchange_url: string;\n\n // URL where to go after obtaining the reward.\n next_url: string;\n\n // (Remaining) amount of the reward (including fees).\n reward_amount: AmountString;\n\n // Timestamp indicating when the reward is set to expire (may be in the past).\n // Note that rewards that have expired MAY also result in a 404 response.\n expiration: Timestamp;\n }\n\n interface RewardPickupRequest {\n\n // List of planchets the wallet wants to use for the reward.\n planchets: PlanchetDetail[];\n }\n interface PlanchetDetail {\n // Hash of the denomination's public key (hashed to reduce\n // bandwidth consumption).\n denom_pub_hash: HashCode;\n\n // Coin's blinded public key.\n coin_ev: CoinEnvelope;\n }\n interface RewardResponse {\n\n // Blind RSA signatures over the planchets.\n // The order of the signatures matches the planchets list.\n blind_sigs: BlindSignature[];\n }\n interface BlindSignature {\n\n // The (blind) RSA signature. Still needs to be unblinded.\n blind_sig: BlindedRsaSignature;\n }\n\n interface InstanceConfigurationMessage {\n\n // Name of the merchant instance to create (will become $INSTANCE).\n // Must match the regex ^[A-Za-z0-9][A-Za-z0-9_.@-]+$.\n id: string;\n\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (business or individual).\n // Defaults to 'business'. Should become mandatory field\n // in the future, left as optional for API compatibility for now.\n user_type?: string;\n\n // Merchant email for customer contact.\n email?: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // Authentication settings for this instance\n auth: InstanceAuthConfigurationMessage;\n\n // The merchant's physical address (to be put into contracts).\n address: Location;\n\n // The jurisdiction under which the merchant conducts its business\n // (to be put into contracts).\n jurisdiction: Location;\n\n // Use STEFAN curves to determine default fees?\n // If false, no fees are allowed by default.\n // Can always be overridden by the frontend on a per-order basis.\n use_stefan: boolean;\n\n // If the frontend does NOT specify an execution date, how long should\n // we tell the exchange to wait to aggregate transactions before\n // executing the wire transfer? This delay is added to the current\n // time when we generate the advisory execution time for the exchange.\n default_wire_transfer_delay: RelativeTime;\n\n // If the frontend does NOT specify a payment deadline, how long should\n // offers we make be valid by default?\n default_pay_delay: RelativeTime;\n\n }\n\n interface InstanceAuthConfigurationMessage {\n // Type of authentication.\n // \"external\": The mechant backend does not do\n // any authentication checks. Instead an API\n // gateway must do the authentication.\n // \"token\": The merchant checks an auth token.\n // See \"token\" for details.\n method: \"external\" | \"token\";\n\n // For method \"token\", this field is mandatory.\n // The token MUST begin with the string \"secret-token:\".\n // After the auth token has been set (with method \"token\"),\n // the value must be provided in a \"Authorization: Bearer $token\"\n // header.\n token?: string;\n\n }\n\n interface LoginTokenRequest {\n // Scope of the token (which kinds of operations it will allow)\n scope: \"readonly\" | \"write\";\n\n // Server may impose its own upper bound\n // on the token validity duration\n duration?: RelativeTime;\n\n // Can this token be refreshed?\n // Defaults to false.\n refreshable?: boolean;\n }\n interface LoginTokenSuccessResponse {\n // The login token that can be used to access resources\n // that are in scope for some time. Must be prefixed\n // with \"Bearer \" when used in the \"Authorization\" HTTP header.\n // Will already begin with the RFC 8959 prefix.\n token: string;\n\n // Scope of the token (which kinds of operations it will allow)\n scope: \"readonly\" | \"write\";\n\n // Server may impose its own upper bound\n // on the token validity duration\n expiration: Timestamp;\n\n // Can this token be refreshed?\n refreshable: boolean;\n }\n\n interface InstanceReconfigurationMessage {\n\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (business or individual).\n // Defaults to 'business'. Should become mandatory field\n // in the future, left as optional for API compatibility for now.\n user_type?: string;\n\n // Merchant email for customer contact.\n email?: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // The merchant's physical address (to be put into contracts).\n address: Location;\n\n // The jurisdiction under which the merchant conducts its business\n // (to be put into contracts).\n jurisdiction: Location;\n\n // Use STEFAN curves to determine default fees?\n // If false, no fees are allowed by default.\n // Can always be overridden by the frontend on a per-order basis.\n use_stefan: boolean;\n\n // If the frontend does NOT specify an execution date, how long should\n // we tell the exchange to wait to aggregate transactions before\n // executing the wire transfer? This delay is added to the current\n // time when we generate the advisory execution time for the exchange.\n default_wire_transfer_delay: RelativeTime;\n\n // If the frontend does NOT specify a payment deadline, how long should\n // offers we make be valid by default?\n default_pay_delay: RelativeTime;\n\n }\n\n interface InstancesResponse {\n // List of instances that are present in the backend (see Instance).\n instances: Instance[];\n }\n\n interface Instance {\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (\"business\" or \"individual\").\n user_type: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // Merchant instance this response is about ($INSTANCE).\n id: string;\n\n // Public key of the merchant/instance, in Crockford Base32 encoding.\n merchant_pub: EddsaPublicKey;\n\n // List of the payment targets supported by this instance. Clients can\n // specify the desired payment target in /order requests. Note that\n // front-ends do not have to support wallets selecting payment targets.\n payment_targets: string[];\n\n // Has this instance been deleted (but not purged)?\n deleted: boolean;\n }\n\n interface QueryInstancesResponse {\n\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (\"business\" or \"individual\").\n user_type: string;\n\n // Merchant email for customer contact.\n email?: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // Public key of the merchant/instance, in Crockford Base32 encoding.\n merchant_pub: EddsaPublicKey;\n\n // The merchant's physical address (to be put into contracts).\n address: Location;\n\n // The jurisdiction under which the merchant conducts its business\n // (to be put into contracts).\n jurisdiction: Location;\n\n // Use STEFAN curves to determine default fees?\n // If false, no fees are allowed by default.\n // Can always be overridden by the frontend on a per-order basis.\n use_stefan: boolean;\n\n // If the frontend does NOT specify an execution date, how long should\n // we tell the exchange to wait to aggregate transactions before\n // executing the wire transfer? This delay is added to the current\n // time when we generate the advisory execution time for the exchange.\n default_wire_transfer_delay: RelativeTime;\n\n // If the frontend does NOT specify a payment deadline, how long should\n // offers we make be valid by default?\n default_pay_delay: RelativeTime;\n\n // Authentication configuration.\n // Does not contain the token when token auth is configured.\n auth: {\n type: \"external\" | \"token\";\n };\n\n }\n\n interface AccountKycRedirects {\n\n // Array of pending KYCs.\n pending_kycs: MerchantAccountKycRedirect[];\n\n // Array of exchanges with no reply.\n timeout_kycs: ExchangeKycTimeout[];\n }\n\n interface MerchantAccountKycRedirect {\n\n // URL that the user should open in a browser to\n // proceed with the KYC process (as returned\n // by the exchange's /kyc-check/ endpoint).\n // Optional, missing if the account is blocked\n // due to AML and not due to KYC.\n kyc_url?: string;\n\n // AML status of the account.\n aml_status: Integer;\n\n // Base URL of the exchange this is about.\n exchange_url: string;\n\n // Our bank wire account this is about.\n payto_uri: PaytoString;\n\n }\n\n interface ExchangeKycTimeout {\n\n // Base URL of the exchange this is about.\n exchange_url: string;\n\n // Numeric error code indicating errors the exchange\n // returned, or TALER_EC_INVALID for none.\n exchange_code: number;\n\n // HTTP status code returned by the exchange when we asked for\n // information about the KYC status.\n // 0 if there was no response at all.\n exchange_http_status: number;\n\n }\n\n interface AccountAddDetails {\n\n // payto:// URI of the account.\n payto_uri: PaytoString;\n\n // URL from where the merchant can download information\n // about incoming wire transfers to this account.\n credit_facade_url?: string;\n\n // Credentials to use when accessing the credit facade.\n // Never returned on a GET (as this may be somewhat\n // sensitive data). Can be set in POST\n // or PATCH requests to update (or delete) credentials.\n // To really delete credentials, set them to the type: \"none\".\n credit_facade_credentials?: FacadeCredentials;\n\n }\n\n type FacadeCredentials =\n | NoFacadeCredentials\n | BasicAuthFacadeCredentials;\n interface NoFacadeCredentials {\n type: \"none\";\n };\n interface BasicAuthFacadeCredentials {\n type: \"basic\";\n\n // Username to use to authenticate\n username: string;\n\n // Password to use to authenticate\n password: string;\n };\n interface AccountAddResponse {\n\n // Hash over the wire details (including over the salt).\n h_wire: HashCode;\n\n // Salt used to compute h_wire.\n salt: HashCode;\n\n }\n\n interface AccountPatchDetails {\n\n // URL from where the merchant can download information\n // about incoming wire transfers to this account.\n credit_facade_url?: string;\n\n // Credentials to use when accessing the credit facade.\n // Never returned on a GET (as this may be somewhat\n // sensitive data). Can be set in POST\n // or PATCH requests to update (or delete) credentials.\n // To really delete credentials, set them to the type: \"none\".\n // If the argument is omitted, the old credentials\n // are simply preserved.\n credit_facade_credentials?: FacadeCredentials;\n }\n\n interface AccountsSummaryResponse {\n\n // List of accounts that are known for the instance.\n accounts: BankAccountEntry[];\n }\n interface BankAccountEntry {\n\n // payto:// URI of the account.\n payto_uri: PaytoString;\n\n // Hash over the wire details (including over the salt).\n h_wire: HashCode;\n\n // Salt used to compute h_wire.\n salt: HashCode;\n\n // URL from where the merchant can download information\n // about incoming wire transfers to this account.\n credit_facade_url?: string;\n\n // true if this account is active,\n // false if it is historic.\n active: boolean;\n }\n\n interface ProductAddDetail {\n\n // Product ID to use.\n product_id: string;\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n?: { [lang_tag: string]: string };\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit: string;\n\n // The price for one unit of the product. Zero is used\n // to imply that this product is not sold separately, or\n // that the price is not fixed, and must be supplied by the\n // front-end. If non-zero, this price MUST include applicable\n // taxes.\n price: AmountString;\n\n // An optional base64-encoded product image.\n image?: ImageDataUrl;\n\n // A list of taxes paid by the merchant for one unit of this product.\n taxes?: Tax[];\n\n // Number of units of the product in stock in sum in total,\n // including all existing sales ever. Given in product-specific\n // units.\n // A value of -1 indicates \"infinite\" (i.e. for \"electronic\" books).\n total_stock: Integer;\n\n // Identifies where the product is in stock.\n address?: Location;\n\n // Identifies when we expect the next restocking to happen.\n next_restock?: Timestamp;\n\n // Minimum age buyer must have (in years). Default is 0.\n minimum_age?: Integer;\n\n }\n\n interface ProductPatchDetail {\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n?: { [lang_tag: string]: string };\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit: string;\n\n // The price for one unit of the product. Zero is used\n // to imply that this product is not sold separately, or\n // that the price is not fixed, and must be supplied by the\n // front-end. If non-zero, this price MUST include applicable\n // taxes.\n price: AmountString;\n\n // An optional base64-encoded product image.\n image?: ImageDataUrl;\n\n // A list of taxes paid by the merchant for one unit of this product.\n taxes?: Tax[];\n\n // Number of units of the product in stock in sum in total,\n // including all existing sales ever. Given in product-specific\n // units.\n // A value of -1 indicates \"infinite\" (i.e. for \"electronic\" books).\n total_stock: Integer;\n\n // Number of units of the product that were lost (spoiled, stolen, etc.).\n total_lost?: Integer;\n\n // Identifies where the product is in stock.\n address?: Location;\n\n // Identifies when we expect the next restocking to happen.\n next_restock?: Timestamp;\n\n // Minimum age buyer must have (in years). Default is 0.\n minimum_age?: Integer;\n\n }\n\n interface InventorySummaryResponse {\n // List of products that are present in the inventory.\n products: InventoryEntry[];\n }\n\n\n interface InventoryEntry {\n // Product identifier, as found in the product.\n product_id: string;\n\n }\n\n interface ProductDetail {\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n: { [lang_tag: string]: string };\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit: string;\n\n // The price for one unit of the product. Zero is used\n // to imply that this product is not sold separately, or\n // that the price is not fixed, and must be supplied by the\n // front-end. If non-zero, this price MUST include applicable\n // taxes.\n price: AmountString;\n\n // An optional base64-encoded product image.\n image: ImageDataUrl;\n\n // A list of taxes paid by the merchant for one unit of this product.\n taxes: Tax[];\n\n // Number of units of the product in stock in sum in total,\n // including all existing sales ever. Given in product-specific\n // units.\n // A value of -1 indicates \"infinite\" (i.e. for \"electronic\" books).\n total_stock: Integer;\n\n // Number of units of the product that have already been sold.\n total_sold: Integer;\n\n // Number of units of the product that were lost (spoiled, stolen, etc.).\n total_lost: Integer;\n\n // Identifies where the product is in stock.\n address: Location;\n\n // Identifies when we expect the next restocking to happen.\n next_restock?: Timestamp;\n\n // Minimum age buyer must have (in years).\n minimum_age?: Integer;\n\n }\n interface LockRequest {\n\n // UUID that identifies the frontend performing the lock\n // Must be unique for the lifetime of the lock.\n lock_uuid: string;\n\n // How long does the frontend intend to hold the lock?\n duration: RelativeTime;\n\n // How many units should be locked?\n quantity: Integer;\n\n }\n\n interface PostOrderRequest {\n // The order must at least contain the minimal\n // order detail, but can override all.\n order: Order;\n\n // If set, the backend will then set the refund deadline to the current\n // time plus the specified delay. If it's not set, refunds will not be\n // possible.\n refund_delay?: RelativeTime;\n\n // Specifies the payment target preferred by the client. Can be used\n // to select among the various (active) wire methods supported by the instance.\n payment_target?: string;\n\n // Specifies that some products are to be included in the\n // order from the inventory. For these inventory management\n // is performed (so the products must be in stock) and\n // details are completed from the product data of the backend.\n inventory_products?: MinimalInventoryProduct[];\n\n // Specifies a lock identifier that was used to\n // lock a product in the inventory. Only useful if\n // inventory_products is set. Used in case a frontend\n // reserved quantities of the individual products while\n // the shopping cart was being built. Multiple UUIDs can\n // be used in case different UUIDs were used for different\n // products (i.e. in case the user started with multiple\n // shopping sessions that were combined during checkout).\n lock_uuids: string[];\n\n // Should a token for claiming the order be generated?\n // False can make sense if the ORDER_ID is sufficiently\n // high entropy to prevent adversarial claims (like it is\n // if the backend auto-generates one). Default is 'true'.\n create_token?: boolean;\n\n // OTP device ID to associate with the order.\n // This parameter is optional.\n otp_id?: string;\n }\n\n type Order = MinimalOrderDetail | ContractTerms;\n\n interface MinimalOrderDetail {\n // Amount to be paid by the customer.\n amount: AmountString;\n\n // Short summary of the order.\n summary: string;\n\n // See documentation of fulfillment_url in ContractTerms.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_url?: string;\n\n // See documentation of fulfillment_message in ContractTerms.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_message?: string;\n }\n\n interface MinimalInventoryProduct {\n // Which product is requested (here mandatory!).\n product_id: string;\n\n // How many units of the product are requested.\n quantity: Integer;\n }\n\n interface PostOrderResponse {\n // Order ID of the response that was just created.\n order_id: string;\n\n // Token that authorizes the wallet to claim the order.\n // Provided only if \"create_token\" was set to 'true'\n // in the request.\n token?: ClaimToken;\n }\n interface OutOfStockResponse {\n\n // Product ID of an out-of-stock item.\n product_id: string;\n\n // Requested quantity.\n requested_quantity: Integer;\n\n // Available quantity (must be below requested_quantity).\n available_quantity: Integer;\n\n // When do we expect the product to be again in stock?\n // Optional, not given if unknown.\n restock_expected?: Timestamp;\n }\n\n interface OrderHistory {\n // Timestamp-sorted array of all orders matching the query.\n // The order of the sorting depends on the sign of delta.\n orders: OrderHistoryEntry[];\n }\n interface OrderHistoryEntry {\n\n // Order ID of the transaction related to this entry.\n order_id: string;\n\n // Row ID of the order in the database.\n row_id: number;\n\n // When the order was created.\n timestamp: Timestamp;\n\n // The amount of money the order is for.\n amount: AmountString;\n\n // The summary of the order.\n summary: string;\n\n // Whether some part of the order is refundable,\n // that is the refund deadline has not yet expired\n // and the total amount refunded so far is below\n // the value of the original transaction.\n refundable: boolean;\n\n // Whether the order has been paid or not.\n paid: boolean;\n }\n\n type MerchantOrderStatusResponse = CheckPaymentPaidResponse |\n CheckPaymentClaimedResponse |\n CheckPaymentUnpaidResponse;\n interface CheckPaymentPaidResponse {\n // The customer paid for this contract.\n order_status: \"paid\";\n\n // Was the payment refunded (even partially)?\n refunded: boolean;\n\n // True if there are any approved refunds that the wallet has\n // not yet obtained.\n refund_pending: boolean;\n\n // Did the exchange wire us the funds?\n wired: boolean;\n\n // Total amount the exchange deposited into our bank account\n // for this contract, excluding fees.\n deposit_total: AmountString;\n\n // Numeric error code indicating errors the exchange\n // encountered tracking the wire transfer for this purchase (before\n // we even got to specific coin issues).\n // 0 if there were no issues.\n exchange_code: number;\n\n // HTTP status code returned by the exchange when we asked for\n // information to track the wire transfer for this purchase.\n // 0 if there were no issues.\n exchange_http_status: number;\n\n // Total amount that was refunded, 0 if refunded is false.\n refund_amount: AmountString;\n\n // Contract terms.\n contract_terms: ContractTerms;\n\n // The wire transfer status from the exchange for this order if\n // available, otherwise empty array.\n wire_details: TransactionWireTransfer[];\n\n // Reports about trouble obtaining wire transfer details,\n // empty array if no trouble were encountered.\n wire_reports: TransactionWireReport[];\n\n // The refund details for this order. One entry per\n // refunded coin; empty array if there are no refunds.\n refund_details: RefundDetails[];\n\n // Status URL, can be used as a redirect target for the browser\n // to show the order QR code / trigger the wallet.\n order_status_url: string;\n }\n interface CheckPaymentClaimedResponse {\n // A wallet claimed the order, but did not yet pay for the contract.\n order_status: \"claimed\";\n\n // Contract terms.\n contract_terms: ContractTerms;\n\n }\n interface CheckPaymentUnpaidResponse {\n // The order was neither claimed nor paid.\n order_status: \"unpaid\";\n\n // URI that the wallet must process to complete the payment.\n taler_pay_uri: string;\n\n // when was the order created\n creation_time: Timestamp;\n\n // Order summary text.\n summary: string;\n\n // Total amount of the order (to be paid by the customer).\n total_amount: AmountString;\n\n // Alternative order ID which was paid for already in the same session.\n // Only given if the same product was purchased before in the same session.\n already_paid_order_id?: string;\n\n // Fulfillment URL of an already paid order. Only given if under this\n // session an already paid order with a fulfillment URL exists.\n already_paid_fulfillment_url?: string;\n\n // Status URL, can be used as a redirect target for the browser\n // to show the order QR code / trigger the wallet.\n order_status_url: string;\n\n // We do we NOT return the contract terms here because they may not\n // exist in case the wallet did not yet claim them.\n }\n interface RefundDetails {\n // Reason given for the refund.\n reason: string;\n\n // Set to true if a refund is still available for the wallet for this payment.\n pending: boolean;\n\n // When was the refund approved.\n timestamp: Timestamp;\n\n // Total amount that was refunded (minus a refund fee).\n amount: AmountString;\n }\n interface TransactionWireTransfer {\n // Responsible exchange.\n exchange_url: string;\n\n // 32-byte wire transfer identifier.\n wtid: Base32;\n\n // Execution time of the wire transfer.\n execution_time: Timestamp;\n\n // Total amount that has been wire transferred\n // to the merchant.\n amount: AmountString;\n\n // Was this transfer confirmed by the merchant via the\n // POST /transfers API, or is it merely claimed by the exchange?\n confirmed: boolean;\n }\n interface TransactionWireReport {\n // Numerical error code.\n code: number;\n\n // Human-readable error description.\n hint: string;\n\n // Numerical error code from the exchange.\n exchange_code: number;\n\n // HTTP status code received from the exchange.\n exchange_http_status: number;\n\n // Public key of the coin for which we got the exchange error.\n coin_pub: CoinPublicKey;\n }\n\n interface ForgetRequest {\n\n // Array of valid JSON paths to forgettable fields in the order's\n // contract terms.\n fields: string[];\n }\n\n interface RefundRequest {\n // Amount to be refunded.\n refund: AmountString;\n\n // Human-readable refund justification.\n reason: string;\n }\n interface MerchantRefundResponse {\n\n // URL (handled by the backend) that the wallet should access to\n // trigger refund processing.\n // taler://refund/...\n taler_refund_uri: string;\n\n // Contract hash that a client may need to authenticate an\n // HTTP request to obtain the above URI in a wallet-friendly way.\n h_contract: HashCode;\n }\n\n interface TransferInformation {\n // How much was wired to the merchant (minus fees).\n credit_amount: AmountString;\n\n // Raw wire transfer identifier identifying the wire transfer (a base32-encoded value).\n wtid: WireTransferIdentifierRawP;\n\n // Target account that received the wire transfer.\n payto_uri: PaytoString;\n\n // Base URL of the exchange that made the wire transfer.\n exchange_url: string;\n }\n\n interface TransferList {\n // List of all the transfers that fit the filter that we know.\n transfers: TransferDetails[];\n }\n interface TransferDetails {\n // How much was wired to the merchant (minus fees).\n credit_amount: AmountString;\n\n // Raw wire transfer identifier identifying the wire transfer (a base32-encoded value).\n wtid: WireTransferIdentifierRawP;\n\n // Target account that received the wire transfer.\n payto_uri: PaytoString;\n\n // Base URL of the exchange that made the wire transfer.\n exchange_url: string;\n\n // Serial number identifying the transfer in the merchant backend.\n // Used for filtering via offset.\n transfer_serial_id: number;\n\n // Time of the execution of the wire transfer by the exchange, according to the exchange\n // Only provided if we did get an answer from the exchange.\n execution_time?: Timestamp;\n\n // True if we checked the exchange's answer and are happy with it.\n // False if we have an answer and are unhappy, missing if we\n // do not have an answer from the exchange.\n verified?: boolean;\n\n // True if the merchant uses the POST /transfers API to confirm\n // that this wire transfer took place (and it is thus not\n // something merely claimed by the exchange).\n confirmed?: boolean;\n }\n\n interface ReserveCreateRequest {\n // Amount that the merchant promises to put into the reserve.\n initial_balance: AmountString;\n\n // Exchange the merchant intends to use for rewards.\n exchange_url: string;\n\n // Desired wire method, for example \"iban\" or \"x-taler-bank\".\n wire_method: string;\n }\n interface ReserveCreateConfirmation {\n // Public key identifying the reserve.\n reserve_pub: EddsaPublicKey;\n\n // Wire accounts of the exchange where to transfer the funds.\n accounts: TalerExchangeApi.WireAccount[];\n }\n\n interface RewardReserveStatus {\n // Array of all known reserves (possibly empty!).\n reserves: ReserveStatusEntry[];\n }\n interface ReserveStatusEntry {\n // Public key of the reserve.\n reserve_pub: EddsaPublicKey;\n\n // Timestamp when it was established.\n creation_time: Timestamp;\n\n // Timestamp when it expires.\n expiration_time: Timestamp;\n\n // Initial amount as per reserve creation call.\n merchant_initial_amount: AmountString;\n\n // Initial amount as per exchange, 0 if exchange did\n // not confirm reserve creation yet.\n exchange_initial_amount: AmountString;\n\n // Amount picked up so far.\n pickup_amount: AmountString;\n\n // Amount approved for rewards that exceeds the pickup_amount.\n committed_amount: AmountString;\n\n // Is this reserve active (false if it was deleted but not purged)?\n active: boolean;\n }\n\n interface ReserveDetail {\n // Timestamp when it was established.\n creation_time: Timestamp;\n\n // Timestamp when it expires.\n expiration_time: Timestamp;\n\n // Initial amount as per reserve creation call.\n merchant_initial_amount: AmountString;\n\n // Initial amount as per exchange, 0 if exchange did\n // not confirm reserve creation yet.\n exchange_initial_amount: AmountString;\n\n // Amount picked up so far.\n pickup_amount: AmountString;\n\n // Amount approved for rewards that exceeds the pickup_amount.\n committed_amount: AmountString;\n\n // Array of all rewards created by this reserves (possibly empty!).\n // Only present if asked for explicitly.\n rewards?: RewardStatusEntry[];\n\n // Is this reserve active (false if it was deleted but not purged)?\n active: boolean;\n\n // Array of wire accounts of the exchange that could\n // be used to fill the reserve, can be NULL\n // if the reserve is inactive or was already filled\n accounts?: TalerExchangeApi.WireAccount[];\n\n // URL of the exchange hosting the reserve,\n // NULL if the reserve is inactive\n exchange_url: string;\n }\n interface RewardStatusEntry {\n\n // Unique identifier for the reward.\n reward_id: HashCode;\n\n // Total amount of the reward that can be withdrawn.\n total_amount: AmountString;\n\n // Human-readable reason for why the reward was granted.\n reason: string;\n }\n\n interface RewardCreateRequest {\n // Amount that the customer should be rewarded.\n amount: AmountString;\n\n // Justification for giving the reward.\n justification: string;\n\n // URL that the user should be directed to after receiving the reward,\n // will be included in the reward_token.\n next_url: string;\n }\n interface RewardCreateConfirmation {\n // Unique reward identifier for the reward that was created.\n reward_id: HashCode;\n\n // taler://reward URI for the reward.\n taler_reward_uri: string;\n\n // URL that will directly trigger processing\n // the reward when the browser is redirected to it.\n reward_status_url: string;\n\n // When does the reward expire?\n reward_expiration: Timestamp;\n }\n\n interface RewardDetails {\n // Amount that we authorized for this reward.\n total_authorized: AmountString;\n\n // Amount that was picked up by the user already.\n total_picked_up: AmountString;\n\n // Human-readable reason given when authorizing the reward.\n reason: string;\n\n // Timestamp indicating when the reward is set to expire (may be in the past).\n expiration: Timestamp;\n\n // Reserve public key from which the reward is funded.\n reserve_pub: EddsaPublicKey;\n\n // Array showing the pickup operations of the wallet (possibly empty!).\n // Only present if asked for explicitly.\n pickups?: PickupDetail[];\n }\n interface PickupDetail {\n // Unique identifier for the pickup operation.\n pickup_id: HashCode;\n\n // Number of planchets involved.\n num_planchets: Integer;\n\n // Total amount requested for this pickup_id.\n requested_amount: AmountString;\n }\n\n interface RewardsResponse {\n\n // List of rewards that are present in the backend.\n rewards: Reward[];\n }\n interface Reward {\n\n // ID of the reward in the backend database.\n row_id: number;\n\n // Unique identifier for the reward.\n reward_id: HashCode;\n\n // (Remaining) amount of the reward (including fees).\n reward_amount: AmountString;\n }\n\n interface OtpDeviceAddDetails {\n\n // Device ID to use.\n otp_device_id: string;\n\n // Human-readable description for the device.\n otp_device_description: string;\n\n // A base64-encoded key\n otp_key: string;\n\n // Algorithm for computing the POS confirmation.\n otp_algorithm: Integer;\n\n // Counter for counter-based OTP devices.\n otp_ctr?: Integer;\n }\n\n interface OtpDevicePatchDetails {\n\n // Human-readable description for the device.\n otp_device_description: string;\n\n // A base64-encoded key\n otp_key: string;\n\n // Algorithm for computing the POS confirmation.\n otp_algorithm: Integer;\n\n // Counter for counter-based OTP devices.\n otp_ctr?: Integer;\n }\n\n interface OtpDeviceSummaryResponse {\n\n // Array of devices that are present in our backend.\n otp_devices: OtpDeviceEntry[];\n }\n interface OtpDeviceEntry {\n\n // Device identifier.\n otp_device_id: string;\n\n // Human-readable description for the device.\n device_description: string;\n }\n\n interface OtpDeviceDetails {\n\n // Human-readable description for the device.\n device_description: string;\n\n // Algorithm for computing the POS confirmation.\n otp_algorithm: Integer;\n\n // Counter for counter-based OTP devices.\n otp_ctr?: Integer;\n\n }\n interface TemplateAddDetails {\n\n // Template ID to use.\n template_id: string;\n\n // Human-readable description for the template.\n template_description: string;\n\n // OTP device ID.\n // This parameter is optional.\n otp_id?: string;\n\n // Additional information in a separate template.\n template_contract: TemplateContractDetails;\n }\n interface TemplateContractDetails {\n\n // Human-readable summary for the template.\n summary?: string;\n\n // Required currency for payments to the template.\n // The user may specify any amount, but it must be\n // in this currency.\n // This parameter is optional and should not be present\n // if \"amount\" is given.\n currency?: string;\n\n // The price is imposed by the merchant and cannot be changed by the customer.\n // This parameter is optional.\n amount?: AmountString;\n\n // Minimum age buyer must have (in years). Default is 0.\n minimum_age: Integer;\n\n // The time the customer need to pay before his order will be deleted.\n // It is deleted if the customer did not pay and if the duration is over.\n pay_duration: RelativeTime;\n\n }\n interface TemplatePatchDetails {\n\n // Human-readable description for the template.\n template_description: string;\n\n // OTP device ID.\n // This parameter is optional.\n otp_id?: string;\n\n // Additional information in a separate template.\n template_contract: TemplateContractDetails;\n\n }\n\n interface TemplateSummaryResponse {\n\n // List of templates that are present in our backend.\n templates_list: TemplateEntry[];\n }\n\n\n interface TemplateEntry {\n\n // Template identifier, as found in the template.\n template_id: string;\n\n // Human-readable description for the template.\n template_description: string;\n\n }\n interface TemplateDetails {\n\n // Human-readable description for the template.\n template_description: string;\n\n // OTP device ID.\n // This parameter is optional.\n otp_id?: string;\n\n // Additional information in a separate template.\n template_contract: TemplateContractDetails;\n }\n interface UsingTemplateDetails {\n\n // Summary of the template\n summary?: string;\n\n // The amount entered by the customer.\n amount?: AmountString;\n }\n\n interface WebhookAddDetails {\n\n // Webhook ID to use.\n webhook_id: string;\n\n // The event of the webhook: why the webhook is used.\n event_type: string;\n\n // URL of the webhook where the customer will be redirected.\n url: string;\n\n // Method used by the webhook\n http_method: string;\n\n // Header template of the webhook\n header_template?: string;\n\n // Body template by the webhook\n body_template?: string;\n\n }\n\n interface WebhookPatchDetails {\n\n // The event of the webhook: why the webhook is used.\n event_type: string;\n\n // URL of the webhook where the customer will be redirected.\n url: string;\n\n // Method used by the webhook\n http_method: string;\n\n // Header template of the webhook\n header_template?: string;\n\n // Body template by the webhook\n body_template?: string;\n\n }\n\n interface WebhookSummaryResponse {\n\n // Return webhooks that are present in our backend.\n webhooks: WebhookEntry[];\n\n }\n\n\n interface WebhookEntry {\n\n // Webhook identifier, as found in the webhook.\n webhook_id: string;\n\n // The event of the webhook: why the webhook is used.\n event_type: string;\n\n }\n\n interface WebhookDetails {\n\n // The event of the webhook: why the webhook is used.\n event_type: string;\n\n // URL of the webhook where the customer will be redirected.\n url: string;\n\n // Method used by the webhook\n http_method: string;\n\n // Header template of the webhook\n header_template?: string;\n\n // Body template by the webhook\n body_template?: string;\n\n }\n\n interface ContractTerms {\n // Human-readable description of the whole purchase.\n summary: string;\n\n // Map from IETF BCP 47 language tags to localized summaries.\n summary_i18n?: { [lang_tag: string]: string };\n\n // Unique, free-form identifier for the proposal.\n // Must be unique within a merchant instance.\n // For merchants that do not store proposals in their DB\n // before the customer paid for them, the order_id can be used\n // by the frontend to restore a proposal from the information\n // encoded in it (such as a short product identifier and timestamp).\n order_id: string;\n\n // Total price for the transaction.\n // The exchange will subtract deposit fees from that amount\n // before transferring it to the merchant.\n amount: AmountString;\n\n // URL where the same contract could be ordered again (if\n // available). Returned also at the public order endpoint\n // for people other than the actual buyer (hence public,\n // in case order IDs are guessable).\n public_reorder_url?: string;\n\n // URL that will show that the order was successful after\n // it has been paid for. Optional. When POSTing to the\n // merchant, the placeholder \"${ORDER_ID}\" will be\n // replaced with the actual order ID (useful if the\n // order ID is generated server-side and needs to be\n // in the URL).\n // Note that this placeholder can only be used once.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_url?: string;\n\n // Message shown to the customer after paying for the order.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_message?: string;\n\n // Map from IETF BCP 47 language tags to localized fulfillment\n // messages.\n fulfillment_message_i18n?: { [lang_tag: string]: string };\n\n // Maximum total deposit fee accepted by the merchant for this contract.\n // Overrides defaults of the merchant instance.\n max_fee: AmountString;\n\n // List of products that are part of the purchase (see Product).\n products: Product[];\n\n // Time when this contract was generated.\n timestamp: Timestamp;\n\n // After this deadline has passed, no refunds will be accepted.\n refund_deadline: Timestamp;\n\n // After this deadline, the merchant won't accept payments for the contract.\n pay_deadline: Timestamp;\n\n // Transfer deadline for the exchange. Must be in the\n // deposit permissions of coins used to pay for this order.\n wire_transfer_deadline: Timestamp;\n\n // Merchant's public key used to sign this proposal; this information\n // is typically added by the backend. Note that this can be an ephemeral key.\n merchant_pub: EddsaPublicKey;\n\n // Base URL of the (public!) merchant backend API.\n // Must be an absolute URL that ends with a slash.\n merchant_base_url: string;\n\n // More info about the merchant, see below.\n merchant: Merchant;\n\n // The hash of the merchant instance's wire details.\n h_wire: HashCode;\n\n // Wire transfer method identifier for the wire method associated with h_wire.\n // The wallet may only select exchanges via a matching auditor if the\n // exchange also supports this wire method.\n // The wire transfer fees must be added based on this wire transfer method.\n wire_method: string;\n\n // Exchanges that the merchant accepts even if it does not accept any auditors that audit them.\n exchanges: Exchange[];\n\n // Delivery location for (all!) products.\n delivery_location?: Location;\n\n // Time indicating when the order should be delivered.\n // May be overwritten by individual products.\n delivery_date?: Timestamp;\n\n // Nonce generated by the wallet and echoed by the merchant\n // in this field when the proposal is generated.\n nonce: string;\n\n // Specifies for how long the wallet should try to get an\n // automatic refund for the purchase. If this field is\n // present, the wallet should wait for a few seconds after\n // the purchase and then automatically attempt to obtain\n // a refund. The wallet should probe until \"delay\"\n // after the payment was successful (i.e. via long polling\n // or via explicit requests with exponential back-off).\n //\n // In particular, if the wallet is offline\n // at that time, it MUST repeat the request until it gets\n // one response from the merchant after the delay has expired.\n // If the refund is granted, the wallet MUST automatically\n // recover the payment. This is used in case a merchant\n // knows that it might be unable to satisfy the contract and\n // desires for the wallet to attempt to get the refund without any\n // customer interaction. Note that it is NOT an error if the\n // merchant does not grant a refund.\n auto_refund?: RelativeTime;\n\n // Extra data that is only interpreted by the merchant frontend.\n // Useful when the merchant needs to store extra information on a\n // contract without storing it separately in their database.\n extra?: any;\n }\n\n interface Product {\n // Merchant-internal identifier for the product.\n product_id?: string;\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n?: { [lang_tag: string]: string };\n\n // The number of units of the product to deliver to the customer.\n quantity?: Integer;\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit?: string;\n\n // The price of the product; this is the total price for quantity times unit of this product.\n price?: AmountString;\n\n // An optional base64-encoded product image.\n image?: ImageDataUrl;\n\n // A list of taxes paid by the merchant for this product. Can be empty.\n taxes?: Tax[];\n\n // Time indicating when this product should be delivered.\n delivery_date?: Timestamp;\n }\n\n interface Tax {\n // The name of the tax.\n name: string;\n\n // Amount paid in tax.\n tax: AmountString;\n }\n interface Merchant {\n // The merchant's legal name of business.\n name: string;\n\n // Label for a location with the business address of the merchant.\n email?: string;\n\n // Label for a location with the business address of the merchant.\n website?: string;\n\n // An optional base64-encoded product image.\n logo?: ImageDataUrl;\n\n // Label for a location with the business address of the merchant.\n address?: Location;\n\n // Label for a location that denotes the jurisdiction for disputes.\n // Some of the typical fields for a location (such as a street address) may be absent.\n jurisdiction?: Location;\n }\n // Delivery location, loosely modeled as a subset of\n // ISO20022's PostalAddress25.\n interface Location {\n // Nation with its own government.\n country?: string;\n\n // Identifies a subdivision of a country such as state, region, county.\n country_subdivision?: string;\n\n // Identifies a subdivision within a country sub-division.\n district?: string;\n\n // Name of a built-up area, with defined boundaries, and a local government.\n town?: string;\n\n // Specific location name within the town.\n town_location?: string;\n\n // Identifier consisting of a group of letters and/or numbers that\n // is added to a postal address to assist the sorting of mail.\n post_code?: string;\n\n // Name of a street or thoroughfare.\n street?: string;\n\n // Name of the building or house.\n building_name?: string;\n\n // Number that identifies the position of a building on a street.\n building_number?: string;\n\n // Free-form address lines, should not exceed 7 elements.\n address_lines?: string[];\n }\n interface Auditor {\n // Official name.\n name: string;\n\n // Auditor's public key.\n auditor_pub: EddsaPublicKey;\n\n // Base URL of the auditor.\n url: string;\n }\n interface Exchange {\n // The exchange's base URL.\n url: string;\n\n // How much would the merchant like to use this exchange.\n // The wallet should use a suitable exchange with high\n // priority. The following priority values are used, but\n // it should be noted that they are NOT in any way normative.\n //\n // 0: likely it will not work (recently seen with account\n // restriction that would be bad for this merchant)\n // 512: merchant does not know, might be down (merchant\n // did not yet get /wire response).\n // 1024: good choice (recently confirmed working)\n priority: Integer;\n\n // Master public key of the exchange.\n master_pub: EddsaPublicKey;\n }\n\n}", "import { base64FromArrayBuffer } from \"../base64.js\";\nimport { HttpResponse, readSuccessResponseJsonOrThrow, readTalerErrorResponse } from \"../http-common.js\";\nimport { Codec, TalerError, TalerErrorCode, TalerErrorDetail } from \"../index.js\";\nimport { stringToBytes } from \"../taler-crypto.js\";\nimport { AccessToken, PaginationParams } from \"./types.js\";\n\n/**\n * Helper function to generate the \"Authorization\" HTTP header.\n */\nexport function makeBasicAuthHeader(username: string, password: string): string {\n const auth = `${username}:${password}`;\n const authEncoded: string = base64FromArrayBuffer(stringToBytes(auth));\n return `Basic ${authEncoded}`;\n}\n\n/**\n * rfc8959\n * @param token \n * @returns \n */\nexport function makeBearerTokenAuthHeader(token: AccessToken): string {\n return `Bearer secret-token:${token}`;\n}\n\n/**\n * https://bugs.gnunet.org/view.php?id=7949\n */\nexport function addPaginationParams(url: URL, pagination?: PaginationParams) {\n if (!pagination) return;\n if (pagination.timoutMs) {\n url.searchParams.set(\"long_poll_ms\", String(pagination.timoutMs))\n }\n if (pagination.offset) {\n url.searchParams.set(\"start\", pagination.offset)\n }\n const order = !pagination || pagination.order === \"asc\" ? 1 : -1\n const limit = !pagination || !pagination.limit || pagination.limit === 0 ? 5 : Math.abs(pagination.limit)\n //always send delta\n url.searchParams.set(\"delta\", String(order * limit))\n}\n", "import { HttpRequestLibrary } from \"../http-common.js\";\nimport { HttpStatusCode } from \"../http-status-codes.js\";\nimport { createPlatformHttpLib } from \"../http.js\";\nimport { LibtoolVersion } from \"../libtool-version.js\";\nimport { hash } from \"../nacl-fast.js\";\nimport { FailCasesByMethod, ResultByMethod, opEmptySuccess, opFixedSuccess, opKnownFailure, opSuccess, opUnknownFailure } from \"../operation.js\";\nimport { TalerSignaturePurpose, amountToBuffer, bufferForUint32, buildSigPS, decodeCrock, eddsaSign, encodeCrock, stringToBytes, timestampRoundedToBuffer } from \"../taler-crypto.js\";\nimport { OfficerAccount, PaginationParams, SigningKey, TalerExchangeApi, codecForAmlDecisionDetails, codecForAmlRecords, codecForExchangeConfig } from \"./types.js\";\nimport { addPaginationParams } from \"./utils.js\";\n\nexport type TalerExchangeResultByMethod<prop extends keyof TalerExchangeHttpClient> = ResultByMethod<TalerExchangeHttpClient, prop>\nexport type TalerExchangeErrorsByMethod<prop extends keyof TalerExchangeHttpClient> = FailCasesByMethod<TalerExchangeHttpClient, prop>\n\n/**\n */\nexport class TalerExchangeHttpClient {\n httpLib: HttpRequestLibrary;\n public readonly PROTOCOL_VERSION = \"17:0:0\";\n\n constructor(\n readonly baseUrl: string,\n httpClient?: HttpRequestLibrary,\n ) {\n this.httpLib = httpClient ?? createPlatformHttpLib();\n }\n\n isCompatible(version: string): boolean {\n const compare = LibtoolVersion.compare(this.PROTOCOL_VERSION, version)\n return compare?.compatible ?? false\n }\n /**\n * https://docs.taler.net/core/api-merchant.html#get--config\n * \n */\n async getConfig() {\n const url = new URL(`config`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"GET\"\n });\n switch (resp.status) {\n case HttpStatusCode.Ok: return opSuccess(resp, codecForExchangeConfig())\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n //\n // AML operations\n //\n\n /**\n * https://docs.taler.net/core/api-exchange.html#get--aml-$OFFICER_PUB-decisions-$STATE\n * \n */\n async getDecisionsByState(auth: OfficerAccount, state: TalerExchangeApi.AmlState, pagination?: PaginationParams) {\n const url = new URL(`aml/${auth.id}/decisions/${TalerExchangeApi.AmlState[state]}`, this.baseUrl);\n addPaginationParams(url, pagination)\n\n const resp = await this.httpLib.fetch(url.href, {\n method: \"GET\",\n headers: {\n \"Taler-AML-Officer-Signature\": buildQuerySignature(auth.signingKey)\n }\n });\n\n switch (resp.status) {\n case HttpStatusCode.Ok: return opSuccess(resp, codecForAmlRecords())\n case HttpStatusCode.NoContent: return opFixedSuccess({ records: [] })\n //this should be unauthorized\n case HttpStatusCode.Forbidden: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.Unauthorized: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.NotFound: return opKnownFailure(\"officer-not-found\", resp);\n case HttpStatusCode.Conflict: return opKnownFailure(\"officer-disabled\", resp);\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n /**\n * https://docs.taler.net/core/api-exchange.html#get--aml-$OFFICER_PUB-decision-$H_PAYTO\n * \n */\n async getDecisionDetails(auth: OfficerAccount, account: string) {\n const url = new URL(`aml/${auth.id}/decision/${account}`, this.baseUrl);\n\n const resp = await this.httpLib.fetch(url.href, {\n method: \"GET\",\n headers: {\n \"Taler-AML-Officer-Signature\": buildQuerySignature(auth.signingKey)\n }\n });\n\n switch (resp.status) {\n case HttpStatusCode.Ok: return opSuccess(resp, codecForAmlDecisionDetails())\n case HttpStatusCode.NoContent: return opFixedSuccess({ aml_history: [], kyc_attributes: [] })\n //this should be unauthorized\n case HttpStatusCode.Forbidden: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.Unauthorized: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.NotFound: return opKnownFailure(\"officer-not-found\", resp);\n case HttpStatusCode.Conflict: return opKnownFailure(\"officer-disabled\", resp);\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n /**\n * https://docs.taler.net/core/api-exchange.html#post--aml-$OFFICER_PUB-decision\n * \n */\n async addDecisionDetails(auth: OfficerAccount, decision: Omit<TalerExchangeApi.AmlDecision, \"officer_sig\">) {\n const url = new URL(`aml/${auth.id}/decision`, this.baseUrl);\n\n const body = buildDecisionSignature(auth.signingKey, decision)\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body,\n });\n\n switch (resp.status) {\n case HttpStatusCode.NoContent: return opEmptySuccess()\n //FIXME: this should be unauthorized\n case HttpStatusCode.Forbidden: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.Unauthorized: return opKnownFailure(\"unauthorized\", resp);\n //FIXME: this two need to be splitted by error code\n case HttpStatusCode.NotFound: return opKnownFailure(\"officer-or-account-not-found\", resp);\n case HttpStatusCode.Conflict: return opKnownFailure(\"officer-disabled-or-recent-decision\", resp);\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n\n}\n\nfunction buildQuerySignature(key: SigningKey): string {\n const sigBlob = buildSigPS(\n TalerSignaturePurpose.TALER_SIGNATURE_AML_QUERY,\n ).build();\n\n return encodeCrock(eddsaSign(sigBlob, key));\n}\n\nfunction buildDecisionSignature(\n key: SigningKey,\n decision: Omit<TalerExchangeApi.AmlDecision, \"officer_sig\">,\n): TalerExchangeApi.AmlDecision {\n const zero = new Uint8Array(new ArrayBuffer(64))\n\n const sigBlob = buildSigPS(TalerSignaturePurpose.TALER_SIGNATURE_AML_DECISION)\n //TODO: new need the null terminator, also in the exchange\n .put(hash(stringToBytes(decision.justification)))//check null\n .put(timestampRoundedToBuffer(decision.decision_time))\n .put(amountToBuffer(decision.new_threshold))\n .put(decodeCrock(decision.h_payto))\n .put(zero) //kyc_requirement\n .put(bufferForUint32(decision.new_state))\n .build();\n\n const officer_sig = encodeCrock(eddsaSign(sigBlob, key));\n return {\n ...decision,\n officer_sig\n }\n}", "import {\n LockedAccount,\n OfficerAccount,\n OfficerId,\n SigningKey,\n createEddsaKeyPair,\n decodeCrock,\n decryptWithDerivedKey,\n eddsaGetPublic,\n encodeCrock,\n encryptWithDerivedKey,\n getRandomBytesF,\n stringToBytes\n} from \"@gnu-taler/taler-util\";\n\n/**\n * Restore previous session and unlock account with password\n *\n * @param salt string from which crypto params will be derived\n * @param key secured private key\n * @param password password for the private key\n * @returns\n */\nexport async function unlockOfficerAccount(\n account: LockedAccount,\n password: string,\n): Promise<OfficerAccount> {\n const rawKey = decodeCrock(account);\n const rawPassword = stringToBytes(password);\n\n const signingKey = (await decryptWithDerivedKey(\n rawKey,\n rawPassword,\n password,\n ).catch((e: Error) => {\n throw new UnwrapKeyError(e.message);\n })) as SigningKey;\n\n const publicKey = eddsaGetPublic(signingKey);\n\n const accountId = encodeCrock(publicKey) as OfficerId;\n\n return { id: accountId, signingKey };\n}\n\n/**\n * Create new account (secured private key)\n * secured with the given password\n *\n * @param sessionId\n * @param password\n * @returns\n */\nexport async function createNewOfficerAccount(\n password: string,\n): Promise<OfficerAccount & { safe: LockedAccount }> {\n const { eddsaPriv, eddsaPub } = createEddsaKeyPair();\n\n const key = stringToBytes(password);\n\n const protectedPrivKey = await encryptWithDerivedKey(\n getRandomBytesF(24),\n key,\n eddsaPriv,\n password,\n );\n\n const signingKey = eddsaPriv as SigningKey;\n const accountId = encodeCrock(eddsaPub) as OfficerId;\n const safe = encodeCrock(protectedPrivKey) as LockedAccount;\n\n return { id: accountId, signingKey, safe };\n}\n\nexport class UnwrapKeyError extends Error {\n public cause: string;\n constructor(cause: string) {\n super(`Recovering private key failed on: ${cause}`);\n this.cause = cause;\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n// Entry point for the browser.\n\nimport { loadBrowserPrng } from \"./prng-browser.js\";\nloadBrowserPrng();\nexport * from \"./index.js\";\n\n// The web stuff doesn't support package.json export declarations yet,\n// so we export more stuff here than we should.\nexport * from \"./http-common.js\";\n", "/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var ReactVersion = '18.2.0';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: null\n};\n\nvar ReactCurrentActQueue = {\n current: null,\n // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n isBatchingLegacy: false,\n didScheduleLegacyUpdate: false\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar assign = Object.assign;\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n\n var propName; // Original props are copied\n\n var props = assign({}, element.props); // Reserved names are extracted\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n {\n checkKeyStringCoercion(element.key);\n }\n\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n // The `if` statement here prevents auto-disabling of the safe\n // coercion ESLint rule, so we must manually disable it below.\n // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n // eslint-disable-next-line react-internal/safe-string-coercion\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error('React.Children.only expected to receive a single React element child.');\n }\n\n return children;\n}\n\nfunction createContext(defaultValue) {\n // TODO: Second argument used to be an optional `calculateChangedBits`\n // function. Warn to reserve for future use?\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null,\n // Add these to use same hidden class in VM as ServerContext\n _defaultValue: null,\n _globalName: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n // This might throw either because it's missing or throws. If so, we treat it\n // as still uninitialized and try again next time. Which is the same as what\n // happens if the ctor or any wrappers processing the ctor throws. This might\n // end up fixing it if the resolution was a concurrency bug.\n\n thenable.then(function (moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function (error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n\n if (payload._status === Uninitialized) {\n // In case, we're still uninitialized, then we're waiting for the thenable\n // to resolve. Set it as pending in the meantime.\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n\n {\n if (moduleObject === undefined) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n }\n }\n\n {\n if (!('default' in moduleObject)) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.forwardRef((props, ref) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.memo((props) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n {\n if (dispatcher === null) {\n error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n }\n } // Will result in a null access error if accessed outside render phase. We\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n\n\n return dispatcher;\n}\nfunction useContext(Context) {\n var dispatcher = resolveDispatcher();\n\n {\n // TODO: add a more generic warning for invalid values.\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useInsertionEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useInsertionEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\nfunction useTransition() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\nfunction startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n\n try {\n scope();\n } finally {\n ReactCurrentBatchConfig.transition = prevTransition;\n\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n\n if (updatedFibersCount > 10) {\n warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n }\n\n currentTransition._updatedFibers.clear();\n }\n }\n }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n if (enqueueTaskImpl === null) {\n try {\n // read require off the module object to get around the bundlers.\n // we don't want them to detect a require and bundle a Node polyfill.\n var requireString = ('require' + Math.random()).slice(0, 7);\n var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n // version of setImmediate, bypassing fake timers if any.\n\n enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n } catch (_err) {\n // we're in a browser\n // we can't use regular timers because they may still be faked\n // so we try MessageChannel+postMessage instead\n enqueueTaskImpl = function (callback) {\n {\n if (didWarnAboutMessageChannel === false) {\n didWarnAboutMessageChannel = true;\n\n if (typeof MessageChannel === 'undefined') {\n error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n }\n }\n }\n\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(undefined);\n };\n }\n }\n\n return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n {\n // `act` calls can be nested, so we track the depth. This represents the\n // number of `act` scopes on the stack.\n var prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n\n if (ReactCurrentActQueue.current === null) {\n // This is the outermost `act` scope. Initialize the queue. The reconciler\n // will detect the queue and use it instead of Scheduler.\n ReactCurrentActQueue.current = [];\n }\n\n var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n var result;\n\n try {\n // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n // set to `true` while the given callback is executed, not for updates\n // triggered during an async event, because this is how the legacy\n // implementation of `act` behaved.\n ReactCurrentActQueue.isBatchingLegacy = true;\n result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n // which flushed updates immediately after the scope function exits, even\n // if it's an async function.\n\n if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n flushActQueue(queue);\n }\n }\n } catch (error) {\n popActScope(prevActScopeDepth);\n throw error;\n } finally {\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n }\n\n if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n // for it to resolve before exiting the current scope.\n\n var wasAwaited = false;\n var thenable = {\n then: function (resolve, reject) {\n wasAwaited = true;\n thenableResult.then(function (returnValue) {\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // We've exited the outermost act scope. Recursively flush the\n // queue until there's no remaining work.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }, function (error) {\n // The callback threw an error.\n popActScope(prevActScopeDepth);\n reject(error);\n });\n }\n };\n\n {\n if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n // eslint-disable-next-line no-undef\n Promise.resolve().then(function () {}).then(function () {\n if (!wasAwaited) {\n didWarnNoAwaitAct = true;\n\n error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n }\n });\n }\n }\n\n return thenable;\n } else {\n var returnValue = result; // The callback is not an async function. Exit the current scope\n // immediately, without awaiting.\n\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // Exiting the outermost act scope. Flush the queue.\n var _queue = ReactCurrentActQueue.current;\n\n if (_queue !== null) {\n flushActQueue(_queue);\n ReactCurrentActQueue.current = null;\n } // Return a thenable. If the user awaits it, we'll flush again in\n // case additional work was scheduled by a microtask.\n\n\n var _thenable = {\n then: function (resolve, reject) {\n // Confirm we haven't re-entered another `act` scope, in case\n // the user does something weird like await the thenable\n // multiple times.\n if (ReactCurrentActQueue.current === null) {\n // Recursively flush the queue until there's no remaining work.\n ReactCurrentActQueue.current = [];\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }\n };\n return _thenable;\n } else {\n // Since we're inside a nested `act` scope, the returned thenable\n // immediately resolves. The outer scope will flush the queue.\n var _thenable2 = {\n then: function (resolve, reject) {\n resolve(returnValue);\n }\n };\n return _thenable2;\n }\n }\n }\n}\n\nfunction popActScope(prevActScopeDepth) {\n {\n if (prevActScopeDepth !== actScopeDepth - 1) {\n error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n }\n\n actScopeDepth = prevActScopeDepth;\n }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n if (queue.length === 0) {\n // No additional work was scheduled. Finish.\n ReactCurrentActQueue.current = null;\n resolve(returnValue);\n } else {\n // Keep flushing work until there's none left.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n }\n });\n } catch (error) {\n reject(error);\n }\n } else {\n resolve(returnValue);\n }\n }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n {\n if (!isFlushing) {\n // Prevent re-entrance.\n isFlushing = true;\n var i = 0;\n\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n\n do {\n callback = callback(true);\n } while (callback !== null);\n }\n\n queue.length = 0;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n queue = queue.slice(i + 1);\n throw error;\n } finally {\n isFlushing = false;\n }\n }\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "const React = require(\"react\");\n\nfunction AcademicCapIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.26 10.147a60.436 60.436 0 00-.491 6.347A48.627 48.627 0 0112 20.904a48.627 48.627 0 018.232-4.41 60.46 60.46 0 00-.491-6.347m-15.482 0a50.57 50.57 0 00-2.658-.813A59.905 59.905 0 0112 3.493a59.902 59.902 0 0110.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.697 50.697 0 0112 13.489a50.702 50.702 0 017.74-3.342M6.75 15a.75.75 0 100-1.5.75.75 0 000 1.5zm0 0v-3.675A55.378 55.378 0 0112 8.443m-7.007 11.55A5.981 5.981 0 006.75 15.75v-1.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(AcademicCapIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction AdjustmentsHorizontalIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.5 6h9.75M10.5 6a1.5 1.5 0 11-3 0m3 0a1.5 1.5 0 10-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-9.75 0h9.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(AdjustmentsHorizontalIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction AdjustmentsVerticalIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 13.5V3.75m0 9.75a1.5 1.5 0 010 3m0-3a1.5 1.5 0 000 3m0 3.75V16.5m12-3V3.75m0 9.75a1.5 1.5 0 010 3m0-3a1.5 1.5 0 000 3m0 3.75V16.5m-6-9V3.75m0 3.75a1.5 1.5 0 010 3m0-3a1.5 1.5 0 000 3m0 9.75V10.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(AdjustmentsVerticalIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArchiveBoxArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0l-3-3m3 3l3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArchiveBoxArrowDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArchiveBoxXMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m6 4.125l2.25 2.25m0 0l2.25 2.25M12 13.875l2.25-2.25M12 13.875l-2.25 2.25M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArchiveBoxXMarkIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArchiveBoxIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArchiveBoxIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowDownCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12.75l3 3m0 0l3-3m-3 3v-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowDownCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowDownLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 4.5l-15 15m0 0h11.25m-11.25 0V8.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowDownLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowDownOnSquareStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.5 7.5h-.75A2.25 2.25 0 004.5 9.75v7.5a2.25 2.25 0 002.25 2.25h7.5a2.25 2.25 0 002.25-2.25v-7.5a2.25 2.25 0 00-2.25-2.25h-.75m-6 3.75l3 3m0 0l3-3m-3 3V1.5m6 9h.75a2.25 2.25 0 012.25 2.25v7.5a2.25 2.25 0 01-2.25 2.25h-7.5a2.25 2.25 0 01-2.25-2.25v-.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowDownOnSquareStackIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowDownOnSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 8.25H7.5a2.25 2.25 0 00-2.25 2.25v9a2.25 2.25 0 002.25 2.25h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25H15M9 12l3 3m0 0l3-3m-3 3V2.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowDownOnSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowDownRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 4.5l15 15m0 0V8.25m0 11.25H8.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowDownRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowDownTrayIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowDownTrayIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 13.5L12 21m0 0l-7.5-7.5M12 21V3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowLeftCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.25 9l-3 3m0 0l3 3m-3-3h7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLeftCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowLeftOnRectangleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15M12 9l-3 3m0 0l3 3m-3-3h12.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLeftOnRectangleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowLongDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLongDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowLongLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.75 15.75L3 12m0 0l3.75-3.75M3 12h18\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLongLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowLongRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M17.25 8.25L21 12m0 0l-3.75 3.75M21 12H3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLongRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowLongUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLongUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowPathRoundedSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 00-3.7-3.7 48.678 48.678 0 00-7.324 0 4.006 4.006 0 00-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3l-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 003.7 3.7 48.656 48.656 0 007.324 0 4.006 4.006 0 003.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3l-3 3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowPathRoundedSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowPathIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowPathIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowRightCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12.75 15l3-3m0 0l-3-3m3 3h-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowRightCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowRightOnRectangleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowRightOnRectangleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowSmallDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 4.5v15m0 0l6.75-6.75M12 19.5l-6.75-6.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowSmallDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowSmallLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 12h-15m0 0l6.75 6.75M4.5 12l6.75-6.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowSmallLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowSmallRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 12h15m0 0l-6.75-6.75M19.5 12l-6.75 6.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowSmallRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowSmallUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 19.5v-15m0 0l-6.75 6.75M12 4.5l6.75 6.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowSmallUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowTopRightOnSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowTopRightOnSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowTrendingDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 6L9 12.75l4.286-4.286a11.948 11.948 0 014.306 6.43l.776 2.898m0 0l3.182-5.511m-3.182 5.51l-5.511-3.181\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowTrendingDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowTrendingUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 18L9 11.25l4.306 4.307a11.95 11.95 0 015.814-5.519l2.74-1.22m0 0l-5.94-2.28m5.94 2.28l-2.28 5.941\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowTrendingUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUpCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 11.25l-3-3m0 0l-3 3m3-3v7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUpCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUpLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 19.5l-15-15m0 0v11.25m0-11.25h11.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUpLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUpOnSquareStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.5 7.5h-.75A2.25 2.25 0 004.5 9.75v7.5a2.25 2.25 0 002.25 2.25h7.5a2.25 2.25 0 002.25-2.25v-7.5a2.25 2.25 0 00-2.25-2.25h-.75m0-3l-3-3m0 0l-3 3m3-3v11.25m6-2.25h.75a2.25 2.25 0 012.25 2.25v7.5a2.25 2.25 0 01-2.25 2.25h-7.5a2.25 2.25 0 01-2.25-2.25v-.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUpOnSquareStackIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUpOnSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 8.25H7.5a2.25 2.25 0 00-2.25 2.25v9a2.25 2.25 0 002.25 2.25h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25H15m0-3l-3-3m0 0l-3 3m3-3V15\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUpOnSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUpRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUpRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUpTrayIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUpTrayIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 10.5L12 3m0 0l7.5 7.5M12 3v18\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUturnDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 15l-6 6m0 0l-6-6m6 6V9a6 6 0 0112 0v3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUturnDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUturnLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 15L3 9m0 0l6-6M3 9h12a6 6 0 010 12h-3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUturnLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUturnRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 15l6-6m0 0l-6-6m6 6H9a6 6 0 000 12h3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUturnRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowUturnUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 9l6-6m0 0l6 6m-6-6v12a6 6 0 01-12 0v-3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowUturnUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowsPointingInIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowsPointingInIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowsPointingOutIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowsPointingOutIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowsRightLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.5 21L3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowsRightLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ArrowsUpDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 7.5L7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowsUpDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction AtSymbolIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M16.5 12a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 10-2.636 6.364M16.5 12V8.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(AtSymbolIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BackspaceIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9.75L14.25 12m0 0l2.25 2.25M14.25 12l2.25-2.25M14.25 12L12 14.25m-2.58 4.92l-6.375-6.375a1.125 1.125 0 010-1.59L9.42 4.83c.211-.211.498-.33.796-.33H19.5a2.25 2.25 0 012.25 2.25v10.5a2.25 2.25 0 01-2.25 2.25h-9.284c-.298 0-.585-.119-.796-.33z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BackspaceIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BackwardIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 16.811c0 .864-.933 1.405-1.683.977l-7.108-4.062a1.125 1.125 0 010-1.953l7.108-4.062A1.125 1.125 0 0121 8.688v8.123zM11.25 16.811c0 .864-.933 1.405-1.683.977l-7.108-4.062a1.125 1.125 0 010-1.953L9.567 7.71a1.125 1.125 0 011.683.977v8.123z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BackwardIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BanknotesIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 18.75a60.07 60.07 0 0115.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 013 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 00-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 01-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 003 15h-.75M15 10.5a3 3 0 11-6 0 3 3 0 016 0zm3 0h.008v.008H18V10.5zm-12 0h.008v.008H6V10.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BanknotesIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Bars2Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 9h16.5m-16.5 6.75h16.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Bars2Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Bars3BottomLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25H12\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Bars3BottomLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Bars3BottomRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 6.75h16.5M3.75 12h16.5M12 17.25h8.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Bars3BottomRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Bars3CenterLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 6.75h16.5M3.75 12H12m-8.25 5.25h16.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Bars3CenterLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Bars3Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Bars3Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Bars4Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 5.25h16.5m-16.5 4.5h16.5m-16.5 4.5h16.5m-16.5 4.5h16.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Bars4Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BarsArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0l-3.75-3.75M17.25 21L21 17.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BarsArrowDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BarsArrowUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BarsArrowUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Battery0Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 10.5h.375c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125H21M3.75 18h15A2.25 2.25 0 0021 15.75v-6a2.25 2.25 0 00-2.25-2.25h-15A2.25 2.25 0 001.5 9.75v6A2.25 2.25 0 003.75 18z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Battery0Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Battery100Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 10.5h.375c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125H21M4.5 10.5H18V15H4.5v-4.5zM3.75 18h15A2.25 2.25 0 0021 15.75v-6a2.25 2.25 0 00-2.25-2.25h-15A2.25 2.25 0 001.5 9.75v6A2.25 2.25 0 003.75 18z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Battery100Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Battery50Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 10.5h.375c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125H21M4.5 10.5h6.75V15H4.5v-4.5zM3.75 18h15A2.25 2.25 0 0021 15.75v-6a2.25 2.25 0 00-2.25-2.25h-15A2.25 2.25 0 001.5 9.75v6A2.25 2.25 0 003.75 18z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Battery50Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BeakerIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.75 3.104v5.714a2.25 2.25 0 01-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 014.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0112 15a9.065 9.065 0 00-6.23-.693L5 14.5m14.8.8l1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0112 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BeakerIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BellAlertIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0M3.124 7.5A8.969 8.969 0 015.292 3m13.416 0a8.969 8.969 0 012.168 4.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BellAlertIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BellSlashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.143 17.082a24.248 24.248 0 003.844.148m-3.844-.148a23.856 23.856 0 01-5.455-1.31 8.964 8.964 0 002.3-5.542m3.155 6.852a3 3 0 005.667 1.97m1.965-2.277L21 21m-4.225-4.225a23.81 23.81 0 003.536-1.003A8.967 8.967 0 0118 9.75V9A6 6 0 006.53 6.53m10.245 10.245L6.53 6.53M3 3l3.53 3.53\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BellSlashIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BellSnoozeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0M10.5 8.25h3l-3 4.5h3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BellSnoozeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BellIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BellIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BoltSlashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.412 15.655L9.75 21.75l3.745-4.012M9.257 13.5H3.75l2.659-2.849m2.048-2.194L14.25 2.25 12 10.5h8.25l-4.707 5.043M8.457 8.457L3 3m5.457 5.457l7.086 7.086m0 0L21 21\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BoltSlashIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BoltIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BoltIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BookOpenIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6.042A8.967 8.967 0 006 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 016 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 016-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0018 18a8.967 8.967 0 00-6 2.292m0-14.25v14.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BookOpenIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BookmarkSlashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 3l1.664 1.664M21 21l-1.5-1.5m-5.485-1.242L12 17.25 4.5 21V8.742m.164-4.078a2.15 2.15 0 011.743-1.342 48.507 48.507 0 0111.186 0c1.1.128 1.907 1.077 1.907 2.185V19.5M4.664 4.664L19.5 19.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BookmarkSlashIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BookmarkSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.5 3.75V16.5L12 14.25 7.5 16.5V3.75m9 0H18A2.25 2.25 0 0120.25 6v12A2.25 2.25 0 0118 20.25H6A2.25 2.25 0 013.75 18V6A2.25 2.25 0 016 3.75h1.5m9 0h-9\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BookmarkSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BookmarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M17.593 3.322c1.1.128 1.907 1.077 1.907 2.185V21L12 17.25 4.5 21V5.507c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0111.186 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BookmarkIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BriefcaseIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 14.15v4.25c0 1.094-.787 2.036-1.872 2.18-2.087.277-4.216.42-6.378.42s-4.291-.143-6.378-.42c-1.085-.144-1.872-1.086-1.872-2.18v-4.25m16.5 0a2.18 2.18 0 00.75-1.661V8.706c0-1.081-.768-2.015-1.837-2.175a48.114 48.114 0 00-3.413-.387m4.5 8.006c-.194.165-.42.295-.673.38A23.978 23.978 0 0112 15.75c-2.648 0-5.195-.429-7.577-1.22a2.016 2.016 0 01-.673-.38m0 0A2.18 2.18 0 013 12.489V8.706c0-1.081.768-2.015 1.837-2.175a48.111 48.111 0 013.413-.387m7.5 0V5.25A2.25 2.25 0 0013.5 3h-3a2.25 2.25 0 00-2.25 2.25v.894m7.5 0a48.667 48.667 0 00-7.5 0M12 12.75h.008v.008H12v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BriefcaseIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BugAntIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0112 12.75zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 01-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 002.248-2.354M12 12.75a2.25 2.25 0 01-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 00-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 01.4-2.253M12 8.25a2.25 2.25 0 00-2.248 2.146M12 8.25a2.25 2.25 0 012.248 2.146M8.683 5a6.032 6.032 0 01-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0115.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 00-.575-1.752M4.921 6a24.048 24.048 0 00-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 01-5.223 1.082\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BugAntIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BuildingLibraryIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 21v-8.25M15.75 21v-8.25M8.25 21v-8.25M3 9l9-6 9 6m-1.5 12V10.332A48.36 48.36 0 0012 9.75c-2.551 0-5.056.2-7.5.582V21M3 21h18M12 6.75h.008v.008H12V6.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BuildingLibraryIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BuildingOffice2Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BuildingOffice2Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BuildingOfficeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BuildingOfficeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction BuildingStorefrontIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.5 21v-7.5a.75.75 0 01.75-.75h3a.75.75 0 01.75.75V21m-4.5 0H2.36m11.14 0H18m0 0h3.64m-1.39 0V9.349m-16.5 11.65V9.35m0 0a3.001 3.001 0 003.75-.615A2.993 2.993 0 009.75 9.75c.896 0 1.7-.393 2.25-1.016a2.993 2.993 0 002.25 1.016c.896 0 1.7-.393 2.25-1.016a3.001 3.001 0 003.75.614m-16.5 0a3.004 3.004 0 01-.621-4.72L4.318 3.44A1.5 1.5 0 015.378 3h13.243a1.5 1.5 0 011.06.44l1.19 1.189a3 3 0 01-.621 4.72m-13.5 8.65h3.75a.75.75 0 00.75-.75V13.5a.75.75 0 00-.75-.75H6.75a.75.75 0 00-.75.75v3.75c0 .415.336.75.75.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(BuildingStorefrontIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CakeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 8.25v-1.5m0 1.5c-1.355 0-2.697.056-4.024.166C6.845 8.51 6 9.473 6 10.608v2.513m6-4.87c1.355 0 2.697.055 4.024.165C17.155 8.51 18 9.473 18 10.608v2.513m-3-4.87v-1.5m-6 1.5v-1.5m12 9.75l-1.5.75a3.354 3.354 0 01-3 0 3.354 3.354 0 00-3 0 3.354 3.354 0 01-3 0 3.354 3.354 0 00-3 0 3.354 3.354 0 01-3 0L3 16.5m15-3.38a48.474 48.474 0 00-6-.37c-2.032 0-4.034.125-6 .37m12 0c.39.049.777.102 1.163.16 1.07.16 1.837 1.094 1.837 2.175v5.17c0 .62-.504 1.124-1.125 1.124H4.125A1.125 1.125 0 013 20.625v-5.17c0-1.08.768-2.014 1.837-2.174A47.78 47.78 0 016 13.12M12.265 3.11a.375.375 0 11-.53 0L12 2.845l.265.265zm-3 0a.375.375 0 11-.53 0L9 2.845l.265.265zm6 0a.375.375 0 11-.53 0L15 2.845l.265.265z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CakeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CalculatorIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008zm0 2.25h.008v.008H8.25V13.5zm0 2.25h.008v.008H8.25v-.008zm0 2.25h.008v.008H8.25V18zm2.498-6.75h.007v.008h-.007v-.008zm0 2.25h.007v.008h-.007V13.5zm0 2.25h.007v.008h-.007v-.008zm0 2.25h.007v.008h-.007V18zm2.504-6.75h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V13.5zm0 2.25h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V18zm2.498-6.75h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V13.5zM8.25 6h7.5v2.25h-7.5V6zM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 002.25 2.25h10.5a2.25 2.25 0 002.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0012 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CalculatorIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CalendarDaysIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5m-9-6h.008v.008H12v-.008zM12 15h.008v.008H12V15zm0 2.25h.008v.008H12v-.008zM9.75 15h.008v.008H9.75V15zm0 2.25h.008v.008H9.75v-.008zM7.5 15h.008v.008H7.5V15zm0 2.25h.008v.008H7.5v-.008zm6.75-4.5h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V15zm0 2.25h.008v.008h-.008v-.008zm2.25-4.5h.008v.008H16.5v-.008zm0 2.25h.008v.008H16.5V15z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CalendarDaysIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CalendarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CalendarIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CameraIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.827 6.175A2.31 2.31 0 015.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 00-1.134-.175 2.31 2.31 0 01-1.64-1.055l-.822-1.316a2.192 2.192 0 00-1.736-1.039 48.774 48.774 0 00-5.232 0 2.192 2.192 0 00-1.736 1.039l-.821 1.316z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.5 12.75a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zM18.75 10.5h.008v.008h-.008V10.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CameraIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChartBarSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChartBarSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChartBarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChartBarIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChartPieIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.5 6a7.5 7.5 0 107.5 7.5h-7.5V6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.5 10.5H21A7.5 7.5 0 0013.5 3v7.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChartPieIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChatBubbleBottomCenterTextIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.5 8.25h9m-9 3H12m-9.75 1.51c0 1.6 1.123 2.994 2.707 3.227 1.129.166 2.27.293 3.423.379.35.026.67.21.865.501L12 21l2.755-4.133a1.14 1.14 0 01.865-.501 48.172 48.172 0 003.423-.379c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChatBubbleBottomCenterTextIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChatBubbleBottomCenterIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.068.157 2.148.279 3.238.364.466.037.893.281 1.153.671L12 21l2.652-3.978c.26-.39.687-.634 1.153-.67 1.09-.086 2.17-.208 3.238-.365 1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChatBubbleBottomCenterIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChatBubbleLeftEllipsisIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.625 9.75a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H8.25m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H12m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0h-.375m-13.5 3.01c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 01.778-.332 48.294 48.294 0 005.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChatBubbleLeftEllipsisIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChatBubbleLeftRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 01-.825-.242m9.345-8.334a2.126 2.126 0 00-.476-.095 48.64 48.64 0 00-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0011.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChatBubbleLeftRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChatBubbleLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 011.037-.443 48.282 48.282 0 005.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChatBubbleLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChatBubbleOvalLeftEllipsisIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.625 12a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H8.25m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H12m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0h-.375M21 12c0 4.556-4.03 8.25-9 8.25a9.764 9.764 0 01-2.555-.337A5.972 5.972 0 015.41 20.97a5.969 5.969 0 01-.474-.065 4.48 4.48 0 00.978-2.025c.09-.457-.133-.901-.467-1.226C3.93 16.178 3 14.189 3 12c0-4.556 4.03-8.25 9-8.25s9 3.694 9 8.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChatBubbleOvalLeftEllipsisIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChatBubbleOvalLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 20.25c4.97 0 9-3.694 9-8.25s-4.03-8.25-9-8.25S3 7.444 3 12c0 2.104.859 4.023 2.273 5.48.432.447.74 1.04.586 1.641a4.483 4.483 0 01-.923 1.785A5.969 5.969 0 006 21c1.282 0 2.47-.402 3.445-1.087.81.22 1.668.337 2.555.337z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChatBubbleOvalLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CheckBadgeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12.75L11.25 15 15 9.75M21 12c0 1.268-.63 2.39-1.593 3.068a3.745 3.745 0 01-1.043 3.296 3.745 3.745 0 01-3.296 1.043A3.745 3.745 0 0112 21c-1.268 0-2.39-.63-3.068-1.593a3.746 3.746 0 01-3.296-1.043 3.745 3.745 0 01-1.043-3.296A3.745 3.745 0 013 12c0-1.268.63-2.39 1.593-3.068a3.745 3.745 0 011.043-3.296 3.746 3.746 0 013.296-1.043A3.746 3.746 0 0112 3c1.268 0 2.39.63 3.068 1.593a3.746 3.746 0 013.296 1.043 3.746 3.746 0 011.043 3.296A3.745 3.745 0 0121 12z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CheckBadgeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CheckCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CheckCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 12.75l6 6 9-13.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CheckIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronDoubleDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 5.25l-7.5 7.5-7.5-7.5m15 6l-7.5 7.5-7.5-7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronDoubleDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronDoubleLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M18.75 19.5l-7.5-7.5 7.5-7.5m-6 15L5.25 12l7.5-7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronDoubleLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronDoubleRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.25 4.5l7.5 7.5-7.5 7.5m-6-15l7.5 7.5-7.5 7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronDoubleRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronDoubleUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 12.75l7.5-7.5 7.5 7.5m-15 6l7.5-7.5 7.5 7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronDoubleUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 8.25l-7.5 7.5-7.5-7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 19.5L8.25 12l7.5-7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 4.5l7.5 7.5-7.5 7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronUpDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 15L12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronUpDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ChevronUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 15.75l7.5-7.5 7.5 7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CircleStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CircleStackIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ClipboardDocumentCheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0118 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3l1.5 1.5 3-3.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ClipboardDocumentCheckIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ClipboardDocumentListIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25zM6.75 12h.008v.008H6.75V12zm0 3h.008v.008H6.75V15zm0 3h.008v.008H6.75V18z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ClipboardDocumentListIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ClipboardDocumentIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5A3.375 3.375 0 006.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0015 2.25h-1.5a2.251 2.251 0 00-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ClipboardDocumentIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ClipboardIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ClipboardIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ClockIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ClockIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CloudArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9.75v6.75m0 0l-3-3m3 3l3-3m-8.25 6a4.5 4.5 0 01-1.41-8.775 5.25 5.25 0 0110.233-2.33 3 3 0 013.758 3.848A3.752 3.752 0 0118 19.5H6.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CloudArrowDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CloudArrowUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 16.5V9.75m0 0l3 3m-3-3l-3 3M6.75 19.5a4.5 4.5 0 01-1.41-8.775 5.25 5.25 0 0110.233-2.33 3 3 0 013.758 3.848A3.752 3.752 0 0118 19.5H6.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CloudArrowUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CloudIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 15a4.5 4.5 0 004.5 4.5H18a3.75 3.75 0 001.332-7.257 3 3 0 00-3.758-3.848 5.25 5.25 0 00-10.233 2.33A4.502 4.502 0 002.25 15z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CloudIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CodeBracketSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.25 9.75L16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CodeBracketSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CodeBracketIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M17.25 6.75L22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3l-4.5 16.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CodeBracketIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Cog6ToothIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.087.22-.128.332-.183.582-.495.644-.869l.214-1.281z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Cog6ToothIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Cog8ToothIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Cog8ToothIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CogIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 12a7.5 7.5 0 0015 0m-15 0a7.5 7.5 0 1115 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077l1.41-.513m14.095-5.13l1.41-.513M5.106 17.785l1.15-.964m11.49-9.642l1.149-.964M7.501 19.795l.75-1.3m7.5-12.99l.75-1.3m-6.063 16.658l.26-1.477m2.605-14.772l.26-1.477m0 17.726l-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205L12 12m6.894 5.785l-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864l-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CogIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CommandLineIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.75 7.5l3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0021 18V6a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 6v12a2.25 2.25 0 002.25 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CommandLineIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ComputerDesktopIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25m18 0A2.25 2.25 0 0018.75 3H5.25A2.25 2.25 0 003 5.25m18 0V12a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 12V5.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ComputerDesktopIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CpuChipIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 002.25-2.25V6.75a2.25 2.25 0 00-2.25-2.25H6.75A2.25 2.25 0 004.5 6.75v10.5a2.25 2.25 0 002.25 2.25zm.75-12h9v9h-9v-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CpuChipIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CreditCardIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 8.25h19.5M2.25 9h19.5m-16.5 5.25h6m-6 2.25h3m-3.75 3h15a2.25 2.25 0 002.25-2.25V6.75A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25v10.5A2.25 2.25 0 004.5 19.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CreditCardIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CubeTransparentIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 7.5l-2.25-1.313M21 7.5v2.25m0-2.25l-2.25 1.313M3 7.5l2.25-1.313M3 7.5l2.25 1.313M3 7.5v2.25m9 3l2.25-1.313M12 12.75l-2.25-1.313M12 12.75V15m0 6.75l2.25-1.313M12 21.75V19.5m0 2.25l-2.25-1.313m0-16.875L12 2.25l2.25 1.313M21 14.25v2.25l-2.25 1.313m-13.5 0L3 16.5v-2.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CubeTransparentIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CubeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CubeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CurrencyBangladeshiIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 7.5l.415-.207a.75.75 0 011.085.67V10.5m0 0h6m-6 0h-1.5m1.5 0v5.438c0 .354.161.697.473.865a3.751 3.751 0 005.452-2.553c.083-.409-.263-.75-.68-.75h-.745M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CurrencyBangladeshiIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CurrencyDollarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6v12m-3-2.818l.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CurrencyDollarIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CurrencyEuroIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.25 7.756a4.5 4.5 0 100 8.488M7.5 10.5h5.25m-5.25 3h5.25M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CurrencyEuroIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CurrencyPoundIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.121 7.629A3 3 0 009.017 9.43c-.023.212-.002.425.028.636l.506 3.541a4.5 4.5 0 01-.43 2.65L9 16.5l1.539-.513a2.25 2.25 0 011.422 0l.655.218a2.25 2.25 0 001.718-.122L15 15.75M8.25 12H12m9 0a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CurrencyPoundIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CurrencyRupeeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 8.25H9m6 3H9m3 6l-3-3h1.5a3 3 0 100-6M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CurrencyRupeeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CurrencyYenIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 7.5l3 4.5m0 0l3-4.5M12 12v5.25M15 12H9m6 3H9m12-3a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CurrencyYenIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CursorArrowRaysIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.042 21.672L13.684 16.6m0 0l-2.51 2.225.569-9.47 5.227 7.917-3.286-.672zM12 2.25V4.5m5.834.166l-1.591 1.591M20.25 10.5H18M7.757 14.743l-1.59 1.59M6 10.5H3.75m4.007-4.243l-1.59-1.59\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CursorArrowRaysIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction CursorArrowRippleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.042 21.672L13.684 16.6m0 0l-2.51 2.225.569-9.47 5.227 7.917-3.286-.672zm-7.518-.267A8.25 8.25 0 1120.25 10.5M8.288 14.212A5.25 5.25 0 1117.25 10.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CursorArrowRippleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DevicePhoneMobileIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.5 1.5H8.25A2.25 2.25 0 006 3.75v16.5a2.25 2.25 0 002.25 2.25h7.5A2.25 2.25 0 0018 20.25V3.75a2.25 2.25 0 00-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18.75h3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DevicePhoneMobileIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DeviceTabletIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.5 19.5h3m-6.75 2.25h10.5a2.25 2.25 0 002.25-2.25v-15a2.25 2.25 0 00-2.25-2.25H6.75A2.25 2.25 0 004.5 4.5v15a2.25 2.25 0 002.25 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DeviceTabletIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m.75 12l3 3m0 0l3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentArrowDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentArrowUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m6.75 12l-3-3m0 0l-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentArrowUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentChartBarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25M9 16.5v.75m3-3v3M15 12v5.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentChartBarIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentCheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 019 9v.375M10.125 2.25A3.375 3.375 0 0113.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 013.375 3.375M9 15l2.25 2.25L15 12\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentCheckIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentDuplicateIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentDuplicateIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentMagnifyingGlassIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9zm3.75 11.625a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentMagnifyingGlassIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentMinusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m6.75 12H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentMinusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentPlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentPlusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentTextIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentTextIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction DocumentIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(DocumentIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EllipsisHorizontalCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.625 12a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H8.25m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H12m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0h-.375M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EllipsisHorizontalCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EllipsisHorizontalIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM12.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM18.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EllipsisHorizontalIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EllipsisVerticalIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6.75a.75.75 0 110-1.5.75.75 0 010 1.5zM12 12.75a.75.75 0 110-1.5.75.75 0 010 1.5zM12 18.75a.75.75 0 110-1.5.75.75 0 010 1.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EllipsisVerticalIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EnvelopeOpenIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21.75 9v.906a2.25 2.25 0 01-1.183 1.981l-6.478 3.488M2.25 9v.906a2.25 2.25 0 001.183 1.981l6.478 3.488m8.839 2.51l-4.66-2.51m0 0l-1.023-.55a2.25 2.25 0 00-2.134 0l-1.022.55m0 0l-4.661 2.51m16.5 1.615a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V8.844a2.25 2.25 0 011.183-1.98l7.5-4.04a2.25 2.25 0 012.134 0l7.5 4.04a2.25 2.25 0 011.183 1.98V19.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EnvelopeOpenIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EnvelopeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EnvelopeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ExclamationCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ExclamationCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ExclamationTriangleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ExclamationTriangleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EyeDropperIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 11.25l1.5 1.5.75-.75V8.758l2.276-.61a3 3 0 10-3.675-3.675l-.61 2.277H12l-.75.75 1.5 1.5M15 11.25l-8.47 8.47c-.34.34-.8.53-1.28.53s-.94.19-1.28.53l-.97.97-.75-.75.97-.97c.34-.34.53-.8.53-1.28s.19-.94.53-1.28L12.75 9M15 11.25L12.75 9\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EyeDropperIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EyeSlashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.98 8.223A10.477 10.477 0 001.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EyeSlashIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction EyeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.036 12.322a1.012 1.012 0 010-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(EyeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FaceFrownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.182 16.318A4.486 4.486 0 0012.016 15a4.486 4.486 0 00-3.198 1.318M21 12a9 9 0 11-18 0 9 9 0 0118 0zM9.75 9.75c0 .414-.168.75-.375.75S9 10.164 9 9.75 9.168 9 9.375 9s.375.336.375.75zm-.375 0h.008v.015h-.008V9.75zm5.625 0c0 .414-.168.75-.375.75s-.375-.336-.375-.75.168-.75.375-.75.375.336.375.75zm-.375 0h.008v.015h-.008V9.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FaceFrownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FaceSmileIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.182 15.182a4.5 4.5 0 01-6.364 0M21 12a9 9 0 11-18 0 9 9 0 0118 0zM9.75 9.75c0 .414-.168.75-.375.75S9 10.164 9 9.75 9.168 9 9.375 9s.375.336.375.75zm-.375 0h.008v.015h-.008V9.75zm5.625 0c0 .414-.168.75-.375.75s-.375-.336-.375-.75.168-.75.375-.75.375.336.375.75zm-.375 0h.008v.015h-.008V9.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FaceSmileIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FilmIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 01-1.125-1.125M3.375 19.5h1.5C5.496 19.5 6 18.996 6 18.375m-3.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-1.5A1.125 1.125 0 0118 18.375M20.625 4.5H3.375m17.25 0c.621 0 1.125.504 1.125 1.125M20.625 4.5h-1.5C18.504 4.5 18 5.004 18 5.625m3.75 0v1.5c0 .621-.504 1.125-1.125 1.125M3.375 4.5c-.621 0-1.125.504-1.125 1.125M3.375 4.5h1.5C5.496 4.5 6 5.004 6 5.625m-3.75 0v1.5c0 .621.504 1.125 1.125 1.125m0 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m1.5-3.75C5.496 8.25 6 7.746 6 7.125v-1.5M4.875 8.25C5.496 8.25 6 8.754 6 9.375v1.5m0-5.25v5.25m0-5.25C6 5.004 6.504 4.5 7.125 4.5h9.75c.621 0 1.125.504 1.125 1.125m1.125 2.625h1.5m-1.5 0A1.125 1.125 0 0118 7.125v-1.5m1.125 2.625c-.621 0-1.125.504-1.125 1.125v1.5m2.625-2.625c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125M18 5.625v5.25M7.125 12h9.75m-9.75 0A1.125 1.125 0 016 10.875M7.125 12C6.504 12 6 12.504 6 13.125m0-2.25C6 11.496 5.496 12 4.875 12M18 10.875c0 .621-.504 1.125-1.125 1.125M18 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m-12 5.25v-5.25m0 5.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125m-12 0v-1.5c0-.621-.504-1.125-1.125-1.125M18 18.375v-5.25m0 5.25v-1.5c0-.621.504-1.125 1.125-1.125M18 13.125v1.5c0 .621.504 1.125 1.125 1.125M18 13.125c0-.621.504-1.125 1.125-1.125M6 13.125v1.5c0 .621-.504 1.125-1.125 1.125M6 13.125C6 12.504 5.496 12 4.875 12m-1.5 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M19.125 12h1.5m0 0c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h1.5m14.25 0h1.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FilmIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FingerPrintIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.864 4.243A7.5 7.5 0 0119.5 10.5c0 2.92-.556 5.709-1.568 8.268M5.742 6.364A7.465 7.465 0 004.5 10.5a7.464 7.464 0 01-1.15 3.993m1.989 3.559A11.209 11.209 0 008.25 10.5a3.75 3.75 0 117.5 0c0 .527-.021 1.049-.064 1.565M12 10.5a14.94 14.94 0 01-3.6 9.75m6.633-4.596a18.666 18.666 0 01-2.485 5.33\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FingerPrintIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FireIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.362 5.214A8.252 8.252 0 0112 21 8.25 8.25 0 016.038 7.048 8.287 8.287 0 009 9.6a8.983 8.983 0 013.361-6.867 8.21 8.21 0 003 2.48z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 18a3.75 3.75 0 00.495-7.467 5.99 5.99 0 00-1.925 3.546 5.974 5.974 0 01-2.133-1A3.75 3.75 0 0012 18z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FireIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FlagIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 3v1.5M3 21v-6m0 0l2.77-.693a9 9 0 016.208.682l.108.054a9 9 0 006.086.71l3.114-.732a48.524 48.524 0 01-.005-10.499l-3.11.732a9 9 0 01-6.085-.711l-.108-.054a9 9 0 00-6.208-.682L3 4.5M3 15V4.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FlagIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FolderArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 13.5l3 3m0 0l3-3m-3 3v-6m1.06-4.19l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FolderArrowDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FolderMinusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 13.5H9m4.06-7.19l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FolderMinusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FolderOpenIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 00-1.883 2.542l.857 6a2.25 2.25 0 002.227 1.932H19.05a2.25 2.25 0 002.227-1.932l.857-6a2.25 2.25 0 00-1.883-2.542m-16.5 0V6A2.25 2.25 0 016 3.75h3.879a1.5 1.5 0 011.06.44l2.122 2.12a1.5 1.5 0 001.06.44H18A2.25 2.25 0 0120.25 9v.776\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FolderOpenIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FolderPlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 10.5v6m3-3H9m4.06-7.19l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FolderPlusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FolderIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FolderIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ForwardIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 8.688c0-.864.933-1.405 1.683-.977l7.108 4.062a1.125 1.125 0 010 1.953l-7.108 4.062A1.125 1.125 0 013 16.81V8.688zM12.75 8.688c0-.864.933-1.405 1.683-.977l7.108 4.062a1.125 1.125 0 010 1.953l-7.108 4.062a1.125 1.125 0 01-1.683-.977V8.688z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ForwardIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction FunnelIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FunnelIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction GifIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12.75 8.25v7.5m6-7.5h-3V12m0 0v3.75m0-3.75H18M9.75 9.348c-1.03-1.464-2.698-1.464-3.728 0-1.03 1.465-1.03 3.84 0 5.304 1.03 1.464 2.699 1.464 3.728 0V12h-1.5M4.5 19.5h15a2.25 2.25 0 002.25-2.25V6.75A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25v10.5A2.25 2.25 0 004.5 19.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(GifIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction GiftTopIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 3.75v16.5M2.25 12h19.5M6.375 17.25a4.875 4.875 0 004.875-4.875V12m6.375 5.25a4.875 4.875 0 01-4.875-4.875V12m-9 8.25h16.5a1.5 1.5 0 001.5-1.5V5.25a1.5 1.5 0 00-1.5-1.5H3.75a1.5 1.5 0 00-1.5 1.5v13.5a1.5 1.5 0 001.5 1.5zm12.621-9.44c-1.409 1.41-4.242 1.061-4.242 1.061s-.349-2.833 1.06-4.242a2.25 2.25 0 013.182 3.182zM10.773 7.63c1.409 1.409 1.06 4.242 1.06 4.242S9 12.22 7.592 10.811a2.25 2.25 0 113.182-3.182z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(GiftTopIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction GiftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 11.25v8.25a1.5 1.5 0 01-1.5 1.5H5.25a1.5 1.5 0 01-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 109.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1114.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(GiftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction GlobeAltIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(GlobeAltIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction GlobeAmericasIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.115 5.19l.319 1.913A6 6 0 008.11 10.36L9.75 12l-.387.775c-.217.433-.132.956.21 1.298l1.348 1.348c.21.21.329.497.329.795v1.089c0 .426.24.815.622 1.006l.153.076c.433.217.956.132 1.298-.21l.723-.723a8.7 8.7 0 002.288-4.042 1.087 1.087 0 00-.358-1.099l-1.33-1.108c-.251-.21-.582-.299-.905-.245l-1.17.195a1.125 1.125 0 01-.98-.314l-.295-.295a1.125 1.125 0 010-1.591l.13-.132a1.125 1.125 0 011.3-.21l.603.302a.809.809 0 001.086-1.086L14.25 7.5l1.256-.837a4.5 4.5 0 001.528-1.732l.146-.292M6.115 5.19A9 9 0 1017.18 4.64M6.115 5.19A8.965 8.965 0 0112 3c1.929 0 3.716.607 5.18 1.64\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(GlobeAmericasIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction GlobeAsiaAustraliaIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12.75 3.03v.568c0 .334.148.65.405.864l1.068.89c.442.369.535 1.01.216 1.49l-.51.766a2.25 2.25 0 01-1.161.886l-.143.048a1.107 1.107 0 00-.57 1.664c.369.555.169 1.307-.427 1.605L9 13.125l.423 1.059a.956.956 0 01-1.652.928l-.679-.906a1.125 1.125 0 00-1.906.172L4.5 15.75l-.612.153M12.75 3.031a9 9 0 00-8.862 12.872M12.75 3.031a9 9 0 016.69 14.036m0 0l-.177-.529A2.25 2.25 0 0017.128 15H16.5l-.324-.324a1.453 1.453 0 00-2.328.377l-.036.073a1.586 1.586 0 01-.982.816l-.99.282c-.55.157-.894.702-.8 1.267l.073.438c.08.474.49.821.97.821.846 0 1.598.542 1.865 1.345l.215.643m5.276-3.67a9.012 9.012 0 01-5.276 3.67m0 0a9 9 0 01-10.275-4.835M15.75 9c0 .896-.393 1.7-1.016 2.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(GlobeAsiaAustraliaIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction GlobeEuropeAfricaIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.893 13.393l-1.135-1.135a2.252 2.252 0 01-.421-.585l-1.08-2.16a.414.414 0 00-.663-.107.827.827 0 01-.812.21l-1.273-.363a.89.89 0 00-.738 1.595l.587.39c.59.395.674 1.23.172 1.732l-.2.2c-.212.212-.33.498-.33.796v.41c0 .409-.11.809-.32 1.158l-1.315 2.191a2.11 2.11 0 01-1.81 1.025 1.055 1.055 0 01-1.055-1.055v-1.172c0-.92-.56-1.747-1.414-2.089l-.655-.261a2.25 2.25 0 01-1.383-2.46l.007-.042a2.25 2.25 0 01.29-.787l.09-.15a2.25 2.25 0 012.37-1.048l1.178.236a1.125 1.125 0 001.302-.795l.208-.73a1.125 1.125 0 00-.578-1.315l-.665-.332-.091.091a2.25 2.25 0 01-1.591.659h-.18c-.249 0-.487.1-.662.274a.931.931 0 01-1.458-1.137l1.411-2.353a2.25 2.25 0 00.286-.76m11.928 9.869A9 9 0 008.965 3.525m11.928 9.868A9 9 0 118.965 3.525\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(GlobeEuropeAfricaIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction HandRaisedIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.05 4.575a1.575 1.575 0 10-3.15 0v3m3.15-3v-1.5a1.575 1.575 0 013.15 0v1.5m-3.15 0l.075 5.925m3.075.75V4.575m0 0a1.575 1.575 0 013.15 0V15M6.9 7.575a1.575 1.575 0 10-3.15 0v8.175a6.75 6.75 0 006.75 6.75h2.018a5.25 5.25 0 003.712-1.538l1.732-1.732a5.25 5.25 0 001.538-3.712l.003-2.024a.668.668 0 01.198-.471 1.575 1.575 0 10-2.228-2.228 3.818 3.818 0 00-1.12 2.687M6.9 7.575V12m6.27 4.318A4.49 4.49 0 0116.35 15m.002 0h-.002\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(HandRaisedIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction HandThumbDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.5 15h2.25m8.024-9.75c.011.05.028.1.052.148.591 1.2.924 2.55.924 3.977a8.96 8.96 0 01-.999 4.125m.023-8.25c-.076-.365.183-.75.575-.75h.908c.889 0 1.713.518 1.972 1.368.339 1.11.521 2.287.521 3.507 0 1.553-.295 3.036-.831 4.398C20.613 14.547 19.833 15 19 15h-1.053c-.472 0-.745-.556-.5-.96a8.95 8.95 0 00.303-.54m.023-8.25H16.48a4.5 4.5 0 01-1.423-.23l-3.114-1.04a4.5 4.5 0 00-1.423-.23H6.504c-.618 0-1.217.247-1.605.729A11.95 11.95 0 002.25 12c0 .434.023.863.068 1.285C2.427 14.306 3.346 15 4.372 15h3.126c.618 0 .991.724.725 1.282A7.471 7.471 0 007.5 19.5a2.25 2.25 0 002.25 2.25.75.75 0 00.75-.75v-.633c0-.573.11-1.14.322-1.672.304-.76.93-1.33 1.653-1.715a9.04 9.04 0 002.86-2.4c.498-.634 1.226-1.08 2.032-1.08h.384\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(HandThumbDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction HandThumbUpIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.633 10.5c.806 0 1.533-.446 2.031-1.08a9.041 9.041 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75A2.25 2.25 0 0116.5 4.5c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H13.48c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23H5.904M14.25 9h2.25M5.904 18.75c.083.205.173.405.27.602.197.4-.078.898-.523.898h-.908c-.889 0-1.713-.518-1.972-1.368a12 12 0 01-.521-3.507c0-1.553.295-3.036.831-4.398C3.387 10.203 4.167 9.75 5 9.75h1.053c.472 0 .745.556.5.96a8.958 8.958 0 00-1.302 4.665c0 1.194.232 2.333.654 3.375z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(HandThumbUpIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction HashtagIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5l-3.9 19.5m-2.1-19.5l-3.9 19.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(HashtagIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction HeartIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(HeartIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction HomeModernIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 21v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21m0 0h4.5V3.545M12.75 21h7.5V10.75M2.25 21h1.5m18 0h-18M2.25 9l4.5-1.636M18.75 3l-1.5.545m0 6.205l3 1m1.5.5l-1.5-.5M6.75 7.364V3h-3v18m3-13.636l10.5-3.819\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(HomeModernIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction HomeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(HomeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction IdentificationIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 9h3.75M15 12h3.75M15 15h3.75M4.5 19.5h15a2.25 2.25 0 002.25-2.25V6.75A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25v10.5A2.25 2.25 0 004.5 19.5zm6-10.125a1.875 1.875 0 11-3.75 0 1.875 1.875 0 013.75 0zm1.294 6.336a6.721 6.721 0 01-3.17.789 6.721 6.721 0 01-3.168-.789 3.376 3.376 0 016.338 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(IdentificationIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction InboxArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 3.75H6.912a2.25 2.25 0 00-2.15 1.588L2.35 13.177a2.25 2.25 0 00-.1.661V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 00-2.15-1.588H15M2.25 13.5h3.86a2.25 2.25 0 012.012 1.244l.256.512a2.25 2.25 0 002.013 1.244h3.218a2.25 2.25 0 002.013-1.244l.256-.512a2.25 2.25 0 012.013-1.244h3.859M12 3v8.25m0 0l-3-3m3 3l3-3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(InboxArrowDownIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction InboxStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.875 14.25l1.214 1.942a2.25 2.25 0 001.908 1.058h2.006c.776 0 1.497-.4 1.908-1.058l1.214-1.942M2.41 9h4.636a2.25 2.25 0 011.872 1.002l.164.246a2.25 2.25 0 001.872 1.002h2.092a2.25 2.25 0 001.872-1.002l.164-.246A2.25 2.25 0 0116.954 9h4.636M2.41 9a2.25 2.25 0 00-.16.832V12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 12V9.832c0-.287-.055-.57-.16-.832M2.41 9a2.25 2.25 0 01.382-.632l3.285-3.832a2.25 2.25 0 011.708-.786h8.43c.657 0 1.281.287 1.709.786l3.284 3.832c.163.19.291.404.382.632M4.5 20.25h15A2.25 2.25 0 0021.75 18v-2.625c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125V18a2.25 2.25 0 002.25 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(InboxStackIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction InboxIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 13.5h3.86a2.25 2.25 0 012.012 1.244l.256.512a2.25 2.25 0 002.013 1.244h3.218a2.25 2.25 0 002.013-1.244l.256-.512a2.25 2.25 0 012.013-1.244h3.859m-19.5.338V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 00-2.15-1.588H6.911a2.25 2.25 0 00-2.15 1.588L2.35 13.177a2.25 2.25 0 00-.1.661z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(InboxIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction InformationCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(InformationCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction KeyIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 5.25a3 3 0 013 3m3 0a6 6 0 01-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1121.75 8.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(KeyIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction LanguageIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.5 21l5.25-11.25L21 21m-9-3h7.5M3 5.621a48.474 48.474 0 016-.371m0 0c1.12 0 2.233.038 3.334.114M9 5.25V3m3.334 2.364C11.176 10.658 7.69 15.08 3 17.502m9.334-12.138c.896.061 1.785.147 2.666.257m-4.589 8.495a18.023 18.023 0 01-3.827-5.802\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(LanguageIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction LifebuoyIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.712 4.33a9.027 9.027 0 011.652 1.306c.51.51.944 1.064 1.306 1.652M16.712 4.33l-3.448 4.138m3.448-4.138a9.014 9.014 0 00-9.424 0M19.67 7.288l-4.138 3.448m4.138-3.448a9.014 9.014 0 010 9.424m-4.138-5.976a3.736 3.736 0 00-.88-1.388 3.737 3.737 0 00-1.388-.88m2.268 2.268a3.765 3.765 0 010 2.528m-2.268-4.796a3.765 3.765 0 00-2.528 0m4.796 4.796c-.181.506-.475.982-.88 1.388a3.736 3.736 0 01-1.388.88m2.268-2.268l4.138 3.448m0 0a9.027 9.027 0 01-1.306 1.652c-.51.51-1.064.944-1.652 1.306m0 0l-3.448-4.138m3.448 4.138a9.014 9.014 0 01-9.424 0m5.976-4.138a3.765 3.765 0 01-2.528 0m0 0a3.736 3.736 0 01-1.388-.88 3.737 3.737 0 01-.88-1.388m2.268 2.268L7.288 19.67m0 0a9.024 9.024 0 01-1.652-1.306 9.027 9.027 0 01-1.306-1.652m0 0l4.138-3.448M4.33 16.712a9.014 9.014 0 010-9.424m4.138 5.976a3.765 3.765 0 010-2.528m0 0c.181-.506.475-.982.88-1.388a3.736 3.736 0 011.388-.88m-2.268 2.268L4.33 7.288m6.406 1.18L7.288 4.33m0 0a9.024 9.024 0 00-1.652 1.306A9.025 9.025 0 004.33 7.288\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(LifebuoyIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction LightBulbIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 18v-5.25m0 0a6.01 6.01 0 001.5-.189m-1.5.189a6.01 6.01 0 01-1.5-.189m3.75 7.478a12.06 12.06 0 01-4.5 0m3.75 2.383a14.406 14.406 0 01-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 10-7.517 0c.85.493 1.509 1.333 1.509 2.316V18\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(LightBulbIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction LinkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(LinkIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ListBulletIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zM3.75 12h.007v.008H3.75V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm-.375 5.25h.007v.008H3.75v-.008zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ListBulletIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction LockClosedIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.5 10.5V6.75a4.5 4.5 0 10-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H6.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(LockClosedIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction LockOpenIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.5 10.5V6.75a4.5 4.5 0 119 0v3.75M3.75 21.75h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H3.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(LockOpenIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MagnifyingGlassCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 15.75l-2.489-2.489m0 0a3.375 3.375 0 10-4.773-4.773 3.375 3.375 0 004.774 4.774zM21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MagnifyingGlassCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MagnifyingGlassMinusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607zM13.5 10.5h-6\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MagnifyingGlassMinusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MagnifyingGlassPlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607zM10.5 7.5v6m3-3h-6\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MagnifyingGlassPlusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MagnifyingGlassIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MagnifyingGlassIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MapPinIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 10.5a3 3 0 11-6 0 3 3 0 016 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MapPinIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MapIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 6.75V15m6-6v8.25m.503 3.498l4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 00-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MapIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MegaphoneIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M10.34 15.84c-.688-.06-1.386-.09-2.09-.09H7.5a4.5 4.5 0 110-9h.75c.704 0 1.402-.03 2.09-.09m0 9.18c.253.962.584 1.892.985 2.783.247.55.06 1.21-.463 1.511l-.657.38c-.551.318-1.26.117-1.527-.461a20.845 20.845 0 01-1.44-4.282m3.102.069a18.03 18.03 0 01-.59-4.59c0-1.586.205-3.124.59-4.59m0 9.18a23.848 23.848 0 018.835 2.535M10.34 6.66a23.847 23.847 0 008.835-2.535m0 0A23.74 23.74 0 0018.795 3m.38 1.125a23.91 23.91 0 011.014 5.395m-1.014 8.855c-.118.38-.245.754-.38 1.125m.38-1.125a23.91 23.91 0 001.014-5.395m0-3.46c.495.413.811 1.035.811 1.73 0 .695-.316 1.317-.811 1.73m0-3.46a24.347 24.347 0 010 3.46\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MegaphoneIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MicrophoneIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 18.75a6 6 0 006-6v-1.5m-6 7.5a6 6 0 01-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 01-3-3V4.5a3 3 0 116 0v8.25a3 3 0 01-3 3z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MicrophoneIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MinusCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MinusCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MinusSmallIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M18 12H6\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MinusSmallIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MinusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 12h-15\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MinusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MoonIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MoonIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction MusicalNoteIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 9l10.5-3m0 6.553v3.75a2.25 2.25 0 01-1.632 2.163l-1.32.377a1.803 1.803 0 11-.99-3.467l2.31-.66a2.25 2.25 0 001.632-2.163zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 01-1.632 2.163l-1.32.377a1.803 1.803 0 01-.99-3.467l2.31-.66A2.25 2.25 0 009 15.553z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(MusicalNoteIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction NewspaperIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 7.5h1.5m-1.5 3h1.5m-7.5 3h7.5m-7.5 3h7.5m3-9h3.375c.621 0 1.125.504 1.125 1.125V18a2.25 2.25 0 01-2.25 2.25M16.5 7.5V18a2.25 2.25 0 002.25 2.25M16.5 7.5V4.875c0-.621-.504-1.125-1.125-1.125H4.125C3.504 3.75 3 4.254 3 4.875V18a2.25 2.25 0 002.25 2.25h13.5M6 7.5h3v3H6v-3z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(NewspaperIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction NoSymbolIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(NoSymbolIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PaintBrushIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.53 16.122a3 3 0 00-5.78 1.128 2.25 2.25 0 01-2.4 2.245 4.5 4.5 0 008.4-2.245c0-.399-.078-.78-.22-1.128zm0 0a15.998 15.998 0 003.388-1.62m-5.043-.025a15.994 15.994 0 011.622-3.395m3.42 3.42a15.995 15.995 0 004.764-4.648l3.876-5.814a1.151 1.151 0 00-1.597-1.597L14.146 6.32a15.996 15.996 0 00-4.649 4.763m3.42 3.42a6.776 6.776 0 00-3.42-3.42\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PaintBrushIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PaperAirplaneIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PaperAirplaneIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PaperClipIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M18.375 12.739l-7.693 7.693a4.5 4.5 0 01-6.364-6.364l10.94-10.94A3 3 0 1119.5 7.372L8.552 18.32m.009-.01l-.01.01m5.699-9.941l-7.81 7.81a1.5 1.5 0 002.112 2.13\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PaperClipIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PauseCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.25 9v6m-4.5 0V9M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PauseCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PauseIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 5.25v13.5m-7.5-13.5v13.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PauseIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PencilSquareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PencilSquareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PencilIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PencilIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PhoneArrowDownLeftIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.25 9.75v-4.5m0 4.5h4.5m-4.5 0l6-6m-3 18c-8.284 0-15-6.716-15-15V4.5A2.25 2.25 0 014.5 2.25h1.372c.516 0 .966.351 1.091.852l1.106 4.423c.11.44-.054.902-.417 1.173l-1.293.97a1.062 1.062 0 00-.38 1.21 12.035 12.035 0 007.143 7.143c.441.162.928-.004 1.21-.38l.97-1.293a1.125 1.125 0 011.173-.417l4.423 1.106c.5.125.852.575.852 1.091V19.5a2.25 2.25 0 01-2.25 2.25h-2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PhoneArrowDownLeftIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PhoneArrowUpRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 3.75v4.5m0-4.5h-4.5m4.5 0l-6 6m3 12c-8.284 0-15-6.716-15-15V4.5A2.25 2.25 0 014.5 2.25h1.372c.516 0 .966.351 1.091.852l1.106 4.423c.11.44-.054.902-.417 1.173l-1.293.97a1.062 1.062 0 00-.38 1.21 12.035 12.035 0 007.143 7.143c.441.162.928-.004 1.21-.38l.97-1.293a1.125 1.125 0 011.173-.417l4.423 1.106c.5.125.852.575.852 1.091V19.5a2.25 2.25 0 01-2.25 2.25h-2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PhoneArrowUpRightIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PhoneXMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 3.75L18 6m0 0l2.25 2.25M18 6l2.25-2.25M18 6l-2.25 2.25m1.5 13.5c-8.284 0-15-6.716-15-15V4.5A2.25 2.25 0 014.5 2.25h1.372c.516 0 .966.351 1.091.852l1.106 4.423c.11.44-.054.902-.417 1.173l-1.293.97a1.062 1.062 0 00-.38 1.21 12.035 12.035 0 007.143 7.143c.441.162.928-.004 1.21-.38l.97-1.293a1.125 1.125 0 011.173-.417l4.423 1.106c.5.125.852.575.852 1.091V19.5a2.25 2.25 0 01-2.25 2.25h-2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PhoneXMarkIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PhoneIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 002.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 01-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 00-1.091-.852H4.5A2.25 2.25 0 002.25 4.5v2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PhoneIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PhotoIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 001.5-1.5V6a1.5 1.5 0 00-1.5-1.5H3.75A1.5 1.5 0 002.25 6v12a1.5 1.5 0 001.5 1.5zm10.5-11.25h.008v.008h-.008V8.25zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PhotoIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PlayCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.91 11.672a.375.375 0 010 .656l-5.603 3.113a.375.375 0 01-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PlayCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PlayPauseIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 7.5V18M15 7.5V18M3 16.811V8.69c0-.864.933-1.406 1.683-.977l7.108 4.061a1.125 1.125 0 010 1.954l-7.108 4.061A1.125 1.125 0 013 16.811z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PlayPauseIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PlayIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PlayIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PlusCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9v6m3-3H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PlusCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PlusSmallIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6v12m6-6H6\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PlusSmallIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 4.5v15m7.5-7.5h-15\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PlusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PowerIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.636 5.636a9 9 0 1012.728 0M12 3v9\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PowerIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PresentationChartBarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 3v11.25A2.25 2.25 0 006 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0118 16.5h-2.25m-7.5 0h7.5m-7.5 0l-1 3m8.5-3l1 3m0 0l.5 1.5m-.5-1.5h-9.5m0 0l-.5 1.5M9 11.25v1.5M12 9v3.75m3-6v6\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PresentationChartBarIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PresentationChartLineIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 3v11.25A2.25 2.25 0 006 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0118 16.5h-2.25m-7.5 0h7.5m-7.5 0l-1 3m8.5-3l1 3m0 0l.5 1.5m-.5-1.5h-9.5m0 0l-.5 1.5m.75-9l3-3 2.148 2.148A12.061 12.061 0 0116.5 7.605\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PresentationChartLineIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PrinterIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.72 13.829c-.24.03-.48.062-.72.096m.72-.096a42.415 42.415 0 0110.56 0m-10.56 0L6.34 18m10.94-4.171c.24.03.48.062.72.096m-.72-.096L17.66 18m0 0l.229 2.523a1.125 1.125 0 01-1.12 1.227H7.231c-.662 0-1.18-.568-1.12-1.227L6.34 18m11.318 0h1.091A2.25 2.25 0 0021 15.75V9.456c0-1.081-.768-2.015-1.837-2.175a48.055 48.055 0 00-1.913-.247M6.34 18H5.25A2.25 2.25 0 013 15.75V9.456c0-1.081.768-2.015 1.837-2.175a48.041 48.041 0 011.913-.247m10.5 0a48.536 48.536 0 00-10.5 0m10.5 0V3.375c0-.621-.504-1.125-1.125-1.125h-8.25c-.621 0-1.125.504-1.125 1.125v3.659M18 10.5h.008v.008H18V10.5zm-3 0h.008v.008H15V10.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PrinterIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction PuzzlePieceIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 01-.657.643 48.39 48.39 0 01-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 01-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 00-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 01-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 00.657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 01-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 005.427-.63 48.05 48.05 0 00.582-4.717.532.532 0 00-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 00.658-.663 48.422 48.422 0 00-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 01-.61-.58v0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(PuzzlePieceIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction QrCodeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 013.75 9.375v-4.5zM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 01-1.125-1.125v-4.5zM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0113.5 9.375v-4.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.75 6.75h.75v.75h-.75v-.75zM6.75 16.5h.75v.75h-.75v-.75zM16.5 6.75h.75v.75h-.75v-.75zM13.5 13.5h.75v.75h-.75v-.75zM13.5 19.5h.75v.75h-.75v-.75zM19.5 13.5h.75v.75h-.75v-.75zM19.5 19.5h.75v.75h-.75v-.75zM16.5 16.5h.75v.75h-.75v-.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(QrCodeIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction QuestionMarkCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(QuestionMarkCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction QueueListIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 010 3.75H5.625a1.875 1.875 0 010-3.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(QueueListIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction RadioIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 7.5l16.5-4.125M12 6.75c-2.708 0-5.363.224-7.948.655C2.999 7.58 2.25 8.507 2.25 9.574v9.176A2.25 2.25 0 004.5 21h15a2.25 2.25 0 002.25-2.25V9.574c0-1.067-.75-1.994-1.802-2.169A48.329 48.329 0 0012 6.75zm-1.683 6.443l-.005.005-.006-.005.006-.005.005.005zm-.005 2.127l-.005-.006.005-.005.005.005-.005.005zm-2.116-.006l-.005.006-.006-.006.005-.005.006.005zm-.005-2.116l-.006-.005.006-.005.005.005-.005.005zM9.255 10.5v.008h-.008V10.5h.008zm3.249 1.88l-.007.004-.003-.007.006-.003.004.006zm-1.38 5.126l-.003-.006.006-.004.004.007-.006.003zm.007-6.501l-.003.006-.007-.003.004-.007.006.004zm1.37 5.129l-.007-.004.004-.006.006.003-.004.007zm.504-1.877h-.008v-.007h.008v.007zM9.255 18v.008h-.008V18h.008zm-3.246-1.87l-.007.004L6 16.127l.006-.003.004.006zm1.366-5.119l-.004-.006.006-.004.004.007-.006.003zM7.38 17.5l-.003.006-.007-.003.004-.007.006.004zm-1.376-5.116L6 12.38l.003-.007.007.004-.004.007zm-.5 1.873h-.008v-.007h.008v.007zM17.25 12.75a.75.75 0 110-1.5.75.75 0 010 1.5zm0 4.5a.75.75 0 110-1.5.75.75 0 010 1.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(RadioIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ReceiptPercentIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 14.25l6-6m4.5-3.493V21.75l-3.75-1.5-3.75 1.5-3.75-1.5-3.75 1.5V4.757c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0111.186 0c1.1.128 1.907 1.077 1.907 2.185zM9.75 9h.008v.008H9.75V9zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm4.125 4.5h.008v.008h-.008V13.5zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ReceiptPercentIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ReceiptRefundIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 9.75h4.875a2.625 2.625 0 010 5.25H12M8.25 9.75L10.5 7.5M8.25 9.75L10.5 12m9-7.243V21.75l-3.75-1.5-3.75 1.5-3.75-1.5-3.75 1.5V4.757c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0111.186 0c1.1.128 1.907 1.077 1.907 2.185z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ReceiptRefundIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction RectangleGroupIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 7.125C2.25 6.504 2.754 6 3.375 6h6c.621 0 1.125.504 1.125 1.125v3.75c0 .621-.504 1.125-1.125 1.125h-6a1.125 1.125 0 01-1.125-1.125v-3.75zM14.25 8.625c0-.621.504-1.125 1.125-1.125h5.25c.621 0 1.125.504 1.125 1.125v8.25c0 .621-.504 1.125-1.125 1.125h-5.25a1.125 1.125 0 01-1.125-1.125v-8.25zM3.75 16.125c0-.621.504-1.125 1.125-1.125h5.25c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125h-5.25a1.125 1.125 0 01-1.125-1.125v-2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(RectangleGroupIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction RectangleStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 6.878V6a2.25 2.25 0 012.25-2.25h7.5A2.25 2.25 0 0118 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 004.5 9v.878m13.5-3A2.25 2.25 0 0119.5 9v.878m0 0a2.246 2.246 0 00-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0121 12v6a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 18v-6c0-.98.626-1.813 1.5-2.122\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(RectangleStackIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction RocketLaunchIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.59 14.37a6 6 0 01-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 006.16-12.12A14.98 14.98 0 009.631 8.41m5.96 5.96a14.926 14.926 0 01-5.841 2.58m-.119-8.54a6 6 0 00-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 00-2.58 5.84m2.699 2.7c-.103.021-.207.041-.311.06a15.09 15.09 0 01-2.448-2.448 14.9 14.9 0 01.06-.312m-2.24 2.39a4.493 4.493 0 00-1.757 4.306 4.493 4.493 0 004.306-1.758M16.5 9a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(RocketLaunchIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction RssIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12.75 19.5v-.75a7.5 7.5 0 00-7.5-7.5H4.5m0-6.75h.75c7.87 0 14.25 6.38 14.25 14.25v.75M6 18.75a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(RssIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ScaleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 3v17.25m0 0c-1.472 0-2.882.265-4.185.75M12 20.25c1.472 0 2.882.265 4.185.75M18.75 4.97A48.416 48.416 0 0012 4.5c-2.291 0-4.545.16-6.75.47m13.5 0c1.01.143 2.01.317 3 .52m-3-.52l2.62 10.726c.122.499-.106 1.028-.589 1.202a5.988 5.988 0 01-2.031.352 5.988 5.988 0 01-2.031-.352c-.483-.174-.711-.703-.59-1.202L18.75 4.971zm-16.5.52c.99-.203 1.99-.377 3-.52m0 0l2.62 10.726c.122.499-.106 1.028-.589 1.202a5.989 5.989 0 01-2.031.352 5.989 5.989 0 01-2.031-.352c-.483-.174-.711-.703-.59-1.202L5.25 4.971z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ScaleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ScissorsIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.848 8.25l1.536.887M7.848 8.25a3 3 0 11-5.196-3 3 3 0 015.196 3zm1.536.887a2.165 2.165 0 011.083 1.839c.005.351.054.695.14 1.024M9.384 9.137l2.077 1.199M7.848 15.75l1.536-.887m-1.536.887a3 3 0 11-5.196 3 3 3 0 015.196-3zm1.536-.887a2.165 2.165 0 001.083-1.838c.005-.352.054-.695.14-1.025m-1.223 2.863l2.077-1.199m0-3.328a4.323 4.323 0 012.068-1.379l5.325-1.628a4.5 4.5 0 012.48-.044l.803.215-7.794 4.5m-2.882-1.664A4.331 4.331 0 0010.607 12m3.736 0l7.794 4.5-.802.215a4.5 4.5 0 01-2.48-.043l-5.326-1.629a4.324 4.324 0 01-2.068-1.379M14.343 12l-2.882 1.664\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ScissorsIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ServerStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.25 14.25h13.5m-13.5 0a3 3 0 01-3-3m3 3a3 3 0 100 6h13.5a3 3 0 100-6m-16.5-3a3 3 0 013-3h13.5a3 3 0 013 3m-19.5 0a4.5 4.5 0 01.9-2.7L5.737 5.1a3.375 3.375 0 012.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 01.9 2.7m0 0a3 3 0 01-3 3m0 3h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008zm-3 6h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ServerStackIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ServerIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21.75 17.25v-.228a4.5 4.5 0 00-.12-1.03l-2.268-9.64a3.375 3.375 0 00-3.285-2.602H7.923a3.375 3.375 0 00-3.285 2.602l-2.268 9.64a4.5 4.5 0 00-.12 1.03v.228m19.5 0a3 3 0 01-3 3H5.25a3 3 0 01-3-3m19.5 0a3 3 0 00-3-3H5.25a3 3 0 00-3 3m16.5 0h.008v.008h-.008v-.008zm-3 0h.008v.008h-.008v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ServerIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ShareIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.217 10.907a2.25 2.25 0 100 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186l9.566-5.314m-9.566 7.5l9.566 5.314m0 0a2.25 2.25 0 103.935 2.186 2.25 2.25 0 00-3.935-2.186zm0-12.814a2.25 2.25 0 103.933-2.185 2.25 2.25 0 00-3.933 2.185z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ShareIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ShieldCheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ShieldCheckIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ShieldExclamationIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9v3.75m0-10.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.249-8.25-3.286zm0 13.036h.008v.008H12v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ShieldExclamationIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ShoppingBagIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007zM8.625 10.5a.375.375 0 11-.75 0 .375.375 0 01.75 0zm7.5 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ShoppingBagIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ShoppingCartIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ShoppingCartIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SignalSlashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 3l8.735 8.735m0 0a.374.374 0 11.53.53m-.53-.53l.53.53m0 0L21 21M14.652 9.348a3.75 3.75 0 010 5.304m2.121-7.425a6.75 6.75 0 010 9.546m2.121-11.667c3.808 3.807 3.808 9.98 0 13.788m-9.546-4.242a3.733 3.733 0 01-1.06-2.122m-1.061 4.243a6.75 6.75 0 01-1.625-6.929m-.496 9.05c-3.068-3.067-3.664-7.67-1.79-11.334M12 12h.008v.008H12V12z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SignalSlashIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SignalIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.348 14.651a3.75 3.75 0 010-5.303m5.304 0a3.75 3.75 0 010 5.303m-7.425 2.122a6.75 6.75 0 010-9.546m9.546 0a6.75 6.75 0 010 9.546M5.106 18.894c-3.808-3.808-3.808-9.98 0-13.789m13.788 0c3.808 3.808 3.808 9.981 0 13.79M12 12h.008v.007H12V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SignalIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SparklesIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09zM18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 00-2.456 2.456zM16.894 20.567L16.5 21.75l-.394-1.183a2.25 2.25 0 00-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 001.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 001.423 1.423l1.183.394-1.183.394a2.25 2.25 0 00-1.423 1.423z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SparklesIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SpeakerWaveIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SpeakerWaveIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SpeakerXMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M17.25 9.75L19.5 12m0 0l2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6l4.72-4.72a.75.75 0 011.28.531V19.94a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.506-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.395C2.806 8.757 3.63 8.25 4.51 8.25H6.75z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SpeakerXMarkIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Square2StackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Square2StackIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Square3Stack3DIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6.429 9.75L2.25 12l4.179 2.25m0-4.5l5.571 3 5.571-3m-11.142 0L2.25 7.5 12 2.25l9.75 5.25-4.179 2.25m0 0L21.75 12l-4.179 2.25m0 0l4.179 2.25L12 21.75 2.25 16.5l4.179-2.25m11.142 0l-5.571 3-5.571-3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Square3Stack3DIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction Squares2X2Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(Squares2X2Icon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SquaresPlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M13.5 16.875h3.375m0 0h3.375m-3.375 0V13.5m0 3.375v3.375M6 10.5h2.25a2.25 2.25 0 002.25-2.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v2.25A2.25 2.25 0 006 10.5zm0 9.75h2.25A2.25 2.25 0 0010.5 18v-2.25a2.25 2.25 0 00-2.25-2.25H6a2.25 2.25 0 00-2.25 2.25V18A2.25 2.25 0 006 20.25zm9.75-9.75H18a2.25 2.25 0 002.25-2.25V6A2.25 2.25 0 0018 3.75h-2.25A2.25 2.25 0 0013.5 6v2.25a2.25 2.25 0 002.25 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SquaresPlusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction StarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(StarIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction StopCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874c0 .311-.252.563-.563.563H9.564A.562.562 0 019 14.437V9.564z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(StopCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction StopIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.25 7.5A2.25 2.25 0 017.5 5.25h9a2.25 2.25 0 012.25 2.25v9a2.25 2.25 0 01-2.25 2.25h-9a2.25 2.25 0 01-2.25-2.25v-9z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(StopIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SunIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SunIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction SwatchIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.098 19.902a3.75 3.75 0 005.304 0l6.401-6.402M6.75 21A3.75 3.75 0 013 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 003.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88c.438-.439 1.15-.439 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(SwatchIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction TableCellsIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 01-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0112 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(TableCellsIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction TagIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.568 3H5.25A2.25 2.25 0 003 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 005.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 009.568 3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 6h.008v.008H6V6z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(TagIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction TicketIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.5 6v.75m0 3v.75m0 3v.75m0 3V18m-9-5.25h5.25M7.5 15h3M3.375 5.25c-.621 0-1.125.504-1.125 1.125v3.026a2.999 2.999 0 010 5.198v3.026c0 .621.504 1.125 1.125 1.125h17.25c.621 0 1.125-.504 1.125-1.125v-3.026a2.999 2.999 0 010-5.198V6.375c0-.621-.504-1.125-1.125-1.125H3.375z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(TicketIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction TrashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(TrashIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction TrophyIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.5 18.75h-9m9 0a3 3 0 013 3h-15a3 3 0 013-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 01-.982-3.172M9.497 14.25a7.454 7.454 0 00.981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 007.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 002.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 012.916.52 6.003 6.003 0 01-5.395 4.972m0 0a6.726 6.726 0 01-2.749 1.35m0 0a6.772 6.772 0 01-3.044 0\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(TrophyIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction TruckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 18.75a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 01-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h1.125c.621 0 1.129-.504 1.09-1.124a17.902 17.902 0 00-3.213-9.193 2.056 2.056 0 00-1.58-.86H14.25M16.5 18.75h-2.25m0-11.177v-.958c0-.568-.422-1.048-.987-1.106a48.554 48.554 0 00-10.026 0 1.106 1.106 0 00-.987 1.106v7.635m12-6.677v6.677m0 4.5v-4.5m0 0h-12\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(TruckIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction TvIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 20.25h12m-7.5-3v3m3-3v3m-10.125-3h17.25c.621 0 1.125-.504 1.125-1.125V4.875c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(TvIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction UserCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M17.982 18.725A7.488 7.488 0 0012 15.75a7.488 7.488 0 00-5.982 2.975m11.963 0a9 9 0 10-11.963 0m11.963 0A8.966 8.966 0 0112 21a8.966 8.966 0 01-5.982-2.275M15 9.75a3 3 0 11-6 0 3 3 0 016 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(UserCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction UserGroupIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M18 18.72a9.094 9.094 0 003.741-.479 3 3 0 00-4.682-2.72m.94 3.198l.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0112 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 016 18.719m12 0a5.971 5.971 0 00-.941-3.197m0 0A5.995 5.995 0 0012 12.75a5.995 5.995 0 00-5.058 2.772m0 0a3 3 0 00-4.681 2.72 8.986 8.986 0 003.74.477m.94-3.197a5.971 5.971 0 00-.94 3.197M15 6.75a3 3 0 11-6 0 3 3 0 016 0zm6 3a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0zm-13.5 0a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(UserGroupIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction UserMinusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M22 10.5h-6m-2.25-4.125a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zM4 19.235v-.11a6.375 6.375 0 0112.75 0v.109A12.318 12.318 0 0110.374 21c-2.331 0-4.512-.645-6.374-1.766z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(UserMinusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction UserPlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zM4 19.235v-.11a6.375 6.375 0 0112.75 0v.109A12.318 12.318 0 0110.374 21c-2.331 0-4.512-.645-6.374-1.766z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(UserPlusIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction UserIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(UserIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction UsersIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(UsersIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction VariableIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.745 3A23.933 23.933 0 003 12c0 3.183.62 6.22 1.745 9M19.5 3c.967 2.78 1.5 5.817 1.5 9s-.533 6.22-1.5 9M8.25 8.885l1.444-.89a.75.75 0 011.105.402l2.402 7.206a.75.75 0 001.104.401l1.445-.889m-8.25.75l.213.09a1.687 1.687 0 002.062-.617l4.45-6.676a1.688 1.688 0 012.062-.618l.213.09\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(VariableIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction VideoCameraSlashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 10.5l4.72-4.72a.75.75 0 011.28.53v11.38a.75.75 0 01-1.28.53l-4.72-4.72M12 18.75H4.5a2.25 2.25 0 01-2.25-2.25V9m12.841 9.091L16.5 19.5m-1.409-1.409c.407-.407.659-.97.659-1.591v-9a2.25 2.25 0 00-2.25-2.25h-9c-.621 0-1.184.252-1.591.659m12.182 12.182L2.909 5.909M1.5 4.5l1.409 1.409\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(VideoCameraSlashIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction VideoCameraIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M15.75 10.5l4.72-4.72a.75.75 0 011.28.53v11.38a.75.75 0 01-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25h-9A2.25 2.25 0 002.25 7.5v9a2.25 2.25 0 002.25 2.25z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(VideoCameraIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ViewColumnsIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 4.5v15m6-15v15m-10.875 0h15.75c.621 0 1.125-.504 1.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125H4.125C3.504 4.5 3 5.004 3 5.625v12.75c0 .621.504 1.125 1.125 1.125z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ViewColumnsIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction ViewfinderCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M7.5 3.75H6A2.25 2.25 0 003.75 6v1.5M16.5 3.75H18A2.25 2.25 0 0120.25 6v1.5m0 9V18A2.25 2.25 0 0118 20.25h-1.5m-9 0H6A2.25 2.25 0 013.75 18v-1.5M15 12a3 3 0 11-6 0 3 3 0 016 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ViewfinderCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction WalletIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 12a2.25 2.25 0 00-2.25-2.25H15a3 3 0 11-6 0H5.25A2.25 2.25 0 003 12m18 0v6a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 18v-6m18 0V9M3 12V9m18 0a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 9m18 0V6a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 6v3\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(WalletIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction WifiIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.288 15.038a5.25 5.25 0 017.424 0M5.106 11.856c3.807-3.808 9.98-3.808 13.788 0M1.924 8.674c5.565-5.565 14.587-5.565 20.152 0M12.53 18.22l-.53.53-.53-.53a.75.75 0 011.06 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(WifiIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction WindowIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 8.25V18a2.25 2.25 0 002.25 2.25h13.5A2.25 2.25 0 0021 18V8.25m-18 0V6a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 6v2.25m-18 0h18M5.25 6h.008v.008H5.25V6zM7.5 6h.008v.008H7.5V6zm2.25 0h.008v.008H9.75V6z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(WindowIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction WrenchScrewdriverIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M11.42 15.17L17.25 21A2.652 2.652 0 0021 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437l1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(WrenchScrewdriverIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction WrenchIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21.75 6.75a4.5 4.5 0 01-4.884 4.484c-1.076-.091-2.264.071-2.95.904l-7.152 8.684a2.548 2.548 0 11-3.586-3.586l8.684-7.152c.833-.686.995-1.874.904-2.95a4.5 4.5 0 016.336-4.486l-3.276 3.276a3.004 3.004 0 002.25 2.25l3.276-3.276c.256.565.398 1.192.398 1.852z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.867 19.125h.008v.008h-.008v-.008z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(WrenchIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction XCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.75 9.75l4.5 4.5m0-4.5l-4.5 4.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(XCircleIcon);\nmodule.exports = ForwardRef;", "const React = require(\"react\");\n\nfunction XMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 18L18 6M6 6l12 12\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(XMarkIcon);\nmodule.exports = ForwardRef;", "module.exports.AcademicCapIcon = require(\"./AcademicCapIcon.js\")\nmodule.exports.AdjustmentsHorizontalIcon = require(\"./AdjustmentsHorizontalIcon.js\")\nmodule.exports.AdjustmentsVerticalIcon = require(\"./AdjustmentsVerticalIcon.js\")\nmodule.exports.ArchiveBoxArrowDownIcon = require(\"./ArchiveBoxArrowDownIcon.js\")\nmodule.exports.ArchiveBoxXMarkIcon = require(\"./ArchiveBoxXMarkIcon.js\")\nmodule.exports.ArchiveBoxIcon = require(\"./ArchiveBoxIcon.js\")\nmodule.exports.ArrowDownCircleIcon = require(\"./ArrowDownCircleIcon.js\")\nmodule.exports.ArrowDownLeftIcon = require(\"./ArrowDownLeftIcon.js\")\nmodule.exports.ArrowDownOnSquareStackIcon = require(\"./ArrowDownOnSquareStackIcon.js\")\nmodule.exports.ArrowDownOnSquareIcon = require(\"./ArrowDownOnSquareIcon.js\")\nmodule.exports.ArrowDownRightIcon = require(\"./ArrowDownRightIcon.js\")\nmodule.exports.ArrowDownTrayIcon = require(\"./ArrowDownTrayIcon.js\")\nmodule.exports.ArrowDownIcon = require(\"./ArrowDownIcon.js\")\nmodule.exports.ArrowLeftCircleIcon = require(\"./ArrowLeftCircleIcon.js\")\nmodule.exports.ArrowLeftOnRectangleIcon = require(\"./ArrowLeftOnRectangleIcon.js\")\nmodule.exports.ArrowLeftIcon = require(\"./ArrowLeftIcon.js\")\nmodule.exports.ArrowLongDownIcon = require(\"./ArrowLongDownIcon.js\")\nmodule.exports.ArrowLongLeftIcon = require(\"./ArrowLongLeftIcon.js\")\nmodule.exports.ArrowLongRightIcon = require(\"./ArrowLongRightIcon.js\")\nmodule.exports.ArrowLongUpIcon = require(\"./ArrowLongUpIcon.js\")\nmodule.exports.ArrowPathRoundedSquareIcon = require(\"./ArrowPathRoundedSquareIcon.js\")\nmodule.exports.ArrowPathIcon = require(\"./ArrowPathIcon.js\")\nmodule.exports.ArrowRightCircleIcon = require(\"./ArrowRightCircleIcon.js\")\nmodule.exports.ArrowRightOnRectangleIcon = require(\"./ArrowRightOnRectangleIcon.js\")\nmodule.exports.ArrowRightIcon = require(\"./ArrowRightIcon.js\")\nmodule.exports.ArrowSmallDownIcon = require(\"./ArrowSmallDownIcon.js\")\nmodule.exports.ArrowSmallLeftIcon = require(\"./ArrowSmallLeftIcon.js\")\nmodule.exports.ArrowSmallRightIcon = require(\"./ArrowSmallRightIcon.js\")\nmodule.exports.ArrowSmallUpIcon = require(\"./ArrowSmallUpIcon.js\")\nmodule.exports.ArrowTopRightOnSquareIcon = require(\"./ArrowTopRightOnSquareIcon.js\")\nmodule.exports.ArrowTrendingDownIcon = require(\"./ArrowTrendingDownIcon.js\")\nmodule.exports.ArrowTrendingUpIcon = require(\"./ArrowTrendingUpIcon.js\")\nmodule.exports.ArrowUpCircleIcon = require(\"./ArrowUpCircleIcon.js\")\nmodule.exports.ArrowUpLeftIcon = require(\"./ArrowUpLeftIcon.js\")\nmodule.exports.ArrowUpOnSquareStackIcon = require(\"./ArrowUpOnSquareStackIcon.js\")\nmodule.exports.ArrowUpOnSquareIcon = require(\"./ArrowUpOnSquareIcon.js\")\nmodule.exports.ArrowUpRightIcon = require(\"./ArrowUpRightIcon.js\")\nmodule.exports.ArrowUpTrayIcon = require(\"./ArrowUpTrayIcon.js\")\nmodule.exports.ArrowUpIcon = require(\"./ArrowUpIcon.js\")\nmodule.exports.ArrowUturnDownIcon = require(\"./ArrowUturnDownIcon.js\")\nmodule.exports.ArrowUturnLeftIcon = require(\"./ArrowUturnLeftIcon.js\")\nmodule.exports.ArrowUturnRightIcon = require(\"./ArrowUturnRightIcon.js\")\nmodule.exports.ArrowUturnUpIcon = require(\"./ArrowUturnUpIcon.js\")\nmodule.exports.ArrowsPointingInIcon = require(\"./ArrowsPointingInIcon.js\")\nmodule.exports.ArrowsPointingOutIcon = require(\"./ArrowsPointingOutIcon.js\")\nmodule.exports.ArrowsRightLeftIcon = require(\"./ArrowsRightLeftIcon.js\")\nmodule.exports.ArrowsUpDownIcon = require(\"./ArrowsUpDownIcon.js\")\nmodule.exports.AtSymbolIcon = require(\"./AtSymbolIcon.js\")\nmodule.exports.BackspaceIcon = require(\"./BackspaceIcon.js\")\nmodule.exports.BackwardIcon = require(\"./BackwardIcon.js\")\nmodule.exports.BanknotesIcon = require(\"./BanknotesIcon.js\")\nmodule.exports.Bars2Icon = require(\"./Bars2Icon.js\")\nmodule.exports.Bars3BottomLeftIcon = require(\"./Bars3BottomLeftIcon.js\")\nmodule.exports.Bars3BottomRightIcon = require(\"./Bars3BottomRightIcon.js\")\nmodule.exports.Bars3CenterLeftIcon = require(\"./Bars3CenterLeftIcon.js\")\nmodule.exports.Bars3Icon = require(\"./Bars3Icon.js\")\nmodule.exports.Bars4Icon = require(\"./Bars4Icon.js\")\nmodule.exports.BarsArrowDownIcon = require(\"./BarsArrowDownIcon.js\")\nmodule.exports.BarsArrowUpIcon = require(\"./BarsArrowUpIcon.js\")\nmodule.exports.Battery0Icon = require(\"./Battery0Icon.js\")\nmodule.exports.Battery100Icon = require(\"./Battery100Icon.js\")\nmodule.exports.Battery50Icon = require(\"./Battery50Icon.js\")\nmodule.exports.BeakerIcon = require(\"./BeakerIcon.js\")\nmodule.exports.BellAlertIcon = require(\"./BellAlertIcon.js\")\nmodule.exports.BellSlashIcon = require(\"./BellSlashIcon.js\")\nmodule.exports.BellSnoozeIcon = require(\"./BellSnoozeIcon.js\")\nmodule.exports.BellIcon = require(\"./BellIcon.js\")\nmodule.exports.BoltSlashIcon = require(\"./BoltSlashIcon.js\")\nmodule.exports.BoltIcon = require(\"./BoltIcon.js\")\nmodule.exports.BookOpenIcon = require(\"./BookOpenIcon.js\")\nmodule.exports.BookmarkSlashIcon = require(\"./BookmarkSlashIcon.js\")\nmodule.exports.BookmarkSquareIcon = require(\"./BookmarkSquareIcon.js\")\nmodule.exports.BookmarkIcon = require(\"./BookmarkIcon.js\")\nmodule.exports.BriefcaseIcon = require(\"./BriefcaseIcon.js\")\nmodule.exports.BugAntIcon = require(\"./BugAntIcon.js\")\nmodule.exports.BuildingLibraryIcon = require(\"./BuildingLibraryIcon.js\")\nmodule.exports.BuildingOffice2Icon = require(\"./BuildingOffice2Icon.js\")\nmodule.exports.BuildingOfficeIcon = require(\"./BuildingOfficeIcon.js\")\nmodule.exports.BuildingStorefrontIcon = require(\"./BuildingStorefrontIcon.js\")\nmodule.exports.CakeIcon = require(\"./CakeIcon.js\")\nmodule.exports.CalculatorIcon = require(\"./CalculatorIcon.js\")\nmodule.exports.CalendarDaysIcon = require(\"./CalendarDaysIcon.js\")\nmodule.exports.CalendarIcon = require(\"./CalendarIcon.js\")\nmodule.exports.CameraIcon = require(\"./CameraIcon.js\")\nmodule.exports.ChartBarSquareIcon = require(\"./ChartBarSquareIcon.js\")\nmodule.exports.ChartBarIcon = require(\"./ChartBarIcon.js\")\nmodule.exports.ChartPieIcon = require(\"./ChartPieIcon.js\")\nmodule.exports.ChatBubbleBottomCenterTextIcon = require(\"./ChatBubbleBottomCenterTextIcon.js\")\nmodule.exports.ChatBubbleBottomCenterIcon = require(\"./ChatBubbleBottomCenterIcon.js\")\nmodule.exports.ChatBubbleLeftEllipsisIcon = require(\"./ChatBubbleLeftEllipsisIcon.js\")\nmodule.exports.ChatBubbleLeftRightIcon = require(\"./ChatBubbleLeftRightIcon.js\")\nmodule.exports.ChatBubbleLeftIcon = require(\"./ChatBubbleLeftIcon.js\")\nmodule.exports.ChatBubbleOvalLeftEllipsisIcon = require(\"./ChatBubbleOvalLeftEllipsisIcon.js\")\nmodule.exports.ChatBubbleOvalLeftIcon = require(\"./ChatBubbleOvalLeftIcon.js\")\nmodule.exports.CheckBadgeIcon = require(\"./CheckBadgeIcon.js\")\nmodule.exports.CheckCircleIcon = require(\"./CheckCircleIcon.js\")\nmodule.exports.CheckIcon = require(\"./CheckIcon.js\")\nmodule.exports.ChevronDoubleDownIcon = require(\"./ChevronDoubleDownIcon.js\")\nmodule.exports.ChevronDoubleLeftIcon = require(\"./ChevronDoubleLeftIcon.js\")\nmodule.exports.ChevronDoubleRightIcon = require(\"./ChevronDoubleRightIcon.js\")\nmodule.exports.ChevronDoubleUpIcon = require(\"./ChevronDoubleUpIcon.js\")\nmodule.exports.ChevronDownIcon = require(\"./ChevronDownIcon.js\")\nmodule.exports.ChevronLeftIcon = require(\"./ChevronLeftIcon.js\")\nmodule.exports.ChevronRightIcon = require(\"./ChevronRightIcon.js\")\nmodule.exports.ChevronUpDownIcon = require(\"./ChevronUpDownIcon.js\")\nmodule.exports.ChevronUpIcon = require(\"./ChevronUpIcon.js\")\nmodule.exports.CircleStackIcon = require(\"./CircleStackIcon.js\")\nmodule.exports.ClipboardDocumentCheckIcon = require(\"./ClipboardDocumentCheckIcon.js\")\nmodule.exports.ClipboardDocumentListIcon = require(\"./ClipboardDocumentListIcon.js\")\nmodule.exports.ClipboardDocumentIcon = require(\"./ClipboardDocumentIcon.js\")\nmodule.exports.ClipboardIcon = require(\"./ClipboardIcon.js\")\nmodule.exports.ClockIcon = require(\"./ClockIcon.js\")\nmodule.exports.CloudArrowDownIcon = require(\"./CloudArrowDownIcon.js\")\nmodule.exports.CloudArrowUpIcon = require(\"./CloudArrowUpIcon.js\")\nmodule.exports.CloudIcon = require(\"./CloudIcon.js\")\nmodule.exports.CodeBracketSquareIcon = require(\"./CodeBracketSquareIcon.js\")\nmodule.exports.CodeBracketIcon = require(\"./CodeBracketIcon.js\")\nmodule.exports.Cog6ToothIcon = require(\"./Cog6ToothIcon.js\")\nmodule.exports.Cog8ToothIcon = require(\"./Cog8ToothIcon.js\")\nmodule.exports.CogIcon = require(\"./CogIcon.js\")\nmodule.exports.CommandLineIcon = require(\"./CommandLineIcon.js\")\nmodule.exports.ComputerDesktopIcon = require(\"./ComputerDesktopIcon.js\")\nmodule.exports.CpuChipIcon = require(\"./CpuChipIcon.js\")\nmodule.exports.CreditCardIcon = require(\"./CreditCardIcon.js\")\nmodule.exports.CubeTransparentIcon = require(\"./CubeTransparentIcon.js\")\nmodule.exports.CubeIcon = require(\"./CubeIcon.js\")\nmodule.exports.CurrencyBangladeshiIcon = require(\"./CurrencyBangladeshiIcon.js\")\nmodule.exports.CurrencyDollarIcon = require(\"./CurrencyDollarIcon.js\")\nmodule.exports.CurrencyEuroIcon = require(\"./CurrencyEuroIcon.js\")\nmodule.exports.CurrencyPoundIcon = require(\"./CurrencyPoundIcon.js\")\nmodule.exports.CurrencyRupeeIcon = require(\"./CurrencyRupeeIcon.js\")\nmodule.exports.CurrencyYenIcon = require(\"./CurrencyYenIcon.js\")\nmodule.exports.CursorArrowRaysIcon = require(\"./CursorArrowRaysIcon.js\")\nmodule.exports.CursorArrowRippleIcon = require(\"./CursorArrowRippleIcon.js\")\nmodule.exports.DevicePhoneMobileIcon = require(\"./DevicePhoneMobileIcon.js\")\nmodule.exports.DeviceTabletIcon = require(\"./DeviceTabletIcon.js\")\nmodule.exports.DocumentArrowDownIcon = require(\"./DocumentArrowDownIcon.js\")\nmodule.exports.DocumentArrowUpIcon = require(\"./DocumentArrowUpIcon.js\")\nmodule.exports.DocumentChartBarIcon = require(\"./DocumentChartBarIcon.js\")\nmodule.exports.DocumentCheckIcon = require(\"./DocumentCheckIcon.js\")\nmodule.exports.DocumentDuplicateIcon = require(\"./DocumentDuplicateIcon.js\")\nmodule.exports.DocumentMagnifyingGlassIcon = require(\"./DocumentMagnifyingGlassIcon.js\")\nmodule.exports.DocumentMinusIcon = require(\"./DocumentMinusIcon.js\")\nmodule.exports.DocumentPlusIcon = require(\"./DocumentPlusIcon.js\")\nmodule.exports.DocumentTextIcon = require(\"./DocumentTextIcon.js\")\nmodule.exports.DocumentIcon = require(\"./DocumentIcon.js\")\nmodule.exports.EllipsisHorizontalCircleIcon = require(\"./EllipsisHorizontalCircleIcon.js\")\nmodule.exports.EllipsisHorizontalIcon = require(\"./EllipsisHorizontalIcon.js\")\nmodule.exports.EllipsisVerticalIcon = require(\"./EllipsisVerticalIcon.js\")\nmodule.exports.EnvelopeOpenIcon = require(\"./EnvelopeOpenIcon.js\")\nmodule.exports.EnvelopeIcon = require(\"./EnvelopeIcon.js\")\nmodule.exports.ExclamationCircleIcon = require(\"./ExclamationCircleIcon.js\")\nmodule.exports.ExclamationTriangleIcon = require(\"./ExclamationTriangleIcon.js\")\nmodule.exports.EyeDropperIcon = require(\"./EyeDropperIcon.js\")\nmodule.exports.EyeSlashIcon = require(\"./EyeSlashIcon.js\")\nmodule.exports.EyeIcon = require(\"./EyeIcon.js\")\nmodule.exports.FaceFrownIcon = require(\"./FaceFrownIcon.js\")\nmodule.exports.FaceSmileIcon = require(\"./FaceSmileIcon.js\")\nmodule.exports.FilmIcon = require(\"./FilmIcon.js\")\nmodule.exports.FingerPrintIcon = require(\"./FingerPrintIcon.js\")\nmodule.exports.FireIcon = require(\"./FireIcon.js\")\nmodule.exports.FlagIcon = require(\"./FlagIcon.js\")\nmodule.exports.FolderArrowDownIcon = require(\"./FolderArrowDownIcon.js\")\nmodule.exports.FolderMinusIcon = require(\"./FolderMinusIcon.js\")\nmodule.exports.FolderOpenIcon = require(\"./FolderOpenIcon.js\")\nmodule.exports.FolderPlusIcon = require(\"./FolderPlusIcon.js\")\nmodule.exports.FolderIcon = require(\"./FolderIcon.js\")\nmodule.exports.ForwardIcon = require(\"./ForwardIcon.js\")\nmodule.exports.FunnelIcon = require(\"./FunnelIcon.js\")\nmodule.exports.GifIcon = require(\"./GifIcon.js\")\nmodule.exports.GiftTopIcon = require(\"./GiftTopIcon.js\")\nmodule.exports.GiftIcon = require(\"./GiftIcon.js\")\nmodule.exports.GlobeAltIcon = require(\"./GlobeAltIcon.js\")\nmodule.exports.GlobeAmericasIcon = require(\"./GlobeAmericasIcon.js\")\nmodule.exports.GlobeAsiaAustraliaIcon = require(\"./GlobeAsiaAustraliaIcon.js\")\nmodule.exports.GlobeEuropeAfricaIcon = require(\"./GlobeEuropeAfricaIcon.js\")\nmodule.exports.HandRaisedIcon = require(\"./HandRaisedIcon.js\")\nmodule.exports.HandThumbDownIcon = require(\"./HandThumbDownIcon.js\")\nmodule.exports.HandThumbUpIcon = require(\"./HandThumbUpIcon.js\")\nmodule.exports.HashtagIcon = require(\"./HashtagIcon.js\")\nmodule.exports.HeartIcon = require(\"./HeartIcon.js\")\nmodule.exports.HomeModernIcon = require(\"./HomeModernIcon.js\")\nmodule.exports.HomeIcon = require(\"./HomeIcon.js\")\nmodule.exports.IdentificationIcon = require(\"./IdentificationIcon.js\")\nmodule.exports.InboxArrowDownIcon = require(\"./InboxArrowDownIcon.js\")\nmodule.exports.InboxStackIcon = require(\"./InboxStackIcon.js\")\nmodule.exports.InboxIcon = require(\"./InboxIcon.js\")\nmodule.exports.InformationCircleIcon = require(\"./InformationCircleIcon.js\")\nmodule.exports.KeyIcon = require(\"./KeyIcon.js\")\nmodule.exports.LanguageIcon = require(\"./LanguageIcon.js\")\nmodule.exports.LifebuoyIcon = require(\"./LifebuoyIcon.js\")\nmodule.exports.LightBulbIcon = require(\"./LightBulbIcon.js\")\nmodule.exports.LinkIcon = require(\"./LinkIcon.js\")\nmodule.exports.ListBulletIcon = require(\"./ListBulletIcon.js\")\nmodule.exports.LockClosedIcon = require(\"./LockClosedIcon.js\")\nmodule.exports.LockOpenIcon = require(\"./LockOpenIcon.js\")\nmodule.exports.MagnifyingGlassCircleIcon = require(\"./MagnifyingGlassCircleIcon.js\")\nmodule.exports.MagnifyingGlassMinusIcon = require(\"./MagnifyingGlassMinusIcon.js\")\nmodule.exports.MagnifyingGlassPlusIcon = require(\"./MagnifyingGlassPlusIcon.js\")\nmodule.exports.MagnifyingGlassIcon = require(\"./MagnifyingGlassIcon.js\")\nmodule.exports.MapPinIcon = require(\"./MapPinIcon.js\")\nmodule.exports.MapIcon = require(\"./MapIcon.js\")\nmodule.exports.MegaphoneIcon = require(\"./MegaphoneIcon.js\")\nmodule.exports.MicrophoneIcon = require(\"./MicrophoneIcon.js\")\nmodule.exports.MinusCircleIcon = require(\"./MinusCircleIcon.js\")\nmodule.exports.MinusSmallIcon = require(\"./MinusSmallIcon.js\")\nmodule.exports.MinusIcon = require(\"./MinusIcon.js\")\nmodule.exports.MoonIcon = require(\"./MoonIcon.js\")\nmodule.exports.MusicalNoteIcon = require(\"./MusicalNoteIcon.js\")\nmodule.exports.NewspaperIcon = require(\"./NewspaperIcon.js\")\nmodule.exports.NoSymbolIcon = require(\"./NoSymbolIcon.js\")\nmodule.exports.PaintBrushIcon = require(\"./PaintBrushIcon.js\")\nmodule.exports.PaperAirplaneIcon = require(\"./PaperAirplaneIcon.js\")\nmodule.exports.PaperClipIcon = require(\"./PaperClipIcon.js\")\nmodule.exports.PauseCircleIcon = require(\"./PauseCircleIcon.js\")\nmodule.exports.PauseIcon = require(\"./PauseIcon.js\")\nmodule.exports.PencilSquareIcon = require(\"./PencilSquareIcon.js\")\nmodule.exports.PencilIcon = require(\"./PencilIcon.js\")\nmodule.exports.PhoneArrowDownLeftIcon = require(\"./PhoneArrowDownLeftIcon.js\")\nmodule.exports.PhoneArrowUpRightIcon = require(\"./PhoneArrowUpRightIcon.js\")\nmodule.exports.PhoneXMarkIcon = require(\"./PhoneXMarkIcon.js\")\nmodule.exports.PhoneIcon = require(\"./PhoneIcon.js\")\nmodule.exports.PhotoIcon = require(\"./PhotoIcon.js\")\nmodule.exports.PlayCircleIcon = require(\"./PlayCircleIcon.js\")\nmodule.exports.PlayPauseIcon = require(\"./PlayPauseIcon.js\")\nmodule.exports.PlayIcon = require(\"./PlayIcon.js\")\nmodule.exports.PlusCircleIcon = require(\"./PlusCircleIcon.js\")\nmodule.exports.PlusSmallIcon = require(\"./PlusSmallIcon.js\")\nmodule.exports.PlusIcon = require(\"./PlusIcon.js\")\nmodule.exports.PowerIcon = require(\"./PowerIcon.js\")\nmodule.exports.PresentationChartBarIcon = require(\"./PresentationChartBarIcon.js\")\nmodule.exports.PresentationChartLineIcon = require(\"./PresentationChartLineIcon.js\")\nmodule.exports.PrinterIcon = require(\"./PrinterIcon.js\")\nmodule.exports.PuzzlePieceIcon = require(\"./PuzzlePieceIcon.js\")\nmodule.exports.QrCodeIcon = require(\"./QrCodeIcon.js\")\nmodule.exports.QuestionMarkCircleIcon = require(\"./QuestionMarkCircleIcon.js\")\nmodule.exports.QueueListIcon = require(\"./QueueListIcon.js\")\nmodule.exports.RadioIcon = require(\"./RadioIcon.js\")\nmodule.exports.ReceiptPercentIcon = require(\"./ReceiptPercentIcon.js\")\nmodule.exports.ReceiptRefundIcon = require(\"./ReceiptRefundIcon.js\")\nmodule.exports.RectangleGroupIcon = require(\"./RectangleGroupIcon.js\")\nmodule.exports.RectangleStackIcon = require(\"./RectangleStackIcon.js\")\nmodule.exports.RocketLaunchIcon = require(\"./RocketLaunchIcon.js\")\nmodule.exports.RssIcon = require(\"./RssIcon.js\")\nmodule.exports.ScaleIcon = require(\"./ScaleIcon.js\")\nmodule.exports.ScissorsIcon = require(\"./ScissorsIcon.js\")\nmodule.exports.ServerStackIcon = require(\"./ServerStackIcon.js\")\nmodule.exports.ServerIcon = require(\"./ServerIcon.js\")\nmodule.exports.ShareIcon = require(\"./ShareIcon.js\")\nmodule.exports.ShieldCheckIcon = require(\"./ShieldCheckIcon.js\")\nmodule.exports.ShieldExclamationIcon = require(\"./ShieldExclamationIcon.js\")\nmodule.exports.ShoppingBagIcon = require(\"./ShoppingBagIcon.js\")\nmodule.exports.ShoppingCartIcon = require(\"./ShoppingCartIcon.js\")\nmodule.exports.SignalSlashIcon = require(\"./SignalSlashIcon.js\")\nmodule.exports.SignalIcon = require(\"./SignalIcon.js\")\nmodule.exports.SparklesIcon = require(\"./SparklesIcon.js\")\nmodule.exports.SpeakerWaveIcon = require(\"./SpeakerWaveIcon.js\")\nmodule.exports.SpeakerXMarkIcon = require(\"./SpeakerXMarkIcon.js\")\nmodule.exports.Square2StackIcon = require(\"./Square2StackIcon.js\")\nmodule.exports.Square3Stack3DIcon = require(\"./Square3Stack3DIcon.js\")\nmodule.exports.Squares2X2Icon = require(\"./Squares2X2Icon.js\")\nmodule.exports.SquaresPlusIcon = require(\"./SquaresPlusIcon.js\")\nmodule.exports.StarIcon = require(\"./StarIcon.js\")\nmodule.exports.StopCircleIcon = require(\"./StopCircleIcon.js\")\nmodule.exports.StopIcon = require(\"./StopIcon.js\")\nmodule.exports.SunIcon = require(\"./SunIcon.js\")\nmodule.exports.SwatchIcon = require(\"./SwatchIcon.js\")\nmodule.exports.TableCellsIcon = require(\"./TableCellsIcon.js\")\nmodule.exports.TagIcon = require(\"./TagIcon.js\")\nmodule.exports.TicketIcon = require(\"./TicketIcon.js\")\nmodule.exports.TrashIcon = require(\"./TrashIcon.js\")\nmodule.exports.TrophyIcon = require(\"./TrophyIcon.js\")\nmodule.exports.TruckIcon = require(\"./TruckIcon.js\")\nmodule.exports.TvIcon = require(\"./TvIcon.js\")\nmodule.exports.UserCircleIcon = require(\"./UserCircleIcon.js\")\nmodule.exports.UserGroupIcon = require(\"./UserGroupIcon.js\")\nmodule.exports.UserMinusIcon = require(\"./UserMinusIcon.js\")\nmodule.exports.UserPlusIcon = require(\"./UserPlusIcon.js\")\nmodule.exports.UserIcon = require(\"./UserIcon.js\")\nmodule.exports.UsersIcon = require(\"./UsersIcon.js\")\nmodule.exports.VariableIcon = require(\"./VariableIcon.js\")\nmodule.exports.VideoCameraSlashIcon = require(\"./VideoCameraSlashIcon.js\")\nmodule.exports.VideoCameraIcon = require(\"./VideoCameraIcon.js\")\nmodule.exports.ViewColumnsIcon = require(\"./ViewColumnsIcon.js\")\nmodule.exports.ViewfinderCircleIcon = require(\"./ViewfinderCircleIcon.js\")\nmodule.exports.WalletIcon = require(\"./WalletIcon.js\")\nmodule.exports.WifiIcon = require(\"./WifiIcon.js\")\nmodule.exports.WindowIcon = require(\"./WindowIcon.js\")\nmodule.exports.WrenchScrewdriverIcon = require(\"./WrenchScrewdriverIcon.js\")\nmodule.exports.WrenchIcon = require(\"./WrenchIcon.js\")\nmodule.exports.XCircleIcon = require(\"./XCircleIcon.js\")\nmodule.exports.XMarkIcon = require(\"./XMarkIcon.js\")", "/*\n This file is part of GNU Anastasis\n (C) 2021-2022 Anastasis SARL\n\n GNU Anastasis is free software; you can redistribute it and/or modify it under the\n terms of the GNU Affero General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License along with\n GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Codec, codecForString } from \"@gnu-taler/taler-util\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport {\n ObservableMap,\n browserStorageMap,\n localStorageMap,\n memoryMap,\n} from \"../utils/observable.js\";\n\ndeclare const opaque_StorageKey: unique symbol;\n\nexport type StorageKey<Key> = {\n id: string;\n [opaque_StorageKey]: true;\n codec: Codec<Key>;\n};\n\nexport function buildStorageKey<Key>(\n name: string,\n codec: Codec<Key>,\n): StorageKey<Key>;\nexport function buildStorageKey(name: string): StorageKey<string>;\nexport function buildStorageKey<Key = string>(\n name: string,\n codec?: Codec<Key>,\n): StorageKey<Key> {\n return {\n id: name,\n codec: codec ?? (codecForString() as Codec<Key>),\n } as StorageKey<Key>;\n}\n\nexport interface StorageState<Type = string> {\n value?: Type;\n update: (s: Type) => void;\n reset: () => void;\n}\n\nconst supportLocalStorage = typeof window !== \"undefined\";\nconst supportBrowserStorage =\n typeof chrome !== \"undefined\" && typeof chrome.storage !== \"undefined\";\n\nconst storage: ObservableMap<string, string> = (function buildStorage() {\n if (supportBrowserStorage) {\n return browserStorageMap(memoryMap<string>());\n } else if (supportLocalStorage) {\n return localStorageMap();\n } else {\n return memoryMap<string>();\n }\n})();\n\n//with initial value\nexport function useLocalStorage<Type = string>(\n key: StorageKey<Type>,\n defaultValue: Type,\n): Required<StorageState<Type>>;\n//without initial value\nexport function useLocalStorage<Type = string>(\n key: StorageKey<Type>,\n): StorageState<Type>;\n// impl\nexport function useLocalStorage<Type = string>(\n key: StorageKey<Type>,\n defaultValue?: Type,\n): StorageState<Type> {\n function convert(updated: string | undefined): Type | undefined {\n if (updated === undefined) return defaultValue; //optional\n try {\n return key.codec.decode(JSON.parse(updated));\n } catch (e) {\n //decode error\n return defaultValue;\n }\n }\n const [storedValue, setStoredValue] = useState<Type | undefined>(\n (): Type | undefined => {\n const prev = storage.get(key.id);\n return convert(prev);\n },\n );\n\n useEffect(() => {\n return storage.onUpdate(key.id, () => {\n const newValue = storage.get(key.id);\n setStoredValue(convert(newValue));\n });\n }, [key.id]);\n\n const setValue = (value?: Type): void => {\n if (value === undefined) {\n storage.delete(key.id);\n } else {\n storage.set(\n key.id,\n key.codec ? JSON.stringify(value) : (value as string),\n );\n }\n };\n\n return {\n value: storedValue,\n update: setValue,\n reset: () => {\n setValue(defaultValue);\n },\n };\n}\n", "import { isArrayBufferView } from \"util/types\";\n\nexport type ObservableMap<K, V> = Map<K, V> & {\n onAnyUpdate: (callback: () => void) => () => void;\n onUpdate: (key: string, callback: () => void) => () => void;\n};\n\n//FIXME: allow different type for different properties\nexport function memoryMap<T>(\n backend: Map<string, T> = new Map<string, T>(),\n): ObservableMap<string, T> {\n const obs = new EventTarget();\n const theMemoryMap: ObservableMap<string, T> = {\n onAnyUpdate: (handler) => {\n obs.addEventListener(`update`, handler);\n obs.addEventListener(`clear`, handler);\n return () => {\n obs.removeEventListener(`update`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n onUpdate: (key, handler) => {\n obs.addEventListener(`update-${key}`, handler);\n obs.addEventListener(`clear`, handler);\n return () => {\n obs.removeEventListener(`update-${key}`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n delete: (key: string) => {\n const result = backend.delete(key);\n //@ts-ignore\n theMemoryMap.size = backend.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return result;\n },\n set: (key: string, value: T) => {\n backend.set(key, value);\n //@ts-ignore\n theMemoryMap.size = backend.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return theMemoryMap;\n },\n clear: () => {\n backend.clear();\n obs.dispatchEvent(new Event(`clear`));\n },\n entries: backend.entries.bind(backend),\n forEach: backend.forEach.bind(backend),\n get: backend.get.bind(backend),\n has: backend.has.bind(backend),\n keys: backend.keys.bind(backend),\n size: backend.size,\n values: backend.values.bind(backend),\n [Symbol.iterator]: backend[Symbol.iterator],\n [Symbol.toStringTag]: \"theMemoryMap\",\n };\n return theMemoryMap;\n}\n\n//FIXME: change this implementation to match the\n// browser storage. instead of creating a sync implementation\n// of observable map it should reuse the memoryMap and\n// sync the state with local storage\nexport function localStorageMap(): ObservableMap<string, string> {\n const obs = new EventTarget();\n const theLocalStorageMap: ObservableMap<string, string> = {\n onAnyUpdate: (handler) => {\n obs.addEventListener(`update`, handler);\n obs.addEventListener(`clear`, handler);\n window.addEventListener(\"storage\", handler);\n return () => {\n window.removeEventListener(\"storage\", handler);\n obs.removeEventListener(`update`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n onUpdate: (key, handler) => {\n obs.addEventListener(`update-${key}`, handler);\n obs.addEventListener(`clear`, handler);\n function handleStorageEvent(ev: StorageEvent) {\n if (ev.key === null || ev.key === key) {\n handler();\n }\n }\n window.addEventListener(\"storage\", handleStorageEvent);\n return () => {\n window.removeEventListener(\"storage\", handleStorageEvent);\n obs.removeEventListener(`update-${key}`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n delete: (key: string) => {\n const exists = localStorage.getItem(key) !== null;\n localStorage.removeItem(key);\n //@ts-ignore\n theLocalStorageMap.size = localStorage.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return exists;\n },\n set: (key: string, v: string) => {\n localStorage.setItem(key, v);\n //@ts-ignore\n theLocalStorageMap.size = localStorage.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return theLocalStorageMap;\n },\n clear: () => {\n localStorage.clear();\n obs.dispatchEvent(new Event(`clear`));\n },\n entries: (): IterableIterator<[string, string]> => {\n let index = 0;\n const total = localStorage.length;\n return {\n next() {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n const item = localStorage.getItem(key);\n if (item === null) {\n //the key exist, this should not happen\n throw Error(\"value cant be null\");\n }\n if (index == total) return { done: true, value: [key, item] };\n index = index + 1;\n return { done: false, value: [key, item] };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n },\n forEach: (cb) => {\n for (let index = 0; index < localStorage.length; index++) {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n const item = localStorage.getItem(key);\n if (item === null) {\n //the key exist, this should not happen\n throw Error(\"value cant be null\");\n }\n cb(key, item, theLocalStorageMap);\n }\n },\n get: (key: string) => {\n const item = localStorage.getItem(key);\n if (item === null) return undefined;\n return item;\n },\n has: (key: string) => {\n return localStorage.getItem(key) === null;\n },\n keys: () => {\n let index = 0;\n const total = localStorage.length;\n return {\n next() {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n if (index == total) return { done: true, value: key };\n index = index + 1;\n return { done: false, value: key };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n },\n size: localStorage.length,\n values: () => {\n let index = 0;\n const total = localStorage.length;\n return {\n next() {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n const item = localStorage.getItem(key);\n if (item === null) {\n //the key exist, this should not happen\n throw Error(\"value cant be null\");\n }\n if (index == total) return { done: true, value: item };\n index = index + 1;\n return { done: false, value: item };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n },\n [Symbol.iterator]: function (): IterableIterator<[string, string]> {\n return theLocalStorageMap.entries();\n },\n [Symbol.toStringTag]: \"theLocalStorageMap\",\n };\n return theLocalStorageMap;\n}\n\nconst isFirefox =\n typeof (window as any) !== \"undefined\" &&\n typeof (window as any)[\"InstallTrigger\"] !== \"undefined\";\n\nasync function getAllContent() {\n //Firefox and Chrome has different storage api\n if (isFirefox) {\n // @ts-ignore\n return browser.storage.local.get();\n } else {\n return chrome.storage.local.get();\n }\n}\n\nasync function updateContent(obj: Record<string, any>) {\n if (isFirefox) {\n // @ts-ignore\n return browser.storage.local.set(obj);\n } else {\n return chrome.storage.local.set(obj);\n }\n}\ntype Changes = { [key: string]: { oldValue?: any; newValue?: any } };\nfunction onBrowserStorageUpdate(cb: (changes: Changes) => void): void {\n if (isFirefox) {\n // @ts-ignore\n browser.storage.local.onChanged.addListener(cb);\n } else {\n chrome.storage.local.onChanged.addListener(cb);\n }\n}\n\nexport function browserStorageMap(\n backend: ObservableMap<string, string>,\n): ObservableMap<string, string> {\n getAllContent().then((content) => {\n Object.entries(content ?? {}).forEach(([k, v]) => {\n backend.set(k, v as string);\n });\n });\n\n backend.onAnyUpdate(async () => {\n const result: Record<string, string> = {};\n for (const [key, value] of backend.entries()) {\n result[key] = value;\n }\n await updateContent(result);\n });\n\n onBrowserStorageUpdate((changes) => {\n //another chrome instance made the change\n const changedItems = Object.keys(changes);\n if (changedItems.length === 0) {\n backend.clear();\n } else {\n for (const key of changedItems) {\n if (!changes[key].newValue) {\n backend.delete(key);\n } else {\n if (changes[key].newValue !== changes[key].oldValue) {\n backend.set(key, changes[key].newValue);\n }\n }\n }\n }\n });\n\n return backend;\n}\n", "/*\n This file is part of GNU Anastasis\n (C) 2021-2022 Anastasis SARL\n\n GNU Anastasis is free software; you can redistribute it and/or modify it under the\n terms of the GNU Affero General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License along with\n GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport {\n StorageState,\n buildStorageKey,\n useLocalStorage,\n} from \"./useLocalStorage.js\";\n\nfunction getBrowserLang(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n if (window.navigator.languages) return window.navigator.languages[0];\n if (window.navigator.language) return window.navigator.language;\n return undefined;\n}\n\nconst langPreferenceKey = buildStorageKey(\"lang-preference\");\n\nexport function useLang(initial?: string): Required<StorageState> {\n const defaultValue = (getBrowserLang() || initial || \"en\").substring(0, 2);\n return useLocalStorage(langPreferenceKey, defaultValue);\n}\n", "/*\n This file is part of GNU Anastasis\n (C) 2021-2022 Anastasis SARL\n\n GNU Anastasis is free software; you can redistribute it and/or modify it under the\n terms of the GNU Affero General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License along with\n GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useEffect, useState } from \"preact/hooks\";\nimport { ObservableMap, memoryMap } from \"../utils/observable.js\";\nimport { StorageKey, StorageState } from \"./useLocalStorage.js\";\n\nconst storage: ObservableMap<string, any> = memoryMap<any>();\n\n//with initial value\nexport function useMemoryStorage<Type = string>(\n key: string,\n defaultValue: Type,\n): Required<StorageState<Type>>;\n//with initial value\nexport function useMemoryStorage<Type = string>(\n key: string,\n): StorageState<Type>;\n// impl\nexport function useMemoryStorage<Type = string>(\n key: string,\n defaultValue?: Type,\n): StorageState<Type> {\n const [storedValue, setStoredValue] = useState<Type | undefined>(\n (): Type | undefined => {\n const prev = storage.get(key);\n return prev === undefined ? defaultValue : prev;\n },\n );\n\n useEffect(() => {\n return storage.onUpdate(key, () => {\n const newValue = storage.get(key);\n setStoredValue(newValue === undefined ? defaultValue : newValue);\n });\n }, [key]);\n\n const setValue = (value?: Type): void => {\n if (value === undefined) {\n storage.delete(key);\n } else {\n storage.set(key, value);\n }\n };\n\n return {\n value: storedValue,\n update: setValue,\n reset: () => {\n setValue(defaultValue);\n },\n };\n}\n", "import { TalerError, TalerErrorCode, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { memoryMap, useTranslationContext } from \"../index.browser.js\";\n\nexport type NotificationMessage = ErrorNotification | InfoNotification;\n\nexport interface ErrorNotification {\n type: \"error\";\n title: TranslatedString;\n description?: TranslatedString;\n debug?: any;\n}\nexport interface InfoNotification {\n type: \"info\";\n title: TranslatedString;\n}\n\nconst storage = memoryMap<Map<string, NotificationMessage>>();\nconst NOTIFICATION_KEY = \"notification\";\n\nexport function notify(notif: NotificationMessage): void {\n const currentState: Map<string, NotificationMessage> =\n storage.get(NOTIFICATION_KEY) ?? new Map();\n const newState = currentState.set(hash(notif), notif);\n storage.set(NOTIFICATION_KEY, newState);\n}\nexport function notifyError(\n title: TranslatedString,\n description: TranslatedString | undefined,\n debug?: any,\n) {\n notify({\n type: \"error\" as const,\n title,\n description,\n debug,\n });\n}\nexport function notifyException(\n title: TranslatedString,\n ex: Error,\n) {\n notify({\n type: \"error\" as const,\n title,\n description: ex.message as TranslatedString,\n debug: ex.stack,\n });\n}\nexport function notifyInfo(title: TranslatedString) {\n notify({\n type: \"info\" as const,\n title,\n });\n}\n\nexport type Notification = {\n message: NotificationMessage;\n remove: () => void;\n};\n\nexport function useNotifications(): Notification[] {\n const [value, setter] = useState<Map<string, NotificationMessage>>(new Map());\n useEffect(() => {\n return storage.onUpdate(NOTIFICATION_KEY, () => {\n const mem = storage.get(NOTIFICATION_KEY) ?? new Map();\n setter(structuredClone(mem));\n });\n });\n\n return Array.from(value.values()).map((message, idx) => {\n return {\n message,\n remove: () => {\n const mem = storage.get(NOTIFICATION_KEY) ?? new Map();\n const newState = new Map(mem);\n newState.delete(hash(message));\n storage.set(NOTIFICATION_KEY, newState);\n },\n };\n });\n}\n\nfunction hashCode(str: string): string {\n if (str.length === 0) return \"0\";\n let hash = 0;\n let chr;\n for (let i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash.toString(16);\n}\n\nfunction hash(msg: NotificationMessage): string {\n let str = (msg.type + \":\" + msg.title) as string;\n if (msg.type === \"error\") {\n if (msg.description) {\n str += \":\" + msg.description;\n }\n if (msg.debug) {\n str += \":\" + msg.debug;\n }\n }\n return hashCode(str);\n}\n\nexport function useLocalNotification(): [Notification | undefined, (n: NotificationMessage) => void, (cb: () => Promise<void>) => Promise<void>] {\n const {i18n} = useTranslationContext();\n\n const [value, setter] = useState<NotificationMessage>();\n const notif = !value ? undefined : {\n message: value,\n remove: () => {\n setter(undefined);\n },\n }\n\n async function errorHandling(cb: () => Promise<void>) {\n try {\n return await cb()\n } catch (error: unknown) {\n if (error instanceof TalerError) {\n notify(buildRequestErrorMessage(i18n, error))\n } else {\n notifyError(\n i18n.str`Operation failed, please report`,\n (error instanceof Error\n ? error.message\n : JSON.stringify(error)) as TranslatedString\n )\n }\n\n }\n }\n return [notif, setter, errorHandling]\n}\n\ntype Translator = ReturnType<typeof useTranslationContext>[\"i18n\"]\n\nfunction buildRequestErrorMessage( i18n: Translator, cause: TalerError): ErrorNotification {\n let result: ErrorNotification;\n switch (cause.errorDetail.code) {\n case TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT: {\n result = {\n type: \"error\",\n title: i18n.str`Request timeout`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED: {\n result = {\n type: \"error\",\n title: i18n.str`Request throttled`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE: {\n result = {\n type: \"error\",\n title: i18n.str`Malformed response`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_NETWORK_ERROR: {\n result = {\n type: \"error\",\n title: i18n.str`Network error`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR: {\n result = {\n type: \"error\",\n title: i18n.str`Unexpected request error`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n default: {\n result = {\n type: \"error\",\n title: i18n.str`Unexpected error`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n }\n return result;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\nimport { TalerErrorDetail } from \"@gnu-taler/taler-util\";\n// import { TalerError } from \"@gnu-taler/taler-wallet-core\";\nimport { useEffect, useMemo, useState } from \"preact/hooks\";\n\nexport interface HookOk<T> {\n hasError: false;\n response: T;\n}\n\nexport type HookError = HookGenericError | HookOperationalError;\n\nexport interface HookGenericError {\n hasError: true;\n operational: false;\n message: string;\n}\n\nexport interface HookOperationalError {\n hasError: true;\n operational: true;\n details: TalerErrorDetail;\n}\n\ninterface WithRetry {\n retry: () => void;\n}\n\nexport type HookResponse<T> = HookOk<T> | HookError | undefined;\nexport type HookResponseWithRetry<T> =\n | ((HookOk<T> | HookError) & WithRetry)\n | undefined;\n\nexport function useAsyncAsHook<T>(\n fn: () => Promise<T | false>,\n deps?: any[],\n): HookResponseWithRetry<T> {\n const [result, setHookResponse] = useState<HookResponse<T>>(undefined);\n\n const args = useMemo(\n () => ({\n fn,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }),\n deps || [],\n );\n\n async function doAsync(): Promise<void> {\n try {\n const response = await args.fn();\n if (response === false) return;\n setHookResponse({ hasError: false, response });\n } catch (e) {\n // if (e instanceof TalerError) {\n // setHookResponse({\n // hasError: true,\n // operational: true,\n // details: e.errorDetail,\n // });\n // } else\n if (e instanceof Error) {\n setHookResponse({\n hasError: true,\n operational: false,\n message: e.message,\n });\n }\n }\n }\n\n useEffect(() => {\n doAsync();\n }, [args]);\n\n if (!result) return undefined;\n return { ...result, retry: doAsync };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n\nexport function base64encode(str: string): string {\n return base64EncArr(strToUTF8Arr(str))\n}\n\nexport function base64decode(str: string): string {\n return UTF8ArrToStr(base64DecToArr(str))\n}\n\n// from https://developer.mozilla.org/en-US/docs/Glossary/Base64\n\n// Array of bytes to Base64 string decoding\nfunction b64ToUint6(nChr: number): number {\n return nChr > 64 && nChr < 91\n ? nChr - 65\n : nChr > 96 && nChr < 123\n ? nChr - 71\n : nChr > 47 && nChr < 58\n ? nChr + 4\n : nChr === 43\n ? 62\n : nChr === 47\n ? 63\n : 0;\n}\n\nfunction base64DecToArr(sBase64: string, nBlocksSize?: number): Uint8Array {\n const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, \"\"); // Only necessary if the base64 includes whitespace such as line breaks.\n const nInLen = sB64Enc.length;\n const nOutLen = nBlocksSize\n ? Math.ceil(((nInLen * 3 + 1) >> 2) / nBlocksSize) * nBlocksSize\n : (nInLen * 3 + 1) >> 2;\n const taBytes = new Uint8Array(nOutLen);\n\n let nMod3;\n let nMod4;\n let nUint24 = 0;\n let nOutIdx = 0;\n for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3;\n nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4));\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n nMod3 = 0;\n while (nMod3 < 3 && nOutIdx < nOutLen) {\n taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255;\n nMod3++;\n nOutIdx++;\n }\n nUint24 = 0;\n }\n }\n\n return taBytes;\n}\n\n/* Base64 string to array encoding */\nfunction uint6ToB64(nUint6: number): number {\n return nUint6 < 26\n ? nUint6 + 65\n : nUint6 < 52\n ? nUint6 + 71\n : nUint6 < 62\n ? nUint6 - 4\n : nUint6 === 62\n ? 43\n : nUint6 === 63\n ? 47\n : 65;\n}\n\nfunction base64EncArr(aBytes: Uint8Array): string {\n let nMod3 = 2;\n let sB64Enc = \"\";\n\n const nLen = aBytes.length;\n let nUint24 = 0;\n for (let nIdx = 0; nIdx < nLen; nIdx++) {\n nMod3 = nIdx % 3;\n // To break your base64 into several 80-character lines, add:\n // if (nIdx > 0 && ((nIdx * 4) / 3) % 76 === 0) {\n // sB64Enc += \"\\r\\n\";\n // }\n\n nUint24 |= aBytes[nIdx] << ((16 >>> nMod3) & 24);\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\n sB64Enc += String.fromCodePoint(\n uint6ToB64((nUint24 >>> 18) & 63),\n uint6ToB64((nUint24 >>> 12) & 63),\n uint6ToB64((nUint24 >>> 6) & 63),\n uint6ToB64(nUint24 & 63)\n );\n nUint24 = 0;\n }\n }\n return (\n sB64Enc.substring(0, sB64Enc.length - 2 + nMod3) +\n (nMod3 === 2 ? \"\" : nMod3 === 1 ? \"=\" : \"==\")\n );\n}\n\n/* UTF-8 array to JS string and vice versa */\n\nfunction UTF8ArrToStr(aBytes: Uint8Array): string {\n let sView = \"\";\n let nPart;\n const nLen = aBytes.length;\n for (let nIdx = 0; nIdx < nLen; nIdx++) {\n nPart = aBytes[nIdx];\n sView += String.fromCodePoint(\n nPart > 251 && nPart < 254 && nIdx + 5 < nLen /* six bytes */\n ? /* (nPart - 252 << 30) may be not so safe in ECMAScript! So\u2026: */\n (nPart - 252) * 1073741824 +\n ((aBytes[++nIdx] - 128) << 24) +\n ((aBytes[++nIdx] - 128) << 18) +\n ((aBytes[++nIdx] - 128) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen /* five bytes */\n ? ((nPart - 248) << 24) +\n ((aBytes[++nIdx] - 128) << 18) +\n ((aBytes[++nIdx] - 128) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen /* four bytes */\n ? ((nPart - 240) << 18) +\n ((aBytes[++nIdx] - 128) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen /* three bytes */\n ? ((nPart - 224) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen /* two bytes */\n ? ((nPart - 192) << 6) + aBytes[++nIdx] - 128\n : /* nPart < 127 ? */ /* one byte */\n nPart\n );\n }\n return sView;\n}\n\nfunction strToUTF8Arr(sDOMStr: string): Uint8Array {\n let nChr;\n const nStrLen = sDOMStr.length;\n let nArrLen = 0;\n\n /* mapping\u2026 */\n for (let nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\n nChr = sDOMStr.codePointAt(nMapIdx);\n if (nChr === undefined) {\n throw Error(`No char at ${nMapIdx} on string with length: ${sDOMStr.length}`)\n }\n\n if (nChr >= 0x10000) {\n nMapIdx++;\n }\n\n nArrLen +=\n nChr < 0x80\n ? 1\n : nChr < 0x800\n ? 2\n : nChr < 0x10000\n ? 3\n : nChr < 0x200000\n ? 4\n : nChr < 0x4000000\n ? 5\n : 6;\n }\n\n const aBytes = new Uint8Array(nArrLen);\n\n /* transcription\u2026 */\n let nIdx = 0;\n let nChrIdx = 0;\n while (nIdx < nArrLen) {\n nChr = sDOMStr.codePointAt(nChrIdx);\n if (nChr === undefined) {\n throw Error(`No char at ${nChrIdx} on string with length: ${sDOMStr.length}`)\n }\n if (nChr < 128) {\n /* one byte */\n aBytes[nIdx++] = nChr;\n } else if (nChr < 0x800) {\n /* two bytes */\n aBytes[nIdx++] = 192 + (nChr >>> 6);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x10000) {\n /* three bytes */\n aBytes[nIdx++] = 224 + (nChr >>> 12);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x200000) {\n /* four bytes */\n aBytes[nIdx++] = 240 + (nChr >>> 18);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n nChrIdx++;\n } else if (nChr < 0x4000000) {\n /* five bytes */\n aBytes[nIdx++] = 248 + (nChr >>> 24);\n aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n nChrIdx++;\n } /* if (nChr <= 0x7fffffff) */ else {\n /* six bytes */\n aBytes[nIdx++] = 252 + (nChr >>> 30);\n aBytes[nIdx++] = 128 + ((nChr >>> 24) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n nChrIdx++;\n }\n nChrIdx++;\n }\n\n return aBytes;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { HttpStatusCode } from \"@gnu-taler/taler-util\";\nimport { base64encode } from \"./base64.js\";\n\nexport enum ErrorType {\n CLIENT,\n SERVER,\n UNREADABLE,\n TIMEOUT,\n UNEXPECTED,\n}\n\n\n\n/**\n *\n * @param baseUrl URL where the service is located\n * @param endpoint endpoint of the service to be called\n * @param options auth, method and params\n * @returns\n */\nexport async function defaultRequestHandler<T>(\n baseUrl: string,\n endpoint: string,\n options: RequestOptions = {},\n): Promise<HttpResponseOk<T>> {\n const requestHeaders: Record<string, string> = {};\n if (options.token) {\n requestHeaders.Authorization = `Bearer ${options.token}`;\n } else if (options.basicAuth) {\n requestHeaders.Authorization = `Basic ${base64encode(\n `${options.basicAuth.username}:${options.basicAuth.password}`,\n )}`;\n }\n requestHeaders[\"Content-Type\"] =\n !options.contentType || options.contentType === \"json\" ? \"application/json\" : \"text/plain\";\n\n if (options.talerAmlOfficerSignature) {\n requestHeaders[\"Taler-AML-Officer-Signature\"] =\n options.talerAmlOfficerSignature;\n }\n\n const requestMethod = options?.method ?? \"GET\";\n const requestBody = options?.data;\n const requestTimeout = options?.timeout ?? 5 * 1000;\n const requestParams = options.params ?? {};\n const requestPreventCache = options.preventCache ?? false;\n const requestPreventCors = options.preventCors ?? false;\n\n const validURL = validateURL(baseUrl, endpoint);\n\n if (!validURL) {\n const error: HttpResponseUnexpectedError = {\n info: {\n url: `${baseUrl}${endpoint}`,\n payload: {},\n hasToken: !!options.token,\n status: 0,\n options,\n },\n type: ErrorType.UNEXPECTED,\n exception: undefined,\n loading: false,\n message: `invalid URL: \"${baseUrl}${endpoint}\"`,\n };\n throw new RequestError(error)\n }\n\n Object.entries(requestParams).forEach(([key, value]) => {\n validURL.searchParams.set(key, String(value));\n });\n\n let payload: BodyInit | undefined = undefined;\n if (requestBody != null) {\n if (typeof requestBody === \"string\") {\n payload = requestBody;\n } else if (requestBody instanceof ArrayBuffer) {\n payload = requestBody;\n } else if (ArrayBuffer.isView(requestBody)) {\n payload = requestBody;\n } else if (typeof requestBody === \"object\") {\n payload = JSON.stringify(requestBody);\n } else {\n const error: HttpResponseUnexpectedError = {\n info: {\n url: validURL.href,\n payload: {},\n hasToken: !!options.token,\n status: 0,\n options,\n },\n type: ErrorType.UNEXPECTED,\n exception: undefined,\n loading: false,\n message: `unsupported request body type: \"${typeof requestBody}\"`,\n };\n throw new RequestError(error)\n }\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => {\n controller.abort(\"HTTP_REQUEST_TIMEOUT\");\n }, requestTimeout);\n\n let response;\n try {\n response = await fetch(validURL.href, {\n headers: requestHeaders,\n method: requestMethod,\n credentials: \"omit\",\n mode: requestPreventCors ? \"no-cors\" : \"cors\",\n cache: requestPreventCache ? \"no-cache\" : \"default\",\n body: payload,\n signal: controller.signal,\n });\n } catch (ex) {\n const info: RequestInfo = {\n payload,\n url: validURL.href,\n hasToken: !!options.token,\n status: 0,\n options,\n };\n\n if (ex instanceof Error) {\n if (ex.message === \"HTTP_REQUEST_TIMEOUT\") {\n const error: HttpRequestTimeoutError = {\n info,\n type: ErrorType.TIMEOUT,\n message: \"request timeout\",\n };\n throw new RequestError(error);\n }\n }\n\n const error: HttpResponseUnexpectedError = {\n info,\n type: ErrorType.UNEXPECTED,\n exception: ex,\n loading: false,\n message: (ex instanceof Error ? ex.message : \"\"),\n };\n throw new RequestError(error);\n }\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n const headerMap = new Headers();\n response.headers.forEach((value, key) => {\n headerMap.set(key, value);\n });\n\n if (response.ok) {\n const result = await buildRequestOk<T>(\n response,\n validURL.href,\n payload,\n !!options.token,\n options,\n );\n return result;\n } else {\n const dataTxt = await response.text();\n const error = buildRequestFailed(\n validURL.href,\n dataTxt,\n response.status,\n payload,\n options,\n );\n throw new RequestError(error);\n }\n}\n\nexport type HttpResponse<T, ErrorDetail> =\n | HttpResponseOk<T>\n | HttpResponseLoading<T>\n | HttpError<ErrorDetail>;\n\nexport type HttpResponsePaginated<T, ErrorDetail> =\n | HttpResponseOkPaginated<T>\n | HttpResponseLoading<T>\n | HttpError<ErrorDetail>;\n\nexport interface RequestInfo {\n url: string;\n hasToken: boolean;\n payload: any;\n status: number;\n options: RequestOptions;\n}\n\ninterface HttpResponseLoading<T> {\n ok?: false;\n loading: true;\n clientError?: false;\n serverError?: false;\n\n data?: T;\n}\nexport interface HttpResponseOk<T> {\n ok: true;\n loading?: false;\n clientError?: false;\n serverError?: false;\n\n data: T;\n info?: RequestInfo;\n}\n\nexport type HttpResponseOkPaginated<T> = HttpResponseOk<T> & WithPagination;\n\nexport interface WithPagination {\n loadMore: () => void;\n loadMorePrev: () => void;\n isReachingEnd?: boolean;\n isReachingStart?: boolean;\n}\n\nexport type HttpError<ErrorDetail> =\n | HttpRequestTimeoutError\n | HttpResponseClientError<ErrorDetail>\n | HttpResponseServerError<ErrorDetail>\n | HttpResponseUnreadableError\n | HttpResponseUnexpectedError;\n\nexport interface HttpResponseServerError<ErrorDetail> {\n ok?: false;\n loading?: false;\n type: ErrorType.SERVER;\n payload: ErrorDetail;\n status: HttpStatusCode;\n message: string;\n info: RequestInfo;\n}\ninterface HttpRequestTimeoutError {\n ok?: false;\n loading?: false;\n type: ErrorType.TIMEOUT;\n\n info: RequestInfo;\n\n message: string;\n}\ninterface HttpResponseClientError<ErrorDetail> {\n ok?: false;\n loading?: false;\n type: ErrorType.CLIENT;\n\n info: RequestInfo;\n status: HttpStatusCode;\n payload: ErrorDetail;\n message: string;\n}\n\ninterface HttpResponseUnexpectedError {\n ok?: false;\n loading: false;\n type: ErrorType.UNEXPECTED;\n\n info: RequestInfo;\n status?: HttpStatusCode;\n exception: unknown;\n message: string;\n}\n\ninterface HttpResponseUnreadableError {\n ok?: false;\n loading: false;\n type: ErrorType.UNREADABLE;\n\n info: RequestInfo;\n status: HttpStatusCode;\n exception: unknown;\n body: string;\n message: string;\n}\nexport class RequestError<ErrorDetail> extends Error {\n /**\n * @deprecated use cause\n */\n info: HttpError<ErrorDetail>;\n cause: HttpError<ErrorDetail>;\n constructor(d: HttpError<ErrorDetail>) {\n super(d.message);\n this.info = d;\n this.cause = d;\n }\n}\n\ntype Methods = \"GET\" | \"POST\" | \"PATCH\" | \"DELETE\" | \"PUT\";\n\nexport interface RequestOptions {\n method?: Methods;\n token?: string;\n basicAuth?: {\n username: string;\n password: string;\n };\n preventCache?: boolean;\n preventCors?: boolean;\n data?: any;\n params?: unknown;\n timeout?: number;\n contentType?: \"text\" | \"json\";\n talerAmlOfficerSignature?: string;\n}\n\nasync function buildRequestOk<T>(\n response: Response,\n url: string,\n payload: any,\n hasToken: boolean,\n options: RequestOptions,\n): Promise<HttpResponseOk<T>> {\n const dataTxt = await response.text();\n const data = dataTxt ? JSON.parse(dataTxt) : undefined;\n return {\n ok: true,\n data,\n info: {\n payload,\n url,\n hasToken,\n options,\n status: response.status,\n },\n };\n}\n\nexport function buildRequestFailed<ErrorDetail>(\n url: string,\n dataTxt: string,\n status: number,\n payload: any,\n maybeOptions?: RequestOptions,\n):\n | HttpResponseClientError<ErrorDetail>\n | HttpResponseServerError<ErrorDetail>\n | HttpResponseUnreadableError\n | HttpResponseUnexpectedError {\n const options = maybeOptions ?? {};\n const info: RequestInfo = {\n payload,\n url,\n hasToken: !!options.token,\n options,\n status: status || 0,\n };\n\n // const dataTxt = await response.text();\n try {\n const data = dataTxt ? JSON.parse(dataTxt) : undefined;\n const errorCode = !data || !data.code ? \"\" : `(code: ${data.code})`;\n const errorHint =\n !data || !data.hint ? \"Not hint.\" : `${data.hint} ${errorCode}`;\n\n if (status && status >= 400 && status < 500) {\n const message =\n data === undefined\n ? `Client error (${status}) without data.`\n : errorHint;\n\n const error: HttpResponseClientError<ErrorDetail> = {\n type: ErrorType.CLIENT,\n status,\n info,\n message,\n payload: data,\n };\n return error;\n }\n if (status && status >= 500 && status < 600) {\n const message =\n data === undefined\n ? `Server error (${status}) without data.`\n : errorHint;\n const error: HttpResponseServerError<ErrorDetail> = {\n type: ErrorType.SERVER,\n status,\n info,\n message,\n payload: data,\n };\n return error;\n }\n return {\n info,\n loading: false,\n type: ErrorType.UNEXPECTED,\n status,\n exception: undefined,\n message: `http status code not handled: ${status}`,\n };\n } catch (ex) {\n const error: HttpResponseUnreadableError = {\n info,\n loading: false,\n status,\n type: ErrorType.UNREADABLE,\n exception: ex,\n body: dataTxt,\n message: \"Could not parse body as json\",\n };\n\n return error;\n }\n}\n\nfunction validateURL(baseUrl: string, endpoint: string): URL | undefined {\n try {\n return new URL(`${baseUrl}${endpoint}`)\n } catch (ex) {\n return undefined\n }\n\n}", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Imports.\n */\nimport {\n Logger,\n RequestThrottler,\n TalerErrorCode,\n TalerError,\n Duration,\n} from \"@gnu-taler/taler-util\";\n\nimport {\n HttpRequestLibrary,\n HttpRequestOptions,\n HttpResponse,\n Headers,\n getDefaultHeaders,\n encodeBody,\n DEFAULT_REQUEST_TIMEOUT_MS,\n} from \"@gnu-taler/taler-util/http\";\n\nconst logger = new Logger(\"browserHttpLib\");\n\n/**\n * An implementation of the [[HttpRequestLibrary]] using the\n * browser's XMLHttpRequest.\n */\nexport class BrowserHttpLib implements HttpRequestLibrary {\n private throttle = new RequestThrottler();\n private throttlingEnabled = true;\n\n fetch(\n requestUrl: string,\n options?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n const requestMethod = options?.method ?? \"GET\";\n const requestBody = options?.body;\n const requestHeader = options?.headers;\n const requestTimeout =\n options?.timeout ?? Duration.fromMilliseconds(DEFAULT_REQUEST_TIMEOUT_MS);\n\n if (this.throttlingEnabled && this.throttle.applyThrottle(requestUrl)) {\n const parsedUrl = new URL(requestUrl);\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED,\n {\n requestMethod,\n requestUrl,\n throttleStats: this.throttle.getThrottleStats(requestUrl),\n },\n `request to origin ${parsedUrl.origin} was throttled`,\n );\n }\n\n let myBody: ArrayBuffer | undefined =\n requestMethod === \"POST\" || requestMethod === \"PUT\" || requestMethod === \"PATCH\"\n ? encodeBody(requestBody)\n : undefined;\n\n const requestHeadersMap = {\n ...getDefaultHeaders(requestMethod),\n ...requestHeader,\n };\n\n return new Promise<HttpResponse>((resolve, reject) => {\n const myRequest = new XMLHttpRequest();\n\n myRequest.onerror = (e) => {\n logger.error(\"http request error\");\n reject(\n TalerError.fromDetail(\n TalerErrorCode.WALLET_NETWORK_ERROR,\n {\n requestUrl,\n requestMethod,\n },\n \"Could not make request\",\n ),\n );\n };\n\n myRequest.open(requestMethod, requestUrl);\n\n let timeoutId: any | undefined;\n if (requestTimeout.d_ms !== \"forever\") {\n timeoutId = setTimeout(() => {\n myRequest.abort();\n reject(\n TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT,\n {\n requestUrl,\n requestMethod,\n timeoutMs: requestTimeout.d_ms === \"forever\" ? 0 : requestTimeout.d_ms\n },\n `request to ${requestUrl} timed out`,\n ),\n );\n }, requestTimeout.d_ms);\n }\n\n Object.keys(requestHeadersMap).forEach((headerName) => {\n myRequest.setRequestHeader(headerName, requestHeadersMap[headerName]);\n });\n\n myRequest.responseType = \"arraybuffer\";\n myRequest.send(myBody);\n\n myRequest.addEventListener(\"readystatechange\", (e) => {\n if (myRequest.readyState === XMLHttpRequest.DONE) {\n if (myRequest.status === 0) {\n const exc = TalerError.fromDetail(\n TalerErrorCode.WALLET_NETWORK_ERROR,\n {\n requestUrl,\n requestMethod,\n },\n \"HTTP request failed (status 0, maybe URI scheme was wrong?)\",\n );\n reject(exc);\n return;\n }\n const makeText = async (): Promise<string> => {\n const td = new TextDecoder();\n return td.decode(myRequest.response);\n };\n const makeJson = async (): Promise<any> => {\n let responseJson;\n try {\n const td = new TextDecoder();\n const responseString = td.decode(myRequest.response);\n responseJson = JSON.parse(responseString);\n } catch (e) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: myRequest.status,\n },\n \"Invalid JSON from HTTP response\",\n );\n }\n if (responseJson === null || typeof responseJson !== \"object\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: myRequest.status,\n },\n \"Invalid JSON from HTTP response\",\n );\n }\n return responseJson;\n };\n\n const headers = myRequest.getAllResponseHeaders();\n const arr = headers.trim().split(/[\\r\\n]+/);\n\n // Create a map of header names to values\n const headerMap: Headers = new Headers();\n arr.forEach(function (line) {\n const parts = line.split(\": \");\n const headerName = parts.shift();\n if (!headerName) {\n logger.warn(\"skipping invalid header\");\n return;\n }\n const value = parts.join(\": \");\n headerMap.set(headerName, value);\n });\n const resp: HttpResponse = {\n requestUrl: requestUrl,\n status: myRequest.status,\n headers: headerMap,\n requestMethod: requestMethod,\n json: makeJson,\n text: makeText,\n bytes: async () => myRequest.response,\n };\n resolve(resp);\n }\n });\n });\n }\n\n get(url: string, opt?: HttpRequestOptions): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"GET\",\n ...opt,\n });\n }\n\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n ...opt,\n });\n }\n\n stop(): void {\n // Nothing to do\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Imports.\n */\nimport {\n RequestThrottler,\n TalerErrorCode,\n TalerError,\n Duration,\n} from \"@gnu-taler/taler-util\";\n\nimport {\n DEFAULT_REQUEST_TIMEOUT_MS,\n Headers,\n HttpRequestLibrary,\n HttpRequestOptions,\n HttpResponse,\n encodeBody,\n getDefaultHeaders,\n} from \"@gnu-taler/taler-util/http\";\n\n/**\n * An implementation of the [[HttpRequestLibrary]] using the\n * browser's XMLHttpRequest.\n */\nexport class ServiceWorkerHttpLib implements HttpRequestLibrary {\n private throttle = new RequestThrottler();\n private throttlingEnabled = true;\n\n async fetch(\n requestUrl: string,\n options?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n const requestMethod = options?.method ?? \"GET\";\n const requestBody = options?.body;\n const requestHeader = options?.headers;\n const requestTimeout =\n options?.timeout ?? Duration.fromMilliseconds(DEFAULT_REQUEST_TIMEOUT_MS);\n\n if (this.throttlingEnabled && this.throttle.applyThrottle(requestUrl)) {\n const parsedUrl = new URL(requestUrl);\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED,\n {\n requestMethod,\n requestUrl,\n throttleStats: this.throttle.getThrottleStats(requestUrl),\n },\n `request to origin ${parsedUrl.origin} was throttled`,\n );\n }\n\n let myBody: ArrayBuffer | undefined =\n requestMethod === \"POST\" ? encodeBody(requestBody) : undefined;\n\n const requestHeadersMap = {\n ...getDefaultHeaders(requestMethod),\n ...requestHeader,\n };\n\n const controller = new AbortController();\n let timeoutId: any | undefined;\n if (requestTimeout.d_ms !== \"forever\") {\n timeoutId = setTimeout(() => {\n controller.abort(TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT);\n }, requestTimeout.d_ms);\n }\n\n try {\n const response = await fetch(requestUrl, {\n headers: requestHeadersMap,\n body: myBody,\n method: requestMethod,\n signal: controller.signal,\n });\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n const headerMap = new Headers();\n response.headers.forEach((value, key) => {\n headerMap.set(key, value);\n });\n return {\n headers: headerMap,\n status: response.status,\n requestMethod,\n requestUrl,\n json: makeJsonHandler(response, requestUrl, requestMethod),\n text: makeTextHandler(response, requestUrl, requestMethod),\n bytes: async () => (await response.blob()).arrayBuffer(),\n };\n } catch (e) {\n if (controller.signal) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT,\n {\n requestUrl,\n requestMethod,\n timeoutMs: requestTimeout.d_ms === \"forever\" ? 0 : requestTimeout.d_ms\n },\n `request to ${requestUrl} timed out`,\n );\n }\n throw e;\n }\n }\n\n get(url: string, opt?: HttpRequestOptions): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"GET\",\n ...opt,\n });\n }\n\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n ...opt,\n });\n }\n\n stop(): void {\n // Nothing to do\n }\n}\n\nfunction makeTextHandler(\n response: Response,\n requestUrl: string,\n requestMethod: string,\n) {\n return async function getTextFromResponse(): Promise<any> {\n let respText;\n try {\n respText = await response.text();\n } catch (e) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: response.status,\n },\n \"Invalid text from HTTP response\",\n );\n }\n return respText;\n };\n}\n\nfunction makeJsonHandler(\n response: Response,\n requestUrl: string,\n requestMethod: string,\n) {\n return async function getJsonFromResponse(): Promise<any> {\n let responseJson;\n try {\n responseJson = await response.json();\n } catch (e) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: response.status,\n },\n \"Invalid JSON from HTTP response\",\n );\n }\n if (responseJson === null || typeof responseJson !== \"object\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: response.status,\n },\n \"Invalid JSON from HTTP response\",\n );\n }\n return responseJson;\n };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { TalerBankIntegrationHttpClient, TalerCoreBankHttpClient, TalerRevenueHttpClient, TalerWireGatewayHttpClient } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, createContext, h, VNode } from \"preact\";\nimport { useContext } from \"preact/hooks\";\nimport { defaultRequestHandler } from \"../utils/request.js\";\n\ninterface Type {\n request: typeof defaultRequestHandler;\n bankCore: TalerCoreBankHttpClient,\n bankIntegration: TalerBankIntegrationHttpClient,\n bankWire: TalerWireGatewayHttpClient,\n bankRevenue: TalerRevenueHttpClient,\n}\n\nconst Context = createContext<Type>({request: defaultRequestHandler} as any);\n\nexport const useApiContext = (): Type => useContext(Context);\nexport const ApiContextProvider = ({\n children,\n value,\n}: {\n value: Type;\n children: ComponentChildren;\n}): VNode => {\n return h(Context.Provider, { value, children });\n};\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { i18n, setupI18n } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, createContext, h, VNode } from \"preact\";\nimport { useContext, useEffect } from \"preact/hooks\";\nimport { useLang } from \"../hooks/index.js\";\n\nexport type InternationalizationAPI = typeof i18n;\n\ninterface Type {\n lang: string;\n supportedLang: { [id in keyof typeof supportedLang]: string };\n changeLanguage: (l: string) => void;\n i18n: InternationalizationAPI;\n}\n\nconst supportedLang = {\n es: \"Espanol [es]\",\n en: \"English [en]\",\n fr: \"Francais [fr]\",\n de: \"Deutsch [de]\",\n sv: \"Svenska [sv]\",\n it: \"Italiane [it]\",\n navigator: \"Defined by navigator\",\n};\n\nconst initial = {\n lang: \"en\",\n supportedLang,\n changeLanguage: () => {\n // do not change anything\n },\n i18n,\n};\nconst Context = createContext<Type>(initial);\n\ninterface Props {\n initial?: string;\n children: ComponentChildren;\n forceLang?: string;\n source: Record<string, any>;\n}\n\n// Outmost UI wrapper.\nexport const TranslationProvider = ({\n initial,\n children,\n forceLang,\n source,\n}: Props): VNode => {\n const { value: lang, update: changeLanguage } = useLang(initial);\n useEffect(() => {\n if (forceLang) {\n changeLanguage(forceLang);\n }\n });\n useEffect(() => {\n setupI18n(lang, source);\n }, [lang]);\n if (forceLang) {\n setupI18n(forceLang, source);\n } else {\n setupI18n(lang, source);\n }\n\n return h(Context.Provider, {\n value: { lang, changeLanguage, supportedLang, i18n },\n children,\n });\n};\n\nexport const useTranslationContext = (): Type => useContext(Context);\n", "import { createElement, VNode } from \"preact\";\n\nexport type StateFunc<S> = (p: S) => VNode;\n\nexport type StateViewMap<StateType extends { status: string }> = {\n [S in StateType as S[\"status\"]]: StateFunc<S>;\n};\n\nexport type RecursiveState<S extends object> = S | (() => RecursiveState<S>);\n\nexport function compose<SType extends { status: string }, PType>(\n hook: (p: PType) => RecursiveState<SType>,\n viewMap: StateViewMap<SType>,\n): (p: PType) => VNode {\n function withHook(stateHook: () => RecursiveState<SType>): () => VNode {\n function ComposedComponent(): VNode {\n const state = stateHook();\n\n if (typeof state === \"function\") {\n const subComponent = withHook(state);\n return createElement(subComponent, {});\n }\n\n const statusName = state.status as unknown as SType[\"status\"];\n const viewComponent = viewMap[statusName] as unknown as StateFunc<SType>;\n return createElement(viewComponent, state);\n }\n\n return ComposedComponent;\n }\n\n return (p: PType) => {\n const h = withHook(() => hook(p));\n return h();\n };\n}\n\n/**\n *\n * @param obj VNode\n * @returns\n */\nexport function saveVNodeForInspection<T>(obj: T): T {\n // @ts-ignore\n window[\"showVNodeInfo\"] = function showVNodeInfo() {\n inspect(obj);\n };\n return obj;\n}\nfunction inspect(obj: any) {\n if (!obj) return;\n if (obj.__c && obj.__c.__H) {\n const componentName = obj.__c.constructor.name;\n const hookState = obj.__c.__H;\n const stateList = hookState.__ as Array<any>;\n console.log(\"==============\", componentName);\n stateList.forEach((hook) => {\n const { __: value, c: context, __h: factory, __H: args } = hook;\n if (typeof context !== \"undefined\") {\n const { __c: contextId } = context;\n console.log(\"context:\", contextId, hook);\n } else if (typeof factory === \"function\") {\n console.log(\"memo:\", value, \"deps:\", args);\n } else if (typeof value === \"function\") {\n const effectName = value.name;\n console.log(\"effect:\", effectName, \"deps:\", args);\n } else if (typeof value.current !== \"undefined\") {\n const ref = value.current;\n console.log(\"ref:\", ref instanceof Element ? ref.outerHTML : ref);\n } else if (value instanceof Array) {\n console.log(\"state:\", value[0]);\n } else {\n console.log(hook);\n }\n });\n }\n const children = obj.__k;\n if (children instanceof Array) {\n children.forEach((e) => inspect(e));\n } else {\n inspect(children);\n }\n}\n", "import { TranslatedString, assertUnreachable } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\n\ninterface Props {\n type?: \"info\" | \"success\" | \"warning\" | \"danger\",\n onClose?: () => void,\n title: TranslatedString,\n children?: ComponentChildren,\n}\nexport function Attention({ type = \"info\", title, children, onClose }: Props): VNode {\n return <div class={`group attention-${type} mt-2 shadow-lg`}>\n <div class=\"rounded-md group-[.attention-info]:bg-blue-50 group-[.attention-warning]:bg-yellow-50 group-[.attention-danger]:bg-red-50 group-[.attention-success]:bg-green-50 p-4 shadow\">\n <div class=\"flex\">\n <div >\n <svg xmlns=\"http://www.w3.org/2000/svg\" stroke=\"none\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-8 h-8 group-[.attention-info]:text-blue-400 group-[.attention-warning]:text-yellow-400 group-[.attention-danger]:text-red-400 group-[.attention-success]:text-green-400\">\n {(() => {\n switch (type) {\n case \"info\":\n return <path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\" />\n case \"warning\":\n return <path fill-rule=\"evenodd\" d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\" />\n case \"danger\":\n return <path fill-rule=\"evenodd\" d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\" />\n case \"success\":\n return <path fill-rule=\"evenodd\" d=\"M7.493 18.75c-.425 0-.82-.236-.975-.632A7.48 7.48 0 016 15.375c0-1.75.599-3.358 1.602-4.634.151-.192.373-.309.6-.397.473-.183.89-.514 1.212-.924a9.042 9.042 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75 2.25 2.25 0 012.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H14.23c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23h-.777zM2.331 10.977a11.969 11.969 0 00-.831 4.398 12 12 0 00.52 3.507c.26.85 1.084 1.368 1.973 1.368H4.9c.445 0 .72-.498.523-.898a8.963 8.963 0 01-.924-3.977c0-1.708.476-3.305 1.302-4.666.245-.403-.028-.959-.5-.959H4.25c-.832 0-1.612.453-1.918 1.227z\" />\n default:\n assertUnreachable(type)\n }\n })()}\n </svg>\n </div>\n <div class=\"ml-3 w-full\">\n <h3 class=\"text-sm group-hover:text-white font-bold group-[.attention-info]:text-blue-800 group-[.attention-success]:text-green-800 group-[.attention-warning]:text-yellow-800 group-[.attention-danger]:text-red-800\">\n {title}\n </h3>\n <div class=\"mt-2 text-sm group-[.attention-info]:text-blue-700 group-[.attention-warning]:text-yellow-700 group-[.attention-danger]:text-red-700 group-[.attention-success]:text-green-700\">\n {children}\n </div>\n </div>\n {onClose &&\n <div>\n <button type=\"button\" class=\"font-semibold items-center rounded bg-transparent px-2 py-1 text-xs text-gray-900 hover:bg-gray-50\"\n onClick={(e) => {\n e.preventDefault();\n onClose();\n }}\n >\n <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\n </svg>\n </button>\n </div>\n }\n </div>\n </div>\n\n </div>\n}\n", "import { h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\n\nexport function CopyIcon(): VNode {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75\" />\n </svg>\n )\n};\n\nexport function CopiedIcon(): VNode {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\" />\n </svg>\n )\n};\n\nexport function CopyButton({ class: clazz, getContent }: { class: string, getContent: () => string }): VNode {\n const [copied, setCopied] = useState(false);\n function copyText(): void {\n navigator.clipboard.writeText(getContent() || \"\");\n setCopied(true);\n }\n useEffect(() => {\n if (copied) {\n setTimeout(() => {\n setCopied(false);\n }, 1000);\n }\n }, [copied]);\n\n if (!copied) {\n return (\n <button class={clazz} onClick={copyText} >\n <CopyIcon />\n </button>\n );\n }\n return (\n <button class={clazz} disabled>\n <CopiedIcon />\n </button>\n );\n}\n", "/*\n/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { TalerError, TalerErrorCode, assertUnreachable } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { Attention } from \"./Attention.js\";\nimport { useTranslationContext } from \"../index.browser.js\";\n\nexport function ErrorLoading({ error, showDetail }: { error: TalerError, showDetail?: boolean }): VNode {\n const { i18n } = useTranslationContext()\n switch (error.errorDetail.code) {\n //////////////////\n // Every error that can be produce in a Http Request\n //////////////////\n case TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT)) {\n const { requestMethod, requestUrl, timeoutMs } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`The request reached a timeout, check your connection.`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, timeoutMs }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED)) {\n const { requestMethod, requestUrl, throttleStats } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`A lot of request were made to the same server and this action was throttled`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, throttleStats }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE)) {\n const { requestMethod, requestUrl, httpStatusCode, validationError } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`The response of the request is malformed.`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, httpStatusCode, validationError }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_NETWORK_ERROR: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_NETWORK_ERROR)) {\n const { requestMethod, requestUrl } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`Could not complete the request due to a network problem.`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR)) {\n const { requestMethod, requestUrl, httpStatusCode, errorResponse } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`Unexpected request error`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, httpStatusCode, errorResponse }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n //////////////////\n // Every other error \n //////////////////\n // case TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR: {\n // return <Attention type=\"danger\" title={i18n.str``}>\n // </Attention>\n // }\n //////////////////\n // Default message for unhandled case\n //////////////////\n default: return <Attention type=\"danger\" title={i18n.str`Unexpected error`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify(error.errorDetail, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n}\n\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Fragment, h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\n// import { strings as messages } from \"../i18n/strings.js\";\nimport langIcon from \"../assets/lang.svg\";\nimport { useTranslationContext } from \"../index.browser.js\";\n\ntype LangsNames = {\n [P: string]: string;\n};\n\nconst names: LangsNames = {\n es: \"Espa\u00F1ol [es]\",\n en: \"English [en]\",\n fr: \"Fran\u00E7ais [fr]\",\n de: \"Deutsch [de]\",\n sv: \"Svenska [sv]\",\n it: \"Italiano [it]\",\n};\n\nfunction getLangName(s: keyof LangsNames | string): string {\n if (names[s]) return names[s];\n return String(s);\n}\n\nexport function LangSelector({ supportedLangs }: { supportedLangs: string[] }): VNode {\n const [updatingLang, setUpdatingLang] = useState(false);\n const { lang, changeLanguage } = useTranslationContext();\n const [hidden, setHidden] = useState(true);\n\n useEffect(() => {\n function bodyKeyPress(event: KeyboardEvent) {\n if (event.code === \"Escape\") setHidden(true);\n }\n function bodyOnClick(event: Event) {\n setHidden(true);\n }\n document.body.addEventListener(\"click\", bodyOnClick);\n document.body.addEventListener(\"keydown\", bodyKeyPress as any);\n return () => {\n document.body.removeEventListener(\"keydown\", bodyKeyPress as any);\n document.body.removeEventListener(\"click\", bodyOnClick);\n };\n }, []);\n return (\n <div>\n <div class=\"relative mt-2\">\n <button type=\"button\" class=\"relative w-full cursor-default rounded-md bg-white py-1.5 pl-3 pr-10 text-left text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-600 sm:text-sm sm:leading-6\" aria-haspopup=\"listbox\" aria-expanded=\"true\" aria-labelledby=\"listbox-label\"\n onClick={() => {\n setHidden((h) => !h);\n }}>\n <span class=\"flex items-center\">\n <img alt=\"language\" class=\"h-5 w-5 flex-shrink-0 rounded-full\" src={langIcon} />\n <span class=\"ml-3 block truncate\">{getLangName(lang)}</span>\n </span>\n <span class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2\">\n <svg class=\"h-5 w-5 text-gray-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n </button>\n\n {!hidden &&\n <ul class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\" tabIndex={-1} role=\"listbox\" aria-labelledby=\"listbox-label\" aria-activedescendant=\"listbox-option-3\">\n {supportedLangs\n .filter((l) => l !== lang)\n .map((lang) => (\n <li class=\"text-gray-900 hover:bg-indigo-600 hover:text-white cursor-pointer relative select-none py-2 pl-3 pr-9\" role=\"option\"\n onClick={() => {\n changeLanguage(lang);\n setUpdatingLang(false);\n setHidden(true)\n }}\n >\n <span class=\"font-normal block truncate\">{getLangName(lang)}</span>\n\n <span class=\"text-indigo-600 absolute inset-y-0 right-0 flex items-center pr-4\">\n {/* <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\" clip-rule=\"evenodd\" />\n </svg> */}\n </span>\n </li>\n ))}\n\n </ul>\n }\n\n </div>\n </div>\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { h, VNode } from \"preact\";\n\nexport function Loading(): VNode {\n return (\n <div\n class=\"columns is-centered is-vcentered\"\n style={{\n width: \"100%\",\n height: \"200px\",\n display: \"flex\",\n margin: \"auto\",\n justifyContent: \"center\",\n }}\n >\n <Spinner />\n </div>\n );\n}\n\nfunction Spinner(): VNode {\n return (\n <div class=\"lds-ring\" style={{ margin: \"auto\" }}>\n <div />\n <div />\n <div />\n <div />\n </div>\n );\n}\n", "import { useState } from \"preact/hooks\";\nimport { LangSelector, useTranslationContext } from \"../index.browser.js\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\nimport logo from \"../assets/logo-2021.svg\";\n\nexport function Header({ title, iconLinkURL, sites, supportedLangs, onLogout, children }: { title: string, iconLinkURL: string, children?: ComponentChildren, onLogout: (() => void) | undefined, sites: [string, string][], supportedLangs: string[] }): VNode {\n const { i18n } = useTranslationContext();\n const [open, setOpen] = useState(false)\n return <Fragment>\n <header class=\"bg-indigo-600 w-full mx-auto px-2 border-b border-opacity-25 border-indigo-400\">\n <div class=\"flex flex-row h-16 items-center \">\n <div class=\"flex px-2 justify-start\">\n <div class=\"flex-shrink-0 bg-white rounded-lg\">\n <a href={iconLinkURL ?? \"#\"}>\n <img\n class=\"h-8 w-auto\"\n src={logo}\n alt=\"GNU Taler\"\n style={{ height: \"1.5rem\", margin: \".5rem\" }}\n />\n </a>\n </div>\n <span class=\"flex items-center text-white text-lg font-bold ml-4\">\n {title}\n </span>\n </div>\n <div class=\"block flex-1 ml-6 \">\n {sites.length !== 0 &&\n <div class=\"flex flex-1 space-x-4\">\n {/* <!-- Current: \"bg-indigo-700 text-white\", Default: \"text-white hover:bg-indigo-500 hover:bg-opacity-75\" --> */}\n {sites.map(([name, url]) => {\n return <a href={url} class=\"text-white hover:bg-indigo-500 hover:bg-opacity-75 rounded-md py-2 px-3 text-sm font-medium\">{name}</a>\n })}\n </div>\n }\n </div>\n <div class=\"flex justify-end\">\n <button type=\"button\" class=\"relative inline-flex items-center justify-center rounded-md bg-indigo-600 p-1 text-indigo-200 hover:bg-indigo-500 hover:bg-opacity-75 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-indigo-600\" aria-controls=\"mobile-menu\" aria-expanded=\"false\"\n onClick={(e) => {\n setOpen(!open)\n }}>\n <span class=\"absolute -inset-0.5\"></span>\n <span class=\"sr-only\"><i18n.Translate>Open settings</i18n.Translate></span>\n <svg class=\"block h-10 w-10\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\" />\n </svg>\n </button>\n </div>\n </div>\n </header>\n\n {open &&\n <div class=\"relative z-10\" aria-labelledby=\"slide-over-title\" role=\"dialog\" aria-modal=\"true\"\n onClick={() => {\n setOpen(false)\n }}>\n <div class=\"fixed inset-0\"></div>\n\n <div class=\"fixed inset-0 overflow-hidden\">\n <div class=\"absolute inset-0 overflow-hidden\">\n <div class=\"pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10\">\n <div class=\"pointer-events-auto w-screen max-w-md\" >\n <div class=\"flex h-full flex-col overflow-y-scroll bg-white py-6 shadow-xl\" onClick={(e) => {\n //do not trigger close if clicking inside the sidebar\n e.stopPropagation();\n }}>\n <div class=\"px-4 sm:px-6\" >\n <div class=\"flex items-start justify-between\" >\n <h2 class=\"text-base font-semibold leading-6 text-gray-900\" id=\"slide-over-title\">\n <i18n.Translate>Menu</i18n.Translate>\n </h2>\n <div class=\"ml-3 flex h-7 items-center\">\n <button type=\"button\" class=\"relative rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n onClick={(e) => {\n setOpen(false)\n }}\n\n >\n <span class=\"absolute -inset-2.5\"></span>\n <span class=\"sr-only\">\n <i18n.Translate>Close panel</i18n.Translate>\n </span>\n <svg class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div class=\"relative mt-6 flex-1 px-4 sm:px-6\">\n <nav class=\"flex flex-1 flex-col\" aria-label=\"Sidebar\">\n <ul role=\"list\" class=\"flex flex-1 flex-col gap-y-7\">\n {onLogout ?\n <li>\n <a href=\"#\"\n class=\"text-gray-700 hover:text-indigo-600 hover:bg-gray-100 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\"\n onClick={() => {\n onLogout();\n setOpen(false)\n }}\n >\n <svg class=\"h-6 w-6 shrink-0 text-indigo-600\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\" />\n </svg>\n <i18n.Translate>Log out</i18n.Translate>\n </a>\n </li>\n : undefined}\n <li>\n <LangSelector supportedLangs={supportedLangs} />\n </li>\n {/* CHILDREN */}\n {children}\n {/* /CHILDREN */}\n {sites.length !== 0 &&\n <li class=\"sm:hidden\">\n <div class=\"text-xs font-semibold leading-6 text-gray-400\">\n <i18n.Translate>Sites</i18n.Translate>\n </div>\n <ul role=\"list\" class=\"space-y-1\">\n {sites.map(([name, url]) => {\n return <li>\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-gray-700 hover:text-indigo-600 hover:bg-gray-100 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\">\n <span class=\"flex h-6 w-6 shrink-0 items-center justify-center rounded-lg border text-[0.625rem] font-medium bg-white text-gray-400 border-gray-200 group-hover:border-indigo-600 group-hover:text-indigo-600\">&gt;</span>\n <span class=\"truncate\">{name}</span>\n </a>\n </li>\n })}\n </ul>\n </li>\n }\n </ul>\n </nav>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </Fragment>\n}\n", "import { useTranslationContext } from \"../index.browser.js\";\nimport { h } from \"preact\";\n\nexport function Footer({ testingUrl, VERSION, GIT_HASH }: { VERSION?: string, GIT_HASH?: string, testingUrl?: string }) {\n const { i18n } = useTranslationContext()\n const versionText = VERSION\n ? GIT_HASH\n ? <a href={`https://git.taler.net/wallet-core.git/tree/?id=${GIT_HASH}`} target=\"_blank\" rel=\"noreferrer noopener\">\n Version {VERSION} ({GIT_HASH.substring(0, 8)})\n </a>\n : VERSION\n : \"\";\n return (\n <footer class=\"bottom-4 my-4 mx-8 bg-slate-200\">\n <div>\n <p class=\"text-xs leading-5 text-gray-400\">\n <i18n.Translate>\n Learn more about <a target=\"_blank\" rel=\"noreferrer noopener\" class=\"font-semibold text-gray-500 hover:text-gray-400\" href=\"https://taler.net\">GNU Taler</a>\n </i18n.Translate>\n </p>\n </div>\n <div style=\"flex-grow:1\" />\n <p class=\"text-xs leading-5 text-gray-400\">\n Copyright &copy; 2014&mdash;2023 Taler Systems SA. {versionText}{\" \"}\n </p>\n {testingUrl &&\n\n <p class=\"text-xs leading-5 text-gray-300\">\n Testing with {testingUrl}{\" \"}\n <a\n href=\"\"\n onClick={(e) => {\n e.preventDefault();\n localStorage.removeItem(\"bank-base-url\");\n window.location.reload();\n }}\n >\n stop testing\n </a>\n </p>\n }\n </footer>\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Fragment, h, VNode } from \"preact\";\n\nexport function ShowInputErrorLabel({\n isDirty,\n message,\n}: {\n message: string | undefined;\n isDirty: boolean;\n}): VNode {\n if (message && isDirty)\n return <div class=\"text-base\" style={{ color: \"red\" }}>{message}</div>;\n return <div class=\"text-base\" style={{ }}> </div>;\n}\n", "import { h, Fragment, VNode } from \"preact\";\nimport { Attention } from \"./Attention.js\";\nimport { Notification } from \"../index.browser.js\";\n// import { useSettings } from \"../hooks/settings.js\";\n\nexport function LocalNotificationBanner({ notification }: { notification?: Notification }): VNode {\n if (!notification) return <Fragment />\n switch (notification.message.type) {\n case \"error\":\n return <div class=\"relative\">\n <div class=\"fixed top-0 left-0 right-0 z-20 w-full p-4\">\n <Attention type=\"danger\" title={notification.message.title} onClose={() => {\n notification.remove()\n }}>\n {notification.message.description &&\n <div class=\"mt-2 text-sm text-red-700\">\n {notification.message.description}\n </div>\n }\n {/* <MaybeShowDebugInfo info={notification.message.debug} /> */}\n </Attention>\n </div>\n </div>\n case \"info\":\n return <div class=\"relative\">\n <div class=\"fixed top-0 left-0 right-0 z-20 w-full p-4\">\n <Attention type=\"success\" title={notification.message.title} onClose={() => {\n notification.remove();\n }} /></div></div>\n }\n}\n\n\n// function MaybeShowDebugInfo({ info }: { info: any }): VNode {\n// const [settings] = useSettings()\n// if (settings.showDebugInfo) {\n// return <pre class=\"whitespace-break-spaces \">\n// {info}\n// </pre>\n// }\n// return <Fragment />\n// }\n\n", "import { Fragment, VNode, h } from \"preact\"\nimport { Attention, useNotifications } from \"../index.browser.js\"\n\nexport function GlobalNotificationsBanner(): VNode {\n const notifs = useNotifications()\n if (notifs.length === 0) return <Fragment />\n return <div class=\"fixed z-20 w-full p-4\"> {\n notifs.map(n => {\n switch (n.message.type) {\n case \"error\":\n return <Attention type=\"danger\" title={n.message.title} onClose={() => {\n n.remove()\n }}>\n {n.message.description &&\n <div class=\"mt-2 text-sm text-red-700\">\n {n.message.description}\n </div>\n }\n {/* <MaybeShowDebugInfo info={n.message.debug} /> */}\n </Attention>\n case \"info\":\n return <Attention type=\"success\" title={n.message.title} onClose={() => {\n n.remove();\n }} />\n }\n })}\n </div>\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport {\n LabelWithTooltipMaybeRequired\n} from \"./InputLine.js\";\n\ninterface Props {\n label: TranslatedString;\n tooltip?: TranslatedString;\n help?: TranslatedString;\n before?: VNode;\n after?: VNode;\n}\n\nexport function Caption({ before, after, label, tooltip, help }: Props): VNode {\n return (\n <div class=\"sm:col-span-6 flex\">\n {before !== undefined && (\n <span class=\"pointer-events-none flex items-center pr-2\">{before}</span>\n )}\n <LabelWithTooltipMaybeRequired label={label} tooltip={tooltip} />\n {after !== undefined && (\n <span class=\"pointer-events-none flex items-center pl-2\">{after}</span>\n )}\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\nimport { useField } from \"./useField.js\";\n\nexport interface IconAddon {\n type: \"icon\";\n icon: VNode;\n}\ninterface ButtonAddon {\n type: \"button\";\n onClick: () => void;\n children: ComponentChildren;\n}\ninterface TextAddon {\n type: \"text\";\n text: TranslatedString;\n}\ntype Addon = IconAddon | ButtonAddon | TextAddon;\n\ninterface StringConverter<T> {\n toStringUI: (v?: T) => string;\n fromStringUI: (v?: string) => T;\n}\n\nexport interface UIFormProps<T extends object, K extends keyof T> {\n name: K;\n label: TranslatedString;\n placeholder?: TranslatedString;\n tooltip?: TranslatedString;\n help?: TranslatedString;\n before?: Addon;\n after?: Addon;\n required?: boolean;\n converter?: StringConverter<T[K]>;\n}\n\nexport type FormErrors<T> = {\n [P in keyof T]?: string | FormErrors<T[P]>;\n};\n\n//@ts-ignore\nconst TooltipIcon = (\n <svg\n class=\"w-5 h-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n);\n\nexport function LabelWithTooltipMaybeRequired({\n label,\n required,\n tooltip,\n}: {\n label: TranslatedString;\n required?: boolean;\n tooltip?: TranslatedString;\n}): VNode {\n const Label = (\n <Fragment>\n <div class=\"flex justify-between\">\n <label\n htmlFor=\"email\"\n class=\"block text-sm font-medium leading-6 text-gray-900\"\n >\n {label}\n </label>\n </div>\n </Fragment>\n );\n const WithTooltip = tooltip ? (\n <div class=\"relative flex flex-grow items-stretch focus-within:z-10\">\n {Label}\n <span class=\"relative flex items-center group pl-2\">\n {TooltipIcon}\n <div class=\"absolute bottom-0 flex flex-col items-center hidden mb-6 group-hover:flex\">\n <span class=\"relative z-10 p-2 text-xs leading-none text-white whitespace-no-wrap bg-black shadow-lg\">\n {tooltip}\n </span>\n <div class=\"w-3 h-3 -mt-2 rotate-45 bg-black\"></div>\n </div>\n </span>\n </div>\n ) : (\n Label\n );\n if (required) {\n return (\n <div class=\"flex justify-between\">\n {WithTooltip}\n <span class=\"text-sm leading-6 text-red-600\">*</span>\n </div>\n );\n }\n return WithTooltip;\n}\n\nfunction InputWrapper<T extends object, K extends keyof T>({\n children,\n label,\n tooltip,\n before,\n after,\n help,\n error,\n required,\n}: { error?: string; children: ComponentChildren } & UIFormProps<T, K>): VNode {\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <div class=\"relative mt-2 flex rounded-md shadow-sm\">\n {before &&\n (before.type === \"text\" ? (\n <span class=\"inline-flex items-center rounded-l-md border border-r-0 border-gray-300 px-3 text-gray-500 sm:text-sm\">\n {before.text}\n </span>\n ) : before.type === \"icon\" ? (\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n {before.icon}\n </div>\n ) : before.type === \"button\" ? (\n <button\n type=\"button\"\n onClick={before.onClick}\n class=\"relative -ml-px inline-flex items-center gap-x-1.5 rounded-l-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50\"\n >\n {before.children}\n </button>\n ) : undefined)}\n\n {children}\n\n {after &&\n (after.type === \"text\" ? (\n <span class=\"inline-flex items-center rounded-r-md border border-l-0 border-gray-300 px-3 text-gray-500 sm:text-sm\">\n {after.text}\n </span>\n ) : after.type === \"icon\" ? (\n <div class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\">\n {after.icon}\n </div>\n ) : after.type === \"button\" ? (\n <button\n type=\"button\"\n onClick={after.onClick}\n class=\"relative -ml-px inline-flex items-center gap-x-1.5 rounded-r-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50\"\n >\n {after.children}\n </button>\n ) : undefined)}\n </div>\n {error && (\n <p class=\"mt-2 text-sm text-red-600\" id=\"email-error\">\n {error}\n </p>\n )}\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n\nfunction defaultToString(v: unknown) {\n return v === undefined ? \"\" : typeof v !== \"object\" ? String(v) : \"\";\n}\nfunction defaultFromString(v: string) {\n return v;\n}\n\ntype InputType = \"text\" | \"text-area\" | \"password\" | \"email\" | \"number\";\n\nexport function InputLine<T extends object, K extends keyof T>(\n props: { type: InputType } & UIFormProps<T, K>,\n): VNode {\n const { name, placeholder, before, after, converter, type } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n\n if (state.hidden) return <div />;\n\n let clazz =\n \"block w-full rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset focus:ring-2 focus:ring-inset sm:text-sm sm:leading-6 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200\";\n if (before) {\n switch (before.type) {\n case \"icon\": {\n clazz += \" pl-10\";\n break;\n }\n case \"button\": {\n clazz += \" rounded-none rounded-r-md \";\n break;\n }\n case \"text\": {\n clazz += \" min-w-0 flex-1 rounded-r-md rounded-none \";\n break;\n }\n }\n }\n if (after) {\n switch (after.type) {\n case \"icon\": {\n clazz += \" pr-10\";\n break;\n }\n case \"button\": {\n clazz += \" rounded-none rounded-l-md\";\n break;\n }\n case \"text\": {\n clazz += \" min-w-0 flex-1 rounded-l-md rounded-none \";\n break;\n }\n }\n }\n const showError = isDirty && state.error;\n if (showError) {\n clazz +=\n \" text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500\";\n } else {\n clazz +=\n \" text-gray-900 ring-gray-300 placeholder:text-gray-400 focus:ring-indigo-600\";\n }\n const fromString: (s: string) => any =\n converter?.fromStringUI ?? defaultFromString;\n const toString: (s: any) => string = converter?.toStringUI ?? defaultToString;\n\n if (type === \"text-area\") {\n return (\n <InputWrapper<T, K>\n {...props}\n error={showError ? state.error : undefined}\n >\n <textarea\n rows={4}\n name={String(name)}\n onChange={(e) => {\n onChange(fromString(e.currentTarget.value));\n }}\n placeholder={placeholder ? placeholder : undefined}\n value={toString(value) ?? \"\"}\n // defaultValue={toString(value)}\n disabled={state.disabled}\n aria-invalid={showError}\n // aria-describedby=\"email-error\"\n class={clazz}\n />\n </InputWrapper>\n );\n }\n\n return (\n <InputWrapper<T, K> {...props} error={showError ? state.error : undefined}>\n <input\n name={String(name)}\n type={type}\n onChange={(e) => {\n onChange(fromString(e.currentTarget.value));\n }}\n placeholder={placeholder ? placeholder : undefined}\n value={toString(value) ?? \"\"}\n // defaultValue={toString(value)}\n disabled={state.disabled}\n aria-invalid={showError}\n // aria-describedby=\"email-error\"\n class={clazz}\n />\n </InputWrapper>\n );\n}\n", "import { useContext, useState } from \"preact/compat\";\nimport { FormContext, InputFieldState } from \"./FormProvider.js\";\n\nexport interface InputFieldHandler<Type> {\n value: Type;\n onChange: (s: Type) => void;\n state: InputFieldState;\n isDirty: boolean;\n}\n\nexport function useField<T extends object, K extends keyof T>(\n name: K,\n): InputFieldHandler<T[K]> {\n const {\n initialValue,\n value: formValue,\n computeFormState,\n onUpdate: notifyUpdate,\n } = useContext(FormContext);\n\n type P = typeof name;\n type V = T[P];\n const formState = computeFormState ? computeFormState(formValue.current) : {};\n\n const fieldValue = readField(formValue.current, String(name)) as V;\n // console.log(\"USE FIELD\", String(name), formValue.current, fieldValue);\n const [currentValue, setCurrentValue] = useState<any | undefined>(fieldValue);\n const fieldState =\n readField<Partial<InputFieldState>>(formState, String(name)) ?? {};\n\n //compute default state\n const state = {\n disabled: fieldState.disabled ?? false,\n readonly: fieldState.readonly ?? false,\n hidden: fieldState.hidden ?? false,\n error: fieldState.error,\n elements: \"elements\" in fieldState ? fieldState.elements ?? [] : [],\n };\n\n function onChange(value: V): void {\n setCurrentValue(value);\n formValue.current = setValueDeeper(\n formValue.current,\n String(name).split(\".\"),\n value,\n );\n if (notifyUpdate) {\n notifyUpdate(formValue.current);\n }\n }\n\n return {\n value: fieldValue,\n onChange,\n isDirty: currentValue !== undefined,\n state,\n };\n}\n\n/**\n * read the field of an object an support accessing it using '.'\n *\n * @param object\n * @param name\n * @returns\n */\nfunction readField<T>(\n object: any,\n name: string,\n debug?: boolean,\n): T | undefined {\n return name.split(\".\").reduce((prev, current) => {\n if (debug) {\n console.log(\n \"READ\",\n name,\n prev,\n current,\n prev ? prev[current] : undefined,\n );\n }\n return prev ? prev[current] : undefined;\n }, object);\n}\n\nfunction setValueDeeper(object: any, names: string[], value: any): any {\n if (names.length === 0) return value;\n const [head, ...rest] = names;\n if (object === undefined) {\n return { [head]: setValueDeeper({}, rest, value) };\n }\n return { ...object, [head]: setValueDeeper(object[head] ?? {}, rest, value) };\n}\n", "import {\n AbsoluteTime,\n AmountJson,\n TranslatedString,\n} from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, VNode, createContext, h } from \"preact\";\nimport {\n MutableRef,\n StateUpdater,\n useEffect,\n useRef,\n useState,\n} from \"preact/hooks\";\n\nexport interface FormType<T> {\n value: MutableRef<Partial<T>>;\n initialValue?: Partial<T>;\n onUpdate?: StateUpdater<T>;\n computeFormState?: (v: T) => FormState<T>;\n}\n\n//@ts-ignore\nexport const FormContext = createContext<FormType<any>>({});\n\nexport type FormState<T> = {\n [field in keyof T]?: T[field] extends AbsoluteTime\n ? Partial<InputFieldState>\n : T[field] extends AmountJson\n ? Partial<InputFieldState>\n : T[field] extends Array<infer P>\n ? Partial<InputArrayFieldState<P>>\n : T[field] extends (object | undefined)\n ? FormState<T[field]>\n : Partial<InputFieldState>;\n};\n\nexport interface InputFieldState {\n /* should show the error */\n error?: TranslatedString;\n /* should not allow to edit */\n readonly: boolean;\n /* should show as disable */\n disabled: boolean;\n /* should not show */\n hidden: boolean;\n}\n\nexport interface InputArrayFieldState<T> extends InputFieldState {\n elements: FormState<T>[];\n}\n\nexport function FormProvider<T>({\n children,\n initialValue,\n onUpdate: notify,\n onSubmit,\n computeFormState,\n}: {\n initialValue?: Partial<T>;\n onUpdate?: (v: Partial<T>) => void;\n onSubmit?: (v: Partial<T>, s: FormState<T> | undefined) => void;\n computeFormState?: (v: Partial<T>) => FormState<T>;\n children: ComponentChildren;\n}): VNode {\n // const value = useRef(initialValue ?? {});\n // useEffect(() => {\n // return function onUnload() {\n // value.current = initialValue ?? {};\n // };\n // });\n // const onUpdate = notify\n const [state, setState] = useState<Partial<T>>(initialValue ?? {});\n const value = { current: state };\n // console.log(\"RENDER\", initialValue, value);\n const onUpdate = (v: typeof state) => {\n // console.log(\"updated\");\n setState(v);\n if (notify) notify(v);\n };\n return (\n <FormContext.Provider\n value={{ initialValue, value, onUpdate, computeFormState }}\n >\n <form\n onSubmit={(e) => {\n e.preventDefault();\n //@ts-ignore\n if (onSubmit)\n onSubmit(\n value.current,\n !computeFormState ? undefined : computeFormState(value.current),\n );\n }}\n >\n {children}\n </form>\n </FormContext.Provider>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\n\nexport function InputText<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return <InputLine type=\"text\" {...props} />;\n}\n", "import { AbsoluteTime } from \"@gnu-taler/taler-util\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\nimport { CalendarIcon } from \"@heroicons/react/24/outline\";\nimport { VNode, h } from \"preact\";\nimport { format, parse } from \"date-fns\";\n\nexport function InputDate<T extends object, K extends keyof T>(\n props: { pattern?: string } & UIFormProps<T, K>,\n): VNode {\n const pattern = props.pattern ?? \"dd/MM/yyyy\";\n return (\n <InputLine<T, K>\n type=\"text\"\n after={{\n type: \"icon\",\n icon: <CalendarIcon class=\"h-6 w-6\" />,\n }}\n converter={{\n //@ts-ignore\n fromStringUI: (v): AbsoluteTime => {\n if (!v) return AbsoluteTime.never();\n const t_ms = parse(v, pattern, Date.now()).getTime();\n return AbsoluteTime.fromMilliseconds(t_ms);\n },\n //@ts-ignore\n toStringUI: (v: AbsoluteTime) => {\n return !v || !v.t_ms\n ? \"\"\n : v.t_ms === \"never\"\n ? \"never\"\n : format(v.t_ms, pattern);\n },\n }}\n {...props}\n />\n );\n}\n", "export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}", "export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}", "var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}", "/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}", "/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}", "import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}", "import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}", "import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;", "import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;", "var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;", "var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}", "var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;", "export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}", "import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;", "var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;", "export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}", "import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;", "export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}", "export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}", "import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;", "import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;", "import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;", "import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}", "export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n\n return target;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n\n _defineProperty(this, \"subPriority\", 0);\n }\n\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n\n var _super = _createSuper(ValueSetter);\n\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n\n _classCallCheck(this, ValueSetter);\n\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n\n return _this;\n }\n\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n\n function DateToSystemTimezoneSetter() {\n var _this2;\n\n _classCallCheck(this, DateToSystemTimezoneSetter);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n\n return _this2;\n }\n\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n\n return DateToSystemTimezoneSetter;\n}(Setter);", "function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n }\n\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n\n return Parser;\n}();", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n\n var _super = _createSuper(EraParser);\n\n function EraParser() {\n var _this;\n\n _classCallCheck(this, EraParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n\n return _this;\n }\n\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return EraParser;\n}(Parser);", "export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};", "import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n\n var _super = _createSuper(YearParser);\n\n function YearParser() {\n var _this;\n\n _classCallCheck(this, YearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return YearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n\n var _super = _createSuper(LocalWeekYearParser);\n\n function LocalWeekYearParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n\n return LocalWeekYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\n\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n\n var _super = _createSuper(ISOWeekYearParser);\n\n function ISOWeekYearParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n\n return ISOWeekYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n\n var _super = _createSuper(ExtendedYearParser);\n\n function ExtendedYearParser() {\n var _this;\n\n _classCallCheck(this, ExtendedYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ExtendedYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n\n var _super = _createSuper(QuarterParser);\n\n function QuarterParser() {\n var _this;\n\n _classCallCheck(this, QuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return QuarterParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n\n var _super = _createSuper(StandAloneQuarterParser);\n\n function StandAloneQuarterParser() {\n var _this;\n\n _classCallCheck(this, StandAloneQuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneQuarterParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n\n var _super = _createSuper(MonthParser);\n\n function MonthParser() {\n var _this;\n\n _classCallCheck(this, MonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n return _this;\n }\n\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return MonthParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n\n var _super = _createSuper(StandAloneMonthParser);\n\n function StandAloneMonthParser() {\n var _this;\n\n _classCallCheck(this, StandAloneMonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneMonthParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\n\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n\n var _super = _createSuper(LocalWeekParser);\n\n function LocalWeekParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n\n return LocalWeekParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\n\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n\n var _super = _createSuper(ISOWeekParser);\n\n function ISOWeekParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n\n return ISOWeekParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // Day of the month\n\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n\n var _super = _createSuper(DateParser);\n\n function DateParser() {\n var _this;\n\n _classCallCheck(this, DateParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DateParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n\n var _super = _createSuper(DayOfYearParser);\n\n function DayOfYearParser() {\n var _this;\n\n _classCallCheck(this, DayOfYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayOfYearParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\n\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n\n var _super = _createSuper(DayParser);\n\n function DayParser() {\n var _this;\n\n _classCallCheck(this, DayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\n\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n\n var _super = _createSuper(LocalDayParser);\n\n function LocalDayParser() {\n var _this;\n\n _classCallCheck(this, LocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return LocalDayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\n\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n\n var _super = _createSuper(StandAloneLocalDayParser);\n\n function StandAloneLocalDayParser() {\n var _this;\n\n _classCallCheck(this, StandAloneLocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneLocalDayParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\n\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n\n var _super = _createSuper(ISODayParser);\n\n function ISODayParser() {\n var _this;\n\n _classCallCheck(this, ISODayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ISODayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n\n var _super = _createSuper(AMPMParser);\n\n function AMPMParser() {\n var _this;\n\n _classCallCheck(this, AMPMParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n\n var _super = _createSuper(AMPMMidnightParser);\n\n function AMPMMidnightParser() {\n var _this;\n\n _classCallCheck(this, AMPMMidnightParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMMidnightParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\n\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n\n var _super = _createSuper(DayPeriodParser);\n\n function DayPeriodParser() {\n var _this;\n\n _classCallCheck(this, DayPeriodParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return DayPeriodParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n\n var _super = _createSuper(Hour1to12Parser);\n\n function Hour1to12Parser() {\n var _this;\n\n _classCallCheck(this, Hour1to12Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour1to12Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n\n var _super = _createSuper(Hour0to23Parser);\n\n function Hour0to23Parser() {\n var _this;\n\n _classCallCheck(this, Hour0to23Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour0to23Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n\n var _super = _createSuper(Hour0To11Parser);\n\n function Hour0To11Parser() {\n var _this;\n\n _classCallCheck(this, Hour0To11Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour0To11Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n\n var _super = _createSuper(Hour1To24Parser);\n\n function Hour1To24Parser() {\n var _this;\n\n _classCallCheck(this, Hour1To24Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour1To24Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n\n var _super = _createSuper(MinuteParser);\n\n function MinuteParser() {\n var _this;\n\n _classCallCheck(this, MinuteParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n\n return MinuteParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n\n var _super = _createSuper(SecondParser);\n\n function SecondParser() {\n var _this;\n\n _classCallCheck(this, SecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n\n return SecondParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n\n var _super = _createSuper(FractionOfSecondParser);\n\n function FractionOfSecondParser() {\n var _this;\n\n _classCallCheck(this, FractionOfSecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n\n return FractionOfSecondParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\n\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneWithZParser);\n\n function ISOTimezoneWithZParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneWithZParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneWithZParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\n\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneParser);\n\n function ISOTimezoneParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n\n var _super = _createSuper(TimestampSecondsParser);\n\n function TimestampSecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampSecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampSecondsParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n\n var _super = _createSuper(TimestampMillisecondsParser);\n\n function TimestampMillisecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampMillisecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampMillisecondsParser;\n}(Parser);", "import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n\n try {\n var _loop = function _loop() {\n var token = _step.value;\n\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n\n if (_typeof(_ret) === \"object\") return _ret.v;\n } // Check if the remaining input contains something other than whitespace\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, subFnOptions); // Result is tuple (date, flags)\n\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return utcDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}", "import { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\n\nexport function InputInteger<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return (\n <InputLine\n type=\"number\"\n converter={{\n //@ts-ignore\n fromStringUI: (v): number => {\n return !v ? 0 : Number.parseInt(v, 10);\n },\n //@ts-ignore\n toStringUI: (v?: number): string => {\n return v === undefined ? \"\" : String(v);\n },\n }}\n {...props}\n />\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { InputText } from \"./InputText.js\";\nimport { InputDate } from \"./InputDate.js\";\nimport { InputInteger } from \"./InputInteger.js\";\nimport { h as create, Fragment, VNode } from \"preact\";\nimport { InputChoiceStacked } from \"./InputChoiceStacked.js\";\nimport { InputArray } from \"./InputArray.js\";\nimport { InputSelectMultiple } from \"./InputSelectMultiple.js\";\nimport { InputTextArea } from \"./InputTextArea.js\";\nimport { InputFile } from \"./InputFile.js\";\nimport { Caption } from \"./Caption.js\";\nimport { Group } from \"./Group.js\";\nimport { InputSelectOne } from \"./InputSelectOne.js\";\nimport { FormProvider } from \"./FormProvider.js\";\nimport { InputLine } from \"./InputLine.js\";\nimport { InputAmount } from \"./InputAmount.js\";\nimport { InputChoiceHorizontal } from \"./InputChoiceHorizontal.js\";\n\nexport type DoubleColumnForm = Array<DoubleColumnFormSection | undefined>;\n\nexport type DoubleColumnFormSection = {\n title: TranslatedString;\n description?: TranslatedString;\n fields: UIFormField[];\n};\n\n/**\n * Constrain the type with the ui props\n */\ntype FieldType<T extends object = any, K extends keyof T = any> = {\n group: Parameters<typeof Group>[0];\n caption: Parameters<typeof Caption>[0];\n array: Parameters<typeof InputArray<T, K>>[0];\n file: Parameters<typeof InputFile<T, K>>[0];\n selectOne: Parameters<typeof InputSelectOne<T, K>>[0];\n selectMultiple: Parameters<typeof InputSelectMultiple<T, K>>[0];\n text: Parameters<typeof InputText<T, K>>[0];\n textArea: Parameters<typeof InputTextArea<T, K>>[0];\n choiceStacked: Parameters<typeof InputChoiceStacked<T, K>>[0];\n choiceHorizontal: Parameters<typeof InputChoiceHorizontal<T, K>>[0];\n date: Parameters<typeof InputDate<T, K>>[0];\n integer: Parameters<typeof InputInteger<T, K>>[0];\n amount: Parameters<typeof InputAmount<T, K>>[0];\n};\n\n/**\n * List all the form fields so typescript can type-check the form instance\n */\nexport type UIFormField =\n | { type: \"group\"; props: FieldType[\"group\"] }\n | { type: \"caption\"; props: FieldType[\"caption\"] }\n | { type: \"array\"; props: FieldType[\"array\"] }\n | { type: \"file\"; props: FieldType[\"file\"] }\n | { type: \"amount\"; props: FieldType[\"amount\"] }\n | { type: \"selectOne\"; props: FieldType[\"selectOne\"] }\n | { type: \"selectMultiple\"; props: FieldType[\"selectMultiple\"] }\n | { type: \"text\"; props: FieldType[\"text\"] }\n | { type: \"textArea\"; props: FieldType[\"textArea\"] }\n | { type: \"choiceStacked\"; props: FieldType[\"choiceStacked\"] }\n | { type: \"choiceHorizontal\"; props: FieldType[\"choiceHorizontal\"] }\n | { type: \"integer\"; props: FieldType[\"integer\"] }\n | { type: \"date\"; props: FieldType[\"date\"] };\n\ntype FieldComponentFunction<key extends keyof FieldType> = (\n props: FieldType[key],\n) => VNode;\n\ntype UIFormFieldMap = {\n [key in keyof FieldType]: FieldComponentFunction<key>;\n};\n\n/**\n * Maps input type with component implementation\n */\nconst UIFormConfiguration: UIFormFieldMap = {\n group: Group,\n caption: Caption,\n //@ts-ignore\n array: InputArray,\n text: InputText,\n //@ts-ignore\n file: InputFile,\n textArea: InputTextArea,\n //@ts-ignore\n date: InputDate,\n //@ts-ignore\n choiceStacked: InputChoiceStacked,\n //@ts-ignore\n choiceHorizontal: InputChoiceHorizontal,\n integer: InputInteger,\n //@ts-ignore\n selectOne: InputSelectOne,\n //@ts-ignore\n selectMultiple: InputSelectMultiple,\n //@ts-ignore\n amount: InputAmount,\n};\n\nexport function RenderAllFieldsByUiConfig({\n fields,\n}: {\n fields: UIFormField[];\n}): VNode {\n return create(\n Fragment,\n {},\n fields.map((field, i) => {\n const Component = UIFormConfiguration[\n field.type\n ] as FieldComponentFunction<any>;\n return Component(field.props);\n }),\n );\n}\n\ntype FormSet<T extends object> = {\n Provider: typeof FormProvider<T>;\n InputLine: <K extends keyof T>() => typeof InputLine<T, K>;\n InputChoiceHorizontal: <K extends keyof T>() => typeof InputChoiceHorizontal<\n T,\n K\n >;\n};\nexport function createNewForm<T extends object>() {\n const res: FormSet<T> = {\n Provider: FormProvider,\n InputLine: () => InputLine,\n InputChoiceHorizontal: () => InputChoiceHorizontal,\n };\n return {\n Provider: res.Provider,\n InputLine: res.InputLine(),\n InputChoiceHorizontal: res.InputChoiceHorizontal(),\n };\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport interface Choice<V> {\n label: TranslatedString;\n description?: TranslatedString;\n value: V;\n}\n\nexport function InputChoiceStacked<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const {\n choices,\n name,\n label,\n tooltip,\n help,\n placeholder,\n required,\n before,\n after,\n converter,\n } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n if (state.hidden) {\n return <Fragment />;\n }\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <fieldset class=\"mt-2\">\n <div class=\"space-y-4\">\n {choices.map((choice) => {\n // const currentValue = !converter\n // ? choice.value\n // : converter.fromStringUI(choice.value) ?? \"\";\n\n let clazz =\n \"border relative block cursor-pointer rounded-lg bg-white px-6 py-4 shadow-sm focus:outline-none sm:flex sm:justify-between\";\n if (choice.value === value) {\n clazz +=\n \" border-transparent border-indigo-600 ring-2 ring-indigo-600\";\n } else {\n clazz += \" border-gray-300\";\n }\n\n return (\n <label class={clazz}>\n <input\n type=\"radio\"\n name=\"server-size\"\n // defaultValue={choice.value}\n value={\n (!converter\n ? (choice.value as string)\n : converter?.toStringUI(choice.value)) ?? \"\"\n }\n onClick={(e) => {\n onChange(\n (value === choice.value\n ? undefined\n : choice.value) as T[K],\n );\n }}\n class=\"sr-only\"\n aria-labelledby=\"server-size-0-label\"\n aria-describedby=\"server-size-0-description-0 server-size-0-description-1\"\n />\n <span class=\"flex items-center\">\n <span class=\"flex flex-col text-sm\">\n <span\n id=\"server-size-0-label\"\n class=\"font-medium text-gray-900\"\n >\n {choice.label}\n </span>\n {choice.description !== undefined && (\n <span\n id=\"server-size-0-description-0\"\n class=\"text-gray-500\"\n >\n <span class=\"block sm:inline\">\n {choice.description}\n </span>\n </span>\n )}\n </span>\n </span>\n </label>\n );\n })}\n </div>\n </fieldset>\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { FormProvider, InputArrayFieldState } from \"./FormProvider.js\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { RenderAllFieldsByUiConfig, UIFormField } from \"./forms.js\";\nimport { useField } from \"./useField.js\";\nimport { TranslatedString } from \"@gnu-taler/taler-util\";\n\nfunction Option({\n label,\n disabled,\n isFirst,\n isLast,\n isSelected,\n onClick,\n}: {\n label: TranslatedString;\n isFirst?: boolean;\n isLast?: boolean;\n isSelected?: boolean;\n disabled?: boolean;\n onClick: () => void;\n}): VNode {\n let clazz = \"relative flex border p-4 focus:outline-none disabled:text-grey\";\n if (isFirst) {\n clazz += \" rounded-tl-md rounded-tr-md \";\n }\n if (isLast) {\n clazz += \" rounded-bl-md rounded-br-md \";\n }\n if (isSelected) {\n clazz += \" z-10 border-indigo-200 bg-indigo-50 \";\n } else {\n clazz += \" border-gray-200\";\n }\n if (disabled) {\n clazz +=\n \" cursor-not-allowed bg-gray-50 text-gray-500 ring-gray-200 text-gray\";\n } else {\n clazz += \" cursor-pointer\";\n }\n return (\n <label class={clazz}>\n <input\n type=\"radio\"\n name=\"privacy-setting\"\n checked={isSelected}\n disabled={disabled}\n onClick={onClick}\n class=\"mt-0.5 h-4 w-4 shrink-0 text-indigo-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200 focus:ring-indigo-600\"\n aria-labelledby=\"privacy-setting-0-label\"\n aria-describedby=\"privacy-setting-0-description\"\n />\n <span class=\"ml-3 flex flex-col\">\n <span\n id=\"privacy-setting-0-label\"\n disabled\n class=\"block text-sm font-medium\"\n >\n {label}\n </span>\n {/* <!-- Checked: \"text-indigo-700\", Not Checked: \"text-gray-500\" --> */}\n {/* <span\n id=\"privacy-setting-0-description\"\n class=\"block text-sm\"\n >\n This project would be available to anyone who has the link\n </span> */}\n </span>\n </label>\n );\n}\n\nexport function InputArray<T extends object, K extends keyof T>(\n props: {\n fields: UIFormField[];\n labelField: string;\n } & UIFormProps<T, K>,\n): VNode {\n const { fields, labelField, name, label, required, tooltip } = props;\n const { value, onChange, state } = useField<T, K>(name);\n const list = (value ?? []) as Array<Record<string, string | undefined>>;\n const [selectedIndex, setSelected] = useState<number | undefined>(undefined);\n const selected =\n selectedIndex === undefined ? undefined : list[selectedIndex];\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n\n <div class=\"-space-y-px rounded-md bg-white \">\n {list.map((v, idx) => {\n return (\n <Option\n label={v[labelField] as TranslatedString}\n isSelected={selectedIndex === idx}\n isLast={idx === list.length - 1}\n disabled={selectedIndex !== undefined && selectedIndex !== idx}\n isFirst={idx === 0}\n onClick={() => {\n setSelected(selectedIndex === idx ? undefined : idx);\n }}\n />\n );\n })}\n <div class=\"pt-2\">\n <Option\n label={\"Add...\" as TranslatedString}\n isSelected={selectedIndex === list.length}\n isLast\n isFirst\n disabled={\n selectedIndex !== undefined && selectedIndex !== list.length\n }\n onClick={() => {\n setSelected(\n selectedIndex === list.length ? undefined : list.length,\n );\n }}\n />\n </div>\n </div>\n {selectedIndex !== undefined && (\n /**\n * This form provider act as a substate of the parent form\n * Consider creating an InnerFormProvider since not every feature is expected\n */\n <FormProvider\n initialValue={selected}\n computeFormState={(v) => {\n // current state is ignored\n // the state is defined by the parent form\n\n // elements should be present in the state object since this is expected to be an array\n //@ts-ignore\n return state.elements[selectedIndex];\n }}\n onSubmit={(v) => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1, v);\n onChange(newValue as T[K]);\n setSelected(undefined);\n }}\n onUpdate={(v) => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1, v);\n onChange(newValue as T[K]);\n }}\n >\n <div class=\"px-4 py-6\">\n <div class=\"grid grid-cols-1 gap-y-8 \">\n <RenderAllFieldsByUiConfig fields={fields} />\n </div>\n </div>\n </FormProvider>\n )}\n {selectedIndex !== undefined && (\n <div class=\"flex items-center pt-3\">\n <div class=\"flex-auto\">\n {selected !== undefined && (\n <button\n type=\"button\"\n onClick={() => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1);\n onChange(newValue as T[K]);\n setSelected(undefined);\n }}\n class=\"block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 \"\n >\n Remove\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Choice } from \"./InputChoiceStacked.js\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputSelectMultiple<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n unique?: boolean;\n max?: number;\n } & UIFormProps<T, K>,\n): VNode {\n const { name, label, choices, placeholder, tooltip, required, unique, max } =\n props;\n const { value, onChange } = useField<T, K>(name);\n\n const [filter, setFilter] = useState<string | undefined>(undefined);\n const regex = new RegExp(`.*${filter}.*`, \"i\");\n const choiceMap = choices.reduce((prev, curr) => {\n return { ...prev, [curr.value as string]: curr.label };\n }, {} as Record<string, string>);\n\n const list = (value ?? []) as string[];\n const filteredChoices =\n filter === undefined\n ? undefined\n : choices.filter((v) => {\n return regex.test(v.label);\n });\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n {list.map((v, idx) => {\n return (\n <span class=\"inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 text-xs font-medium text-gray-600\">\n {choiceMap[v]}\n <button\n type=\"button\"\n onClick={() => {\n const newValue = [...list];\n newValue.splice(idx, 1);\n onChange(newValue as T[K]);\n setFilter(undefined);\n }}\n class=\"group relative h-5 w-5 rounded-sm hover:bg-gray-500/20\"\n >\n <span class=\"sr-only\">Remove</span>\n <svg\n viewBox=\"0 0 14 14\"\n class=\"h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75\"\n >\n <path d=\"M4 4l6 6m0-6l-6 6\" />\n </svg>\n <span class=\"absolute -inset-1\"></span>\n </button>\n </span>\n );\n })}\n\n <div class=\"relative mt-2\">\n <input\n id=\"combobox\"\n type=\"text\"\n value={filter ?? \"\"}\n onChange={(e) => {\n setFilter(e.currentTarget.value);\n }}\n placeholder={placeholder}\n class=\"w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6\"\n role=\"combobox\"\n aria-controls=\"options\"\n aria-expanded=\"false\"\n />\n <button\n type=\"button\"\n onClick={() => {\n setFilter(filter === undefined ? \"\" : undefined);\n }}\n class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\"\n >\n <svg\n class=\"h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n\n {filteredChoices !== undefined && (\n <ul\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n id=\"options\"\n role=\"listbox\"\n >\n {filteredChoices.map((v, idx) => {\n return (\n <li\n class=\"relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600\"\n id=\"option-0\"\n role=\"option\"\n onClick={() => {\n setFilter(undefined);\n if (unique && list.indexOf(v.value as string) !== -1) {\n return;\n }\n if (max !== undefined && list.length >= max) {\n return;\n }\n const newValue = [...list];\n newValue.splice(0, 0, v.value as string);\n onChange(newValue as T[K]);\n }}\n\n // tabindex=\"-1\"\n >\n {/* <!-- Selected: \"font-semibold\" --> */}\n <span class=\"block truncate\">{v.label}</span>\n\n {/* <!--\n Checkmark, only display for selected option.\n\n Active: \"text-white\", Not Active: \"text-indigo-600\"\n --> */}\n </li>\n );\n })}\n\n {/* <!--\n Combobox option, manage highlight styles based on mouseenter/mouseleave and keyboard navigation.\n\n Active: \"text-white bg-indigo-600\", Not Active: \"text-gray-900\"\n --> */}\n\n {/* <!-- More items... --> */}\n </ul>\n )}\n </div>\n </div>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\n\nexport function InputTextArea<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return <InputLine type=\"text-area\" {...props} />;\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputFile<T extends object, K extends keyof T>(\n props: { maxBites: number; accept?: string } & UIFormProps<T, K>,\n): VNode {\n const {\n name,\n label,\n placeholder,\n tooltip,\n required,\n help,\n maxBites,\n accept,\n } = props;\n const { value, onChange, state } = useField<T, K>(name);\n\n if (state.hidden) {\n return <div />;\n }\n return (\n <div class=\"col-span-full\">\n <LabelWithTooltipMaybeRequired\n label={label}\n tooltip={tooltip}\n required={required}\n />\n {!value || !(value as string).startsWith(\"data:image/\") ? (\n <div class=\"mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 py-1\">\n <div class=\"text-center\">\n <svg\n class=\"mx-auto h-12 w-12 text-gray-300\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M1.5 6a2.25 2.25 0 012.25-2.25h16.5A2.25 2.25 0 0122.5 6v12a2.25 2.25 0 01-2.25 2.25H3.75A2.25 2.25 0 011.5 18V6zM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0021 18v-1.94l-2.69-2.689a1.5 1.5 0 00-2.12 0l-.88.879.97.97a.75.75 0 11-1.06 1.06l-5.16-5.159a1.5 1.5 0 00-2.12 0L3 16.061zm10.125-7.81a1.125 1.125 0 112.25 0 1.125 1.125 0 01-2.25 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <div class=\"my-2 flex text-sm leading-6 text-gray-600\">\n <label\n for=\"file-upload\"\n class=\"relative cursor-pointer rounded-md bg-white font-semibold text-indigo-600 focus-within:outline-none focus-within:ring-2 focus-within:ring-indigo-600 focus-within:ring-offset-2 hover:text-indigo-500\"\n >\n <span>Upload a file</span>\n <input\n id=\"file-upload\"\n name=\"file-upload\"\n type=\"file\"\n class=\"sr-only\"\n accept={accept}\n onChange={(e) => {\n const f: FileList | null = e.currentTarget.files;\n if (!f || f.length != 1) {\n return onChange(undefined!);\n }\n if (f[0].size > maxBites) {\n return onChange(undefined!);\n }\n return f[0].arrayBuffer().then((b) => {\n const b64 = window.btoa(\n new Uint8Array(b).reduce(\n (data, byte) => data + String.fromCharCode(byte),\n \"\",\n ),\n );\n return onChange(`data:${f[0].type};base64,${b64}` as any);\n });\n }}\n />\n </label>\n {/* <p class=\"pl-1\">or drag and drop</p> */}\n </div>\n </div>\n </div>\n ) : (\n <div class=\"mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 relative\">\n <img\n src={value as string}\n class=\" h-24 w-full object-cover relative\"\n />\n\n <div\n class=\"opacity-0 hover:opacity-70 duration-300 absolute rounded-lg border inset-0 z-10 flex justify-center text-xl items-center bg-black text-white cursor-pointer \"\n onClick={() => {\n onChange(undefined!);\n }}\n >\n Clear\n </div>\n </div>\n )}\n {help && <p class=\"text-xs leading-5 text-gray-600 mt-2\">{help}</p>}\n </div>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { RenderAllFieldsByUiConfig, UIFormField } from \"./forms.js\";\n\ninterface Props {\n before?: TranslatedString;\n after?: TranslatedString;\n tooltipBefore?: TranslatedString;\n tooltipAfter?: TranslatedString;\n fields: UIFormField[];\n}\n\nexport function Group({\n before,\n after,\n tooltipAfter,\n tooltipBefore,\n fields,\n}: Props): VNode {\n return (\n <div class=\"sm:col-span-6 p-4 rounded-lg border-r-2 border-2 bg-gray-50\">\n <div class=\"pb-4\">\n {before && (\n <LabelWithTooltipMaybeRequired\n label={before}\n tooltip={tooltipBefore}\n />\n )}\n </div>\n <div class=\"grid max-w-2xl grid-cols-1 gap-x-6 gap-y-2 sm:grid-cols-6\">\n <RenderAllFieldsByUiConfig fields={fields} />\n </div>\n <div class=\"pt-4\">\n {after && (\n <LabelWithTooltipMaybeRequired label={after} tooltip={tooltipAfter} />\n )}\n </div>\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Choice } from \"./InputChoiceStacked.js\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputSelectOne<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const { name, label, choices, placeholder, tooltip, required } = props;\n const { value, onChange } = useField<T, K>(name);\n\n const [filter, setFilter] = useState<string | undefined>(undefined);\n const regex = new RegExp(`.*${filter}.*`, \"i\");\n const choiceMap = choices.reduce((prev, curr) => {\n return { ...prev, [curr.value as string]: curr.label };\n }, {} as Record<string, string>);\n\n const filteredChoices =\n filter === undefined\n ? undefined\n : choices.filter((v) => {\n return regex.test(v.label);\n });\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n {value ? (\n <span class=\"inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 font-medium text-gray-600\">\n {choiceMap[value as string]}\n <button\n type=\"button\"\n onClick={() => {\n onChange(undefined!);\n }}\n class=\"group relative h-5 w-5 rounded-sm hover:bg-gray-500/20\"\n >\n <span class=\"sr-only\">Remove</span>\n <svg\n viewBox=\"0 0 14 14\"\n class=\"h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75\"\n >\n <path d=\"M4 4l6 6m0-6l-6 6\" />\n </svg>\n <span class=\"absolute -inset-1\"></span>\n </button>\n </span>\n ) : (\n <div class=\"relative mt-2\">\n <input\n id=\"combobox\"\n type=\"text\"\n value={filter ?? \"\"}\n onChange={(e) => {\n setFilter(e.currentTarget.value);\n }}\n placeholder={placeholder}\n class=\"w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6\"\n role=\"combobox\"\n aria-controls=\"options\"\n aria-expanded=\"false\"\n />\n <button\n type=\"button\"\n onClick={() => {\n setFilter(filter === undefined ? \"\" : undefined);\n }}\n class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\"\n >\n <svg\n class=\"h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n\n {filteredChoices !== undefined && (\n <ul\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n id=\"options\"\n role=\"listbox\"\n >\n {filteredChoices.map((v, idx) => {\n return (\n <li\n class=\"relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600\"\n id=\"option-0\"\n role=\"option\"\n onClick={() => {\n setFilter(undefined);\n onChange(v.value as T[K]);\n }}\n\n // tabindex=\"-1\"\n >\n {/* <!-- Selected: \"font-semibold\" --> */}\n <span class=\"block truncate\">{v.label}</span>\n\n {/* <!--\n Checkmark, only display for selected option.\n\n Active: \"text-white\", Not Active: \"text-indigo-600\"\n --> */}\n </li>\n );\n })}\n\n {/* <!--\n Combobox option, manage highlight styles based on mouseenter/mouseleave and keyboard navigation.\n\n Active: \"text-white bg-indigo-600\", Not Active: \"text-gray-900\"\n --> */}\n\n {/* <!-- More items... --> */}\n </ul>\n )}\n </div>\n )}\n </div>\n );\n}\n", "import { AmountJson, Amounts, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputAmount<T extends object, K extends keyof T>(\n props: { currency?: string } & UIFormProps<T, K>,\n): VNode {\n const { value } = useField<T, K>(props.name);\n const currency =\n !value || !(value as any).currency\n ? props.currency\n : (value as any).currency;\n return (\n <InputLine<T, K>\n type=\"text\"\n before={{\n type: \"text\",\n text: currency as TranslatedString,\n }}\n converter={{\n //@ts-ignore\n fromStringUI: (v): AmountJson => {\n return Amounts.parseOrThrow(`${currency}:${v}`);\n },\n //@ts-ignore\n toStringUI: (v: AmountJson) => {\n return v === undefined ? \"\" : Amounts.stringifyValue(v);\n },\n }}\n {...props}\n />\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\nimport { Choice } from \"./InputChoiceStacked.js\";\n\nexport function InputChoiceHorizontal<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const {\n choices,\n name,\n label,\n tooltip,\n help,\n placeholder,\n required,\n before,\n after,\n converter,\n } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n if (state.hidden) {\n return <Fragment />;\n }\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <fieldset class=\"mt-2\">\n <div class=\"isolate inline-flex rounded-md shadow-sm\">\n {choices.map((choice, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === choices.length - 1;\n let clazz =\n \"relative inline-flex items-center px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 focus:z-10\";\n if (choice.value === value) {\n clazz +=\n \" text-white bg-indigo-600 hover:bg-indigo-500 ring-2 ring-indigo-600 hover:ring-indigo-500\";\n } else {\n clazz += \" hover:bg-gray-100 border-gray-300\";\n }\n if (isFirst) {\n clazz += \" rounded-l-md\";\n } else {\n clazz += \" -ml-px\";\n }\n if (isLast) {\n clazz += \" rounded-r-md\";\n }\n return (\n <button\n type=\"button\"\n class={clazz}\n onClick={(e) => {\n onChange(\n (value === choice.value ? undefined : choice.value) as T[K],\n );\n }}\n >\n {(!converter\n ? (choice.value as string)\n : converter?.toStringUI(choice.value)) ?? \"\"}\n </button>\n );\n })}\n </div>\n </fieldset>\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "\nimport { ComponentChildren, Fragment, h } from \"preact\";\nimport { FormProvider, FormState } from \"./FormProvider.js\";\nimport { DoubleColumnForm, RenderAllFieldsByUiConfig } from \"./forms.js\";\n\n\nexport interface FlexibleForm<T extends object> {\n versionId: string;\n design: DoubleColumnForm;\n behavior: (form: Partial<T>) => FormState<T>;\n}\n\nexport function DefaultForm<T extends object>({\n initial,\n onUpdate,\n form,\n onSubmit,\n children,\n}: {\n children?: ComponentChildren;\n initial: Partial<T>;\n onSubmit?: (v: Partial<T>) => void;\n form: FlexibleForm<T>;\n onUpdate?: (d: Partial<T>) => void;\n}) {\n return (\n <FormProvider\n initialValue={initial}\n onUpdate={onUpdate}\n onSubmit={onSubmit}\n computeFormState={form.behavior}\n >\n <div class=\"space-y-10 divide-y -mt-5 divide-gray-900/10\">\n {form.design.map((section, i) => {\n if (!section) return <Fragment />;\n return (\n <div class=\"grid grid-cols-1 gap-x-8 gap-y-8 pt-5 md:grid-cols-3\">\n <div class=\"px-4 sm:px-0\">\n <h2 class=\"text-base font-semibold leading-7 text-gray-900\">\n {section.title}\n </h2>\n {section.description && (\n <p class=\"mt-1 text-sm leading-6 text-gray-600\">\n {section.description}\n </p>\n )}\n </div>\n <div class=\"bg-white shadow-sm ring-1 ring-gray-900/5 rounded-md md:col-span-2\">\n <div class=\"p-3\">\n <div class=\"grid max-w-2xl grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6\">\n <RenderAllFieldsByUiConfig\n key={i}\n fields={section.fields}\n />\n </div>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n {children}\n </FormProvider>\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { setupI18n } from \"@gnu-taler/taler-util\";\nimport {\n ComponentChild,\n ComponentChildren,\n Fragment,\n FunctionalComponent,\n FunctionComponent,\n h,\n JSX,\n render,\n VNode,\n} from \"preact\";\nimport { useEffect, useErrorBoundary, useState } from \"preact/hooks\";\nimport { ExampleItemSetup } from \"./tests/hook.js\";\n\nconst Page: FunctionalComponent = ({ children }): VNode => {\n return (\n <div\n style={{\n fontFamily: \"Arial, Helvetica, sans-serif\",\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n }}\n >\n {children}\n </div>\n );\n};\n\nconst SideBar: FunctionalComponent<{ width: number }> = ({\n width,\n children,\n}): VNode => {\n return (\n <div\n style={{\n minWidth: width,\n height: \"calc(100vh - 20px)\",\n overflowX: \"hidden\",\n overflowY: \"visible\",\n scrollBehavior: \"smooth\",\n }}\n >\n {children}\n </div>\n );\n};\n\nconst ResizeHandleDiv: FunctionalComponent<\n JSX.HTMLAttributes<HTMLDivElement>\n> = ({ children, ...props }): VNode => {\n return (\n <div\n {...props}\n style={{\n width: 10,\n backgroundColor: \"#ddd\",\n cursor: \"ew-resize\",\n }}\n >\n {children}\n </div>\n );\n};\n\nconst Content: FunctionalComponent = ({ children }): VNode => {\n return (\n <div\n style={{\n width: \"100%\",\n padding: 20,\n }}\n >\n {children}\n </div>\n );\n};\n\nfunction findByGroupComponentName(\n allExamples: Group[],\n group: string,\n component: string,\n name: string,\n): ExampleItem | undefined {\n const gl = allExamples.filter((e) => e.title === group);\n if (gl.length === 0) {\n return undefined;\n }\n const cl = gl[0].list.filter((l) => l.name === component);\n if (cl.length === 0) {\n return undefined;\n }\n const el = cl[0].examples.filter((c) => c.name === name);\n if (el.length === 0) {\n return undefined;\n }\n return el[0];\n}\n\nfunction getContentForExample(\n item: ExampleItem | undefined,\n allExamples: Group[],\n): FunctionalComponent {\n if (!item)\n return function SelectExampleMessage() {\n return <div>select example from the list on the left</div>;\n };\n const example = findByGroupComponentName(\n allExamples,\n item.group,\n item.component,\n item.name,\n );\n if (!example) {\n return function ExampleNotFoundMessage() {\n return <div>example not found</div>;\n };\n }\n return () => example.render.component(example.render.props);\n}\n\nfunction ExampleList({\n name,\n list,\n selected,\n onSelectStory,\n}: {\n name: string;\n list: {\n name: string;\n examples: ExampleItem[];\n }[];\n selected: ExampleItem | undefined;\n onSelectStory: (i: ExampleItem, id: string) => void;\n}): VNode {\n const [isOpen, setOpen] = useState(selected && selected.group === name);\n return (\n <ol style={{ padding: 4, margin: 0 }}>\n <div\n style={{ backgroundColor: \"lightcoral\", cursor: \"pointer\" }}\n onClick={() => setOpen(!isOpen)}\n >\n {name}\n </div>\n <div style={{ display: isOpen ? undefined : \"none\" }}>\n {list.map((k) => (\n <li key={k.name}>\n <dl style={{ margin: 0 }}>\n <dt>{k.name}</dt>\n {k.examples.map((r, i) => {\n const e = encodeURIComponent;\n const eId = `${e(r.group)}-${e(r.component)}-${e(r.name)}`;\n const isSelected =\n selected &&\n selected.component === r.component &&\n selected.group === r.group &&\n selected.name === r.name;\n return (\n <dd\n id={eId}\n key={r.name}\n style={{\n backgroundColor: isSelected\n ? \"green\"\n : i % 2\n ? \"lightgray\"\n : \"lightblue\",\n marginLeft: \"1em\",\n padding: 4,\n cursor: \"pointer\",\n borderRadius: 4,\n marginBottom: 4,\n }}\n >\n <a\n href={`#${eId}`}\n style={{ color: \"black\" }}\n onClick={(e) => {\n e.preventDefault();\n location.hash = `#${eId}`;\n onSelectStory(r, eId);\n history.pushState({}, \"\", `#${eId}`);\n }}\n >\n {r.name}\n </a>\n </dd>\n );\n })}\n </dl>\n </li>\n ))}\n </div>\n </ol>\n );\n}\n\n/**\n * Prevents the UI from redirecting and inform the dev\n * where the <a /> should have redirected\n * @returns\n */\nfunction PreventLinkNavigation({\n children,\n}: {\n children: ComponentChildren;\n}): VNode {\n return (\n <div\n onClick={(e) => {\n let t: any = e.target;\n do {\n if (t.localName === \"a\" && t.getAttribute(\"href\")) {\n alert(`should navigate to: ${t.attributes.href.value}`);\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n } while ((t = t.parentNode));\n return true;\n }}\n >\n {children}\n </div>\n );\n}\n\nfunction ErrorReport({\n children,\n selected,\n}: {\n children: ComponentChild;\n selected: ExampleItem | undefined;\n}): VNode {\n const [error, resetError] = useErrorBoundary();\n //if there is an error, reset when unloading this component\n useEffect(() => (error ? resetError : undefined));\n if (error) {\n return (\n <div>\n <p>Error was thrown trying to render</p>\n {selected && (\n <ul>\n <li>\n <b>group</b>: {selected.group}\n </li>\n <li>\n <b>component</b>: {selected.component}\n </li>\n <li>\n <b>example</b>: {selected.name}\n </li>\n <li>\n <b>args</b>:{\" \"}\n <pre>{JSON.stringify(selected.render.props, undefined, 2)}</pre>\n </li>\n </ul>\n )}\n <p>{error.message}</p>\n <pre>{error.stack}</pre>\n </div>\n );\n }\n return <Fragment>{children}</Fragment>;\n}\n\nfunction getSelectionFromLocationHash(\n hash: string,\n allExamples: Group[],\n): ExampleItem | undefined {\n if (!hash) return undefined;\n const parts = hash.substring(1).split(\"-\");\n if (parts.length < 3) return undefined;\n return findByGroupComponentName(\n allExamples,\n decodeURIComponent(parts[0]),\n decodeURIComponent(parts[1]),\n decodeURIComponent(parts[2]),\n );\n}\n\nfunction parseExampleImport(\n group: string,\n componentName: string,\n im: MaybeComponent,\n): ComponentItem {\n const examples: ExampleItem[] = Object.entries(im)\n .filter(([k]) => k !== \"default\")\n .map(([exampleName, exampleValue]): ExampleItem => {\n if (!exampleValue) {\n throw Error(\n `example \"${exampleName}\" from component \"${componentName}\" in group \"${group}\" is undefined`,\n );\n }\n\n if (typeof exampleValue === \"function\") {\n return {\n group,\n component: componentName,\n name: exampleName,\n render: {\n component: exampleValue as FunctionComponent,\n props: {},\n contextProps: {},\n },\n };\n }\n const v: any = exampleValue;\n if (\n \"component\" in v &&\n typeof v.component === \"function\" &&\n \"props\" in v\n ) {\n return {\n group,\n component: componentName,\n name: exampleName,\n render: v,\n };\n }\n throw Error(\n `example \"${exampleName}\" from component \"${componentName}\" in group \"${group}\" doesn't follow one of the two ways of example`,\n );\n });\n return {\n name: componentName,\n examples,\n };\n}\n\nexport function parseGroupImport(\n groups: Record<string, ComponentOrFolder>,\n): Group[] {\n return Object.entries(groups).map(([groupName, value]) => {\n return {\n title: groupName,\n list: Object.entries(value).flatMap(([key, value]) =>\n folder(groupName, value),\n ),\n };\n });\n}\n\nexport interface Group {\n title: string;\n list: ComponentItem[];\n}\n\nexport interface ComponentItem<Props extends object = {}> {\n name: string;\n examples: ExampleItem<Props>[];\n}\n\nexport interface ExampleItem<Props extends object = {}> {\n group: string;\n component: string;\n name: string;\n render: ExampleItemSetup<Props>;\n}\n\ntype ComponentOrFolder = MaybeComponent | MaybeFolder;\ninterface MaybeFolder {\n default?: { title: string };\n // [exampleName: string]: FunctionalComponent;\n}\ninterface MaybeComponent {\n // default?: undefined;\n [exampleName: string]: undefined | object;\n}\n\nfunction folder(groupName: string, value: ComponentOrFolder): ComponentItem[] {\n let title: string | undefined = undefined;\n try {\n title =\n typeof value === \"object\" &&\n typeof value.default === \"object\" &&\n value.default !== undefined &&\n \"title\" in value.default &&\n typeof value.default.title === \"string\"\n ? value.default.title\n : undefined;\n } catch (e) {\n throw Error(\n `Could not defined if it is component or folder ${groupName}: ${JSON.stringify(\n value,\n undefined,\n 2,\n )}`,\n );\n }\n if (title) {\n const c = parseExampleImport(groupName, title, value as MaybeComponent);\n return [c];\n }\n return Object.entries(value).flatMap(([subkey, value]) =>\n folder(groupName, value),\n );\n}\n\ninterface Props {\n getWrapperForGroup: (name: string) => FunctionComponent;\n examplesInGroups: Group[];\n langs: Record<string, object>;\n}\n\nfunction Application({\n langs,\n examplesInGroups,\n getWrapperForGroup,\n}: Props): VNode {\n const initialSelection = getSelectionFromLocationHash(\n location.hash,\n examplesInGroups,\n );\n\n const url = new URL(window.location.href);\n const currentLang = url.searchParams.get(\"lang\") || \"en\";\n\n if (!langs[\"en\"]) {\n langs[\"en\"] = {};\n }\n setupI18n(currentLang, langs);\n\n const [selected, updateSelected] = useState<ExampleItem | undefined>(\n initialSelection,\n );\n const [sidebarWidth, setSidebarWidth] = useState(200);\n useEffect(() => {\n if (location.hash) {\n const hash = location.hash.substring(1);\n const found = document.getElementById(hash);\n if (found) {\n setTimeout(() => {\n found.scrollIntoView({\n block: \"center\",\n });\n }, 10);\n }\n }\n }, []);\n\n const GroupWrapper = getWrapperForGroup(selected?.group || \"default\");\n const ExampleContent = getContentForExample(selected, examplesInGroups);\n\n //style={{ \"--with-size\": `${sidebarWidth}px` }}\n return (\n <Page>\n {/* <LiveReload /> */}\n <SideBar width={sidebarWidth}>\n <div>\n Language:\n <select\n value={currentLang}\n onChange={(e) => {\n const url = new URL(window.location.href);\n url.searchParams.set(\"lang\", e.currentTarget.value);\n window.location.href = url.href;\n }}\n >\n {Object.keys(langs).map((l) => (\n <option key={l}>{l}</option>\n ))}\n </select>\n </div>\n {examplesInGroups.map((group) => (\n <ExampleList\n key={group.title}\n name={group.title}\n list={group.list}\n selected={selected}\n onSelectStory={(item, htmlId) => {\n document.getElementById(htmlId)?.scrollIntoView({\n block: \"center\",\n });\n updateSelected(item);\n }}\n />\n ))}\n <hr />\n </SideBar>\n <ResizeHandle\n onUpdate={(x) => {\n setSidebarWidth((s) => s + x);\n }}\n />\n <Content>\n <ErrorReport selected={selected}>\n <PreventLinkNavigation>\n <GroupWrapper>\n <ExampleContent />\n </GroupWrapper>\n </PreventLinkNavigation>\n </ErrorReport>\n </Content>\n </Page>\n );\n}\n\nexport interface Options {\n id?: string;\n strings?: any;\n getWrapperForGroup?: (name: string) => FunctionComponent;\n}\n\nexport function renderStories(\n groups: Record<string, ComponentOrFolder>,\n options: Options = {},\n): void {\n const examples = parseGroupImport(groups);\n\n try {\n const cid = options.id ?? \"container\";\n const container = document.getElementById(cid);\n if (!container) {\n throw Error(\n `container with id ${cid} not found, can't mount page contents`,\n );\n }\n render(\n <Application\n examplesInGroups={examples}\n getWrapperForGroup={options.getWrapperForGroup ?? (() => Fragment)}\n langs={options.strings ?? { en: {} }}\n />,\n container,\n );\n } catch (e) {\n console.error(\"got error\", e);\n if (e instanceof Error) {\n document.body.innerText = `Fatal error: \"${e.message}\". Please report this bug at https://bugs.gnunet.org/.`;\n }\n }\n}\n\nfunction ResizeHandle({ onUpdate }: { onUpdate: (x: number) => void }): VNode {\n const [start, setStart] = useState<number | undefined>(undefined);\n return (\n <ResizeHandleDiv\n onMouseDown={(e: any) => {\n setStart(e.pageX);\n console.log(\"active\", e.pageX);\n return false;\n }}\n onMouseMove={(e: any) => {\n if (start !== undefined) {\n onUpdate(e.pageX - start);\n }\n return false;\n }}\n onMouseUp={() => {\n setStart(undefined);\n return false;\n }}\n />\n );\n}\n", "import { TranslationProvider } from \"@gnu-taler/web-util/browser\";\nimport { h, VNode } from \"preact\";\nimport { ExchangeAmlFrame } from \"./Dashboard.js\";\nimport \"./scss/main.css\";\nimport { ExchangeApiProvider } from \"./context/config.js\";\nimport { getInitialBackendBaseURL } from \"./hooks/useBackend.js\";\nimport { Router } from \"./route.js\";\nimport { Pages } from \"./pages.js\";\n\nconst pageList = Object.values(Pages);\n\n\nexport function App(): VNode {\n const baseUrl = getInitialBackendBaseURL();\n return (\n <TranslationProvider source={{}}>\n <ExchangeApiProvider baseUrl={baseUrl} frameOnError={ExchangeAmlFrame}>\n <ExchangeAmlFrame>\n <Router\n pageList={pageList}\n onNotFound={() => {\n window.location.href = Pages.cases.url\n return <div>not found</div>;\n }}\n />\n </ExchangeAmlFrame>\n </ExchangeApiProvider>\n </TranslationProvider>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Footer, GlobalNotificationsBanner, Header, notifyError, notifyException, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\nimport { useEffect, useErrorBoundary } from \"preact/hooks\";\nimport { useOfficer } from \"./hooks/useOfficer.js\";\nimport { getAllBooleanSettings, getLabelForSetting, useSettings } from \"./hooks/useSettings.js\";\nimport { Pages } from \"./pages.js\";\nimport { PageEntry, useChangeLocation, useCurrentLocation } from \"./route.js\";\nimport { uiSettings } from \"./settings.js\";\n\nfunction classNames(...classes: string[]) {\n return classes.filter(Boolean).join(\" \");\n}\n\n/**\n * mapping route to view\n * not found (error page)\n * nested, index element, relative routes\n * link interception\n * form POST interception, call action\n * fromData => Object.fromEntries\n * segments in the URL\n * navigationState: idle, submitting, loading\n * form GET interception: does a navigateTo\n * form GET Sync:\n * 1.- back after submit: useEffect to sync URL to form\n * 2.- refresh after submit: input default value\n * useSubmit for form submission onChange, history replace\n *\n * post form without redirect\n *\n *\n * @param param0\n * @returns\n */\n\nconst GIT_HASH = typeof __GIT_HASH__ !== \"undefined\" ? __GIT_HASH__ : undefined;\nconst VERSION = typeof __VERSION__ !== \"undefined\" ? __VERSION__ : undefined;\n\nconst versionText = VERSION\n ? GIT_HASH\n ? `v${VERSION} (${GIT_HASH.substring(0, 8)})`\n : VERSION\n : \"\";\n\n/**\n * TO BE FIXED:\n *\n * 1.- when the form change to other form and both form share the same structure\n * the same input component may be rendered in the same place,\n * since input are uncontrolled the are not re-rendered and since they are\n * uncontrolled it will keep the value of the previous form.\n * One solutions could be to remove the form when unloading and when the new\n * form load it will start without previous vdom, preventing the cache\n * to create this behavior.\n * Other solutions could be using IDs in the fields that are constructed\n * with the ID of the form, so two fields of different form will need to re-render\n * cleaning up the state of the previous form.\n *\n * 2.- currently the design prop and the behavior prop of the flexible form\n * are two side of the same coin. From the design point of view, it is important\n * to design the form in a list-of-field manner and there may be additional\n * content that is not directly mapped to the form structure (object)\n * So maybe we want to change the current shape so the computation of the state\n * of the form is in a field level, but this computation required the field value and\n * the whole form values and state (since one field may be disabled/hidden) because\n * of the value of other field.\n *\n * 3.- given the previous requirement, maybe the name of the field of the form could be\n * a function (P: F -> V) where F is the form (or parent object) and V is the type of the\n * property. That will help with the typing of the forms props\n *\n * 4.- tooltip are not placed correctly: the arrow should point the question mark\n * and the text area should be bigger\n *\n * 5.- date field should have the calendar icon clickable so the user can select date without\n * writing text with the correct format\n */\n\nconst pageList = Object.values(Pages);\nfunction LeftMenu() {\n const currentLocation = useCurrentLocation(pageList);\n\n return (\n <nav class=\"flex flex-1 flex-col\">\n <ul role=\"list\" class=\"flex flex-1 flex-col gap-y-7\">\n <li>\n <ul role=\"list\" class=\"-mx-2 space-y-1\">\n <li>\n <a\n href={Pages.cases.url}\n class={classNames(\n Pages.cases.url === currentLocation?.path\n ? \"bg-indigo-700 text-white\"\n : \"text-indigo-200 hover:text-white hover:bg-indigo-700\",\n \"group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\",\n )}\n >\n {/* <InformationCircleIcon\n class={classNames(\n Pages.cases.url === currentLocation?.path\n ? \"text-white\"\n : \"text-indigo-200 group-hover:text-white\",\n \"h-6 w-6 shrink-0\",\n )}\n aria-hidden=\"true\"\n /> */}\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n\n Cases\n </a>\n </li>\n <li>\n <a\n href={Pages.officer.url}\n class={classNames(\n Pages.officer.url === currentLocation?.path\n ? \"bg-indigo-700 text-white\"\n : \"text-indigo-200 hover:text-white hover:bg-indigo-700\",\n \"group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\",\n )}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M17.982 18.725A7.488 7.488 0 0012 15.75a7.488 7.488 0 00-5.982 2.975m11.963 0a9 9 0 10-11.963 0m11.963 0A8.966 8.966 0 0112 21a8.966 8.966 0 01-5.982-2.275M15 9.75a3 3 0 11-6 0 3 3 0 016 0z\" />\n </svg>\n\n {/* <UserIcon\n class={classNames(\n Pages.officer.url === currentLocation?.path\n ? \"text-white\"\n : \"text-indigo-200 group-hover:text-white\",\n \"h-6 w-6 shrink-0\",\n )}\n aria-hidden=\"true\"\n /> */}\n Account\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </nav>\n );\n}\n\n\nexport function ExchangeAmlFrame({\n children,\n}: {\n children?: ComponentChildren;\n}): VNode {\n const { i18n } = useTranslationContext();\n\n const [error, resetError] = useErrorBoundary();\n\n useEffect(() => {\n if (error) {\n if (error instanceof Error) {\n notifyException(i18n.str`Internal error, please report.`, error)\n } else {\n notifyError(i18n.str`Internal error, please report.`, String(error) as TranslatedString)\n }\n resetError()\n }\n }, [error])\n\n const officer = useOfficer();\n const [settings, updateSettings] = useSettings();\n\n return (<div class=\"min-h-full flex flex-col m-0 bg-slate-200\" style=\"min-height: 100vh;\">\n <div class=\"bg-indigo-600 pb-32\">\n <Header\n title=\"Exchange\"\n iconLinkURL={uiSettings.backendBaseURL ?? \"#\"}\n onLogout={officer.state !== \"ready\" ? undefined : () => {\n officer.lock()\n }}\n sites={[]}\n supportedLangs={[\"en\", \"es\", \"de\"]}\n >\n <li>\n <div class=\"text-xs font-semibold leading-6 text-gray-400\">\n <i18n.Translate>Preferences</i18n.Translate>\n </div>\n <ul role=\"list\" class=\"space-y-1\">\n {getAllBooleanSettings().map(set => {\n const isOn: boolean = !!settings[set]\n return <li class=\"mt-2 pl-2\">\n <div class=\"flex items-center justify-between\">\n <span class=\"flex flex-grow flex-col\">\n <span class=\"text-sm text-black font-medium leading-6 \" id=\"availability-label\">\n {getLabelForSetting(set, i18n)}\n </span>\n </span>\n <button type=\"button\" data-enabled={isOn} class=\"bg-indigo-600 data-[enabled=false]:bg-gray-200 relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-600 focus:ring-offset-2\" role=\"switch\" aria-checked=\"false\" aria-labelledby=\"availability-label\" aria-describedby=\"availability-description\"\n\n onClick={() => { updateSettings(set, !isOn); }}>\n <span aria-hidden=\"true\" data-enabled={isOn} class=\"translate-x-5 data-[enabled=false]:translate-x-0 pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out\"></span>\n </button>\n </div>\n </li>\n })}\n </ul>\n </li>\n </Header>\n </div>\n\n <GlobalNotificationsBanner />\n\n <main class=\"-mt-32 flex grow \">\n {officer.state !== \"ready\" ? undefined :\n <Navigation />\n }\n <div class=\"flex mx-auto my-4\">\n <div class=\"rounded-lg bg-white px-5 py-6 shadow sm:px-6\">\n {children}\n </div>\n </div>\n\n </main>\n\n <Footer\n testingUrl={localStorage.getItem(\"exchange-base-url\") ?? undefined}\n GIT_HASH={GIT_HASH}\n VERSION={VERSION}\n />\n </div>\n );\n}\n\nfunction Navigation(): VNode {\n const { i18n } = useTranslationContext()\n const pageList: Array<PageEntry> = [\n Pages.officer,\n Pages.cases\n ]\n const location = useChangeLocation();\n return (\n <div class=\"flex gap-y-5 w-48 bg-indigo-600 divide-y rounded-r-lg divide-cyan-800 overflow-y-auto overflow-x-clip\">\n\n <nav class=\"flex flex-1 flex-col mx-4 mt-4 mb-2\">\n <ul role=\"list\" class=\"flex flex-1 flex-col gap-y-7\">\n <li>\n <ul role=\"list\" class=\"-mx-2 space-y-1\">\n {pageList.map(p => {\n \n return <li>\n {/* <!-- Current: \"bg-indigo-700 text-white\", \n Default: \"text-indigo-200 hover:text-white hover:bg-indigo-700\" --> */}\n <a href={p.url} data-selected={location == p.url} \n class=\"data-[selected=true]:bg-indigo-700 data-[selected=true]:text-white text-indigo-200 hover:text-white hover:bg-indigo-700 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\">\n { p.Icon && <p.Icon />}\n {p.name}\n </a>\n </li>\n\n })}\n {/* <li>\n <a href=\"#\" class=\"text-indigo-200 hover:text-white hover:bg-indigo-700 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\">\n\n <i18n.Translate>Officer</i18n.Translate>\n </a>\n </li> */}\n </ul>\n </li>\n\n {/* <li class=\"mt-auto \">\n <a href=\"#\" class=\"group -mx-2 flex gap-x-3 rounded-md p-2 text-sm font-semibold leading-6 text-indigo-200 hover:bg-indigo-700 hover:text-white\">\n <svg class=\"h-6 w-6 shrink-0 text-indigo-200 group-hover:text-white\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.087.22-.128.332-.183.582-.495.644-.869l.214-1.281z\" />\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\" />\n </svg>\n Settings\n </a>\n </li> */}\n\n </ul>\n </nav>\n </div>\n )\n\n}\n\n\n", "import {\n AbsoluteTime,\n Codec,\n LockedAccount,\n OfficerAccount,\n buildCodecForObject,\n codecForAbsoluteTime,\n codecForString,\n createNewOfficerAccount,\n unlockOfficerAccount,\n} from \"@gnu-taler/taler-util\";\nimport {\n buildStorageKey,\n useLocalStorage,\n useMemoryStorage,\n} from \"@gnu-taler/web-util/browser\";\n\nexport interface Officer {\n account: LockedAccount;\n when: AbsoluteTime;\n}\n\nconst codecForLockedAccount = codecForString() as Codec<LockedAccount>;\n\nexport const codecForOfficer = (): Codec<Officer> =>\n buildCodecForObject<Officer>()\n .property(\"account\", codecForLockedAccount) // FIXME\n .property(\"when\", codecForAbsoluteTime) // FIXME\n .build(\"Officer\");\n\nexport type OfficerState = OfficerNotReady | OfficerReady;\nexport type OfficerNotReady = OfficerNotFound | OfficerLocked;\ninterface OfficerNotFound {\n state: \"not-found\";\n create: (password: string) => Promise<void>;\n}\ninterface OfficerLocked {\n state: \"locked\";\n forget: () => void;\n tryUnlock: (password: string) => Promise<void>;\n}\ninterface OfficerReady {\n state: \"ready\";\n account: OfficerAccount;\n forget: () => void;\n lock: () => void;\n}\n\nconst OFFICER_KEY = buildStorageKey(\"officer\", codecForOfficer());\nconst ACCOUNT_KEY = \"account\";\n\nexport function useOfficer(): OfficerState {\n const accountStorage = useMemoryStorage<OfficerAccount>(ACCOUNT_KEY);\n const officerStorage = useLocalStorage(OFFICER_KEY);\n\n const officer = officerStorage.value;\n const account = accountStorage.value;\n\n if (officer === undefined) {\n return {\n state: \"not-found\",\n create: async (pwd: string) => {\n const { id, safe, signingKey } = await createNewOfficerAccount(pwd);\n officerStorage.update({\n account: safe,\n when: AbsoluteTime.now(),\n });\n\n accountStorage.update({ id, signingKey });\n },\n };\n }\n\n if (account === undefined) {\n return {\n state: \"locked\",\n forget: () => {\n officerStorage.reset();\n },\n tryUnlock: async (pwd: string) => {\n const ac = await unlockOfficerAccount(officer.account, pwd);\n accountStorage.update(ac);\n },\n };\n }\n\n return {\n state: \"ready\",\n account: account,\n lock: () => {\n accountStorage.reset();\n },\n forget: () => {\n officerStorage.reset();\n accountStorage.reset();\n },\n };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport {\n Codec,\n TranslatedString,\n buildCodecForObject,\n codecForBoolean,\n codecForNumber,\n codecForString,\n codecOptional\n} from \"@gnu-taler/taler-util\";\nimport { buildStorageKey, useLocalStorage, useTranslationContext } from \"@gnu-taler/web-util/browser\";\n\ninterface Settings {\n allowInsecurePassword: boolean;\n}\n\nexport function getAllBooleanSettings(): Array<keyof Settings> {\n return [\"allowInsecurePassword\"]\n}\n\nexport function getLabelForSetting(k: keyof Settings, i18n: ReturnType<typeof useTranslationContext>[\"i18n\"]): TranslatedString {\n switch (k) {\n case \"allowInsecurePassword\": return i18n.str`Allow Insecure password`\n }\n}\n\nexport const codecForSettings = (): Codec<Settings> =>\n buildCodecForObject<Settings>()\n .property(\"allowInsecurePassword\", (codecForBoolean()))\n .build(\"Settings\");\n\nconst defaultSettings: Settings = {\n allowInsecurePassword: false,\n};\n\nconst EXCHANGE_SETTINGS_KEY = buildStorageKey(\n \"exchange-settings\",\n codecForSettings(),\n);\n\nexport function useSettings(): [\n Readonly<Settings>,\n <T extends keyof Settings>(key: T, value: Settings[T]) => void,\n] {\n const { value, update } = useLocalStorage(\n EXCHANGE_SETTINGS_KEY,\n defaultSettings,\n );\n\n function updateField<T extends keyof Settings>(k: T, v: Settings[T]) {\n const newValue = { ...value, [k]: v };\n update(newValue);\n }\n return [value, updateField];\n}\n", "export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}", "export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}", "var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}", "/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}", "/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}", "import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}", "import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}", "import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;", "import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;", "var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;", "var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}", "var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;", "export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}", "import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;", "var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;", "export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}", "import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;", "export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}", "export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}", "import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;", "import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;", "import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;", "import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}", "export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n\n return target;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n\n _defineProperty(this, \"subPriority\", 0);\n }\n\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n\n var _super = _createSuper(ValueSetter);\n\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n\n _classCallCheck(this, ValueSetter);\n\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n\n return _this;\n }\n\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n\n function DateToSystemTimezoneSetter() {\n var _this2;\n\n _classCallCheck(this, DateToSystemTimezoneSetter);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n\n return _this2;\n }\n\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n\n return DateToSystemTimezoneSetter;\n}(Setter);", "function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n }\n\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n\n return Parser;\n}();", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n\n var _super = _createSuper(EraParser);\n\n function EraParser() {\n var _this;\n\n _classCallCheck(this, EraParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n\n return _this;\n }\n\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return EraParser;\n}(Parser);", "export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};", "import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n\n var _super = _createSuper(YearParser);\n\n function YearParser() {\n var _this;\n\n _classCallCheck(this, YearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return YearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n\n var _super = _createSuper(LocalWeekYearParser);\n\n function LocalWeekYearParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n\n return LocalWeekYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\n\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n\n var _super = _createSuper(ISOWeekYearParser);\n\n function ISOWeekYearParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n\n return ISOWeekYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n\n var _super = _createSuper(ExtendedYearParser);\n\n function ExtendedYearParser() {\n var _this;\n\n _classCallCheck(this, ExtendedYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ExtendedYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n\n var _super = _createSuper(QuarterParser);\n\n function QuarterParser() {\n var _this;\n\n _classCallCheck(this, QuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return QuarterParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n\n var _super = _createSuper(StandAloneQuarterParser);\n\n function StandAloneQuarterParser() {\n var _this;\n\n _classCallCheck(this, StandAloneQuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneQuarterParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n\n var _super = _createSuper(MonthParser);\n\n function MonthParser() {\n var _this;\n\n _classCallCheck(this, MonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n return _this;\n }\n\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return MonthParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n\n var _super = _createSuper(StandAloneMonthParser);\n\n function StandAloneMonthParser() {\n var _this;\n\n _classCallCheck(this, StandAloneMonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneMonthParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\n\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n\n var _super = _createSuper(LocalWeekParser);\n\n function LocalWeekParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n\n return LocalWeekParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\n\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n\n var _super = _createSuper(ISOWeekParser);\n\n function ISOWeekParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n\n return ISOWeekParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // Day of the month\n\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n\n var _super = _createSuper(DateParser);\n\n function DateParser() {\n var _this;\n\n _classCallCheck(this, DateParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DateParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n\n var _super = _createSuper(DayOfYearParser);\n\n function DayOfYearParser() {\n var _this;\n\n _classCallCheck(this, DayOfYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayOfYearParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\n\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n\n var _super = _createSuper(DayParser);\n\n function DayParser() {\n var _this;\n\n _classCallCheck(this, DayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\n\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n\n var _super = _createSuper(LocalDayParser);\n\n function LocalDayParser() {\n var _this;\n\n _classCallCheck(this, LocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return LocalDayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\n\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n\n var _super = _createSuper(StandAloneLocalDayParser);\n\n function StandAloneLocalDayParser() {\n var _this;\n\n _classCallCheck(this, StandAloneLocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneLocalDayParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\n\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n\n var _super = _createSuper(ISODayParser);\n\n function ISODayParser() {\n var _this;\n\n _classCallCheck(this, ISODayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ISODayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n\n var _super = _createSuper(AMPMParser);\n\n function AMPMParser() {\n var _this;\n\n _classCallCheck(this, AMPMParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n\n var _super = _createSuper(AMPMMidnightParser);\n\n function AMPMMidnightParser() {\n var _this;\n\n _classCallCheck(this, AMPMMidnightParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMMidnightParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\n\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n\n var _super = _createSuper(DayPeriodParser);\n\n function DayPeriodParser() {\n var _this;\n\n _classCallCheck(this, DayPeriodParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return DayPeriodParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n\n var _super = _createSuper(Hour1to12Parser);\n\n function Hour1to12Parser() {\n var _this;\n\n _classCallCheck(this, Hour1to12Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour1to12Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n\n var _super = _createSuper(Hour0to23Parser);\n\n function Hour0to23Parser() {\n var _this;\n\n _classCallCheck(this, Hour0to23Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour0to23Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n\n var _super = _createSuper(Hour0To11Parser);\n\n function Hour0To11Parser() {\n var _this;\n\n _classCallCheck(this, Hour0To11Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour0To11Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n\n var _super = _createSuper(Hour1To24Parser);\n\n function Hour1To24Parser() {\n var _this;\n\n _classCallCheck(this, Hour1To24Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour1To24Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n\n var _super = _createSuper(MinuteParser);\n\n function MinuteParser() {\n var _this;\n\n _classCallCheck(this, MinuteParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n\n return MinuteParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n\n var _super = _createSuper(SecondParser);\n\n function SecondParser() {\n var _this;\n\n _classCallCheck(this, SecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n\n return SecondParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n\n var _super = _createSuper(FractionOfSecondParser);\n\n function FractionOfSecondParser() {\n var _this;\n\n _classCallCheck(this, FractionOfSecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n\n return FractionOfSecondParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\n\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneWithZParser);\n\n function ISOTimezoneWithZParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneWithZParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneWithZParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\n\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneParser);\n\n function ISOTimezoneParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n\n var _super = _createSuper(TimestampSecondsParser);\n\n function TimestampSecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampSecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampSecondsParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n\n var _super = _createSuper(TimestampMillisecondsParser);\n\n function TimestampMillisecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampMillisecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampMillisecondsParser;\n}(Parser);", "import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n\n try {\n var _loop = function _loop() {\n var token = _step.value;\n\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n\n if (_typeof(_ret) === \"object\") return _ret.v;\n } // Check if the remaining input contains something other than whitespace\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, subFnOptions); // Result is tuple (date, flags)\n\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return utcDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}", "import {\n AbsoluteTime,\n AmountJson,\n Amounts,\n TalerError,\n TranslatedString,\n assertUnreachable\n} from \"@gnu-taler/taler-util\";\nimport { ErrorLoading, Loading, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { useCaseDetails } from \"../hooks/useCaseDetails.js\";\nimport { Pages } from \"../pages.js\";\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { ShowConsolidated } from \"./ShowConsolidated.js\";\n\nexport type AmlEvent = AmlFormEvent | KycCollectionEvent | KycExpirationEvent;\ntype AmlFormEvent = {\n type: \"aml-form\";\n when: AbsoluteTime;\n title: TranslatedString;\n state: AmlExchangeBackend.AmlState;\n threshold: AmountJson;\n};\ntype KycCollectionEvent = {\n type: \"kyc-collection\";\n when: AbsoluteTime;\n title: TranslatedString;\n values: object;\n provider: string;\n};\ntype KycExpirationEvent = {\n type: \"kyc-expiration\";\n when: AbsoluteTime;\n title: TranslatedString;\n fields: string[];\n};\n\ntype WithTime = { when: AbsoluteTime };\n\nfunction selectSooner(a: WithTime, b: WithTime) {\n return AbsoluteTime.cmp(a.when, b.when);\n}\n\nexport function getEventsFromAmlHistory(\n aml: AmlExchangeBackend.AmlDecisionDetail[],\n kyc: AmlExchangeBackend.KycDetail[],\n): AmlEvent[] {\n const ae: AmlEvent[] = aml.map((a) => {\n return {\n type: \"aml-form\",\n state: a.new_state,\n threshold: Amounts.parseOrThrow(a.new_threshold),\n title: a.justification as TranslatedString,\n when: {\n t_ms:\n a.decision_time.t_s === \"never\"\n ? \"never\"\n : a.decision_time.t_s * 1000,\n },\n } as AmlEvent;\n });\n const ke = kyc.reduce((prev, k) => {\n prev.push({\n type: \"kyc-collection\",\n title: \"collection\" as TranslatedString,\n when: AbsoluteTime.fromProtocolTimestamp(k.collection_time),\n values: !k.attributes ? {} : k.attributes,\n provider: k.provider_section,\n });\n prev.push({\n type: \"kyc-expiration\",\n title: \"expiration\" as TranslatedString,\n when: AbsoluteTime.fromProtocolTimestamp(k.expiration_time),\n fields: !k.attributes ? [] : Object.keys(k.attributes),\n });\n return prev;\n }, [] as AmlEvent[]);\n return ae.concat(ke).sort(selectSooner);\n}\n\nexport function CaseDetails({ account }: { account: string }) {\n const [selected, setSelected] = useState<AmlEvent | undefined>(undefined);\n\n const { i18n } = useTranslationContext();\n const details = useCaseDetails(account)\n if (!details) {\n return <Loading />\n }\n if (details instanceof TalerError) {\n return <ErrorLoading error={details} />\n }\n if (details.type === \"fail\") {\n switch (details.case) {\n case \"unauthorized\":\n case \"officer-not-found\":\n case \"officer-disabled\": return <div />\n default: assertUnreachable(details)\n }\n }\n const { aml_history, kyc_attributes } = details.body\n\n const events = getEventsFromAmlHistory(aml_history, kyc_attributes);\n\n return (\n <div>\n <a\n href={Pages.newFormEntry.url({ account })}\n class=\"m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700\"\n >\n <i18n.Translate>\n New AML form\n </i18n.Translate>\n </a>\n\n <header class=\"flex items-center justify-between border-b border-white/5 px-4 py-4 sm:px-6 sm:py-6 lg:px-8\">\n <h1 class=\"text-base font-semibold leading-7 text-black\">\n <i18n.Translate>\n Case history\n </i18n.Translate>\n </h1>\n </header>\n <div class=\"flow-root\">\n <ul role=\"list\">\n {events.map((e, idx) => {\n const isLast = events.length - 1 === idx;\n return (\n <li\n class=\"hover:bg-gray-200 p-2 rounded cursor-pointer\"\n onClick={() => {\n setSelected(e);\n }}\n >\n <div class=\"relative pb-6\">\n {!isLast ? (\n <span\n class=\"absolute left-4 top-4 -ml-px h-full w-1 bg-gray-200\"\n aria-hidden=\"true\"\n ></span>\n ) : undefined}\n <div class=\"relative flex space-x-3\">\n {(() => {\n switch (e.type) {\n case \"aml-form\": {\n switch (e.state) {\n case AmlExchangeBackend.AmlState.normal: {\n return (\n <div>\n <span class=\"inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20\">\n Normal\n </span>\n <span class=\"inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 \">\n {e.threshold.currency}{\" \"}\n {Amounts.stringifyValue(e.threshold)}\n </span>\n </div>\n );\n }\n case AmlExchangeBackend.AmlState.pending: {\n return (\n <div>\n <span class=\"inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20\">\n Pending\n </span>\n <span class=\"inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 \">\n {e.threshold.currency}{\" \"}\n {Amounts.stringifyValue(e.threshold)}\n </span>\n </div>\n );\n }\n case AmlExchangeBackend.AmlState.frozen: {\n return (\n <div>\n <span class=\"inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20\">\n Frozen\n </span>\n <span class=\"inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 \">\n {e.threshold.currency}{\" \"}\n {Amounts.stringifyValue(e.threshold)}\n </span>\n </div>\n );\n }\n }\n }\n case \"kyc-collection\": {\n return (\n // <ArrowDownCircleIcon class=\"h-8 w-8 text-green-700\" />\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75l3 3m0 0l3-3m-3 3v-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n );\n }\n case \"kyc-expiration\": {\n // return <ClockIcon class=\"h-8 w-8 text-gray-700\" />;\n return <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n\n }\n }\n })()}\n <div class=\"flex min-w-0 flex-1 justify-between space-x-4 pt-1.5\">\n <div>\n <p class=\"text-sm text-gray-900\">{e.title}</p>\n </div>\n <div class=\"whitespace-nowrap text-right text-sm text-gray-500\">\n {e.when.t_ms === \"never\" ? (\n \"never\"\n ) : (\n <time dateTime={format(e.when.t_ms, \"dd MMM yyyy\")}>\n {format(e.when.t_ms, \"dd MMM yyyy\")}\n </time>\n )}\n </div>\n </div>\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n {selected && <ShowEventDetails event={selected} />}\n {selected && <ShowConsolidated history={events} until={selected.when} />}\n </div>\n );\n}\n\nfunction ShowEventDetails({ event }: { event: AmlEvent }): VNode {\n return <div>type {event.type}</div>;\n}\n\n\n", "import { useRef, useMemo, useCallback, useDebugValue } from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\nimport { OBJECT, SWRConfig as SWRConfig$1, defaultConfig, withArgs, SWRGlobalState, serialize, createCacheHelper, isUndefined, getTimestamp, UNDEFINED, isFunction, internalMutate, useIsomorphicLayoutEffect, subscribeCallback, IS_SERVER, rAF, IS_REACT_LEGACY, mergeObjects, revalidateEvents } from 'swr/_internal';\nexport { mutate, preload, useSWRConfig } from 'swr/_internal';\n\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache , compare , suspense , fallbackData , revalidateOnMount , revalidateIfStale , refreshInterval , refreshWhenHidden , refreshWhenOffline , keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH] = SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR `data` state, `keyInfo` holds extra\n // states such as `error` and `isValidating` inside,\n // all of them are derived from `_key`.\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n const [key, fnArg] = serialize(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = useRef(false);\n // Refs to keep the key and config.\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = createCacheHelper(cache, key);\n const stateDependencies = useRef({}).current;\n const fallback = isUndefined(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n let equal = true;\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(current[t], prev[t])) {\n if (isUndefined(prev[t])) {\n if (!compare(current[t], returnedData)) {\n equal = false;\n }\n } else {\n equal = false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n equal = false;\n }\n }\n }\n return equal;\n };\n const getSnapshot = useMemo(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!isUndefined(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = mergeObjects(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = getSelectedCache(getCache());\n const memorizedInitialSnapshot = getSelectedCache(getInitialCache());\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n return isEqual(newSnapshot, memorizedSnapshot) ? memorizedSnapshot : memorizedSnapshot = newSnapshot;\n },\n ()=>memorizedInitialSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = useSyncExternalStore(useCallback((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = isUndefined(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = useRef(data);\n const returnedData = keepPreviousData ? isUndefined(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !isUndefined(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return isUndefined(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return isUndefined(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = isUndefined(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = isUndefined(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = useCallback(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if (isUndefined(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && isUndefined(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n getTimestamp()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || isFunction(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, revalidate, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const boundMutate = useCallback(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return internalMutate(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n useIsomorphicLayoutEffect(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!isUndefined(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type)=>{\n if (type == revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n }\n return;\n };\n const unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation.\n if (shouldDoInitialRevalidation) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n useIsomorphicLayoutEffect(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = isFunction(refreshInterval) ? refreshInterval(data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n useDebugValue(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!IS_REACT_LEGACY && IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n throw isUndefined(error) ? revalidate(WITH_DEDUPE) : error;\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nconst SWRConfig = OBJECT.defineProperty(SWRConfig$1, 'defaultValue', {\n value: defaultConfig\n});\nconst unstable_serialize = (key)=>serialize(key)[0];\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error } = useSWR('/api/user', fetcher)\n * if (error) return <div>failed to load</div>\n * if (!data) return <div>loading...</div>\n * return <div>hello {data.name}!</div>\n * }\n * ```\n */ var useSWR = withArgs(useSWRHandler);\n\n// useSWR\n\nexport { SWRConfig, useSWR as default, unstable_serialize };\n", "import React, { useEffect, useLayoutEffect, createContext, useContext, useMemo, useState, createElement, useRef, useCallback } from 'react';\n\n// Global state used to deduplicate requests and store listeners\nconst SWRGlobalState = new WeakMap();\n\nconst EMPTY_CACHE = {};\nconst INITIAL_CACHE = {};\nconst noop = ()=>{};\n// Using noop() as the undefined value as undefined can be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nconst UNDEFINED = /*#__NOINLINE__*/ noop();\nconst OBJECT = Object;\nconst isUndefined = (v)=>v === UNDEFINED;\nconst isFunction = (v)=>typeof v == 'function';\nconst mergeObjects = (a, b)=>({\n ...a,\n ...b\n });\nconst STR_UNDEFINED = 'undefined';\n// NOTE: Use the function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nconst isWindowDefined = typeof window != STR_UNDEFINED;\nconst isDocumentDefined = typeof document != STR_UNDEFINED;\nconst hasRequestAnimationFrame = ()=>isWindowDefined && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\nconst createCacheHelper = (cache, key)=>{\n const state = SWRGlobalState.get(cache);\n return [\n // Getter\n ()=>cache.get(key) || EMPTY_CACHE,\n // Setter\n (info)=>{\n if (!isUndefined(key)) {\n const prev = cache.get(key);\n // Before writing to the store, we keep the value in the initial cache\n // if it's not there yet.\n if (!(key in INITIAL_CACHE)) {\n INITIAL_CACHE[key] = prev;\n }\n state[5](key, mergeObjects(prev, info), prev || EMPTY_CACHE);\n }\n },\n // Subscriber\n state[6],\n // Get server cache snapshot\n ()=>{\n if (!isUndefined(key)) {\n // If the cache was updated on the client, we return the stored initial value.\n if (key in INITIAL_CACHE) return INITIAL_CACHE[key];\n }\n // If we haven't done any client-side updates, we return the current value.\n return cache.get(key) || EMPTY_CACHE;\n }\n ];\n};\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nconst table = new WeakMap();\n// counter of the key\nlet counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsable.\nconst stableHash = (arg)=>{\n const type = typeof arg;\n const constructor = arg && arg.constructor;\n const isDate = constructor == Date;\n let result;\n let index;\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result) return result;\n // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n result = ++counter + '~';\n table.set(arg, result);\n if (constructor == Array) {\n // Array.\n result = '@';\n for(index = 0; index < arg.length; index++){\n result += stableHash(arg[index]) + ',';\n }\n table.set(arg, result);\n }\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n const keys = OBJECT.keys(arg).sort();\n while(!isUndefined(index = keys.pop())){\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n table.set(arg, result);\n }\n } else {\n result = isDate ? arg.toJSON() : type == 'symbol' ? arg.toString() : type == 'string' ? JSON.stringify(arg) : '' + arg;\n }\n return result;\n};\n\n/**\n * Due to the bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a workaround, we always assume it's online on the first load, and change\n * the status upon `online` or `offline` events.\n */ let online = true;\nconst isOnline = ()=>online;\n// For node and React Native, `add/removeEventListener` doesn't exist on window.\nconst [onWindowEvent, offWindowEvent] = isWindowDefined && window.addEventListener ? [\n window.addEventListener.bind(window),\n window.removeEventListener.bind(window)\n] : [\n noop,\n noop\n];\nconst isVisible = ()=>{\n const visibilityState = isDocumentDefined && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\nconst initFocus = (callback)=>{\n // focus revalidate\n if (isDocumentDefined) {\n document.addEventListener('visibilitychange', callback);\n }\n onWindowEvent('focus', callback);\n return ()=>{\n if (isDocumentDefined) {\n document.removeEventListener('visibilitychange', callback);\n }\n offWindowEvent('focus', callback);\n };\n};\nconst initReconnect = (callback)=>{\n // revalidate on reconnected\n const onOnline = ()=>{\n online = true;\n callback();\n };\n // nothing to revalidate, just update the status\n const onOffline = ()=>{\n online = false;\n };\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return ()=>{\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\nconst preset = {\n isOnline,\n isVisible\n};\nconst defaultConfigOptions = {\n initFocus,\n initReconnect\n};\n\nconst IS_REACT_LEGACY = !React.useId;\nconst IS_SERVER = !isWindowDefined || 'Deno' in window;\n// Polyfill requestAnimationFrame\nconst rAF = (f)=>hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nconst useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// This assignment is to extend the Navigator type to use effectiveType.\nconst navigatorConnection = typeof navigator !== 'undefined' && navigator.connection;\n// Adjust the config based on slow connection status (<= 70Kbps).\nconst slowConnection = !IS_SERVER && navigatorConnection && ([\n 'slow-2g',\n '2g'\n].includes(navigatorConnection.effectiveType) || navigatorConnection.saveData);\n\nconst serialize = (key)=>{\n if (isFunction(key)) {\n try {\n key = key();\n } catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n // Use the original key as the argument of fetcher. This can be a string or an\n // array of values.\n const args = key;\n // If key is not falsy, or not an empty array, hash it.\n key = typeof key == 'string' ? key : (Array.isArray(key) ? key.length : key) ? stableHash(key) : '';\n return [\n key,\n args\n ];\n};\n\n// Global timestamp.\nlet __timestamp = 0;\nconst getTimestamp = ()=>++__timestamp;\n\nconst FOCUS_EVENT = 0;\nconst RECONNECT_EVENT = 1;\nconst MUTATE_EVENT = 2;\n\nvar constants = {\n __proto__: null,\n FOCUS_EVENT: FOCUS_EVENT,\n RECONNECT_EVENT: RECONNECT_EVENT,\n MUTATE_EVENT: MUTATE_EVENT\n};\n\nasync function internalMutate(...args) {\n const [cache, _key, _data, _opts] = args;\n // When passing as a boolean, it's explicitly used to disable/enable\n // revalidation.\n const options = mergeObjects({\n populateCache: true,\n throwOnError: true\n }, typeof _opts === 'boolean' ? {\n revalidate: _opts\n } : _opts || {});\n let populateCache = options.populateCache;\n const rollbackOnErrorOption = options.rollbackOnError;\n let optimisticData = options.optimisticData;\n const revalidate = options.revalidate !== false;\n const rollbackOnError = (error)=>{\n return typeof rollbackOnErrorOption === 'function' ? rollbackOnErrorOption(error) : rollbackOnErrorOption !== false;\n };\n const throwOnError = options.throwOnError;\n // If the second argument is a key filter, return the mutation results for all\n // filtered keys.\n if (isFunction(_key)) {\n const keyFilter = _key;\n const matchedKeys = [];\n const it = cache.keys();\n for(let keyIt = it.next(); !keyIt.done; keyIt = it.next()){\n const key = keyIt.value;\n if (// Skip the special useSWRInfinite keys.\n !key.startsWith('$inf$') && keyFilter(cache.get(key)._k)) {\n matchedKeys.push(key);\n }\n }\n return Promise.all(matchedKeys.map(mutateByKey));\n }\n return mutateByKey(_key);\n async function mutateByKey(_k) {\n // Serialize key\n const [key] = serialize(_k);\n if (!key) return;\n const [get, set] = createCacheHelper(cache, key);\n const [EVENT_REVALIDATORS, MUTATION, FETCH] = SWRGlobalState.get(cache);\n const revalidators = EVENT_REVALIDATORS[key];\n const startRevalidate = ()=>{\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(()=>get().data);\n }\n }\n return get().data;\n };\n // If there is no new data provided, revalidate the key with current state.\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return startRevalidate();\n }\n let data = _data;\n let error;\n // Update global timestamps.\n const beforeMutationTs = getTimestamp();\n MUTATION[key] = [\n beforeMutationTs,\n 0\n ];\n const hasOptimisticData = !isUndefined(optimisticData);\n const state = get();\n // `displayedData` is the current value on screen. It could be the optimistic value\n // that is going to be overridden by a `committedData`, or get reverted back.\n // `committedData` is the validated value that comes from a fetch or mutation.\n const displayedData = state.data;\n const currentData = state._c;\n const committedData = isUndefined(currentData) ? displayedData : currentData;\n // Do optimistic data update.\n if (hasOptimisticData) {\n optimisticData = isFunction(optimisticData) ? optimisticData(committedData) : optimisticData;\n // When we set optimistic data, backup the current committedData data in `_c`.\n set({\n data: optimisticData,\n _c: committedData\n });\n }\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(committedData);\n } catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n // `data` is a promise/thenable, resolve the final data first.\n if (data && isFunction(data.then)) {\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = await data.catch((err)=>{\n error = err;\n });\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error) throw error;\n return data;\n } else if (error && hasOptimisticData && rollbackOnError(error)) {\n // Rollback. Always populate the cache in this case but without\n // transforming the data.\n populateCache = true;\n data = committedData;\n // Reset data to be the latest committed data, and clear the `_c` value.\n set({\n data,\n _c: UNDEFINED\n });\n }\n }\n // If we should write back the cache after request.\n if (populateCache) {\n if (!error) {\n // Transform the result into data.\n if (isFunction(populateCache)) {\n data = populateCache(data, committedData);\n }\n // Only update cached data if there's no error. Data can be `undefined` here.\n set({\n data,\n _c: UNDEFINED\n });\n }\n }\n // Reset the timestamp to mark the mutation has ended.\n MUTATION[key][1] = getTimestamp();\n // Update existing SWR Hooks' internal states:\n const res = await startRevalidate();\n // The mutation and revalidation are ended, we can clear it since the data is\n // not an optimistic value anymore.\n set({\n _c: UNDEFINED\n });\n // Throw error or return data\n if (error) {\n if (throwOnError) throw error;\n return;\n }\n return populateCache ? res : data;\n }\n}\n\nconst revalidateAllKeys = (revalidators, type)=>{\n for(const key in revalidators){\n if (revalidators[key][0]) revalidators[key][0](type);\n }\n};\nconst initCache = (provider, options)=>{\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that is bound to\n // the cache.\n // The provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n const opts = mergeObjects(defaultConfigOptions, options);\n // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n const EVENT_REVALIDATORS = {};\n const mutate = internalMutate.bind(UNDEFINED, provider);\n let unmount = noop;\n const subscriptions = {};\n const subscribe = (key, callback)=>{\n const subs = subscriptions[key] || [];\n subscriptions[key] = subs;\n subs.push(callback);\n return ()=>subs.splice(subs.indexOf(callback), 1);\n };\n const setter = (key, value, prev)=>{\n provider.set(key, value);\n const subs = subscriptions[key];\n if (subs) {\n for(let i = subs.length; i--;){\n subs[i](value, prev);\n }\n }\n };\n const initProvider = ()=>{\n if (!SWRGlobalState.has(provider)) {\n // Update the state if it's new, or if the provider has been extended.\n SWRGlobalState.set(provider, [\n EVENT_REVALIDATORS,\n {},\n {},\n {},\n mutate,\n setter,\n subscribe\n ]);\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n const releaseFocus = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n const releaseReconnect = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n unmount = ()=>{\n releaseFocus && releaseFocus();\n releaseReconnect && releaseReconnect();\n // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise, when re-mounting we\n // will not re-register those event listeners.\n SWRGlobalState.delete(provider);\n };\n }\n }\n };\n initProvider();\n // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n return [\n provider,\n mutate,\n initProvider,\n unmount\n ];\n }\n return [\n provider,\n SWRGlobalState.get(provider)[4]\n ];\n};\n\n// error retry\nconst onErrorRetry = (_, __, config, revalidate, opts)=>{\n const maxRetryCount = config.errorRetryCount;\n const currentRetryCount = opts.retryCount;\n // Exponential backoff\n const timeout = ~~((Math.random() + 0.5) * (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n setTimeout(revalidate, timeout, opts);\n};\nconst compare = (currentData, newData)=>stableHash(currentData) == stableHash(newData);\n// Default cache provider\nconst [cache, mutate] = initCache(new Map());\n// Default config\nconst defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare,\n isPaused: ()=>false,\n cache,\n mutate,\n fallback: {}\n}, // use web preset by default\npreset);\n\nconst mergeConfigs = (a, b)=>{\n // Need to create a new object to avoid mutating the original here.\n const v = mergeObjects(a, b);\n // If two configs are provided, merge their `use` and `fallback` options.\n if (b) {\n const { use: u1 , fallback: f1 } = a;\n const { use: u2 , fallback: f2 } = b;\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n return v;\n};\n\nconst SWRConfigContext = createContext({});\nconst SWRConfig = (props)=>{\n const { value } = props;\n const parentConfig = useContext(SWRConfigContext);\n const isFunctionalConfig = isFunction(value);\n const config = useMemo(()=>isFunctionalConfig ? value(parentConfig) : value, [\n isFunctionalConfig,\n parentConfig,\n value\n ]);\n // Extend parent context values and middleware.\n const extendedConfig = useMemo(()=>isFunctionalConfig ? config : mergeConfigs(parentConfig, config), [\n isFunctionalConfig,\n parentConfig,\n config\n ]);\n // Should not use the inherited provider.\n const provider = config && config.provider;\n // Use a lazy initialized state to create the cache on first access.\n const [cacheContext] = useState(()=>provider ? initCache(provider(extendedConfig.cache || cache), config) : UNDEFINED);\n // Override the cache if a new provider is given.\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n }\n // Unsubscribe events.\n useIsomorphicLayoutEffect(()=>{\n if (cacheContext) {\n cacheContext[2] && cacheContext[2]();\n return cacheContext[3];\n }\n }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n\n// @ts-expect-error\nconst enableDevtools = isWindowDefined && window.__SWR_DEVTOOLS_USE__;\nconst use = enableDevtools ? window.__SWR_DEVTOOLS_USE__ : [];\nconst setupDevTools = ()=>{\n if (enableDevtools) {\n // @ts-expect-error\n window.__SWR_DEVTOOLS_REACT__ = React;\n }\n};\n\nconst normalize = (args)=>{\n return isFunction(args[1]) ? [\n args[0],\n args[1],\n args[2] || {}\n ] : [\n args[0],\n null,\n (args[1] === null ? args[2] : args[1]) || {}\n ];\n};\n\nconst useSWRConfig = ()=>{\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n};\n\nconst preload = (key_, fetcher)=>{\n const key = serialize(key_)[0];\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n // Prevent preload to be called multiple times before used.\n if (PRELOAD[key]) return PRELOAD[key];\n const req = fetcher(key_);\n PRELOAD[key] = req;\n return req;\n};\nconst middleware = (useSWRNext)=>(key_, fetcher_, config)=>{\n // fetcher might be a sync function, so this should not be an async function\n const fetcher = fetcher_ && ((...args)=>{\n const key = serialize(key_)[0];\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n const req = PRELOAD[key];\n if (req) {\n delete PRELOAD[key];\n return req;\n }\n return fetcher_(...args);\n });\n return useSWRNext(key_, fetcher, config);\n };\n\nconst BUILT_IN_MIDDLEWARE = use.concat(middleware);\n\n// It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\nconst withArgs = (hook)=>{\n return function useSWRArgs(...args) {\n // Get the default and inherited configuration.\n const fallbackConfig = useSWRConfig();\n // Normalize arguments.\n const [key, fn, _config] = normalize(args);\n // Merge configurations.\n const config = mergeConfigs(fallbackConfig, _config);\n // Apply middleware\n let next = hook;\n const { use } = config;\n const middleware = (use || []).concat(BUILT_IN_MIDDLEWARE);\n for(let i = middleware.length; i--;){\n next = middleware[i](next);\n }\n return next(key, fn || config.fetcher || null, config);\n };\n};\n\n/**\n * An implementation of state with dependency-tracking.\n */ const useStateWithDeps = (state)=>{\n const rerender = useState({})[1];\n const unmountedRef = useRef(false);\n const stateRef = useRef(state);\n // If a state property (data, error, or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n const stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */ const setState = useCallback((payload)=>{\n let shouldRerender = false;\n const currentState = stateRef.current;\n for(const _ in payload){\n const k = _;\n // If the property has changed, update the state and mark rerender as\n // needed.\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k];\n // If the property is accessed by the component, a rerender should be\n // triggered.\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n if (shouldRerender && !unmountedRef.current) {\n if (IS_REACT_LEGACY) {\n rerender({});\n } else {\n React.startTransition(()=>rerender({}));\n }\n }\n }, // config.suspense isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n useIsomorphicLayoutEffect(()=>{\n unmountedRef.current = false;\n return ()=>{\n unmountedRef.current = true;\n };\n });\n return [\n stateRef,\n stateDependenciesRef.current,\n setState\n ];\n};\n\n// Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\nconst subscribeCallback = (key, callbacks, callback)=>{\n const keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return ()=>{\n const index = keyedRevalidators.indexOf(callback);\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\n// Create a custom hook with a middleware\nconst withMiddleware = (useSWR, middleware)=>{\n return (...args)=>{\n const [key, fn, config] = normalize(args);\n const uses = (config.use || []).concat(middleware);\n return useSWR(key, fn, {\n ...config,\n use: uses\n });\n };\n};\n\nsetupDevTools();\n\nexport { IS_REACT_LEGACY, IS_SERVER, OBJECT, SWRConfig, SWRGlobalState, UNDEFINED, cache, compare, createCacheHelper, defaultConfig, defaultConfigOptions, getTimestamp, hasRequestAnimationFrame, initCache, internalMutate, isDocumentDefined, isFunction, isUndefined, isWindowDefined, mergeConfigs, mergeObjects, mutate, noop, normalize, preload, preset, rAF, constants as revalidateEvents, serialize, slowConnection, stableHash, subscribeCallback, useIsomorphicLayoutEffect, useSWRConfig, useStateWithDeps, withArgs, withMiddleware };\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { TalerExchangeApi, TalerExchangeHttpClient, TalerError } from \"@gnu-taler/taler-util\";\nimport { BrowserHttpLib, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { ComponentChildren, createContext, FunctionComponent, h, VNode } from \"preact\";\nimport { useContext, useEffect, useState } from \"preact/hooks\";\nimport { ErrorLoading } from \"@gnu-taler/web-util/browser\";\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nexport type Type = {\n url: URL,\n config: TalerExchangeApi.ExchangeVersionResponse,\n api: TalerExchangeHttpClient,\n};\n\nconst Context = createContext<Type>(undefined as any);\n\nexport const useExchangeApiContext = (): Type => useContext(Context);\n\nexport type ConfigResult = undefined\n | { type: \"ok\", config: TalerExchangeApi.ExchangeVersionResponse }\n | { type: \"incompatible\", result: TalerExchangeApi.ExchangeVersionResponse, supported: string }\n | { type: \"error\", error: TalerError }\n\nexport const ExchangeApiProvider = ({\n baseUrl,\n children,\n frameOnError,\n}: {\n baseUrl: string,\n children: ComponentChildren;\n frameOnError: FunctionComponent<{ children: ComponentChildren }>,\n}): VNode => {\n const [checked, setChecked] = useState<ConfigResult>()\n const { i18n } = useTranslationContext();\n const url = new URL(baseUrl)\n const api = new TalerExchangeHttpClient(url.href, new BrowserHttpLib())\n useEffect(() => {\n api.getConfig()\n .then((resp) => {\n if (api.isCompatible(resp.body.version)) {\n setChecked({ type: \"ok\", config: resp.body });\n } else {\n setChecked({ type: \"incompatible\", result: resp.body, supported: api.PROTOCOL_VERSION })\n }\n })\n .catch((error: unknown) => {\n if (error instanceof TalerError) {\n setChecked({ type: \"error\", error });\n }\n });\n }, []);\n\n if (checked === undefined) {\n return h(frameOnError, { children: h(\"div\", {}, \"loading...\") })\n }\n if (checked.type === \"error\") {\n return h(frameOnError, { children: h(ErrorLoading, { error: checked.error, showDetail: true }) })\n }\n if (checked.type === \"incompatible\") {\n return h(frameOnError, { children: h(\"div\", {}, i18n.str`the bank backend is not supported. supported version \"${checked.supported}\", server version \"${checked.result.version}\"`) })\n }\n const value: Type = {\n url, config: checked.config, api\n }\n return h(Context.Provider, {\n value,\n children,\n });\n};\n\n", "\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport { AmountString, OfficerAccount, PaytoString, TalerExchangeApi, TalerExchangeResultByMethod, TalerHttpError } from \"@gnu-taler/taler-util\";\nimport _useSWR, { SWRHook } from \"swr\";\nimport { useExchangeApiContext } from \"../context/config.js\";\nimport { useOfficer } from \"./useOfficer.js\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useCaseDetails(paytoHash: string) {\n const officer = useOfficer();\n const session = officer.state === \"ready\" ? officer.account : undefined;\n\n const { api } = useExchangeApiContext();\n\n async function fetcher([officer, account]: [OfficerAccount, PaytoString]) {\n return await api.getDecisionDetails(officer, account)\n }\n\n const { data, error } = useSWR<TalerExchangeResultByMethod<\"getDecisionDetails\">, TalerHttpError>(\n !session ? undefined : [session, paytoHash], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n errorRetryCount: 0,\n errorRetryInterval: 1,\n shouldRetryOnError: false,\n keepPreviousData: true,\n });\n\n if (data) return data;\n if (error) return error;\n return undefined;\n}\n\nconst example1: TalerExchangeApi.AmlDecisionDetails = {\n aml_history: [\n {\n justification: \"Lack of documentation\",\n decider_pub: \"ASDASDASD\",\n decision_time: {\n t_s: Date.now() / 1000,\n },\n new_state: 2,\n new_threshold: \"USD:0\" as AmountString,\n },\n {\n justification: \"Doing a transfer of high amount\",\n decider_pub: \"ASDASDASD\",\n decision_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 6,\n },\n new_state: 1,\n new_threshold: \"USD:2000\" as AmountString,\n },\n {\n justification: \"Account is known to the system\",\n decider_pub: \"ASDASDASD\",\n decision_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 9,\n },\n new_state: 0,\n new_threshold: \"USD:100\" as AmountString,\n },\n ],\n kyc_attributes: [\n {\n collection_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 8,\n },\n expiration_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 4,\n },\n provider_section: \"asdasd\",\n attributes: {\n name: \"Sebastian\",\n },\n },\n {\n collection_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 5,\n },\n expiration_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 2,\n },\n provider_section: \"asdasd\",\n attributes: {\n creditCard: \"12312312312\",\n },\n },\n ],\n};\n\n\n", "export namespace AmlExchangeBackend {\n // FIXME: placeholder\n export interface AmlError {\n code: number;\n hint: string;\n }\n export interface AmlDecisionDetails {\n // Array of AML decisions made for this account. Possibly\n // contains only the most recent decision if \"history\" was\n // not set to 'true'.\n aml_history: AmlDecisionDetail[];\n\n // Array of KYC attributes obtained for this account.\n kyc_attributes: KycDetail[];\n }\n\n type AmlOfficerPublicKeyP = string;\n\n export interface AmlDecisionDetail {\n // What was the justification given?\n justification: string;\n\n // What is the new AML state.\n new_state: Integer;\n\n // When was this decision made?\n decision_time: Timestamp;\n\n // What is the new AML decision threshold (in monthly transaction volume)?\n new_threshold: Amount;\n\n // Who made the decision?\n decider_pub: AmlOfficerPublicKeyP;\n }\n export interface KycDetail {\n // Name of the configuration section that specifies the provider\n // which was used to collect the KYC details\n provider_section: string;\n\n // The collected KYC data. NULL if the attribute data could not\n // be decrypted (internal error of the exchange, likely the\n // attribute key was changed).\n attributes?: Object;\n\n // Time when the KYC data was collected\n collection_time: Timestamp;\n\n // Time when the validity of the KYC data will expire\n expiration_time: Timestamp;\n }\n\n interface Timestamp {\n // Seconds since epoch, or the special\n // value \"never\" to represent an event that will\n // never happen.\n t_s: number | \"never\";\n }\n\n type PaytoHash = string;\n type Integer = number;\n type Amount = string;\n // EdDSA signatures are transmitted as 64-bytes base32\n // binary-encoded objects with just the R and S values (base32_ binary-only).\n type EddsaSignature = string;\n\n export interface AmlRecords {\n // Array of AML records matching the query.\n records: AmlRecord[];\n }\n\n interface AmlRecord {\n // Which payto-address is this record about.\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n\n // What is the current AML state.\n current_state: AmlState;\n\n // Monthly transaction threshold before a review will be triggered\n threshold: Amount;\n\n // RowID of the record.\n rowid: Integer;\n }\n\n export enum AmlState {\n normal = 0,\n pending = 1,\n frozen = 2,\n }\n\n \n export interface AmlDecision {\n\n // Human-readable justification for the decision.\n justification: string;\n \n // At what monthly transaction volume should the\n // decision be automatically reviewed?\n new_threshold: Amount;\n \n // Which payto-address is the decision about?\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n \n // What is the new AML state (e.g. frozen, unfrozen, etc.)\n // Numerical values are defined in AmlDecisionState.\n new_state: Integer;\n \n // Signature by the AML officer over a\n // TALER_MasterAmlOfficerStatusPS.\n // Must have purpose TALER_SIGNATURE_MASTER_AML_KEY.\n officer_sig: EddsaSignature;\n \n // When was the decision made?\n decision_time: Timestamp;\n \n // Optional argument to impose new KYC requirements\n // that the customer has to satisfy to unblock transactions.\n kyc_requirements?: string[];\n }\n \n\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NiceForm } from \"../NiceForm.js\";\nimport { FlexibleForm } from \"../forms/index.js\";\nimport { UIFormField } from \"../handlers/forms.js\";\nimport { AmlEvent } from \"./CaseDetails.js\";\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { AbsoluteTime, AmountJson, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { format } from \"date-fns\";\n\nexport function ShowConsolidated({\n history,\n until,\n}: {\n history: AmlEvent[];\n until: AbsoluteTime;\n}): VNode {\n const cons = getConsolidated(history, until);\n\n const form: FlexibleForm<Consolidated> = {\n versionId: \"1\",\n behavior: (form) => {\n return {\n aml: {\n threshold: {\n hidden: !form.aml\n },\n since: {\n hidden: !form.aml\n },\n state: {\n hidden: !form.aml\n }\n }\n };\n },\n design: [\n {\n title: \"AML\" as TranslatedString,\n fields: [\n {\n type: \"amount\",\n props: {\n label: \"Threshold\" as TranslatedString,\n name: \"aml.threshold\",\n },\n },\n {\n type: \"choiceHorizontal\",\n props: {\n label: \"State\" as TranslatedString,\n name: \"aml.state\",\n converter: amlStateConverter,\n choices: [\n {\n label: \"Frozen\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.frozen,\n },\n {\n label: \"Pending\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.pending,\n },\n {\n label: \"Normal\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.normal,\n },\n ],\n },\n },\n ],\n },\n Object.entries(cons.kyc).length > 0\n ? {\n title: \"KYC\" as TranslatedString,\n fields: Object.entries(cons.kyc).map(([key, field]) => {\n const result: UIFormField = {\n type: \"text\",\n props: {\n label: key as TranslatedString,\n name: `kyc.${key}.value`,\n help: `${field.provider} since ${field.since.t_ms === \"never\"\n ? \"never\"\n : format(field.since.t_ms, \"dd/MM/yyyy\")\n }` as TranslatedString,\n },\n };\n return result;\n }),\n }\n : undefined,\n ],\n };\n return (\n <Fragment>\n <h1 class=\"text-base font-semibold leading-7 text-black\">\n Consolidated information \n {until.t_ms === \"never\"\n ? \"\"\n : `after ${format(until.t_ms, \"dd MMMM yyyy\")}` }\n </h1>\n <NiceForm\n key={`${String(Date.now())}`}\n form={form}\n initial={cons}\n onUpdate={() => { }}\n />\n </Fragment>\n );\n}\n\ninterface Consolidated {\n aml: {\n state: AmlExchangeBackend.AmlState;\n threshold: AmountJson;\n since: AbsoluteTime;\n };\n kyc: {\n [field: string]: {\n value: any;\n provider: string;\n since: AbsoluteTime;\n };\n };\n}\n\nfunction getConsolidated(\n history: AmlEvent[],\n when: AbsoluteTime,\n): Consolidated {\n const initial: Consolidated = {\n aml: {\n state: AmlExchangeBackend.AmlState.normal,\n threshold: {\n currency: \"ARS\",\n value: 1000,\n fraction: 0,\n },\n since: AbsoluteTime.never()\n },\n kyc: {},\n };\n return history.reduce((prev, cur) => {\n if (AbsoluteTime.cmp(when, cur.when) < 0) {\n return prev;\n }\n switch (cur.type) {\n case \"kyc-expiration\": {\n cur.fields.forEach((field) => {\n delete prev.kyc[field];\n });\n break;\n }\n case \"aml-form\": {\n prev.aml = {\n since: cur.when,\n state: cur.state,\n threshold: cur.threshold\n }\n break;\n }\n case \"kyc-collection\": {\n Object.keys(cur.values).forEach((field) => {\n prev.kyc[field] = {\n value: (cur.values as any)[field],\n provider: cur.provider,\n since: cur.when,\n };\n });\n break;\n }\n }\n return prev;\n }, initial);\n}\n\nexport const amlStateConverter = {\n toStringUI: stringifyAmlState,\n fromStringUI: parseAmlState,\n};\n\nfunction stringifyAmlState(s: AmlExchangeBackend.AmlState | undefined): string {\n if (s === undefined) return \"\";\n switch (s) {\n case AmlExchangeBackend.AmlState.normal:\n return \"normal\";\n case AmlExchangeBackend.AmlState.pending:\n return \"pending\";\n case AmlExchangeBackend.AmlState.frozen:\n return \"frozen\";\n }\n}\n\nfunction parseAmlState(s: string | undefined): AmlExchangeBackend.AmlState {\n switch (s) {\n case \"normal\":\n return AmlExchangeBackend.AmlState.normal;\n case \"pending\":\n return AmlExchangeBackend.AmlState.pending;\n case \"frozen\":\n return AmlExchangeBackend.AmlState.frozen;\n default:\n throw Error(`unknown AML state: ${s}`);\n }\n}\n", "import { useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { ComponentChildren, Fragment, h } from \"preact\";\nimport { FlexibleForm } from \"./forms/index.js\";\nimport { FormProvider } from \"./handlers/FormProvider.js\";\nimport { RenderAllFieldsByUiConfig } from \"./handlers/forms.js\";\n\nexport function NiceForm<T extends object>({\n initial,\n onUpdate,\n form,\n onSubmit,\n children,\n}: {\n children?: ComponentChildren;\n initial: Partial<T>;\n onSubmit?: (v: Partial<T>) => void;\n form: FlexibleForm<T>;\n onUpdate?: (d: Partial<T>) => void;\n}) {\n return (\n <FormProvider\n initialValue={initial}\n onUpdate={onUpdate}\n onSubmit={onSubmit}\n computeFormState={form.behavior}\n >\n <div class=\"space-y-10 divide-y -mt-5 divide-gray-900/10\">\n {form.design.map((section, i) => {\n if (!section) return <Fragment />;\n return (\n <div class=\"grid grid-cols-1 gap-x-8 gap-y-8 pt-5 md:grid-cols-3\">\n <div class=\"px-4 sm:px-0\">\n <h2 class=\"text-base font-semibold leading-7 text-gray-900\">\n {section.title}\n </h2>\n {section.description && (\n <p class=\"mt-1 text-sm leading-6 text-gray-600\">\n {section.description}\n </p>\n )}\n </div>\n <div class=\"bg-white shadow-sm ring-1 ring-gray-900/5 rounded-md md:col-span-2\">\n <div class=\"p-3\">\n <div class=\"grid max-w-2xl grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6\">\n <RenderAllFieldsByUiConfig\n key={i}\n fields={section.fields}\n />\n </div>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n {children}\n </FormProvider>\n );\n}\n", "import {\n AbsoluteTime,\n AmountJson,\n TranslatedString,\n} from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, VNode, createContext, h } from \"preact\";\nimport {\n MutableRef,\n StateUpdater,\n useEffect,\n useRef,\n useState,\n} from \"preact/hooks\";\n\nexport interface FormType<T> {\n value: MutableRef<Partial<T>>;\n initialValue?: Partial<T>;\n onUpdate?: StateUpdater<T>;\n computeFormState?: (v: T) => FormState<T>;\n}\n\n//@ts-ignore\nexport const FormContext = createContext<FormType<any>>({});\n\nexport type FormState<T> = {\n [field in keyof T]?: T[field] extends AbsoluteTime\n ? Partial<InputFieldState>\n : T[field] extends AmountJson\n ? Partial<InputFieldState>\n : T[field] extends Array<infer P>\n ? Partial<InputArrayFieldState<P>>\n : T[field] extends (object | undefined)\n ? FormState<T[field]>\n : Partial<InputFieldState>;\n};\n\nexport interface InputFieldState {\n /* should show the error */\n error?: TranslatedString;\n /* should not allow to edit */\n readonly: boolean;\n /* should show as disable */\n disabled: boolean;\n /* should not show */\n hidden: boolean;\n}\n\nexport interface InputArrayFieldState<T> extends InputFieldState {\n elements: FormState<T>[];\n}\n\nexport function FormProvider<T>({\n children,\n initialValue,\n onUpdate: notify,\n onSubmit,\n computeFormState,\n}: {\n initialValue?: Partial<T>;\n onUpdate?: (v: Partial<T>) => void;\n onSubmit?: (v: Partial<T>, s: FormState<T> | undefined) => void;\n computeFormState?: (v: Partial<T>) => FormState<T>;\n children: ComponentChildren;\n}): VNode {\n // const value = useRef(initialValue ?? {});\n // useEffect(() => {\n // return function onUnload() {\n // value.current = initialValue ?? {};\n // };\n // });\n // const onUpdate = notify\n const [state, setState] = useState<Partial<T>>(initialValue ?? {});\n const value = { current: state };\n // console.log(\"RENDER\", initialValue, value);\n const onUpdate = (v: typeof state) => {\n // console.log(\"updated\");\n setState(v);\n if (notify) notify(v);\n };\n return (\n <FormContext.Provider\n value={{ initialValue, value, onUpdate, computeFormState }}\n >\n <form\n onSubmit={(e) => {\n e.preventDefault();\n //@ts-ignore\n if (onSubmit)\n onSubmit(\n value.current,\n !computeFormState ? undefined : computeFormState(value.current),\n );\n }}\n >\n {children}\n </form>\n </FormContext.Provider>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\n\nexport function InputText<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return <InputLine type=\"text\" {...props} />;\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\nimport { useField } from \"./useField.js\";\n\nexport interface IconAddon {\n type: \"icon\";\n icon: VNode;\n}\ninterface ButtonAddon {\n type: \"button\";\n onClick: () => void;\n children: ComponentChildren;\n}\ninterface TextAddon {\n type: \"text\";\n text: TranslatedString;\n}\ntype Addon = IconAddon | ButtonAddon | TextAddon;\n\ninterface StringConverter<T> {\n toStringUI: (v?: T) => string;\n fromStringUI: (v?: string) => T;\n}\n\nexport interface UIFormProps<T extends object, K extends keyof T> {\n name: K;\n label: TranslatedString;\n placeholder?: TranslatedString;\n tooltip?: TranslatedString;\n help?: TranslatedString;\n before?: Addon;\n after?: Addon;\n required?: boolean;\n converter?: StringConverter<T[K]>;\n}\n\nexport type FormErrors<T> = {\n [P in keyof T]?: string | FormErrors<T[P]>;\n};\n\n//@ts-ignore\nconst TooltipIcon = (\n <svg\n class=\"w-5 h-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n);\n\nexport function LabelWithTooltipMaybeRequired({\n label,\n required,\n tooltip,\n}: {\n label: TranslatedString;\n required?: boolean;\n tooltip?: TranslatedString;\n}): VNode {\n const Label = (\n <Fragment>\n <div class=\"flex justify-between\">\n <label\n htmlFor=\"email\"\n class=\"block text-sm font-medium leading-6 text-gray-900\"\n >\n {label}\n </label>\n </div>\n </Fragment>\n );\n const WithTooltip = tooltip ? (\n <div class=\"relative flex flex-grow items-stretch focus-within:z-10\">\n {Label}\n <span class=\"relative flex items-center group pl-2\">\n {TooltipIcon}\n <div class=\"absolute bottom-0 flex flex-col items-center hidden mb-6 group-hover:flex\">\n <span class=\"relative z-10 p-2 text-xs leading-none text-white whitespace-no-wrap bg-black shadow-lg\">\n {tooltip}\n </span>\n <div class=\"w-3 h-3 -mt-2 rotate-45 bg-black\"></div>\n </div>\n </span>\n </div>\n ) : (\n Label\n );\n if (required) {\n return (\n <div class=\"flex justify-between\">\n {WithTooltip}\n <span class=\"text-sm leading-6 text-red-600\">*</span>\n </div>\n );\n }\n return WithTooltip;\n}\n\nfunction InputWrapper<T extends object, K extends keyof T>({\n children,\n label,\n tooltip,\n before,\n after,\n help,\n error,\n required,\n}: { error?: string; children: ComponentChildren } & UIFormProps<T, K>): VNode {\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <div class=\"relative mt-2 flex rounded-md shadow-sm\">\n {before &&\n (before.type === \"text\" ? (\n <span class=\"inline-flex items-center rounded-l-md border border-r-0 border-gray-300 px-3 text-gray-500 sm:text-sm\">\n {before.text}\n </span>\n ) : before.type === \"icon\" ? (\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n {before.icon}\n </div>\n ) : before.type === \"button\" ? (\n <button\n type=\"button\"\n onClick={before.onClick}\n class=\"relative -ml-px inline-flex items-center gap-x-1.5 rounded-l-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50\"\n >\n {before.children}\n </button>\n ) : undefined)}\n\n {children}\n\n {after &&\n (after.type === \"text\" ? (\n <span class=\"inline-flex items-center rounded-r-md border border-l-0 border-gray-300 px-3 text-gray-500 sm:text-sm\">\n {after.text}\n </span>\n ) : after.type === \"icon\" ? (\n <div class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\">\n {after.icon}\n </div>\n ) : after.type === \"button\" ? (\n <button\n type=\"button\"\n onClick={after.onClick}\n class=\"relative -ml-px inline-flex items-center gap-x-1.5 rounded-r-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50\"\n >\n {after.children}\n </button>\n ) : undefined)}\n </div>\n {error && (\n <p class=\"mt-2 text-sm text-red-600\" id=\"email-error\">\n {error}\n </p>\n )}\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n\nfunction defaultToString(v: unknown) {\n return v === undefined ? \"\" : typeof v !== \"object\" ? String(v) : \"\";\n}\nfunction defaultFromString(v: string) {\n return v;\n}\n\ntype InputType = \"text\" | \"text-area\" | \"password\" | \"email\" | \"number\";\n\nexport function InputLine<T extends object, K extends keyof T>(\n props: { type: InputType } & UIFormProps<T, K>,\n): VNode {\n const { name, placeholder, before, after, converter, type } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n\n if (state.hidden) return <div />;\n\n let clazz =\n \"block w-full rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset focus:ring-2 focus:ring-inset sm:text-sm sm:leading-6 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200\";\n if (before) {\n switch (before.type) {\n case \"icon\": {\n clazz += \" pl-10\";\n break;\n }\n case \"button\": {\n clazz += \" rounded-none rounded-r-md \";\n break;\n }\n case \"text\": {\n clazz += \" min-w-0 flex-1 rounded-r-md rounded-none \";\n break;\n }\n }\n }\n if (after) {\n switch (after.type) {\n case \"icon\": {\n clazz += \" pr-10\";\n break;\n }\n case \"button\": {\n clazz += \" rounded-none rounded-l-md\";\n break;\n }\n case \"text\": {\n clazz += \" min-w-0 flex-1 rounded-l-md rounded-none \";\n break;\n }\n }\n }\n const showError = isDirty && state.error;\n if (showError) {\n clazz +=\n \" text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500\";\n } else {\n clazz +=\n \" text-gray-900 ring-gray-300 placeholder:text-gray-400 focus:ring-indigo-600\";\n }\n const fromString: (s: string) => any =\n converter?.fromStringUI ?? defaultFromString;\n const toString: (s: any) => string = converter?.toStringUI ?? defaultToString;\n\n if (type === \"text-area\") {\n return (\n <InputWrapper<T, K>\n {...props}\n error={showError ? state.error : undefined}\n >\n <textarea\n rows={4}\n name={String(name)}\n onChange={(e) => {\n onChange(fromString(e.currentTarget.value));\n }}\n placeholder={placeholder ? placeholder : undefined}\n value={toString(value) ?? \"\"}\n // defaultValue={toString(value)}\n disabled={state.disabled}\n aria-invalid={showError}\n // aria-describedby=\"email-error\"\n class={clazz}\n />\n </InputWrapper>\n );\n }\n\n return (\n <InputWrapper<T, K> {...props} error={showError ? state.error : undefined}>\n <input\n name={String(name)}\n type={type}\n onChange={(e) => {\n onChange(fromString(e.currentTarget.value));\n }}\n placeholder={placeholder ? placeholder : undefined}\n value={toString(value) ?? \"\"}\n // defaultValue={toString(value)}\n disabled={state.disabled}\n aria-invalid={showError}\n // aria-describedby=\"email-error\"\n class={clazz}\n />\n </InputWrapper>\n );\n}\n", "import { useContext, useState } from \"preact/compat\";\nimport { FormContext, InputFieldState } from \"./FormProvider.js\";\n\nexport interface InputFieldHandler<Type> {\n value: Type;\n onChange: (s: Type) => void;\n state: InputFieldState;\n isDirty: boolean;\n}\n\nexport function useField<T extends object, K extends keyof T>(\n name: K,\n): InputFieldHandler<T[K]> {\n const {\n initialValue,\n value: formValue,\n computeFormState,\n onUpdate: notifyUpdate,\n } = useContext(FormContext);\n\n type P = typeof name;\n type V = T[P];\n const formState = computeFormState ? computeFormState(formValue.current) : {};\n\n const fieldValue = readField(formValue.current, String(name)) as V;\n // console.log(\"USE FIELD\", String(name), formValue.current, fieldValue);\n const [currentValue, setCurrentValue] = useState<any | undefined>(fieldValue);\n const fieldState =\n readField<Partial<InputFieldState>>(formState, String(name)) ?? {};\n\n //compute default state\n const state = {\n disabled: fieldState.disabled ?? false,\n readonly: fieldState.readonly ?? false,\n hidden: fieldState.hidden ?? false,\n error: fieldState.error,\n elements: \"elements\" in fieldState ? fieldState.elements ?? [] : [],\n };\n\n function onChange(value: V): void {\n setCurrentValue(value);\n formValue.current = setValueDeeper(\n formValue.current,\n String(name).split(\".\"),\n value,\n );\n if (notifyUpdate) {\n notifyUpdate(formValue.current);\n }\n }\n\n return {\n value: fieldValue,\n onChange,\n isDirty: currentValue !== undefined,\n state,\n };\n}\n\n/**\n * read the field of an object an support accessing it using '.'\n *\n * @param object\n * @param name\n * @returns\n */\nfunction readField<T>(\n object: any,\n name: string,\n debug?: boolean,\n): T | undefined {\n return name.split(\".\").reduce((prev, current) => {\n if (debug) {\n console.log(\n \"READ\",\n name,\n prev,\n current,\n prev ? prev[current] : undefined,\n );\n }\n return prev ? prev[current] : undefined;\n }, object);\n}\n\nfunction setValueDeeper(object: any, names: string[], value: any): any {\n if (names.length === 0) return value;\n const [head, ...rest] = names;\n if (object === undefined) {\n return { [head]: setValueDeeper({}, rest, value) };\n }\n return { ...object, [head]: setValueDeeper(object[head] ?? {}, rest, value) };\n}\n", "import { AbsoluteTime } from \"@gnu-taler/taler-util\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\nimport { VNode, h } from \"preact\";\nimport { format, parse } from \"date-fns\";\n\nexport function InputDate<T extends object, K extends keyof T>(\n props: { pattern?: string } & UIFormProps<T, K>,\n): VNode {\n const pattern = props.pattern ?? \"dd/MM/yyyy\";\n return (\n <InputLine<T, K>\n type=\"text\"\n after={{\n type: \"icon\",\n // icon: <CalendarIcon class=\"h-6 w-6\" />,\n icon: <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5\" />\n </svg>\n\n }}\n converter={{\n //@ts-ignore\n fromStringUI: (v): AbsoluteTime => {\n if (!v) return AbsoluteTime.never();\n const t_ms = parse(v, pattern, Date.now()).getTime();\n return AbsoluteTime.fromMilliseconds(t_ms);\n },\n //@ts-ignore\n toStringUI: (v: AbsoluteTime) => {\n return !v || !v.t_ms\n ? \"\"\n : v.t_ms === \"never\"\n ? \"never\"\n : format(v.t_ms, pattern);\n },\n }}\n {...props}\n />\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\n\nexport function InputInteger<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return (\n <InputLine\n type=\"number\"\n converter={{\n //@ts-ignore\n fromStringUI: (v): number => {\n return !v ? 0 : Number.parseInt(v, 10);\n },\n //@ts-ignore\n toStringUI: (v?: number): string => {\n return v === undefined ? \"\" : String(v);\n },\n }}\n {...props}\n />\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { InputText } from \"./InputText.js\";\nimport { InputDate } from \"./InputDate.js\";\nimport { InputInteger } from \"./InputInteger.js\";\nimport { h as create, Fragment, VNode } from \"preact\";\nimport { InputChoiceStacked } from \"./InputChoiceStacked.js\";\nimport { InputArray } from \"./InputArray.js\";\nimport { InputSelectMultiple } from \"./InputSelectMultiple.js\";\nimport { InputTextArea } from \"./InputTextArea.js\";\nimport { InputFile } from \"./InputFile.js\";\nimport { Caption } from \"./Caption.js\";\nimport { Group } from \"./Group.js\";\nimport { InputSelectOne } from \"./InputSelectOne.js\";\nimport { FormProvider } from \"./FormProvider.js\";\nimport { InputLine } from \"./InputLine.js\";\nimport { InputAmount } from \"./InputAmount.js\";\nimport { InputChoiceHorizontal } from \"./InputChoiceHorizontal.js\";\n\nexport type DoubleColumnForm = Array<DoubleColumnFormSection | undefined>;\n\nexport type DoubleColumnFormSection = {\n title: TranslatedString;\n description?: TranslatedString;\n fields: UIFormField[];\n};\n\n/**\n * Constrain the type with the ui props\n */\ntype FieldType<T extends object = any, K extends keyof T = any> = {\n group: Parameters<typeof Group>[0];\n caption: Parameters<typeof Caption>[0];\n array: Parameters<typeof InputArray<T, K>>[0];\n file: Parameters<typeof InputFile<T, K>>[0];\n selectOne: Parameters<typeof InputSelectOne<T, K>>[0];\n selectMultiple: Parameters<typeof InputSelectMultiple<T, K>>[0];\n text: Parameters<typeof InputText<T, K>>[0];\n textArea: Parameters<typeof InputTextArea<T, K>>[0];\n choiceStacked: Parameters<typeof InputChoiceStacked<T, K>>[0];\n choiceHorizontal: Parameters<typeof InputChoiceHorizontal<T, K>>[0];\n date: Parameters<typeof InputDate<T, K>>[0];\n integer: Parameters<typeof InputInteger<T, K>>[0];\n amount: Parameters<typeof InputAmount<T, K>>[0];\n};\n\n/**\n * List all the form fields so typescript can type-check the form instance\n */\nexport type UIFormField =\n | { type: \"group\"; props: FieldType[\"group\"] }\n | { type: \"caption\"; props: FieldType[\"caption\"] }\n | { type: \"array\"; props: FieldType[\"array\"] }\n | { type: \"file\"; props: FieldType[\"file\"] }\n | { type: \"amount\"; props: FieldType[\"amount\"] }\n | { type: \"selectOne\"; props: FieldType[\"selectOne\"] }\n | { type: \"selectMultiple\"; props: FieldType[\"selectMultiple\"] }\n | { type: \"text\"; props: FieldType[\"text\"] }\n | { type: \"textArea\"; props: FieldType[\"textArea\"] }\n | { type: \"choiceStacked\"; props: FieldType[\"choiceStacked\"] }\n | { type: \"choiceHorizontal\"; props: FieldType[\"choiceHorizontal\"] }\n | { type: \"integer\"; props: FieldType[\"integer\"] }\n | { type: \"date\"; props: FieldType[\"date\"] };\n\ntype FieldComponentFunction<key extends keyof FieldType> = (\n props: FieldType[key],\n) => VNode;\n\ntype UIFormFieldMap = {\n [key in keyof FieldType]: FieldComponentFunction<key>;\n};\n\n/**\n * Maps input type with component implementation\n */\nconst UIFormConfiguration: UIFormFieldMap = {\n group: Group,\n caption: Caption,\n //@ts-ignore\n array: InputArray,\n text: InputText,\n //@ts-ignore\n file: InputFile,\n textArea: InputTextArea,\n //@ts-ignore\n date: InputDate,\n //@ts-ignore\n choiceStacked: InputChoiceStacked,\n //@ts-ignore\n choiceHorizontal: InputChoiceHorizontal,\n integer: InputInteger,\n //@ts-ignore\n selectOne: InputSelectOne,\n //@ts-ignore\n selectMultiple: InputSelectMultiple,\n //@ts-ignore\n amount: InputAmount,\n};\n\nexport function RenderAllFieldsByUiConfig({\n fields,\n}: {\n fields: UIFormField[];\n}): VNode {\n return create(\n Fragment,\n {},\n fields.map((field, i) => {\n const Component = UIFormConfiguration[\n field.type\n ] as FieldComponentFunction<any>;\n return Component(field.props);\n }),\n );\n}\n\ntype FormSet<T extends object> = {\n Provider: typeof FormProvider<T>;\n InputLine: <K extends keyof T>() => typeof InputLine<T, K>;\n InputChoiceHorizontal: <K extends keyof T>() => typeof InputChoiceHorizontal<\n T,\n K\n >;\n};\nexport function createNewForm<T extends object>() {\n const res: FormSet<T> = {\n Provider: FormProvider,\n InputLine: () => InputLine,\n InputChoiceHorizontal: () => InputChoiceHorizontal,\n };\n return {\n Provider: res.Provider,\n InputLine: res.InputLine(),\n InputChoiceHorizontal: res.InputChoiceHorizontal(),\n };\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport interface Choice<V> {\n label: TranslatedString;\n description?: TranslatedString;\n value: V;\n}\n\nexport function InputChoiceStacked<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const {\n choices,\n name,\n label,\n tooltip,\n help,\n placeholder,\n required,\n before,\n after,\n converter,\n } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n if (state.hidden) {\n return <Fragment />;\n }\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <fieldset class=\"mt-2\">\n <div class=\"space-y-4\">\n {choices.map((choice) => {\n // const currentValue = !converter\n // ? choice.value\n // : converter.fromStringUI(choice.value) ?? \"\";\n\n let clazz =\n \"border relative block cursor-pointer rounded-lg bg-white px-6 py-4 shadow-sm focus:outline-none sm:flex sm:justify-between\";\n if (choice.value === value) {\n clazz +=\n \" border-transparent border-indigo-600 ring-2 ring-indigo-600\";\n } else {\n clazz += \" border-gray-300\";\n }\n\n return (\n <label class={clazz}>\n <input\n type=\"radio\"\n name=\"server-size\"\n // defaultValue={choice.value}\n value={\n (!converter\n ? (choice.value as string)\n : converter?.toStringUI(choice.value)) ?? \"\"\n }\n onClick={(e) => {\n onChange(\n (value === choice.value\n ? undefined\n : choice.value) as T[K],\n );\n }}\n class=\"sr-only\"\n aria-labelledby=\"server-size-0-label\"\n aria-describedby=\"server-size-0-description-0 server-size-0-description-1\"\n />\n <span class=\"flex items-center\">\n <span class=\"flex flex-col text-sm\">\n <span\n id=\"server-size-0-label\"\n class=\"font-medium text-gray-900\"\n >\n {choice.label}\n </span>\n {choice.description !== undefined && (\n <span\n id=\"server-size-0-description-0\"\n class=\"text-gray-500\"\n >\n <span class=\"block sm:inline\">\n {choice.description}\n </span>\n </span>\n )}\n </span>\n </span>\n </label>\n );\n })}\n </div>\n </fieldset>\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { FormProvider, InputArrayFieldState } from \"./FormProvider.js\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { RenderAllFieldsByUiConfig, UIFormField } from \"./forms.js\";\nimport { useField } from \"./useField.js\";\nimport { TranslatedString } from \"@gnu-taler/taler-util\";\n\nfunction Option({\n label,\n disabled,\n isFirst,\n isLast,\n isSelected,\n onClick,\n}: {\n label: TranslatedString;\n isFirst?: boolean;\n isLast?: boolean;\n isSelected?: boolean;\n disabled?: boolean;\n onClick: () => void;\n}): VNode {\n let clazz = \"relative flex border p-4 focus:outline-none disabled:text-grey\";\n if (isFirst) {\n clazz += \" rounded-tl-md rounded-tr-md \";\n }\n if (isLast) {\n clazz += \" rounded-bl-md rounded-br-md \";\n }\n if (isSelected) {\n clazz += \" z-10 border-indigo-200 bg-indigo-50 \";\n } else {\n clazz += \" border-gray-200\";\n }\n if (disabled) {\n clazz +=\n \" cursor-not-allowed bg-gray-50 text-gray-500 ring-gray-200 text-gray\";\n } else {\n clazz += \" cursor-pointer\";\n }\n return (\n <label class={clazz}>\n <input\n type=\"radio\"\n name=\"privacy-setting\"\n checked={isSelected}\n disabled={disabled}\n onClick={onClick}\n class=\"mt-0.5 h-4 w-4 shrink-0 text-indigo-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200 focus:ring-indigo-600\"\n aria-labelledby=\"privacy-setting-0-label\"\n aria-describedby=\"privacy-setting-0-description\"\n />\n <span class=\"ml-3 flex flex-col\">\n <span\n id=\"privacy-setting-0-label\"\n disabled\n class=\"block text-sm font-medium\"\n >\n {label}\n </span>\n {/* <!-- Checked: \"text-indigo-700\", Not Checked: \"text-gray-500\" --> */}\n {/* <span\n id=\"privacy-setting-0-description\"\n class=\"block text-sm\"\n >\n This project would be available to anyone who has the link\n </span> */}\n </span>\n </label>\n );\n}\n\nexport function InputArray<T extends object, K extends keyof T>(\n props: {\n fields: UIFormField[];\n labelField: string;\n } & UIFormProps<T, K>,\n): VNode {\n const { fields, labelField, name, label, required, tooltip } = props;\n const { value, onChange, state } = useField<T, K>(name);\n const list = (value ?? []) as Array<Record<string, string | undefined>>;\n const [selectedIndex, setSelected] = useState<number | undefined>(undefined);\n const selected =\n selectedIndex === undefined ? undefined : list[selectedIndex];\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n\n <div class=\"-space-y-px rounded-md bg-white \">\n {list.map((v, idx) => {\n return (\n <Option\n label={v[labelField] as TranslatedString}\n isSelected={selectedIndex === idx}\n isLast={idx === list.length - 1}\n disabled={selectedIndex !== undefined && selectedIndex !== idx}\n isFirst={idx === 0}\n onClick={() => {\n setSelected(selectedIndex === idx ? undefined : idx);\n }}\n />\n );\n })}\n <div class=\"pt-2\">\n <Option\n label={\"Add...\" as TranslatedString}\n isSelected={selectedIndex === list.length}\n isLast\n isFirst\n disabled={\n selectedIndex !== undefined && selectedIndex !== list.length\n }\n onClick={() => {\n setSelected(\n selectedIndex === list.length ? undefined : list.length,\n );\n }}\n />\n </div>\n </div>\n {selectedIndex !== undefined && (\n /**\n * This form provider act as a substate of the parent form\n * Consider creating an InnerFormProvider since not every feature is expected\n */\n <FormProvider\n initialValue={selected}\n computeFormState={(v) => {\n // current state is ignored\n // the state is defined by the parent form\n\n // elements should be present in the state object since this is expected to be an array\n //@ts-ignore\n return state.elements[selectedIndex];\n }}\n onSubmit={(v) => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1, v);\n onChange(newValue as T[K]);\n setSelected(undefined);\n }}\n onUpdate={(v) => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1, v);\n onChange(newValue as T[K]);\n }}\n >\n <div class=\"px-4 py-6\">\n <div class=\"grid grid-cols-1 gap-y-8 \">\n <RenderAllFieldsByUiConfig fields={fields} />\n </div>\n </div>\n </FormProvider>\n )}\n {selectedIndex !== undefined && (\n <div class=\"flex items-center pt-3\">\n <div class=\"flex-auto\">\n {selected !== undefined && (\n <button\n type=\"button\"\n onClick={() => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1);\n onChange(newValue as T[K]);\n setSelected(undefined);\n }}\n class=\"block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 \"\n >\n Remove\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { Choice } from \"./InputChoiceStacked.js\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\nimport { useState } from \"preact/hooks\";\n\nexport function InputSelectMultiple<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n unique?: boolean;\n max?: number;\n } & UIFormProps<T, K>,\n): VNode {\n const { name, label, choices, placeholder, tooltip, required, unique, max } =\n props;\n const { value, onChange } = useField<T, K>(name);\n\n const [filter, setFilter] = useState<string | undefined>(undefined);\n const regex = new RegExp(`.*${filter}.*`, \"i\");\n const choiceMap = choices.reduce((prev, curr) => {\n return { ...prev, [curr.value as string]: curr.label };\n }, {} as Record<string, string>);\n\n const list = (value ?? []) as string[];\n const filteredChoices =\n filter === undefined\n ? undefined\n : choices.filter((v) => {\n return regex.test(v.label);\n });\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n {list.map((v, idx) => {\n return (\n <span class=\"inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 text-xs font-medium text-gray-600\">\n {choiceMap[v]}\n <button\n type=\"button\"\n onClick={() => {\n const newValue = [...list];\n newValue.splice(idx, 1);\n onChange(newValue as T[K]);\n setFilter(undefined);\n }}\n class=\"group relative h-5 w-5 rounded-sm hover:bg-gray-500/20\"\n >\n <span class=\"sr-only\">Remove</span>\n <svg\n viewBox=\"0 0 14 14\"\n class=\"h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75\"\n >\n <path d=\"M4 4l6 6m0-6l-6 6\" />\n </svg>\n <span class=\"absolute -inset-1\"></span>\n </button>\n </span>\n );\n })}\n\n <div class=\"relative mt-2\">\n <input\n id=\"combobox\"\n type=\"text\"\n value={filter ?? \"\"}\n onChange={(e) => {\n setFilter(e.currentTarget.value);\n }}\n placeholder={placeholder}\n class=\"w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6\"\n role=\"combobox\"\n aria-controls=\"options\"\n aria-expanded=\"false\"\n />\n <button\n type=\"button\"\n onClick={() => {\n setFilter(filter === undefined ? \"\" : undefined);\n }}\n class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\"\n >\n <svg\n class=\"h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n\n {filteredChoices !== undefined && (\n <ul\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n id=\"options\"\n role=\"listbox\"\n >\n {filteredChoices.map((v, idx) => {\n return (\n <li\n class=\"relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600\"\n id=\"option-0\"\n role=\"option\"\n onClick={() => {\n setFilter(undefined);\n if (unique && list.indexOf(v.value as string) !== -1) {\n return;\n }\n if (max !== undefined && list.length >= max) {\n return;\n }\n const newValue = [...list];\n newValue.splice(0, 0, v.value as string);\n onChange(newValue as T[K]);\n }}\n\n // tabindex=\"-1\"\n >\n {/* <!-- Selected: \"font-semibold\" --> */}\n <span class=\"block truncate\">{v.label}</span>\n\n {/* <!--\n Checkmark, only display for selected option.\n\n Active: \"text-white\", Not Active: \"text-indigo-600\"\n --> */}\n </li>\n );\n })}\n\n {/* <!--\n Combobox option, manage highlight styles based on mouseenter/mouseleave and keyboard navigation.\n\n Active: \"text-white bg-indigo-600\", Not Active: \"text-gray-900\"\n --> */}\n\n {/* <!-- More items... --> */}\n </ul>\n )}\n </div>\n </div>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\n\nexport function InputTextArea<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return <InputLine type=\"text-area\" {...props} />;\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputFile<T extends object, K extends keyof T>(\n props: { maxBites: number; accept?: string } & UIFormProps<T, K>,\n): VNode {\n const {\n name,\n label,\n placeholder,\n tooltip,\n required,\n help,\n maxBites,\n accept,\n } = props;\n const { value, onChange, state } = useField<T, K>(name);\n\n if (state.hidden) {\n return <div />;\n }\n return (\n <div class=\"col-span-full\">\n <LabelWithTooltipMaybeRequired\n label={label}\n tooltip={tooltip}\n required={required}\n />\n {!value || !(value as string).startsWith(\"data:image/\") ? (\n <div class=\"mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 py-1\">\n <div class=\"text-center\">\n <svg\n class=\"mx-auto h-12 w-12 text-gray-300\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M1.5 6a2.25 2.25 0 012.25-2.25h16.5A2.25 2.25 0 0122.5 6v12a2.25 2.25 0 01-2.25 2.25H3.75A2.25 2.25 0 011.5 18V6zM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0021 18v-1.94l-2.69-2.689a1.5 1.5 0 00-2.12 0l-.88.879.97.97a.75.75 0 11-1.06 1.06l-5.16-5.159a1.5 1.5 0 00-2.12 0L3 16.061zm10.125-7.81a1.125 1.125 0 112.25 0 1.125 1.125 0 01-2.25 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <div class=\"my-2 flex text-sm leading-6 text-gray-600\">\n <label\n for=\"file-upload\"\n class=\"relative cursor-pointer rounded-md bg-white font-semibold text-indigo-600 focus-within:outline-none focus-within:ring-2 focus-within:ring-indigo-600 focus-within:ring-offset-2 hover:text-indigo-500\"\n >\n <span>Upload a file</span>\n <input\n id=\"file-upload\"\n name=\"file-upload\"\n type=\"file\"\n class=\"sr-only\"\n accept={accept}\n onChange={(e) => {\n const f: FileList | null = e.currentTarget.files;\n if (!f || f.length != 1) {\n return onChange(undefined!);\n }\n if (f[0].size > maxBites) {\n return onChange(undefined!);\n }\n return f[0].arrayBuffer().then((b) => {\n const b64 = window.btoa(\n new Uint8Array(b).reduce(\n (data, byte) => data + String.fromCharCode(byte),\n \"\",\n ),\n );\n return onChange(`data:${f[0].type};base64,${b64}` as any);\n });\n }}\n />\n </label>\n {/* <p class=\"pl-1\">or drag and drop</p> */}\n </div>\n </div>\n </div>\n ) : (\n <div class=\"mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 relative\">\n <img\n src={value as string}\n class=\" h-24 w-full object-cover relative\"\n />\n\n <div\n class=\"opacity-0 hover:opacity-70 duration-300 absolute rounded-lg border inset-0 z-10 flex justify-center text-xl items-center bg-black text-white cursor-pointer \"\n onClick={() => {\n onChange(undefined!);\n }}\n >\n Clear\n </div>\n </div>\n )}\n {help && <p class=\"text-xs leading-5 text-gray-600 mt-2\">{help}</p>}\n </div>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport {\n LabelWithTooltipMaybeRequired\n} from \"./InputLine.js\";\n\ninterface Props {\n label: TranslatedString;\n tooltip?: TranslatedString;\n help?: TranslatedString;\n before?: VNode;\n after?: VNode;\n}\n\nexport function Caption({ before, after, label, tooltip, help }: Props): VNode {\n return (\n <div class=\"sm:col-span-6 flex\">\n {before !== undefined && (\n <span class=\"pointer-events-none flex items-center pr-2\">{before}</span>\n )}\n <LabelWithTooltipMaybeRequired label={label} tooltip={tooltip} />\n {after !== undefined && (\n <span class=\"pointer-events-none flex items-center pl-2\">{after}</span>\n )}\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { RenderAllFieldsByUiConfig, UIFormField } from \"./forms.js\";\n\ninterface Props {\n before?: TranslatedString;\n after?: TranslatedString;\n tooltipBefore?: TranslatedString;\n tooltipAfter?: TranslatedString;\n fields: UIFormField[];\n}\n\nexport function Group({\n before,\n after,\n tooltipAfter,\n tooltipBefore,\n fields,\n}: Props): VNode {\n return (\n <div class=\"sm:col-span-6 p-4 rounded-lg border-r-2 border-2 bg-gray-50\">\n <div class=\"pb-4\">\n {before && (\n <LabelWithTooltipMaybeRequired\n label={before}\n tooltip={tooltipBefore}\n />\n )}\n </div>\n <div class=\"grid max-w-2xl grid-cols-1 gap-x-6 gap-y-2 sm:grid-cols-6\">\n <RenderAllFieldsByUiConfig fields={fields} />\n </div>\n <div class=\"pt-4\">\n {after && (\n <LabelWithTooltipMaybeRequired label={after} tooltip={tooltipAfter} />\n )}\n </div>\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { Choice } from \"./InputChoiceStacked.js\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\nimport { useState } from \"preact/hooks\";\n\nexport function InputSelectOne<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const { name, label, choices, placeholder, tooltip, required } = props;\n const { value, onChange } = useField<T, K>(name);\n\n const [filter, setFilter] = useState<string | undefined>(undefined);\n const regex = new RegExp(`.*${filter}.*`, \"i\");\n const choiceMap = choices.reduce((prev, curr) => {\n return { ...prev, [curr.value as string]: curr.label };\n }, {} as Record<string, string>);\n\n const filteredChoices =\n filter === undefined\n ? undefined\n : choices.filter((v) => {\n return regex.test(v.label);\n });\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n {value ? (\n <span class=\"inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 font-medium text-gray-600\">\n {choiceMap[value as string]}\n <button\n type=\"button\"\n onClick={() => {\n onChange(undefined!);\n }}\n class=\"group relative h-5 w-5 rounded-sm hover:bg-gray-500/20\"\n >\n <span class=\"sr-only\">Remove</span>\n <svg\n viewBox=\"0 0 14 14\"\n class=\"h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75\"\n >\n <path d=\"M4 4l6 6m0-6l-6 6\" />\n </svg>\n <span class=\"absolute -inset-1\"></span>\n </button>\n </span>\n ) : (\n <div class=\"relative mt-2\">\n <input\n id=\"combobox\"\n type=\"text\"\n value={filter ?? \"\"}\n onChange={(e) => {\n setFilter(e.currentTarget.value);\n }}\n placeholder={placeholder}\n class=\"w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6\"\n role=\"combobox\"\n aria-controls=\"options\"\n aria-expanded=\"false\"\n />\n <button\n type=\"button\"\n onClick={() => {\n setFilter(filter === undefined ? \"\" : undefined);\n }}\n class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\"\n >\n <svg\n class=\"h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n\n {filteredChoices !== undefined && (\n <ul\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n id=\"options\"\n role=\"listbox\"\n >\n {filteredChoices.map((v, idx) => {\n return (\n <li\n class=\"relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600\"\n id=\"option-0\"\n role=\"option\"\n onClick={() => {\n setFilter(undefined);\n onChange(v.value as T[K]);\n }}\n\n // tabindex=\"-1\"\n >\n {/* <!-- Selected: \"font-semibold\" --> */}\n <span class=\"block truncate\">{v.label}</span>\n\n {/* <!--\n Checkmark, only display for selected option.\n\n Active: \"text-white\", Not Active: \"text-indigo-600\"\n --> */}\n </li>\n );\n })}\n\n {/* <!--\n Combobox option, manage highlight styles based on mouseenter/mouseleave and keyboard navigation.\n\n Active: \"text-white bg-indigo-600\", Not Active: \"text-gray-900\"\n --> */}\n\n {/* <!-- More items... --> */}\n </ul>\n )}\n </div>\n )}\n </div>\n );\n}\n", "import { AmountJson, Amounts, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport { InputLine, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputAmount<T extends object, K extends keyof T>(\n props: { currency?: string } & UIFormProps<T, K>,\n): VNode {\n const { value } = useField<T, K>(props.name);\n const currency =\n !value || !(value as any).currency\n ? props.currency\n : (value as any).currency;\n return (\n <InputLine<T, K>\n type=\"text\"\n before={{\n type: \"text\",\n text: currency as TranslatedString,\n }}\n converter={{\n //@ts-ignore\n fromStringUI: (v): AmountJson => {\n\n return Amounts.parse(`${currency}:${v}`) ?? Amounts.zeroOfCurrency(currency);\n },\n //@ts-ignore\n toStringUI: (v: AmountJson) => {\n return v === undefined ? \"\" : Amounts.stringifyValue(v);\n },\n }}\n {...props}\n />\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired, UIFormProps } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport interface Choice<V> {\n label: TranslatedString;\n value: V;\n}\n\nexport function InputChoiceHorizontal<T extends object, K extends keyof T>(\n props: {\n choices: Choice<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const {\n choices,\n name,\n label,\n tooltip,\n help,\n placeholder,\n required,\n before,\n after,\n converter,\n } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n if (state.hidden) {\n return <Fragment />;\n }\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <fieldset class=\"mt-2\">\n <div class=\"isolate inline-flex rounded-md shadow-sm\">\n {choices.map((choice, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === choices.length - 1;\n let clazz =\n \"relative inline-flex items-center px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 focus:z-10\";\n if (choice.value === value) {\n clazz +=\n \" text-white bg-indigo-600 hover:bg-indigo-500 ring-2 ring-indigo-600 hover:ring-indigo-500\";\n } else {\n clazz += \" hover:bg-gray-100 border-gray-300\";\n }\n if (isFirst) {\n clazz += \" rounded-l-md\";\n } else {\n clazz += \" -ml-px\";\n }\n if (isLast) {\n clazz += \" rounded-r-md\";\n }\n return (\n <button\n type=\"button\"\n class={clazz}\n onClick={(e) => {\n onChange(\n (value === choice.value ? undefined : choice.value) as T[K],\n );\n }}\n >\n {(!converter\n ? (choice.value as string)\n : converter?.toStringUI(choice.value)) ?? \"\"}\n </button>\n );\n })}\n </div>\n </fieldset>\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { TalerError, TranslatedString, assertUnreachable } from \"@gnu-taler/taler-util\";\nimport { ErrorLoading, Loading, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { createNewForm } from \"../handlers/forms.js\";\nimport { useCases } from \"../hooks/useCases.js\";\nimport { Pages } from \"../pages.js\";\nimport { AmlExchangeBackend } from \"../types.js\";\n\nimport { Officer } from \"./Officer.js\";\nimport { amlStateConverter } from \"./ShowConsolidated.js\";\n\nexport function Cases() {\n const { i18n } = useTranslationContext();\n\n const form = createNewForm<{ state: AmlExchangeBackend.AmlState }>();\n\n const initial = AmlExchangeBackend.AmlState.pending;\n const [stateFilter, setStateFilter] = useState(initial);\n\n const list = useCases(stateFilter);\n\n if (!list) {\n return <Loading />\n }\n if (list instanceof TalerError) {\n return <ErrorLoading error={list} />\n }\n\n if (list.data.type === \"fail\") {\n switch (list.data.case) {\n case \"unauthorized\": return <Officer />\n case \"officer-not-found\": return <Officer />\n case \"officer-disabled\": return <Officer />\n default: assertUnreachable(list.data)\n }\n }\n\n const { records } = list.data.body\n\n return (\n <div>\n <div class=\"px-4 sm:px-6 lg:px-8\">\n <div class=\"sm:flex sm:items-center\">\n <div class=\"sm:flex-auto\">\n <h1 class=\"text-base font-semibold leading-6 text-gray-900\">\n <i18n.Translate>\n Cases\n </i18n.Translate>\n </h1>\n <p class=\"mt-2 text-sm text-gray-700\">\n <i18n.Translate>\n A list of all the account with the status\n </i18n.Translate>\n </p>\n </div>\n <form.Provider\n initialValue={{ state: stateFilter }}\n onUpdate={(v) => {\n setStateFilter(v.state ?? initial);\n }}\n onSubmit={(v) => { }}\n >\n <form.InputChoiceHorizontal\n name=\"state\"\n label={\"Filter\" as TranslatedString}\n converter={amlStateConverter}\n choices={[\n {\n label: \"Pending\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.pending,\n },\n {\n label: \"Frozen\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.frozen,\n },\n {\n label: \"Normal\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.normal,\n },\n ]}\n />\n </form.Provider>\n </div>\n <div class=\"mt-8 flow-root\">\n <div class=\"-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8\">\n {!records.length ? (\n <div>empty result </div>\n ) : (\n <div class=\"inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8\">\n <Pagination />\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900\"\n >\n Account Id\n </th>\n <th\n scope=\"col\"\n class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900\"\n >\n Status\n </th>\n <th\n scope=\"col\"\n class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900\"\n >\n Threshold\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n {records.map((r) => {\n return (\n <tr class=\"hover:bg-gray-100 \">\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-500 \">\n <div class=\"text-gray-900\">\n <a\n href={Pages.account.url({ account: r.h_payto })}\n class=\"text-indigo-600 hover:text-indigo-900\"\n >\n {r.h_payto}\n </a>\n </div>\n </td>\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-500\">\n {((state: AmlExchangeBackend.AmlState): VNode => {\n switch (state) {\n case AmlExchangeBackend.AmlState.normal: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20\">\n Normal\n </span>\n );\n }\n case AmlExchangeBackend.AmlState.pending: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20\">\n Pending\n </span>\n );\n }\n case AmlExchangeBackend.AmlState.frozen: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20\">\n Frozen\n </span>\n );\n }\n }\n })(r.current_state)}\n </td>\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-900\">\n {r.threshold}\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n <Pagination />\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nexport const PeopleIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z\" />\n</svg>\n\nexport const HomeIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\" />\n</svg>\n\n\nexport const ChevronRightIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 4.5l7.5 7.5-7.5 7.5\" />\n</svg>\n\n\nexport const ArrowRightIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\" />\n</svg>\n\n\nfunction Pagination() {\n return (\n <nav class=\"flex items-center justify-between px-4 sm:px-0\">\n <div class=\"-mt-px flex w-0 flex-1\">\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent pr-1 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700\"\n >\n <svg\n class=\"mr-3 h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M18 10a.75.75 0 01-.75.75H4.66l2.1 1.95a.75.75 0 11-1.02 1.1l-3.5-3.25a.75.75 0 010-1.1l3.5-3.25a.75.75 0 111.02 1.1l-2.1 1.95h12.59A.75.75 0 0118 10z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n Previous\n </a>\n </div>\n <div class=\"hidden md:-mt-px md:flex\">\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700\"\n >\n 1\n </a>\n {/* <!-- Current: \"border-indigo-500 text-indigo-600\", Default: \"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300\" --> */}\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500\"\n aria-current=\"page\"\n >\n 2\n </a>\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700\"\n >\n 3\n </a>\n <span class=\"inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500\">\n ...\n </span>\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700\"\n >\n 8\n </a>\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700\"\n >\n 9\n </a>\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700\"\n >\n 10\n </a>\n </div>\n <div class=\"-mt-px flex w-0 flex-1 justify-end\">\n <a\n href=\"#\"\n class=\"inline-flex items-center border-t-2 border-transparent pl-1 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700\"\n >\n Next\n <svg\n class=\"ml-3 h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M2 10a.75.75 0 01.75-.75h12.59l-2.1-1.95a.75.75 0 111.02-1.1l3.5 3.25a.75.75 0 010 1.1l-3.5 3.25a.75.75 0 11-1.02-1.1l2.1-1.95H2.75A.75.75 0 012 10z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </a>\n </div>\n </nav>\n );\n}\n", "import { useState } from \"preact/hooks\";\n\nimport {\n HttpResponsePaginated\n} from \"@gnu-taler/web-util/browser\";\nimport { AmlExchangeBackend } from \"../types.js\";\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport { AmountString, OfficerAccount, OperationFail, TalerExchangeApi, TalerExchangeResultByMethod, TalerHttpError } from \"@gnu-taler/taler-util\";\nimport _useSWR, { SWRHook } from \"swr\";\nimport { useExchangeApiContext } from \"../context/config.js\";\nimport { useOfficer } from \"./useOfficer.js\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nconst PAGE_SIZE = 10;\nconst MAX_RESULT_SIZE = PAGE_SIZE * 2 - 1;\n/**\n * FIXME: mutate result when balance change (transaction )\n * @param account\n * @param args\n * @returns\n */\nexport function useCases(state: AmlExchangeBackend.AmlState) {\n const officer = useOfficer();\n const session = officer.state === \"ready\" ? officer.account : undefined;\n const { api } = useExchangeApiContext();\n\n const [offset, setOffet] = useState<string>();\n\n async function fetcher([officer, state, offset]: [OfficerAccount, AmlExchangeBackend.AmlState, string | undefined]) {\n return await api.getDecisionsByState(officer, state, {\n order: \"asc\", offset, limit: MAX_RESULT_SIZE\n })\n }\n\n const { data, error } = useSWR<TalerExchangeResultByMethod<\"getDecisionsByState\">, TalerHttpError>(\n !session ? undefined : [session, state, offset],\n fetcher,\n );\n\n // const [lastAfter, setLastAfter] = useState<\n // HttpResponse<AmlExchangeBackend.AmlRecords, AmlExchangeBackend.AmlError>\n // >({ loading: true });\n\n // useEffect(() => {\n // if (afterData) setLastAfter(afterData);\n // }, [afterData]);\n\n // if (afterError) {\n // return afterError.cause;\n // }\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isLastPage =\n data && data.type === \"ok\" && data.body.records.length < PAGE_SIZE;\n const isFirstPage = !offset;\n\n const pagination = {\n isLastPage,\n isFirstPage,\n loadMore: () => {\n if (isLastPage || data?.type !== \"ok\") return;\n const list = data.body.records\n if (list.length < MAX_RESULT_SIZE) {\n // setOffset(list[list.length-1].account_name);\n }\n },\n loadMorePrev: () => {\n null;\n },\n };\n\n // const public_accountslist = data?.type !== \"ok\" ? [] : data.body.public_accounts;\n if (!session) {\n return {\n data: {\n type: \"fail\",\n case: \"unauthorized\",\n detail: {}\n } as OperationFail<never>\n }\n }\n if (data) {\n if (data.type === \"fail\") {\n return { data }\n }\n return { data, pagination }\n }\n if (error) {\n return error;\n }\n return undefined;\n}\n\nconst example1: TalerExchangeApi.AmlRecords = {\n records: [\n {\n current_state: 0,\n h_payto: \"QWEQWEQWEQWEWQE\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 1,\n h_payto: \"ASDASDASD\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 2,\n h_payto: \"ZXCZXCZXCXZC\",\n rowid: 1,\n threshold: \"USD 1000\" as AmountString,\n },\n {\n current_state: 0,\n h_payto: \"QWEQWEQWEQWEWQE\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 1,\n h_payto: \"ASDASDASD\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 2,\n h_payto: \"ZXCZXCZXCXZC\",\n rowid: 1,\n threshold: \"USD 1000\" as AmountString,\n },\n ].map((e, idx) => {\n e.rowid = idx;\n e.threshold = `${e.threshold}${idx}` as AmountString;\n return e;\n }),\n};\n\n\n", "import { Fragment, h } from \"preact\";\nimport { useOfficer } from \"../hooks/useOfficer.js\";\nimport { HandleAccountNotReady } from \"./HandleAccountNotReady.js\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { uiSettings } from \"../settings.js\";\nimport { getInitialBackendBaseURL } from \"../hooks/useBackend.js\";\n\nexport function Officer() {\n const officer = useOfficer();\n const { i18n } = useTranslationContext()\n if (officer.state !== \"ready\") {\n return <HandleAccountNotReady officer={officer} />;\n }\n\n const url = new URL(getInitialBackendBaseURL())\n const signupEmail = uiSettings.signupEmail ?? `aml-signup@${url.hostname}`\n\n return (\n <div>\n <h1 class=\"my-2 text-3xl font-bold tracking-tight text-gray-900 \">\n <i18n.Translate>Public key</i18n.Translate>\n </h1>\n <div class=\"max-w-xl text-base leading-7 text-gray-700 lg:max-w-lg\">\n <p class=\"mt-6 font-mono break-all\">{officer.account.id}</p>\n </div>\n <p>\n <a\n href={`mailto:${signupEmail}?subject=${encodeURIComponent(\"Request AML signup\")}&body=${encodeURIComponent(`I want my AML account\\n\\n\\nPubKey: ${officer.account.id}`)}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n class=\"m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700\"\n >\n <i18n.Translate>Request account activation</i18n.Translate>\n </a>\n </p>\n <p>\n <button\n type=\"button\"\n onClick={() => {\n officer.lock();\n }}\n class=\"m-4 block rounded-md border-0 bg-gray-200 px-3 py-2 text-center text-sm text-black shadow-sm \"\n >\n <i18n.Translate>Lock account</i18n.Translate>\n </button>\n </p>\n <p>\n <button\n type=\"button\"\n onClick={() => {\n officer.forget();\n }}\n class=\"m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 \"\n >\n <i18n.Translate>Forget account</i18n.Translate>\n </button>\n </p>\n </div>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { OfficerNotReady } from \"../hooks/useOfficer.js\";\nimport { CreateAccount } from \"./CreateAccount.js\";\nimport { UnlockAccount } from \"./UnlockAccount.js\";\nimport { assertUnreachable } from \"@gnu-taler/taler-util\";\n\nexport function HandleAccountNotReady({\n officer,\n}: {\n officer: OfficerNotReady;\n}): VNode {\n if (officer.state === \"not-found\") {\n return (\n <CreateAccount\n onNewAccount={(password) => {\n officer.create(password);\n }}\n />\n );\n }\n\n if (officer.state === \"locked\") {\n return (\n <UnlockAccount\n onRemoveAccount={() => {\n officer.forget();\n }}\n onAccountUnlocked={async (pwd) => {\n await officer.tryUnlock(pwd);\n }}\n />\n );\n }\n assertUnreachable(officer)\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport {\n notifyError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/browser\";\nimport { VNode, h } from \"preact\";\nimport { createNewForm } from \"../handlers/forms.js\";\nimport { useSettings } from \"../hooks/useSettings.js\";\n\nexport function CreateAccount({\n onNewAccount,\n}: {\n onNewAccount: (password: string) => void;\n}): VNode {\n const { i18n } = useTranslationContext();\n const Form = createNewForm<{\n password: string;\n repeat: string;\n }>();\n const [settings] = useSettings()\n\n return (\n <div class=\"flex min-h-full flex-col \">\n <div class=\"sm:mx-auto sm:w-full sm:max-w-md\">\n <h2 class=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900\">\n <i18n.Translate>Create account</i18n.Translate>\n </h2>\n </div>\n\n <div class=\"mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] \">\n <div class=\"bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12\">\n <Form.Provider\n computeFormState={(v) => {\n return {\n password: {\n error: !v.password\n ? i18n.str`required`\n : settings.allowInsecurePassword\n ? undefined\n : v.password.length < 8\n ? i18n.str`should have at least 8 characters`\n : !v.password.match(/[a-z]/) && v.password.match(/[A-Z]/)\n ? i18n.str`should have lowercase and uppercase characters`\n : !v.password.match(/\\d/)\n ? i18n.str`should have numbers`\n : !v.password.match(/[^a-zA-Z\\d]/)\n ? i18n.str`should have at least one character which is not a number or letter`\n : undefined,\n },\n repeat: {\n error: !v.repeat\n ? i18n.str`required`\n : v.repeat !== v.password\n ? i18n.str`doesn't match`\n : undefined,\n },\n };\n }}\n onSubmit={async (v, s) => {\n const error = s?.password?.error ?? s?.repeat?.error;\n if (error) {\n notifyError(\n \"Can't create account\" as TranslatedString,\n error as TranslatedString,\n );\n } else {\n onNewAccount(v.password!);\n }\n }}\n >\n <div class=\"mb-4\">\n <Form.InputLine\n label={\"Password\" as TranslatedString}\n name=\"password\"\n type=\"password\"\n help={\n settings.allowInsecurePassword\n ? i18n.str`short password are insecure, turn off insecure password in settings`\n : i18n.str`lower and upper case letters, number and special character`\n }\n required\n />\n </div>\n <div class=\"mb-4\">\n <Form.InputLine\n label={\"Repeat password\" as TranslatedString}\n name=\"repeat\"\n type=\"password\"\n required\n />\n </div>\n\n <div class=\"mt-8\">\n <button\n type=\"submit\"\n class=\"flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n <i18n.Translate>Create</i18n.Translate>\n </button>\n </div>\n </Form.Provider>\n </div>\n </div>\n </div>\n );\n}\n", "import { TranslatedString, UnwrapKeyError } from \"@gnu-taler/taler-util\";\nimport { notifyError, notifyInfo, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { VNode, h } from \"preact\";\nimport { createNewForm } from \"../handlers/forms.js\";\n\nexport function UnlockAccount({\n onAccountUnlocked,\n onRemoveAccount,\n}: {\n onAccountUnlocked: (password: string) => Promise<void>;\n onRemoveAccount: () => void;\n}): VNode {\n const { i18n } = useTranslationContext()\n const Form = createNewForm<{\n password: string;\n }>();\n\n return (\n <div class=\"flex min-h-full flex-col \">\n <div class=\"sm:mx-auto sm:w-full sm:max-w-md\">\n <h1 class=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900\">\n <i18n.Translate>Account locked</i18n.Translate>\n </h1>\n <p class=\"mt-6 text-lg leading-8 text-gray-600\">\n <i18n.Translate>Your account is normally locked anytime you reload. To unlock type\n your password again.</i18n.Translate>\n </p>\n </div>\n\n <div class=\"mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] \">\n <div class=\"bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12\">\n <Form.Provider\n initialValue={{}}\n onSubmit={async (v) => {\n try {\n await onAccountUnlocked(v.password!);\n notifyInfo(\"Account unlocked\" as TranslatedString);\n } catch (e) {\n if (e instanceof UnwrapKeyError) {\n notifyError(\n \"Could not unlock account\" as any,\n e.message as any,\n );\n } else {\n throw e;\n }\n }\n }}\n >\n <div class=\"mb-4\">\n <Form.InputLine\n label={\"Password\" as TranslatedString}\n name=\"password\"\n type=\"password\"\n required\n />\n </div>\n\n <div class=\"mt-8\">\n <button\n type=\"submit\"\n class=\"flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n <i18n.Translate>Unlock</i18n.Translate>\n </button>\n </div>\n </Form.Provider>\n </div>\n <button\n type=\"button\"\n onClick={() => {\n onRemoveAccount();\n }}\n class=\"m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 \"\n >\n <i18n.Translate>Forget account</i18n.Translate>\n </button>\n </div>\n </div>\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nexport interface UiSettings {\n backendBaseURL?: string;\n signupEmail?: string;\n}\n\n/**\n * Global settings for the UI.\n */\nconst defaultSettings: UiSettings = {\n};\n\nexport const uiSettings: UiSettings =\n \"talerExchangeAmlSettings\" in globalThis\n ? (globalThis as any).talerExchangeAmlSettings\n : defaultSettings;\n", "import { canonicalizeBaseUrl } from \"@gnu-taler/taler-util\";\nimport {\n HttpResponseOk,\n RequestOptions,\n useApiContext,\n} from \"@gnu-taler/web-util/browser\";\nimport { useCallback } from \"preact/hooks\";\nimport { uiSettings } from \"../settings.js\";\n\ninterface useBackendType {\n request: <T>(\n path: string,\n options?: RequestOptions,\n ) => Promise<HttpResponseOk<T>>;\n fetcher: <T>(args: [string, string]) => Promise<HttpResponseOk<T>>;\n paginatedFetcher: <T>(\n args: [string, number, number, string],\n ) => Promise<HttpResponseOk<T>>;\n}\nexport function usePublicBackend(): useBackendType {\n const { request: requestHandler } = useApiContext();\n\n const baseUrl = getInitialBackendBaseURL();\n\n const request = useCallback(\n function requestImpl<T>(\n path: string,\n options: RequestOptions = {},\n ): Promise<HttpResponseOk<T>> {\n return requestHandler<T>(baseUrl, path, options);\n },\n [baseUrl],\n );\n\n const fetcher = useCallback(\n function fetcherImpl<T>([endpoint, talerAmlOfficerSignature]: [string, string]): Promise<HttpResponseOk<T>> {\n return requestHandler<T>(baseUrl, endpoint, {\n talerAmlOfficerSignature\n });\n },\n [baseUrl],\n );\n const paginatedFetcher = useCallback(\n function fetcherImpl<T>([endpoint, page, size, talerAmlOfficerSignature]: [\n string,\n number,\n number,\n string,\n ]): Promise<HttpResponseOk<T>> {\n return requestHandler<T>(baseUrl, endpoint, {\n params: { page: page || 1, size },\n talerAmlOfficerSignature,\n });\n },\n [baseUrl],\n );\n return {\n request,\n fetcher,\n paginatedFetcher,\n };\n}\n\nexport function getInitialBackendBaseURL(): string {\n const overrideUrl =\n typeof localStorage !== \"undefined\"\n ? localStorage.getItem(\"exchange-base-url\")\n : undefined;\n\n let result: string;\n\n if (!overrideUrl) {\n //normal path\n if (!uiSettings.backendBaseURL) {\n console.error(\n \"ERROR: backendBaseURL was overridden by a setting file and missing. Setting value to 'window.origin'\",\n ); \n result = typeof (window as any) !== \"undefined\" ? window.origin : \"localhost\"\n } else {\n result = uiSettings.backendBaseURL;\n }\n } else {\n // testing/development path\n result = overrideUrl\n }\n try {\n return canonicalizeBaseUrl(result)\n } catch (e) {\n //fall back\n return canonicalizeBaseUrl(window.origin)\n }\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { AntiMoneyLaunderingForm, allForms } from \"./AntiMoneyLaunderingForm.js\";\nimport { Pages } from \"../pages.js\";\nimport { NiceForm } from \"../NiceForm.js\";\nimport { AbsoluteTime, Amounts, TalerExchangeApi, TalerProtocolTimestamp, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { useOfficer } from \"../hooks/useOfficer.js\";\nimport { HandleAccountNotReady } from \"./HandleAccountNotReady.js\";\nimport { useExchangeApiContext } from \"../context/config.js\";\nimport { LocalNotificationBanner, useLocalNotification, useTranslationContext } from \"@gnu-taler/web-util/browser\";\n\nexport function NewFormEntry({\n account,\n type,\n}: {\n account?: string;\n type?: string;\n}): VNode {\n const { i18n } = useTranslationContext()\n const officer = useOfficer();\n const { api } = useExchangeApiContext()\n const [notification, notify, handleError] = useLocalNotification()\n\n if (!account) {\n return <div>no account</div>;\n }\n if (!type) {\n return <SelectForm account={account} />;\n }\n if (officer.state !== \"ready\") {\n return <HandleAccountNotReady officer={officer} />;\n }\n\n const selectedForm = Number.parseInt(type ?? \"0\", 10);\n if (Number.isNaN(selectedForm)) {\n return <div>WHAT! {type}</div>;\n }\n\n\n return (\n <Fragment>\n <LocalNotificationBanner notification={notification} />\n\n <AntiMoneyLaunderingForm\n account={account}\n selectedForm={selectedForm}\n onSubmit={async (justification, new_state, new_threshold) => {\n\n const decision: Omit<TalerExchangeApi.AmlDecision, \"officer_sig\"> = {\n justification: JSON.stringify(justification),\n decision_time: TalerProtocolTimestamp.now(),\n h_payto: account,\n new_state,\n new_threshold: Amounts.stringify(new_threshold),\n kyc_requirements: undefined\n }\n await handleError(async () => {\n const resp = await api.addDecisionDetails(officer.account, decision);\n if (resp.type === \"fail\") {\n switch (resp.case) {\n case \"unauthorized\": return notify({\n type: \"error\",\n title: i18n.str`Wrong credentials for \"${officer.account}\"`,\n description: resp.detail.hint as TranslatedString,\n debug: resp.detail,\n })\n case \"officer-or-account-not-found\": return notify({\n type: \"error\",\n title: i18n.str`Officer or account not found`,\n description: resp.detail.hint as TranslatedString,\n debug: resp.detail,\n })\n case \"officer-disabled-or-recent-decision\": return notify({\n type: \"error\",\n title: i18n.str`Officer disabled or more recent decision was already submitted.`,\n description: resp.detail.hint as TranslatedString,\n debug: resp.detail,\n })\n }\n }\n })\n }}\n />\n </Fragment>\n );\n}\n\nfunction SelectForm({ account }: { account: string }) {\n return (\n <div>\n <pre>New form for account: {account}</pre>\n {allForms.map((form, idx) => {\n return (\n <a\n href={Pages.newFormEntry.url({ account, type: String(idx) })}\n class=\"m-4 block rounded-md w-fit border-0 p-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-600\"\n >\n {form.name}\n </a>\n );\n })}\n </div>\n );\n}\n", "import { AbsoluteTime, AmountJson, Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { h } from \"preact\";\nimport { NiceForm } from \"../NiceForm.js\";\nimport { v1 as form_902_11e_v1 } from \"../forms/902_11e.js\";\nimport { v1 as form_902_12e_v1 } from \"../forms/902_12e.js\";\nimport { v1 as form_902_13e_v1 } from \"../forms/902_13e.js\";\nimport { v1 as form_902_15e_v1 } from \"../forms/902_15e.js\";\nimport { v1 as form_902_1e_v1 } from \"../forms/902_1e.js\";\nimport { v1 as form_902_4e_v1 } from \"../forms/902_4e.js\";\nimport { v1 as form_902_5e_v1 } from \"../forms/902_5e.js\";\nimport { v1 as form_902_9e_v1 } from \"../forms/902_9e.js\";\nimport { v1 as simplest } from \"../forms/simplest.js\";\nimport { Pages } from \"../pages.js\";\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { useExchangeApiContext } from \"../context/config.js\";\n\nexport type Justification = {\n // form index in the list of forms\n index: number;\n // form name\n name: string;\n // form values\n value: any;\n}\n\nexport function AntiMoneyLaunderingForm({ account, selectedForm, onSubmit }: { account: string, selectedForm: number, onSubmit: (justification: Justification, state: AmlExchangeBackend.AmlState, threshold: AmountJson) => Promise<void>; }) {\n const { i18n } = useTranslationContext()\n const showingFrom = allForms[selectedForm].impl;\n const formName = allForms[selectedForm].name\n\n const { config } = useExchangeApiContext()\n\n const initial = {\n fullName: \"loggedIn_user_fullname\",\n when: AbsoluteTime.now(),\n state: AmlExchangeBackend.AmlState.pending,\n threshold: Amounts.zeroOfCurrency(config.currency),\n };\n return (\n <NiceForm\n initial={initial}\n form={showingFrom(initial)}\n onUpdate={() => { }}\n onSubmit={(formValue) => {\n if (formValue.state === undefined || formValue.threshold === undefined) return;\n const st = formValue.state;\n const amount = formValue.threshold;\n\n const justification = {\n index: selectedForm,\n name: formName,\n value: formValue\n }\n\n onSubmit(justification, st, amount);\n }}\n >\n <div class=\"mt-6 flex items-center justify-end gap-x-6\">\n <a\n // type=\"button\"\n href={Pages.account.url({ account })}\n class=\"text-sm font-semibold leading-6 text-gray-900\"\n >\n <i18n.Translate>Cancel</i18n.Translate>\n </a>\n <button\n type=\"submit\"\n class=\"rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n <i18n.Translate>Confirm</i18n.Translate>\n </button>\n </div>\n </NiceForm>\n );\n}\n\nexport interface State {\n state: AmlExchangeBackend.AmlState;\n threshold: AmountJson;\n}\n\nconst DocumentDuplicateIcon = <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75\" />\n</svg>\n\n\nexport const allForms = [\n {\n name: \"Simple comment\",\n icon: DocumentDuplicateIcon,\n impl: simplest,\n },\n {\n name: \"Identification form (902.1e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_1e_v1,\n },\n {\n name: \"Operational legal entity or partnership (902.11e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_11e_v1,\n },\n {\n name: \"Foundations (902.12e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_12e_v1,\n },\n {\n name: \"Declaration for trusts (902.13e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_13e_v1,\n },\n {\n name: \"Information on life insurance policies (902.15e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_15e_v1,\n },\n {\n name: \"Declaration of beneficial owner (902.9e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_9e_v1,\n },\n {\n name: \"Customer profile (902.5e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_5e_v1,\n },\n {\n name: \"Risk profile (902.4e)\",\n icon: DocumentDuplicateIcon,\n impl: form_902_4e_v1,\n },\n];\n", "import {\n AbsoluteTime,\n AmountJson,\n Amounts,\n TranslatedString,\n} from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { DoubleColumnFormSection } from \"../handlers/forms.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\n\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { FlexibleForm } from \"./index.js\";\nimport { amlStateConverter } from \"../pages/ShowConsolidated.js\";\n\nexport const v1 = (current: State): FlexibleForm<Simplest.Form> => ({\n versionId: \"2023-05-25\",\n design: [\n {\n title: \"Simple form\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"comment\",\n label: \"Comments\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Simplest.Form>,\n ): FormState<Simplest.Form> {\n return {\n when: {\n disabled: true,\n },\n threshold: {\n disabled: v.state === AmlExchangeBackend.AmlState.frozen,\n },\n };\n },\n});\n\nexport namespace Simplest {\n export interface WithResolution {\n when: AbsoluteTime;\n threshold: AmountJson;\n state: AmlExchangeBackend.AmlState;\n }\n export interface Form extends WithResolution {\n comment: string;\n }\n}\n\nexport function resolutionSection(current: State): DoubleColumnFormSection {\n return {\n title: \"Resolution\" as TranslatedString,\n description: `Current state is ${amlStateConverter.toStringUI(\n current.state,\n )} and threshold at ${Amounts.stringifyValue(\n current.threshold,\n )}` as TranslatedString,\n fields: [\n {\n type: \"date\",\n props: {\n name: \"when\",\n label: \"Decision Time\" as TranslatedString,\n },\n },\n {\n type: \"choiceHorizontal\",\n props: {\n name: \"state\",\n label: \"New state\" as TranslatedString,\n converter: amlStateConverter,\n choices: [\n {\n value: AmlExchangeBackend.AmlState.frozen,\n label: \"Frozen\" as TranslatedString,\n },\n {\n value: AmlExchangeBackend.AmlState.pending,\n label: \"Pending\" as TranslatedString,\n },\n {\n value: AmlExchangeBackend.AmlState.normal,\n label: \"Normal\" as TranslatedString,\n },\n ],\n },\n },\n {\n type: \"amount\",\n props: {\n name: \"threshold\",\n label: \"New threshold\" as TranslatedString,\n },\n },\n ],\n };\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_11.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title:\n \"Establishing of the controlling person of operating legal entities and partnerships both not quoted on the stock exchange\" as TranslatedString,\n description:\n \"for operating legal entities and partnership that are contracting partner as well as analogously for operating legal entities and partnership that are beneficial owners.\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"declares\",\n label:\n \"The contracting partner hereby declares that\" as TranslatedString,\n required: true,\n choices: [\n {\n label:\n \"the person(s) listed below is/are holding 25% or more of the contracting partner's shares (capital shares or voting rights)\" as TranslatedString,\n value: \"25-or-more\",\n },\n {\n label:\n \"if the capital shares or voting rights cannot be determined or in case there are no capital shares or voting rights 25% or more, the contracting partner hereby declares that the person(s) listed below is/are controlling the contracting partner in other ways\" as TranslatedString,\n value: \"controlling-in-other-ways\",\n },\n {\n label:\n \"in case this/these person(s) cannot be determined or this/these person(s) does/do not exist, the contracting partner hereby declares that the person(s) listed below is/are the managing director(s)\" as TranslatedString,\n value: \"managing-director\",\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n name: \"businessEstablisher\",\n label: \"Persons\" as TranslatedString,\n required: true,\n placeholder: \"this is the placeholder\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"lastName\",\n label: \"Last name(s)\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"firstName\",\n label: \"First name(s)\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label: \"Actual address of domicile\" as TranslatedString,\n required: true,\n },\n },\n ],\n labelField: \"lastName\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"fiduciaryAssets\",\n label: \"Fiduciary holding assets\" as TranslatedString,\n help: \"Is a third person the beneficial owner of the assets held in the account/securities account?\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n description:\n \"The relevant information regarding the beneficial owner has to be obtained by filling in a separate VQF doc. No. 902.9\" as TranslatedString,\n },\n ],\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_11.Form>,\n ): FormState<Form902_11.Form> {\n return {\n person: {\n hidden:\n v.declares !== \"controlling-in-other-ways\" &&\n v.declares !== \"managing-director\",\n },\n when: {\n disabled: true,\n },\n };\n },\n});\n\nnamespace Form902_11 {\n interface Person {\n lastName: string;\n firstName: string;\n address: string;\n }\n export interface Form extends Simplest.WithResolution {\n contractingPartner: string;\n declares: \"25-or-more\" | \"controlling-in-other-ways\" | \"managing-director\";\n person: Person[];\n fiduciaryAssets: \"no\" | \"yes\";\n signature: string;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_12.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title: \"Foundations\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"knownAs\",\n label:\n \"The undersigned hereby declare(s) that as board member of the foundation, or of the highest supervisory body of an underlying company of a foundation, known as\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"foundation.name\",\n label:\n \"Name and information pertaining to the foundation\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"foundation.type\",\n label: \"Type of foundation\" as TranslatedString,\n choices: [\n {\n label: \"Discretionary foundation\" as TranslatedString,\n value: \"discretionary\",\n },\n {\n label: \"Non-discretionary foundation\" as TranslatedString,\n value: \"non-discretionary\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"foundation.revocability\",\n label: \"Revocability\" as TranslatedString,\n choices: [\n {\n label: \"Revocable foundation\" as TranslatedString,\n value: \"revocable\",\n },\n {\n label: \"Irrevocable foundation\" as TranslatedString,\n value: \"irrevocable\",\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the (ultimate economic, not fiduciary) founder (individual(s) or entity/ies)\" as TranslatedString,\n labelField: \"fullName\",\n name: \"founders\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n help: \"if deceased\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToRevoke\",\n required: true,\n label:\n \"Does the founder have the right to revoke the foundation?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"If the foundation results from the restructuring of pre-existing foundation (re-settlement) or the merger of pre-existing foundations, the following information pertaining to the (actual) founder(s) of the pre-existing foundation(s) has to be given\" as TranslatedString,\n labelField: \"fullName\",\n name: \"preExistingFounders\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n help: \"if deceased\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Pertaining to the beneficiary/-ies at the time of the signing of this form\" as TranslatedString,\n labelField: \"fullName\",\n name: \"beneficiaryWhenSigning\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Has the beneficiary an actual right to claim distribution?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the founder) known at the time of the signing of this form\" as TranslatedString,\n name: \"beneficiaryExtra\",\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to further persons having the right to determine or nominate representatives (e.g.) members of the foundation board), if these representatives may dispose over the assets or have the right to change the distribution of the assets or the nomination of beneficiaries\" as TranslatedString,\n labelField: \"fullName\",\n name: \"withRightToNominate\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"has the person the right to revoke the foundation?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the founder) known at the time of the signing of this form\" as TranslatedString,\n name: \"beneficiaryExtra\",\n },\n },\n ],\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_12.Form>,\n ): FormState<Form902_12.Form> {\n return {\n founders: {\n elements: (v.founders ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n withRightToNominate: {\n elements: (v.withRightToNominate ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n when: {\n disabled: true,\n },\n };\n },\n});\n\nnamespace Form902_12 {\n interface Foundation {\n name: string;\n type: \"discretionary\" | \"non-discretionary\";\n revocability: \"revocable\" | \"irrevocable\";\n }\n interface Person {\n fullName: string;\n address: string;\n country: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n }\n type WithRevoke<T> = {\n rightToRevoke: \"yes\" | \"no\";\n } & T;\n type WithClaim<T> = {\n rightToClaim: \"yes\" | \"no\";\n } & T;\n type WithDeath<T> = {\n dateOfDeath: AbsoluteTime;\n } & T;\n\n type Founder = WithRevoke<WithDeath<Person>>;\n type Beneficiary = WithClaim<Person>;\n\n export interface Form extends Simplest.WithResolution {\n contractingPartner: string;\n knownAs: string;\n boardMember: string;\n foundation: Foundation;\n founders: Array<Founder>;\n preExistingFounders: Array<Founder>;\n beneficiaryWhenSigning: Array<Beneficiary>;\n beneficiaryExtra: Array<Beneficiary>;\n withRightToNominate: Array<WithRevoke<Person>>;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_13.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title: \"Declaration for trusts\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"knownAs\",\n label:\n \"The undersigned hereby declare(s) that as trustee or a member of highest supervisory body of an underlying company of a trust known as\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"trust.name\",\n label:\n \"Name and information pertaining to the trust\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"trust.type\",\n label: \"Type of trust\" as TranslatedString,\n choices: [\n {\n label: \"Discretionary trust\" as TranslatedString,\n value: \"discretionary\",\n },\n {\n label: \"Non-discretionary trust\" as TranslatedString,\n value: \"non-discretionary\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"trust.revocability\",\n label: \"Revocability\" as TranslatedString,\n choices: [\n {\n label: \"Revocable foundation\" as TranslatedString,\n value: \"revocable\",\n },\n {\n label: \"Irrevocable foundation\" as TranslatedString,\n value: \"irrevocable\",\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the (ultimate economic, not fiduciary) settlor of the trust (individual(s) or entity/ies)\" as TranslatedString,\n labelField: \"fullName\",\n name: \"settlors\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"if deceased. format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToRevoke\",\n required: true,\n label:\n \"Does the founder have the right to revoke the trust?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"If the trust results from the restructuring of pre-existing trust (re-settlement) or the merger of pre-existing trusts, the following information pertaining to the (actual) settlor of the pre-existing trust(s) has to be given\" as TranslatedString,\n labelField: \"fullName\",\n name: \"preExistingSettlors\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"if deceased. format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Pertaining to the beneficiary/-ies at the time of the signing of this form\" as TranslatedString,\n labelField: \"fullName\",\n name: \"beneficiaryWhenSigning\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Has the beneficiary an actual right to claim distribution?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the settlor) known at the time of the signing of this form\" as TranslatedString,\n name: \"beneficiaryExtra\",\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the protector(s) as well as (a) further person(s) having the right to revoke the trust (in case of revocable trusts) or to appoint the trustee of a trust\" as TranslatedString,\n labelField: \"asd\",\n name: \"nothing\",\n fields: [],\n },\n },\n\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the protectors\" as TranslatedString,\n labelField: \"fullName\",\n name: \"protectors\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Does the protector have the right to revoke the trust?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to further persons\" as TranslatedString,\n labelField: \"fullName\",\n name: \"furtherPersons\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Has this further person the right to revoke the trust?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n label: \"Date\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_13.Form>,\n ): FormState<Form902_13.Form> {\n return {\n settlors: {\n elements: (v.settlors ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n protectors: {\n elements: (v.protectors ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n furtherPersons: {\n elements: (v.furtherPersons ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n when: {\n disabled: true,\n },\n };\n },\n});\n\nnamespace Form902_13 {\n interface Foundation {\n name: string;\n type: \"discretionary\" | \"non-discretionary\";\n revocability: \"revocable\" | \"irrevocable\";\n }\n interface Person {\n fullName: string;\n address: string;\n country: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n }\n type WithRevoke<T> = {\n rightToRevoke: \"yes\" | \"no\";\n } & T;\n type WithClaim<T> = {\n rightToClaim: \"yes\" | \"no\";\n } & T;\n type WithDeath<T> = {\n dateOfDeath: AbsoluteTime;\n } & T;\n\n type Founder = WithRevoke<WithDeath<Person>>;\n type Beneficiary = WithClaim<Person>;\n\n export interface Form extends Simplest.WithResolution {\n contractingPartner: string;\n knownAs: string;\n boardMember: string;\n foundation: Foundation;\n settlors: Array<Founder>;\n preExistingSettlors: Array<Founder>;\n beneficiaryWhenSigning: Array<Beneficiary>;\n beneficiaryExtra: Array<Beneficiary>;\n protectors: Array<WithRevoke<Person>>;\n furtherPersons: Array<WithRevoke<Person>>;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_15.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title:\n \"Information on life insurance policies with separately managed accounts/securities accounts\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"contractualRelationship\",\n label:\n \"Name or number of the contractual relationship between the contracting party and the financial intermediary\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"insurancePolicy\",\n label: \"Insurance policy\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner confirms in accordance with Art. 41a SRO Regulations that it is a licensed and state-supervised insurance company and that it has entered into the above-mentioned contractual relationship the assets connected to the life insurance policy also mentioned above.\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"In relation with the above insurance policy, the contracting partner gives the following further details\" as TranslatedString,\n },\n },\n {\n type: \"group\",\n props: {\n before: \"Policy holder\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"holder.fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"holder.address\",\n label:\n \"Actual address of domicile/registered office (incl. country)\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"holder.dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"holder.nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"Person actually (not in a fiduciary capacity) paying the premiums (to be filled in if not identical with point 1 above)\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"premiumPayer.fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"premiumPayer.address\",\n label:\n \"Actual address of domicile/registered office (incl. country)\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"premiumPayer.dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"premiumPayer.nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner hereby undertakes to automatically inform the financial intermediary of any changes. The contracting partner hereby also declares having been given permission by the above individuals and/or entities to transmit their data to the financial intermediary\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"It is a criminal offense to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery)\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_15.Form>,\n ): FormState<Form902_15.Form> {\n return {\n when: {\n disabled: true,\n },\n };\n },\n});\n\nnamespace Form902_15 {\n interface Person {\n fullName: string;\n address: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n }\n\n export interface Form extends Simplest.WithResolution {\n contractingPartner: string;\n contractualRelationship: string;\n insurancePolicy: string;\n holder: Person;\n premiumsPayer: Person;\n signature: string;\n }\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { DoubleColumnForm } from \"../handlers/forms.js\";\n\nexport interface FlexibleForm<T extends object> {\n versionId: string;\n design: DoubleColumnForm;\n behavior: (form: Partial<T>) => FormState<T>;\n}\n\nexport const languageList = [\n {\n label: \"Mandarin Chinese\" as TranslatedString,\n value: \"cmn\",\n },\n {\n label: \"Spanish\" as TranslatedString,\n value: \"spa\",\n },\n {\n label: \"English\" as TranslatedString,\n value: \"eng\",\n },\n {\n label: \"Hindi\" as TranslatedString,\n value: \"hin\",\n },\n {\n label: \"Portuguese\" as TranslatedString,\n value: \"por\",\n },\n {\n label: \"Bengali\" as TranslatedString,\n value: \"ben\",\n },\n {\n label: \"Russian\" as TranslatedString,\n value: \"rus\",\n },\n {\n label: \"Japanese\" as TranslatedString,\n value: \"jpn\",\n },\n {\n label: \"Yue\" as TranslatedString,\n value: \"yue\",\n },\n {\n label: \"Vietnamese\" as TranslatedString,\n value: \"vie\",\n },\n {\n label: \"Turkish\" as TranslatedString,\n value: \"tur\",\n },\n {\n label: \"Wu\" as TranslatedString,\n value: \"wuu\",\n },\n {\n label: \"Marathi\" as TranslatedString,\n value: \"mar\",\n },\n {\n label: \"Telugu\" as TranslatedString,\n value: \"ten\",\n },\n {\n label: \"Korean\" as TranslatedString,\n value: \"kor\",\n },\n {\n label: \"French\" as TranslatedString,\n value: \"fra\",\n },\n {\n label: \"Tamil\" as TranslatedString,\n value: \"tam\",\n },\n {\n label: \"Egyptian Arabic\" as TranslatedString,\n value: \"arz\",\n },\n {\n label: \"Standard German\" as TranslatedString,\n value: \"deu\",\n },\n {\n label: \"Urdu\" as TranslatedString,\n value: \"urd\",\n },\n {\n label: \"Javanese\" as TranslatedString,\n value: \"jav\",\n },\n {\n label: \"Punjabi\" as TranslatedString,\n value: \"pan\",\n },\n {\n label: \"Italian\" as TranslatedString,\n value: \"ita\",\n },\n {\n label: \"Gujarati\" as TranslatedString,\n value: \"guj\",\n },\n {\n label: \"Iranian Persian\" as TranslatedString,\n value: \"pes\",\n },\n {\n label: \"Bhojpuri\" as TranslatedString,\n value: \"bho\",\n },\n {\n label: \"Hausa\" as TranslatedString,\n value: \"hau\",\n },\n];\nexport const currencyList = [\n {\n label: \"United States dollar\" as TranslatedString,\n value: \"usd\",\n },\n {\n label: \"Euro\" as TranslatedString,\n value: \"eur\",\n },\n {\n label: \"Swiss franc\" as TranslatedString,\n value: \"chf\",\n },\n {\n label: \"Argentine peso\" as TranslatedString,\n value: \"ars\",\n },\n {\n label: \"Mexican peso\" as TranslatedString,\n value: \"mxn\",\n },\n {\n label: \"Brazilian real\" as TranslatedString,\n value: \"brl\",\n },\n];\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm, languageList } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_1.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title: \"This form was completed by\" as TranslatedString,\n description:\n \"The customer has to be identified on entering into a permanent business relationship or on concluding a cash transaction, which meets the according threshold.\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label: \"Full name\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Information on customer\" as TranslatedString,\n description:\n \"The customer is the person with whom the member concludes the contract with regard to the financial service provided (civil law). Does the member act as director of a domiciliary company, this domiciliary company is the customer.\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n name: \"customerType\",\n label: \"Type of customer\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"Natural person\" as TranslatedString,\n value: \"natural\",\n },\n {\n label: \"Legal entity\" as TranslatedString,\n value: \"legal\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.fullName\",\n label: \"Full name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.address\",\n label: \"Residential address\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"integer\",\n props: {\n name: \"naturalCustomer.telephone\",\n label: \"Telephone\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.email\",\n label: \"E-mail\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"naturalCustomer.dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.nationality\",\n label: \"Nationality\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.document\",\n label: \"Identification document\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"naturalCustomer.documentAttachment\",\n label: \"Document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.companyName\",\n label: \"Company name\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.office\",\n label: \"Registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.companyDocument\",\n label: \"Company identification document\" as TranslatedString,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"naturalCustomer.companyDocumentAttachment\",\n label: \"Document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.companyName\",\n label: \"Company name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.domicile\",\n label: \"Domicile\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.contactPerson\",\n label: \"Contact person\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.telephone\",\n label: \"Telephone\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.email\",\n label: \"E-mail\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.document\",\n label: \"Identification document\" as TranslatedString,\n help: \"Not older than 12 month\" as TranslatedString,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"legalCustomer.documentAttachment\",\n label: \"Document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Information on the natural persons who establish the business relationship for legal entities and partnerships\" as TranslatedString,\n description:\n \"For legal entities and partnerships the identity of the natural persons who establish the business relationship must be verified.\" as TranslatedString,\n fields: [\n {\n type: \"array\",\n props: {\n name: \"businessEstablisher\",\n label: \"Persons\" as TranslatedString,\n required: true,\n placeholder: \"this is the placeholder\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label: \"Full name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label: \"Residential address\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n required: true,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"typeOfAuthorization\",\n label:\n \"Type of authorization (signatory of representation)\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"documentAttachment\",\n label:\n \"Identification document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"powerOfAttorneyArrangements\",\n label: \"Power of attorney arrangements\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"CR extract\" as TranslatedString,\n value: \"cr\",\n },\n {\n label: \"Mandate\" as TranslatedString,\n value: \"mandate\",\n },\n {\n label: \"Other\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"powerOfAttorneyArrangementsOther\",\n label: \"Power of attorney arrangements\" as TranslatedString,\n required: true,\n },\n },\n ],\n labelField: \"fullName\",\n },\n },\n ],\n },\n {\n title: \"Acceptance of business relationship\" as TranslatedString,\n fields: [\n {\n type: \"date\",\n props: {\n name: \"acceptance.when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date (conclusion of contract)\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"acceptance.acceptedBy\",\n label: \"Accepted by\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"Face-to-face meeting with customer\" as TranslatedString,\n value: \"face-to-face\",\n },\n {\n label:\n \"Correspondence: authenticated copy of identification document obtained\" as TranslatedString,\n value: \"correspondence-document\",\n },\n {\n label:\n \"Correspondence: residential address validated\" as TranslatedString,\n value: \"correspondence-address\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"acceptance.typeOfCorrespondence\",\n label: \"Type of correspondence service\" as TranslatedString,\n choices: [\n {\n label: \"to the customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label: \"hold at bank\" as TranslatedString,\n value: \"bank\",\n },\n {\n label: \"to the member\" as TranslatedString,\n value: \"member\",\n },\n {\n label: \"to a third party\" as TranslatedString,\n value: \"third-party\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"acceptance.thirdPartyFullName\",\n label: \"Third party full name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"acceptance.thirdPartyAddress\",\n label: \"Third party address\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"selectMultiple\",\n props: {\n name: \"acceptance.language\",\n label: \"Languages\" as TranslatedString,\n choices: languageList,\n unique: true,\n },\n },\n {\n type: \"textArea\",\n props: {\n name: \"acceptance.furtherInformation\",\n label: \"Further information\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Information on the beneficial owner of the assets and/or controlling person\" as TranslatedString,\n description:\n \"Establishment of the beneficial owner of the assets and/or controlling person\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n name: \"establishment\",\n label: \"The customer is\" as TranslatedString,\n required: true,\n choices: [\n {\n label:\n \"a natural person and there are no doubts that this person is the sole beneficial owner of the assets\" as TranslatedString,\n value: \"natural\",\n },\n {\n label:\n \"a foundation (or a similar construct; incl. underlying companies)\" as TranslatedString,\n value: \"foundation\",\n },\n {\n label:\n \"a trust (incl. underlying companies)\" as TranslatedString,\n value: \"trust\",\n },\n {\n label:\n \"a life insurance policy with separately managed accounts/securities accounts\" as TranslatedString,\n value: \"insurance-wrapper\",\n },\n {\n label: \"all other cases\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n ],\n },\n {\n title:\n \"Evaluation with regard to embargo procedures/terrorism lists on establishing the business relationship\" as TranslatedString,\n description:\n \"Verification whether the customer, beneficial owners of the assets, controlling persons, authorized representatives or other involved persons are listed on an embargo/terrorism list (date of verification/result)\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"embargoEvaluation\",\n help: \"The evaluation must be made at the beginning of the business relationship and has to be repeated in the case of permanent business relationship every time the according lists are updated.\" as TranslatedString,\n label: \"Evaluation\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"In the case of cash transactions/occasional customers: Information on type and purpose of business relationship\" as TranslatedString,\n description:\n \"These details are only necessary for occasional customers, i.e. money exchange, money and asset transfer or other cash transactions provided that no customer profile (VQF doc. No. 902.5) is created\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n name: \"cashTransactions.typeOfBusiness\",\n label: \"Type of business relationship\" as TranslatedString,\n choices: [\n {\n label: \"Money exchange\" as TranslatedString,\n value: \"money-exchange\",\n },\n {\n label: \"Money and asset transfer\" as TranslatedString,\n value: \"money-and-asset-transfer\",\n },\n {\n label:\n \"Other cash transactions. Specify below\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"cashTransactions.otherTypeOfBusiness\",\n required: true,\n label: \"Specify other cash transactions:\" as TranslatedString,\n },\n },\n {\n type: \"textArea\",\n props: {\n name: \"cashTransactions.purpose\",\n label:\n \"Purpose of the business relationship (purpose of service requested)\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_1.Form>,\n ): FormState<Form902_1.Form> {\n return {\n fullName: {\n disabled: true,\n },\n when: {\n disabled: true,\n },\n businessEstablisher: {\n elements: (v.businessEstablisher ?? []).map((be) => {\n return {\n powerOfAttorneyArrangementsOther: {\n hidden: be.powerOfAttorneyArrangements !== \"other\",\n },\n };\n }),\n },\n acceptance: {\n thirdPartyFullName: {\n hidden: v.acceptance?.typeOfCorrespondence !== \"third-party\",\n },\n thirdPartyAddress: {\n hidden: v.acceptance?.typeOfCorrespondence !== \"third-party\",\n },\n },\n cashTransactions: {\n otherTypeOfBusiness: {\n hidden: v.cashTransactions?.typeOfBusiness !== \"other\",\n },\n },\n naturalCustomer: {\n fullName: {\n hidden: v.customerType !== \"natural\",\n },\n address: {\n hidden: v.customerType !== \"natural\",\n },\n telephone: {\n hidden: v.customerType !== \"natural\",\n },\n email: {\n hidden: v.customerType !== \"natural\",\n },\n dateOfBirth: {\n hidden: v.customerType !== \"natural\",\n },\n nationality: {\n hidden: v.customerType !== \"natural\",\n },\n document: {\n hidden: v.customerType !== \"natural\",\n },\n companyName: {\n hidden: v.customerType !== \"natural\",\n },\n office: {\n hidden: v.customerType !== \"natural\",\n },\n companyDocument: {\n hidden: v.customerType !== \"natural\",\n },\n companyDocumentAttachment: {\n hidden: v.customerType !== \"natural\",\n },\n documentAttachment: {\n hidden: v.customerType !== \"natural\",\n },\n },\n legalCustomer: {\n companyName: {\n hidden: v.customerType !== \"legal\",\n },\n contactPerson: {\n hidden: v.customerType !== \"legal\",\n },\n document: {\n hidden: v.customerType !== \"legal\",\n },\n domicile: {\n hidden: v.customerType !== \"legal\",\n },\n email: {\n hidden: v.customerType !== \"legal\",\n },\n telephone: {\n hidden: v.customerType !== \"legal\",\n },\n documentAttachment: {\n hidden: v.customerType !== \"legal\",\n },\n },\n };\n },\n});\n\nnamespace Form902_1 {\n interface LegalEntityCustomer {\n companyName: string;\n domicile: string;\n contactPerson: string;\n telephone: string;\n email: string;\n document: string;\n documentAttachment: string;\n }\n interface NaturalCustomer {\n fullName: string;\n address: string;\n telephone: string;\n email: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n document: string;\n documentAttachment: string;\n companyName: string;\n office: string;\n companyDocument: string;\n companyDocumentAttachment: string;\n }\n\n interface Person {\n fullName: string;\n address: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n typeOfAuthorization: string;\n document: string;\n documentAttachment: string;\n powerOfAttorneyArrangements: \"cr\" | \"mandate\" | \"other\";\n powerOfAttorneyArrangementsOther: string;\n }\n\n interface Acceptance {\n when: AbsoluteTime;\n acceptedBy: \"face-to-face\" | \"authenticated-copy\";\n typeOfCorrespondence: string;\n language: string[];\n furtherInformation: string;\n thirdPartyFullName: string;\n thirdPartyAddress: string;\n }\n\n interface BeneficialOwner {\n establishment:\n | \"natural-person\"\n | \"foundation\"\n | \"trust\"\n | \"insurance-wrapper\"\n | \"other\";\n }\n\n interface CashTransactions {\n typeOfBusiness: \"money-exchange\" | \"money-and-asset-transfer\" | \"other\";\n otherTypeOfBusiness: string;\n purpose: string;\n }\n\n export interface Form extends Simplest.WithResolution {\n fullName: string;\n customerType: \"natural\" | \"legal\";\n naturalCustomer: NaturalCustomer;\n legalCustomer: LegalEntityCustomer;\n businessEstablisher: Array<Person>;\n acceptance: Acceptance;\n beneficialOwner: BeneficialOwner;\n embargoEvaluation: string;\n cashTransactions: CashTransactions;\n // enclosures: Enclosures;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { h as create } from \"preact\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\nimport { ArrowRightIcon, ChevronRightIcon } from \"../pages/Cases.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_4.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title: \"Risk Profile AMLA\" as TranslatedString,\n description:\n \"Evaluation of business relationship with increased risk and definition of criteria for transaction monitoring.\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"The member performs additional clarifications if the business relationship or the transaction is classified as increased risk (Art. 56 SRO Regulations)\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"text\",\n props: {\n name: \"customer\",\n label: \"Customer\" as TranslatedString,\n help: \"Pursuant identification form (VQF doc. Nr. 902.1) numeral 1\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"This form was completed by\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n label: \"Full name\" as TranslatedString,\n name: \"fullName\",\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Evaluation of politically exposed persons (PEP-Check)\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"This evaluation has to be completed by all members for every business relationship\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Foreign PEP\" as TranslatedString,\n tooltip:\n \"Definition see Art. 7 lit. g numeral 1 SRO Regulations\" as TranslatedString,\n help: \"Is the customer, the beneficial owner or the controlling person or authorized representative a foreign PEP or closely related to such a person?\" as TranslatedString,\n name: \"pep.foreign\",\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label: \"Yes\" as TranslatedString,\n description:\n \"The business relationship is compulsory classified as increased risk\" as TranslatedString,\n value: \"yes\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label:\n \"Domestic PEP and PEP of International Organizations\" as TranslatedString,\n tooltip:\n \"Definition see Art. 7 lit. g numeral 2 and 3 SRO Regulations \" as TranslatedString,\n help: \"Is the customer, the beneficial owner or the controlling person or authorized representative a domestic PEP or PEP in International Organizations or closely related to such a person?\" as TranslatedString,\n name: \"pep.domestic\",\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label:\n \"Yes, but NOT risk criterion pursuant to numeral 3 subsequently increased.\" as TranslatedString,\n value: \"yes-but-no-risk\",\n },\n {\n label:\n \"Yes, AND a risk criterion pursuant to numeral 3 subsequently increased.\" as TranslatedString,\n description:\n \"Classification of the business relationship as increased risk is compulsory\" as TranslatedString,\n value: \"yes\",\n },\n ],\n },\n },\n {\n type: \"date\",\n props: {\n label:\n \"The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on\" as TranslatedString,\n name: \"pep.when\",\n pattern: \"dd/MM/yyyy\",\n placeholder: \"dd/MM/yyyy\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n 'Evaluation \"high risk\" or non-cooperative country' as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"This evaluation has to be completed by all members for every business relationship\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: '\"High risk\" or non-cooperative country' as TranslatedString,\n help: 'Is the customer, the beneficial owner or the controlling person or authorized representative in a country considered by the FATF \"high risk\" or non-cooperative and for which FATF requires increased diligence?' as TranslatedString,\n name: \"highRisk.evaluation\",\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label: \"Yes\" as TranslatedString,\n description:\n \"considered as business relationship with increased risk\" as TranslatedString,\n value: \"yes\",\n },\n ],\n },\n },\n {\n type: \"date\",\n props: {\n label:\n \"The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on\" as TranslatedString,\n name: \"highRisk.when\",\n pattern: \"dd/MM/yyyy\",\n placeholder: \"dd/MM/yyyy\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Evaluation of business relationship risk\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"This evaluation has to be completed by all members who have in total more than 20 customers for every business relationship. At least two risk categories have to be chosen and assessed\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"group\",\n props: {\n before: \"a) Country risk (nationality)\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n label: \"Domicile/residential address\" as TranslatedString,\n name: \"evaluation.nationality.address\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n {\n label: \"Controlling person\" as TranslatedString,\n value: \"controlling\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Nationality\" as TranslatedString,\n name: \"evaluation.nationality.nationality\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.nationality.risk\",\n choices: [\n {\n label:\n \"Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"b) Country risk (business activity)\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n label: \"Place of business activity\" as TranslatedString,\n name: \"evaluation.business.place\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.business.risk\",\n choices: [\n {\n label:\n \"Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"c) Country risk (payments)\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Country of origin and destination of frequent payments (if known)\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.payments.risk\",\n choices: [\n {\n label:\n \"Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"d) Industry risk\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n label:\n \"Nature of customer's business activity\" as TranslatedString,\n name: \"evaluation.industry.nature\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.payments.risk\",\n choices: [\n {\n label:\n \"Clearly defined, transparent, easily comprehensible business activity well known to the member\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Business activity with a high level of cash transactions\" as TranslatedString,\n value: \"medium-cash\",\n },\n {\n label:\n \"Business activity not well known to the member\" as TranslatedString,\n value: \"medium-unknown\",\n },\n {\n label:\n \"Trade in munitions/arms, raw gem stones/diamonds, jewelry, international trade in exotic animals, casino and lottery business, trade in erotic wares\" as TranslatedString,\n value: \"high-restricted\",\n },\n {\n label:\n \"Member has no personal knowledge of the customer's industry\" as TranslatedString,\n value: \"high-unknown\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"e) Contact risk\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Types of contact to the customer/ beneficial owner of the assets\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.contact.risk\",\n choices: [\n {\n label:\n \"Personal acquaintance between member and customer/beneficial owner of the assets over several years (at least 2) prior to entering into the business relationship\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"The customer/beneficial owner was not personally known to the member for several years (at least 2) prior to entering into the business relationship; however (a) no business was entered into in the absence of the customer/beneficial owner, or (b) the customer was at least introduced/brokered by a trusted third party\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"The customer/beneficial owner was not personally known to the member and business was entered into in the absence of the former (relationship by correspondence) and the customer was not introduced/brokered by a trusted third party\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"f) Product risk\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Nature of services and products requested by the customer\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.product.risk\",\n choices: [\n {\n label:\n \"Easy to understand, transparent services and products whose financial background is easy to comprehend and verify\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"More sophisticated services/products whose financial background is not readily easy to comprehend and verify\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Main focus on offshore business (especially: relationships with domiciliary companies or other such offshore organisations)\" as TranslatedString,\n value: \"high-offshore\",\n },\n {\n label:\n \"Complex structures in particular by using a domiciliary company with fiduciary shareholders in a non-transparent jurisdiction, without comprehensible reason or for the purpose of short-term asset placement\" as TranslatedString,\n value: \"high-structure\",\n },\n {\n label:\n \"The customer or beneficial owner of the assets has a large number of accounts with pass-through transactions (pass-through accounts)\" as TranslatedString,\n value: \"high-accounts\",\n },\n {\n label:\n \"Complex services/products whose financial background can\u2019t be understood or verified with considerable effort\" as TranslatedString,\n value: \"high-service\",\n },\n {\n label:\n \"Frequent transactions with increased risks\" as TranslatedString,\n value: \"high-freq-tx\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"g) Criteria defined by the member\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n label: \"Criteria definition\" as TranslatedString,\n name: \"evaluation.custom.definition\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.custom.risk\",\n choices: [\n {\n label: \"Low\" as TranslatedString,\n value: \"low\",\n },\n {\n label: \"Medium\" as TranslatedString,\n value: \"medium\",\n },\n {\n label: \"High\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"Overall assessment of the business relationship\" as TranslatedString,\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"A business relationship is classified as increased risk if:\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Business relationship with PEP pursuant to numeral 1 (no exception possible)\" as TranslatedString,\n before: create(ChevronRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n 'Relationship with a person from a \"high risk\" or non-cooperative country according to numeral 2 (no exceptions possible)' as TranslatedString,\n before: create(ChevronRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"Min. one criterion pursuant to numeral 3 was assessed with risk 2 or min. two criteria pursuant to numeral 3 were assessed with risk 1 (exception: justification by the member below why the business relationship overall does not have to be classified as increased risk despite the fact that individual risk criteria are increased)\" as TranslatedString,\n before: create(ChevronRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Justification for differing risk assessment\" as TranslatedString,\n name: \"evaluation.overall.justification\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk classified\" as TranslatedString,\n name: \"evaluation.overall.risk\",\n choices: [\n {\n label:\n \"Business relationship _without_ increased risk\" as TranslatedString,\n value: \"without\",\n },\n {\n label:\n \"Business relationship __with__ increased risk\" as TranslatedString,\n value: \"with\",\n },\n ],\n },\n },\n {\n type: \"date\",\n props: {\n label:\n \"The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on\" as TranslatedString,\n name: \"evaluation.when\",\n pattern: \"dd/MM/yyyy\",\n placeholder: \"dd/MM/yyyy\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Criteria for identification of increased risk transactions (transaction monitoring)\" as TranslatedString,\n fields: [\n {\n type: \"group\",\n props: {\n before: \"Criteria\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Classification as as increased risk is compulsory if\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-6 h-6\" }),\n label:\n \"Transactions for which assets with an equivalent value of CHF 100'000.- or more are physically introduced at the beginning of the business relationship, either at once or in a staggered manner\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-6 h-6\" }),\n label:\n 'Money and asset transfers (\"money transfer\") whereby a single transaction or multiple transactions which appear to be related reach or exceed the amount of CHF 5,000.-' as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-6 h-6\" }),\n label:\n 'Payments from or to a country that is considered to be \"high risk\" or non-cooperative by the FATF and for which increased diligence is required' as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"Additional criteria defined by the member\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n before: create(ArrowRightIcon, { class: \"w-6 h-6\" }),\n label:\n \"All members have to define min. 1 additional criterion for every business relationship to identify unusual transactions\" as TranslatedString,\n },\n },\n {\n type: \"textArea\",\n props: {\n label: \"Description\" as TranslatedString,\n name: \"criteria.additional\",\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"Possible criteria (Art. 59 para. 2 SRO Regulations)\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"the amount of inflowing and outflowing assets\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"type, volume and frequency of transactions usual to the business relationship (considerable variance would be unusual)\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"type, volume and frequency of transactions usual to comparable business relationships (considerable variance would be unusual)\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"description of expected transaction patterns which the client notify the member of (considerable variance would be unusual)\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n 'The country of origin or destination of payments, especially in the case of payments from or to a country considered by the FATF as \"high risk\" or non-cooperative' as TranslatedString,\n },\n },\n ],\n },\n },\n ],\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_4.Form>,\n ): FormState<Form902_4.Form> {\n return {\n when: {\n disabled: true,\n },\n };\n },\n});\n\nnamespace Form902_4 {\n export interface Form extends Simplest.WithResolution {\n customer: string;\n fullName: string;\n pep: {\n foreign: \"yes\" | \"no\";\n domestic: \"yes\" | \"no\" | \"yes-but-no-risk\";\n when: AbsoluteTime;\n };\n highRisk: {\n evaluation: \"yes\" | \"no\";\n when: AbsoluteTime;\n };\n evaluation: {\n nationality: {\n address: \"customer\" | \"owner\" | \"controlling\";\n nationality: \"customer\" | \"owner\";\n risk: \"low\" | \"medium\" | \"high\";\n };\n business: {\n place: \"customer\" | \"owner\";\n risk: \"low\" | \"medium\" | \"high\";\n };\n payments: {\n risk: \"low\" | \"medium\" | \"high\";\n };\n industry: {\n nature: \"customer\" | \"owner\";\n risk:\n | \"low\"\n | \"medium-cash\"\n | \"medium-unknown\"\n | \"high-restricted\"\n | \"high-unknown\";\n };\n contact: {\n risk: \"low\" | \"medium\" | \"high\";\n };\n product: {\n risk:\n | \"low\"\n | \"medium\"\n | \"high-offshore\"\n | \"high-structure\"\n | \"high-accounts\"\n | \"high-service\"\n | \"high-freq-tx\";\n };\n custom: {\n definition: string;\n risk: \"low\" | \"medium\" | \"high\";\n };\n overall: {\n justification: string;\n risk: \"with\" | \"without\";\n };\n when: AbsoluteTime;\n };\n criteria: {\n additional: string;\n };\n }\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm, currencyList } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_5.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title: \"Customer Profile\" as TranslatedString,\n description:\n \"The information below has to refer to the persons from whom the assets originate ultimately (e.g. beneficial owner of the assets, founder/creator of a trust or foundation). Is the customer an operational legal entity or partnership the information may refer to the entity itself (not to the controlling person), unless the entity holds the assets in trust for a third party.\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"customer\",\n label: \"Customer\" as TranslatedString,\n help: \"Pursuant Identification Form (VQF doc. No. 902.1) numeral 1\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label: \"Full name\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Business activity\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Profession, business activities\" as TranslatedString,\n name: \"businessActivity\",\n help: \"former, current, potentially planned\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Financial circumstances\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Income and assets, liabilities\" as TranslatedString,\n name: \"financial\",\n help: \"estimated\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Origin of the deposited assets involved\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n label: \"Nature\" as TranslatedString,\n name: \"originOfAssets.nature\",\n help: \"nature of the involved assets\" as TranslatedString,\n },\n },\n {\n type: \"selectOne\",\n props: {\n name: \"originOfAssets.currency\",\n label: \"Currency\" as TranslatedString,\n choices: currencyList,\n },\n },\n {\n type: \"integer\",\n props: {\n label: \"Amount\" as TranslatedString,\n name: \"originOfAssets.amount\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Category\" as TranslatedString,\n name: \"originOfAssets.category\",\n choices: [\n {\n label: \"Savings\" as TranslatedString,\n value: \"savings\",\n },\n {\n label: \"Own business operations\" as TranslatedString,\n value: \"own-business\",\n },\n {\n label: \"Inheritance\" as TranslatedString,\n value: \"inheritance\",\n },\n {\n label: \"Other, what?\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n label: \"Other category\" as TranslatedString,\n name: \"originOfAssets.categoryOther\",\n required: true,\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Detailed description of the origins/economical background of the assets involved in the business relationship\" as TranslatedString,\n name: \"originOfAssets.details\",\n },\n },\n ],\n },\n {\n title:\n \"Nature and purpose of the business relationship\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Purpose of the business relationship\" as TranslatedString,\n name: \"nature.purpose\",\n help: \"nature of the involved assets\" as TranslatedString,\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Information on the planned development of the business relationship and the assets\" as TranslatedString,\n name: \"nature.plan\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Especially in the case of cash or money and asset transfer transactions with regular customers: Details on usual business volume, Information on the beneficiaries, (Full name, address, bank account)\" as TranslatedString,\n name: \"nature.cashOrMoneyTransfer\",\n },\n },\n ],\n },\n {\n title: \"Relationship with third parties\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to the beneficial owner involved in the business relationship\" as TranslatedString,\n name: \"relations.beneficialOwners\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to the controlling persons involved in the business relationship\" as TranslatedString,\n name: \"relations.controllingPersons\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to the authorized signatories involved in the business relationship\" as TranslatedString,\n name: \"relations.authorizedSignatories\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to other persons involved in the business relationship\" as TranslatedString,\n name: \"relations.otherPersons\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label: \"Relation to other AMLA-Files\" as TranslatedString,\n name: \"relations.withOtherAmlaFiles\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label: \"Introducer / agents / references\" as TranslatedString,\n name: \"relations.references\",\n },\n },\n ],\n },\n {\n title: \"Further information\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Other relevant information\" as TranslatedString,\n name: \"furtherInformation\",\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_5.Form>,\n ): FormState<Form902_5.Form> {\n return {\n when: {\n disabled: true,\n },\n originOfAssets: {\n categoryOther: {\n hidden: v.originOfAssets?.category !== \"other\",\n },\n },\n };\n },\n});\n\nnamespace Form902_5 {\n export interface Form extends Simplest.WithResolution {\n customer: string;\n fullName: string;\n businessActivity: string;\n financial: string;\n originOfAssets: {\n nature: string;\n currency: string;\n amount: number;\n category: \"savings\" | \"own-business\" | \"inheritance\" | \"other\";\n categoryOther: string;\n details: string;\n };\n nature: {\n purpose: string;\n plan: string;\n cashOrMoneyTransfer: string;\n };\n relations: {\n beneficialOwners: string;\n controllingPersons: string;\n authorizedSignatories: string;\n otherPersons: string;\n withOtherAmlaFiles: string;\n references: string;\n };\n furtherInformation: string;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FormState } from \"../handlers/FormProvider.js\";\nimport { State } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { FlexibleForm } from \"./index.js\";\nimport { Simplest, resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: State): FlexibleForm<Form902_9.Form> => ({\n versionId: \"2023-05-15\",\n design: [\n {\n title:\n \"Declaration of identity of the beneficial owner\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date\" as TranslatedString,\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner hereby declares that the person(s) listed below is/are the beneficial owner(s) of the assets involved in the business relationship. If the contracting partner is also the sole beneficial owner of the assets, the contracting partner's detail must be set out below\" as TranslatedString,\n },\n },\n {\n type: \"array\",\n props: {\n label: \"Persons\" as TranslatedString,\n labelField: \"surname\",\n name: \"persons\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"surname\",\n label: \"Surname(s)\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"firstName\",\n label: \"First name(s)\" as TranslatedString,\n },\n },\n {\n type: \"date\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label: \"Actual address of domicile\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner hereby undertakes to inform automatically of any changes to the information contained herein\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"It is a criminal offense to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery)\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_9.Form>,\n ): FormState<Form902_9.Form> {\n return {\n when: {\n disabled: true,\n },\n };\n },\n});\n\nnamespace Form902_9 {\n interface Person {\n surname: string;\n firstName: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n address: string;\n }\n export interface Form extends Simplest.WithResolution {\n contractingPartner: string;\n persons: Person;\n signature: string;\n }\n}\n", "export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}", "function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n", "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { createHashHistory } from \"history\";\nimport { h as create, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nconst history = createHashHistory();\n\ntype PageDefinition<DynamicPart extends Record<string, string>> = {\n pattern: string;\n (params: DynamicPart): string;\n};\n\nfunction replaceAll(\n pattern: string,\n vars: Record<string, string>,\n values: Record<string, string>,\n): string {\n let result = pattern;\n for (const v in vars) {\n result = result.replace(vars[v], !values[v] ? \"\" : values[v]);\n }\n return result;\n}\n\nexport function pageDefinition<T extends Record<string, string>>(\n pattern: string,\n): PageDefinition<T> {\n const patternParams = pattern.match(/(:[\\w?]*)/g);\n if (!patternParams)\n throw Error(\n `page definition pattern ${pattern} doesn't have any parameter`,\n );\n\n const vars = patternParams.reduce((prev, cur) => {\n const pName = cur.match(/(\\w+)/g);\n\n //skip things like :? in the path pattern\n if (!pName || !pName[0]) return prev;\n const name = pName[0];\n return { ...prev, [name]: cur };\n }, {} as Record<string, string>);\n\n const f = (values: T): string => replaceAll(pattern, vars, values);\n f.pattern = pattern;\n return f;\n}\n\nexport type PageEntry<T = unknown> = T extends Record<string, string>\n ? {\n url: PageDefinition<T>;\n view: (props: T) => VNode;\n name: TranslatedString,\n Icon?: () => VNode,\n }\n : T extends unknown\n ? {\n url: string;\n view: (props: {}) => VNode;\n name: TranslatedString,\n Icon?: () => VNode,\n }\n : never;\n\nexport function Router({\n pageList,\n onNotFound,\n}: {\n pageList: Array<PageEntry<any>>;\n onNotFound: () => VNode;\n}): VNode {\n const current = useCurrentLocation(pageList);\n if (current !== undefined) {\n return create(current.page.view, current.values);\n }\n return onNotFound();\n}\n\ntype Location = {\n page: PageEntry<any>;\n path: string;\n values: Record<string, string>;\n};\nexport function useCurrentLocation(pageList: Array<PageEntry<any>>) {\n const [currentLocation, setCurrentLocation] = useState<Location>();\n /**\n * Search path in the pageList\n * get the values from the path found\n * add params from searchParams\n *\n * @param path\n * @param params\n */\n function doSync(path: string, params: URLSearchParams) {\n let result: typeof currentLocation;\n for (let idx = 0; idx < pageList.length; idx++) {\n const page = pageList[idx];\n if (typeof page.url === \"string\") {\n if (page.url === path) {\n const values: Record<string, string> = {};\n params.forEach((v, k) => {\n values[k] = v;\n });\n result = { page, values, path };\n break;\n }\n } else {\n const values = doestUrlMatchToRoute(path, page.url.pattern);\n if (values !== undefined) {\n params.forEach((v, k) => {\n values[k] = v;\n });\n result = { page, values, path };\n break;\n }\n }\n }\n setCurrentLocation(result);\n }\n useEffect(() => {\n doSync(window.location.hash, new URLSearchParams(window.location.search));\n return history.listen(() => {\n doSync(window.location.hash, new URLSearchParams(window.location.search));\n });\n }, []);\n return currentLocation;\n}\n\nexport function useChangeLocation() {\n const [location, setLocation] = useState(window.location.hash)\n useEffect(() => {\n return history.listen(() => {\n setLocation(window.location.hash)\n });\n }, []);\n return location;\n}\n\nfunction doestUrlMatchToRoute(\n url: string,\n route: string,\n): undefined | Record<string, string> {\n const paramsPattern = /(?:\\?([^#]*))?$/;\n // const paramsPattern = /(?:\\?([^#]*))?(#.*)?$/;\n const params = url.match(paramsPattern);\n const urlWithoutParams = url.replace(paramsPattern, \"\");\n\n const result: Record<string, string> = {};\n if (params && params[1]) {\n const paramList = params[1].split(\"&\");\n for (let i = 0; i < paramList.length; i++) {\n const idx = paramList[i].indexOf(\"=\");\n const name = paramList[i].substring(0, idx);\n const value = paramList[i].substring(idx + 1);\n result[decodeURIComponent(name)] = decodeURIComponent(value);\n }\n }\n const urlSeg = urlWithoutParams.split(\"/\");\n const routeSeg = route.split(\"/\");\n let max = Math.max(urlSeg.length, routeSeg.length);\n for (let i = 0; i < max; i++) {\n if (routeSeg[i] && routeSeg[i].charAt(0) === \":\") {\n const param = routeSeg[i].replace(/(^:|[+*?]+$)/g, \"\");\n\n const flags = (routeSeg[i].match(/[+*?]+$/) || EMPTY)[0] || \"\";\n const plus = ~flags.indexOf(\"+\");\n const star = ~flags.indexOf(\"*\");\n const val = urlSeg[i] || \"\";\n\n if (!val && !star && (flags.indexOf(\"?\") < 0 || plus)) {\n return undefined;\n }\n result[param] = decodeURIComponent(val);\n if (plus || star) {\n result[param] = urlSeg.slice(i).map(decodeURIComponent).join(\"/\");\n break;\n }\n } else if (routeSeg[i] !== urlSeg[i]) {\n return undefined;\n }\n }\n return result;\n}\nconst EMPTY: Record<string, string> = {};\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { AntiMoneyLaunderingForm } from \"./pages/AntiMoneyLaunderingForm.js\";\nimport { CaseDetails } from \"./pages/CaseDetails.js\";\nimport { Cases, HomeIcon, PeopleIcon } from \"./pages/Cases.js\";\nimport { NewFormEntry } from \"./pages/NewFormEntry.js\";\nimport { Officer } from \"./pages/Officer.js\";\nimport { PageEntry, pageDefinition } from \"./route.js\";\n// import homeLogo from \"./assets/home.svg\";\n// import peopleLogo from \"./assets/people.svg\";\nconst cases: PageEntry = {\n url: \"#/cases\",\n view: Cases,\n name: \"Cases\" as TranslatedString,\n Icon: HomeIcon,\n};\n\nconst officer: PageEntry = {\n url: \"#/officer\",\n view: Officer,\n name: \"Officer\" as TranslatedString,\n Icon: PeopleIcon,\n};\n\nconst account: PageEntry<{ account: string }> = {\n url: pageDefinition(\"#/account/:account\"),\n view: CaseDetails,\n name: \"Account\" as TranslatedString,\n // icon: () => undefined,\n};\n\nconst newFormEntry: PageEntry<{ account?: string; type?: string }> = {\n url: pageDefinition(\"#/account/:account/new/:type?\"),\n view: NewFormEntry,\n name: \"New Form\" as TranslatedString,\n // icon: () => undefined,\n};\n\n\nexport const Pages = {\n cases,\n officer,\n account,\n newFormEntry,\n};\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { App } from \"./App.js\";\nimport { h, render } from \"preact\";\n\nconst app = document.getElementById(\"app\");\n\nrender(<App />, app as any);\n"],
- "mappings": "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AAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,G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",
- "names": ["undefined", "v", "sign", "n", "i", "x", "add", "a", "b", "r", "base", "l", "j", "y", "d", "c", "l2", "q", "self", "_2", "t", "fn", "p", "e", "isValid", "max", "min", "_", "i", "l", "Jed", "i18n", "x", "k", "match", "n", "p", "hash", "parse", "self", "table", "a", "r", "lexer", "c", "assign", "obj", "props", "i", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "slice", "call", "defaultProps", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__d", "__c", "__h", "constructor", "__v", "vnodeId", "options", "createRef", "current", "Fragment", "Component", "context", "this", "getDomSibling", "childIndex", "indexOf", "sibling", "updateParentDomPointers", "child", "base", "enqueueRender", "c", "rerenderQueue", "push", "process", "prevDebounce", "debounceRendering", "setTimeout", "queue", "__r", "sort", "a", "b", "some", "component", "commitQueue", "oldVNode", "oldDom", "parentDom", "__P", "diff", "ownerSVGElement", "commitRoot", "diffChildren", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "isSvg", "excessDomChildren", "isHydrating", "j", "childVNode", "newDom", "firstChildDom", "refs", "oldChildren", "EMPTY_ARR", "oldChildrenLength", "Array", "isArray", "EMPTY_OBJ", "reorderChildren", "placeChild", "unmount", "applyRef", "tmp", "toChildArray", "out", "nextDom", "sibDom", "outer", "appendChild", "nextSibling", "insertBefore", "diffProps", "dom", "newProps", "oldProps", "hydrate", "setProperty", "setStyle", "style", "value", "IS_NON_DIMENSIONAL", "test", "name", "oldValue", "useCapture", "o", "cssText", "replace", "toLowerCase", "l", "addEventListener", "eventProxyCapture", "eventProxy", "removeEventListener", "e", "removeAttribute", "setAttribute", "event", "newVNode", "isNew", "oldState", "snapshot", "clearProcessingException", "provider", "componentContext", "renderHook", "count", "newType", "contextType", "__E", "prototype", "render", "doRender", "sub", "state", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "forEach", "componentWillUpdate", "componentDidUpdate", "getChildContext", "getSnapshotBeforeUpdate", "diffElementNodes", "diffed", "root", "cb", "oldHtml", "newHtml", "nodeType", "localName", "document", "createTextNode", "createElementNS", "is", "data", "childNodes", "dangerouslySetInnerHTML", "attributes", "__html", "innerHTML", "checked", "parentVNode", "skipRemove", "r", "componentWillUnmount", "replaceNode", "firstChild", "cloneElement", "createContext", "defaultValue", "contextId", "Consumer", "contextValue", "Provider", "subs", "ctx", "_props", "old", "splice", "isValidElement", "error", "errorInfo", "ctor", "handled", "getDerivedStateFromError", "setState", "componentDidCatch", "update", "callback", "s", "forceUpdate", "getHookState", "index", "type", "options", "__h", "currentComponent", "currentHook", "hooks", "__H", "__", "length", "push", "__V", "EMPTY", "useState", "initialState", "useReducer", "invokeOrReturn", "reducer", "init", "hookState", "currentIndex", "_reducer", "__c", "action", "currentValue", "__N", "nextValue", "setState", "_hasScuFromHooks", "prevScu", "shouldComponentUpdate", "p", "s", "c", "stateHooks", "filter", "x", "every", "call", "this", "shouldUpdate", "forEach", "hookItem", "props", "useEffect", "callback", "args", "state", "__s", "argsChanged", "_pendingArgs", "useLayoutEffect", "useRef", "initialValue", "useMemo", "current", "useImperativeHandle", "ref", "createHandle", "concat", "factory", "useCallback", "useContext", "context", "provider", "sub", "value", "useDebugValue", "formatter", "useErrorBoundary", "cb", "errState", "componentDidCatch", "err", "errorInfo", "undefined", "useId", "root", "__v", "__m", "mask", "flushAfterPaintEffects", "component", "afterPaintEffects", "shift", "invokeCleanup", "invokeEffect", "e", "__e", "afterNextFrame", "raf", "done", "clearTimeout", "timeout", "HAS_RAF", "cancelAnimationFrame", "setTimeout", "requestAnimationFrame", "hook", "comp", "cleanup", "oldArgs", "newArgs", "some", "arg", "f", "previousComponent", "prevRaf", "oldBeforeDiff", "oldBeforeRender", "oldAfterDiff", "oldCommit", "oldBeforeUnmount", "diffed", "unmount", "__b", "vnode", "commitQueue", "hasErrored", "assign", "obj", "props", "i", "shallowDiffers", "a", "b", "is", "x", "y", "PureComponent", "p", "this", "memo", "c", "comparer", "shouldUpdate", "nextProps", "ref", "updateRef", "call", "current", "Memoed", "shouldComponentUpdate", "createElement", "displayName", "name", "prototype", "isReactComponent", "forwardRef", "fn", "Forwarded", "clone", "$$typeof", "REACT_FORWARD_SYMBOL", "render", "__f", "detachedClone", "vnode", "detachedParent", "parentDom", "__c", "forEach", "effect", "__H", "__P", "__k", "map", "child", "removeOriginal", "originalParent", "__v", "__e", "insertBefore", "__d", "Suspense", "__u", "_suspenders", "suspended", "component", "__", "__a", "lazy", "loader", "prom", "error", "Lazy", "then", "exports", "default", "e", "SuspenseList", "_next", "_map", "ContextProvider", "getChildContext", "context", "children", "Portal", "_this", "container", "_container", "componentWillUnmount", "_temp", "nodeType", "parentNode", "childNodes", "appendChild", "push", "before", "removeChild", "splice", "indexOf", "createPortal", "el", "containerInfo", "parent", "callback", "textContent", "preactRender", "hydrate", "preactHydrate", "empty", "isPropagationStopped", "cancelBubble", "isDefaultPrevented", "defaultPrevented", "createFactory", "type", "bind", "isValidElement", "element", "REACT_ELEMENT_TYPE", "cloneElement", "preactCloneElement", "apply", "arguments", "unmountComponentAtNode", "findDOMNode", "base", "Fragment", "startTransition", "cb", "useDeferredValue", "val", "useTransition", "useLayoutEffect", "useSyncExternalStore", "subscribe", "getSnapshot", "value", "_useState", "useState", "_instance", "_getSnapshot", "forceUpdate", "useEffect", "oldDiffHook", "mapFn", "Children", "oldCatchError", "oldUnmount", "resolve", "CAMEL_PROPS", "IS_DOM", "onChangeInputType", "oldEventHook", "currentComponent", "classNameDescriptor", "oldVNodeHook", "oldBeforeRender", "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED", "version", "unstable_batchedUpdates", "flushSync", "StrictMode", "useInsertionEffect", "index", "Component", "isPureReactComponent", "state", "options", "__b", "Symbol", "for", "toChildArray", "count", "length", "only", "normalized", "toArray", "newVNode", "oldVNode", "errorInfo", "unmount", "__R", "__h", "promise", "suspendingVNode", "suspendingComponent", "resolved", "onResolved", "onSuspensionComplete", "suspendedVNode", "setState", "pop", "wasHydrating", "document", "detachedComponent", "__O", "fallback", "list", "node", "delete", "revealOrder", "size", "delegated", "get", "unsuspend", "wrappedUnsuspend", "Map", "reverse", "set", "componentDidUpdate", "componentDidMount", "test", "key", "Object", "defineProperty", "configurable", "v", "writable", "event", "persist", "nativeEvent", "class", "normalizedProps", "nonCustomElement", "toLowerCase", "replace", "multiple", "Array", "isArray", "selected", "defaultValue", "className", "enumerable", "__r", "ReactCurrentDispatcher", "readContext", "__n", "arg", "useId", "useReducer", "useRef", "useImperativeHandle", "useMemo", "useCallback", "useContext", "useDebugValue", "createContext", "createRef", "e", "h", "a", "b", "k", "l", "m", "n", "p", "q", "d", "f", "c", "g", "r", "t", "u", "r", "i", "x", "n", "h", "l", "y", "d", "o", "p", "k", "c", "j2", "j3", "x2", "x3", "x4", "x5", "u", "m", "b", "z", "s", "sn", "t2", "t3", "d2", "d3", "d4", "h2", "h3", "h4", "r2", "g", "f", "a", "v", "q", "t", "j", "t22", "b2", "b3", "b4", "m", "n", "i", "j", "h", "l", "a", "b", "c", "d", "x", "r", "p", "q", "e", "f", "g", "t", "s", "k", "m", "n", "i", "t", "h", "p", "q", "k", "n", "i", "b", "i", "i", "h", "fn", "m", "c", "i", "x", "z", "i", "o", "y", "m", "n", "h", "r", "j", "p", "x", "n", "i", "v", "TalerErrorCode", "c", "p", "x", "x", "c", "map", "i", "s", "x", "c", "e", "x", "c", "a2", "x2", "a", "b", "n", "r", "s", "r2", "e", "i", "fn", "counter", "k", "i", "n", "j", "w", "t", "m", "q", "i", "c", "a", "b", "R", "n", "counter", "e", "base", "res", "v", "URL", "URLSearchParams", "x", "URL", "e", "s", "i", "s2", "LibtoolVersion", "compare", "v", "NotificationType", "K", "w", "v", "p", "a", "b", "c", "d", "e", "f", "g", "h", "u", "i", "j", "t2", "h", "blockSize", "k", "i", "b2", "TalerPreciseTimestamp", "t", "s", "TalerProtocolTimestamp", "t2", "Duration", "d", "s", "i", "d2", "n", "AbsoluteTime", "t2", "t", "at", "x", "c", "DenomKeyType", "t", "DenominationPubKey", "p2", "ExchangeProtocolVersion", "MerchantProtocolVersion", "LogLevel", "m", "e", "location", "n", "a", "d", "v", "N", "i", "j", "s", "c", "p", "hash", "d", "n", "TalerSignaturePurpose", "WalletAccountMergeFlags", "c", "p", "x", "bigint", "Edx25519", "L", "sign", "a", "AgeRestriction", "m", "i", "c2", "k2", "d", "ContractFormatTag", "bigint", "i", "b", "v", "s", "ReserveTransactionType", "s", "p", "TalerUriType", "TalerUriAction", "s", "c", "q", "URLSearchParams", "p", "v", "k", "TransactionMajorState", "TransactionMinorState", "TransactionAction", "TransactionType", "WithdrawalType", "PaymentStatus", "TransactionAmountMode", "ScopeType", "CoinStatus", "ConfirmPayResultType", "PreparePayResultType", "RefreshReason", "ExchangeTosStatus", "ExchangeEntryStatus", "ExchangeUpdateStatus", "RecoveryMergeStrategy", "AttentionPriority", "AttentionType", "logger", "s", "i", "c", "i", "x", "n", "c", "s", "fnutil", "f", "x", "HttpStatusCode", "logger", "d", "s", "logger", "_a", "CancellationToken", "logger", "ContractTermsUtil", "i", "x", "h", "k", "e", "hash", "d", "e", "err", "x", "logger", "Headers", "r", "m", "v", "k", "e", "e", "r", "logger", "logger", "CreditDebitIndicator", "s", "TanChannel", "TalerCorebankApi", "MonitorTimeframeParam", "TalerExchangeApi", "AmlState", "TalerMerchantApi", "compare", "account", "account", "e", "__commonJS", "format", "error", "ReactDebugCurrentFrame", "assign", "a", "e", "x", "self", "createElement", "i", "match", "c", "n", "createContext", "moduleObject", "render", "compare", "useContext", "Context", "useState", "useRef", "useEffect", "create", "useMemo", "useSyncExternalStore", "prefix", "fn", "s", "Component", "location", "returnValue", "ArrowRightIcon", "CalendarIcon", "ChevronRightIcon", "DocumentDuplicateIcon", "HomeIcon", "v", "k", "p", "h", "initial", "storage", "hash", "i18n", "error", "d", "logger", "TalerError", "TalerErrorCode", "e", "Headers", "Context", "createContext", "initial", "useEffect", "h", "useContext", "__export", "p", "e", "error", "i18n", "TalerErrorCode", "h", "assertUnreachable", "s", "useState", "useEffect", "l", "lang", "Fragment", "e", "VERSION", "GIT_HASH", "versionText", "h", "Fragment", "n", "createContext", "__toESM", "_typeof", "obj", "defaultOptions", "MILLISECONDS_IN_WEEK", "format", "ordinalNumber", "valueCallback", "_typeof", "obj", "o", "p", "_setPrototypeOf", "self", "e", "_getPrototypeOf", "i", "Setter", "ValueSetter", "_classCallCheck", "_defineProperties", "i", "_createClass", "Parser", "match", "_typeof", "obj", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "EraParser", "parse", "sign", "n", "YearParser", "valueCallback", "LocalWeekYearParser", "ISOWeekYearParser", "ExtendedYearParser", "QuarterParser", "StandAloneQuarterParser", "MonthParser", "StandAloneMonthParser", "LocalWeekParser", "ISOWeekParser", "DateParser", "DayOfYearParser", "defaultOptions", "DayParser", "LocalDayParser", "StandAloneLocalDayParser", "ISODayParser", "AMPMParser", "AMPMMidnightParser", "DayPeriodParser", "Hour1to12Parser", "Hour0to23Parser", "Hour0To11Parser", "Hour1To24Parser", "MinuteParser", "SecondParser", "FractionOfSecondParser", "ISOTimezoneWithZParser", "ISOTimezoneParser", "TimestampSecondsParser", "TimestampMillisecondsParser", "parsers", "officer", "account", "k", "i18n", "v", "toInteger", "requiredArgs", "_typeof", "obj", "toDate", "requiredArgs", "requiredArgs", "toDate", "toInteger", "defaultOptions", "getDefaultOptions", "daysInYear", "maxTime", "millisecondsInMinute", "millisecondsInHour", "millisecondsInSecond", "minTime", "secondsInHour", "secondsInDay", "secondsInHour", "secondsInWeek", "secondsInYear", "daysInYear", "secondsInMonth", "secondsInQuarter", "_typeof", "obj", "requiredArgs", "requiredArgs", "toDate", "requiredArgs", "toInteger", "requiredArgs", "toDate", "startOfUTCISOWeek", "requiredArgs", "toDate", "getUTCISOWeekYear", "requiredArgs", "toDate", "startOfUTCISOWeek", "startOfUTCISOWeekYear", "requiredArgs", "getUTCISOWeekYear", "startOfUTCISOWeek", "MILLISECONDS_IN_WEEK", "getUTCISOWeek", "requiredArgs", "toDate", "startOfUTCISOWeek", "startOfUTCISOWeekYear", "startOfUTCWeek", "requiredArgs", "defaultOptions", "getDefaultOptions", "toInteger", "toDate", "getUTCWeekYear", "requiredArgs", "toDate", "defaultOptions", "getDefaultOptions", "toInteger", "startOfUTCWeek", "startOfUTCWeekYear", "requiredArgs", "defaultOptions", "getDefaultOptions", "toInteger", "getUTCWeekYear", "startOfUTCWeek", "MILLISECONDS_IN_WEEK", "getUTCWeek", "requiredArgs", "toDate", "startOfUTCWeek", "startOfUTCWeekYear", "sign", "y", "M", "d", "a", "h", "H", "m", "s", "S", "formatters", "G", "localize", "y", "Y", "getUTCWeekYear", "R", "getUTCISOWeekYear", "u", "Q", "q", "M", "L", "w", "getUTCWeek", "I", "getUTCISOWeek", "d", "D", "E", "e", "c", "i", "a", "b", "B", "h", "H", "K", "k", "m", "s", "S", "X", "x", "O", "z", "t", "T", "sign", "delimiter", "dateLongFormatter", "formatLong", "timeLongFormatter", "dateTimeLongFormatter", "format", "formatDistance", "buildFormatLongFn", "format", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelative", "buildLocalizeFn", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "localize", "buildLocalizeFn", "argumentCallback", "buildMatchFn", "findIndex", "findKey", "buildMatchPatternFn", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "valueCallback", "buildMatchFn", "requiredArgs", "defaultOptions", "getDefaultOptions", "locale", "toInteger", "toDate", "_typeof", "obj", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_classCallCheck", "_defineProperties", "i", "_createClass", "_defineProperty", "Setter", "ValueSetter", "DateToSystemTimezoneSetter", "_classCallCheck", "_defineProperties", "i", "_createClass", "Parser", "match", "ValueSetter", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "EraParser", "parse", "match", "Parser", "numericPatterns", "timezonePatterns", "mapValue", "parseNumericPattern", "parseTimezonePattern", "sign", "millisecondsInHour", "millisecondsInMinute", "millisecondsInSecond", "parseAnyDigitsSigned", "numericPatterns", "parseNDigits", "n", "parseNDigitsSigned", "dayPeriodEnumToHours", "normalizeTwoDigitYear", "isLeapYearIndex", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "YearParser", "parse", "match", "valueCallback", "mapValue", "parseNDigits", "normalizeTwoDigitYear", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "LocalWeekYearParser", "parse", "match", "valueCallback", "mapValue", "parseNDigits", "getUTCWeekYear", "normalizeTwoDigitYear", "startOfUTCWeek", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "ISOWeekYearParser", "parse", "parseNDigitsSigned", "startOfUTCISOWeek", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "ExtendedYearParser", "parse", "parseNDigitsSigned", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "QuarterParser", "parse", "match", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "StandAloneQuarterParser", "parse", "match", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "MonthParser", "parse", "match", "valueCallback", "mapValue", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "StandAloneMonthParser", "parse", "match", "valueCallback", "mapValue", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "setUTCWeek", "requiredArgs", "toDate", "toInteger", "getUTCWeek", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "LocalWeekParser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "startOfUTCWeek", "setUTCWeek", "Parser", "setUTCISOWeek", "requiredArgs", "toDate", "toInteger", "getUTCISOWeek", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "ISOWeekParser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "startOfUTCISOWeek", "setUTCISOWeek", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "DAYS_IN_MONTH", "DAYS_IN_MONTH_LEAP_YEAR", "DateParser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "isLeapYearIndex", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "DayOfYearParser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "isLeapYearIndex", "Parser", "setUTCDay", "requiredArgs", "defaultOptions", "getDefaultOptions", "toInteger", "toDate", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "DayParser", "parse", "match", "setUTCDay", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "LocalDayParser", "parse", "match", "valueCallback", "mapValue", "parseNDigits", "setUTCDay", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "StandAloneLocalDayParser", "parse", "match", "valueCallback", "mapValue", "parseNDigits", "setUTCDay", "Parser", "setUTCISODay", "requiredArgs", "toInteger", "toDate", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "ISODayParser", "parse", "match", "valueCallback", "parseNDigits", "mapValue", "setUTCISODay", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "AMPMParser", "parse", "match", "dayPeriodEnumToHours", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "AMPMMidnightParser", "parse", "match", "dayPeriodEnumToHours", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "DayPeriodParser", "parse", "match", "dayPeriodEnumToHours", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "Hour1to12Parser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "Hour0to23Parser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "Hour0To11Parser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "Hour1To24Parser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "MinuteParser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "SecondParser", "parse", "match", "parseNumericPattern", "numericPatterns", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "FractionOfSecondParser", "parse", "valueCallback", "mapValue", "parseNDigits", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "ISOTimezoneWithZParser", "parse", "parseTimezonePattern", "timezonePatterns", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "ISOTimezoneParser", "parse", "parseTimezonePattern", "timezonePatterns", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "TimestampSecondsParser", "parse", "parseAnyDigitsSigned", "Parser", "_typeof", "obj", "_classCallCheck", "_defineProperties", "i", "_createClass", "_inherits", "_setPrototypeOf", "o", "p", "_createSuper", "_isNativeReflectConstruct", "_getPrototypeOf", "_possibleConstructorReturn", "self", "_assertThisInitialized", "e", "_defineProperty", "TimestampMillisecondsParser", "parse", "parseAnyDigitsSigned", "Parser", "parsers", "EraParser", "YearParser", "LocalWeekYearParser", "ISOWeekYearParser", "ExtendedYearParser", "QuarterParser", "StandAloneQuarterParser", "MonthParser", "StandAloneMonthParser", "LocalWeekParser", "ISOWeekParser", "DateParser", "DayOfYearParser", "DayParser", "LocalDayParser", "StandAloneLocalDayParser", "ISODayParser", "AMPMParser", "AMPMMidnightParser", "DayPeriodParser", "Hour1to12Parser", "Hour0to23Parser", "Hour0To11Parser", "Hour1To24Parser", "MinuteParser", "SecondParser", "FractionOfSecondParser", "ISOTimezoneWithZParser", "ISOTimezoneParser", "TimestampSecondsParser", "TimestampMillisecondsParser", "_typeof", "obj", "o", "i", "F", "n", "e", "s", "f", "formattingTokensRegExp", "longFormattingTokensRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "unescapedLatinCharacterRegExp", "requiredArgs", "defaultOptions", "getDefaultOptions", "locale", "toInteger", "toDate", "_loop", "parsers", "cleanEscapedString", "setter", "a", "b", "v", "a", "b", "cache", "isDate", "f", "h", "s", "error", "mutate", "i", "_", "u2", "f2", "q", "p", "fn", "use", "middleware", "i", "cache", "compare", "_", "t", "T", "error", "x", "SWRConfig", "Context", "q", "p", "i18n", "h", "error", "useSWR", "officer", "account", "error", "AmlExchangeBackend", "AmlState", "FormContext", "notify", "p", "v", "e", "q", "FormContext", "p", "names", "p", "error", "v", "e", "v", "v", "p", "e", "p", "v", "p", "v", "e", "e", "f", "b", "p", "v", "e", "v", "p", "e", "p", "i", "initial", "i", "p", "history", "form", "p", "initial", "s", "a", "b", "k", "account", "p", "i18n", "e", "useSWR", "officer", "p", "state", "offset", "error", "example1", "e", "i18n", "v", "s", "error", "i18n", "v", "e", "officer", "defaultSettings", "e", "officer", "i18n", "i18n", "initial", "p", "v", "r", "v", "v1", "v", "v1", "v", "f", "_a", "v1", "v", "f", "_a", "v1", "v", "v1", "v", "v1", "v", "v1", "v", "v1", "v", "account", "i18n", "initial", "v1", "account", "i18n", "officer", "notify", "p", "i", "i", "k", "n", "invariant", "prefix", "hash", "location", "e", "location", "fn", "invariant", "encodePath", "decodePath", "path", "history", "a", "b", "encodedPath", "location", "n", "history", "v", "f", "pageList", "p", "k", "h", "location", "i", "i18n", "error", "P", "h", "officer", "pageList", "location", "p", "pageList"]
+ "sources": ["../../../../node_modules/.pnpm/big-integer@1.6.52/node_modules/big-integer/BigInteger.js", "../../../../node_modules/.pnpm/jed@1.1.1/node_modules/jed/jed.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/util.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/options.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/create-element.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/component.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/create-context.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/constants.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/children.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/props.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/index.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/render.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/clone-element.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/catch-error.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/hooks/src/index.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/util.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/PureComponent.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/memo.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/forwardRef.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/Children.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/suspense.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/suspense-list.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/portals.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/render.js", "../../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/compat/src/index.js", "../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js", "../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/index.js", "../../../taler-util/src/nacl-fast.ts", "../../../taler-util/src/prng-browser.ts", "../../../taler-util/src/taler-error-codes.ts", "../../../taler-util/src/punycode.ts", "../../../taler-util/src/whatwg-url.ts", "../../../taler-util/src/url.ts", "../../../taler-util/src/helpers.ts", "../../../taler-util/src/logging.ts", "../../../taler-util/src/codec.ts", "../../../taler-util/src/amounts.ts", "../../../taler-util/src/libtool-version.ts", "../../../taler-util/src/notifications.ts", "../../../taler-util/src/sha256.ts", "../../../taler-util/src/kdf.ts", "../../../taler-util/src/taler-crypto.ts", "../../../taler-util/src/time.ts", "../../../taler-util/src/taler-types.ts", "../../../taler-util/src/ReserveTransaction.ts", "../../../taler-util/src/taleruri.ts", "../../../taler-util/src/transactions-types.ts", "../../../taler-util/src/wallet-types.ts", "../../../taler-util/src/i18n.ts", "../../../taler-util/src/fnutils.ts", "../../../taler-util/src/http-status-codes.ts", "../../../taler-util/src/RequestThrottler.ts", "../../../taler-util/src/TaskThrottler.ts", "../../../taler-util/src/CancellationToken.ts", "../../../taler-util/src/contract-terms.ts", "../../../taler-util/src/errors.ts", "../../../taler-util/src/iban.ts", "../../../taler-util/src/transaction-test-data.ts", "../../../taler-util/src/http-impl.missing.ts", "../../../taler-util/src/http-common.ts", "../../../taler-util/src/http.ts", "../../../taler-util/src/MerchantApiClient.ts", "../../../taler-util/src/bank-api-client.ts", "../../../taler-util/src/operation.ts", "../../../taler-util/src/http-client/types.ts", "../../../taler-util/src/http-client/utils.ts", "../../../taler-util/src/http-client/exchange.ts", "../../../taler-util/src/http-client/officer-account.ts", "../../../taler-util/src/index.browser.ts", "../../../web-util/src/hooks/useLocalStorage.ts", "../../../web-util/src/utils/observable.ts", "../../../web-util/src/hooks/useLang.ts", "../../../web-util/src/hooks/useMemoryStorage.ts", "../../../web-util/src/hooks/useNotifications.ts", "../../../web-util/src/hooks/useAsyncAsHook.ts", "../../../web-util/src/utils/base64.ts", "../../../web-util/src/utils/request.ts", "../../../web-util/src/utils/http-impl.browser.ts", "../../../web-util/src/utils/http-impl.sw.ts", "../../../web-util/src/context/api.ts", "../../../web-util/src/context/translation.ts", "../../../web-util/src/components/utils.ts", "../../../web-util/src/components/Attention.tsx", "../../../web-util/src/components/CopyButton.tsx", "../../../web-util/src/components/ErrorLoading.tsx", "../../../web-util/src/components/LangSelector.tsx", "../../../web-util/src/components/Loading.tsx", "../../../web-util/src/components/Header.tsx", "../../../web-util/src/components/Footer.tsx", "../../../web-util/src/components/ShowInputErrorLabel.tsx", "../../../web-util/src/components/LocalNotificationBanner.tsx", "../../../web-util/src/components/GlobalNotificationBanner.tsx", "../../../web-util/src/forms/Calendar.tsx", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/toInteger/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/requiredArgs/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/toDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addDays/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMonths/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/add/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultOptions/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/startOfWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/startOfDay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/constants/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isSameDay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isValid/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/endOfMonth/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/eachDayOfInterval/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/startOfMonth/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/endOfWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/formatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/longFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/protectedTokens/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultLocale/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/format/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/assign/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/getHours/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/getMinutes/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/getMonth/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/getSeconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/getYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Setter.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/constants.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/utils.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCDay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/setUTCISODay/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/_lib/parsers/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/parse/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isSameMonth/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subDays/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/setHours/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subMonths/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/sub/index.js", "../../../web-util/src/forms/Caption.tsx", "../../../web-util/src/forms/InputLine.tsx", "../../../web-util/src/forms/useField.ts", "../../../web-util/src/forms/FormProvider.tsx", "../../../web-util/src/forms/DefaultForm.tsx", "../../../web-util/src/forms/forms.ts", "../../../web-util/src/forms/Group.tsx", "../../../web-util/src/forms/InputAbsoluteTime.tsx", "../../../web-util/src/forms/Dialog.tsx", "../../../web-util/src/forms/InputAmount.tsx", "../../../web-util/src/forms/InputArray.tsx", "../../../web-util/src/forms/InputChoiceHorizontal.tsx", "../../../web-util/src/forms/InputChoiceStacked.tsx", "../../../web-util/src/forms/InputFile.tsx", "../../../web-util/src/forms/InputInteger.tsx", "../../../web-util/src/forms/InputSelectMultiple.tsx", "../../../web-util/src/forms/InputSelectOne.tsx", "../../../web-util/src/forms/InputText.tsx", "../../../web-util/src/forms/InputTextArea.tsx", "../../../web-util/src/forms/InputToggle.tsx", "../../../web-util/src/forms/TimePicker.tsx", "../../../web-util/src/stories.tsx", "../../src/App.tsx", "../../src/Dashboard.tsx", "../../src/hooks/useOfficer.ts", "../../src/context/config.ts", "../../src/hooks/useSettings.ts", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/toInteger/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/requiredArgs/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/toDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultOptions/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isDate/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isValid/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subMilliseconds/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeek/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/formatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/longFormatters/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/protectedTokens/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultLocale/index.js", "../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/format/index.js", "../../src/pages/CaseDetails.tsx", "../../../../node_modules/.pnpm/swr@2.0.3_react@18.2.0/node_modules/swr/core/dist/index.mjs", "../../../../node_modules/.pnpm/swr@2.0.3_react@18.2.0/node_modules/swr/_internal/dist/index.mjs", "../../src/hooks/useCaseDetails.ts", "../../src/types.ts", "../../src/pages/AntiMoneyLaunderingForm.tsx", "../../src/pages/ShowConsolidated.tsx", "../../src/forms/simplest.ts", "../../src/forms/902_11e.ts", "../../src/forms/902_12e.ts", "../../src/forms/902_13e.ts", "../../src/forms/902_15e.ts", "../../src/forms/index.ts", "../../src/forms/902_1e.ts", "../../src/forms/902_4e.ts", "../../src/pages/Cases.tsx", "../../src/hooks/useCases.ts", "../../src/pages/Officer.tsx", "../../src/pages/HandleAccountNotReady.tsx", "../../src/pages/CreateAccount.tsx", "../../src/pages/UnlockAccount.tsx", "../../src/settings.ts", "../../src/hooks/useBackend.ts", "../../src/forms/902_5e.ts", "../../src/forms/902_9e.ts", "../../src/pages/NewFormEntry.tsx", "../../../../node_modules/.pnpm/@babel+runtime@7.19.4/node_modules/@babel/runtime/helpers/esm/extends.js", "../../../../node_modules/.pnpm/resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js", "../../../../node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js", "../../../../node_modules/.pnpm/history@4.10.1/node_modules/history/esm/history.js", "../../src/route.ts", "../../src/pages.ts", "../../src/index.tsx"],
+ "sourcesContent": ["var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n DEFAULT_ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n\r\n var supportsNativeBigInt = typeof BigInt === \"function\";\r\n\r\n function Integer(v, radix, alphabet, caseSensitive) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function NativeBigInt(value) {\r\n this.value = value;\r\n }\r\n NativeBigInt.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n NativeBigInt.prototype.add = function (v) {\r\n return new NativeBigInt(this.value + parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.plus = NativeBigInt.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n NativeBigInt.prototype.subtract = function (v) {\r\n return new NativeBigInt(this.value - parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n NativeBigInt.prototype.negate = function () {\r\n return new NativeBigInt(-this.value);\r\n }\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n NativeBigInt.prototype.abs = function () {\r\n return new NativeBigInt(this.value >= 0 ? this.value : -this.value);\r\n }\r\n\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n NativeBigInt.prototype.multiply = function (v) {\r\n return new NativeBigInt(this.value * parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n NativeBigInt.prototype.square = function (v) {\r\n return new NativeBigInt(this.value * this.value);\r\n }\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n if (supportsNativeBigInt) {\r\n return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)];\r\n }\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) {\r\n return new NativeBigInt(this.value / parseValue(v).value);\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) {\r\n return new NativeBigInt(this.value % parseValue(v).value);\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n NativeBigInt.prototype.pow = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value, b = n.value;\r\n var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2);\r\n if (b === _0) return Integer[1];\r\n if (a === _0) return Integer[0];\r\n if (a === _1) return Integer[1];\r\n if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.isNegative()) return new NativeBigInt(_0);\r\n var x = this;\r\n var y = Integer[1];\r\n while (true) {\r\n if ((b & _1) === _1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === _0) break;\r\n b /= _2;\r\n x = x.square();\r\n }\r\n return y;\r\n }\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n if (exp.isNegative()) {\r\n exp = exp.multiply(Integer[-1]);\r\n base = base.modInv(mod);\r\n }\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n NativeBigInt.prototype.compareAbs = function (v) {\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n a = a >= 0 ? a : -a;\r\n b = b >= 0 ? b : -b;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n NativeBigInt.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n NativeBigInt.prototype.isEven = function () {\r\n return (this.value & BigInt(1)) === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n NativeBigInt.prototype.isOdd = function () {\r\n return (this.value & BigInt(1)) === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive;\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative;\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n NativeBigInt.prototype.isUnit = function () {\r\n return this.abs().value === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n NativeBigInt.prototype.isZero = function () {\r\n return this.value === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n if (n.isZero()) return false;\r\n if (n.isUnit()) return true;\r\n if (n.compareAbs(2) === 0) return this.isEven();\r\n return this.mod(n).isZero();\r\n };\r\n NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n\r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next: for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.isUnit() || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false;\r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if (bits <= 64)\r\n return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);\r\n var logN = Math.log(2) * bits.toJSNumber();\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations, rng) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2), rng));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.isZero()) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.isUnit()) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n NativeBigInt.prototype.next = function () {\r\n return new NativeBigInt(this.value + BigInt(1));\r\n }\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n NativeBigInt.prototype.prev = function () {\r\n return new NativeBigInt(this.value - BigInt(1));\r\n }\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return Math.abs(n) <= BASE;\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (v) {\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (v) {\r\n var remQuo;\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value,\r\n x = typeof v === \"number\" ? v | LOBMASK_I :\r\n typeof v === \"bigint\" ? v | BigInt(LOBMASK_I) :\r\n v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b, rng) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var usedRNG = rng || Math.random;\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(usedRNG() * range));\r\n var digits = toBase(range, BASE).value;\r\n var result = [], restricted = true;\r\n for (var i = 0; i < digits.length; i++) {\r\n var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE;\r\n var digit = truncate(usedRNG() * top);\r\n result.push(digit);\r\n if (digit < digits[i]) restricted = false;\r\n }\r\n return low.add(Integer.fromArray(result, BASE, false));\r\n }\r\n\r\n var parseBase = function (text, base, alphabet, caseSensitive) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n text = String(text);\r\n if (!caseSensitive) {\r\n text = text.toLowerCase();\r\n alphabet = alphabet.toLowerCase();\r\n }\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n var alphabetValues = {};\r\n for (i = 0; i < alphabet.length; i++) {\r\n alphabetValues[alphabet[i]] = i;\r\n }\r\n for (i = 0; i < length; i++) {\r\n var c = text[i];\r\n if (c === \"-\") continue;\r\n if (c in alphabetValues) {\r\n if (alphabetValues[c] >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i];\r\n if (c in alphabetValues) digits.push(parseValue(alphabetValues[c]));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\" && i < text.length);\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit, alphabet) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n if (digit < alphabet.length) {\r\n return alphabet[digit];\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber()))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(n.toJSNumber() - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.isUnit()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(n.toJSNumber()))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base, alphabet) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(function (x) {\r\n return stringify(x, alphabet);\r\n }).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n NativeBigInt.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10 || alphabet) return toBaseString(this, radix, alphabet);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10 || alphabet) return toBaseString(this, radix, alphabet);\r\n return String(this.value);\r\n };\r\n\r\n NativeBigInt.prototype.toString = SmallInteger.prototype.toString;\r\n\r\n NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () {\r\n return parseInt(this.toString(), 10);\r\n }\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(sign ? \"-\" + v : v));\r\n }\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(v));\r\n }\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n if (typeof v === \"bigint\") {\r\n return new NativeBigInt(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = parseValue(i);\r\n if (i > 0) Integer[-i] = parseValue(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define( function () {\r\n return bigInt;\r\n });\r\n}\r\n", "/**\n * @preserve jed.js https://github.com/SlexAxton/Jed\n */\n/*\n-----------\nA gettext compatible i18n library for modern JavaScript Applications\n\nby Alex Sexton - AlexSexton [at] gmail - @SlexAxton\n\nMIT License\n\nA jQuery Foundation project - requires CLA to contribute -\nhttps://contribute.jquery.org/CLA/\n\n\n\nJed offers the entire applicable GNU gettext spec'd set of\nfunctions, but also offers some nicer wrappers around them.\nThe api for gettext was written for a language with no function\noverloading, so Jed allows a little more of that.\n\nMany thanks to Joshua I. Miller - unrtst@cpan.org - who wrote\ngettext.js back in 2008. I was able to vet a lot of my ideas\nagainst his. I also made sure Jed passed against his tests\nin order to offer easy upgrades -- jsgettext.berlios.de\n*/\n(function (root, undef) {\n\n // Set up some underscore-style functions, if you already have\n // underscore, feel free to delete this section, and use it\n // directly, however, the amount of functions used doesn't\n // warrant having underscore as a full dependency.\n // Underscore 1.3.0 was used to port and is licensed\n // under the MIT License by Jeremy Ashkenas.\n var ArrayProto = Array.prototype,\n ObjProto = Object.prototype,\n slice = ArrayProto.slice,\n hasOwnProp = ObjProto.hasOwnProperty,\n nativeForEach = ArrayProto.forEach,\n breaker = {};\n\n // We're not using the OOP style _ so we don't need the\n // extra level of indirection. This still means that you\n // sub out for real `_` though.\n var _ = {\n forEach : function( obj, iterator, context ) {\n var i, l, key;\n if ( obj === null ) {\n return;\n }\n\n if ( nativeForEach && obj.forEach === nativeForEach ) {\n obj.forEach( iterator, context );\n }\n else if ( obj.length === +obj.length ) {\n for ( i = 0, l = obj.length; i < l; i++ ) {\n if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) {\n return;\n }\n }\n }\n else {\n for ( key in obj) {\n if ( hasOwnProp.call( obj, key ) ) {\n if ( iterator.call (context, obj[key], key, obj ) === breaker ) {\n return;\n }\n }\n }\n }\n },\n extend : function( obj ) {\n this.forEach( slice.call( arguments, 1 ), function ( source ) {\n for ( var prop in source ) {\n obj[prop] = source[prop];\n }\n });\n return obj;\n }\n };\n // END Miniature underscore impl\n\n // Jed is a constructor function\n var Jed = function ( options ) {\n // Some minimal defaults\n this.defaults = {\n \"locale_data\" : {\n \"messages\" : {\n \"\" : {\n \"domain\" : \"messages\",\n \"lang\" : \"en\",\n \"plural_forms\" : \"nplurals=2; plural=(n != 1);\"\n }\n // There are no default keys, though\n }\n },\n // The default domain if one is missing\n \"domain\" : \"messages\",\n // enable debug mode to log untranslated strings to the console\n \"debug\" : false\n };\n\n // Mix in the sent options with the default options\n this.options = _.extend( {}, this.defaults, options );\n this.textdomain( this.options.domain );\n\n if ( options.domain && ! this.options.locale_data[ this.options.domain ] ) {\n throw new Error('Text domain set to non-existent domain: `' + options.domain + '`');\n }\n };\n\n // The gettext spec sets this character as the default\n // delimiter for context lookups.\n // e.g.: context\\u0004key\n // If your translation company uses something different,\n // just change this at any time and it will use that instead.\n Jed.context_delimiter = String.fromCharCode( 4 );\n\n function getPluralFormFunc ( plural_form_string ) {\n return Jed.PF.compile( plural_form_string || \"nplurals=2; plural=(n != 1);\");\n }\n\n function Chain( key, i18n ){\n this._key = key;\n this._i18n = i18n;\n }\n\n // Create a chainable api for adding args prettily\n _.extend( Chain.prototype, {\n onDomain : function ( domain ) {\n this._domain = domain;\n return this;\n },\n withContext : function ( context ) {\n this._context = context;\n return this;\n },\n ifPlural : function ( num, pkey ) {\n this._val = num;\n this._pkey = pkey;\n return this;\n },\n fetch : function ( sArr ) {\n if ( {}.toString.call( sArr ) != '[object Array]' ) {\n sArr = [].slice.call(arguments, 0);\n }\n return ( sArr && sArr.length ? Jed.sprintf : function(x){ return x; } )(\n this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val),\n sArr\n );\n }\n });\n\n // Add functions to the Jed prototype.\n // These will be the functions on the object that's returned\n // from creating a `new Jed()`\n // These seem redundant, but they gzip pretty well.\n _.extend( Jed.prototype, {\n // The sexier api start point\n translate : function ( key ) {\n return new Chain( key, this );\n },\n\n textdomain : function ( domain ) {\n if ( ! domain ) {\n return this._textdomain;\n }\n this._textdomain = domain;\n },\n\n gettext : function ( key ) {\n return this.dcnpgettext.call( this, undef, undef, key );\n },\n\n dgettext : function ( domain, key ) {\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n dcgettext : function ( domain , key /*, category */ ) {\n // Ignores the category anyways\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n ngettext : function ( skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, undef, skey, pkey, val );\n },\n\n dngettext : function ( domain, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n dcngettext : function ( domain, skey, pkey, val/*, category */) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n pgettext : function ( context, key ) {\n return this.dcnpgettext.call( this, undef, context, key );\n },\n\n dpgettext : function ( domain, context, key ) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n dcpgettext : function ( domain, context, key/*, category */) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n npgettext : function ( context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, context, skey, pkey, val );\n },\n\n dnpgettext : function ( domain, context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, context, skey, pkey, val );\n },\n\n // The most fully qualified gettext function. It has every option.\n // Since it has every option, we can use it from every other method.\n // This is the bread and butter.\n // Technically there should be one more argument in this function for 'Category',\n // but since we never use it, we might as well not waste the bytes to define it.\n dcnpgettext : function ( domain, context, singular_key, plural_key, val ) {\n // Set some defaults\n\n plural_key = plural_key || singular_key;\n\n // Use the global domain default if one\n // isn't explicitly passed in\n domain = domain || this._textdomain;\n\n var fallback;\n\n // Handle special cases\n\n // No options found\n if ( ! this.options ) {\n // There's likely something wrong, but we'll return the correct key for english\n // We do this by instantiating a brand new Jed instance with the default set\n // for everything that could be broken.\n fallback = new Jed();\n return fallback.dcnpgettext.call( fallback, undefined, undefined, singular_key, plural_key, val );\n }\n\n // No translation data provided\n if ( ! this.options.locale_data ) {\n throw new Error('No locale data provided.');\n }\n\n if ( ! this.options.locale_data[ domain ] ) {\n throw new Error('Domain `' + domain + '` was not found.');\n }\n\n if ( ! this.options.locale_data[ domain ][ \"\" ] ) {\n throw new Error('No locale meta information provided.');\n }\n\n // Make sure we have a truthy key. Otherwise we might start looking\n // into the empty string key, which is the options for the locale\n // data.\n if ( ! singular_key ) {\n throw new Error('No translation key found.');\n }\n\n var key = context ? context + Jed.context_delimiter + singular_key : singular_key,\n locale_data = this.options.locale_data,\n dict = locale_data[ domain ],\n defaultConf = (locale_data.messages || this.defaults.locale_data.messages)[\"\"],\n pluralForms = dict[\"\"].plural_forms || dict[\"\"][\"Plural-Forms\"] || dict[\"\"][\"plural-forms\"] || defaultConf.plural_forms || defaultConf[\"Plural-Forms\"] || defaultConf[\"plural-forms\"],\n val_list,\n res;\n\n var val_idx;\n if (val === undefined) {\n // No value passed in; assume singular key lookup.\n val_idx = 0;\n\n } else {\n // Value has been passed in; use plural-forms calculations.\n\n // Handle invalid numbers, but try casting strings for good measure\n if ( typeof val != 'number' ) {\n val = parseInt( val, 10 );\n\n if ( isNaN( val ) ) {\n throw new Error('The number that was passed in is not a number.');\n }\n }\n\n val_idx = getPluralFormFunc(pluralForms)(val);\n }\n\n // Throw an error if a domain isn't found\n if ( ! dict ) {\n throw new Error('No domain named `' + domain + '` could be found.');\n }\n\n val_list = dict[ key ];\n\n // If there is no match, then revert back to\n // english style singular/plural with the keys passed in.\n if ( ! val_list || val_idx > val_list.length ) {\n if (this.options.missing_key_callback) {\n this.options.missing_key_callback(key, domain);\n }\n res = [ singular_key, plural_key ];\n\n // collect untranslated strings\n if (this.options.debug===true) {\n console.log(res[ getPluralFormFunc(pluralForms)( val ) ]);\n }\n return res[ getPluralFormFunc()( val ) ];\n }\n\n res = val_list[ val_idx ];\n\n // This includes empty strings on purpose\n if ( ! res ) {\n res = [ singular_key, plural_key ];\n return res[ getPluralFormFunc()( val ) ];\n }\n return res;\n }\n });\n\n\n // We add in sprintf capabilities for post translation value interolation\n // This is not internally used, so you can remove it if you have this\n // available somewhere else, or want to use a different system.\n\n // We _slightly_ modify the normal sprintf behavior to more gracefully handle\n // undefined values.\n\n /**\n sprintf() for JavaScript 0.7-beta1\n http://www.diveintojavascript.com/projects/javascript-sprintf\n\n Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of sprintf() for JavaScript nor the\n names of its contributors may be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n var sprintf = (function() {\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n var str_format = function() {\n if (!str_format.cache.hasOwnProperty(arguments[0])) {\n str_format.cache[arguments[0]] = str_format.parse(arguments[0]);\n }\n return str_format.format.call(null, str_format.cache[arguments[0]], arguments);\n };\n\n str_format.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n\n // Jed EDIT\n if ( typeof arg == 'undefined' || arg === null ) {\n arg = '';\n }\n // Jed EDIT\n\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;\n case 'u': arg = Math.abs(arg); break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);\n pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n str_format.cache = {};\n\n str_format.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return parse_tree;\n };\n\n return str_format;\n })();\n\n var vsprintf = function(fmt, argv) {\n argv.unshift(fmt);\n return sprintf.apply(null, argv);\n };\n\n Jed.parse_plural = function ( plural_forms, n ) {\n plural_forms = plural_forms.replace(/n/g, n);\n return Jed.parse_expression(plural_forms);\n };\n\n Jed.sprintf = function ( fmt, args ) {\n if ( {}.toString.call( args ) == '[object Array]' ) {\n return vsprintf( fmt, [].slice.call(args) );\n }\n return sprintf.apply(this, [].slice.call(arguments) );\n };\n\n Jed.prototype.sprintf = function () {\n return Jed.sprintf.apply(this, arguments);\n };\n // END sprintf Implementation\n\n // Start the Plural forms section\n // This is a full plural form expression parser. It is used to avoid\n // running 'eval' or 'new Function' directly against the plural\n // forms.\n //\n // This can be important if you get translations done through a 3rd\n // party vendor. I encourage you to use this instead, however, I\n // also will provide a 'precompiler' that you can use at build time\n // to output valid/safe function representations of the plural form\n // expressions. This means you can build this code out for the most\n // part.\n Jed.PF = {};\n\n Jed.PF.parse = function ( p ) {\n var plural_str = Jed.PF.extractPluralExpr( p );\n return Jed.PF.parser.parse.call(Jed.PF.parser, plural_str);\n };\n\n Jed.PF.compile = function ( p ) {\n // Handle trues and falses as 0 and 1\n function imply( val ) {\n return (val === true ? 1 : val ? val : 0);\n }\n\n var ast = Jed.PF.parse( p );\n return function ( n ) {\n return imply( Jed.PF.interpreter( ast )( n ) );\n };\n };\n\n Jed.PF.interpreter = function ( ast ) {\n return function ( n ) {\n var res;\n switch ( ast.type ) {\n case 'GROUP':\n return Jed.PF.interpreter( ast.expr )( n );\n case 'TERNARY':\n if ( Jed.PF.interpreter( ast.expr )( n ) ) {\n return Jed.PF.interpreter( ast.truthy )( n );\n }\n return Jed.PF.interpreter( ast.falsey )( n );\n case 'OR':\n return Jed.PF.interpreter( ast.left )( n ) || Jed.PF.interpreter( ast.right )( n );\n case 'AND':\n return Jed.PF.interpreter( ast.left )( n ) && Jed.PF.interpreter( ast.right )( n );\n case 'LT':\n return Jed.PF.interpreter( ast.left )( n ) < Jed.PF.interpreter( ast.right )( n );\n case 'GT':\n return Jed.PF.interpreter( ast.left )( n ) > Jed.PF.interpreter( ast.right )( n );\n case 'LTE':\n return Jed.PF.interpreter( ast.left )( n ) <= Jed.PF.interpreter( ast.right )( n );\n case 'GTE':\n return Jed.PF.interpreter( ast.left )( n ) >= Jed.PF.interpreter( ast.right )( n );\n case 'EQ':\n return Jed.PF.interpreter( ast.left )( n ) == Jed.PF.interpreter( ast.right )( n );\n case 'NEQ':\n return Jed.PF.interpreter( ast.left )( n ) != Jed.PF.interpreter( ast.right )( n );\n case 'MOD':\n return Jed.PF.interpreter( ast.left )( n ) % Jed.PF.interpreter( ast.right )( n );\n case 'VAR':\n return n;\n case 'NUM':\n return ast.val;\n default:\n throw new Error(\"Invalid Token found.\");\n }\n };\n };\n\n Jed.PF.extractPluralExpr = function ( p ) {\n // trim first\n p = p.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\n if (! /;\\s*$/.test(p)) {\n p = p.concat(';');\n }\n\n var nplurals_re = /nplurals\\=(\\d+);/,\n plural_re = /plural\\=(.*);/,\n nplurals_matches = p.match( nplurals_re ),\n res = {},\n plural_matches;\n\n // Find the nplurals number\n if ( nplurals_matches.length > 1 ) {\n res.nplurals = nplurals_matches[1];\n }\n else {\n throw new Error('nplurals not found in plural_forms string: ' + p );\n }\n\n // remove that data to get to the formula\n p = p.replace( nplurals_re, \"\" );\n plural_matches = p.match( plural_re );\n\n if (!( plural_matches && plural_matches.length > 1 ) ) {\n throw new Error('`plural` expression not found: ' + p);\n }\n return plural_matches[ 1 ];\n };\n\n /* Jison generated parser */\n Jed.PF.parser = (function(){\n\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"e\":4,\"EOF\":5,\"?\":6,\":\":7,\"||\":8,\"&&\":9,\"<\":10,\"<=\":11,\">\":12,\">=\":13,\"!=\":14,\"==\":15,\"%\":16,\"(\":17,\")\":18,\"n\":19,\"NUMBER\":20,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",6:\"?\",7:\":\",8:\"||\",9:\"&&\",10:\"<\",11:\"<=\",12:\">\",13:\">=\",14:\"!=\",15:\"==\",16:\"%\",17:\"(\",18:\")\",19:\"n\",20:\"NUMBER\"},\nproductions_: [0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],\nperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1: return { type : 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 2:this.$ = { type: 'TERNARY', expr: $$[$0-4], truthy : $$[$0-2], falsey: $$[$0] };\nbreak;\ncase 3:this.$ = { type: \"OR\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 4:this.$ = { type: \"AND\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 5:this.$ = { type: 'LT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 6:this.$ = { type: 'LTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 7:this.$ = { type: 'GT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 8:this.$ = { type: 'GTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 9:this.$ = { type: 'NEQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 10:this.$ = { type: 'EQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 11:this.$ = { type: 'MOD', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 12:this.$ = { type: 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 13:this.$ = { type: 'VAR' };\nbreak;\ncase 14:this.$ = { type: 'NUM', val: Number(yytext) };\nbreak;\n}\n},\ntable: [{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],\ndefaultActions: {6:[2,1]},\nparseError: function parseError(str, hash) {\n throw new Error(str);\n},\nparse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null], // semantic value stack\n lstack = [], // location stack\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n\n //this.reductionCount = this.shiftCount = 0;\n\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n if (typeof this.lexer.yylloc == 'undefined')\n this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n\n if (typeof this.yy.parseError === 'function')\n this.parseError = this.yy.parseError;\n\n function popStack (n) {\n stack.length = stack.length - 2*n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n function lex() {\n var token;\n token = self.lexer.lex() || 1; // $end = 1\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n\n var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;\n while (true) {\n // retreive state number from top of stack\n state = stack[stack.length-1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol == null)\n symbol = lex();\n // read action for current state and first input\n action = table[state] && table[state][symbol];\n }\n\n // handle parse error\n _handle_error:\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n\n if (!recovering) {\n // Report error\n expected = [];\n for (p in table[state]) if (this.terminals_[p] && p > 2) {\n expected.push(\"'\"+this.terminals_[p]+\"'\");\n }\n var errStr = '';\n if (this.lexer.showPosition) {\n errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + this.terminals_[symbol]+ \"'\";\n } else {\n errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +\n (symbol == 1 /*EOF*/ ? \"end of input\" :\n (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));\n }\n this.parseError(errStr,\n {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n }\n\n // just recovered from another error\n if (recovering == 3) {\n if (symbol == EOF) {\n throw new Error(errStr || 'Parsing halted.');\n }\n\n // discard current lookahead and grab another\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n symbol = lex();\n }\n\n // try to recover from error\n while (1) {\n // check for error recovery rule in this state\n if ((TERROR.toString()) in table[state]) {\n break;\n }\n if (state == 0) {\n throw new Error(errStr || 'Parsing halted.');\n }\n popStack(1);\n state = stack[stack.length-1];\n }\n\n preErrorSymbol = symbol; // save the lookahead token\n symbol = TERROR; // insert generic error symbol as new lookahead\n state = stack[stack.length-1];\n action = table[state] && table[state][TERROR];\n recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n }\n\n // this shouldn't happen, unless resolve defaults are off\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);\n }\n\n switch (action[0]) {\n\n case 1: // shift\n //this.shiftCount++;\n\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]); // push state\n symbol = null;\n if (!preErrorSymbol) { // normal execution/no error\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0)\n recovering--;\n } else { // error just occurred, resume old lookahead f/ before error\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n\n case 2: // reduce\n //this.reductionCount++;\n\n len = this.productions_[action[1]][1];\n\n // perform semantic action\n yyval.$ = vstack[vstack.length-len]; // default to $$ = $1\n // default location, uses first token for firsts, last for lasts\n yyval._$ = {\n first_line: lstack[lstack.length-(len||1)].first_line,\n last_line: lstack[lstack.length-1].last_line,\n first_column: lstack[lstack.length-(len||1)].first_column,\n last_column: lstack[lstack.length-1].last_column\n };\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n // pop off stack\n if (len) {\n stack = stack.slice(0,-1*len*2);\n vstack = vstack.slice(0, -1*len);\n lstack = lstack.slice(0, -1*len);\n }\n\n stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[stack[stack.length-2]][stack[stack.length-1]];\n stack.push(newState);\n break;\n\n case 3: // accept\n return true;\n }\n\n }\n\n return true;\n}};/* Jison generated lexer */\nvar lexer = (function(){\n\nvar lexer = ({EOF:1,\nparseError:function parseError(str, hash) {\n if (this.yy.parseError) {\n this.yy.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\nsetInput:function (input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n return this;\n },\ninput:function () {\n var ch = this._input[0];\n this.yytext+=ch;\n this.yyleng++;\n this.match+=ch;\n this.matched+=ch;\n var lines = ch.match(/\\n/);\n if (lines) this.yylineno++;\n this._input = this._input.slice(1);\n return ch;\n },\nunput:function (ch) {\n this._input = ch + this._input;\n return this;\n },\nmore:function () {\n this._more = true;\n return this;\n },\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n },\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n },\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) this.done = true;\n\n var token,\n match,\n col,\n lines;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i=0;i < rules.length; i++) {\n match = this._input.match(this.rules[rules[i]]);\n if (match) {\n lines = match[0].match(/\\n.*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {first_line: this.yylloc.last_line,\n last_line: this.yylineno+1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);\n if (token) return token;\n else return;\n }\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\n {text: \"\", token: null, line: this.yylineno});\n }\n },\nlex:function lex() {\n var r = this.next();\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\npopState:function popState() {\n return this.conditionStack.pop();\n },\n_currentRules:function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n },\ntopState:function () {\n return this.conditionStack[this.conditionStack.length-2];\n },\npushState:function begin(condition) {\n this.begin(condition);\n }});\nlexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* skip whitespace */\nbreak;\ncase 1:return 20\nbreak;\ncase 2:return 19\nbreak;\ncase 3:return 8\nbreak;\ncase 4:return 9\nbreak;\ncase 5:return 6\nbreak;\ncase 6:return 7\nbreak;\ncase 7:return 11\nbreak;\ncase 8:return 13\nbreak;\ncase 9:return 10\nbreak;\ncase 10:return 12\nbreak;\ncase 11:return 14\nbreak;\ncase 12:return 15\nbreak;\ncase 13:return 16\nbreak;\ncase 14:return 17\nbreak;\ncase 15:return 18\nbreak;\ncase 16:return 5\nbreak;\ncase 17:return 'INVALID'\nbreak;\n}\n};\nlexer.rules = [/^\\s+/,/^[0-9]+(\\.[0-9]+)?\\b/,/^n\\b/,/^\\|\\|/,/^&&/,/^\\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\\(/,/^\\)/,/^$/,/^./];\nlexer.conditions = {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],\"inclusive\":true}};return lexer;})()\nparser.lexer = lexer;\nreturn parser;\n})();\n// End parser\n\n // Handle node, amd, and global systems\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Jed;\n }\n exports.Jed = Jed;\n }\n else {\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Jed;\n });\n }\n // Leak a global regardless of module system\n root['Jed'] = Jed;\n }\n\n})(this);\n", "import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n", "export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 1\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n", "import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n", "import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && i !== oldProps.value))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t\tvnode._component = undefined;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type !== 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n", "import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n", "import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n", "/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n", "import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet EMPTY = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingValue = EMPTY;\n\t\t\t\thookItem._nextValue = hookItem._pendingArgs = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\tif (hookItem._pendingValue !== EMPTY) {\n\t\t\t\thookItem._value = hookItem._pendingValue;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t\thookItem._pendingValue = EMPTY;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({ _pendingValue: EMPTY });\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tconst prevScu = currentComponent.shouldComponentUpdate;\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\tcurrentComponent.shouldComponentUpdate = function(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\tconst stateHooks = hookState._component.__hooks._list.filter(\n\t\t\t\t\tx => x._component\n\t\t\t\t);\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t};\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._pendingValue = factory();\n\t\tstate._pendingArgs = args;\n\t\tstate._factory = factory;\n\t\treturn state._pendingValue;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any, errorInfo: import('preact').ErrorInfo) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\nexport function useId() {\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n", "/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n", "import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n", "import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n", "import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n", "import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n", "import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n", "import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n", "import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n", "import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/i\n\t\t: /fil|che|ra/i\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t\tcontinue;\n\t\t\t} else if (i === 'value' && 'defaultValue' in props && value == null) {\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t\t// a default value\n\t\t\t\tcontinue;\n\t\t\t} else if (\n\t\t\t\ti === 'defaultValue' &&\n\t\t\t\t'value' in props &&\n\t\t\t\tprops.value == null\n\t\t\t) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^onfocus$/i.test(i)) {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (/^onblur$/i.test(i)) {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/g, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\t// Add support for onInput and onChange, see #3561\n\t\t\t// if we have an oninput prop already change it to oninputCapture\n\t\t\tif (/^oninput$/i.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t\tif (normalizedProps[i]) {\n\t\t\t\t\ti = 'oninputCapture';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: <select multiple value={[]} />\n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\t// Adding support for defaultValue in select tag\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tif (normalizedProps.multiple) {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t\t} else {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t\t}\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n", "import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport { is } from './util';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '17.0.2'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional arugment that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport function startTransition(cb) {\n\tcb();\n}\n\nexport function useDeferredValue(val) {\n\treturn val;\n}\n\nexport function useTransition() {\n\treturn [false, startTransition];\n}\n\n// TODO: in theory this should be done after a VNode is diffed as we want to insert\n// styles/... before it attaches\nexport const useInsertionEffect = useLayoutEffect;\n\n/**\n * This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84\n * on a high level this cuts out the warnings, ... and attempts a smaller implementation\n */\nexport function useSyncExternalStore(subscribe, getSnapshot) {\n\tconst value = getSnapshot();\n\n\tconst [{ _instance }, forceUpdate] = useState({\n\t\t_instance: { _value: value, _getSnapshot: getSnapshot }\n\t});\n\n\tuseLayoutEffect(() => {\n\t\t_instance._value = value;\n\t\t_instance._getSnapshot = getSnapshot;\n\n\t\tif (!is(_instance._value, getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\t}, [subscribe, value, getSnapshot]);\n\n\tuseEffect(() => {\n\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\n\t\treturn subscribe(() => {\n\t\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\t\tforceUpdate({ _instance });\n\t\t\t}\n\t\t});\n\t}, [subscribe]);\n\n\treturn value;\n}\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseInsertionEffect,\n\tuseTransition,\n\tuseDeferredValue,\n\tuseSyncExternalStore,\n\tstartTransition,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n", "/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n", "// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// TypeScript port in 2019 by Florian Dold.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nconst gf = function (init: number[] = []): Float64Array {\n const r = new Float64Array(16);\n if (init) for (let i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nlet randombytes = function (x: Uint8Array, n: number): void {\n throw new Error(\"no PRNG\");\n};\n\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\n\n// prettier-ignore\nconst gf0 = gf();\nconst gf1 = gf([1]);\nconst _121665 = gf([0xdb41, 1]);\nconst D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898,\n 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203,\n]);\nconst D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130,\n 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406,\n]);\nconst X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c,\n 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169,\n]);\nconst Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n]);\nconst I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7,\n 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83,\n]);\n\nfunction ts64(x: Uint8Array, i: number, h: number, l: number): void {\n x[i] = (h >> 24) & 0xff;\n x[i + 1] = (h >> 16) & 0xff;\n x[i + 2] = (h >> 8) & 0xff;\n x[i + 3] = h & 0xff;\n x[i + 4] = (l >> 24) & 0xff;\n x[i + 5] = (l >> 16) & 0xff;\n x[i + 6] = (l >> 8) & 0xff;\n x[i + 7] = l & 0xff;\n}\n\nfunction vn(\n x: Uint8Array,\n xi: number,\n y: Uint8Array,\n yi: number,\n n: number,\n): number {\n let i,\n d = 0;\n for (i = 0; i < n; i++) d |= x[xi + i] ^ y[yi + i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(\n x: Uint8Array,\n xi: number,\n y: Uint8Array,\n yi: number,\n) {\n return vn(x, xi, y, yi, 16);\n}\n\nfunction crypto_verify_32(\n x: Uint8Array,\n xi: number,\n y: Uint8Array,\n yi: number,\n): number {\n return vn(x, xi, y, yi, 32);\n}\n\nfunction core_salsa20(\n o: Uint8Array,\n p: Uint8Array,\n k: Uint8Array,\n c: Uint8Array,\n) {\n var j0 =\n (c[0] & 0xff) |\n ((c[1] & 0xff) << 8) |\n ((c[2] & 0xff) << 16) |\n ((c[3] & 0xff) << 24),\n j1 =\n (k[0] & 0xff) |\n ((k[1] & 0xff) << 8) |\n ((k[2] & 0xff) << 16) |\n ((k[3] & 0xff) << 24),\n j2 =\n (k[4] & 0xff) |\n ((k[5] & 0xff) << 8) |\n ((k[6] & 0xff) << 16) |\n ((k[7] & 0xff) << 24),\n j3 =\n (k[8] & 0xff) |\n ((k[9] & 0xff) << 8) |\n ((k[10] & 0xff) << 16) |\n ((k[11] & 0xff) << 24),\n j4 =\n (k[12] & 0xff) |\n ((k[13] & 0xff) << 8) |\n ((k[14] & 0xff) << 16) |\n ((k[15] & 0xff) << 24),\n j5 =\n (c[4] & 0xff) |\n ((c[5] & 0xff) << 8) |\n ((c[6] & 0xff) << 16) |\n ((c[7] & 0xff) << 24),\n j6 =\n (p[0] & 0xff) |\n ((p[1] & 0xff) << 8) |\n ((p[2] & 0xff) << 16) |\n ((p[3] & 0xff) << 24),\n j7 =\n (p[4] & 0xff) |\n ((p[5] & 0xff) << 8) |\n ((p[6] & 0xff) << 16) |\n ((p[7] & 0xff) << 24),\n j8 =\n (p[8] & 0xff) |\n ((p[9] & 0xff) << 8) |\n ((p[10] & 0xff) << 16) |\n ((p[11] & 0xff) << 24),\n j9 =\n (p[12] & 0xff) |\n ((p[13] & 0xff) << 8) |\n ((p[14] & 0xff) << 16) |\n ((p[15] & 0xff) << 24),\n j10 =\n (c[8] & 0xff) |\n ((c[9] & 0xff) << 8) |\n ((c[10] & 0xff) << 16) |\n ((c[11] & 0xff) << 24),\n j11 =\n (k[16] & 0xff) |\n ((k[17] & 0xff) << 8) |\n ((k[18] & 0xff) << 16) |\n ((k[19] & 0xff) << 24),\n j12 =\n (k[20] & 0xff) |\n ((k[21] & 0xff) << 8) |\n ((k[22] & 0xff) << 16) |\n ((k[23] & 0xff) << 24),\n j13 =\n (k[24] & 0xff) |\n ((k[25] & 0xff) << 8) |\n ((k[26] & 0xff) << 16) |\n ((k[27] & 0xff) << 24),\n j14 =\n (k[28] & 0xff) |\n ((k[29] & 0xff) << 8) |\n ((k[30] & 0xff) << 16) |\n ((k[31] & 0xff) << 24),\n j15 =\n (c[12] & 0xff) |\n ((c[13] & 0xff) << 8) |\n ((c[14] & 0xff) << 16) |\n ((c[15] & 0xff) << 24);\n\n var x0 = j0,\n x1 = j1,\n x2 = j2,\n x3 = j3,\n x4 = j4,\n x5 = j5,\n x6 = j6,\n x7 = j7,\n x8 = j8,\n x9 = j9,\n x10 = j10,\n x11 = j11,\n x12 = j12,\n x13 = j13,\n x14 = j14,\n x15 = j15,\n u;\n\n for (var i = 0; i < 20; i += 2) {\n u = (x0 + x12) | 0;\n x4 ^= (u << 7) | (u >>> (32 - 7));\n u = (x4 + x0) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x4) | 0;\n x12 ^= (u << 13) | (u >>> (32 - 13));\n u = (x12 + x8) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x1) | 0;\n x9 ^= (u << 7) | (u >>> (32 - 7));\n u = (x9 + x5) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x9) | 0;\n x1 ^= (u << 13) | (u >>> (32 - 13));\n u = (x1 + x13) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x6) | 0;\n x14 ^= (u << 7) | (u >>> (32 - 7));\n u = (x14 + x10) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x14) | 0;\n x6 ^= (u << 13) | (u >>> (32 - 13));\n u = (x6 + x2) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x11) | 0;\n x3 ^= (u << 7) | (u >>> (32 - 7));\n u = (x3 + x15) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x3) | 0;\n x11 ^= (u << 13) | (u >>> (32 - 13));\n u = (x11 + x7) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x0 + x3) | 0;\n x1 ^= (u << 7) | (u >>> (32 - 7));\n u = (x1 + x0) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x1) | 0;\n x3 ^= (u << 13) | (u >>> (32 - 13));\n u = (x3 + x2) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x4) | 0;\n x6 ^= (u << 7) | (u >>> (32 - 7));\n u = (x6 + x5) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x6) | 0;\n x4 ^= (u << 13) | (u >>> (32 - 13));\n u = (x4 + x7) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x9) | 0;\n x11 ^= (u << 7) | (u >>> (32 - 7));\n u = (x11 + x10) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x11) | 0;\n x9 ^= (u << 13) | (u >>> (32 - 13));\n u = (x9 + x8) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x14) | 0;\n x12 ^= (u << 7) | (u >>> (32 - 7));\n u = (x12 + x15) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x12) | 0;\n x14 ^= (u << 13) | (u >>> (32 - 13));\n u = (x14 + x13) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n }\n x0 = (x0 + j0) | 0;\n x1 = (x1 + j1) | 0;\n x2 = (x2 + j2) | 0;\n x3 = (x3 + j3) | 0;\n x4 = (x4 + j4) | 0;\n x5 = (x5 + j5) | 0;\n x6 = (x6 + j6) | 0;\n x7 = (x7 + j7) | 0;\n x8 = (x8 + j8) | 0;\n x9 = (x9 + j9) | 0;\n x10 = (x10 + j10) | 0;\n x11 = (x11 + j11) | 0;\n x12 = (x12 + j12) | 0;\n x13 = (x13 + j13) | 0;\n x14 = (x14 + j14) | 0;\n x15 = (x15 + j15) | 0;\n\n o[0] = (x0 >>> 0) & 0xff;\n o[1] = (x0 >>> 8) & 0xff;\n o[2] = (x0 >>> 16) & 0xff;\n o[3] = (x0 >>> 24) & 0xff;\n\n o[4] = (x1 >>> 0) & 0xff;\n o[5] = (x1 >>> 8) & 0xff;\n o[6] = (x1 >>> 16) & 0xff;\n o[7] = (x1 >>> 24) & 0xff;\n\n o[8] = (x2 >>> 0) & 0xff;\n o[9] = (x2 >>> 8) & 0xff;\n o[10] = (x2 >>> 16) & 0xff;\n o[11] = (x2 >>> 24) & 0xff;\n\n o[12] = (x3 >>> 0) & 0xff;\n o[13] = (x3 >>> 8) & 0xff;\n o[14] = (x3 >>> 16) & 0xff;\n o[15] = (x3 >>> 24) & 0xff;\n\n o[16] = (x4 >>> 0) & 0xff;\n o[17] = (x4 >>> 8) & 0xff;\n o[18] = (x4 >>> 16) & 0xff;\n o[19] = (x4 >>> 24) & 0xff;\n\n o[20] = (x5 >>> 0) & 0xff;\n o[21] = (x5 >>> 8) & 0xff;\n o[22] = (x5 >>> 16) & 0xff;\n o[23] = (x5 >>> 24) & 0xff;\n\n o[24] = (x6 >>> 0) & 0xff;\n o[25] = (x6 >>> 8) & 0xff;\n o[26] = (x6 >>> 16) & 0xff;\n o[27] = (x6 >>> 24) & 0xff;\n\n o[28] = (x7 >>> 0) & 0xff;\n o[29] = (x7 >>> 8) & 0xff;\n o[30] = (x7 >>> 16) & 0xff;\n o[31] = (x7 >>> 24) & 0xff;\n\n o[32] = (x8 >>> 0) & 0xff;\n o[33] = (x8 >>> 8) & 0xff;\n o[34] = (x8 >>> 16) & 0xff;\n o[35] = (x8 >>> 24) & 0xff;\n\n o[36] = (x9 >>> 0) & 0xff;\n o[37] = (x9 >>> 8) & 0xff;\n o[38] = (x9 >>> 16) & 0xff;\n o[39] = (x9 >>> 24) & 0xff;\n\n o[40] = (x10 >>> 0) & 0xff;\n o[41] = (x10 >>> 8) & 0xff;\n o[42] = (x10 >>> 16) & 0xff;\n o[43] = (x10 >>> 24) & 0xff;\n\n o[44] = (x11 >>> 0) & 0xff;\n o[45] = (x11 >>> 8) & 0xff;\n o[46] = (x11 >>> 16) & 0xff;\n o[47] = (x11 >>> 24) & 0xff;\n\n o[48] = (x12 >>> 0) & 0xff;\n o[49] = (x12 >>> 8) & 0xff;\n o[50] = (x12 >>> 16) & 0xff;\n o[51] = (x12 >>> 24) & 0xff;\n\n o[52] = (x13 >>> 0) & 0xff;\n o[53] = (x13 >>> 8) & 0xff;\n o[54] = (x13 >>> 16) & 0xff;\n o[55] = (x13 >>> 24) & 0xff;\n\n o[56] = (x14 >>> 0) & 0xff;\n o[57] = (x14 >>> 8) & 0xff;\n o[58] = (x14 >>> 16) & 0xff;\n o[59] = (x14 >>> 24) & 0xff;\n\n o[60] = (x15 >>> 0) & 0xff;\n o[61] = (x15 >>> 8) & 0xff;\n o[62] = (x15 >>> 16) & 0xff;\n o[63] = (x15 >>> 24) & 0xff;\n}\n\nfunction core_hsalsa20(\n o: Uint8Array,\n p: Uint8Array,\n k: Uint8Array,\n c: Uint8Array,\n) {\n var j0 =\n (c[0] & 0xff) |\n ((c[1] & 0xff) << 8) |\n ((c[2] & 0xff) << 16) |\n ((c[3] & 0xff) << 24),\n j1 =\n (k[0] & 0xff) |\n ((k[1] & 0xff) << 8) |\n ((k[2] & 0xff) << 16) |\n ((k[3] & 0xff) << 24),\n j2 =\n (k[4] & 0xff) |\n ((k[5] & 0xff) << 8) |\n ((k[6] & 0xff) << 16) |\n ((k[7] & 0xff) << 24),\n j3 =\n (k[8] & 0xff) |\n ((k[9] & 0xff) << 8) |\n ((k[10] & 0xff) << 16) |\n ((k[11] & 0xff) << 24),\n j4 =\n (k[12] & 0xff) |\n ((k[13] & 0xff) << 8) |\n ((k[14] & 0xff) << 16) |\n ((k[15] & 0xff) << 24),\n j5 =\n (c[4] & 0xff) |\n ((c[5] & 0xff) << 8) |\n ((c[6] & 0xff) << 16) |\n ((c[7] & 0xff) << 24),\n j6 =\n (p[0] & 0xff) |\n ((p[1] & 0xff) << 8) |\n ((p[2] & 0xff) << 16) |\n ((p[3] & 0xff) << 24),\n j7 =\n (p[4] & 0xff) |\n ((p[5] & 0xff) << 8) |\n ((p[6] & 0xff) << 16) |\n ((p[7] & 0xff) << 24),\n j8 =\n (p[8] & 0xff) |\n ((p[9] & 0xff) << 8) |\n ((p[10] & 0xff) << 16) |\n ((p[11] & 0xff) << 24),\n j9 =\n (p[12] & 0xff) |\n ((p[13] & 0xff) << 8) |\n ((p[14] & 0xff) << 16) |\n ((p[15] & 0xff) << 24),\n j10 =\n (c[8] & 0xff) |\n ((c[9] & 0xff) << 8) |\n ((c[10] & 0xff) << 16) |\n ((c[11] & 0xff) << 24),\n j11 =\n (k[16] & 0xff) |\n ((k[17] & 0xff) << 8) |\n ((k[18] & 0xff) << 16) |\n ((k[19] & 0xff) << 24),\n j12 =\n (k[20] & 0xff) |\n ((k[21] & 0xff) << 8) |\n ((k[22] & 0xff) << 16) |\n ((k[23] & 0xff) << 24),\n j13 =\n (k[24] & 0xff) |\n ((k[25] & 0xff) << 8) |\n ((k[26] & 0xff) << 16) |\n ((k[27] & 0xff) << 24),\n j14 =\n (k[28] & 0xff) |\n ((k[29] & 0xff) << 8) |\n ((k[30] & 0xff) << 16) |\n ((k[31] & 0xff) << 24),\n j15 =\n (c[12] & 0xff) |\n ((c[13] & 0xff) << 8) |\n ((c[14] & 0xff) << 16) |\n ((c[15] & 0xff) << 24);\n\n var x0 = j0,\n x1 = j1,\n x2 = j2,\n x3 = j3,\n x4 = j4,\n x5 = j5,\n x6 = j6,\n x7 = j7,\n x8 = j8,\n x9 = j9,\n x10 = j10,\n x11 = j11,\n x12 = j12,\n x13 = j13,\n x14 = j14,\n x15 = j15,\n u;\n\n for (var i = 0; i < 20; i += 2) {\n u = (x0 + x12) | 0;\n x4 ^= (u << 7) | (u >>> (32 - 7));\n u = (x4 + x0) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x4) | 0;\n x12 ^= (u << 13) | (u >>> (32 - 13));\n u = (x12 + x8) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x1) | 0;\n x9 ^= (u << 7) | (u >>> (32 - 7));\n u = (x9 + x5) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x9) | 0;\n x1 ^= (u << 13) | (u >>> (32 - 13));\n u = (x1 + x13) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x6) | 0;\n x14 ^= (u << 7) | (u >>> (32 - 7));\n u = (x14 + x10) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x14) | 0;\n x6 ^= (u << 13) | (u >>> (32 - 13));\n u = (x6 + x2) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x11) | 0;\n x3 ^= (u << 7) | (u >>> (32 - 7));\n u = (x3 + x15) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x3) | 0;\n x11 ^= (u << 13) | (u >>> (32 - 13));\n u = (x11 + x7) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x0 + x3) | 0;\n x1 ^= (u << 7) | (u >>> (32 - 7));\n u = (x1 + x0) | 0;\n x2 ^= (u << 9) | (u >>> (32 - 9));\n u = (x2 + x1) | 0;\n x3 ^= (u << 13) | (u >>> (32 - 13));\n u = (x3 + x2) | 0;\n x0 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x5 + x4) | 0;\n x6 ^= (u << 7) | (u >>> (32 - 7));\n u = (x6 + x5) | 0;\n x7 ^= (u << 9) | (u >>> (32 - 9));\n u = (x7 + x6) | 0;\n x4 ^= (u << 13) | (u >>> (32 - 13));\n u = (x4 + x7) | 0;\n x5 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x10 + x9) | 0;\n x11 ^= (u << 7) | (u >>> (32 - 7));\n u = (x11 + x10) | 0;\n x8 ^= (u << 9) | (u >>> (32 - 9));\n u = (x8 + x11) | 0;\n x9 ^= (u << 13) | (u >>> (32 - 13));\n u = (x9 + x8) | 0;\n x10 ^= (u << 18) | (u >>> (32 - 18));\n\n u = (x15 + x14) | 0;\n x12 ^= (u << 7) | (u >>> (32 - 7));\n u = (x12 + x15) | 0;\n x13 ^= (u << 9) | (u >>> (32 - 9));\n u = (x13 + x12) | 0;\n x14 ^= (u << 13) | (u >>> (32 - 13));\n u = (x14 + x13) | 0;\n x15 ^= (u << 18) | (u >>> (32 - 18));\n }\n\n o[0] = (x0 >>> 0) & 0xff;\n o[1] = (x0 >>> 8) & 0xff;\n o[2] = (x0 >>> 16) & 0xff;\n o[3] = (x0 >>> 24) & 0xff;\n\n o[4] = (x5 >>> 0) & 0xff;\n o[5] = (x5 >>> 8) & 0xff;\n o[6] = (x5 >>> 16) & 0xff;\n o[7] = (x5 >>> 24) & 0xff;\n\n o[8] = (x10 >>> 0) & 0xff;\n o[9] = (x10 >>> 8) & 0xff;\n o[10] = (x10 >>> 16) & 0xff;\n o[11] = (x10 >>> 24) & 0xff;\n\n o[12] = (x15 >>> 0) & 0xff;\n o[13] = (x15 >>> 8) & 0xff;\n o[14] = (x15 >>> 16) & 0xff;\n o[15] = (x15 >>> 24) & 0xff;\n\n o[16] = (x6 >>> 0) & 0xff;\n o[17] = (x6 >>> 8) & 0xff;\n o[18] = (x6 >>> 16) & 0xff;\n o[19] = (x6 >>> 24) & 0xff;\n\n o[20] = (x7 >>> 0) & 0xff;\n o[21] = (x7 >>> 8) & 0xff;\n o[22] = (x7 >>> 16) & 0xff;\n o[23] = (x7 >>> 24) & 0xff;\n\n o[24] = (x8 >>> 0) & 0xff;\n o[25] = (x8 >>> 8) & 0xff;\n o[26] = (x8 >>> 16) & 0xff;\n o[27] = (x8 >>> 24) & 0xff;\n\n o[28] = (x9 >>> 0) & 0xff;\n o[29] = (x9 >>> 8) & 0xff;\n o[30] = (x9 >>> 16) & 0xff;\n o[31] = (x9 >>> 24) & 0xff;\n}\n\nvar sigma = new Uint8Array([\n 101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107,\n]);\n// \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(\n c: Uint8Array,\n cpos: number,\n m: Uint8Array,\n mpos: number,\n b: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var z = new Uint8Array(16),\n x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < 64; i++) c[cpos + i] = m[mpos + i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = (u + (z[i] & 0xff)) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < b; i++) c[cpos + i] = m[mpos + i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(\n c: Uint8Array,\n cpos: number,\n b: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var z = new Uint8Array(16),\n x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < 64; i++) c[cpos + i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = (u + (z[i] & 0xff)) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n core_salsa20(x, z, k, sigma);\n for (i = 0; i < b; i++) c[cpos + i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(\n c: Uint8Array,\n cpos: number,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var s = new Uint8Array(32);\n core_hsalsa20(s, n, k, sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i + 16];\n return crypto_stream_salsa20(c, cpos, d, sn, s);\n}\n\nfunction crypto_stream_xor(\n c: Uint8Array,\n cpos: number,\n m: Uint8Array,\n mpos: number,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n) {\n var s = new Uint8Array(32);\n core_hsalsa20(s, n, k, sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i + 16];\n return crypto_stream_salsa20_xor(c, cpos, m, mpos, d, sn, s);\n}\n\n/*\n * Port of Andrew Moon's Poly1305-donna-16. Public domain.\n * https://github.com/floodyberry/poly1305-donna\n */\n\nclass poly1305 {\n buffer = new Uint8Array(16);\n r = new Uint16Array(10);\n h = new Uint16Array(10);\n pad = new Uint16Array(8);\n leftover = 0;\n fin = 0;\n\n constructor(key: Uint8Array) {\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = (key[0] & 0xff) | ((key[1] & 0xff) << 8);\n this.r[0] = t0 & 0x1fff;\n t1 = (key[2] & 0xff) | ((key[3] & 0xff) << 8);\n this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = (key[4] & 0xff) | ((key[5] & 0xff) << 8);\n this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = (key[6] & 0xff) | ((key[7] & 0xff) << 8);\n this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = (key[8] & 0xff) | ((key[9] & 0xff) << 8);\n this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = (t4 >>> 1) & 0x1ffe;\n t5 = (key[10] & 0xff) | ((key[11] & 0xff) << 8);\n this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = (key[12] & 0xff) | ((key[13] & 0xff) << 8);\n this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = (key[14] & 0xff) | ((key[15] & 0xff) << 8);\n this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = (t7 >>> 5) & 0x007f;\n\n this.pad[0] = (key[16] & 0xff) | ((key[17] & 0xff) << 8);\n this.pad[1] = (key[18] & 0xff) | ((key[19] & 0xff) << 8);\n this.pad[2] = (key[20] & 0xff) | ((key[21] & 0xff) << 8);\n this.pad[3] = (key[22] & 0xff) | ((key[23] & 0xff) << 8);\n this.pad[4] = (key[24] & 0xff) | ((key[25] & 0xff) << 8);\n this.pad[5] = (key[26] & 0xff) | ((key[27] & 0xff) << 8);\n this.pad[6] = (key[28] & 0xff) | ((key[29] & 0xff) << 8);\n this.pad[7] = (key[30] & 0xff) | ((key[31] & 0xff) << 8);\n }\n\n blocks(m: Uint8Array, mpos: number, bytes: number) {\n var hibit = this.fin ? 0 : 1 << 11;\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = (m[mpos + 0] & 0xff) | ((m[mpos + 1] & 0xff) << 8);\n h0 += t0 & 0x1fff;\n t1 = (m[mpos + 2] & 0xff) | ((m[mpos + 3] & 0xff) << 8);\n h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = (m[mpos + 4] & 0xff) | ((m[mpos + 5] & 0xff) << 8);\n h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = (m[mpos + 6] & 0xff) | ((m[mpos + 7] & 0xff) << 8);\n h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = (m[mpos + 8] & 0xff) | ((m[mpos + 9] & 0xff) << 8);\n h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += (t4 >>> 1) & 0x1fff;\n t5 = (m[mpos + 10] & 0xff) | ((m[mpos + 11] & 0xff) << 8);\n h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = (m[mpos + 12] & 0xff) | ((m[mpos + 13] & 0xff) << 8);\n h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = (m[mpos + 14] & 0xff) | ((m[mpos + 15] & 0xff) << 8);\n h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += (t7 >>> 5) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = d0 >>> 13;\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += d0 >>> 13;\n d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = d1 >>> 13;\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += d1 >>> 13;\n d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = d2 >>> 13;\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += d2 >>> 13;\n d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = d3 >>> 13;\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += d3 >>> 13;\n d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = d4 >>> 13;\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += d4 >>> 13;\n d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = d5 >>> 13;\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += d5 >>> 13;\n d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = d6 >>> 13;\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += d6 >>> 13;\n d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = d7 >>> 13;\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += d7 >>> 13;\n d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = d8 >>> 13;\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += d8 >>> 13;\n d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = d9 >>> 13;\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += d9 >>> 13;\n d9 &= 0x1fff;\n\n c = ((c << 2) + c) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = c >>> 13;\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n }\n\n finish(mac: Uint8Array, macpos: number) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += c * 5;\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= 1 << 13;\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = (this.h[0] | (this.h[1] << 13)) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10)) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7)) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4)) & 0xffff;\n this.h[4] =\n ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11)) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8)) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5)) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos + 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos + 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos + 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos + 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos + 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos + 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos + 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos + 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos + 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos + 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos + 10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos + 11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos + 12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos + 13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos + 14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos + 15] = (this.h[7] >>> 8) & 0xff;\n }\n\n update(m: Uint8Array, mpos: number, bytes: number) {\n let i: number;\n let want: number;\n if (this.leftover) {\n want = 16 - this.leftover;\n if (want > bytes) want = bytes;\n for (i = 0; i < want; i++) this.buffer[this.leftover + i] = m[mpos + i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16) return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++) this.buffer[this.leftover + i] = m[mpos + i];\n this.leftover += bytes;\n }\n }\n}\n\nfunction crypto_onetimeauth(\n out: Uint8Array,\n outpos: number,\n m: any,\n mpos: number,\n n: number,\n k: Uint8Array,\n) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(\n h: Uint8Array,\n hpos: number,\n m: any,\n mpos: number,\n n: number,\n k: Uint8Array,\n) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x, 0, m, mpos, n, k);\n return crypto_verify_16(h, hpos, x, 0);\n}\n\nfunction crypto_secretbox(\n c: Uint8Array,\n m: Uint8Array,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n): number {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c, 0, m, 0, d, n, k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(\n m: Uint8Array,\n c: Uint8Array,\n d: number,\n n: Uint8Array,\n k: Uint8Array,\n): number {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x, 0, 32, n, k);\n if (crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0) return -1;\n crypto_stream_xor(m, 0, c, 0, d, n, k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r: Float64Array, a: Float64Array): void {\n let i;\n for (i = 0; i < 16; i++) r[i] = a[i] | 0;\n}\n\nfunction car25519(o: Float64Array): void {\n let i,\n v,\n c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\n\nfunction sel25519(p: Float64Array, q: Float64Array, b: number): void {\n let t;\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o: Uint8Array, n: Float64Array): void {\n let i, j, b;\n const m = gf(),\n t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction neq25519(a: Float64Array, b: Float64Array): number {\n const c = new Uint8Array(32),\n d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a: Float64Array): number {\n const d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o: Float64Array, n: Uint8Array): void {\n let i;\n for (i = 0; i < 16; i++) o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o: Float64Array, a: Float64Array, b: Float64Array): void {\n for (let i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o: Float64Array, a: Float64Array, b: Float64Array): void {\n for (let i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o: Float64Array, a: Float64Array, b: Float64Array): void {\n let v,\n c,\n t0 = 0,\n t1 = 0,\n t2 = 0,\n t3 = 0,\n t4 = 0,\n t5 = 0,\n t6 = 0,\n t7 = 0,\n t8 = 0,\n t9 = 0,\n t10 = 0,\n t11 = 0,\n t12 = 0,\n t13 = 0,\n t14 = 0,\n t15 = 0,\n t16 = 0,\n t17 = 0,\n t18 = 0,\n t19 = 0,\n t20 = 0,\n t21 = 0,\n t22 = 0,\n t23 = 0,\n t24 = 0,\n t25 = 0,\n t26 = 0,\n t27 = 0,\n t28 = 0,\n t29 = 0,\n t30 = 0;\n const b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o: Float64Array, a: Float64Array): void {\n M(o, a, a);\n}\n\nfunction inv25519(o: Float64Array, i: Float64Array): void {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if (a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o: Float64Array, i: Float64Array): void {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if (a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(\n q: Uint8Array,\n n: Uint8Array,\n p: Uint8Array,\n): number {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n let r;\n let i;\n const a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (i = 0; i < 16; i++) {\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n a[0] = d[0] = 1;\n for (i = 254; i >= 0; --i) {\n r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q: Uint8Array, n: Uint8Array): number {\n return crypto_scalarmult(q, n, _9);\n}\n\nexport function crypto_scalarmult_noclamp(\n q: Uint8Array,\n n: Uint8Array,\n p: Uint8Array,\n): number {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n let r;\n let i;\n const a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n unpack25519(x, p);\n for (i = 0; i < 16; i++) {\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n a[0] = d[0] = 1;\n for (i = 254; i >= 0; --i) {\n r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n}\n\nexport function crypto_scalarmult_base_noclamp(\n q: Uint8Array,\n n: Uint8Array,\n): number {\n return crypto_scalarmult_noclamp(q, n, _9);\n}\n\n// prettier-ignore\nconst K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(\n hh: Int32Array,\n hl: Int32Array,\n m: Uint8Array,\n n: number,\n): number {\n const wh = new Int32Array(16),\n wl = new Int32Array(16);\n let bh0,\n bh1,\n bh2,\n bh3,\n bh4,\n bh5,\n bh6,\n bh7,\n bl0,\n bl1,\n bl2,\n bl3,\n bl4,\n bl5,\n bl6,\n bl7,\n th,\n tl,\n i,\n j,\n h,\n l,\n a,\n b,\n c,\n d;\n\n let ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n let pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j + 0] << 24) | (m[j + 1] << 16) | (m[j + 2] << 8) | m[j + 3];\n wl[i] = (m[j + 4] << 24) | (m[j + 5] << 16) | (m[j + 6] << 8) | m[j + 7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n // Sigma1\n h =\n ((ah4 >>> 14) | (al4 << (32 - 14))) ^\n ((ah4 >>> 18) | (al4 << (32 - 18))) ^\n ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l =\n ((al4 >>> 14) | (ah4 << (32 - 14))) ^\n ((al4 >>> 18) | (ah4 << (32 - 18))) ^\n ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = (c & 0xffff) | (d << 16);\n tl = (a & 0xffff) | (b << 16);\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n // Sigma0\n h =\n ((ah0 >>> 28) | (al0 << (32 - 28))) ^\n ((al0 >>> (34 - 32)) | (ah0 << (32 - (34 - 32)))) ^\n ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l =\n ((al0 >>> 28) | (ah0 << (32 - 28))) ^\n ((ah0 >>> (34 - 32)) | (al0 << (32 - (34 - 32)))) ^\n ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i % 16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h =\n ((th >>> 1) | (tl << (32 - 1))) ^\n ((th >>> 8) | (tl << (32 - 8))) ^\n (th >>> 7);\n l =\n ((tl >>> 1) | (th << (32 - 1))) ^\n ((tl >>> 8) | (th << (32 - 8))) ^\n ((tl >>> 7) | (th << (32 - 7)));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h =\n ((th >>> 19) | (tl << (32 - 19))) ^\n ((tl >>> (61 - 32)) | (th << (32 - (61 - 32)))) ^\n (th >>> 6);\n l =\n ((tl >>> 19) | (th << (32 - 19))) ^\n ((th >>> (61 - 32)) | (tl << (32 - (61 - 32)))) ^\n ((tl >>> 6) | (th << (32 - 6)));\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out: Uint8Array, m: Uint8Array, n: number): number {\n const hh = new Int32Array(8);\n const hl = new Int32Array(8);\n const x = new Uint8Array(256);\n const b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (let i = 0; i < n; i++) x[i] = m[b - n + i];\n x[n] = 128;\n\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (let i = 0; i < 8; i++) ts64(out, 8 * i, hh[i], hl[i]);\n\n return 0;\n}\n\n/**\n * Incremental version of crypto_hash.\n */\nexport class HashState {\n private hh = new Int32Array(8);\n private hl = new Int32Array(8);\n\n private next = new Uint8Array(128);\n private p = 0;\n private total = 0;\n\n constructor() {\n this.hh[0] = 0x6a09e667;\n this.hh[1] = 0xbb67ae85;\n this.hh[2] = 0x3c6ef372;\n this.hh[3] = 0xa54ff53a;\n this.hh[4] = 0x510e527f;\n this.hh[5] = 0x9b05688c;\n this.hh[6] = 0x1f83d9ab;\n this.hh[7] = 0x5be0cd19;\n\n this.hl[0] = 0xf3bcc908;\n this.hl[1] = 0x84caa73b;\n this.hl[2] = 0xfe94f82b;\n this.hl[3] = 0x5f1d36f1;\n this.hl[4] = 0xade682d1;\n this.hl[5] = 0x2b3e6c1f;\n this.hl[6] = 0xfb41bd6b;\n this.hl[7] = 0x137e2179;\n }\n\n update(data: Uint8Array): HashState {\n this.total += data.length;\n let i = 0;\n while (i < data.length) {\n const r = 128 - this.p;\n if (r > data.length - i) {\n for (let j = 0; i + j < data.length; j++) {\n this.next[this.p + j] = data[i + j];\n }\n this.p += data.length - i;\n break;\n } else {\n for (let j = 0; this.p + j < 128; j++) {\n this.next[this.p + j] = data[i + j];\n }\n crypto_hashblocks_hl(this.hh, this.hl, this.next, 128);\n i += 128 - this.p;\n this.p = 0;\n }\n }\n return this;\n }\n\n finish(): Uint8Array {\n const out = new Uint8Array(64);\n let n = this.p;\n const x = new Uint8Array(256);\n const b = this.total;\n for (let i = 0; i < n; i++) x[i] = this.next[i];\n x[n] = 128;\n\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(this.hh, this.hl, x, n);\n\n for (let i = 0; i < 8; i++) ts64(out, 8 * i, this.hh[i], this.hl[i]);\n return out;\n }\n}\n\nfunction add(p: Float64Array[], q: Float64Array[]): void {\n const a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf(),\n g = gf(),\n h = gf(),\n t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p: Float64Array[], q: Float64Array[], b: number): void {\n let i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r: Uint8Array, p: Float64Array[]): void {\n const tx = gf(),\n ty = gf(),\n zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\n/**\n * Ed25519 scalar multiplication\n */\nfunction scalarmult(p: Float64Array[], q: Float64Array[], s: Uint8Array): void {\n let b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p: Float64Array[], s: Uint8Array): void {\n const q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(\n pk: Uint8Array,\n sk: Uint8Array,\n seeded: boolean,\n): number {\n const d = new Uint8Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (let i = 0; i < 32; i++) sk[i + 32] = pk[i];\n return 0;\n}\n\nexport const L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde,\n 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10,\n]);\n\nfunction modL(r: Uint8Array, x: Float64Array): void {\n let carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r: Uint8Array): void {\n const x = new Float64Array(64);\n for (let i = 0; i < 64; i++) x[i] = r[i];\n for (let i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(\n sm: Uint8Array,\n m: Uint8Array,\n n: number,\n sk: Uint8Array,\n): number {\n const d = new Uint8Array(64),\n h = new Uint8Array(64),\n r = new Uint8Array(64);\n let i, j;\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n const smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackpos(r: Float64Array[], p: Uint8Array): number {\n // FIXME: implement directly\n const q = [gf(), gf(), gf(), gf()];\n if (unpackneg(q, p)) return -1;\n const scalar0 = new Uint8Array(32);\n const scalar1 = new Uint8Array(32);\n scalar1[0] = 1;\n const scalarNeg1 = crypto_core_ed25519_scalar_sub(scalar0, scalar1);\n scalarmult(r, q, scalarNeg1);\n return 0;\n}\n\nfunction unpackneg(r: Float64Array[], p: Uint8Array): number {\n const t = gf();\n const chk = gf();\n const num = gf();\n const den = gf();\n const den2 = gf();\n const den4 = gf();\n const den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === p[31] >> 7) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nexport function crypto_scalarmult_ed25519_base_noclamp(\n s: Uint8Array,\n): Uint8Array {\n const r = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n\n scalarbase(p, s);\n pack(r, p);\n return r;\n}\n\nexport function crypto_scalarmult_ed25519_noclamp(\n s: Uint8Array,\n q: Uint8Array,\n): Uint8Array {\n const r = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n const ql = [gf(), gf(), gf(), gf()];\n\n if (unpackpos(ql, q)) throw new Error();\n scalarmult(p, ql, s);\n pack(r, p);\n return r;\n}\n\nexport function crypto_core_ed25519_add(\n p1: Uint8Array,\n p2: Uint8Array,\n): Uint8Array {\n const q1 = [gf(), gf(), gf(), gf()];\n const q2 = [gf(), gf(), gf(), gf()];\n const res = new Uint8Array(32);\n if (unpackpos(q1, p1)) throw new Error();\n if (unpackpos(q2, p2)) throw new Error();\n add(q1, q2);\n pack(res, q1);\n return res;\n}\n\nfunction crypto_sign_open(\n m: Uint8Array,\n sm: Uint8Array,\n n: number,\n pk: Uint8Array,\n): number {\n let i, mlen;\n const t = new Uint8Array(32),\n h = new Uint8Array(64);\n const p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i + 32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n mlen = n;\n return mlen;\n}\n\nconst crypto_secretbox_KEYBYTES = 32;\nconst crypto_secretbox_NONCEBYTES = 24;\nconst crypto_secretbox_ZEROBYTES = 32;\nconst crypto_secretbox_BOXZEROBYTES = 16;\nconst crypto_scalarmult_BYTES = 32;\nconst crypto_scalarmult_SCALARBYTES = 32;\nconst crypto_sign_BYTES = 64;\nconst crypto_sign_PUBLICKEYBYTES = 32;\nconst crypto_sign_SECRETKEYBYTES = 64;\nconst crypto_sign_SEEDBYTES = 32;\nconst crypto_hash_BYTES = 64;\n\n/* High-level API */\n\nfunction checkLengths(k: Uint8Array, n: Uint8Array) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error(\"bad key size\");\n if (n.length !== crypto_secretbox_NONCEBYTES)\n throw new Error(\"bad nonce size\");\n}\n\nfunction checkArrayTypes(...args: Uint8Array[]): void {\n for (let i = 0; i < args.length; i++) {\n if (!(args[i] instanceof Uint8Array))\n throw new TypeError(\"unexpected type, use Uint8Array\");\n }\n}\n\nexport function randomBytes(n: number): Uint8Array {\n const b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n}\n\nexport function scalarMult(n: Uint8Array, p: Uint8Array): Uint8Array {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error(\"bad n size\");\n if (p.length !== crypto_scalarmult_BYTES) throw new Error(\"bad p size\");\n const q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n}\n\nexport function scalarMult_base(n: Uint8Array): Uint8Array {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error(\"bad n size\");\n const q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n}\n\nexport const scalarMult_scalarLength = crypto_scalarmult_SCALARBYTES;\nexport const scalarMult_groupElementLength = crypto_scalarmult_BYTES;\n\nexport function sign(msg: Uint8Array, secretKey: Uint8Array): Uint8Array {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error(\"bad secret key size\");\n const signedMsg = new Uint8Array(crypto_sign_BYTES + msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n}\n\nexport function sign_open(\n signedMsg: Uint8Array,\n publicKey: Uint8Array,\n): Uint8Array | null {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error(\"bad public key size\");\n const tmp = new Uint8Array(signedMsg.length);\n const mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n const m = new Uint8Array(mlen);\n for (let i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n}\n\nexport function sign_detached(\n msg: Uint8Array,\n secretKey: Uint8Array,\n): Uint8Array {\n const signedMsg = sign(msg, secretKey);\n const sig = new Uint8Array(crypto_sign_BYTES);\n for (let i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n}\n\nexport function sign_detached_verify(\n msg: Uint8Array,\n sig: Uint8Array,\n publicKey: Uint8Array,\n): boolean {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES) throw new Error(\"bad signature size\");\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error(\"bad public key size\");\n const sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n const m = new Uint8Array(crypto_sign_BYTES + msg.length);\n let i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i + crypto_sign_BYTES] = msg[i];\n return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;\n}\n\nexport function sign_keyPair(): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n const pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n const sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk, false);\n return { publicKey: pk, secretKey: sk };\n}\n\nexport function x25519_edwards_keyPair_fromSecretKey(\n secretKey: Uint8Array,\n): Uint8Array {\n const p = [gf(), gf(), gf(), gf()];\n const pk = new Uint8Array(32);\n\n const d = new Uint8Array(64);\n if (secretKey.length != 32) {\n throw new Error(\"bad secret key size\");\n }\n d.set(secretKey, 0);\n\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n return pk;\n}\n\nexport function crypto_sign_keyPair_fromSecretKey(secretKey: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error(\"bad secret key size\");\n const pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (let i = 0; i < pk.length; i++) pk[i] = secretKey[32 + i];\n return { publicKey: pk, secretKey: new Uint8Array(secretKey) };\n}\n\nexport function crypto_sign_keyPair_fromSeed(seed: Uint8Array): {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n} {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error(`bad seed size: ${seed.length}`);\n const pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n const sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (let i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return { publicKey: pk, secretKey: sk };\n}\n\nexport const sign_publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nexport const sign_secretKeyLength = crypto_sign_SECRETKEYBYTES;\nexport const sign_seedLength = crypto_sign_SEEDBYTES;\nexport const sign_signatureLength = crypto_sign_BYTES;\n\nexport function hash(msg: Uint8Array): Uint8Array {\n checkArrayTypes(msg);\n const h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n}\n\nexport const hash_hashLength = crypto_hash_BYTES;\n\nexport function verify(x: Uint8Array, y: Uint8Array): boolean {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return vn(x, 0, y, 0, x.length) === 0 ? true : false;\n}\n\nexport function setPRNG(fn: (x: Uint8Array, n: number) => void): void {\n randombytes = fn;\n}\n\nexport function sign_ed25519_pk_to_curve25519(\n ed25519_pk: Uint8Array,\n): Uint8Array {\n const ge_a = [gf(), gf(), gf(), gf()];\n const x = gf();\n const one_minus_y = gf();\n const x25519_pk = new Uint8Array(32);\n\n if (unpackneg(ge_a, ed25519_pk)) {\n throw Error(\"invalid public key\");\n }\n\n set25519(one_minus_y, gf1);\n Z(one_minus_y, one_minus_y, ge_a[1]);\n\n set25519(x, gf1);\n A(x, x, ge_a[1]);\n\n inv25519(one_minus_y, one_minus_y);\n M(x, x, one_minus_y);\n pack25519(x25519_pk, x);\n\n return x25519_pk;\n}\n\nexport function secretbox(\n msg: Uint8Array,\n nonce: Uint8Array,\n key: Uint8Array,\n): Uint8Array {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++)\n m[i + crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n}\n\nexport function secretbox_open(\n box: Uint8Array,\n nonce: Uint8Array,\n key: Uint8Array,\n): Uint8Array | undefined {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++)\n c[i + crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return undefined;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return undefined;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n}\n\nexport function crypto_core_ed25519_scalar_add(\n x: Uint8Array,\n y: Uint8Array,\n): Uint8Array {\n const z = new Float64Array(64);\n for (let i = 0; i < 32; i++) {\n z[i] = x[i] + y[i];\n }\n const o = new Uint8Array(32);\n modL(o, z);\n return o;\n}\n\n/**\n * Reduce a scalar \"s\" to \"s mod L\". The input can be up to 64 bytes long.\n */\nexport function crypto_core_ed25519_scalar_reduce(x: Uint8Array): Uint8Array {\n const len = x.length;\n const z = new Float64Array(64);\n for (let i = 0; i < len; i++) z[i] = x[i];\n const o = new Uint8Array(32);\n modL(o, z);\n return o;\n}\n\nexport function crypto_core_ed25519_scalar_sub(\n x: Uint8Array,\n y: Uint8Array,\n): Uint8Array {\n const z = new Float64Array(64);\n for (let i = 0; i < 32; i++) {\n z[i] = x[i] - y[i];\n }\n const o = new Uint8Array(32);\n modL(o, z);\n return o;\n}\n\nexport function crypto_edx25519_private_key_create(): Uint8Array {\n const seed = new Uint8Array(32);\n randombytes(seed, 32);\n return crypto_edx25519_private_key_create_from_seed(seed);\n}\n\nexport function crypto_edx25519_private_key_create_from_seed(\n seed: Uint8Array,\n): Uint8Array {\n const pk = hash(seed);\n pk[0] &= 248;\n pk[31] &= 127;\n pk[31] |= 64;\n return pk;\n}\n\nexport function crypto_edx25519_get_public(priv: Uint8Array): Uint8Array {\n return crypto_scalarmult_ed25519_base_noclamp(priv.subarray(0, 32));\n}\n\nexport function crypto_edx25519_sign_detached(\n m: Uint8Array,\n skx: Uint8Array,\n pkx: Uint8Array,\n): Uint8Array {\n const n: number = m.length;\n const h = new Uint8Array(64);\n const r = new Uint8Array(64);\n let i, j;\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n const sm = new Uint8Array(n + 64);\n\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = skx[32 + i];\n\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = pkx[i - 32];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * skx[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return sm.subarray(0, 64);\n}\n\nexport function crypto_edx25519_sign_detached_verify(\n msg: Uint8Array,\n sig: Uint8Array,\n publicKey: Uint8Array,\n): boolean {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES) throw new Error(\"bad signature size\");\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error(\"bad public key size\");\n const sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n const m = new Uint8Array(crypto_sign_BYTES + msg.length);\n let i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i + crypto_sign_BYTES] = msg[i];\n return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;\n}\n", "import { setPRNG } from \"./nacl-fast.js\";\n\nexport function loadBrowserPrng() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n // @ts-ignore-error\n const cr = typeof self !== \"undefined\" ? self.crypto || self.msCrypto : null;\n\n const QUOTA = 65536;\n setPRNG(function (x: Uint8Array, n: number) {\n let i;\n const v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n cr.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n for (i = 0; i < v.length; i++) v[i] = 0;\n });\n}\n", "/*\n This file is part of GNU Taler\n Copyright (C) 2012-2020 Taler Systems SA\n\n GNU Taler is free software: you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as published\n by the Free Software Foundation, either version 3 of the License,\n or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but\n WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with this program. If not, see <http://www.gnu.org/licenses/>.\n\n SPDX-License-Identifier: LGPL3.0-or-later\n\n Note: the LGPL does not apply to all components of GNU Taler,\n but it does apply to this file.\n */\n\nexport enum TalerErrorCode {\n\n\n /**\n * Special code to indicate success (no error).\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n NONE = 0,\n\n\n /**\n * A non-integer error code was returned in the JSON response.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n INVALID = 1,\n\n\n /**\n * An internal failure happened on the client side.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CLIENT_INTERNAL_ERROR = 2,\n\n\n /**\n * The response we got from the server was not even in JSON format.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_INVALID_RESPONSE = 10,\n\n\n /**\n * An operation timed out.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TIMEOUT = 11,\n\n\n /**\n * The version string given does not follow the expected CURRENT:REVISION:AGE Format.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_VERSION_MALFORMED = 12,\n\n\n /**\n * The service responded with a reply that was in JSON but did not satsify the protocol. Note that invalid cryptographic signatures should have signature-specific error codes.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_REPLY_MALFORMED = 13,\n\n\n /**\n * There is an error in the client-side configuration, for example the base URL specified is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CONFIGURATION_INVALID = 14,\n\n\n /**\n * The client made a request to a service, but received an error response it does not know how to handle.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_UNEXPECTED_REQUEST_ERROR = 15,\n\n\n /**\n * The token used by the client to authorize the request does not grant the required permissions for the request.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_PERMISSION_INSUFFICIENT = 16,\n\n\n /**\n * The HTTP method used is invalid for this endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_METHOD_NOT_ALLOWED (405).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_METHOD_INVALID = 20,\n\n\n /**\n * There is no endpoint defined for the URL provided by the client.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_ENDPOINT_UNKNOWN = 21,\n\n\n /**\n * The JSON in the client's request was malformed (generic parse error).\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_JSON_INVALID = 22,\n\n\n /**\n * Some of the HTTP headers provided by the client caused the server to not be able to handle the request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_HTTP_HEADERS_MALFORMED = 23,\n\n\n /**\n * The payto:// URI provided by the client is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PAYTO_URI_MALFORMED = 24,\n\n\n /**\n * A required parameter in the request was missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PARAMETER_MISSING = 25,\n\n\n /**\n * A parameter in the request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PARAMETER_MALFORMED = 26,\n\n\n /**\n * The reserve public key given as part of a /reserves/ endpoint was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_RESERVE_PUB_MALFORMED = 27,\n\n\n /**\n * The body in the request could not be decompressed by the server.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_COMPRESSION_INVALID = 28,\n\n\n /**\n * The currency involved in the operation is not acceptable for this backend.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CURRENCY_MISMATCH = 30,\n\n\n /**\n * The URI is longer than the longest URI the HTTP server is willing to parse.\n * Returned with an HTTP status code of #MHD_HTTP_URI_TOO_LONG (414).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_URI_TOO_LONG = 31,\n\n\n /**\n * The body is too large to be permissible for the endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_UPLOAD_EXCEEDS_LIMIT = 32,\n\n\n /**\n * The service refused the request due to lack of proper authorization.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_UNAUTHORIZED = 40,\n\n\n /**\n * The service refused the request as the given authorization token is unknown.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_UNKNOWN = 41,\n\n\n /**\n * The service refused the request as the given authorization token expired.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_EXPIRED = 42,\n\n\n /**\n * The service refused the request as the given authorization token is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_TOKEN_MALFORMED = 43,\n\n\n /**\n * The service refused the request due to lack of proper rights on the resource.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FORBIDDEN = 44,\n\n\n /**\n * The service failed initialize its connection to the database.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_SETUP_FAILED = 50,\n\n\n /**\n * The service encountered an error event to just start the database transaction.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_START_FAILED = 51,\n\n\n /**\n * The service failed to store information in its database.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_STORE_FAILED = 52,\n\n\n /**\n * The service failed to fetch information from its database.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_FETCH_FAILED = 53,\n\n\n /**\n * The service encountered an error event to commit the database transaction (hard, unrecoverable error).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_COMMIT_FAILED = 54,\n\n\n /**\n * The service encountered an error event to commit the database transaction, even after repeatedly retrying it there was always a conflicting transaction. (This indicates a repeated serialization error; should only happen if some client maliciously tries to create conflicting concurrent transactions.)\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_SOFT_FAILURE = 55,\n\n\n /**\n * The service's database is inconsistent and violates service-internal invariants.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_DB_INVARIANT_FAILURE = 56,\n\n\n /**\n * The HTTP server experienced an internal invariant failure (bug).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_INTERNAL_INVARIANT_FAILURE = 60,\n\n\n /**\n * The service could not compute a cryptographic hash over some JSON value.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_COMPUTE_JSON_HASH = 61,\n\n\n /**\n * The service could not compute an amount.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_COMPUTE_AMOUNT = 62,\n\n\n /**\n * The HTTP server had insufficient memory to parse the request.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_PARSER_OUT_OF_MEMORY = 70,\n\n\n /**\n * The HTTP server failed to allocate memory.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_ALLOCATION_FAILURE = 71,\n\n\n /**\n * The HTTP server failed to allocate memory for building JSON reply.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_JSON_ALLOCATION_FAILURE = 72,\n\n\n /**\n * The HTTP server failed to allocate memory for making a CURL request.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_CURL_ALLOCATION_FAILURE = 73,\n\n\n /**\n * The backend could not locate a required template to generate an HTML reply.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_TO_LOAD_TEMPLATE = 74,\n\n\n /**\n * The backend could not expand the template to generate an HTML reply.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n GENERIC_FAILED_TO_EXPAND_TEMPLATE = 75,\n\n\n /**\n * Exchange is badly configured and thus cannot operate.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_BAD_CONFIGURATION = 1000,\n\n\n /**\n * Operation specified unknown for this endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_OPERATION_UNKNOWN = 1001,\n\n\n /**\n * The number of segments included in the URI does not match the number of segments expected by the endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_WRONG_NUMBER_OF_SEGMENTS = 1002,\n\n\n /**\n * The same coin was already used with a different denomination previously.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY = 1003,\n\n\n /**\n * The public key of given to a \"/coins/\" endpoint of the exchange was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COINS_INVALID_COIN_PUB = 1004,\n\n\n /**\n * The exchange is not aware of the denomination key the wallet requested for the operation.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN = 1005,\n\n\n /**\n * The signature of the denomination key over the coin is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_SIGNATURE_INVALID = 1006,\n\n\n /**\n * The exchange failed to perform the operation as it could not find the private keys. This is a problem with the exchange setup, not with the client's request.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_KEYS_MISSING = 1007,\n\n\n /**\n * Validity period of the denomination lies in the future.\n * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE = 1008,\n\n\n /**\n * Denomination key of the coin is past its expiration time for the requested operation.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_EXPIRED = 1009,\n\n\n /**\n * Denomination key of the coin has been revoked.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_DENOMINATION_REVOKED = 1010,\n\n\n /**\n * An operation where the exchange interacted with a security module timed out.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_SECMOD_TIMEOUT = 1011,\n\n\n /**\n * The respective coin did not have sufficient residual value for the operation. The \"history\" in this response provides the \"residual_value\" of the coin, which may be less than its \"original_value\".\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_INSUFFICIENT_FUNDS = 1012,\n\n\n /**\n * The exchange had an internal error reconstructing the transaction history of the coin that was being processed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_HISTORY_COMPUTATION_FAILED = 1013,\n\n\n /**\n * The exchange failed to obtain the transaction history of the given coin from the database while generating an insufficient funds errors.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1014,\n\n\n /**\n * The same coin was already used with a different age hash previously.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH = 1015,\n\n\n /**\n * The requested operation is not valid for the cipher used by the selected denomination.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION = 1016,\n\n\n /**\n * The provided arguments for the operation use inconsistent ciphers.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_CIPHER_MISMATCH = 1017,\n\n\n /**\n * The number of denominations specified in the request exceeds the limit of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE = 1018,\n\n\n /**\n * The coin is not known to the exchange (yet).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_COIN_UNKNOWN = 1019,\n\n\n /**\n * The time at the server is too far off from the time specified in the request. Most likely the client system time is wrong.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_CLOCK_SKEW = 1020,\n\n\n /**\n * The specified amount for the coin is higher than the value of the denomination of the coin.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE = 1021,\n\n\n /**\n * The exchange was not properly configured with global fees.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_GLOBAL_FEES_MISSING = 1022,\n\n\n /**\n * The exchange was not properly configured with wire fees.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_WIRE_FEES_MISSING = 1023,\n\n\n /**\n * The purse public key was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_PUB_MALFORMED = 1024,\n\n\n /**\n * The purse is unknown.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_UNKNOWN = 1025,\n\n\n /**\n * The purse has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_EXPIRED = 1026,\n\n\n /**\n * The exchange has no information about the \"reserve_pub\" that was given.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_RESERVE_UNKNOWN = 1027,\n\n\n /**\n * The exchange is not allowed to proceed with the operation until the client has satisfied a KYC check.\n * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_KYC_REQUIRED = 1028,\n\n\n /**\n * Inconsistency between provided age commitment and attest: either none or both must be provided\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_COIN_CONFLICTING_ATTEST_VS_AGE_COMMITMENT = 1029,\n\n\n /**\n * The provided attestation for the minimum age couldn't be verified by the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_COIN_AGE_ATTESTATION_FAILURE = 1030,\n\n\n /**\n * The purse was deleted.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_PURSE_DELETED = 1031,\n\n\n /**\n * The public key of the AML officer in the URL was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_OFFICER_PUB_MALFORMED = 1032,\n\n\n /**\n * The signature affirming the GET request of the AML officer is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID = 1033,\n\n\n /**\n * The specified AML officer does not have access at this time.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED = 1034,\n\n\n /**\n * The requested operation is denied pending the resolution of an anti-money laundering investigation by the exchange operator. This is a manual process, please wait and retry later.\n * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_PENDING = 1035,\n\n\n /**\n * The requested operation is denied as the account was frozen on suspicion of money laundering. Please contact the exchange operator.\n * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_AML_FROZEN = 1036,\n\n\n /**\n * The exchange failed to start a KYC attribute conversion helper process. It is likely configured incorrectly.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GENERIC_KYC_CONVERTER_FAILED = 1037,\n\n\n /**\n * The exchange did not find information about the specified transaction in the database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_NOT_FOUND = 1100,\n\n\n /**\n * The wire hash of given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE = 1101,\n\n\n /**\n * The merchant key of given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB = 1102,\n\n\n /**\n * The hash of the contract terms given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_H_CONTRACT_TERMS = 1103,\n\n\n /**\n * The coin public key of given to a \"/deposits/\" handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_COIN_PUB = 1104,\n\n\n /**\n * The signature returned by the exchange in a /deposits/ request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_INVALID_SIGNATURE_BY_EXCHANGE = 1105,\n\n\n /**\n * The signature of the merchant is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID = 1106,\n\n\n /**\n * The provided policy data was not accepted\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSITS_POLICY_NOT_ACCEPTED = 1107,\n\n\n /**\n * The given reserve does not have sufficient funds to admit the requested withdraw operation at this time. The response includes the current \"balance\" of the reserve as well as the transaction \"history\" that lead to this balance.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS = 1150,\n\n\n /**\n * The given reserve does not have sufficient funds to admit the requested age-withdraw operation at this time. The response includes the current \"balance\" of the reserve as well as the transaction \"history\" that lead to this balance.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_INSUFFICIENT_FUNDS = 1151,\n\n\n /**\n * The amount to withdraw together with the fee exceeds the numeric range for Taler amounts. This is not a client failure, as the coin value and fees come from the exchange's configuration.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW = 1152,\n\n\n /**\n * The exchange failed to create the signature using the denomination key.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_SIGNATURE_FAILED = 1153,\n\n\n /**\n * The signature of the reserve is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_RESERVE_SIGNATURE_INVALID = 1154,\n\n\n /**\n * When computing the reserve history, we ended up with a negative overall balance, which should be impossible.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS = 1155,\n\n\n /**\n * The reserve did not have sufficient funds in it to pay for a full reserve history statement.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_GET_RESERVE_HISTORY_ERROR_INSUFFICIENT_BALANCE = 1156,\n\n\n /**\n * Withdraw period of the coin to be withdrawn is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST = 1158,\n\n\n /**\n * The client failed to unblind the blind signature.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_UNBLIND_FAILURE = 1159,\n\n\n /**\n * The client re-used a withdraw nonce, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_NONCE_REUSE = 1160,\n\n\n /**\n * The client provided an unknown commitment for an age-withdraw request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_COMMITMENT_UNKNOWN = 1161,\n\n\n /**\n * The total sum of amounts from the denominations did overflow.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_AMOUNT_OVERFLOW = 1162,\n\n\n /**\n * The total sum of value and fees from the denominations differs from the committed amount with fees.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_AMOUNT_INCORRECT = 1163,\n\n\n /**\n * The original commitment differs from the calculated hash\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_REVEAL_INVALID_HASH = 1164,\n\n\n /**\n * The maximum age in the commitment is too large for the reserve\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AGE_WITHDRAW_MAXIMUM_AGE_TOO_LARGE = 1165,\n\n\n /**\n * The batch withdraw included a planchet that was already withdrawn. This is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET = 1175,\n\n\n /**\n * The signature made by the coin over the deposit permission is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_COIN_SIGNATURE_INVALID = 1205,\n\n\n /**\n * The same coin was already deposited for the same merchant and contract with other details.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_CONFLICTING_CONTRACT = 1206,\n\n\n /**\n * The stated value of the coin after the deposit fee is subtracted would be negative.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE = 1207,\n\n\n /**\n * The stated refund deadline is after the wire deadline.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE = 1208,\n\n\n /**\n * The stated wire deadline is \"never\", which makes no sense.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_WIRE_DEADLINE_IS_NEVER = 1209,\n\n\n /**\n * The exchange failed to canonicalize and hash the given wire format. For example, the merchant failed to provide the \"salt\" or a valid payto:// URI in the wire details. Note that while the exchange will do some basic sanity checking on the wire details, it cannot warrant that the banking system will ultimately be able to route to the specified address, even if this check passed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_JSON = 1210,\n\n\n /**\n * The hash of the given wire address does not match the wire hash specified in the proposal data.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_CONTRACT_HASH_CONFLICT = 1211,\n\n\n /**\n * The signature provided by the exchange is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE = 1221,\n\n\n /**\n * The deposited amount is smaller than the deposit fee, which would result in a negative contribution.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DEPOSIT_FEE_ABOVE_AMOUNT = 1222,\n\n\n /**\n * The proof of policy fulfillment was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_EXTENSIONS_INVALID_FULFILLMENT = 1240,\n\n\n /**\n * The coin history was requested with a bad signature.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_COIN_HISTORY_BAD_SIGNATURE = 1251,\n\n\n /**\n * The reserve history was requested with a bad signature.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVE_HISTORY_BAD_SIGNATURE = 1252,\n\n\n /**\n * The exchange encountered melt fees exceeding the melted coin's contribution.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_FEES_EXCEED_CONTRIBUTION = 1302,\n\n\n /**\n * The signature made with the coin to be melted is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_COIN_SIGNATURE_INVALID = 1303,\n\n\n /**\n * The denomination of the given coin has past its expiration date and it is also not a valid zombie (that is, was not refreshed with the fresh coin being subjected to recoup).\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_COIN_EXPIRED_NO_ZOMBIE = 1305,\n\n\n /**\n * The signature returned by the exchange in a melt request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MELT_INVALID_SIGNATURE_BY_EXCHANGE = 1306,\n\n\n /**\n * The provided transfer keys do not match up with the original commitment. Information about the original commitment is included in the response.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_COMMITMENT_VIOLATION = 1353,\n\n\n /**\n * Failed to produce the blinded signatures over the coins to be returned.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_SIGNING_ERROR = 1354,\n\n\n /**\n * The exchange is unaware of the refresh session specified in the request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_SESSION_UNKNOWN = 1355,\n\n\n /**\n * The size of the cut-and-choose dimension of the private transfer keys request does not match #TALER_CNC_KAPPA - 1.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID = 1356,\n\n\n /**\n * The number of envelopes given does not match the number of denomination keys given.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH = 1358,\n\n\n /**\n * The exchange encountered a numeric overflow totaling up the cost for the refresh operation.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_COST_CALCULATION_OVERFLOW = 1359,\n\n\n /**\n * The exchange's cost calculation shows that the melt amount is below the costs of the transaction.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_AMOUNT_INSUFFICIENT = 1360,\n\n\n /**\n * The signature made with the coin over the link data is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_LINK_SIGNATURE_INVALID = 1361,\n\n\n /**\n * The refresh session hash given to a /refreshes/ handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_INVALID_RCH = 1362,\n\n\n /**\n * Operation specified invalid for this endpoint.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_OPERATION_INVALID = 1363,\n\n\n /**\n * The client provided age commitment data, but age restriction is not supported on this server.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_NOT_SUPPORTED = 1364,\n\n\n /**\n * The client provided invalid age commitment data: missing, not an array, or array of invalid size.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_COMMITMENT_INVALID = 1365,\n\n\n /**\n * The coin specified in the link request is unknown to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_LINK_COIN_UNKNOWN = 1400,\n\n\n /**\n * The public key of given to a /transfers/ handler was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WTID_MALFORMED = 1450,\n\n\n /**\n * The exchange did not find information about the specified wire transfer identifier in the database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WTID_NOT_FOUND = 1451,\n\n\n /**\n * The exchange did not find information about the wire transfer fees it charged.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WIRE_FEE_NOT_FOUND = 1452,\n\n\n /**\n * The exchange found a wire fee that was above the total transfer value (and thus could not have been charged).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TRANSFERS_GET_WIRE_FEE_INCONSISTENT = 1453,\n\n\n /**\n * The wait target of the URL was not in the set of expected values.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSES_INVALID_WAIT_TARGET = 1475,\n\n\n /**\n * The signature on the purse status returned by the exchange was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSES_GET_INVALID_SIGNATURE_BY_EXCHANGE = 1476,\n\n\n /**\n * The exchange knows literally nothing about the coin we were asked to refund. But without a transaction history, we cannot issue a refund. This is kind-of OK, the owner should just refresh it directly without executing the refund.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_COIN_NOT_FOUND = 1500,\n\n\n /**\n * We could not process the refund request as the coin's transaction history does not permit the requested refund because then refunds would exceed the deposit amount. The \"history\" in the response proves this.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_CONFLICT_DEPOSIT_INSUFFICIENT = 1501,\n\n\n /**\n * The exchange knows about the coin we were asked to refund, but not about the specific /deposit operation. Hence, we cannot issue a refund (as we do not know if this merchant public key is authorized to do a refund).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_DEPOSIT_NOT_FOUND = 1502,\n\n\n /**\n * The exchange can no longer refund the customer/coin as the money was already transferred (paid out) to the merchant. (It should be past the refund deadline.)\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_MERCHANT_ALREADY_PAID = 1503,\n\n\n /**\n * The refund fee specified for the request is lower than the refund fee charged by the exchange for the given denomination key of the refunded coin.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_FEE_TOO_LOW = 1504,\n\n\n /**\n * The refunded amount is smaller than the refund fee, which would result in a negative refund.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_FEE_ABOVE_AMOUNT = 1505,\n\n\n /**\n * The signature of the merchant is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_MERCHANT_SIGNATURE_INVALID = 1506,\n\n\n /**\n * Merchant backend failed to create the refund confirmation signature.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_MERCHANT_SIGNING_FAILED = 1507,\n\n\n /**\n * The signature returned by the exchange in a refund request was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_INVALID_SIGNATURE_BY_EXCHANGE = 1508,\n\n\n /**\n * The failure proof returned by the exchange is incorrect.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_INVALID_FAILURE_PROOF_BY_EXCHANGE = 1509,\n\n\n /**\n * Conflicting refund granted before with different amount but same refund transaction ID.\n * Returned with an HTTP status code of #MHD_HTTP_FAILED_DEPENDENCY (424).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_REFUND_INCONSISTENT_AMOUNT = 1510,\n\n\n /**\n * The given coin signature is invalid for the request.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_SIGNATURE_INVALID = 1550,\n\n\n /**\n * The exchange could not find the corresponding withdraw operation. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_WITHDRAW_NOT_FOUND = 1551,\n\n\n /**\n * The coin's remaining balance is zero. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_COIN_BALANCE_ZERO = 1552,\n\n\n /**\n * The exchange failed to reproduce the coin's blinding.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_BLINDING_FAILED = 1553,\n\n\n /**\n * The coin's remaining balance is zero. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_COIN_BALANCE_NEGATIVE = 1554,\n\n\n /**\n * The coin's denomination has not been revoked yet.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_NOT_ELIGIBLE = 1555,\n\n\n /**\n * The given coin signature is invalid for the request.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_SIGNATURE_INVALID = 1575,\n\n\n /**\n * The exchange could not find the corresponding melt operation. The request is denied.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_MELT_NOT_FOUND = 1576,\n\n\n /**\n * The exchange failed to reproduce the coin's blinding.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED = 1578,\n\n\n /**\n * The coin's denomination has not been revoked yet.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RECOUP_REFRESH_NOT_ELIGIBLE = 1580,\n\n\n /**\n * This exchange does not allow clients to request /keys for times other than the current (exchange) time.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KEYS_TIMETRAVEL_FORBIDDEN = 1600,\n\n\n /**\n * A signature in the server's response was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_SIGNATURE_INVALID = 1650,\n\n\n /**\n * No bank accounts are enabled for the exchange. The administrator should enable-account using the taler-exchange-offline tool.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_NO_ACCOUNTS_CONFIGURED = 1651,\n\n\n /**\n * The payto:// URI stored in the exchange database for its bank account is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_INVALID_PAYTO_CONFIGURED = 1652,\n\n\n /**\n * No wire fees are configured for an enabled wire method of the exchange. The administrator must set the wire-fee using the taler-exchange-offline tool.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_WIRE_FEES_NOT_CONFIGURED = 1653,\n\n\n /**\n * This purse was previously created with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_CREATE_CONFLICTING_META_DATA = 1675,\n\n\n /**\n * This purse was previously merged with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_MERGE_CONFLICTING_META_DATA = 1676,\n\n\n /**\n * The reserve has insufficient funds to create another purse.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_CREATE_INSUFFICIENT_FUNDS = 1677,\n\n\n /**\n * The purse fee specified for the request is lower than the purse fee charged by the exchange at this time.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_FEE_TOO_LOW = 1678,\n\n\n /**\n * The payment request cannot be deleted anymore, as it either already completed or timed out.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DELETE_ALREADY_DECIDED = 1679,\n\n\n /**\n * The signature affirming the purse deletion is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DELETE_SIGNATURE_INVALID = 1680,\n\n\n /**\n * Withdrawal from the reserve requires age restriction to be set.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED = 1681,\n\n\n /**\n * The exchange failed to talk to the process responsible for its private denomination keys or the helpers had no denominations (properly) configured.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE = 1700,\n\n\n /**\n * The response from the denomination key helper process was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_HELPER_BUG = 1701,\n\n\n /**\n * The helper refuses to sign with the key, because it is too early: the validity period has not yet started.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_DENOMINATION_HELPER_TOO_EARLY = 1702,\n\n\n /**\n * The signature of the exchange on the reply was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_EXCHANGE_SIGNATURE_INVALID = 1725,\n\n\n /**\n * The exchange failed to talk to the process responsible for its private signing keys.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE = 1750,\n\n\n /**\n * The response from the online signing key helper process was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_SIGNKEY_HELPER_BUG = 1751,\n\n\n /**\n * The helper refuses to sign with the key, because it is too early: the validity period has not yet started.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_SIGNKEY_HELPER_TOO_EARLY = 1752,\n\n\n /**\n * The purse expiration time is in the past at the time of its creation.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_EXPIRATION_BEFORE_NOW = 1775,\n\n\n /**\n * The purse expiration time is set to never, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_EXPIRATION_IS_NEVER = 1776,\n\n\n /**\n * The signature affirming the merge of the purse is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_PURSE_MERGE_SIGNATURE_INVALID = 1777,\n\n\n /**\n * The signature by the reserve affirming the merge is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_RESERVE_MERGE_SIGNATURE_INVALID = 1778,\n\n\n /**\n * The signature by the reserve affirming the open operation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_OPEN_BAD_SIGNATURE = 1785,\n\n\n /**\n * The signature by the reserve affirming the close operation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_CLOSE_BAD_SIGNATURE = 1786,\n\n\n /**\n * The signature by the reserve affirming the attestion request is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_ATTEST_BAD_SIGNATURE = 1787,\n\n\n /**\n * The exchange does not know an origin account to which the remaining reserve balance could be wired to, and the wallet failed to provide one.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_CLOSE_NO_TARGET_ACCOUNT = 1788,\n\n\n /**\n * The reserve balance is insufficient to pay for the open operation.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_RESERVES_OPEN_INSUFFICIENT_FUNDS = 1789,\n\n\n /**\n * The auditor that was supposed to be disabled is unknown to this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND = 1800,\n\n\n /**\n * The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_MORE_RECENT_PRESENT = 1801,\n\n\n /**\n * The signature to add or enable the auditor does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_ADD_SIGNATURE_INVALID = 1802,\n\n\n /**\n * The signature to disable the auditor does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AUDITOR_DEL_SIGNATURE_INVALID = 1803,\n\n\n /**\n * The signature to revoke the denomination does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_DENOMINATION_REVOKE_SIGNATURE_INVALID = 1804,\n\n\n /**\n * The signature to revoke the online signing key does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_SIGNKEY_REVOKE_SIGNATURE_INVALID = 1805,\n\n\n /**\n * The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_MORE_RECENT_PRESENT = 1806,\n\n\n /**\n * The signingkey specified is unknown to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_UNKNOWN = 1807,\n\n\n /**\n * The signature to publish wire account does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_DETAILS_SIGNATURE_INVALID = 1808,\n\n\n /**\n * The signature to add the wire account does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_ADD_SIGNATURE_INVALID = 1809,\n\n\n /**\n * The signature to disable the wire account does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_DEL_SIGNATURE_INVALID = 1810,\n\n\n /**\n * The wire account to be disabled is unknown to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_NOT_FOUND = 1811,\n\n\n /**\n * The signature to affirm wire fees does not validate.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_FEE_SIGNATURE_INVALID = 1812,\n\n\n /**\n * The signature conflicts with a previous signature affirming different fees.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_WIRE_FEE_MISMATCH = 1813,\n\n\n /**\n * The signature affirming the denomination key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_KEYS_DENOMKEY_ADD_SIGNATURE_INVALID = 1814,\n\n\n /**\n * The signature affirming the signing key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_ADD_SIGNATURE_INVALID = 1815,\n\n\n /**\n * The signature conflicts with a previous signature affirming different fees.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_GLOBAL_FEE_MISMATCH = 1816,\n\n\n /**\n * The signature affirming the fee structure is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_GLOBAL_FEE_SIGNATURE_INVALID = 1817,\n\n\n /**\n * The signature affirming the profit drain is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_DRAIN_PROFITS_SIGNATURE_INVALID = 1818,\n\n\n /**\n * The signature affirming the AML decision is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_ADD_SIGNATURE_INVALID = 1825,\n\n\n /**\n * The AML officer specified is not allowed to make AML decisions right now.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_INVALID_OFFICER = 1826,\n\n\n /**\n * There is a more recent AML decision on file. The decision was rejected as timestamps of AML decisions must be monotonically increasing.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_MORE_RECENT_PRESENT = 1827,\n\n\n /**\n * There AML decision would impose an AML check of a type that is not provided by any KYC provider known to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AML_DECISION_UNKNOWN_CHECK = 1828,\n\n\n /**\n * The signature affirming the change in the AML officer status is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_UPDATE_AML_OFFICER_SIGNATURE_INVALID = 1830,\n\n\n /**\n * A more recent decision about the AML officer status is known to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_AML_OFFICERS_MORE_RECENT_PRESENT = 1831,\n\n\n /**\n * The purse was previously created with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_CONFLICTING_META_DATA = 1850,\n\n\n /**\n * The purse was previously created with a different contract.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_CONFLICTING_CONTRACT_STORED = 1851,\n\n\n /**\n * A coin signature for a deposit into the purse is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_COIN_SIGNATURE_INVALID = 1852,\n\n\n /**\n * The purse expiration time is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_EXPIRATION_BEFORE_NOW = 1853,\n\n\n /**\n * The purse expiration time is \"never\".\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_EXPIRATION_IS_NEVER = 1854,\n\n\n /**\n * The purse signature over the purse meta data is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_SIGNATURE_INVALID = 1855,\n\n\n /**\n * The signature over the encrypted contract is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_ECONTRACT_SIGNATURE_INVALID = 1856,\n\n\n /**\n * The signature from the exchange over the confirmation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_CREATE_EXCHANGE_SIGNATURE_INVALID = 1857,\n\n\n /**\n * The coin was previously deposited with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_CONFLICTING_META_DATA = 1858,\n\n\n /**\n * The encrypted contract was previously uploaded with different meta data.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_ECONTRACT_CONFLICTING_META_DATA = 1859,\n\n\n /**\n * The deposited amount is less than the purse fee.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CREATE_PURSE_NEGATIVE_VALUE_AFTER_FEE = 1860,\n\n\n /**\n * The signature using the merge key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_MERGE_INVALID_MERGE_SIGNATURE = 1876,\n\n\n /**\n * The signature using the reserve key is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_MERGE_INVALID_RESERVE_SIGNATURE = 1877,\n\n\n /**\n * The targeted purse is not yet full and thus cannot be merged. Retrying the request later may succeed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_NOT_FULL = 1878,\n\n\n /**\n * The signature from the exchange over the confirmation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_MERGE_EXCHANGE_SIGNATURE_INVALID = 1879,\n\n\n /**\n * The exchange of the target account is not a partner of this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN = 1880,\n\n\n /**\n * The signature affirming the new partner is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_ADD_PARTNER_SIGNATURE_INVALID = 1890,\n\n\n /**\n * Conflicting data for the partner already exists with the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_MANAGEMENT_ADD_PARTNER_DATA_CONFLICT = 1891,\n\n\n /**\n * The auditor signature over the denomination meta data is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID = 1900,\n\n\n /**\n * The auditor that was specified is unknown to this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AUDITORS_AUDITOR_UNKNOWN = 1901,\n\n\n /**\n * The auditor that was specified is no longer used by this exchange.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_AUDITORS_AUDITOR_INACTIVE = 1902,\n\n\n /**\n * The signature affirming the wallet's KYC request was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_WALLET_SIGNATURE_INVALID = 1925,\n\n\n /**\n * The exchange received an unexpected malformed response from its KYC backend.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_BACKEND_INVALID_RESPONSE = 1926,\n\n\n /**\n * The backend signaled an unexpected failure.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_BACKEND_ERROR = 1927,\n\n\n /**\n * The backend signaled an authorization failure.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_BACKEND_AUTHORIZATION_FAILED = 1928,\n\n\n /**\n * The exchange is unaware of having made an the authorization request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_PROOF_REQUEST_UNKNOWN = 1929,\n\n\n /**\n * The payto-URI hash did not match. Hence the request was denied.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED = 1930,\n\n\n /**\n * The request used a logic specifier that is not known to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_LOGIC_UNKNOWN = 1931,\n\n\n /**\n * The request requires a logic which is no longer configured at the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_LOGIC_GONE = 1932,\n\n\n /**\n * The logic plugin had a bug in its interaction with the KYC provider.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_LOGIC_BUG = 1933,\n\n\n /**\n * The exchange could not process the request with its KYC provider because the provider refused access to the service. This indicates some configuration issue at the Taler exchange operator.\n * Returned with an HTTP status code of #MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED (511).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_ACCESS_REFUSED = 1934,\n\n\n /**\n * There was a timeout in the interaction between the exchange and the KYC provider. The most likely cause is some networking problem. Trying again later might succeed.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_TIMEOUT = 1935,\n\n\n /**\n * The KYC provider responded with a status that was completely unexpected by the KYC logic of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_UNEXPECTED_REPLY = 1936,\n\n\n /**\n * The rate limit of the exchange at the KYC provider has been exceeded. Trying much later might work.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_GENERIC_PROVIDER_RATE_LIMIT_EXCEEDED = 1937,\n\n\n /**\n * The request to the webhook lacked proper authorization or authentication data.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_KYC_WEBHOOK_UNAUTHORIZED = 1938,\n\n\n /**\n * The exchange does not know a contract under the given contract public key.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_UNKNOWN = 1950,\n\n\n /**\n * The URL does not encode a valid exchange public key in its path.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_INVALID_CONTRACT_PUB = 1951,\n\n\n /**\n * The returned encrypted contract did not decrypt.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_DECRYPTION_FAILED = 1952,\n\n\n /**\n * The signature on the encrypted contract did not validate.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_SIGNATURE_INVALID = 1953,\n\n\n /**\n * The decrypted contract was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_CONTRACTS_DECODING_FAILED = 1954,\n\n\n /**\n * A coin signature for a deposit into the purse is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID = 1975,\n\n\n /**\n * It is too late to deposit coins into the purse.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_PURSE_DEPOSIT_DECIDED_ALREADY = 1976,\n\n\n /**\n * TOTP key is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n EXCHANGE_TOTP_KEY_INVALID = 1980,\n\n\n /**\n * The backend could not find the merchant instance specified in the request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_INSTANCE_UNKNOWN = 2000,\n\n\n /**\n * The start and end-times in the wire fee structure leave a hole. This is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_HOLE_IN_WIRE_FEE_STRUCTURE = 2001,\n\n\n /**\n * The merchant was unable to obtain a valid answer to /wire from the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_WIRE_REQUEST_FAILED = 2002,\n\n\n /**\n * The proposal is not known to the backend.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_ORDER_UNKNOWN = 2005,\n\n\n /**\n * The order provided to the backend could not be completed, because a product to be completed via inventory data is not actually in our inventory.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_PRODUCT_UNKNOWN = 2006,\n\n\n /**\n * The reward ID is unknown. This could happen if the reward has expired.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_REWARD_ID_UNKNOWN = 2007,\n\n\n /**\n * The contract obtained from the merchant backend was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_DB_CONTRACT_CONTENT_INVALID = 2008,\n\n\n /**\n * The order we found does not match the provided contract hash.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_CONTRACT_HASH_DOES_NOT_MATCH_ORDER = 2009,\n\n\n /**\n * The exchange failed to provide a valid response to the merchant's /keys request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_KEYS_FAILURE = 2010,\n\n\n /**\n * The exchange failed to respond to the merchant on time.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_TIMEOUT = 2011,\n\n\n /**\n * The merchant failed to talk to the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_CONNECT_FAILURE = 2012,\n\n\n /**\n * The exchange returned a maformed response.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_REPLY_MALFORMED = 2013,\n\n\n /**\n * The exchange returned an unexpected response status.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_EXCHANGE_UNEXPECTED_STATUS = 2014,\n\n\n /**\n * The merchant refused the request due to lack of authorization.\n * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_UNAUTHORIZED = 2015,\n\n\n /**\n * The merchant instance specified in the request was deleted.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_INSTANCE_DELETED = 2016,\n\n\n /**\n * The backend could not find the inbound wire transfer specified in the request.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_TRANSFER_UNKNOWN = 2017,\n\n\n /**\n * The backend could not find the template(id) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_TEMPLATE_UNKNOWN = 2018,\n\n\n /**\n * The backend could not find the webhook(id) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_WEBHOOK_UNKNOWN = 2019,\n\n\n /**\n * The backend could not find the webhook(serial) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_PENDING_WEBHOOK_UNKNOWN = 2020,\n\n\n /**\n * The backend could not find the OTP device(id) because it is not exist.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_OTP_DEVICE_UNKNOWN = 2021,\n\n\n /**\n * The account is not known to the backend.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_ACCOUNT_UNKNOWN = 2022,\n\n\n /**\n * The wire hash was malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_H_WIRE_MALFORMED = 2023,\n\n\n /**\n * The currency specified in the operation does not work with the current state of the given resource.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GENERIC_CURRENCY_MISMATCH = 2024,\n\n\n /**\n * The exchange failed to provide a valid answer to the tracking request, thus those details are not in the response.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_EXCHANGE_TRACKING_FAILURE = 2100,\n\n\n /**\n * The merchant backend failed to construct the request for tracking to the exchange, thus tracking details are not in the response.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE = 2103,\n\n\n /**\n * The merchant backend failed trying to contact the exchange for tracking details, thus those details are not in the response.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_EXCHANGE_LOOKUP_START_FAILURE = 2104,\n\n\n /**\n * The claim token used to authenticate the client is invalid for this order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_INVALID_TOKEN = 2105,\n\n\n /**\n * The contract terms hash used to authenticate the client is invalid for this order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_GET_ORDERS_ID_INVALID_CONTRACT_HASH = 2106,\n\n\n /**\n * The exchange responded saying that funds were insufficient (for example, due to double-spending).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_FUNDS = 2150,\n\n\n /**\n * The denomination key used for payment is not listed among the denomination keys of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_NOT_FOUND = 2151,\n\n\n /**\n * The denomination key used for payment is not audited by an auditor approved by the merchant.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_AUDITOR_FAILURE = 2152,\n\n\n /**\n * There was an integer overflow totaling up the amounts or deposit fees in the payment.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AMOUNT_OVERFLOW = 2153,\n\n\n /**\n * The deposit fees exceed the total value of the payment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_FEES_EXCEED_PAYMENT = 2154,\n\n\n /**\n * After considering deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract. The client should revisit the logic used to calculate fees it must cover.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_ACCEPTABLE (406).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES = 2155,\n\n\n /**\n * Even if we do not consider deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_ACCEPTABLE (406).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT = 2156,\n\n\n /**\n * The signature over the contract of one of the coins was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID = 2157,\n\n\n /**\n * When we tried to find information about the exchange to issue the deposit, we failed. This usually only happens if the merchant backend is somehow unable to get its own HTTP client logic to work.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_LOOKUP_FAILED = 2158,\n\n\n /**\n * The refund deadline in the contract is after the transfer deadline.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE = 2159,\n\n\n /**\n * The order was already paid (maybe by another wallet).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_ALREADY_PAID = 2160,\n\n\n /**\n * The payment is too late, the offer has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_OFFER_EXPIRED = 2161,\n\n\n /**\n * The \"merchant\" field is missing in the proposal data. This is an internal error as the proposal is from the merchant's own database at this point.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_MERCHANT_FIELD_MISSING = 2162,\n\n\n /**\n * Failed to locate merchant's account information matching the wire hash given in the proposal.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_WIRE_HASH_UNKNOWN = 2163,\n\n\n /**\n * The deposit time for the denomination has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_DEPOSIT_EXPIRED = 2165,\n\n\n /**\n * The exchange of the deposited coin charges a wire fee that could not be added to the total (total amount too high).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_WIRE_FEE_ADDITION_FAILED = 2166,\n\n\n /**\n * The contract was not fully paid because of refunds. Note that clients MAY treat this as paid if, for example, contracts must be executed despite of refunds.\n * Returned with an HTTP status code of #MHD_HTTP_PAYMENT_REQUIRED (402).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_REFUNDED = 2167,\n\n\n /**\n * According to our database, we have refunded more than we were paid (which should not be possible).\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_REFUNDS_EXCEED_PAYMENTS = 2168,\n\n\n /**\n * Legacy stuff. Remove me with protocol v1.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n DEAD_QQQ_PAY_MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2169,\n\n\n /**\n * The payment failed at the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_FAILED = 2170,\n\n\n /**\n * The payment required a minimum age but one of the coins (of a denomination with support for age restriction) did not provide any age_commitment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_MISSING = 2171,\n\n\n /**\n * The payment required a minimum age but one of the coins provided an age_commitment that contained a wrong number of public keys compared to the number of age groups defined in the denomination of the coin.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_SIZE_MISMATCH = 2172,\n\n\n /**\n * The payment required a minimum age but one of the coins provided a minimum_age_sig that couldn't be verified with the given age_commitment for that particular minimum age.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_VERIFICATION_FAILED = 2173,\n\n\n /**\n * The payment required no minimum age but one of the coins (of a denomination with support for age restriction) did not provide the required h_age_commitment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_HASH_MISSING = 2174,\n\n\n /**\n * The exchange does not support the selected bank account of the merchant. Likely the merchant had stale data on the bank accounts of the exchange and thus selected an inappropriate exchange when making the offer.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAY_WIRE_METHOD_UNSUPPORTED = 2175,\n\n\n /**\n * The contract hash does not match the given order ID.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH = 2200,\n\n\n /**\n * The signature of the merchant is not valid for the given contract hash.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_PAID_COIN_SIGNATURE_INVALID = 2201,\n\n\n /**\n * The merchant failed to send the exchange the refund request.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED = 2251,\n\n\n /**\n * The merchant failed to find the exchange to process the lookup.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_LOOKUP_FAILED = 2252,\n\n\n /**\n * The merchant could not find the contract.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_NOT_FOUND = 2253,\n\n\n /**\n * The payment was already completed and thus cannot be aborted anymore.\n * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2254,\n\n\n /**\n * The hash provided by the wallet does not match the order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_HASH_MISSMATCH = 2255,\n\n\n /**\n * The array of coins cannot be empty.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_ABORT_COINS_ARRAY_EMPTY = 2256,\n\n\n /**\n * We could not claim the order because the backend is unaware of it.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_CLAIM_NOT_FOUND = 2300,\n\n\n /**\n * We could not claim the order because someone else claimed it first.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_CLAIM_ALREADY_CLAIMED = 2301,\n\n\n /**\n * The client-side experienced an internal failure.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_CLAIM_CLIENT_INTERNAL_FAILURE = 2302,\n\n\n /**\n * The backend failed to sign the refund request.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_ORDERS_ID_REFUND_SIGNATURE_FAILED = 2350,\n\n\n /**\n * The client failed to unblind the signature returned by the merchant.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_UNBLIND_FAILURE = 2400,\n\n\n /**\n * The exchange returned a failure code for the withdraw operation.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_EXCHANGE_ERROR = 2403,\n\n\n /**\n * The merchant failed to add up the amounts to compute the pick up value.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_SUMMATION_FAILED = 2404,\n\n\n /**\n * The reward expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_HAS_EXPIRED = 2405,\n\n\n /**\n * The requested withdraw amount exceeds the amount remaining to be picked up.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_AMOUNT_EXCEEDS_REWARD_REMAINING = 2406,\n\n\n /**\n * The merchant did not find the specified denomination key in the exchange's key set.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_REWARD_PICKUP_DENOMINATION_UNKNOWN = 2407,\n\n\n /**\n * The backend lacks a wire transfer method configuration option for the given instance. Thus, this instance is unavailable (not findable for creating new orders).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE = 2500,\n\n\n /**\n * The proposal had no timestamp and the backend failed to obtain the local time. Likely to be an internal error.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME = 2501,\n\n\n /**\n * The order provided to the backend could not be parsed, some required fields were missing or ill-formed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR = 2502,\n\n\n /**\n * The backend encountered an error: the proposal already exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS = 2503,\n\n\n /**\n * The request is invalid: the wire deadline is before the refund deadline.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE = 2504,\n\n\n /**\n * The request is invalid: a delivery date was given, but it is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST = 2505,\n\n\n /**\n * The request is invalid: the wire deadline for the order would be \"never\".\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_WIRE_DEADLINE_IS_NEVER = 2506,\n\n\n /**\n * The request is invalid: a payment deadline was given, but it is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_PAY_DEADLINE_IN_PAST = 2507,\n\n\n /**\n * The request is invalid: a refund deadline was given, but it is in the past.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_REFUND_DEADLINE_IN_PAST = 2508,\n\n\n /**\n * The backend does not trust any exchange that would allow funds to be wired to any bank account of this instance using the selected wire method. Note that right now, we do not support the use of exchange bank accounts with mandatory currency conversion.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_NO_EXCHANGES_FOR_WIRE_METHOD = 2509,\n\n\n /**\n * One of the paths to forget is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT = 2510,\n\n\n /**\n * One of the paths to forget was not marked as forgettable.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_NOT_FORGETTABLE = 2511,\n\n\n /**\n * The order provided to the backend could not be deleted, our offer is still valid and awaiting payment.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT = 2520,\n\n\n /**\n * The order provided to the backend could not be deleted as the order was already paid.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_ORDERS_ALREADY_PAID = 2521,\n\n\n /**\n * The amount to be refunded is inconsistent: either is lower than the previous amount being awarded, or it is too big to be paid back. In this second case, the fault stays on the business dept. side.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT = 2530,\n\n\n /**\n * The frontend gave an unpaid order id to issue the refund to.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID = 2531,\n\n\n /**\n * The refund delay was set to 0 and thus no refunds are allowed for this order.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT = 2532,\n\n\n /**\n * The exchange says it does not know this transfer.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_EXCHANGE_UNKNOWN = 2550,\n\n\n /**\n * We internally failed to execute the /track/transfer request.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_REQUEST_ERROR = 2551,\n\n\n /**\n * The amount transferred differs between what was submitted and what the exchange claimed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_TRANSFERS = 2552,\n\n\n /**\n * The exchange gave conflicting information about a coin which has been wire transferred.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_REPORTS = 2553,\n\n\n /**\n * The exchange charged a different wire fee than what it originally advertised, and it is higher.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_BAD_WIRE_FEE = 2554,\n\n\n /**\n * We did not find the account that the transfer was made to.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_ACCOUNT_NOT_FOUND = 2555,\n\n\n /**\n * The backend could not delete the transfer as the echange already replied to our inquiry about it and we have integrated the result.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_TRANSFERS_ALREADY_CONFIRMED = 2556,\n\n\n /**\n * The backend was previously informed about a wire transfer with the same ID but a different amount. Multiple wire transfers with the same ID are not allowed. If the new amount is correct, the old transfer should first be deleted.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_SUBMISSION = 2557,\n\n\n /**\n * We are waiting for the exchange to provide us with key material before checking the wire transfer.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_AWAITING_KEYS = 2258,\n\n\n /**\n * We are waiting for the exchange to provide us with the list of aggregated transactions.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_AWAITING_LIST = 2259,\n\n\n /**\n * The endpoint indicated in the wire transfer does not belong to a GNU Taler exchange.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_FATAL_NO_EXCHANGE = 2260,\n\n\n /**\n * The exchange indicated in the wire transfer claims to know nothing about the wire transfer.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_FATAL_NOT_FOUND = 2261,\n\n\n /**\n * The interaction with the exchange is delayed due to rate limiting.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_RATE_LIMITED = 2262,\n\n\n /**\n * We experienced a transient failure in our interaction with the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_TRANSIENT_FAILURE = 2263,\n\n\n /**\n * The response from the exchange was unacceptable and should be reviewed with an auditor.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_HARD_FAILURE = 2264,\n\n\n /**\n * The amount transferred differs between what was submitted and what the exchange claimed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_EXCHANGE_TRANSFERS_CONFLICTING_TRANSFERS = 2563,\n\n\n /**\n * The merchant backend cannot create an instance under the given identifier as one already exists. Use PATCH to modify the existing entry.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCES_ALREADY_EXISTS = 2600,\n\n\n /**\n * The merchant backend cannot create an instance because the authentication configuration field is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCES_BAD_AUTH = 2601,\n\n\n /**\n * The merchant backend cannot update an instance's authentication settings because the provided authentication settings are malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCE_AUTH_BAD_AUTH = 2602,\n\n\n /**\n * The merchant backend cannot create an instance under the given identifier, the previous one was deleted but must be purged first.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_INSTANCES_PURGE_REQUIRED = 2603,\n\n\n /**\n * The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_INSTANCES_PURGE_REQUIRED = 2625,\n\n\n /**\n * The bank account referenced in the requested operation was not found.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_ACCOUNT_DELETE_UNKNOWN_ACCOUNT = 2626,\n\n\n /**\n * The bank account specified in the request already exists at the merchant.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_ACCOUNT_EXISTS = 2627,\n\n\n /**\n * The product ID exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_PRODUCTS_CONFLICT_PRODUCT_EXISTS = 2650,\n\n\n /**\n * The update would have reduced the total amount of product lost, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_REDUCED = 2660,\n\n\n /**\n * The update would have mean that more stocks were lost than what remains from total inventory after sales, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_EXCEEDS_STOCKS = 2661,\n\n\n /**\n * The update would have reduced the total amount of product in stock, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_STOCKED_REDUCED = 2662,\n\n\n /**\n * The update would have reduced the total amount of product sold, which is not allowed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_SOLD_REDUCED = 2663,\n\n\n /**\n * The lock request is for more products than we have left (unlocked) in stock.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_PRODUCTS_LOCK_INSUFFICIENT_STOCKS = 2670,\n\n\n /**\n * The deletion request is for a product that is locked.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_PRODUCTS_CONFLICTING_LOCK = 2680,\n\n\n /**\n * The requested wire method is not supported by the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_RESERVES_UNSUPPORTED_WIRE_METHOD = 2700,\n\n\n /**\n * The requested exchange does not allow rewards.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_RESERVES_REWARDS_NOT_ALLOWED = 2701,\n\n\n /**\n * The reserve could not be deleted because it is unknown.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE = 2710,\n\n\n /**\n * The reserve that was used to fund the rewards has expired.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_EXPIRED = 2750,\n\n\n /**\n * The reserve that was used to fund the rewards was not found in the DB.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_UNKNOWN = 2751,\n\n\n /**\n * The backend knows the instance that was supposed to support the reward, and it was configured for rewardping. However, the funds remaining are insufficient to cover the reward, and the merchant should top up the reserve.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_INSUFFICIENT_FUNDS = 2752,\n\n\n /**\n * The backend failed to find a reserve needed to authorize the reward.\n * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_NOT_FOUND = 2753,\n\n\n /**\n * The merchant backend encountered a failure in computing the deposit total.\n * Returned with an HTTP status code of #MHD_HTTP_OK (200).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_GET_ORDERS_ID_AMOUNT_ARITHMETIC_FAILURE = 2800,\n\n\n /**\n * The template ID already exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_TEMPLATES_CONFLICT_TEMPLATE_EXISTS = 2850,\n\n\n /**\n * The OTP device ID already exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_OTP_DEVICES_CONFLICT_OTP_DEVICE_EXISTS = 2851,\n\n\n /**\n * Amount given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_AMOUNT_CONFLICT_TEMPLATES_CONTRACT_AMOUNT = 2860,\n\n\n /**\n * Subject given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_SUMMARY_CONFLICT_TEMPLATES_CONTRACT_SUBJECT = 2861,\n\n\n /**\n * Amount not given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_NO_AMOUNT = 2862,\n\n\n /**\n * Subject not given in the using template and in the template contract. There is a conflict.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_POST_USING_TEMPLATES_NO_SUMMARY = 2863,\n\n\n /**\n * The webhook ID elready exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_WEBHOOKS_CONFLICT_WEBHOOK_EXISTS = 2900,\n\n\n /**\n * The webhook serial elready exists.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n MERCHANT_PRIVATE_POST_PENDING_WEBHOOKS_CONFLICT_PENDING_WEBHOOK_EXISTS = 2910,\n\n\n /**\n * The signature from the exchange on the deposit confirmation is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n AUDITOR_DEPOSIT_CONFIRMATION_SIGNATURE_INVALID = 3100,\n\n\n /**\n * The exchange key used for the signature on the deposit confirmation was revoked.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n AUDITOR_EXCHANGE_SIGNING_KEY_REVOKED = 3101,\n\n\n /**\n * Wire transfer attempted with credit and debit party being the same bank account.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_SAME_ACCOUNT = 5101,\n\n\n /**\n * Wire transfer impossible, due to financial limitation of the party that attempted the payment.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNALLOWED_DEBIT = 5102,\n\n\n /**\n * Negative numbers are not allowed (as value and/or fraction) to instantiate an amount object.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NEGATIVE_NUMBER_AMOUNT = 5103,\n\n\n /**\n * A too big number was used (as value and/or fraction) to instantiate an amount object.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NUMBER_TOO_BIG = 5104,\n\n\n /**\n * The bank account referenced in the requested operation was not found.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNKNOWN_ACCOUNT = 5106,\n\n\n /**\n * The transaction referenced in the requested operation (typically a reject operation), was not found.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TRANSACTION_NOT_FOUND = 5107,\n\n\n /**\n * Bank received a malformed amount string.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_BAD_FORMAT_AMOUNT = 5108,\n\n\n /**\n * The client does not own the account credited by the transaction which is to be rejected, so it has no rights do reject it.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REJECT_NO_RIGHTS = 5109,\n\n\n /**\n * This error code is returned when no known exception types captured the exception.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNMANAGED_EXCEPTION = 5110,\n\n\n /**\n * This error code is used for all those exceptions that do not really need a specific error code to return to the client. Used for example when a client is trying to register with a unavailable username.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_SOFT_EXCEPTION = 5111,\n\n\n /**\n * The request UID for a request to transfer funds has already been used, but with different details for the transfer.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TRANSFER_REQUEST_UID_REUSED = 5112,\n\n\n /**\n * The withdrawal operation already has a reserve selected. The current request conflicts with the existing selection.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_WITHDRAWAL_OPERATION_RESERVE_SELECTION_CONFLICT = 5113,\n\n\n /**\n * The wire transfer subject duplicates an existing reserve public key. But wire transfer subjects must be unique.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_DUPLICATE_RESERVE_PUB_SUBJECT = 5114,\n\n\n /**\n * The client requested a transaction that is so far in the past, that it has been forgotten by the bank.\n * Returned with an HTTP status code of #MHD_HTTP_GONE (410).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ANCIENT_TRANSACTION_GONE = 5115,\n\n\n /**\n * The client attempted to abort a transaction that was already confirmed.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ABORT_CONFIRM_CONFLICT = 5116,\n\n\n /**\n * The client attempted to confirm a transaction that was already aborted.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_CONFIRM_ABORT_CONFLICT = 5117,\n\n\n /**\n * The client attempted to register an account with the same name.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REGISTER_CONFLICT = 5118,\n\n\n /**\n * The client attempted to confirm a withdrawal operation before the wallet posted the required details.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_POST_WITHDRAWAL_OPERATION_REQUIRED = 5119,\n\n\n /**\n * The client tried to register a new account under a reserved username (like 'admin' for example).\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_RESERVED_USERNAME_CONFLICT = 5120,\n\n\n /**\n * The client tried to register a new account with an username already in use.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REGISTER_USERNAME_REUSE = 5121,\n\n\n /**\n * The client tried to register a new account with a payto:// URI already in use.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_REGISTER_PAYTO_URI_REUSE = 5122,\n\n\n /**\n * The client tried to delete an account with a non null balance.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ACCOUNT_BALANCE_NOT_ZERO = 5123,\n\n\n /**\n * The client tried to create a transaction or an operation that credit an unknown account.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNKNOWN_CREDITOR = 5124,\n\n\n /**\n * The client tried to create a transaction or an operation that debit an unknown account.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_UNKNOWN_DEBTOR = 5125,\n\n\n /**\n * The client tried to perform an action prohibited for exchange accounts.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ACCOUNT_IS_EXCHANGE = 5126,\n\n\n /**\n * The client tried to perform an action reserved for exchange accounts.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_ACCOUNT_IS_NOT_EXCHANGE = 5127,\n\n\n /**\n * Received currency conversion is wrong.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_BAD_CONVERSION = 5128,\n\n\n /**\n * The account referenced in this operation is missing tan info for the chosen channel.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_MISSING_TAN_INFO = 5129,\n\n\n /**\n * The client attempted to confirm a transaction with incomplete info.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_CONFIRM_INCOMPLETE = 5130,\n\n\n /**\n * The request rate is too high. The server is refusing requests to guard against brute-force attacks.\n * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TAN_RATE_LIMITED = 5131,\n\n\n /**\n * This TAN channel is not supported.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TAN_CHANNEL_NOT_SUPPORTED = 5132,\n\n\n /**\n * Failed to send TAN using the helper script. Either script is not found, or script timeout, or script terminated with a non-successful result.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TAN_CHANNEL_SCRIPT_FAILED = 5133,\n\n\n /**\n * The client's response to the challenge was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_TAN_CHALLENGE_FAILED = 5134,\n\n\n /**\n * A non-admin user has tried to change their legal name.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NON_ADMIN_PATCH_LEGAL_NAME = 5135,\n\n\n /**\n * A non-admin user has tried to change their debt limit.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NON_ADMIN_PATCH_DEBT_LIMIT = 5136,\n\n\n /**\n * A non-admin user has tried to change their password whihout providing the current one.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NON_ADMIN_PATCH_MISSING_OLD_PASSWORD = 5137,\n\n\n /**\n * Provided old password does not match current password.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_PATCH_BAD_OLD_PASSWORD = 5138,\n\n\n /**\n * An admin user has tried to become an exchange.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_PATCH_ADMIN_EXCHANGE = 5139,\n\n\n /**\n * A non-admin user has tried to change their cashout account.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NON_ADMIN_PATCH_CASHOUT = 5140,\n\n\n /**\n * A non-admin user has tried to change their contact info.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n BANK_NON_ADMIN_PATCH_CONTACT = 5141,\n\n\n /**\n * The sync service failed find the account in its database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_ACCOUNT_UNKNOWN = 6100,\n\n\n /**\n * The SHA-512 hash provided in the If-None-Match header is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_BAD_IF_NONE_MATCH = 6101,\n\n\n /**\n * The SHA-512 hash provided in the If-Match header is malformed or missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_BAD_IF_MATCH = 6102,\n\n\n /**\n * The signature provided in the \"Sync-Signature\" header is malformed or missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_BAD_SYNC_SIGNATURE = 6103,\n\n\n /**\n * The signature provided in the \"Sync-Signature\" header does not match the account, old or new Etags.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_INVALID_SIGNATURE = 6104,\n\n\n /**\n * The \"Content-length\" field for the upload is not a number.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_MALFORMED_CONTENT_LENGTH = 6105,\n\n\n /**\n * The \"Content-length\" field for the upload is too big based on the server's terms of service.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_EXCESSIVE_CONTENT_LENGTH = 6106,\n\n\n /**\n * The server is out of memory to handle the upload. Trying again later may succeed.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 6107,\n\n\n /**\n * The uploaded data does not match the Etag.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_INVALID_UPLOAD = 6108,\n\n\n /**\n * HTTP server experienced a timeout while awaiting promised payment.\n * Returned with an HTTP status code of #MHD_HTTP_REQUEST_TIMEOUT (408).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_PAYMENT_GENERIC_TIMEOUT = 6109,\n\n\n /**\n * Sync could not setup the payment request with its own backend.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_PAYMENT_CREATE_BACKEND_ERROR = 6110,\n\n\n /**\n * The sync service failed find the backup to be updated in its database.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_PREVIOUS_BACKUP_UNKNOWN = 6111,\n\n\n /**\n * The \"Content-length\" field for the upload is missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_MISSING_CONTENT_LENGTH = 6112,\n\n\n /**\n * Sync had problems communicating with its payment backend.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_GENERIC_BACKEND_ERROR = 6113,\n\n\n /**\n * Sync experienced a timeout communicating with its payment backend.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n SYNC_GENERIC_BACKEND_TIMEOUT = 6114,\n\n\n /**\n * The wallet does not implement a version of the exchange protocol that is compatible with the protocol version of the exchange.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_PROTOCOL_VERSION_INCOMPATIBLE = 7000,\n\n\n /**\n * The wallet encountered an unexpected exception. This is likely a bug in the wallet implementation.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_UNEXPECTED_EXCEPTION = 7001,\n\n\n /**\n * The wallet received a response from a server, but the response can't be parsed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_RECEIVED_MALFORMED_RESPONSE = 7002,\n\n\n /**\n * The wallet tried to make a network request, but it received no response.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_NETWORK_ERROR = 7003,\n\n\n /**\n * The wallet tried to make a network request, but it was throttled.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_HTTP_REQUEST_THROTTLED = 7004,\n\n\n /**\n * The wallet made a request to a service, but received an error response it does not know how to handle.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_UNEXPECTED_REQUEST_ERROR = 7005,\n\n\n /**\n * The denominations offered by the exchange are insufficient. Likely the exchange is badly configured or not maintained.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_DENOMINATIONS_INSUFFICIENT = 7006,\n\n\n /**\n * The wallet does not support the operation requested by a client.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CORE_API_OPERATION_UNKNOWN = 7007,\n\n\n /**\n * The given taler://pay URI is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_INVALID_TALER_PAY_URI = 7008,\n\n\n /**\n * The signature on a coin by the exchange's denomination key is invalid after unblinding it.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_COIN_SIGNATURE_INVALID = 7009,\n\n\n /**\n * The exchange does not know about the reserve (yet), and thus withdrawal can't progress.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_WITHDRAW_RESERVE_UNKNOWN_AT_EXCHANGE = 7010,\n\n\n /**\n * The wallet core service is not available.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CORE_NOT_AVAILABLE = 7011,\n\n\n /**\n * The bank has aborted a withdrawal operation, and thus a withdrawal can't complete.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_WITHDRAWAL_OPERATION_ABORTED_BY_BANK = 7012,\n\n\n /**\n * An HTTP request made by the wallet timed out.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_HTTP_REQUEST_GENERIC_TIMEOUT = 7013,\n\n\n /**\n * The order has already been claimed by another wallet.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_ORDER_ALREADY_CLAIMED = 7014,\n\n\n /**\n * A group of withdrawal operations (typically for the same reserve at the same exchange) has errors and will be tried again later.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_WITHDRAWAL_GROUP_INCOMPLETE = 7015,\n\n\n /**\n * The signature on a coin by the exchange's denomination key (obtained through the merchant via a reward) is invalid after unblinding it.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_REWARD_COIN_SIGNATURE_INVALID = 7016,\n\n\n /**\n * The wallet does not implement a version of the bank integration API that is compatible with the version offered by the bank.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_BANK_INTEGRATION_PROTOCOL_VERSION_INCOMPATIBLE = 7017,\n\n\n /**\n * The wallet processed a taler://pay URI, but the merchant base URL in the downloaded contract terms does not match the merchant base URL derived from the URI.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CONTRACT_TERMS_BASE_URL_MISMATCH = 7018,\n\n\n /**\n * The merchant's signature on the contract terms is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CONTRACT_TERMS_SIGNATURE_INVALID = 7019,\n\n\n /**\n * The contract terms given by the merchant are malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CONTRACT_TERMS_MALFORMED = 7020,\n\n\n /**\n * A pending operation failed, and thus the request can't be completed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PENDING_OPERATION_FAILED = 7021,\n\n\n /**\n * A payment was attempted, but the merchant had an internal server error (5xx).\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PAY_MERCHANT_SERVER_ERROR = 7022,\n\n\n /**\n * The crypto worker failed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CRYPTO_WORKER_ERROR = 7023,\n\n\n /**\n * The crypto worker received a bad request.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_CRYPTO_WORKER_BAD_REQUEST = 7024,\n\n\n /**\n * A KYC step is required before withdrawal can proceed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_WITHDRAWAL_KYC_REQUIRED = 7025,\n\n\n /**\n * The wallet does not have sufficient balance to create a deposit group.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE = 7026,\n\n\n /**\n * The wallet does not have sufficient balance to create a peer push payment.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE = 7027,\n\n\n /**\n * The wallet does not have sufficient balance to pay for an invoice.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_PEER_PULL_PAYMENT_INSUFFICIENT_BALANCE = 7028,\n\n\n /**\n * A group of refresh operations has errors and will be tried again later.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_REFRESH_GROUP_INCOMPLETE = 7029,\n\n\n /**\n * The exchange's self-reported base URL does not match the one that the wallet is using.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_EXCHANGE_BASE_URL_MISMATCH = 7030,\n\n\n /**\n * The order has already been paid by another wallet.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n WALLET_ORDER_ALREADY_PAID = 7031,\n\n\n /**\n * We encountered a timeout with our payment backend.\n * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_BACKEND_TIMEOUT = 8000,\n\n\n /**\n * The backend requested payment, but the request is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_INVALID_PAYMENT_REQUEST = 8001,\n\n\n /**\n * The backend got an unexpected reply from the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_BACKEND_ERROR = 8002,\n\n\n /**\n * The \"Content-length\" field for the upload is missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_MISSING_CONTENT_LENGTH = 8003,\n\n\n /**\n * The \"Content-length\" field for the upload is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_MALFORMED_CONTENT_LENGTH = 8004,\n\n\n /**\n * The backend failed to setup an order with the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_ORDER_CREATE_BACKEND_ERROR = 8005,\n\n\n /**\n * The backend was not authorized to check for payment with the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_PAYMENT_CHECK_UNAUTHORIZED = 8006,\n\n\n /**\n * The backend could not check payment status with the payment processor.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_PAYMENT_CHECK_START_FAILED = 8007,\n\n\n /**\n * The Anastasis provider could not be reached.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_GENERIC_PROVIDER_UNREACHABLE = 8008,\n\n\n /**\n * HTTP server experienced a timeout while awaiting promised payment.\n * Returned with an HTTP status code of #MHD_HTTP_REQUEST_TIMEOUT (408).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_PAYMENT_GENERIC_TIMEOUT = 8009,\n\n\n /**\n * The key share is unknown to the provider.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UNKNOWN = 8108,\n\n\n /**\n * The authorization method used for the key share is no longer supported by the provider.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_AUTHORIZATION_METHOD_NO_LONGER_SUPPORTED = 8109,\n\n\n /**\n * The client needs to respond to the challenge.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_RESPONSE_REQUIRED = 8110,\n\n\n /**\n * The client's response to the challenge was invalid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_FAILED = 8111,\n\n\n /**\n * The backend is not aware of having issued the provided challenge code. Either this is the wrong code, or it has expired.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_UNKNOWN = 8112,\n\n\n /**\n * The backend failed to initiate the authorization process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_AUTHORIZATION_START_FAILED = 8114,\n\n\n /**\n * The authorization succeeded, but the key share is no longer available.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_KEY_SHARE_GONE = 8115,\n\n\n /**\n * The backend forgot the order we asked the client to pay for\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_ORDER_DISAPPEARED = 8116,\n\n\n /**\n * The backend itself reported a bad exchange interaction.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_BACKEND_EXCHANGE_BAD = 8117,\n\n\n /**\n * The backend reported a payment status we did not expect.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UNEXPECTED_PAYMENT_STATUS = 8118,\n\n\n /**\n * The backend failed to setup the order for payment.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_PAYMENT_CREATE_BACKEND_ERROR = 8119,\n\n\n /**\n * The decryption of the key share failed with the provided key.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_DECRYPTION_FAILED = 8120,\n\n\n /**\n * The request rate is too high. The server is refusing requests to guard against brute-force attacks.\n * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_RATE_LIMITED = 8121,\n\n\n /**\n * A request to issue a challenge is not valid for this authentication method.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_CHALLENGE_WRONG_METHOD = 8123,\n\n\n /**\n * The backend failed to store the key share because the UUID is already in use.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UPLOAD_UUID_EXISTS = 8150,\n\n\n /**\n * The backend failed to store the key share because the authorization method is not supported.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TRUTH_UPLOAD_METHOD_NOT_SUPPORTED = 8151,\n\n\n /**\n * The provided phone number is not an acceptable number.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_SMS_PHONE_INVALID = 8200,\n\n\n /**\n * Failed to run the SMS transmission helper process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_SMS_HELPER_EXEC_FAILED = 8201,\n\n\n /**\n * Provider failed to send SMS. Helper terminated with a non-successful result.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_SMS_HELPER_COMMAND_FAILED = 8202,\n\n\n /**\n * The provided email address is not an acceptable address.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_EMAIL_INVALID = 8210,\n\n\n /**\n * Failed to run the E-mail transmission helper process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_EMAIL_HELPER_EXEC_FAILED = 8211,\n\n\n /**\n * Provider failed to send E-mail. Helper terminated with a non-successful result.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_EMAIL_HELPER_COMMAND_FAILED = 8212,\n\n\n /**\n * The provided postal address is not an acceptable address.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POST_INVALID = 8220,\n\n\n /**\n * Failed to run the mail transmission helper process.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POST_HELPER_EXEC_FAILED = 8221,\n\n\n /**\n * Provider failed to send mail. Helper terminated with a non-successful result.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POST_HELPER_COMMAND_FAILED = 8222,\n\n\n /**\n * The provided IBAN address is not an acceptable IBAN.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_IBAN_INVALID = 8230,\n\n\n /**\n * The provider has not yet received the IBAN wire transfer authorizing the disclosure of the key share.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_IBAN_MISSING_TRANSFER = 8231,\n\n\n /**\n * The backend did not find a TOTP key in the data provided.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TOTP_KEY_MISSING = 8240,\n\n\n /**\n * The key provided does not satisfy the format restrictions for an Anastasis TOTP key.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_TOTP_KEY_INVALID = 8241,\n\n\n /**\n * The given if-none-match header is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_BAD_IF_NONE_MATCH = 8301,\n\n\n /**\n * The server is out of memory to handle the upload. Trying again later may succeed.\n * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 8304,\n\n\n /**\n * The signature provided in the \"Anastasis-Policy-Signature\" header is malformed or missing.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_BAD_SIGNATURE = 8305,\n\n\n /**\n * The given if-match header is malformed.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_BAD_IF_MATCH = 8306,\n\n\n /**\n * The uploaded data does not match the Etag.\n * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_INVALID_UPLOAD = 8307,\n\n\n /**\n * The provider is unaware of the requested policy.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_POLICY_NOT_FOUND = 8350,\n\n\n /**\n * The given action is invalid for the current state of the reducer.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_ACTION_INVALID = 8400,\n\n\n /**\n * The given state of the reducer is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_STATE_INVALID = 8401,\n\n\n /**\n * The given input to the reducer is invalid.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_INVALID = 8402,\n\n\n /**\n * The selected authentication method does not work for the Anastasis provider.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_AUTHENTICATION_METHOD_NOT_SUPPORTED = 8403,\n\n\n /**\n * The given input and action do not work for the current state.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_INVALID_FOR_STATE = 8404,\n\n\n /**\n * We experienced an unexpected failure interacting with the backend.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_BACKEND_FAILURE = 8405,\n\n\n /**\n * The contents of a resource file did not match our expectations.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_RESOURCE_MALFORMED = 8406,\n\n\n /**\n * A required resource file is missing.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_RESOURCE_MISSING = 8407,\n\n\n /**\n * An input did not match the regular expression.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_REGEX_FAILED = 8408,\n\n\n /**\n * An input did not match the custom validation logic.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INPUT_VALIDATION_FAILED = 8409,\n\n\n /**\n * Our attempts to download the recovery document failed with all providers. Most likely the personal information you entered differs from the information you provided during the backup process and you should go back to the previous step. Alternatively, if you used a backup provider that is unknown to this application, you should add that provider manually.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_POLICY_LOOKUP_FAILED = 8410,\n\n\n /**\n * Anastasis provider reported a fatal failure.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_BACKUP_PROVIDER_FAILED = 8411,\n\n\n /**\n * Anastasis provider failed to respond to the configuration request.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_PROVIDER_CONFIG_FAILED = 8412,\n\n\n /**\n * The policy we downloaded is malformed. Must have been a client error while creating the backup.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_POLICY_MALFORMED = 8413,\n\n\n /**\n * We failed to obtain the policy, likely due to a network issue.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_NETWORK_FAILED = 8414,\n\n\n /**\n * The recovered secret did not match the required syntax.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_SECRET_MALFORMED = 8415,\n\n\n /**\n * The challenge data provided is too large for the available providers.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_CHALLENGE_DATA_TOO_BIG = 8416,\n\n\n /**\n * The provided core secret is too large for some of the providers.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_SECRET_TOO_BIG = 8417,\n\n\n /**\n * The provider returned in invalid configuration.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_PROVIDER_INVALID_CONFIG = 8418,\n\n\n /**\n * The reducer encountered an internal error, likely a bug that needs to be reported.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_INTERNAL_ERROR = 8419,\n\n\n /**\n * The reducer already synchronized with all providers.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED = 8420,\n\n\n /**\n * A generic error happened in the LibEuFin nexus. See the enclose details JSON for more information.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_NEXUS_GENERIC_ERROR = 9000,\n\n\n /**\n * An uncaught exception happened in the LibEuFin nexus service.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_NEXUS_UNCAUGHT_EXCEPTION = 9001,\n\n\n /**\n * A generic error happened in the LibEuFin sandbox. See the enclose details JSON for more information.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_SANDBOX_GENERIC_ERROR = 9500,\n\n\n /**\n * An uncaught exception happened in the LibEuFin sandbox service.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n LIBEUFIN_SANDBOX_UNCAUGHT_EXCEPTION = 9501,\n\n\n /**\n * This validation method is not supported by the service.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n TALDIR_METHOD_NOT_SUPPORTED = 9600,\n\n\n /**\n * Number of allowed attempts for initiating a challenge exceeded.\n * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).\n * (A value of 0 indicates that the error is generated client-side).\n */\n TALDIR_REGISTER_RATE_LIMITED = 9601,\n\n\n /**\n * The client is unknown or unauthorized.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GENERIC_CLIENT_UNKNOWN = 9750,\n\n\n /**\n * The client is not authorized to use the given redirect URI.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GENERIC_CLIENT_FORBIDDEN_BAD_REDIRECT_URI = 9751,\n\n\n /**\n * The service failed to execute its helper process to send the challenge.\n * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_HELPER_EXEC_FAILED = 9752,\n\n\n /**\n * The grant is unknown to the service (it could also have expired).\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GRANT_UNKNOWN = 9753,\n\n\n /**\n * The code given is not even well-formed.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_CLIENT_FORBIDDEN_BAD_CODE = 9754,\n\n\n /**\n * The service is not aware of the referenced validation process.\n * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_GENERIC_VALIDATION_UNKNOWN = 9755,\n\n\n /**\n * The code given is not valid.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_CLIENT_FORBIDDEN_INVALID_CODE = 9756,\n\n\n /**\n * Too many attempts have been made, validation is temporarily disabled for this address.\n * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_TOO_MANY_ATTEMPTS = 9757,\n\n\n /**\n * The PIN code provided is incorrect.\n * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_INVALID_PIN = 9758,\n\n\n /**\n * The token cannot be valid as no address was ever provided by the client.\n * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).\n * (A value of 0 indicates that the error is generated client-side).\n */\n CHALLENGER_MISSING_ADDRESS = 9759,\n\n\n /**\n * End of error code range.\n * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).\n * (A value of 0 indicates that the error is generated client-side).\n */\n END = 9999,\n\n\n}\n", "/*\nCopyright Mathias Bynens <https://mathiasbynens.be/>\nCopyright (c) 2022 Taler Systems S.A.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = \"-\"; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n overflow: \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\",\n} as { [x: string]: string };\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type: string) {\n throw new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array: any[], fn: (arg0: any) => any) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(\n string: string,\n fn: { (string: any): any; (string: any): any; (arg0: any): any },\n) {\n const parts = string.split(\"@\");\n let result = \"\";\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + \"@\";\n string = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n string = string.replace(regexSeparators, \"\\x2E\");\n const labels = string.split(\".\");\n const encoded = map(labels, fn).join(\".\");\n return result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string: string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 0xd800 && value <= 0xdbff && counter < length) {\n // It's a high surrogate, and there is a next character.\n const extra = string.charCodeAt(counter++);\n if ((extra & 0xfc00) == 0xdc00) {\n // Low surrogate.\n output.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = (array: any): string => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function (codePoint: number) {\n if (codePoint - 0x30 < 0x0a) {\n return codePoint - 0x16;\n }\n if (codePoint - 0x41 < 0x1a) {\n return codePoint - 0x41;\n }\n if (codePoint - 0x61 < 0x1a) {\n return codePoint - 0x61;\n }\n return base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function (digit: number, flag: number) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * Number(digit < 26) - (Number(flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function (delta: number, numPoints: number, firstTime: boolean) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (\n ;\n /* no initialization */ delta > (baseMinusTMin * tMax) >> 1;\n k += base\n ) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + ((baseMinusTMin + 1) * delta) / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function (input: string) {\n // Don't use UCS-2.\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n\n // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n\n for (let j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error(\"not-basic\");\n }\n output.push(input.charCodeAt(j));\n }\n\n // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n for (\n let index = basic > 0 ? basic + 1 : 0;\n index < inputLength /* no final expression */;\n\n ) {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n let oldi = i;\n for (let w = 1, k = base /* no condition */; ; k += base) {\n if (index >= inputLength) {\n error(\"invalid-input\");\n }\n\n const digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error(\"overflow\");\n }\n\n i += digit * w;\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error(\"overflow\");\n }\n\n w *= baseMinusT;\n }\n\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n\n // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n if (floor(i / out) > maxInt - n) {\n error(\"overflow\");\n }\n\n n += floor(i / out);\n i %= out;\n\n // Insert `n` at position `i` of the output.\n output.splice(i++, 0, n);\n }\n\n return String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function (inputArg: string) {\n const output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n let input = ucs2decode(inputArg);\n\n // Cache the length.\n let inputLength = input.length;\n\n // Initialize the state.\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n\n // Handle the basic code points.\n for (const currentValue of input) {\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n let basicLength = output.length;\n let handledCPCount = basicLength;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n let m = maxInt;\n for (const currentValue of input) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow.\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error(\"overflow\");\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (const currentValue of input) {\n if (currentValue < n && ++delta > maxInt) {\n error(\"overflow\");\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n let q = delta;\n for (let k = base /* no condition */; ; k += base) {\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + (qMinusT % baseMinusT), 0)),\n );\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(\n delta,\n handledCPCountPlusOne,\n handledCPCount == basicLength,\n );\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join(\"\");\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function (input: string) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string)\n ? decode(string.slice(4).toLowerCase())\n : string;\n });\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function (input: string) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n });\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nexport const punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n version: \"2.1.0\",\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n ucs2: {\n decode: ucs2decode,\n encode: ucs2encode,\n },\n decode: decode,\n encode: encode,\n toASCII: toASCII,\n toUnicode: toUnicode,\n};\n", "/*\nThe MIT License (MIT)\n\nCopyright (c) Sebastian Mayr\nCopyright (c) 2022 Taler Systems S.A.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// Vendored with modifications (TypeScript etc.) from https://github.com/jsdom/whatwg-url\n\nconst utf8Encoder = new TextEncoder();\nconst utf8Decoder = new TextDecoder(\"utf-8\", { ignoreBOM: true });\n\nfunction utf8Encode(string: string | undefined) {\n return utf8Encoder.encode(string);\n}\n\nfunction utf8DecodeWithoutBOM(\n bytes: DataView | ArrayBuffer | null | undefined,\n) {\n return utf8Decoder.decode(bytes);\n}\n\n// https://url.spec.whatwg.org/#concept-urlencoded-parser\nfunction parseUrlencoded(input: Uint8Array) {\n const sequences = strictlySplitByteSequence(input, p(\"&\"));\n const output = [];\n for (const bytes of sequences) {\n if (bytes.length === 0) {\n continue;\n }\n\n let name, value;\n const indexOfEqual = bytes.indexOf(p(\"=\")!);\n\n if (indexOfEqual >= 0) {\n name = bytes.slice(0, indexOfEqual);\n value = bytes.slice(indexOfEqual + 1);\n } else {\n name = bytes;\n value = new Uint8Array(0);\n }\n\n name = replaceByteInByteSequence(name, 0x2b, 0x20);\n value = replaceByteInByteSequence(value, 0x2b, 0x20);\n\n const nameString = utf8DecodeWithoutBOM(percentDecodeBytes(name));\n const valueString = utf8DecodeWithoutBOM(percentDecodeBytes(value));\n\n output.push([nameString, valueString]);\n }\n return output;\n}\n\n// https://url.spec.whatwg.org/#concept-urlencoded-string-parser\nfunction parseUrlencodedString(input: string | undefined) {\n return parseUrlencoded(utf8Encode(input));\n}\n\n// https://url.spec.whatwg.org/#concept-urlencoded-serializer\nfunction serializeUrlencoded(tuples: any[], encodingOverride = undefined) {\n let encoding = \"utf-8\";\n if (encodingOverride !== undefined) {\n // TODO \"get the output encoding\", i.e. handle encoding labels vs. names.\n encoding = encodingOverride;\n }\n\n let output = \"\";\n for (const [i, tuple] of tuples.entries()) {\n // TODO: handle encoding override\n\n const name = utf8PercentEncodeString(\n tuple[0],\n isURLEncodedPercentEncode,\n true,\n );\n\n let value = tuple[1];\n if (tuple.length > 2 && tuple[2] !== undefined) {\n if (tuple[2] === \"hidden\" && name === \"_charset_\") {\n value = encoding;\n } else if (tuple[2] === \"file\") {\n // value is a File object\n value = value.name;\n }\n }\n\n value = utf8PercentEncodeString(value, isURLEncodedPercentEncode, true);\n\n if (i !== 0) {\n output += \"&\";\n }\n output += `${name}=${value}`;\n }\n return output;\n}\n\nfunction strictlySplitByteSequence(buf: Uint8Array, cp: any) {\n const list = [];\n let last = 0;\n let i = buf.indexOf(cp);\n while (i >= 0) {\n list.push(buf.slice(last, i));\n last = i + 1;\n i = buf.indexOf(cp, last);\n }\n if (last !== buf.length) {\n list.push(buf.slice(last));\n }\n return list;\n}\n\nfunction replaceByteInByteSequence(buf: Uint8Array, from: number, to: number) {\n let i = buf.indexOf(from);\n while (i >= 0) {\n buf[i] = to;\n i = buf.indexOf(from, i + 1);\n }\n return buf;\n}\n\nfunction p(char: string) {\n return char.codePointAt(0);\n}\n\n// https://url.spec.whatwg.org/#percent-encode\nfunction percentEncode(c: number) {\n let hex = c.toString(16).toUpperCase();\n if (hex.length === 1) {\n hex = `0${hex}`;\n }\n\n return `%${hex}`;\n}\n\n// https://url.spec.whatwg.org/#percent-decode\nfunction percentDecodeBytes(input: Uint8Array) {\n const output = new Uint8Array(input.byteLength);\n let outputIndex = 0;\n for (let i = 0; i < input.byteLength; ++i) {\n const byte = input[i];\n if (byte !== 0x25) {\n output[outputIndex++] = byte;\n } else if (\n byte === 0x25 &&\n (!isASCIIHex(input[i + 1]) || !isASCIIHex(input[i + 2]))\n ) {\n output[outputIndex++] = byte;\n } else {\n const bytePoint = parseInt(\n String.fromCodePoint(input[i + 1], input[i + 2]),\n 16,\n );\n output[outputIndex++] = bytePoint;\n i += 2;\n }\n }\n\n return output.slice(0, outputIndex);\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\nfunction percentDecodeString(input: string) {\n const bytes = utf8Encode(input);\n return percentDecodeBytes(bytes);\n}\n\n// https://url.spec.whatwg.org/#c0-control-percent-encode-set\nfunction isC0ControlPercentEncode(c: number) {\n return c <= 0x1f || c > 0x7e;\n}\n\n// https://url.spec.whatwg.org/#fragment-percent-encode-set\nconst extraFragmentPercentEncodeSet = new Set([\n p(\" \"),\n p('\"'),\n p(\"<\"),\n p(\">\"),\n p(\"`\"),\n]);\n\nfunction isFragmentPercentEncode(c: number) {\n return isC0ControlPercentEncode(c) || extraFragmentPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#query-percent-encode-set\nconst extraQueryPercentEncodeSet = new Set([\n p(\" \"),\n p('\"'),\n p(\"#\"),\n p(\"<\"),\n p(\">\"),\n]);\n\nfunction isQueryPercentEncode(c: number) {\n return isC0ControlPercentEncode(c) || extraQueryPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#special-query-percent-encode-set\nfunction isSpecialQueryPercentEncode(c: number) {\n return isQueryPercentEncode(c) || c === p(\"'\");\n}\n\n// https://url.spec.whatwg.org/#path-percent-encode-set\nconst extraPathPercentEncodeSet = new Set([p(\"?\"), p(\"`\"), p(\"{\"), p(\"}\")]);\nfunction isPathPercentEncode(c: number) {\n return isQueryPercentEncode(c) || extraPathPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#userinfo-percent-encode-set\nconst extraUserinfoPercentEncodeSet = new Set([\n p(\"/\"),\n p(\":\"),\n p(\";\"),\n p(\"=\"),\n p(\"@\"),\n p(\"[\"),\n p(\"\\\\\"),\n p(\"]\"),\n p(\"^\"),\n p(\"|\"),\n]);\nfunction isUserinfoPercentEncode(c: number) {\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#component-percent-encode-set\nconst extraComponentPercentEncodeSet = new Set([\n p(\"$\"),\n p(\"%\"),\n p(\"&\"),\n p(\"+\"),\n p(\",\"),\n]);\nfunction isComponentPercentEncode(c: number) {\n return isUserinfoPercentEncode(c) || extraComponentPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#application-x-www-form-urlencoded-percent-encode-set\nconst extraURLEncodedPercentEncodeSet = new Set([\n p(\"!\"),\n p(\"'\"),\n p(\"(\"),\n p(\")\"),\n p(\"~\"),\n]);\n\nfunction isURLEncodedPercentEncode(c: number) {\n return isComponentPercentEncode(c) || extraURLEncodedPercentEncodeSet.has(c);\n}\n\n// https://url.spec.whatwg.org/#code-point-percent-encode-after-encoding\n// https://url.spec.whatwg.org/#utf-8-percent-encode\n// Assuming encoding is always utf-8 allows us to trim one of the logic branches. TODO: support encoding.\n// The \"-Internal\" variant here has code points as JS strings. The external version used by other files has code points\n// as JS numbers, like the rest of the codebase.\nfunction utf8PercentEncodeCodePointInternal(\n codePoint: string,\n percentEncodePredicate: (arg0: number) => any,\n) {\n const bytes = utf8Encode(codePoint);\n let output = \"\";\n for (const byte of bytes) {\n // Our percentEncodePredicate operates on bytes, not code points, so this is slightly different from the spec.\n if (!percentEncodePredicate(byte)) {\n output += String.fromCharCode(byte);\n } else {\n output += percentEncode(byte);\n }\n }\n\n return output;\n}\n\nfunction utf8PercentEncodeCodePoint(\n codePoint: number,\n percentEncodePredicate: (arg0: number) => any,\n) {\n return utf8PercentEncodeCodePointInternal(\n String.fromCodePoint(codePoint),\n percentEncodePredicate,\n );\n}\n\n// https://url.spec.whatwg.org/#string-percent-encode-after-encoding\n// https://url.spec.whatwg.org/#string-utf-8-percent-encode\nfunction utf8PercentEncodeString(\n input: string,\n percentEncodePredicate: {\n (c: number): boolean;\n (c: number): boolean;\n (arg0: number): any;\n },\n spaceAsPlus = false,\n) {\n let output = \"\";\n for (const codePoint of input) {\n if (spaceAsPlus && codePoint === \" \") {\n output += \"+\";\n } else {\n output += utf8PercentEncodeCodePointInternal(\n codePoint,\n percentEncodePredicate,\n );\n }\n }\n return output;\n}\n\n// Note that we take code points as JS numbers, not JS strings.\n\nfunction isASCIIDigit(c: number) {\n return c >= 0x30 && c <= 0x39;\n}\n\nfunction isASCIIAlpha(c: number) {\n return (c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a);\n}\n\nfunction isASCIIAlphanumeric(c: number) {\n return isASCIIAlpha(c) || isASCIIDigit(c);\n}\n\nfunction isASCIIHex(c: number) {\n return (\n isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66)\n );\n}\n\nexport class URLSearchParamsImpl {\n _list: any[];\n _url: any;\n constructor(init: any, { doNotStripQMark = false }: any = {}) {\n this._list = [];\n this._url = null;\n\n if (!doNotStripQMark && typeof init === \"string\" && init[0] === \"?\") {\n init = init.slice(1);\n }\n\n if (Array.isArray(init)) {\n for (const pair of init) {\n if (pair.length !== 2) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1 sequence's element does not \" +\n \"contain exactly two elements.\",\n );\n }\n this._list.push([pair[0], pair[1]]);\n }\n } else if (\n typeof init === \"object\" &&\n Object.getPrototypeOf(init) === null\n ) {\n for (const name of Object.keys(init)) {\n const value = init[name];\n this._list.push([name, value]);\n }\n } else {\n this._list = parseUrlencodedString(init);\n }\n }\n\n _updateSteps() {\n if (this._url !== null) {\n let query: string | null = serializeUrlencoded(this._list);\n if (query === \"\") {\n query = null;\n }\n this._url._url.query = query;\n }\n }\n\n append(name: string, value: string) {\n this._list.push([name, value]);\n this._updateSteps();\n }\n\n delete(name: string) {\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n this._list.splice(i, 1);\n } else {\n i++;\n }\n }\n this._updateSteps();\n }\n\n get(name: string) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return tuple[1];\n }\n }\n return null;\n }\n\n getAll(name: string) {\n const output = [];\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n output.push(tuple[1]);\n }\n }\n return output;\n }\n\n forEach(\n callbackfn: (\n value: string,\n key: string,\n parent: URLSearchParamsImpl,\n ) => void,\n thisArg?: any,\n ): void {\n for (const tuple of this._list) {\n callbackfn.call(thisArg, tuple[1], tuple[0], this);\n }\n }\n\n has(name: string) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return true;\n }\n }\n return false;\n }\n\n set(name: string, value: string) {\n let found = false;\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n if (found) {\n this._list.splice(i, 1);\n } else {\n found = true;\n this._list[i][1] = value;\n i++;\n }\n } else {\n i++;\n }\n }\n if (!found) {\n this._list.push([name, value]);\n }\n this._updateSteps();\n }\n\n sort() {\n this._list.sort((a, b) => {\n if (a[0] < b[0]) {\n return -1;\n }\n if (a[0] > b[0]) {\n return 1;\n }\n return 0;\n });\n\n this._updateSteps();\n }\n\n [Symbol.iterator]() {\n return this._list[Symbol.iterator]();\n }\n\n toString() {\n return serializeUrlencoded(this._list);\n }\n}\n\nconst specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n} as { [x: string]: number | null };\n\nconst failure = Symbol(\"failure\");\n\nfunction countSymbols(str: any) {\n return [...str].length;\n}\n\nfunction at(input: any, idx: any) {\n const c = input[idx];\n return isNaN(c) ? undefined : String.fromCodePoint(c);\n}\n\nfunction isSingleDot(buffer: string) {\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\n}\n\nfunction isDoubleDot(buffer: string) {\n buffer = buffer.toLowerCase();\n return (\n buffer === \"..\" ||\n buffer === \"%2e.\" ||\n buffer === \".%2e\" ||\n buffer === \"%2e%2e\"\n );\n}\n\nfunction isWindowsDriveLetterCodePoints(cp1: number, cp2: number) {\n return isASCIIAlpha(cp1) && (cp2 === p(\":\") || cp2 === p(\"|\"));\n}\n\nfunction isWindowsDriveLetterString(string: string) {\n return (\n string.length === 2 &&\n isASCIIAlpha(string.codePointAt(0)!) &&\n (string[1] === \":\" || string[1] === \"|\")\n );\n}\n\nfunction isNormalizedWindowsDriveLetterString(string: string) {\n return (\n string.length === 2 &&\n isASCIIAlpha(string.codePointAt(0)!) &&\n string[1] === \":\"\n );\n}\n\nfunction containsForbiddenHostCodePoint(string: string) {\n return (\n string.search(\n /\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|<|>|\\?|@|\\[|\\\\|\\]|\\^|\\|/u,\n ) !== -1\n );\n}\n\nfunction containsForbiddenDomainCodePoint(string: string) {\n return (\n containsForbiddenHostCodePoint(string) ||\n string.search(/[\\u0000-\\u001F]|%|\\u007F/u) !== -1\n );\n}\n\nfunction isSpecialScheme(scheme: string) {\n return specialSchemes[scheme] !== undefined;\n}\n\nfunction isSpecial(url: any) {\n return isSpecialScheme(url.scheme);\n}\n\nfunction isNotSpecial(url: UrlObj) {\n return !isSpecialScheme(url.scheme);\n}\n\nfunction defaultPort(scheme: string) {\n return specialSchemes[scheme];\n}\n\nfunction parseIPv4Number(input: string) {\n if (input === \"\") {\n return failure;\n }\n\n let R = 10;\n\n if (\n input.length >= 2 &&\n input.charAt(0) === \"0\" &&\n input.charAt(1).toLowerCase() === \"x\"\n ) {\n input = input.substring(2);\n R = 16;\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\n input = input.substring(1);\n R = 8;\n }\n\n if (input === \"\") {\n return 0;\n }\n\n let regex = /[^0-7]/u;\n if (R === 10) {\n regex = /[^0-9]/u;\n }\n if (R === 16) {\n regex = /[^0-9A-Fa-f]/u;\n }\n\n if (regex.test(input)) {\n return failure;\n }\n\n return parseInt(input, R);\n}\n\nfunction parseIPv4(input: string) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length > 1) {\n parts.pop();\n }\n }\n\n if (parts.length > 4) {\n return failure;\n }\n\n const numbers = [];\n for (const part of parts) {\n const n = parseIPv4Number(part);\n if (n === failure) {\n return failure;\n }\n\n numbers.push(n);\n }\n\n for (let i = 0; i < numbers.length - 1; ++i) {\n if (numbers[i] > 255) {\n return failure;\n }\n }\n if (numbers[numbers.length - 1] >= 256 ** (5 - numbers.length)) {\n return failure;\n }\n\n let ipv4 = numbers.pop();\n let counter = 0;\n\n for (const n of numbers) {\n ipv4! += n * 256 ** (3 - counter);\n ++counter;\n }\n\n return ipv4;\n}\n\nfunction serializeIPv4(address: number) {\n let output = \"\";\n let n = address;\n\n for (let i = 1; i <= 4; ++i) {\n output = String(n % 256) + output;\n if (i !== 4) {\n output = `.${output}`;\n }\n n = Math.floor(n / 256);\n }\n\n return output;\n}\n\nfunction parseIPv6(inputArg: string) {\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\n let pieceIndex = 0;\n let compress = null;\n let pointer = 0;\n\n const input = Array.from(inputArg, (c) => c.codePointAt(0));\n\n if (input[pointer] === p(\":\")) {\n if (input[pointer + 1] !== p(\":\")) {\n return failure;\n }\n\n pointer += 2;\n ++pieceIndex;\n compress = pieceIndex;\n }\n\n while (pointer < input.length) {\n if (pieceIndex === 8) {\n return failure;\n }\n\n if (input[pointer] === p(\":\")) {\n if (compress !== null) {\n return failure;\n }\n ++pointer;\n ++pieceIndex;\n compress = pieceIndex;\n continue;\n }\n\n let value = 0;\n let length = 0;\n\n while (length < 4 && isASCIIHex(input[pointer]!)) {\n value = value * 0x10 + parseInt(at(input, pointer)!, 16);\n ++pointer;\n ++length;\n }\n\n if (input[pointer] === p(\".\")) {\n if (length === 0) {\n return failure;\n }\n\n pointer -= length;\n\n if (pieceIndex > 6) {\n return failure;\n }\n\n let numbersSeen = 0;\n\n while (input[pointer] !== undefined) {\n let ipv4Piece = null;\n\n if (numbersSeen > 0) {\n if (input[pointer] === p(\".\") && numbersSeen < 4) {\n ++pointer;\n } else {\n return failure;\n }\n }\n\n if (!isASCIIDigit(input[pointer]!)) {\n return failure;\n }\n\n while (isASCIIDigit(input[pointer]!)) {\n const number = parseInt(at(input, pointer)!);\n if (ipv4Piece === null) {\n ipv4Piece = number;\n } else if (ipv4Piece === 0) {\n return failure;\n } else {\n ipv4Piece = ipv4Piece * 10 + number;\n }\n if (ipv4Piece > 255) {\n return failure;\n }\n ++pointer;\n }\n\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece!;\n\n ++numbersSeen;\n\n if (numbersSeen === 2 || numbersSeen === 4) {\n ++pieceIndex;\n }\n }\n\n if (numbersSeen !== 4) {\n return failure;\n }\n\n break;\n } else if (input[pointer] === p(\":\")) {\n ++pointer;\n if (input[pointer] === undefined) {\n return failure;\n }\n } else if (input[pointer] !== undefined) {\n return failure;\n }\n\n address[pieceIndex] = value;\n ++pieceIndex;\n }\n\n if (compress !== null) {\n let swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n const temp = address[compress + swaps - 1];\n address[compress + swaps - 1] = address[pieceIndex];\n address[pieceIndex] = temp;\n --pieceIndex;\n --swaps;\n }\n } else if (compress === null && pieceIndex !== 8) {\n return failure;\n }\n\n return address;\n}\n\nfunction serializeIPv6(address: any[]) {\n let output = \"\";\n const compress = findLongestZeroSequence(address);\n let ignore0 = false;\n\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\n if (ignore0 && address[pieceIndex] === 0) {\n continue;\n } else if (ignore0) {\n ignore0 = false;\n }\n\n if (compress === pieceIndex) {\n const separator = pieceIndex === 0 ? \"::\" : \":\";\n output += separator;\n ignore0 = true;\n continue;\n }\n\n output += address[pieceIndex].toString(16);\n\n if (pieceIndex !== 7) {\n output += \":\";\n }\n }\n\n return output;\n}\n\nfunction parseHost(input: string, isNotSpecialArg = false) {\n if (input[0] === \"[\") {\n if (input[input.length - 1] !== \"]\") {\n return failure;\n }\n\n return parseIPv6(input.substring(1, input.length - 1));\n }\n\n if (isNotSpecialArg) {\n return parseOpaqueHost(input);\n }\n\n const domain = utf8DecodeWithoutBOM(percentDecodeString(input));\n const asciiDomain = domainToASCII(domain);\n if (asciiDomain === failure) {\n return failure;\n }\n\n if (containsForbiddenDomainCodePoint(asciiDomain)) {\n return failure;\n }\n\n if (endsInANumber(asciiDomain)) {\n return parseIPv4(asciiDomain);\n }\n\n return asciiDomain;\n}\n\nfunction endsInANumber(input: string) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length === 1) {\n return false;\n }\n parts.pop();\n }\n\n const last = parts[parts.length - 1];\n if (parseIPv4Number(last) !== failure) {\n return true;\n }\n\n if (/^[0-9]+$/u.test(last)) {\n return true;\n }\n\n return false;\n}\n\nfunction parseOpaqueHost(input: string) {\n if (containsForbiddenHostCodePoint(input)) {\n return failure;\n }\n\n return utf8PercentEncodeString(input, isC0ControlPercentEncode);\n}\n\nfunction findLongestZeroSequence(arr: number[]) {\n let maxIdx = null;\n let maxLen = 1; // only find elements > 1\n let currStart = null;\n let currLen = 0;\n\n for (let i = 0; i < arr.length; ++i) {\n if (arr[i] !== 0) {\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n currStart = null;\n currLen = 0;\n } else {\n if (currStart === null) {\n currStart = i;\n }\n ++currLen;\n }\n }\n\n // if trailing zeros\n if (currLen > maxLen) {\n return currStart;\n }\n\n return maxIdx;\n}\n\nfunction serializeHost(host: number | number[] | string) {\n if (typeof host === \"number\") {\n return serializeIPv4(host);\n }\n\n // IPv6 serializer\n if (host instanceof Array) {\n return `[${serializeIPv6(host)}]`;\n }\n\n return host;\n}\n\nimport { punycode } from \"./punycode.js\";\n\nfunction domainToASCII(domain: string, beStrict = false) {\n // const result = tr46.toASCII(domain, {\n // checkBidi: true,\n // checkHyphens: false,\n // checkJoiners: true,\n // useSTD3ASCIIRules: beStrict,\n // verifyDNSLength: beStrict,\n // });\n let result;\n try {\n result = punycode.toASCII(domain);\n } catch (e) {\n return failure;\n }\n if (result === null || result === \"\") {\n return failure;\n }\n return result;\n}\n\nfunction trimControlChars(url: string) {\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/gu, \"\");\n}\n\nfunction trimTabAndNewline(url: string) {\n return url.replace(/\\u0009|\\u000A|\\u000D/gu, \"\");\n}\n\nfunction shortenPath(url: UrlObj) {\n const { path } = url;\n if (path.length === 0) {\n return;\n }\n if (\n url.scheme === \"file\" &&\n path.length === 1 &&\n isNormalizedWindowsDriveLetter(path[0])\n ) {\n return;\n }\n\n path.pop();\n}\n\nfunction includesCredentials(url: UrlObj) {\n return url.username !== \"\" || url.password !== \"\";\n}\n\nfunction cannotHaveAUsernamePasswordPort(url: UrlObj) {\n return url.host === null || url.host === \"\" || url.scheme === \"file\";\n}\n\nfunction hasAnOpaquePath(url: UrlObj) {\n return typeof url.path === \"string\";\n}\n\nfunction isNormalizedWindowsDriveLetter(string: string) {\n return /^[A-Za-z]:$/u.test(string);\n}\n\nexport interface UrlObj {\n scheme: string;\n username: string;\n password: string;\n host: string | number[] | number | null | undefined;\n port: number | null;\n path: string[];\n query: any;\n fragment: any;\n}\n\nclass URLStateMachine {\n pointer: number;\n input: number[];\n base: any;\n encodingOverride: string;\n url: UrlObj;\n state: string;\n stateOverride: string;\n failure: boolean;\n parseError: boolean;\n buffer: string;\n atFlag: boolean;\n arrFlag: boolean;\n passwordTokenSeenFlag: boolean;\n\n constructor(\n input: string,\n base: any,\n encodingOverride: string,\n url: UrlObj,\n stateOverride: string,\n ) {\n this.pointer = 0;\n this.base = base || null;\n this.encodingOverride = encodingOverride || \"utf-8\";\n this.url = url;\n this.failure = false;\n this.parseError = false;\n\n if (!this.url) {\n this.url = {\n scheme: \"\",\n username: \"\",\n password: \"\",\n host: null,\n port: null,\n path: [],\n query: null,\n fragment: null,\n };\n\n const res = trimControlChars(input);\n if (res !== input) {\n this.parseError = true;\n }\n input = res;\n }\n\n const res = trimTabAndNewline(input);\n if (res !== input) {\n this.parseError = true;\n }\n input = res;\n\n this.state = stateOverride || \"scheme start\";\n\n this.buffer = \"\";\n this.atFlag = false;\n this.arrFlag = false;\n this.passwordTokenSeenFlag = false;\n\n this.input = Array.from(input, (c) => c.codePointAt(0)!);\n\n for (; this.pointer <= this.input.length; ++this.pointer) {\n const c = this.input[this.pointer];\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\n\n // exec state machine\n const ret = this.table[`parse ${this.state}`].call(this, c, cStr!);\n if (!ret) {\n break; // terminate algorithm\n } else if (ret === failure) {\n this.failure = true;\n break;\n }\n }\n }\n\n table = {\n \"parse scheme start\": this.parseSchemeStart,\n \"parse scheme\": this.parseScheme,\n \"parse no scheme\": this.parseNoScheme,\n \"parse special relative or authority\": this.parseSpecialRelativeOrAuthority,\n \"parse path or authority\": this.parsePathOrAuthority,\n \"parse relative\": this.parseRelative,\n \"parse relative slash\": this.parseRelativeSlash,\n \"parse special authority slashes\": this.parseSpecialAuthoritySlashes,\n \"parse special authority ignore slashes\":\n this.parseSpecialAuthorityIgnoreSlashes,\n \"parse authority\": this.parseAuthority,\n \"parse host\": this.parseHostName,\n \"parse hostname\": this.parseHostName /* intentional duplication */,\n \"parse port\": this.parsePort,\n \"parse file\": this.parseFile,\n \"parse file slash\": this.parseFileSlash,\n \"parse file host\": this.parseFileHost,\n \"parse path start\": this.parsePathStart,\n \"parse path\": this.parsePath,\n \"parse opaque path\": this.parseOpaquePath,\n \"parse query\": this.parseQuery,\n \"parse fragment\": this.parseFragment,\n } as { [x: string]: (c: number, cStr: string) => any };\n\n parseSchemeStart(c: number, cStr: string) {\n if (isASCIIAlpha(c)) {\n this.buffer += cStr.toLowerCase();\n this.state = \"scheme\";\n } else if (!this.stateOverride) {\n this.state = \"no scheme\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n }\n\n parseScheme(c: number, cStr: string) {\n if (\n isASCIIAlphanumeric(c) ||\n c === p(\"+\") ||\n c === p(\"-\") ||\n c === p(\".\")\n ) {\n this.buffer += cStr.toLowerCase();\n } else if (c === p(\":\")) {\n if (this.stateOverride) {\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (\n (includesCredentials(this.url) || this.url.port !== null) &&\n this.buffer === \"file\"\n ) {\n return false;\n }\n\n if (this.url.scheme === \"file\" && this.url.host === \"\") {\n return false;\n }\n }\n this.url.scheme = this.buffer;\n if (this.stateOverride) {\n if (this.url.port === defaultPort(this.url.scheme)) {\n this.url.port = null;\n }\n return false;\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\") {\n if (\n this.input[this.pointer + 1] !== p(\"/\") ||\n this.input[this.pointer + 2] !== p(\"/\")\n ) {\n this.parseError = true;\n }\n this.state = \"file\";\n } else if (\n isSpecial(this.url) &&\n this.base !== null &&\n this.base.scheme === this.url.scheme\n ) {\n this.state = \"special relative or authority\";\n } else if (isSpecial(this.url)) {\n this.state = \"special authority slashes\";\n } else if (this.input[this.pointer + 1] === p(\"/\")) {\n this.state = \"path or authority\";\n ++this.pointer;\n } else {\n this.url.path = [\"\"];\n this.state = \"opaque path\";\n }\n } else if (!this.stateOverride) {\n this.buffer = \"\";\n this.state = \"no scheme\";\n this.pointer = -1;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n }\n\n parseNoScheme(c: number) {\n if (this.base === null || (hasAnOpaquePath(this.base) && c !== p(\"#\"))) {\n return failure;\n } else if (hasAnOpaquePath(this.base) && c === p(\"#\")) {\n this.url.scheme = this.base.scheme;\n this.url.path = this.base.path;\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (this.base.scheme === \"file\") {\n this.state = \"file\";\n --this.pointer;\n } else {\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseSpecialRelativeOrAuthority(c: number) {\n if (c === p(\"/\") && this.input[this.pointer + 1] === p(\"/\")) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n }\n\n parsePathOrAuthority(c: number) {\n if (c === p(\"/\")) {\n this.state = \"authority\";\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseRelative(c: number) {\n this.url.scheme = this.base.scheme;\n if (c === p(\"/\")) {\n this.state = \"relative slash\";\n } else if (isSpecial(this.url) && c === p(\"\\\\\")) {\n this.parseError = true;\n this.state = \"relative slash\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (!isNaN(c)) {\n this.url.query = null;\n this.url.path.pop();\n this.state = \"path\";\n --this.pointer;\n }\n }\n\n return true;\n }\n\n parseRelativeSlash(c: number) {\n if (isSpecial(this.url) && (c === p(\"/\") || c === p(\"\\\\\"))) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"special authority ignore slashes\";\n } else if (c === p(\"/\")) {\n this.state = \"authority\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseSpecialAuthoritySlashes(c: number) {\n if (c === p(\"/\") && this.input[this.pointer + 1] === p(\"/\")) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"special authority ignore slashes\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseSpecialAuthorityIgnoreSlashes(c: number) {\n if (c !== p(\"/\") && c !== p(\"\\\\\")) {\n this.state = \"authority\";\n --this.pointer;\n } else {\n this.parseError = true;\n }\n\n return true;\n }\n\n parseAuthority(c: number, cStr: string) {\n if (c === p(\"@\")) {\n this.parseError = true;\n if (this.atFlag) {\n this.buffer = `%40${this.buffer}`;\n }\n this.atFlag = true;\n\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\n const len = countSymbols(this.buffer);\n for (let pointer = 0; pointer < len; ++pointer) {\n const codePoint = this.buffer.codePointAt(pointer);\n\n if (codePoint === p(\":\") && !this.passwordTokenSeenFlag) {\n this.passwordTokenSeenFlag = true;\n continue;\n }\n const encodedCodePoints = utf8PercentEncodeCodePoint(\n codePoint!,\n isUserinfoPercentEncode,\n );\n if (this.passwordTokenSeenFlag) {\n this.url.password += encodedCodePoints;\n } else {\n this.url.username += encodedCodePoints;\n }\n }\n this.buffer = \"\";\n } else if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"?\") ||\n c === p(\"#\") ||\n (isSpecial(this.url) && c === p(\"\\\\\"))\n ) {\n if (this.atFlag && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n this.pointer -= countSymbols(this.buffer) + 1;\n this.buffer = \"\";\n this.state = \"host\";\n } else {\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parseHostName(c: number, cStr: string) {\n if (this.stateOverride && this.url.scheme === \"file\") {\n --this.pointer;\n this.state = \"file host\";\n } else if (c === p(\":\") && !this.arrFlag) {\n if (this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n\n if (this.stateOverride === \"hostname\") {\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"port\";\n } else if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"?\") ||\n c === p(\"#\") ||\n (isSpecial(this.url) && c === p(\"\\\\\"))\n ) {\n --this.pointer;\n if (isSpecial(this.url) && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n } else if (\n this.stateOverride &&\n this.buffer === \"\" &&\n (includesCredentials(this.url) || this.url.port !== null)\n ) {\n this.parseError = true;\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"path start\";\n if (this.stateOverride) {\n return false;\n }\n } else {\n if (c === p(\"[\")) {\n this.arrFlag = true;\n } else if (c === p(\"]\")) {\n this.arrFlag = false;\n }\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parsePort(c: number, cStr: any) {\n if (isASCIIDigit(c)) {\n this.buffer += cStr;\n } else if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"?\") ||\n c === p(\"#\") ||\n (isSpecial(this.url) && c === p(\"\\\\\")) ||\n this.stateOverride\n ) {\n if (this.buffer !== \"\") {\n const port = parseInt(this.buffer);\n if (port > 2 ** 16 - 1) {\n this.parseError = true;\n return failure;\n }\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\n this.buffer = \"\";\n }\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n }\n\n parseFile(c: number) {\n this.url.scheme = \"file\";\n this.url.host = \"\";\n\n if (c === p(\"/\") || c === p(\"\\\\\")) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"file slash\";\n } else if (this.base !== null && this.base.scheme === \"file\") {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (!isNaN(c)) {\n this.url.query = null;\n if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {\n shortenPath(this.url);\n } else {\n this.parseError = true;\n this.url.path = [];\n }\n\n this.state = \"path\";\n --this.pointer;\n }\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseFileSlash(c: number) {\n if (c === p(\"/\") || c === p(\"\\\\\")) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"file host\";\n } else {\n if (this.base !== null && this.base.scheme === \"file\") {\n if (\n !startsWithWindowsDriveLetter(this.input, this.pointer) &&\n isNormalizedWindowsDriveLetterString(this.base.path[0])\n ) {\n this.url.path.push(this.base.path[0]);\n }\n this.url.host = this.base.host;\n }\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n }\n\n parseFileHost(c: number, cStr: string) {\n if (\n isNaN(c) ||\n c === p(\"/\") ||\n c === p(\"\\\\\") ||\n c === p(\"?\") ||\n c === p(\"#\")\n ) {\n --this.pointer;\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\n this.parseError = true;\n this.state = \"path\";\n } else if (this.buffer === \"\") {\n this.url.host = \"\";\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n } else {\n let host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n if (host === \"localhost\") {\n host = \"\";\n }\n this.url.host = host as any;\n\n if (this.stateOverride) {\n return false;\n }\n\n this.buffer = \"\";\n this.state = \"path start\";\n }\n } else {\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parsePathStart(c: number) {\n if (isSpecial(this.url)) {\n if (c === p(\"\\\\\")) {\n this.parseError = true;\n }\n this.state = \"path\";\n\n if (c !== p(\"/\") && c !== p(\"\\\\\")) {\n --this.pointer;\n }\n } else if (!this.stateOverride && c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (!this.stateOverride && c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (c !== undefined) {\n this.state = \"path\";\n if (c !== p(\"/\")) {\n --this.pointer;\n }\n } else if (this.stateOverride && this.url.host === null) {\n this.url.path.push(\"\");\n }\n\n return true;\n }\n\n parsePath(c: number) {\n if (\n isNaN(c) ||\n c === p(\"/\") ||\n (isSpecial(this.url) && c === p(\"\\\\\")) ||\n (!this.stateOverride && (c === p(\"?\") || c === p(\"#\")))\n ) {\n if (isSpecial(this.url) && c === p(\"\\\\\")) {\n this.parseError = true;\n }\n\n if (isDoubleDot(this.buffer)) {\n shortenPath(this.url);\n if (c !== p(\"/\") && !(isSpecial(this.url) && c === p(\"\\\\\"))) {\n this.url.path.push(\"\");\n }\n } else if (\n isSingleDot(this.buffer) &&\n c !== p(\"/\") &&\n !(isSpecial(this.url) && c === p(\"\\\\\"))\n ) {\n this.url.path.push(\"\");\n } else if (!isSingleDot(this.buffer)) {\n if (\n this.url.scheme === \"file\" &&\n this.url.path.length === 0 &&\n isWindowsDriveLetterString(this.buffer)\n ) {\n this.buffer = `${this.buffer[0]}:`;\n }\n this.url.path.push(this.buffer);\n }\n this.buffer = \"\";\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n }\n if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n this.buffer += utf8PercentEncodeCodePoint(c, isPathPercentEncode);\n }\n\n return true;\n }\n\n parseOpaquePath(c: number) {\n if (c === p(\"?\")) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n // TODO: Add: not a URL code point\n if (!isNaN(c) && c !== p(\"%\")) {\n this.parseError = true;\n }\n\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n if (!isNaN(c)) {\n // @ts-ignore\n this.url.path += utf8PercentEncodeCodePoint(\n c,\n isC0ControlPercentEncode,\n );\n }\n }\n\n return true;\n }\n\n parseQuery(c: number, cStr: string) {\n if (\n !isSpecial(this.url) ||\n this.url.scheme === \"ws\" ||\n this.url.scheme === \"wss\"\n ) {\n this.encodingOverride = \"utf-8\";\n }\n\n if ((!this.stateOverride && c === p(\"#\")) || isNaN(c)) {\n const queryPercentEncodePredicate = isSpecial(this.url)\n ? isSpecialQueryPercentEncode\n : isQueryPercentEncode;\n this.url.query += utf8PercentEncodeString(\n this.buffer,\n queryPercentEncodePredicate,\n );\n\n this.buffer = \"\";\n\n if (c === p(\"#\")) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else if (!isNaN(c)) {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n this.buffer += cStr;\n }\n\n return true;\n }\n\n parseFragment(c: number) {\n if (!isNaN(c)) {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (\n c === p(\"%\") &&\n (!isASCIIHex(this.input[this.pointer + 1]) ||\n !isASCIIHex(this.input[this.pointer + 2]))\n ) {\n this.parseError = true;\n }\n\n this.url.fragment += utf8PercentEncodeCodePoint(\n c,\n isFragmentPercentEncode,\n );\n }\n\n return true;\n }\n}\n\nconst fileOtherwiseCodePoints = new Set([p(\"/\"), p(\"\\\\\"), p(\"?\"), p(\"#\")]);\n\nfunction startsWithWindowsDriveLetter(input: number[], pointer: number) {\n const length = input.length - pointer;\n return (\n length >= 2 &&\n isWindowsDriveLetterCodePoints(input[pointer], input[pointer + 1]) &&\n (length === 2 || fileOtherwiseCodePoints.has(input[pointer + 2]))\n );\n}\n\nfunction serializeURL(url: any, excludeFragment?: boolean) {\n let output = `${url.scheme}:`;\n if (url.host !== null) {\n output += \"//\";\n\n if (url.username !== \"\" || url.password !== \"\") {\n output += url.username;\n if (url.password !== \"\") {\n output += `:${url.password}`;\n }\n output += \"@\";\n }\n\n output += serializeHost(url.host);\n\n if (url.port !== null) {\n output += `:${url.port}`;\n }\n }\n\n if (\n url.host === null &&\n !hasAnOpaquePath(url) &&\n url.path.length > 1 &&\n url.path[0] === \"\"\n ) {\n output += \"/.\";\n }\n output += serializePath(url);\n\n if (url.query !== null) {\n output += `?${url.query}`;\n }\n\n if (!excludeFragment && url.fragment !== null) {\n output += `#${url.fragment}`;\n }\n\n return output;\n}\n\nfunction serializeOrigin(tuple: {\n scheme: string;\n port: number;\n host: number | number[] | string;\n}) {\n let result = `${tuple.scheme}://`;\n result += serializeHost(tuple.host);\n\n if (tuple.port !== null) {\n result += `:${tuple.port}`;\n }\n\n return result;\n}\n\nfunction serializePath(url: UrlObj): string {\n if (typeof url.path === \"string\") {\n return url.path;\n }\n\n let output = \"\";\n for (const segment of url.path) {\n output += `/${segment}`;\n }\n return output;\n}\n\nfunction serializeURLOrigin(url: any): any {\n // https://url.spec.whatwg.org/#concept-url-origin\n switch (url.scheme) {\n case \"blob\":\n try {\n return serializeURLOrigin(parseURL(serializePath(url)));\n } catch (e) {\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n case \"ftp\":\n case \"http\":\n case \"https\":\n case \"ws\":\n case \"wss\":\n return serializeOrigin({\n scheme: url.scheme,\n host: url.host,\n port: url.port,\n });\n case \"file\":\n // The spec says:\n // > Unfortunate as it is, this is left as an exercise to the reader. When in doubt, return a new opaque origin.\n // Browsers tested so far:\n // - Chrome says \"file://\", but treats file: URLs as cross-origin for most (all?) purposes; see e.g.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=37586\n // - Firefox says \"null\", but treats file: URLs as same-origin sometimes based on directory stuff; see\n // https://developer.mozilla.org/en-US/docs/Archive/Misc_top_level/Same-origin_policy_for_file:_URIs\n return \"null\";\n default:\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n}\n\nexport function basicURLParse(input: string, options?: any) {\n if (options === undefined) {\n options = {};\n }\n\n const usm = new URLStateMachine(\n input,\n options.baseURL,\n options.encodingOverride,\n options.url,\n options.stateOverride,\n );\n\n if (usm.failure) {\n return null;\n }\n\n return usm.url;\n}\n\nfunction setTheUsername(url: UrlObj, username: string) {\n url.username = utf8PercentEncodeString(username, isUserinfoPercentEncode);\n}\n\nfunction setThePassword(url: UrlObj, password: string) {\n url.password = utf8PercentEncodeString(password, isUserinfoPercentEncode);\n}\n\nfunction serializeInteger(integer: number) {\n return String(integer);\n}\n\nfunction parseURL(\n input: any,\n options?: { baseURL?: any; encodingOverride?: any },\n) {\n if (options === undefined) {\n options = {};\n }\n\n // We don't handle blobs, so this just delegates:\n return basicURLParse(input, {\n baseURL: options.baseURL,\n encodingOverride: options.encodingOverride,\n });\n}\n\nexport class URLImpl {\n constructor(url: string, base?: string) {\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = basicURLParse(base);\n if (parsedBase === null) {\n throw new TypeError(`Invalid base URL: ${base}`);\n }\n }\n\n const parsedURL = basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${url}`);\n }\n\n const query = parsedURL.query !== null ? parsedURL.query : \"\";\n\n this._url = parsedURL;\n\n // We cannot invoke the \"new URLSearchParams object\" algorithm without going through the constructor, which strips\n // question mark by default. Therefore the doNotStripQMark hack is used.\n this._query = new URLSearchParamsImpl(query, {\n doNotStripQMark: true,\n });\n this._query._url = this;\n }\n\n get href() {\n return serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = basicURLParse(v);\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${v}`);\n }\n\n this._url = parsedURL;\n\n this._query._list.splice(0);\n const { query } = parsedURL;\n if (query !== null) {\n this._query._list = parseUrlencodedString(query);\n }\n }\n\n get origin() {\n return serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return `${this._url.scheme}:`;\n }\n\n set protocol(v) {\n basicURLParse(`${v}:`, {\n url: this._url,\n stateOverride: \"scheme start\",\n });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return serializeHost(url.host);\n }\n\n return `${serializeHost(url.host)}:${serializeInteger(url.port)}`;\n }\n\n set host(v) {\n if (hasAnOpaquePath(this._url)) {\n return;\n }\n\n basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (hasAnOpaquePath(this._url)) {\n return;\n }\n\n basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n return serializePath(this._url);\n }\n\n set pathname(v: string) {\n if (hasAnOpaquePath(this._url)) {\n return;\n }\n\n this._url.path = [];\n basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return `?${this._url.query}`;\n }\n\n set search(v) {\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n this._query._list = [];\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n basicURLParse(input, { url, stateOverride: \"query\" });\n this._query._list = parseUrlencodedString(input);\n }\n\n get searchParams() {\n return this._query;\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return `#${this._url.fragment}`;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n\n // FIXME: type!\n _url: any;\n _query: any;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2020 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { URLImpl, URLSearchParamsImpl } from \"./whatwg-url.js\";\n\ninterface URL {\n hash: string;\n host: string;\n hostname: string;\n href: string;\n toString(): string;\n readonly origin: string;\n password: string;\n pathname: string;\n port: string;\n protocol: string;\n search: string;\n readonly searchParams: URLSearchParams;\n username: string;\n toJSON(): string;\n}\n\ninterface URLSearchParams {\n append(name: string, value: string): void;\n delete(name: string): void;\n get(name: string): string | null;\n getAll(name: string): string[];\n has(name: string): boolean;\n set(name: string, value: string): void;\n sort(): void;\n toString(): string;\n forEach(\n callbackfn: (value: string, key: string, parent: URLSearchParams) => void,\n thisArg?: any,\n ): void;\n entries(): IterableIterator<[string, string]>;\n keys(): IterableIterator<string>;\n values(): IterableIterator<string>;\n [Symbol.iterator](): IterableIterator<[string, string]>;\n}\n\nexport interface URLSearchParamsCtor {\n new (\n init?:\n | URLSearchParams\n | string\n | Record<string, string | ReadonlyArray<string>>\n | Iterable<[string, string]>\n | ReadonlyArray<[string, string]>,\n ): URLSearchParams;\n}\n\nexport interface URLCtor {\n new (url: string, base?: string | URL): URL;\n}\n\n// globalThis polyfill, see https://mathiasbynens.be/notes/globalthis\n(function () {\n if (typeof globalThis === \"object\") return;\n Object.defineProperty(Object.prototype, \"__magic__\", {\n get: function () {\n return this;\n },\n configurable: true, // This makes it possible to `delete` the getter later.\n });\n // @ts-ignore: polyfill magic\n __magic__.globalThis = __magic__; // lolwat\n // @ts-ignore: polyfill magic\n delete Object.prototype.__magic__;\n})();\n\n// Use native or pure JS URL implementation?\nconst useOwnUrlImp = true;\n\n// @ts-ignore\nlet _URL = globalThis.URL;\nif (useOwnUrlImp || !_URL) {\n // @ts-ignore\n globalThis.URL = _URL = URLImpl;\n // @ts-ignore\n _URL = URLImpl;\n}\n\nexport const URL: URLCtor = _URL;\n\n// @ts-ignore\nlet _URLSearchParams = globalThis.URLSearchParams;\n\nif (useOwnUrlImp || !_URLSearchParams) {\n // @ts-ignore\n globalThis.URLSearchParams = URLSearchParamsImpl;\n // @ts-ignore\n _URLSearchParams = URLSearchParamsImpl;\n}\n\nexport const URLSearchParams: URLSearchParamsCtor = _URLSearchParams;\n", "/*\n This file is part of TALER\n (C) 2016 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Small helper functions that don't fit anywhere else.\n */\n\n/**\n * Imports.\n */\nimport { AmountJson } from \"./amounts.js\";\nimport * as Amounts from \"./amounts.js\";\nimport { URL } from \"./url.js\";\n\n/**\n * Show an amount in a form suitable for the user.\n * FIXME: In the future, this should consider currency-specific\n * settings such as significant digits or currency symbols.\n */\nexport function amountToPretty(amount: AmountJson): string {\n const x = amount.value + amount.fraction / Amounts.amountFractionalBase;\n return `${x} ${amount.currency}`;\n}\n\n/**\n * Canonicalize a base url, typically for the exchange.\n *\n * See http://api.taler.net/wallet.html#general\n */\nexport function canonicalizeBaseUrl(url: string): string {\n if (!url.startsWith(\"http\") && !url.startsWith(\"https\")) {\n url = \"https://\" + url;\n }\n const x = new URL(url);\n if (!x.pathname.endsWith(\"/\")) {\n x.pathname = x.pathname + \"/\";\n }\n x.search = \"\";\n x.hash = \"\";\n return x.href;\n}\n\n/**\n * Convert object to JSON with canonical ordering of keys\n * and whitespace omitted.\n *\n * See RFC 4885 (https://tools.ietf.org/html/rfc8785).\n */\nexport function canonicalJson(obj: any): string {\n // Check for cycles, etc.\n obj = JSON.parse(JSON.stringify(obj));\n if (typeof obj === \"string\") {\n return JSON.stringify(obj);\n }\n if (typeof obj === \"number\" || typeof obj === \"boolean\" || obj === null) {\n return JSON.stringify(obj);\n }\n if (Array.isArray(obj)) {\n const objs: string[] = obj.map((e) => canonicalJson(e));\n return `[${objs.join(\",\")}]`;\n }\n const keys: string[] = [];\n for (const key in obj) {\n keys.push(key);\n }\n keys.sort();\n let s = \"{\";\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n s += JSON.stringify(key) + \":\" + canonicalJson(obj[key]);\n if (i !== keys.length - 1) {\n s += \",\";\n }\n }\n return s + \"}\";\n}\n\n/**\n * Lexically compare two strings.\n */\nexport function strcmp(s1: string, s2: string): -1 | 0 | 1 {\n if (s1 < s2) {\n return -1;\n }\n if (s1 > s2) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Shorthand function for formatted JSON stringification.\n */\nexport function j2s(x: any): string {\n return JSON.stringify(x, undefined, 2);\n}\n\n/**\n * Use this to filter null or undefined from an array in a type-safe fashion\n *\n * example:\n * const array: Array<T | undefined> = [undefined, null]\n * const filtered: Array<T> = array.filter(notEmpty)\n *\n * @param value\n * @returns\n */\nexport function notEmpty<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\n/**\n * Safe function to stringify errors.\n */\nexport function stringifyError(x: any): string {\n if (typeof x === \"undefined\") {\n return \"<thrown undefined>\";\n }\n if (x === null) {\n return `<thrown null>`;\n }\n if (typeof x === \"object\") {\n return x.toString();\n }\n return `<thrown ${typeof x}>`;\n}\n", "/*\n This file is part of TALER\n (C) 2019 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n\n/**\n * Check if we are running under nodejs.\n */\n\nconst isNode =\n typeof process !== \"undefined\" &&\n typeof process.release !== \"undefined\" &&\n process.release.name === \"node\";\n\nexport enum LogLevel {\n Trace = \"trace\",\n Message = \"message\",\n Info = \"info\",\n Warn = \"warn\",\n Error = \"error\",\n None = \"none\",\n}\n\nlet globalLogLevel = LogLevel.Info;\nconst byTagLogLevel: Record<string, LogLevel> = {};\n\nlet nativeLogging: boolean = false;\n\nexport function getGlobalLogLevel(): string {\n return globalLogLevel;\n}\n\nexport function setGlobalLogLevelFromString(logLevelStr: string): void {\n globalLogLevel = getLevelForString(logLevelStr);\n}\n\nexport function setLogLevelFromString(tag: string, logLevelStr: string): void {\n byTagLogLevel[tag] = getLevelForString(logLevelStr);\n}\n\nexport function enableNativeLogging() {\n nativeLogging = true;\n}\n\nfunction getLevelForString(logLevelStr: string): LogLevel {\n switch (logLevelStr.toLowerCase()) {\n case \"trace\":\n return LogLevel.Trace;\n case \"info\":\n return LogLevel.Info;\n case \"warn\":\n case \"warning\":\n return LogLevel.Warn;\n case \"error\":\n return LogLevel.Error;\n case \"none\":\n return LogLevel.None;\n default:\n if (isNode) {\n process.stderr.write(`Invalid log level, defaulting to WARNING\\n`);\n } else {\n console.warn(`Invalid log level, defaulting to WARNING`);\n }\n return LogLevel.Warn;\n }\n}\n\nfunction writeNativeLog(\n message: any,\n tag: string,\n level: number,\n args: any[],\n): void {\n const logFn = (globalThis as any).__nativeLog;\n if (logFn) {\n let m: string;\n if (args.length == 0) {\n m = message;\n } else {\n m = message + \" \" + args.toString();\n }\n logFn(level, tag, message);\n }\n}\n\nfunction writeNodeLog(\n message: any,\n tag: string,\n level: string,\n args: any[],\n): void {\n try {\n let msg = `${new Date().toISOString()} ${tag} ${level} ${message}`;\n if (args.length != 0) {\n msg += ` ${JSON.stringify(args, undefined, 2)}\\n`;\n } else {\n msg += `\\n`;\n }\n process.stderr.write(msg);\n } catch (e) {\n // This can happen when we're trying to log something that doesn't want to be\n // converted to a string.\n let msg = `${new Date().toISOString()} (logger) FATAL `;\n if (e instanceof Error) {\n msg += `failed to write log: ${e.message}\\n`;\n } else {\n msg += \"failed to write log\\n\";\n }\n process.stderr.write(msg);\n }\n}\n\n/**\n * Logger that writes to stderr when running under node,\n * and uses the corresponding console.* method to log in the browser.\n */\nexport class Logger {\n constructor(private tag: string) {}\n\n shouldLogTrace(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n return true;\n case LogLevel.Message:\n case LogLevel.Info:\n case LogLevel.Warn:\n case LogLevel.Error:\n case LogLevel.None:\n return false;\n }\n }\n\n shouldLogInfo(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n case LogLevel.Message:\n case LogLevel.Info:\n return true;\n case LogLevel.Warn:\n case LogLevel.Error:\n case LogLevel.None:\n return false;\n }\n }\n\n shouldLogWarn(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n case LogLevel.Message:\n case LogLevel.Info:\n case LogLevel.Warn:\n return true;\n case LogLevel.Error:\n case LogLevel.None:\n return false;\n }\n }\n\n shouldLogError(): boolean {\n const level = byTagLogLevel[this.tag] ?? globalLogLevel;\n switch (level) {\n case LogLevel.Trace:\n case LogLevel.Message:\n case LogLevel.Info:\n case LogLevel.Warn:\n case LogLevel.Error:\n return true;\n case LogLevel.None:\n return false;\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (!this.shouldLogInfo()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 2, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"INFO\", args);\n } else {\n console.info(\n `${new Date().toISOString()} ${this.tag} INFO ` + message,\n ...args,\n );\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (!this.shouldLogWarn()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 3, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"WARN\", args);\n } else {\n console.warn(\n `${new Date().toISOString()} ${this.tag} INFO ` + message,\n ...args,\n );\n }\n }\n\n error(message: string, ...args: any[]): void {\n if (!this.shouldLogError()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 4, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"ERROR\", args);\n } else {\n console.info(\n `${new Date().toISOString()} ${this.tag} ERROR ` + message,\n ...args,\n );\n }\n }\n\n trace(message: string, ...args: any[]): void {\n if (!this.shouldLogTrace()) {\n return;\n }\n if (nativeLogging) {\n writeNativeLog(message, this.tag, 1, args);\n return;\n }\n if (isNode) {\n writeNodeLog(message, this.tag, \"TRACE\", args);\n } else {\n console.info(\n `${new Date().toISOString()} ${this.tag} TRACE ` + message,\n ...args,\n );\n }\n }\n\n reportBreak(): void {\n if (!this.shouldLogError()) {\n return;\n }\n const location = new Error(\"programming error\");\n this.error(`assertion failed: ${location.stack}`);\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2018-2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { j2s } from \"./helpers.js\";\nimport { Logger } from \"./logging.js\";\n\n/**\n * Type-safe codecs for converting from/to JSON.\n */\n\n/* eslint-disable @typescript-eslint/ban-types */\n\nconst logger = new Logger(\"codec.ts\");\n\n/**\n * Error thrown when decoding fails.\n */\nexport class DecodingError extends Error {\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, DecodingError.prototype);\n this.name = \"DecodingError\";\n }\n}\n\n/**\n * Context information to show nicer error messages when decoding fails.\n */\nexport interface Context {\n readonly path?: string[];\n}\n\nexport function renderContext(c?: Context): string {\n const p = c?.path;\n if (p) {\n return p.join(\".\");\n } else {\n return \"(unknown)\";\n }\n}\n\nfunction joinContext(c: Context | undefined, part: string): Context {\n const path = c?.path ?? [];\n return {\n path: path.concat([part]),\n };\n}\n\n/**\n * A codec converts untyped JSON to a typed object.\n */\nexport interface Codec<V> {\n /**\n * Decode untyped JSON to an object of type [[V]].\n */\n readonly decode: (x: any, c?: Context) => V;\n}\n\ntype SingletonRecord<K extends keyof any, V> = { [Y in K]: V };\n\ninterface Prop {\n name: string;\n codec: Codec<any>;\n}\n\ninterface Alternative {\n tagValue: any;\n codec: Codec<any>;\n}\n\nclass ObjectCodecBuilder<OutputType, PartialOutputType> {\n private propList: Prop[] = [];\n\n /**\n * Define a property for the object.\n */\n property<K extends keyof OutputType & string, V extends OutputType[K]>(\n x: K,\n codec: Codec<V>,\n ): ObjectCodecBuilder<OutputType, PartialOutputType & SingletonRecord<K, V>> {\n if (!codec) {\n throw Error(\"inner codec must be defined\");\n }\n this.propList.push({ name: x, codec: codec });\n return this as any;\n }\n\n /**\n * Return the built codec.\n *\n * @param objectDisplayName name of the object that this codec operates on,\n * used in error messages.\n */\n build(objectDisplayName: string): Codec<PartialOutputType> {\n const propList = this.propList;\n return {\n decode(x: any, c?: Context): PartialOutputType {\n if (!c) {\n c = {\n path: [`(${objectDisplayName})`],\n };\n }\n if (typeof x !== \"object\") {\n throw new DecodingError(\n `expected object for ${objectDisplayName} at ${renderContext(\n c,\n )} but got ${typeof x}`,\n );\n }\n const obj: any = {};\n for (const prop of propList) {\n const propRawVal = x[prop.name];\n const propVal = prop.codec.decode(\n propRawVal,\n joinContext(c, prop.name),\n );\n obj[prop.name] = propVal;\n }\n return obj as PartialOutputType;\n },\n };\n }\n}\n\nclass UnionCodecBuilder<\n TargetType,\n TagPropertyLabel extends keyof TargetType,\n CommonBaseType,\n PartialTargetType,\n> {\n private alternatives = new Map<any, Alternative>();\n\n constructor(\n private discriminator: TagPropertyLabel,\n private baseCodec?: Codec<CommonBaseType>,\n ) {}\n\n /**\n * Define a property for the object.\n */\n alternative<V>(\n tagValue: TargetType[TagPropertyLabel],\n codec: Codec<V>,\n ): UnionCodecBuilder<\n TargetType,\n TagPropertyLabel,\n CommonBaseType,\n PartialTargetType | V\n > {\n if (!codec) {\n throw Error(\"inner codec must be defined\");\n }\n this.alternatives.set(tagValue, { codec, tagValue });\n return this as any;\n }\n\n /**\n * Return the built codec.\n *\n * @param objectDisplayName name of the object that this codec operates on,\n * used in error messages.\n */\n build<R extends PartialTargetType & CommonBaseType = never>(\n objectDisplayName: string,\n ): Codec<R> {\n const alternatives = this.alternatives;\n const discriminator = this.discriminator;\n const baseCodec = this.baseCodec;\n return {\n decode(x: any, c?: Context): R {\n if (!c) {\n c = {\n path: [`(${objectDisplayName})`],\n };\n }\n const d = x[discriminator];\n if (d === undefined) {\n throw new DecodingError(\n `expected tag for ${objectDisplayName} at ${renderContext(\n c,\n )}.${String(discriminator)}`,\n );\n }\n const alt = alternatives.get(d);\n if (!alt) {\n throw new DecodingError(\n `unknown tag for ${objectDisplayName} ${d} at ${renderContext(\n c,\n )}.${String(discriminator)}`,\n );\n }\n const altDecoded = alt.codec.decode(x);\n if (baseCodec) {\n const baseDecoded = baseCodec.decode(x, c);\n return { ...baseDecoded, ...altDecoded };\n } else {\n return altDecoded;\n }\n },\n };\n }\n}\n\nexport class UnionCodecPreBuilder<T> {\n discriminateOn<D extends keyof T, B = {}>(\n discriminator: D,\n baseCodec?: Codec<B>,\n ): UnionCodecBuilder<T, D, B, never> {\n return new UnionCodecBuilder<T, D, B, never>(discriminator, baseCodec);\n }\n}\n\n/**\n * Return a builder for a codec that decodes an object with properties.\n */\nexport function buildCodecForObject<T>(): ObjectCodecBuilder<T, {}> {\n return new ObjectCodecBuilder<T, {}>();\n}\n\nexport function buildCodecForUnion<T>(): UnionCodecPreBuilder<T> {\n return new UnionCodecPreBuilder<T>();\n}\n\n/**\n * Return a codec for a mapping from a string to values described by the inner codec.\n */\nexport function codecForMap<T>(\n innerCodec: Codec<T>,\n): Codec<{ [x: string]: T }> {\n if (!innerCodec) {\n throw Error(\"inner codec must be defined\");\n }\n return {\n decode(x: any, c?: Context): { [x: string]: T } {\n const map: { [x: string]: T } = {};\n if (typeof x !== \"object\") {\n throw new DecodingError(`expected object at ${renderContext(c)}`);\n }\n for (const i in x) {\n map[i] = innerCodec.decode(x[i], joinContext(c, `[${i}]`));\n }\n return map;\n },\n };\n}\n\n/**\n * Return a codec for a list, containing values described by the inner codec.\n */\nexport function codecForList<T>(innerCodec: Codec<T>): Codec<T[]> {\n if (!innerCodec) {\n throw Error(\"inner codec must be defined\");\n }\n return {\n decode(x: any, c?: Context): T[] {\n const arr: T[] = [];\n if (!Array.isArray(x)) {\n throw new DecodingError(`expected array at ${renderContext(c)}`);\n }\n for (const i in x) {\n arr.push(innerCodec.decode(x[i], joinContext(c, `[${i}]`)));\n }\n return arr;\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a number.\n */\nexport function codecForNumber(): Codec<number> {\n return {\n decode(x: any, c?: Context): number {\n if (typeof x === \"number\") {\n return x;\n }\n throw new DecodingError(\n `expected number at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a number.\n */\nexport function codecForBoolean(): Codec<boolean> {\n return {\n decode(x: any, c?: Context): boolean {\n if (typeof x === \"boolean\") {\n return x;\n }\n throw new DecodingError(\n `expected boolean at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a string.\n */\nexport function codecForString(): Codec<string> {\n return {\n decode(x: any, c?: Context): string {\n if (typeof x === \"string\") {\n return x;\n }\n throw new DecodingError(\n `expected string at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a string.\n */\nexport function codecForStringURL(shouldEndWithSlash?: boolean): Codec<string> {\n return {\n decode(x: any, c?: Context): string {\n if (typeof x !== \"string\") {\n throw new DecodingError(\n `expected string at ${renderContext(c)} but got ${typeof x}`,\n );\n }\n if (shouldEndWithSlash && !x.endsWith(\"/\")) {\n throw new DecodingError(\n `expected URL string that ends with slash at ${renderContext(\n c,\n )} but got ${x}`,\n );\n }\n try {\n const url = new URL(x);\n return x;\n } catch (e) {\n if (e instanceof Error) {\n throw new DecodingError(e.message);\n } else {\n throw new DecodingError(\n `expected an URL string at ${renderContext(c)} but got \"${x}\"`,\n );\n }\n }\n },\n };\n}\n\n/**\n * Codec that allows any value.\n */\nexport function codecForAny(): Codec<any> {\n return {\n decode(x: any, c?: Context): any {\n return x;\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a string.\n */\nexport function codecForConstString<V extends string>(s: V): Codec<V> {\n return {\n decode(x: any, c?: Context): V {\n if (x === s) {\n return x;\n }\n if (typeof x !== \"string\") {\n throw new DecodingError(\n `expected string constant \"${s}\" at ${renderContext(\n c,\n )} but got ${typeof x}`,\n );\n }\n throw new DecodingError(\n `expected string constant \"${s}\" at ${renderContext(\n c,\n )} but got string value \"${x}\"`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a boolean true constant.\n */\nexport function codecForConstTrue(): Codec<true> {\n return {\n decode(x: any, c?: Context): true {\n if (x === true) {\n return x;\n }\n throw new DecodingError(\n `expected boolean true at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a boolean true constant.\n */\nexport function codecForConstFalse(): Codec<false> {\n return {\n decode(x: any, c?: Context): false {\n if (x === false) {\n return x;\n }\n throw new DecodingError(\n `expected boolean false at ${renderContext(c)} but got ${typeof x}`,\n );\n },\n };\n}\n\n/**\n * Return a codec for a value that must be a constant number.\n */\nexport function codecForConstNumber<V extends number>(n: V): Codec<V> {\n return {\n decode(x: any, c?: Context): V {\n if (x === n) {\n return x;\n }\n throw new DecodingError(\n `expected number constant \"${n}\" at ${renderContext(\n c,\n )} but got ${typeof x}`,\n );\n },\n };\n}\n\nexport function codecOptional<V>(innerCodec: Codec<V>): Codec<V | undefined> {\n return {\n decode(x: any, c?: Context): V | undefined {\n if (x === undefined || x === null) {\n return undefined;\n }\n return innerCodec.decode(x, c);\n },\n };\n}\n\nexport type CodecType<T> = T extends Codec<infer X> ? X : any;\n\nexport function codecForEither<T extends Array<Codec<unknown>>>(\n ...alts: [...T]\n): Codec<CodecType<T[number]>> {\n return {\n decode(x: any, c?: Context): any {\n for (const alt of alts) {\n try {\n return alt.decode(x, c);\n } catch (e) {\n continue;\n }\n }\n if (logger.shouldLogTrace()) {\n logger.trace(`offending value: ${j2s(x)}`);\n }\n throw new DecodingError(\n `No alternative matched at at ${renderContext(c)}`,\n );\n },\n };\n}\n\nconst x = codecForEither(codecForString(), codecForNumber());\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Types and helper functions for dealing with Taler amounts.\n */\n\n/**\n * Imports.\n */\nimport {\n buildCodecForObject,\n codecForString,\n codecForNumber,\n Codec,\n Context,\n DecodingError,\n renderContext,\n} from \"./codec.js\";\nimport { CurrencySpecification } from \"./index.js\";\nimport { AmountString } from \"./taler-types.js\";\n\n/**\n * Number of fractional units that one value unit represents.\n */\nexport const amountFractionalBase = 1e8;\n\n/**\n * How many digits behind the comma are required to represent the\n * fractional value in human readable decimal format? Must match\n * lg(fractionalBase)\n */\nexport const amountFractionalLength = 8;\n\n/**\n * Maximum allowed value field of an amount.\n */\nexport const amountMaxValue = 2 ** 52;\n\n/**\n * Separator character between interger and fractional\n */\nexport const FRAC_SEPARATOR = \".\"\n\n/**\n * Non-negative financial amount. Fractional values are expressed as multiples\n * of 1e-8.\n */\nexport interface AmountJson {\n /**\n * Value, must be an integer.\n */\n readonly value: number;\n\n /**\n * Fraction, must be an integer. Represent 1/1e8 of a unit.\n */\n readonly fraction: number;\n\n /**\n * Currency of the amount.\n */\n readonly currency: string;\n}\n\nexport const codecForAmountJson = (): Codec<AmountJson> =>\n buildCodecForObject<AmountJson>()\n .property(\"currency\", codecForString())\n .property(\"value\", codecForNumber())\n .property(\"fraction\", codecForNumber())\n .build(\"AmountJson\");\n\nexport function codecForAmountString(): Codec<AmountString> {\n return {\n decode(x: any, c?: Context): AmountString {\n if (typeof x !== \"string\") {\n throw new DecodingError(\n `expected string at ${renderContext(c)} but got ${typeof x}`,\n );\n }\n if (Amounts.parse(x) === undefined) {\n throw new DecodingError(\n `invalid amount at ${renderContext(c)} got \"${x}\"`,\n );\n }\n return x as AmountString;\n },\n };\n}\n\n/**\n * Result of a possibly overflowing operation.\n */\nexport interface Result {\n /**\n * Resulting, possibly saturated amount.\n */\n amount: AmountJson;\n /**\n * Was there an over-/underflow?\n */\n saturated: boolean;\n}\n\n/**\n * Type for things that are treated like amounts.\n */\nexport type AmountLike = string | AmountString | AmountJson;\n\nexport interface DivmodResult {\n quotient: number;\n remainder: AmountJson;\n}\n\n/**\n * Helper class for dealing with amounts.\n */\nexport class Amounts {\n private constructor() {\n throw Error(\"not instantiable\");\n }\n\n static currencyOf(amount: AmountLike) {\n const amt = Amounts.parseOrThrow(amount);\n return amt.currency;\n }\n\n static zeroOfAmount(amount: AmountLike): AmountJson {\n const amt = Amounts.parseOrThrow(amount);\n return {\n currency: amt.currency,\n fraction: 0,\n value: 0,\n };\n }\n\n /**\n * Get an amount that represents zero units of a currency.\n */\n static zeroOfCurrency(currency: string): AmountJson {\n return {\n currency,\n fraction: 0,\n value: 0,\n };\n }\n\n static jsonifyAmount(amt: AmountLike): AmountJson {\n if (typeof amt === \"string\") {\n return Amounts.parseOrThrow(amt);\n }\n return amt;\n }\n\n static divmod(a1: AmountLike, a2: AmountLike): DivmodResult {\n const am1 = Amounts.jsonifyAmount(a1);\n const am2 = Amounts.jsonifyAmount(a2);\n if (am1.currency != am2.currency) {\n throw Error(`incompatible currency (${am1.currency} vs${am2.currency})`);\n }\n\n const x1 =\n BigInt(am1.value) * BigInt(amountFractionalBase) + BigInt(am1.fraction);\n const x2 =\n BigInt(am2.value) * BigInt(amountFractionalBase) + BigInt(am2.fraction);\n\n const quotient = x1 / x2;\n const remainderScaled = x1 % x2;\n\n return {\n quotient: Number(quotient),\n remainder: {\n currency: am1.currency,\n value: Number(remainderScaled / BigInt(amountFractionalBase)),\n fraction: Number(remainderScaled % BigInt(amountFractionalBase)),\n },\n };\n }\n\n static sum(amounts: AmountLike[]): Result {\n if (amounts.length <= 0) {\n throw Error(\"can't sum zero amounts\");\n }\n const jsonAmounts = amounts.map((x) => Amounts.jsonifyAmount(x));\n return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));\n }\n\n static sumOrZero(currency: string, amounts: AmountLike[]): Result {\n if (amounts.length <= 0) {\n return {\n amount: Amounts.zeroOfCurrency(currency),\n saturated: false,\n };\n }\n const jsonAmounts = amounts.map((x) => Amounts.jsonifyAmount(x));\n return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));\n }\n\n /**\n * Add two amounts. Return the result and whether\n * the addition overflowed. The overflow is always handled\n * by saturating and never by wrapping.\n *\n * Throws when currencies don't match.\n */\n static add(first: AmountLike, ...rest: AmountLike[]): Result {\n const firstJ = Amounts.jsonifyAmount(first);\n const currency = firstJ.currency;\n let value =\n firstJ.value + Math.floor(firstJ.fraction / amountFractionalBase);\n if (value > amountMaxValue) {\n return {\n amount: {\n currency,\n value: amountMaxValue,\n fraction: amountFractionalBase - 1,\n },\n saturated: true,\n };\n }\n let fraction = firstJ.fraction % amountFractionalBase;\n for (const x of rest) {\n const xJ = Amounts.jsonifyAmount(x);\n if (xJ.currency.toUpperCase() !== currency.toUpperCase()) {\n throw Error(`Mismatched currency: ${xJ.currency} and ${currency}`);\n }\n\n value =\n value +\n xJ.value +\n Math.floor((fraction + xJ.fraction) / amountFractionalBase);\n fraction = Math.floor((fraction + xJ.fraction) % amountFractionalBase);\n if (value > amountMaxValue) {\n return {\n amount: {\n currency,\n value: amountMaxValue,\n fraction: amountFractionalBase - 1,\n },\n saturated: true,\n };\n }\n }\n return { amount: { currency, value, fraction }, saturated: false };\n }\n\n /**\n * Subtract two amounts. Return the result and whether\n * the subtraction overflowed. The overflow is always handled\n * by saturating and never by wrapping.\n *\n * Throws when currencies don't match.\n */\n static sub(a: AmountLike, ...rest: AmountLike[]): Result {\n const aJ = Amounts.jsonifyAmount(a);\n const currency = aJ.currency;\n let value = aJ.value;\n let fraction = aJ.fraction;\n\n for (const b of rest) {\n const bJ = Amounts.jsonifyAmount(b);\n if (bJ.currency.toUpperCase() !== aJ.currency.toUpperCase()) {\n throw Error(`Mismatched currency: ${bJ.currency} and ${currency}`);\n }\n if (fraction < bJ.fraction) {\n if (value < 1) {\n return {\n amount: { currency, value: 0, fraction: 0 },\n saturated: true,\n };\n }\n value--;\n fraction += amountFractionalBase;\n }\n console.assert(fraction >= bJ.fraction);\n fraction -= bJ.fraction;\n if (value < bJ.value) {\n return { amount: { currency, value: 0, fraction: 0 }, saturated: true };\n }\n value -= bJ.value;\n }\n\n return { amount: { currency, value, fraction }, saturated: false };\n }\n\n /**\n * Compare two amounts. Returns 0 when equal, -1 when a < b\n * and +1 when a > b. Throws when currencies don't match.\n */\n static cmp(a: AmountLike, b: AmountLike): -1 | 0 | 1 {\n a = Amounts.jsonifyAmount(a);\n b = Amounts.jsonifyAmount(b);\n if (a.currency !== b.currency) {\n throw Error(`Mismatched currency: ${a.currency} and ${b.currency}`);\n }\n const av = a.value + Math.floor(a.fraction / amountFractionalBase);\n const af = a.fraction % amountFractionalBase;\n const bv = b.value + Math.floor(b.fraction / amountFractionalBase);\n const bf = b.fraction % amountFractionalBase;\n switch (true) {\n case av < bv:\n return -1;\n case av > bv:\n return 1;\n case af < bf:\n return -1;\n case af > bf:\n return 1;\n case af === bf:\n return 0;\n default:\n throw Error(\"assertion failed\");\n }\n }\n\n /**\n * Create a copy of an amount.\n */\n static copy(a: AmountJson): AmountJson {\n return {\n currency: a.currency,\n fraction: a.fraction,\n value: a.value,\n };\n }\n\n /**\n * Divide an amount. Throws on division by zero.\n */\n static divide(a: AmountJson, n: number): AmountJson {\n if (n === 0) {\n throw Error(`Division by 0`);\n }\n if (n === 1) {\n return { value: a.value, fraction: a.fraction, currency: a.currency };\n }\n const r = a.value % n;\n return {\n currency: a.currency,\n fraction: Math.floor((r * amountFractionalBase + a.fraction) / n),\n value: Math.floor(a.value / n),\n };\n }\n\n /**\n * Check if an amount is non-zero.\n */\n static isNonZero(a: AmountLike): boolean {\n a = Amounts.jsonifyAmount(a);\n return a.value > 0 || a.fraction > 0;\n }\n\n static isZero(a: AmountLike): boolean {\n a = Amounts.jsonifyAmount(a);\n return a.value === 0 && a.fraction === 0;\n }\n\n /**\n * Parse an amount like 'EUR:20.5' for 20 Euros and 50 ct.\n * \n * Currency name size limit is 11 of ASCII letters\n * Fraction size limit is 8\n */\n static parse(s: string): AmountJson | undefined {\n const res = s.match(/^([a-zA-Z]{1,11}):([0-9]+)([.][0-9]{1,8})?$/);\n if (!res) {\n return undefined;\n }\n const tail = res[3] || (FRAC_SEPARATOR + \"0\");\n if (tail.length > amountFractionalLength + 1) {\n return undefined;\n }\n const value = Number.parseInt(res[2]);\n if (value > amountMaxValue) {\n return undefined;\n }\n return {\n currency: res[1].toUpperCase(),\n fraction: Math.round(amountFractionalBase * Number.parseFloat(tail)),\n value,\n };\n }\n\n /**\n * Parse amount in standard string form (like 'EUR:20.5'),\n * throw if the input is not a valid amount.\n */\n static parseOrThrow(s: AmountLike): AmountJson {\n if (typeof s === \"object\") {\n if (typeof s.currency !== \"string\") {\n throw Error(\"invalid amount object\");\n }\n if (typeof s.value !== \"number\") {\n throw Error(\"invalid amount object\");\n }\n if (typeof s.fraction !== \"number\") {\n throw Error(\"invalid amount object\");\n }\n return { currency: s.currency, value: s.value, fraction: s.fraction };\n } else if (typeof s === \"string\") {\n const res = Amounts.parse(s);\n if (!res) {\n throw Error(`Can't parse amount: \"${s}\"`);\n }\n return res;\n } else {\n throw Error(\"invalid amount (illegal type)\");\n }\n }\n\n static min(a: AmountLike, b: AmountLike): AmountJson {\n const cr = Amounts.cmp(a, b);\n if (cr >= 0) {\n return Amounts.jsonifyAmount(b);\n } else {\n return Amounts.jsonifyAmount(a);\n }\n }\n\n static max(a: AmountLike, b: AmountLike): AmountJson {\n const cr = Amounts.cmp(a, b);\n if (cr >= 0) {\n return Amounts.jsonifyAmount(a);\n } else {\n return Amounts.jsonifyAmount(b);\n }\n }\n\n static mult(a: AmountLike, n: number): Result {\n a = this.jsonifyAmount(a);\n if (!Number.isInteger(n)) {\n throw Error(\"amount can only be multipied by an integer\");\n }\n if (n < 0) {\n throw Error(\"amount can only be multiplied by a positive integer\");\n }\n if (n == 0) {\n return {\n amount: Amounts.zeroOfCurrency(a.currency),\n saturated: false,\n };\n }\n let x = a;\n let acc = Amounts.zeroOfCurrency(a.currency);\n while (n > 1) {\n if (n % 2 == 0) {\n n = n / 2;\n } else {\n n = (n - 1) / 2;\n const r2 = Amounts.add(acc, x);\n if (r2.saturated) {\n return r2;\n }\n acc = r2.amount;\n }\n const r2 = Amounts.add(x, x);\n if (r2.saturated) {\n return r2;\n }\n x = r2.amount;\n }\n return Amounts.add(acc, x);\n }\n\n /**\n * Check if the argument is a valid amount in string form.\n */\n static check(a: any): boolean {\n if (typeof a !== \"string\") {\n return false;\n }\n try {\n const parsedAmount = Amounts.parse(a);\n return !!parsedAmount;\n } catch {\n return false;\n }\n }\n\n /**\n * Convert to standard human-readable string representation that's\n * also used in JSON formats.\n */\n static stringify(a: AmountLike): AmountString {\n a = Amounts.jsonifyAmount(a);\n const s = this.stringifyValue(a);\n\n return `${a.currency}:${s}` as AmountString;\n }\n\n static isSameCurrency(a1: AmountLike, a2: AmountLike): boolean {\n const x1 = this.jsonifyAmount(a1);\n const x2 = this.jsonifyAmount(a2);\n return x1.currency.toUpperCase() === x2.currency.toUpperCase();\n }\n\n static stringifyValue(a: AmountLike, minFractional = 0): string {\n const aJ = Amounts.jsonifyAmount(a);\n const av = aJ.value + Math.floor(aJ.fraction / amountFractionalBase);\n const af = aJ.fraction % amountFractionalBase;\n let s = av.toString();\n\n if (af || minFractional) {\n s = s + FRAC_SEPARATOR;\n let n = af;\n for (let i = 0; i < amountFractionalLength; i++) {\n if (!n && i >= minFractional) {\n break;\n }\n s = s + Math.floor((n / amountFractionalBase) * 10).toString();\n n = (n * 10) % amountFractionalBase;\n }\n }\n\n return s;\n }\n\n /**\n * Number of fractional digits needed to fully represent the amount\n * @param a amount\n * @returns\n */\n static maxFractionalDigits(a: AmountJson): number {\n if (a.fraction === 0) return 0;\n if (a.fraction < 0) {\n console.error(\"amount fraction can not be negative\", a);\n return 0;\n }\n let i = 0;\n let check = true;\n let rest = a.fraction;\n while (rest > 0 && check) {\n check = rest % 10 === 0;\n rest = rest / 10;\n i++;\n }\n return amountFractionalLength - i + 1;\n }\n\n \n static stringifyValueWithSpec(value: AmountJson, spec: CurrencySpecification): { currency: string, normal: string, small?: string } {\n const strValue = Amounts.stringifyValue(value)\n const pos = strValue.indexOf(FRAC_SEPARATOR)\n const originalPosition = pos < 0 ? strValue.length : pos;\n \n let currency = value.currency\n const names = Object.keys(spec.alt_unit_names)\n let FRAC_POS_NEW_POSITION = originalPosition\n //find symbol\n //FIXME: this should be based on a cache to speed up\n if (names.length > 0) {\n let unitIndex: string = \"0\" //default entry by DD51\n names.forEach(index => {\n const i = Number.parseInt(index, 10)\n if (Number.isNaN(i)) return; //skip\n if (originalPosition - i <= 0) return; //too big\n if (originalPosition - i < FRAC_POS_NEW_POSITION) {\n FRAC_POS_NEW_POSITION = originalPosition - i;\n unitIndex = index\n }\n })\n currency = spec.alt_unit_names[unitIndex]\n }\n \n if (originalPosition === FRAC_POS_NEW_POSITION) {\n const { normal, small } = splitNormalAndSmall(strValue, originalPosition, spec)\n return { currency, normal, small }\n }\n \n const intPart = strValue.substring(0, originalPosition)\n const fracPArt = strValue.substring(originalPosition + 1)\n //indexSize is always smaller than originalPosition\n const newValue = intPart.substring(0, FRAC_POS_NEW_POSITION) + FRAC_SEPARATOR + intPart.substring(FRAC_POS_NEW_POSITION) + fracPArt\n const { normal, small } = splitNormalAndSmall(newValue, FRAC_POS_NEW_POSITION, spec)\n return { currency, normal, small }\n }\n \n \n}\n\nfunction splitNormalAndSmall(decimal: string, fracSeparatorIndex: number, spec: CurrencySpecification): { normal: string, small?: string } {\n let normal: string;\n let small: string | undefined;\n if (decimal.length - fracSeparatorIndex - 1 > spec.num_fractional_normal_digits) {\n const limit = fracSeparatorIndex + spec.num_fractional_normal_digits + 1\n normal = decimal.substring(0, limit)\n small = decimal.substring(limit)\n } else {\n normal = decimal\n small = undefined\n }\n return { normal, small }\n}\n\n", "/*\n This file is part of TALER\n (C) 2017 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Semantic versioning, but libtool-style.\n * See https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html\n */\n\n/**\n * Result of comparing two libtool versions.\n */\nexport interface VersionMatchResult {\n /**\n * Is the first version compatible with the second?\n */\n compatible: boolean;\n\n /**\n * Is the first version older (-1), newer (+1) or\n * identical (0)?\n */\n currentCmp: number;\n}\n\nexport interface Version {\n current: number;\n revision: number;\n age: number;\n}\n\nexport namespace LibtoolVersion {\n /**\n * Compare two libtool-style version strings.\n */\n export function compare(\n me: string,\n other: string,\n ): VersionMatchResult | undefined {\n const meVer = parseVersion(me);\n const otherVer = parseVersion(other);\n\n if (!(meVer && otherVer)) {\n return undefined;\n }\n\n const compatible =\n meVer.current - meVer.age <= otherVer.current &&\n meVer.current >= otherVer.current - otherVer.age;\n\n const currentCmp = Math.sign(meVer.current - otherVer.current);\n\n return { compatible, currentCmp };\n }\n\n export function parseVersion(v: string): Version | undefined {\n const [currentStr, revisionStr, ageStr, ...rest] = v.split(\":\");\n if (rest.length !== 0) {\n return undefined;\n }\n const current = Number.parseInt(currentStr);\n const revision = Number.parseInt(revisionStr);\n const age = Number.parseInt(ageStr);\n\n if (Number.isNaN(current)) {\n return undefined;\n }\n\n if (Number.isNaN(revision)) {\n return undefined;\n }\n\n if (Number.isNaN(age)) {\n return undefined;\n }\n\n return { current, revision, age };\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type and schema definitions for notifications from the wallet to clients\n * of the wallet.\n */\n\n/**\n * Imports.\n */\nimport { TransactionState } from \"./transactions-types.js\";\nimport { ExchangeEntryState, TalerErrorDetail } from \"./wallet-types.js\";\n\nexport enum NotificationType {\n BalanceChange = \"balance-change\",\n BackupOperationError = \"backup-error\",\n PendingOperationProcessed = \"pending-operation-processed\",\n TransactionStateTransition = \"transaction-state-transition\",\n ExchangeStateTransition = \"exchange-state-transition\",\n}\n\nexport interface ErrorInfoSummary {\n code: number;\n hint?: string;\n message?: string;\n}\n\nexport interface TransactionStateTransitionNotification {\n type: NotificationType.TransactionStateTransition;\n transactionId: string;\n oldTxState: TransactionState;\n newTxState: TransactionState;\n errorInfo?: ErrorInfoSummary;\n\n /**\n * Additional \"user data\" that is dependent on the\n * state transition.\n *\n * Usage should be avoided.\n *\n * Currently used to notify the iOS app about\n * the KYC URL.\n */\n experimentalUserData?: any;\n}\n\nexport interface ExchangeStateTransitionNotification {\n type: NotificationType.ExchangeStateTransition;\n /**\n * Identification of the exchange entry that this\n * notification is about.\n */\n exchangeBaseUrl: string;\n\n /**\n * If missing, the notification means that\n * the exchange entry is newly created.\n */\n oldExchangeState?: ExchangeEntryState;\n\n /**\n * New state of the exchange.\n */\n newExchangeState: ExchangeEntryState;\n\n /**\n * Summary of the error that occurred when trying to update the exchange entry,\n * if applicable.\n */\n errorInfo?: ErrorInfoSummary;\n}\n\nexport interface BalanceChangeNotification {\n type: NotificationType.BalanceChange;\n\n /**\n * Transaction ID of the transaction that caused the balance update.\n *\n * Only used as a hint for debugging, should not be relied upon by clients.\n */\n hintTransactionId: string;\n}\n\nexport interface BackupOperationErrorNotification {\n type: NotificationType.BackupOperationError;\n error: TalerErrorDetail;\n}\n\nexport interface PendingOperationProcessedNotification {\n type: NotificationType.PendingOperationProcessed;\n id: string;\n taskResultType: string;\n}\n\nexport type WalletNotification =\n | BalanceChangeNotification\n | BackupOperationErrorNotification\n | ExchangeStateTransitionNotification\n | PendingOperationProcessedNotification\n | TransactionStateTransitionNotification;\n", "// SHA-256 for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n//\n// Classes:\n//\n// new sha256.Hash()\nexport const digestLength = 32;\nexport const blockSize = 64;\n\n// SHA-256 constants\nconst K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n]);\n\nfunction hashBlocks(\n w: Int32Array,\n v: Int32Array,\n p: Uint8Array,\n pos: number,\n len: number,\n): number {\n let a: number,\n b: number,\n c: number,\n d: number,\n e: number,\n f: number,\n g: number,\n h: number,\n u: number,\n i: number,\n j: number,\n t1: number,\n t2: number;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] =\n ((p[j] & 0xff) << 24) |\n ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) |\n (p[j + 3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 =\n ((u >>> 17) | (u << (32 - 17))) ^\n ((u >>> 19) | (u << (32 - 19))) ^\n (u >>> 10);\n\n u = w[i - 15];\n t2 =\n ((u >>> 7) | (u << (32 - 7))) ^\n ((u >>> 18) | (u << (32 - 18))) ^\n (u >>> 3);\n\n w[i] = ((t1 + w[i - 7]) | 0) + ((t2 + w[i - 16]) | 0);\n }\n\n for (i = 0; i < 64; i++) {\n t1 =\n ((((((e >>> 6) | (e << (32 - 6))) ^\n ((e >>> 11) | (e << (32 - 11))) ^\n ((e >>> 25) | (e << (32 - 25)))) +\n ((e & f) ^ (~e & g))) |\n 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) |\n 0;\n\n t2 =\n ((((a >>> 2) | (a << (32 - 2))) ^\n ((a >>> 13) | (a << (32 - 13))) ^\n ((a >>> 22) | (a << (32 - 22)))) +\n ((a & b) ^ (a & c) ^ (b & c))) |\n 0;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n\n// Hash implements SHA256 hash algorithm.\nexport class HashSha256 {\n digestLength: number = digestLength;\n blockSize: number = blockSize;\n\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n private state: Int32Array = new Int32Array(8); // hash state\n private temp: Int32Array = new Int32Array(64); // temporary state\n private buffer: Uint8Array = new Uint8Array(128); // buffer for data to hash\n private bufferLength = 0; // number of bytes in buffer\n private bytesHashed = 0; // number of total bytes hashed\n\n finished = false; // indicates whether the hash was finalized\n\n constructor() {\n this.reset();\n }\n\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n reset(): this {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n }\n\n // Cleans internal buffers and re-initializes hash state.\n clean(): void {\n for (let i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (let i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n }\n\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n update(data: Uint8Array, dataLength: number = data.length): this {\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n let dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n }\n\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n finish(out: Uint8Array): this {\n if (!this.finished) {\n const bytesHashed = this.bytesHashed;\n const left = this.bufferLength;\n const bitLenHi = (bytesHashed / 0x20000000) | 0;\n const bitLenLo = bytesHashed << 3;\n const padLength = bytesHashed % 64 < 56 ? 64 : 128;\n\n this.buffer[left] = 0x80;\n for (let i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n\n this.finished = true;\n }\n\n for (let i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return this;\n }\n\n // Returns the final hash digest.\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n // Internal function for use in HMAC for optimization.\n _saveState(out: Uint32Array): void {\n for (let i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n }\n\n // Internal function for use in HMAC for optimization.\n _restoreState(from: Uint32Array, bytesHashed: number): void {\n for (let i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n }\n}\n\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nexport class HMAC {\n private inner: HashSha256 = new HashSha256();\n private outer: HashSha256 = new HashSha256();\n\n blockSize: number = this.inner.blockSize;\n digestLength: number = this.inner.digestLength;\n\n // Copies of hash states after keying.\n // Need for quick reset without hashing they key again.\n private istate: Uint32Array;\n private ostate: Uint32Array;\n\n constructor(key: Uint8Array) {\n const pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n new HashSha256().update(key).finish(pad).clean();\n } else {\n for (let i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n\n for (let i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n reset(): this {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n }\n\n // Cleans HMAC state.\n clean(): void {\n for (let i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n }\n\n // Updates state with provided data.\n update(data: Uint8Array): this {\n this.inner.update(data);\n return this;\n }\n\n // Finalizes HMAC and puts the result in out.\n finish(out: Uint8Array): this {\n if (this.outer.finished) {\n this.outer.finish(out);\n } else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n }\n\n // Returns message authentication code.\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n}\n\n// Returns SHA256 hash of data.\nexport function sha256(data: Uint8Array): Uint8Array {\n const h = new HashSha256().update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n\n// Returns HMAC-SHA256 of data under the key.\nexport function hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array {\n const h = new HMAC(key).update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport * as nacl from \"./nacl-fast.js\";\nimport { sha256 } from \"./sha256.js\";\n\nexport function sha512(data: Uint8Array): Uint8Array {\n return nacl.hash(data);\n}\n\nexport function hmac(\n digest: (d: Uint8Array) => Uint8Array,\n blockSize: number,\n key: Uint8Array,\n message: Uint8Array,\n): Uint8Array {\n if (key.byteLength > blockSize) {\n key = digest(key);\n }\n if (key.byteLength < blockSize) {\n const k = key;\n key = new Uint8Array(blockSize);\n key.set(k, 0);\n }\n const okp = new Uint8Array(blockSize);\n const ikp = new Uint8Array(blockSize);\n for (let i = 0; i < blockSize; i++) {\n ikp[i] = key[i] ^ 0x36;\n okp[i] = key[i] ^ 0x5c;\n }\n const b1 = new Uint8Array(blockSize + message.byteLength);\n b1.set(ikp, 0);\n b1.set(message, blockSize);\n const h0 = digest(b1);\n const b2 = new Uint8Array(blockSize + h0.length);\n b2.set(okp, 0);\n b2.set(h0, blockSize);\n return digest(b2);\n}\n\nexport function hmacSha512(key: Uint8Array, message: Uint8Array): Uint8Array {\n return hmac(sha512, 128, key, message);\n}\n\nexport function hmacSha256(key: Uint8Array, message: Uint8Array): Uint8Array {\n return hmac(sha256, 64, key, message);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Native implementation of GNU Taler crypto primitives.\n */\n\n/**\n * Imports.\n */\nimport * as nacl from \"./nacl-fast.js\";\nimport { hmacSha256, hmacSha512 } from \"./kdf.js\";\nimport bigint from \"big-integer\";\nimport * as argon2 from \"./argon2.js\";\nimport {\n CoinEnvelope,\n CoinPublicKeyString,\n DenominationPubKey,\n DenomKeyType,\n HashCodeString,\n} from \"./taler-types.js\";\nimport { Logger } from \"./logging.js\";\nimport { secretbox } from \"./nacl-fast.js\";\nimport * as fflate from \"fflate\";\nimport { canonicalJson } from \"./helpers.js\";\nimport { TalerProtocolDuration, TalerProtocolTimestamp } from \"./time.js\";\nimport { AmountLike, Amounts } from \"./amounts.js\";\n\nexport type Flavor<T, FlavorT extends string> = T & {\n _flavor?: `taler.${FlavorT}`;\n};\n\nexport type FlavorP<T, FlavorT extends string, S extends number> = T & {\n _flavor?: `taler.${FlavorT}`;\n _size?: S;\n};\n\nexport function getRandomBytes(n: number): Uint8Array {\n return nacl.randomBytes(n);\n}\n\nexport function getRandomBytesF<T extends number, N extends string>(\n n: T,\n): FlavorP<Uint8Array, N, T> {\n return nacl.randomBytes(n);\n}\n\nexport const useNative = true;\n\n/**\n * Interface of the native Taler runtime library.\n */\ninterface NativeTartLib {\n decodeUtf8(buf: Uint8Array): string;\n decodeUtf8(str: string): Uint8Array;\n randomBytes(n: number): Uint8Array;\n encodeCrock(buf: Uint8Array | ArrayBuffer): string;\n decodeCrock(str: string): Uint8Array;\n hash(buf: Uint8Array): Uint8Array;\n hashArgon2id(\n password: Uint8Array,\n salt: Uint8Array,\n iterations: number,\n memorySize: number,\n hashLength: number,\n ): Uint8Array;\n eddsaGetPublic(buf: Uint8Array): Uint8Array;\n ecdheGetPublic(buf: Uint8Array): Uint8Array;\n eddsaSign(msg: Uint8Array, priv: Uint8Array): Uint8Array;\n eddsaVerify(msg: Uint8Array, sig: Uint8Array, pub: Uint8Array): boolean;\n kdf(\n outLen: number,\n ikm: Uint8Array,\n salt?: Uint8Array,\n info?: Uint8Array,\n ): Uint8Array;\n keyExchangeEcdhEddsa(ecdhPriv: Uint8Array, eddsaPub: Uint8Array): Uint8Array;\n keyExchangeEddsaEcdh(eddsaPriv: Uint8Array, ecdhPub: Uint8Array): Uint8Array;\n rsaBlind(hmsg: Uint8Array, bks: Uint8Array, rsaPub: Uint8Array): Uint8Array;\n rsaUnblind(\n blindSig: Uint8Array,\n rsaPub: Uint8Array,\n bks: Uint8Array,\n ): Uint8Array;\n rsaVerify(hmsg: Uint8Array, rsaSig: Uint8Array, rsaPub: Uint8Array): boolean;\n hashStateInit(): any;\n hashStateUpdate(st: any, data: Uint8Array): any;\n hashStateFinish(st: any): Uint8Array;\n}\n\n// @ts-ignore\nlet tart: NativeTartLib | undefined;\n\nif (useNative) {\n // @ts-ignore\n tart = globalThis._tart;\n}\n\nconst encTable = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\n\nclass EncodingError extends Error {\n constructor() {\n super(\"Encoding error\");\n Object.setPrototypeOf(this, EncodingError.prototype);\n }\n}\n\nfunction getValue(chr: string): number {\n let a = chr;\n switch (chr) {\n case \"O\":\n case \"o\":\n a = \"0\";\n break;\n case \"i\":\n case \"I\":\n case \"l\":\n case \"L\":\n a = \"1\";\n break;\n case \"u\":\n case \"U\":\n a = \"V\";\n }\n\n if (a >= \"0\" && a <= \"9\") {\n return a.charCodeAt(0) - \"0\".charCodeAt(0);\n }\n\n if (a >= \"a\" && a <= \"z\") a = a.toUpperCase();\n let dec = 0;\n if (a >= \"A\" && a <= \"Z\") {\n if (\"I\" < a) dec++;\n if (\"L\" < a) dec++;\n if (\"O\" < a) dec++;\n if (\"U\" < a) dec++;\n return a.charCodeAt(0) - \"A\".charCodeAt(0) + 10 - dec;\n }\n throw new EncodingError();\n}\n\nexport function encodeCrock(data: ArrayBuffer): string {\n if (tart) {\n return tart.encodeCrock(data);\n }\n const dataBytes = new Uint8Array(data);\n let sb = \"\";\n const size = data.byteLength;\n let bitBuf = 0;\n let numBits = 0;\n let pos = 0;\n while (pos < size || numBits > 0) {\n if (pos < size && numBits < 5) {\n const d = dataBytes[pos++];\n bitBuf = (bitBuf << 8) | d;\n numBits += 8;\n }\n if (numBits < 5) {\n // zero-padding\n bitBuf = bitBuf << (5 - numBits);\n numBits = 5;\n }\n const v = (bitBuf >>> (numBits - 5)) & 31;\n sb += encTable[v];\n numBits -= 5;\n }\n return sb;\n}\n\nexport function kdf(\n outputLength: number,\n ikm: Uint8Array,\n salt?: Uint8Array,\n info?: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.kdf(outputLength, ikm, salt, info);\n }\n salt = salt ?? new Uint8Array(64);\n // extract\n const prk = hmacSha512(salt, ikm);\n\n info = info ?? new Uint8Array(0);\n\n // expand\n const N = Math.ceil(outputLength / 32);\n const output = new Uint8Array(N * 32);\n for (let i = 0; i < N; i++) {\n let buf;\n if (i == 0) {\n buf = new Uint8Array(info.byteLength + 1);\n buf.set(info, 0);\n } else {\n buf = new Uint8Array(info.byteLength + 1 + 32);\n for (let j = 0; j < 32; j++) {\n buf[j] = output[(i - 1) * 32 + j];\n }\n buf.set(info, 32);\n }\n buf[buf.length - 1] = i + 1;\n const chunk = hmacSha256(prk, buf);\n output.set(chunk, i * 32);\n }\n\n return output.slice(0, outputLength);\n}\n\n/**\n * HMAC-SHA512-SHA256 (see RFC 5869).\n */\nexport function kdfKw(args: {\n outputLength: number;\n ikm: Uint8Array;\n salt?: Uint8Array;\n info?: Uint8Array;\n}) {\n return kdf(args.outputLength, args.ikm, args.salt, args.info);\n}\n\nexport function decodeCrock(encoded: string): Uint8Array {\n if (tart) {\n return tart.decodeCrock(encoded);\n }\n const size = encoded.length;\n let bitpos = 0;\n let bitbuf = 0;\n let readPosition = 0;\n const outLen = Math.floor((size * 5) / 8);\n const out = new Uint8Array(outLen);\n let outPos = 0;\n\n while (readPosition < size || bitpos > 0) {\n if (readPosition < size) {\n const v = getValue(encoded[readPosition++]);\n bitbuf = (bitbuf << 5) | v;\n bitpos += 5;\n }\n while (bitpos >= 8) {\n const d = (bitbuf >>> (bitpos - 8)) & 0xff;\n out[outPos++] = d;\n bitpos -= 8;\n }\n if (readPosition == size && bitpos > 0) {\n bitbuf = (bitbuf << (8 - bitpos)) & 0xff;\n bitpos = bitbuf == 0 ? 0 : 8;\n }\n }\n return out;\n}\n\nexport async function hashArgon2id(\n password: Uint8Array,\n salt: Uint8Array,\n iterations: number,\n memorySize: number,\n hashLength: number,\n): Promise<Uint8Array> {\n if (tart) {\n return tart.hashArgon2id(\n password,\n salt,\n iterations,\n memorySize,\n hashLength,\n );\n }\n return await argon2.hashArgon2id(\n password,\n salt,\n iterations,\n memorySize,\n hashLength,\n );\n}\n\nexport function eddsaGetPublic(eddsaPriv: Uint8Array): Uint8Array {\n if (tart) {\n return tart.eddsaGetPublic(eddsaPriv);\n }\n const pair = nacl.crypto_sign_keyPair_fromSeed(eddsaPriv);\n return pair.publicKey;\n}\n\nexport function ecdhGetPublic(ecdhePriv: Uint8Array): Uint8Array {\n if (tart) {\n return tart.ecdheGetPublic(ecdhePriv);\n }\n return nacl.scalarMult_base(ecdhePriv);\n}\n\nexport function keyExchangeEddsaEcdh(\n eddsaPriv: Uint8Array,\n ecdhPub: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.keyExchangeEddsaEcdh(eddsaPriv, ecdhPub);\n }\n const ph = hash(eddsaPriv);\n const a = new Uint8Array(32);\n for (let i = 0; i < 32; i++) {\n a[i] = ph[i];\n }\n const x = nacl.scalarMult(a, ecdhPub);\n return hash(x);\n}\n\nexport function keyExchangeEcdhEddsa(\n ecdhPriv: Uint8Array & MaterialEcdhePriv,\n eddsaPub: Uint8Array & MaterialEddsaPub,\n): Uint8Array {\n if (tart) {\n return tart.keyExchangeEcdhEddsa(ecdhPriv, eddsaPub);\n }\n const curve25519Pub = nacl.sign_ed25519_pk_to_curve25519(eddsaPub);\n const x = nacl.scalarMult(ecdhPriv, curve25519Pub);\n return hash(x);\n}\n\ninterface RsaPub {\n N: bigint.BigInteger;\n e: bigint.BigInteger;\n}\n\n/**\n * KDF modulo a big integer.\n */\nfunction kdfMod(\n n: bigint.BigInteger,\n ikm: Uint8Array,\n salt: Uint8Array,\n info: Uint8Array,\n): bigint.BigInteger {\n const nbits = n.bitLength().toJSNumber();\n const buflen = Math.floor((nbits - 1) / 8 + 1);\n const mask = (1 << (8 - (buflen * 8 - nbits))) - 1;\n let counter = 0;\n while (true) {\n const ctx = new Uint8Array(info.byteLength + 2);\n ctx.set(info, 0);\n ctx[ctx.length - 2] = (counter >>> 8) & 0xff;\n ctx[ctx.length - 1] = counter & 0xff;\n const buf = kdf(buflen, ikm, salt, ctx);\n const arr = Array.from(buf);\n arr[0] = arr[0] & mask;\n const r = bigint.fromArray(arr, 256, false);\n if (r.lt(n)) {\n return r;\n }\n counter++;\n }\n}\n\nfunction csKdfMod(\n n: bigint.BigInteger,\n ikm: Uint8Array,\n salt: Uint8Array,\n info: Uint8Array,\n): Uint8Array {\n const nbits = n.bitLength().toJSNumber();\n const buflen = Math.floor((nbits - 1) / 8 + 1);\n const mask = (1 << (8 - (buflen * 8 - nbits))) - 1;\n let counter = 0;\n while (true) {\n const ctx = new Uint8Array(info.byteLength + 2);\n ctx.set(info, 0);\n ctx[ctx.length - 2] = (counter >>> 8) & 0xff;\n ctx[ctx.length - 1] = counter & 0xff;\n const buf = kdf(buflen, ikm, salt, ctx);\n const arr = Array.from(buf);\n arr[0] = arr[0] & mask;\n const r = bigint.fromArray(arr, 256, false);\n if (r.lt(n)) {\n return new Uint8Array(arr);\n }\n counter++;\n }\n}\n\n// Newer versions of node have TextEncoder and TextDecoder as a global,\n// just like modern browsers.\n// In older versions of node or environments that do not have these\n// globals, they must be polyfilled (by adding them to global/globalThis)\n// before stringToBytes or bytesToString is called the first time.\n\nlet encoder: any;\nlet decoder: any;\n\nexport function stringToBytes(s: string): Uint8Array {\n if (!encoder) {\n encoder = new TextEncoder();\n }\n return encoder.encode(s);\n}\n\nexport function bytesToString(b: Uint8Array): string {\n if (!decoder) {\n decoder = new TextDecoder();\n }\n return decoder.decode(b);\n}\n\nfunction loadBigInt(arr: Uint8Array): bigint.BigInteger {\n return bigint.fromArray(Array.from(arr), 256, false);\n}\n\nfunction rsaBlindingKeyDerive(\n rsaPub: RsaPub,\n bks: Uint8Array,\n): bigint.BigInteger {\n const salt = stringToBytes(\"Blinding KDF extractor HMAC key\");\n const info = stringToBytes(\"Blinding KDF\");\n return kdfMod(rsaPub.N, bks, salt, info);\n}\n\n/*\n * Test for malicious RSA key.\n *\n * Assuming n is an RSA modulous and r is generated using a call to\n * GNUNET_CRYPTO_kdf_mod_mpi, if gcd(r,n) != 1 then n must be a\n * malicious RSA key designed to deanomize the user.\n *\n * @param r KDF result\n * @param n RSA modulus of the public key\n */\nfunction rsaGcdValidate(r: bigint.BigInteger, n: bigint.BigInteger): void {\n const t = bigint.gcd(r, n);\n if (!t.equals(bigint.one)) {\n throw Error(\"malicious RSA public key\");\n }\n}\n\nfunction rsaFullDomainHash(hm: Uint8Array, rsaPub: RsaPub): bigint.BigInteger {\n const info = stringToBytes(\"RSA-FDA FTpsW!\");\n const salt = rsaPubEncode(rsaPub);\n const r = kdfMod(rsaPub.N, hm, salt, info);\n rsaGcdValidate(r, rsaPub.N);\n return r;\n}\n\nfunction rsaPubDecode(rsaPub: Uint8Array): RsaPub {\n const modulusLength = (rsaPub[0] << 8) | rsaPub[1];\n const exponentLength = (rsaPub[2] << 8) | rsaPub[3];\n if (4 + exponentLength + modulusLength != rsaPub.length) {\n throw Error(\"invalid RSA public key (format wrong)\");\n }\n const modulus = rsaPub.slice(4, 4 + modulusLength);\n const exponent = rsaPub.slice(\n 4 + modulusLength,\n 4 + modulusLength + exponentLength,\n );\n const res = {\n N: loadBigInt(modulus),\n e: loadBigInt(exponent),\n };\n return res;\n}\n\nfunction rsaPubEncode(rsaPub: RsaPub): Uint8Array {\n const mb = rsaPub.N.toArray(256).value;\n const eb = rsaPub.e.toArray(256).value;\n const out = new Uint8Array(4 + mb.length + eb.length);\n out[0] = (mb.length >>> 8) & 0xff;\n out[1] = mb.length & 0xff;\n out[2] = (eb.length >>> 8) & 0xff;\n out[3] = eb.length & 0xff;\n out.set(mb, 4);\n out.set(eb, 4 + mb.length);\n return out;\n}\n\nexport function rsaBlind(\n hm: Uint8Array,\n bks: Uint8Array,\n rsaPubEnc: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.rsaBlind(hm, bks, rsaPubEnc);\n }\n const rsaPub = rsaPubDecode(rsaPubEnc);\n const data = rsaFullDomainHash(hm, rsaPub);\n const r = rsaBlindingKeyDerive(rsaPub, bks);\n const r_e = r.modPow(rsaPub.e, rsaPub.N);\n const bm = r_e.multiply(data).mod(rsaPub.N);\n return new Uint8Array(bm.toArray(256).value);\n}\n\nexport function rsaUnblind(\n sig: Uint8Array,\n rsaPubEnc: Uint8Array,\n bks: Uint8Array,\n): Uint8Array {\n if (tart) {\n return tart.rsaUnblind(sig, rsaPubEnc, bks);\n }\n const rsaPub = rsaPubDecode(rsaPubEnc);\n const blinded_s = loadBigInt(sig);\n const r = rsaBlindingKeyDerive(rsaPub, bks);\n const r_inv = r.modInv(rsaPub.N);\n const s = blinded_s.multiply(r_inv).mod(rsaPub.N);\n return new Uint8Array(s.toArray(256).value);\n}\n\nexport function rsaVerify(\n hm: Uint8Array,\n rsaSig: Uint8Array,\n rsaPubEnc: Uint8Array,\n): boolean {\n if (tart) {\n return tart.rsaVerify(hm, rsaSig, rsaPubEnc);\n }\n const rsaPub = rsaPubDecode(rsaPubEnc);\n const d = rsaFullDomainHash(hm, rsaPub);\n const sig = loadBigInt(rsaSig);\n const sig_e = sig.modPow(rsaPub.e, rsaPub.N);\n return sig_e.equals(d);\n}\n\nexport type CsSignature = {\n s: Uint8Array;\n rPub: Uint8Array;\n};\n\nexport type CsBlindSignature = {\n sBlind: Uint8Array;\n rPubBlind: Uint8Array;\n};\n\nexport type CsBlindingSecrets = {\n alpha: [Uint8Array, Uint8Array];\n beta: [Uint8Array, Uint8Array];\n};\n\nexport function typedArrayConcat(chunks: Uint8Array[]): Uint8Array {\n let payloadLen = 0;\n for (const c of chunks) {\n payloadLen += c.byteLength;\n }\n const buf = new ArrayBuffer(payloadLen);\n const u8buf = new Uint8Array(buf);\n let p = 0;\n for (const c of chunks) {\n u8buf.set(c, p);\n p += c.byteLength;\n }\n return u8buf;\n}\n\n/**\n * Map to scalar subgroup function\n * perform clamping as described in RFC7748\n * @param scalar\n */\nfunction mtoSS(scalar: Uint8Array): Uint8Array {\n scalar[0] &= 248;\n scalar[31] &= 127;\n scalar[31] |= 64;\n return scalar;\n}\n\n/**\n * The function returns the CS blinding secrets from a seed\n * @param bseed seed to derive blinding secrets\n * @returns blinding secrets\n */\nexport function deriveSecrets(bseed: Uint8Array): CsBlindingSecrets {\n const outLen = 130;\n const salt = stringToBytes(\"alphabeta\");\n const rndout = kdf(outLen, bseed, salt);\n const secrets: CsBlindingSecrets = {\n alpha: [mtoSS(rndout.slice(0, 32)), mtoSS(rndout.slice(64, 96))],\n beta: [mtoSS(rndout.slice(32, 64)), mtoSS(rndout.slice(96, 128))],\n };\n return secrets;\n}\n\n/**\n * calculation of the blinded public point R in CS\n * @param csPub denomination publik key\n * @param secrets client blinding secrets\n * @param rPub public R received from /csr API\n */\nexport async function calcRBlind(\n csPub: Uint8Array,\n secrets: CsBlindingSecrets,\n rPub: [Uint8Array, Uint8Array],\n): Promise<[Uint8Array, Uint8Array]> {\n const aG0 = nacl.crypto_scalarmult_ed25519_base_noclamp(secrets.alpha[0]);\n const aG1 = nacl.crypto_scalarmult_ed25519_base_noclamp(secrets.alpha[1]);\n\n const bDp0 = nacl.crypto_scalarmult_ed25519_noclamp(secrets.beta[0], csPub);\n const bDp1 = nacl.crypto_scalarmult_ed25519_noclamp(secrets.beta[1], csPub);\n\n const res0 = nacl.crypto_core_ed25519_add(aG0, bDp0);\n const res1 = nacl.crypto_core_ed25519_add(aG1, bDp1);\n return [\n nacl.crypto_core_ed25519_add(rPub[0], res0),\n nacl.crypto_core_ed25519_add(rPub[1], res1),\n ];\n}\n\n/**\n * FDH function used in CS\n * @param hm message hash\n * @param rPub public R included in FDH\n * @param csPub denomination public key as context\n * @returns mapped Curve25519 scalar\n */\nfunction csFDH(\n hm: Uint8Array,\n rPub: Uint8Array,\n csPub: Uint8Array,\n): Uint8Array {\n const lMod = Array.from(\n new Uint8Array([\n 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x14, 0xde, 0xf9, 0xde, 0xa2, 0xf7, 0x9c, 0xd6,\n 0x58, 0x12, 0x63, 0x1a, 0x5c, 0xf5, 0xd3, 0xed,\n ]),\n );\n const L = bigint.fromArray(lMod, 256, false);\n\n const info = stringToBytes(\"Curve25519FDH\");\n const preshash = hash(typedArrayConcat([rPub, hm]));\n return csKdfMod(L, preshash, csPub, info).reverse();\n}\n\n/**\n * blinding seed derived from coin private key\n * @param coinPriv private key of the corresponding coin\n * @param rPub public R received from /csr API\n * @returns blinding seed\n */\nexport function deriveBSeed(\n coinPriv: Uint8Array,\n rPub: [Uint8Array, Uint8Array],\n): Uint8Array {\n const outLen = 32;\n const salt = stringToBytes(\"b-seed\");\n const ikm = typedArrayConcat([coinPriv, rPub[0], rPub[1]]);\n return kdf(outLen, ikm, salt);\n}\n\n/**\n * Derive withdraw nonce, used in /csr request\n * Note: In withdraw protocol, the nonce is chosen randomly\n * @param coinPriv coin private key\n * @returns nonce\n */\nexport function deriveWithdrawNonce(coinPriv: Uint8Array): Uint8Array {\n const outLen = 32;\n const salt = stringToBytes(\"n\");\n return kdf(outLen, coinPriv, salt);\n}\n\n/**\n * Blind operation for CS signatures, used after /csr call\n * @param bseed blinding seed to derive blinding secrets\n * @param rPub public R received from /csr\n * @param csPub denomination public key\n * @param hm message to blind\n * @returns two blinded c\n */\nexport async function csBlind(\n bseed: Uint8Array,\n rPub: [Uint8Array, Uint8Array],\n csPub: Uint8Array,\n hm: Uint8Array,\n): Promise<[Uint8Array, Uint8Array]> {\n const secrets = deriveSecrets(bseed);\n const rPubBlind = await calcRBlind(csPub, secrets, rPub);\n const c_0 = csFDH(hm, rPubBlind[0], csPub);\n const c_1 = csFDH(hm, rPubBlind[1], csPub);\n return [\n nacl.crypto_core_ed25519_scalar_add(c_0, secrets.beta[0]),\n nacl.crypto_core_ed25519_scalar_add(c_1, secrets.beta[1]),\n ];\n}\n\n/**\n * Unblind operation to unblind the signature\n * @param bseed seed to derive secrets\n * @param rPub public R received from /csr\n * @param csPub denomination public key\n * @param b returned from exchange to select c\n * @param csSig blinded signature\n * @returns unblinded signature\n */\nexport async function csUnblind(\n bseed: Uint8Array,\n rPub: [Uint8Array, Uint8Array],\n csPub: Uint8Array,\n b: number,\n csSig: CsBlindSignature,\n): Promise<CsSignature> {\n if (b != 0 && b != 1) {\n throw new Error();\n }\n const secrets = deriveSecrets(bseed);\n const rPubDash = (await calcRBlind(csPub, secrets, rPub))[b];\n const sig: CsSignature = {\n s: nacl.crypto_core_ed25519_scalar_add(csSig.sBlind, secrets.alpha[b]),\n rPub: rPubDash,\n };\n return sig;\n}\n\n/**\n * Verification algorithm for CS signatures\n * @param hm message signed\n * @param csSig unblinded signature\n * @param csPub denomination public key\n * @returns true if valid, false if invalid\n */\nexport async function csVerify(\n hm: Uint8Array,\n csSig: CsSignature,\n csPub: Uint8Array,\n): Promise<boolean> {\n const cDash = csFDH(hm, csSig.rPub, csPub);\n const sG = nacl.crypto_scalarmult_ed25519_base_noclamp(csSig.s);\n const cbDp = nacl.crypto_scalarmult_ed25519_noclamp(cDash, csPub);\n const sGeq = nacl.crypto_core_ed25519_add(csSig.rPub, cbDp);\n return nacl.verify(sG, sGeq);\n}\n\nexport interface EddsaKeyPair {\n eddsaPub: Uint8Array;\n eddsaPriv: Uint8Array;\n}\n\nexport interface EcdheKeyPair {\n ecdhePub: Uint8Array;\n ecdhePriv: Uint8Array;\n}\n\nexport interface Edx25519Keypair {\n edxPub: string;\n edxPriv: string;\n}\n\nexport function createEddsaKeyPair(): EddsaKeyPair {\n const eddsaPriv = nacl.randomBytes(32);\n const eddsaPub = eddsaGetPublic(eddsaPriv);\n return { eddsaPriv, eddsaPub };\n}\n\nexport function createEcdheKeyPair(): EcdheKeyPair {\n const ecdhePriv = nacl.randomBytes(32);\n const ecdhePub = ecdhGetPublic(ecdhePriv);\n return { ecdhePriv, ecdhePub };\n}\n\nexport function hash(d: Uint8Array): Uint8Array {\n if (tart) {\n return tart.hash(d);\n }\n return nacl.hash(d);\n}\n\n/**\n * Hash the input with SHA-512 and truncate the result\n * to 32 bytes.\n */\nexport function hashTruncate32(d: Uint8Array): Uint8Array {\n const sha512HashCode = hash(d);\n return sha512HashCode.subarray(0, 32);\n}\n\nexport function hashCoinEv(\n coinEv: CoinEnvelope,\n denomPubHash: HashCodeString,\n): Uint8Array {\n const hashContext = createHashContext();\n hashContext.update(decodeCrock(denomPubHash));\n hashCoinEvInner(coinEv, hashContext);\n return hashContext.finish();\n}\n\nconst logger = new Logger(\"talerCrypto.ts\");\n\nexport function hashCoinEvInner(\n coinEv: CoinEnvelope,\n hashState: TalerHashState,\n): void {\n const hashInputBuf = new ArrayBuffer(4);\n const uint8ArrayBuf = new Uint8Array(hashInputBuf);\n const dv = new DataView(hashInputBuf);\n dv.setUint32(0, DenomKeyType.toIntTag(coinEv.cipher));\n hashState.update(uint8ArrayBuf);\n switch (coinEv.cipher) {\n case DenomKeyType.Rsa:\n hashState.update(decodeCrock(coinEv.rsa_blinded_planchet));\n return;\n default:\n throw new Error();\n }\n}\n\nexport function hashCoinPub(\n coinPub: CoinPublicKeyString,\n ach?: HashCodeString,\n): Uint8Array {\n if (!ach) {\n return hash(decodeCrock(coinPub));\n }\n\n return hash(typedArrayConcat([decodeCrock(coinPub), decodeCrock(ach)]));\n}\n\n/**\n * Hash a denomination public key.\n */\nexport function hashDenomPub(pub: DenominationPubKey): Uint8Array {\n if (pub.cipher === DenomKeyType.Rsa) {\n const pubBuf = decodeCrock(pub.rsa_public_key);\n const hashInputBuf = new ArrayBuffer(pubBuf.length + 4 + 4);\n const uint8ArrayBuf = new Uint8Array(hashInputBuf);\n const dv = new DataView(hashInputBuf);\n dv.setUint32(0, pub.age_mask ?? 0);\n dv.setUint32(4, DenomKeyType.toIntTag(pub.cipher));\n uint8ArrayBuf.set(pubBuf, 8);\n return hash(uint8ArrayBuf);\n } else if (pub.cipher === DenomKeyType.ClauseSchnorr) {\n const pubBuf = decodeCrock(pub.cs_public_key);\n const hashInputBuf = new ArrayBuffer(pubBuf.length + 4 + 4);\n const uint8ArrayBuf = new Uint8Array(hashInputBuf);\n const dv = new DataView(hashInputBuf);\n dv.setUint32(0, pub.age_mask ?? 0);\n dv.setUint32(4, DenomKeyType.toIntTag(pub.cipher));\n uint8ArrayBuf.set(pubBuf, 8);\n return hash(uint8ArrayBuf);\n } else {\n throw Error(\n `unsupported cipher (${(pub as DenominationPubKey).cipher\n }), unable to hash`,\n );\n }\n}\n\nexport function eddsaSign(msg: Uint8Array, eddsaPriv: Uint8Array): Uint8Array {\n if (tart) {\n return tart.eddsaSign(msg, eddsaPriv);\n }\n const pair = nacl.crypto_sign_keyPair_fromSeed(eddsaPriv);\n return nacl.sign_detached(msg, pair.secretKey);\n}\n\nexport function eddsaVerify(\n msg: Uint8Array,\n sig: Uint8Array,\n eddsaPub: Uint8Array,\n): boolean {\n if (tart) {\n return tart.eddsaVerify(msg, sig, eddsaPub);\n }\n return nacl.sign_detached_verify(msg, sig, eddsaPub);\n}\n\nexport interface TalerHashState {\n update(data: Uint8Array): void;\n finish(): Uint8Array;\n}\n\nexport function createHashContext(): TalerHashState {\n if (tart) {\n const t = tart;\n const st = tart.hashStateInit();\n return {\n finish: () => t.hashStateFinish(st),\n update: (d) => t.hashStateUpdate(st, d),\n };\n }\n return new nacl.HashState();\n}\n\nexport interface FreshCoin {\n coinPub: Uint8Array;\n coinPriv: Uint8Array;\n bks: Uint8Array;\n maxAge: number;\n ageCommitmentProof: AgeCommitmentProof | undefined;\n}\n\nexport function bufferForUint32(n: number): Uint8Array {\n const arrBuf = new ArrayBuffer(4);\n const buf = new Uint8Array(arrBuf);\n const dv = new DataView(arrBuf);\n dv.setUint32(0, n);\n return buf;\n}\n\n/**\n * This makes the assumption that the uint64 fits a float,\n * which should be true for all Taler protocol messages.\n */\nexport function bufferForUint64(n: number): Uint8Array {\n const arrBuf = new ArrayBuffer(8);\n const buf = new Uint8Array(arrBuf);\n const dv = new DataView(arrBuf);\n if (n < 0 || !Number.isInteger(n)) {\n throw Error(\"non-negative integer expected\");\n }\n dv.setBigUint64(0, BigInt(n));\n return buf;\n}\n\nexport function bufferForUint8(n: number): Uint8Array {\n const arrBuf = new ArrayBuffer(1);\n const buf = new Uint8Array(arrBuf);\n const dv = new DataView(arrBuf);\n dv.setUint8(0, n);\n return buf;\n}\n\nexport async function setupTipPlanchet(\n secretSeed: Uint8Array,\n denomPub: DenominationPubKey,\n coinNumber: number,\n): Promise<FreshCoin> {\n const info = stringToBytes(\"taler-tip-coin-derivation\");\n const saltArrBuf = new ArrayBuffer(4);\n const salt = new Uint8Array(saltArrBuf);\n const saltDataView = new DataView(saltArrBuf);\n saltDataView.setUint32(0, coinNumber);\n const out = kdf(64, secretSeed, salt, info);\n const coinPriv = out.slice(0, 32);\n const bks = out.slice(32, 64);\n let maybeAcp: AgeCommitmentProof | undefined;\n if (denomPub.age_mask != 0) {\n maybeAcp = await AgeRestriction.restrictionCommitSeeded(\n denomPub.age_mask,\n AgeRestriction.AGE_UNRESTRICTED,\n secretSeed,\n );\n }\n return {\n bks,\n coinPriv,\n coinPub: eddsaGetPublic(coinPriv),\n maxAge: AgeRestriction.AGE_UNRESTRICTED,\n ageCommitmentProof: maybeAcp,\n };\n}\n/**\n *\n * @param paytoUri\n * @param salt 16-byte salt\n * @returns\n */\nexport function hashWire(paytoUri: string, salt: string): string {\n const r = kdf(\n 64,\n stringToBytes(paytoUri + \"\\0\"),\n decodeCrock(salt),\n stringToBytes(\"merchant-wire-signature\"),\n );\n return encodeCrock(r);\n}\n\nexport enum TalerSignaturePurpose {\n MERCHANT_TRACK_TRANSACTION = 1103,\n WALLET_RESERVE_WITHDRAW = 1200,\n WALLET_COIN_DEPOSIT = 1201,\n GLOBAL_FEES = 1022,\n MASTER_DENOMINATION_KEY_VALIDITY = 1025,\n MASTER_WIRE_FEES = 1028,\n MASTER_WIRE_DETAILS = 1030,\n WALLET_COIN_MELT = 1202,\n TEST = 4242,\n MERCHANT_PAYMENT_OK = 1104,\n MERCHANT_CONTRACT = 1101,\n MERCHANT_REFUND = 1102,\n WALLET_COIN_RECOUP = 1203,\n WALLET_COIN_LINK = 1204,\n WALLET_COIN_RECOUP_REFRESH = 1206,\n WALLET_AGE_ATTESTATION = 1207,\n WALLET_PURSE_CREATE = 1210,\n WALLET_PURSE_DEPOSIT = 1211,\n WALLET_PURSE_MERGE = 1213,\n WALLET_ACCOUNT_MERGE = 1214,\n WALLET_PURSE_ECONTRACT = 1216,\n WALLET_PURSE_DELETE = 1220,\n WALLET_COIN_HISTORY = 1209,\n EXCHANGE_CONFIRM_RECOUP = 1039,\n EXCHANGE_CONFIRM_RECOUP_REFRESH = 1041,\n TALER_SIGNATURE_AML_DECISION = 1350,\n TALER_SIGNATURE_AML_QUERY = 1351,\n TALER_SIGNATURE_MASTER_AML_KEY = 1017,\n ANASTASIS_POLICY_UPLOAD = 1400,\n ANASTASIS_POLICY_DOWNLOAD = 1401,\n SYNC_BACKUP_UPLOAD = 1450,\n}\n\nexport enum WalletAccountMergeFlags {\n /**\n * Not a legal mode!\n */\n None = 0,\n\n /**\n * We are merging a fully paid-up purse into a reserve.\n */\n MergeFullyPaidPurse = 1,\n\n CreateFromPurseQuota = 2,\n\n CreateWithPurseFee = 3,\n}\n\nexport class SignaturePurposeBuilder {\n private chunks: Uint8Array[] = [];\n\n constructor(private purposeNum: number) { }\n\n put(bytes: Uint8Array): SignaturePurposeBuilder {\n this.chunks.push(Uint8Array.from(bytes));\n return this;\n }\n\n build(): Uint8Array {\n let payloadLen = 0;\n for (const c of this.chunks) {\n payloadLen += c.byteLength;\n }\n const buf = new ArrayBuffer(4 + 4 + payloadLen);\n const u8buf = new Uint8Array(buf);\n let p = 8;\n for (const c of this.chunks) {\n u8buf.set(c, p);\n p += c.byteLength;\n }\n const dvbuf = new DataView(buf);\n dvbuf.setUint32(0, payloadLen + 4 + 4);\n dvbuf.setUint32(4, this.purposeNum);\n return u8buf;\n }\n}\n\nexport function buildSigPS(purposeNum: number): SignaturePurposeBuilder {\n return new SignaturePurposeBuilder(purposeNum);\n}\n\nexport type OpaqueData = Flavor<Uint8Array, any>;\nexport type Edx25519PublicKey = FlavorP<Uint8Array, \"Edx25519PublicKey\", 32>;\nexport type Edx25519PrivateKey = FlavorP<Uint8Array, \"Edx25519PrivateKey\", 64>;\nexport type Edx25519Signature = FlavorP<Uint8Array, \"Edx25519Signature\", 64>;\n\nexport type Edx25519PublicKeyEnc = FlavorP<string, \"Edx25519PublicKeyEnc\", 32>;\nexport type Edx25519PrivateKeyEnc = FlavorP<\n string,\n \"Edx25519PrivateKeyEnc\",\n 64\n>;\n\n/**\n * Convert a big integer to a fixed-size, little-endian array.\n */\nexport function bigintToNaclArr(\n x: bigint.BigInteger,\n size: number,\n): Uint8Array {\n const byteArr = new Uint8Array(size);\n const arr = x.toArray(256).value.reverse();\n byteArr.set(arr, 0);\n return byteArr;\n}\n\nexport function bigintFromNaclArr(arr: Uint8Array): bigint.BigInteger {\n let rev = new Uint8Array(arr);\n rev = rev.reverse();\n return bigint.fromArray(Array.from(rev), 256, false);\n}\n\nexport namespace Edx25519 {\n const revL = [\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,\n 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10,\n ];\n\n const L = bigint.fromArray(revL.reverse(), 256, false);\n\n export async function keyCreateFromSeed(\n seed: OpaqueData,\n ): Promise<Edx25519PrivateKey> {\n return nacl.crypto_edx25519_private_key_create_from_seed(seed);\n }\n\n export async function keyCreate(): Promise<Edx25519PrivateKey> {\n return nacl.crypto_edx25519_private_key_create();\n }\n\n export async function getPublic(\n priv: Edx25519PrivateKey,\n ): Promise<Edx25519PublicKey> {\n return nacl.crypto_edx25519_get_public(priv);\n }\n\n export function sign(\n msg: OpaqueData,\n key: Edx25519PrivateKey,\n ): Promise<Edx25519Signature> {\n throw Error(\"not implemented\");\n }\n\n async function deriveFactor(\n pub: Edx25519PublicKey,\n seed: OpaqueData,\n ): Promise<OpaqueData> {\n const res = kdfKw({\n outputLength: 64,\n salt: seed,\n ikm: pub,\n info: stringToBytes(\"edx25519-derivation\"),\n });\n\n return res;\n }\n\n export async function privateKeyDerive(\n priv: Edx25519PrivateKey,\n seed: OpaqueData,\n ): Promise<Edx25519PrivateKey> {\n const pub = await getPublic(priv);\n const privDec = priv;\n const a = bigintFromNaclArr(privDec.subarray(0, 32));\n const factorEnc = await deriveFactor(pub, seed);\n const factorModL = bigintFromNaclArr(factorEnc).mod(L);\n\n const aPrime = a.divide(8).multiply(factorModL).mod(L).multiply(8).mod(L);\n const bPrime = nacl\n .hash(typedArrayConcat([privDec.subarray(32, 64), factorEnc]))\n .subarray(0, 32);\n\n const newPriv = typedArrayConcat([bigintToNaclArr(aPrime, 32), bPrime]);\n\n return newPriv;\n }\n\n export async function publicKeyDerive(\n pub: Edx25519PublicKey,\n seed: OpaqueData,\n ): Promise<Edx25519PublicKey> {\n const factorEnc = await deriveFactor(pub, seed);\n const factorReduced = nacl.crypto_core_ed25519_scalar_reduce(factorEnc);\n const res = nacl.crypto_scalarmult_ed25519_noclamp(factorReduced, pub);\n return res;\n }\n}\n\nexport interface AgeCommitment {\n mask: number;\n\n /**\n * Public keys, one for each age group specified in the age mask.\n */\n publicKeys: Edx25519PublicKeyEnc[];\n}\n\nexport interface AgeProof {\n /**\n * Private keys. Typically smaller than the number of public keys,\n * because we drop private keys from age groups that are restricted.\n */\n privateKeys: Edx25519PrivateKeyEnc[];\n}\n\nexport interface AgeCommitmentProof {\n commitment: AgeCommitment;\n proof: AgeProof;\n}\n\nfunction invariant(cond: boolean): asserts cond {\n if (!cond) {\n throw Error(\"invariant failed\");\n }\n}\n\nexport namespace AgeRestriction {\n /**\n * Smallest age value that the protocol considers \"unrestricted\".\n */\n export const AGE_UNRESTRICTED = 32;\n\n export function hashCommitment(ac: AgeCommitment): HashCodeString {\n const hc = new nacl.HashState();\n for (const pub of ac.publicKeys) {\n hc.update(decodeCrock(pub));\n }\n return encodeCrock(hc.finish().subarray(0, 32));\n }\n\n export function countAgeGroups(mask: number): number {\n let count = 0;\n let m = mask;\n while (m > 0) {\n count += m & 1;\n m = m >> 1;\n }\n return count;\n }\n\n /**\n * Get the starting points for age groups in the mask.\n */\n export function getAgeGroupsFromMask(mask: number): number[] {\n const groups: number[] = [];\n let age = 1;\n let m = mask >> 1;\n while (m > 0) {\n if (m & 1) {\n groups.push(age);\n }\n m = m >> 1;\n age++;\n }\n return groups;\n }\n\n export function getAgeGroupIndex(mask: number, age: number): number {\n invariant((mask & 1) === 1);\n let i = 0;\n let m = mask;\n let a = age;\n while (m > 0) {\n if (a <= 0) {\n break;\n }\n m = m >> 1;\n i += m & 1;\n a--;\n }\n return i;\n }\n\n export function ageGroupSpecToMask(ageGroupSpec: string): number {\n throw Error(\"not implemented\");\n }\n\n export async function restrictionCommit(\n ageMask: number,\n age: number,\n ): Promise<AgeCommitmentProof> {\n invariant((ageMask & 1) === 1);\n const numPubs = countAgeGroups(ageMask) - 1;\n const numPrivs = getAgeGroupIndex(ageMask, age);\n\n const pubs: Edx25519PublicKey[] = [];\n const privs: Edx25519PrivateKey[] = [];\n\n for (let i = 0; i < numPubs; i++) {\n const priv = await Edx25519.keyCreate();\n const pub = await Edx25519.getPublic(priv);\n pubs.push(pub);\n if (i < numPrivs) {\n privs.push(priv);\n }\n }\n\n return {\n commitment: {\n mask: ageMask,\n publicKeys: pubs.map((x) => encodeCrock(x)),\n },\n proof: {\n privateKeys: privs.map((x) => encodeCrock(x)),\n },\n };\n }\n\n const PublishedAgeRestrictionBaseKey: Edx25519PublicKey = decodeCrock(\n \"CH0VKFDZ2GWRWHQBBGEK9MWV5YDQVJ0RXEE0KYT3NMB69F0R96TG\",\n );\n\n export async function restrictionCommitSeeded(\n ageMask: number,\n age: number,\n seed: Uint8Array,\n ): Promise<AgeCommitmentProof> {\n invariant((ageMask & 1) === 1);\n const numPubs = countAgeGroups(ageMask) - 1;\n const numPrivs = getAgeGroupIndex(ageMask, age);\n\n const pubs: Edx25519PublicKey[] = [];\n const privs: Edx25519PrivateKey[] = [];\n\n for (let i = 0; i < numPrivs; i++) {\n const privSeed = await kdfKw({\n outputLength: 32,\n ikm: seed,\n info: stringToBytes(\"age-commitment\"),\n salt: bufferForUint32(i),\n });\n\n const priv = await Edx25519.keyCreateFromSeed(privSeed);\n const pub = await Edx25519.getPublic(priv);\n pubs.push(pub);\n privs.push(priv);\n }\n\n for (let i = numPrivs; i < numPubs; i++) {\n const deriveSeed = await kdfKw({\n outputLength: 32,\n ikm: seed,\n info: stringToBytes(\"age-factor\"),\n salt: bufferForUint32(i),\n });\n const pub = await Edx25519.publicKeyDerive(\n PublishedAgeRestrictionBaseKey,\n deriveSeed,\n );\n pubs.push(pub);\n }\n\n return {\n commitment: {\n mask: ageMask,\n publicKeys: pubs.map((x) => encodeCrock(x)),\n },\n proof: {\n privateKeys: privs.map((x) => encodeCrock(x)),\n },\n };\n }\n\n /**\n * Check that c1 = c2*salt\n */\n export async function commitCompare(\n c1: AgeCommitment,\n c2: AgeCommitment,\n salt: OpaqueData,\n ): Promise<boolean> {\n if (c1.publicKeys.length != c2.publicKeys.length) {\n return false;\n }\n for (let i = 0; i < c1.publicKeys.length; i++) {\n const k1 = decodeCrock(c1.publicKeys[i]);\n const k2 = await Edx25519.publicKeyDerive(\n decodeCrock(c2.publicKeys[i]),\n salt,\n );\n if (k1 != k2) {\n return false;\n }\n }\n return true;\n }\n\n export async function commitmentDerive(\n commitmentProof: AgeCommitmentProof,\n salt: OpaqueData,\n ): Promise<AgeCommitmentProof> {\n const newPrivs: Edx25519PrivateKey[] = [];\n const newPubs: Edx25519PublicKey[] = [];\n\n for (const oldPub of commitmentProof.commitment.publicKeys) {\n newPubs.push(await Edx25519.publicKeyDerive(decodeCrock(oldPub), salt));\n }\n\n for (const oldPriv of commitmentProof.proof.privateKeys) {\n newPrivs.push(\n await Edx25519.privateKeyDerive(decodeCrock(oldPriv), salt),\n );\n }\n\n return {\n commitment: {\n mask: commitmentProof.commitment.mask,\n publicKeys: newPubs.map((x) => encodeCrock(x)),\n },\n proof: {\n privateKeys: newPrivs.map((x) => encodeCrock(x)),\n },\n };\n }\n\n export function commitmentAttest(\n commitmentProof: AgeCommitmentProof,\n age: number,\n ): Edx25519Signature {\n const d = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION)\n .put(bufferForUint32(commitmentProof.commitment.mask))\n .put(bufferForUint32(age))\n .build();\n const group = getAgeGroupIndex(commitmentProof.commitment.mask, age);\n if (group === 0) {\n // No attestation required.\n return new Uint8Array(64);\n }\n const priv = commitmentProof.proof.privateKeys[group - 1];\n const pub = commitmentProof.commitment.publicKeys[group - 1];\n const sig = nacl.crypto_edx25519_sign_detached(\n d,\n decodeCrock(priv),\n decodeCrock(pub),\n );\n return sig;\n }\n\n export function commitmentVerify(\n commitment: AgeCommitment,\n sig: string,\n age: number,\n ): boolean {\n const d = buildSigPS(TalerSignaturePurpose.WALLET_AGE_ATTESTATION)\n .put(bufferForUint32(commitment.mask))\n .put(bufferForUint32(age))\n .build();\n const group = getAgeGroupIndex(commitment.mask, age);\n if (group === 0) {\n // No attestation required.\n return true;\n }\n const pub = commitment.publicKeys[group - 1];\n return nacl.crypto_edx25519_sign_detached_verify(\n d,\n decodeCrock(sig),\n decodeCrock(pub),\n );\n }\n}\n\n// FIXME: make it a branded type!\nexport type EncryptionNonce = FlavorP<Uint8Array, \"EncryptionNonce\", 24>;\n\nasync function deriveKey(\n keySeed: OpaqueData,\n nonce: EncryptionNonce,\n salt: string,\n): Promise<Uint8Array> {\n return kdfKw({\n outputLength: 32,\n salt: nonce,\n ikm: keySeed,\n info: stringToBytes(salt),\n });\n}\n\nexport async function encryptWithDerivedKey(\n nonce: EncryptionNonce,\n keySeed: OpaqueData,\n plaintext: OpaqueData,\n salt: string,\n): Promise<OpaqueData> {\n const key = await deriveKey(keySeed, nonce, salt);\n const cipherText = secretbox(plaintext, nonce, key);\n return typedArrayConcat([nonce, cipherText]);\n}\n\nconst nonceSize = 24;\n\nexport async function decryptWithDerivedKey(\n ciphertext: OpaqueData,\n keySeed: OpaqueData,\n salt: string,\n): Promise<OpaqueData> {\n const ctBuf = ciphertext;\n const nonceBuf = ctBuf.slice(0, nonceSize);\n const enc = ctBuf.slice(nonceSize);\n const key = await deriveKey(keySeed, nonceBuf, salt);\n const clearText = nacl.secretbox_open(enc, nonceBuf, key);\n if (!clearText) {\n throw Error(\"could not decrypt\");\n }\n return clearText;\n}\n\nenum ContractFormatTag {\n PaymentOffer = 0,\n PaymentRequest = 1,\n}\n\ntype MaterialEddsaPub = {\n _materialType?: \"eddsa-pub\";\n _size?: 32;\n};\n\ntype MaterialEddsaPriv = {\n _materialType?: \"ecdhe-priv\";\n _size?: 32;\n};\n\ntype MaterialEcdhePub = {\n _materialType?: \"ecdhe-pub\";\n _size?: 32;\n};\n\ntype MaterialEcdhePriv = {\n _materialType?: \"ecdhe-priv\";\n _size?: 32;\n};\n\ntype PursePublicKey = FlavorP<Uint8Array, \"PursePublicKey\", 32> &\n MaterialEddsaPub;\n\ntype ContractPrivateKey = FlavorP<Uint8Array, \"ContractPrivateKey\", 32> &\n MaterialEcdhePriv;\n\ntype MergePrivateKey = FlavorP<Uint8Array, \"MergePrivateKey\", 32> &\n MaterialEddsaPriv;\n\nconst mergeSalt = \"p2p-merge-contract\";\nconst depositSalt = \"p2p-deposit-contract\";\n\nexport function encryptContractForMerge(\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n mergePriv: MergePrivateKey,\n contractTerms: any,\n nonce: EncryptionNonce,\n): Promise<OpaqueData> {\n const contractTermsCanon = canonicalJson(contractTerms) + \"\\0\";\n const contractTermsBytes = stringToBytes(contractTermsCanon);\n const contractTermsCompressed = fflate.zlibSync(contractTermsBytes);\n const data = typedArrayConcat([\n bufferForUint32(ContractFormatTag.PaymentOffer),\n bufferForUint32(contractTermsBytes.length),\n mergePriv,\n contractTermsCompressed,\n ]);\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n return encryptWithDerivedKey(nonce, key, data, mergeSalt);\n}\n\nexport function encryptContractForDeposit(\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n contractTerms: any,\n nonce: EncryptionNonce,\n): Promise<OpaqueData> {\n const contractTermsCanon = canonicalJson(contractTerms) + \"\\0\";\n const contractTermsBytes = stringToBytes(contractTermsCanon);\n const contractTermsCompressed = fflate.zlibSync(contractTermsBytes);\n const data = typedArrayConcat([\n bufferForUint32(ContractFormatTag.PaymentRequest),\n bufferForUint32(contractTermsBytes.length),\n contractTermsCompressed,\n ]);\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n return encryptWithDerivedKey(nonce, key, data, depositSalt);\n}\n\nexport interface DecryptForMergeResult {\n contractTerms: any;\n mergePriv: Uint8Array;\n}\n\nexport interface DecryptForDepositResult {\n contractTerms: any;\n}\n\nexport async function decryptContractForMerge(\n enc: OpaqueData,\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n): Promise<DecryptForMergeResult> {\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n const dec = await decryptWithDerivedKey(enc, key, mergeSalt);\n const mergePriv = dec.slice(8, 8 + 32);\n const contractTermsCompressed = dec.slice(8 + 32);\n const contractTermsBuf = fflate.unzlibSync(contractTermsCompressed);\n // Slice of the '\\0' at the end and decode to a string\n const contractTermsString = bytesToString(\n contractTermsBuf.slice(0, contractTermsBuf.length - 1),\n );\n return {\n mergePriv: mergePriv,\n contractTerms: JSON.parse(contractTermsString),\n };\n}\n\nexport async function decryptContractForDeposit(\n enc: OpaqueData,\n pursePub: PursePublicKey,\n contractPriv: ContractPrivateKey,\n): Promise<DecryptForDepositResult> {\n const key = keyExchangeEcdhEddsa(contractPriv, pursePub);\n const dec = await decryptWithDerivedKey(enc, key, depositSalt);\n const contractTermsCompressed = dec.slice(8);\n const contractTermsBuf = fflate.unzlibSync(contractTermsCompressed);\n // Slice of the '\\0' at the end and decode to a string\n const contractTermsString = bytesToString(\n contractTermsBuf.slice(0, contractTermsBuf.length - 1),\n );\n return {\n contractTerms: JSON.parse(contractTermsString),\n };\n}\n\nexport function amountToBuffer(amount: AmountLike): Uint8Array {\n const amountJ = Amounts.jsonifyAmount(amount);\n const buffer = new ArrayBuffer(8 + 4 + 12);\n const dvbuf = new DataView(buffer);\n const u8buf = new Uint8Array(buffer);\n const curr = stringToBytes(amountJ.currency);\n if (typeof dvbuf.setBigUint64 !== \"undefined\") {\n dvbuf.setBigUint64(0, BigInt(amountJ.value));\n } else {\n const arr = bigint(amountJ.value).toArray(2 ** 8).value;\n let offset = 8 - arr.length;\n for (let i = 0; i < arr.length; i++) {\n dvbuf.setUint8(offset++, arr[i]);\n }\n }\n dvbuf.setUint32(8, amountJ.fraction);\n u8buf.set(curr, 8 + 4);\n\n return u8buf;\n}\n\nexport function timestampRoundedToBuffer(\n ts: TalerProtocolTimestamp,\n): Uint8Array {\n const b = new ArrayBuffer(8);\n const v = new DataView(b);\n // The buffer we sign over represents the timestamp in microseconds.\n if (typeof v.setBigUint64 !== \"undefined\") {\n const s = BigInt(ts.t_s) * BigInt(1000 * 1000);\n v.setBigUint64(0, s);\n } else {\n const s =\n ts.t_s === \"never\" ? bigint.zero : bigint(ts.t_s).multiply(1000 * 1000);\n const arr = s.toArray(2 ** 8).value;\n let offset = 8 - arr.length;\n for (let i = 0; i < arr.length; i++) {\n v.setUint8(offset++, arr[i]);\n }\n }\n return new Uint8Array(b);\n}\n\nexport function durationRoundedToBuffer(ts: TalerProtocolDuration): Uint8Array {\n const b = new ArrayBuffer(8);\n const v = new DataView(b);\n // The buffer we sign over represents the timestamp in microseconds.\n if (typeof v.setBigUint64 !== \"undefined\") {\n const s = BigInt(ts.d_us);\n v.setBigUint64(0, s);\n } else {\n const s = ts.d_us === \"forever\" ? bigint.zero : bigint(ts.d_us);\n const arr = s.toArray(2 ** 8).value;\n let offset = 8 - arr.length;\n for (let i = 0; i < arr.length; i++) {\n v.setUint8(offset++, arr[i]);\n }\n }\n return new Uint8Array(b);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2017-2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Helpers for relative and absolute time.\n */\n\n/**\n * Imports.\n */\nimport { Codec, renderContext, Context } from \"./codec.js\";\n\ndeclare const flavor_AbsoluteTime: unique symbol;\ndeclare const flavor_TalerProtocolTimestamp: unique symbol;\ndeclare const flavor_TalerPreciseTimestamp: unique symbol;\n\nconst opaque_AbsoluteTime: unique symbol = Symbol(\"opaque_AbsoluteTime\");\n\n// FIXME: Make this opaque!\nexport interface AbsoluteTime {\n /**\n * Timestamp in milliseconds.\n */\n readonly t_ms: number | \"never\";\n\n readonly _flavor?: typeof flavor_AbsoluteTime;\n\n // Make the type opaque, we only want our constructors\n // to able to create an AbsoluteTime value.\n [opaque_AbsoluteTime]: true;\n}\n\nexport interface TalerProtocolTimestamp {\n /**\n * Seconds (as integer) since epoch.\n */\n readonly t_s: number | \"never\";\n\n readonly _flavor?: typeof flavor_TalerProtocolTimestamp;\n}\n\n/**\n * Precise timestamp, typically used in the wallet-core\n * API but not in other Taler APIs so far.\n */\nexport interface TalerPreciseTimestamp {\n /**\n * Seconds (as integer) since epoch.\n */\n readonly t_s: number | \"never\";\n\n /**\n * Optional microsecond offset (non-negative integer).\n */\n readonly off_us?: number;\n\n readonly _flavor?: typeof flavor_TalerPreciseTimestamp;\n}\n\nexport namespace TalerPreciseTimestamp {\n export function now(): TalerPreciseTimestamp {\n const absNow = AbsoluteTime.now();\n return AbsoluteTime.toPreciseTimestamp(absNow);\n }\n\n export function round(t: TalerPreciseTimestamp): TalerProtocolTimestamp {\n return {\n t_s: t.t_s,\n };\n }\n\n export function fromSeconds(s: number): TalerPreciseTimestamp {\n return {\n t_s: Math.floor(s),\n off_us: Math.floor((s - Math.floor(s)) / 1000 / 1000),\n };\n }\n\n export function fromMilliseconds(ms: number): TalerPreciseTimestamp {\n return {\n t_s: Math.floor(ms / 1000),\n off_us: Math.floor((ms - Math.floor(ms / 1000) * 1000) * 1000),\n };\n }\n}\n\nexport namespace TalerProtocolTimestamp {\n export function now(): TalerProtocolTimestamp {\n return AbsoluteTime.toProtocolTimestamp(AbsoluteTime.now());\n }\n\n export function zero(): TalerProtocolTimestamp {\n return {\n t_s: 0,\n };\n }\n\n export function never(): TalerProtocolTimestamp {\n return {\n t_s: \"never\",\n };\n }\n\n export function isNever(t: TalerProtocolTimestamp): boolean {\n return t.t_s === \"never\";\n }\n\n export function fromSeconds(s: number): TalerProtocolTimestamp {\n return {\n t_s: s,\n };\n }\n\n export function min(\n t1: TalerProtocolTimestamp,\n t2: TalerProtocolTimestamp,\n ): TalerProtocolTimestamp {\n if (t1.t_s === \"never\") {\n return { t_s: t2.t_s };\n }\n if (t2.t_s === \"never\") {\n return { t_s: t1.t_s };\n }\n return { t_s: Math.min(t1.t_s, t2.t_s) };\n }\n export function max(\n t1: TalerProtocolTimestamp,\n t2: TalerProtocolTimestamp,\n ): TalerProtocolTimestamp {\n if (t1.t_s === \"never\" || t2.t_s === \"never\") {\n return { t_s: \"never\" };\n }\n return { t_s: Math.max(t1.t_s, t2.t_s) };\n }\n}\n\nexport interface Duration {\n /**\n * Duration in milliseconds.\n */\n readonly d_ms: number | \"forever\";\n}\n\nexport interface TalerProtocolDuration {\n readonly d_us: number | \"forever\";\n}\n\n/**\n * Timeshift in milliseconds.\n */\nlet timeshift = 0;\n\n/**\n * Set timetravel offset in milliseconds.\n *\n * Use carefully and only for testing.\n */\nexport function setDangerousTimetravel(dt: number): void {\n timeshift = dt;\n}\n\nexport namespace Duration {\n export function toMilliseconds(d: Duration): number {\n if (d.d_ms === \"forever\") {\n return Number.MAX_VALUE;\n }\n return d.d_ms;\n }\n export function getRemaining(\n deadline: AbsoluteTime,\n now = AbsoluteTime.now(),\n ): Duration {\n if (deadline.t_ms === \"never\") {\n return { d_ms: \"forever\" };\n }\n if (now.t_ms === \"never\") {\n throw Error(\"invalid argument for 'now'\");\n }\n if (deadline.t_ms < now.t_ms) {\n return { d_ms: 0 };\n }\n return { d_ms: deadline.t_ms - now.t_ms };\n }\n\n export function fromPrettyString(s: string): Duration {\n let dMs = 0;\n let currentNum = \"\";\n let parsingNum = true;\n for (let i = 0; i < s.length; i++) {\n const cc = s.charCodeAt(i);\n if (cc >= \"0\".charCodeAt(0) && cc <= \"9\".charCodeAt(0)) {\n if (!parsingNum) {\n throw Error(\"invalid duration, unexpected number\");\n }\n currentNum += s[i];\n continue;\n }\n if (s[i] == \" \") {\n if (currentNum != \"\") {\n parsingNum = false;\n }\n continue;\n }\n\n if (currentNum == \"\") {\n throw Error(\"invalid duration, missing number\");\n }\n\n if (s[i] === \"s\") {\n dMs += 1000 * Number.parseInt(currentNum, 10);\n } else if (s[i] === \"m\") {\n dMs += 60 * 1000 * Number.parseInt(currentNum, 10);\n } else if (s[i] === \"h\") {\n dMs += 60 * 60 * 1000 * Number.parseInt(currentNum, 10);\n } else if (s[i] === \"d\") {\n dMs += 24 * 60 * 60 * 1000 * Number.parseInt(currentNum, 10);\n } else {\n throw Error(\"invalid duration, unsupported unit\");\n }\n currentNum = \"\";\n parsingNum = true;\n }\n return {\n d_ms: dMs,\n };\n }\n\n /**\n * Compare two durations. Returns 0 when equal, -1 when a < b\n * and +1 when a > b.\n */\n export function cmp(d1: Duration, d2: Duration): 1 | 0 | -1 {\n if (d1.d_ms === \"forever\") {\n if (d2.d_ms === \"forever\") {\n return 0;\n }\n return 1;\n }\n if (d2.d_ms === \"forever\") {\n return -1;\n }\n if (d1.d_ms == d2.d_ms) {\n return 0;\n }\n if (d1.d_ms > d2.d_ms) {\n return 1;\n }\n return -1;\n }\n\n export function max(d1: Duration, d2: Duration): Duration {\n return durationMax(d1, d2);\n }\n\n export function min(d1: Duration, d2: Duration): Duration {\n return durationMin(d1, d2);\n }\n\n export function multiply(d1: Duration, n: number): Duration {\n return durationMul(d1, n);\n }\n\n export function toIntegerYears(d: Duration): number {\n if (typeof d.d_ms !== \"number\") {\n throw Error(\"infinite duration\");\n }\n return Math.ceil(d.d_ms / 1000 / 60 / 60 / 24 / 365);\n }\n\n export const fromSpec = durationFromSpec;\n\n export function getForever(): Duration {\n return { d_ms: \"forever\" };\n }\n\n export function getZero(): Duration {\n return { d_ms: 0 };\n }\n\n export function fromTalerProtocolDuration(\n d: TalerProtocolDuration,\n ): Duration {\n if (d.d_us === \"forever\") {\n return {\n d_ms: \"forever\",\n };\n }\n return {\n d_ms: Math.floor(d.d_us / 1000),\n };\n }\n\n export function toTalerProtocolDuration(d: Duration): TalerProtocolDuration {\n if (d.d_ms === \"forever\") {\n return {\n d_us: \"forever\",\n };\n }\n return {\n d_us: d.d_ms * 1000,\n };\n }\n\n export function fromMilliseconds(ms: number): Duration {\n return {\n d_ms: ms,\n };\n }\n\n export function clamp(args: {\n lower: Duration;\n upper: Duration;\n value: Duration;\n }): Duration {\n return durationMax(durationMin(args.value, args.upper), args.lower);\n }\n}\n\nexport namespace AbsoluteTime {\n export function getStampMsNow(): number {\n return new Date().getTime();\n }\n\n export function getStampMsNever(): number {\n return Number.MAX_SAFE_INTEGER;\n }\n\n export function now(): AbsoluteTime {\n return {\n t_ms: new Date().getTime() + timeshift,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function never(): AbsoluteTime {\n return {\n t_ms: \"never\",\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function fromMilliseconds(ms: number): AbsoluteTime {\n return {\n t_ms: ms,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function cmp(t1: AbsoluteTime, t2: AbsoluteTime): number {\n if (t1.t_ms === \"never\") {\n if (t2.t_ms === \"never\") {\n return 0;\n }\n return 1;\n }\n if (t2.t_ms === \"never\") {\n return -1;\n }\n if (t1.t_ms == t2.t_ms) {\n return 0;\n }\n if (t1.t_ms > t2.t_ms) {\n return 1;\n }\n return -1;\n }\n\n export function min(t1: AbsoluteTime, t2: AbsoluteTime): AbsoluteTime {\n if (t1.t_ms === \"never\") {\n return { t_ms: t2.t_ms, [opaque_AbsoluteTime]: true };\n }\n if (t2.t_ms === \"never\") {\n return { t_ms: t2.t_ms, [opaque_AbsoluteTime]: true };\n }\n return { t_ms: Math.min(t1.t_ms, t2.t_ms), [opaque_AbsoluteTime]: true };\n }\n\n export function max(t1: AbsoluteTime, t2: AbsoluteTime): AbsoluteTime {\n if (t1.t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n if (t2.t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n return { t_ms: Math.max(t1.t_ms, t2.t_ms), [opaque_AbsoluteTime]: true };\n }\n\n export function difference(t1: AbsoluteTime, t2: AbsoluteTime): Duration {\n if (t1.t_ms === \"never\") {\n return { d_ms: \"forever\" };\n }\n if (t2.t_ms === \"never\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: Math.abs(t1.t_ms - t2.t_ms) };\n }\n\n export function isExpired(t: AbsoluteTime) {\n return cmp(t, now()) <= 0;\n }\n\n export function fromProtocolTimestamp(\n t: TalerProtocolTimestamp,\n ): AbsoluteTime {\n if (t.t_s === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n return {\n t_ms: t.t_s * 1000,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function fromStampMs(stampMs: number): AbsoluteTime {\n return {\n t_ms: stampMs,\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function fromPreciseTimestamp(t: TalerPreciseTimestamp): AbsoluteTime {\n if (t.t_s === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n const offsetUs = t.off_us ?? 0;\n return {\n t_ms: t.t_s * 1000 + Math.floor(offsetUs / 1000),\n [opaque_AbsoluteTime]: true,\n };\n }\n\n export function toStampMs(at: AbsoluteTime): number {\n if (at.t_ms === \"never\") {\n return Number.MAX_SAFE_INTEGER;\n }\n return at.t_ms;\n }\n\n export function toPreciseTimestamp(at: AbsoluteTime): TalerPreciseTimestamp {\n if (at.t_ms == \"never\") {\n return {\n t_s: \"never\",\n };\n }\n const t_s = Math.floor(at.t_ms / 1000);\n const off_us = Math.floor(1000 * (at.t_ms - t_s * 1000));\n return {\n t_s,\n off_us,\n };\n }\n\n export function toProtocolTimestamp(\n at: AbsoluteTime,\n ): TalerProtocolTimestamp {\n if (at.t_ms === \"never\") {\n return { t_s: \"never\" };\n }\n return {\n t_s: Math.floor(at.t_ms / 1000),\n };\n }\n\n export function isBetween(\n t: AbsoluteTime,\n start: AbsoluteTime,\n end: AbsoluteTime,\n ): boolean {\n if (cmp(t, start) < 0) {\n return false;\n }\n if (cmp(t, end) > 0) {\n return false;\n }\n return true;\n }\n\n export function toIsoString(t: AbsoluteTime): string {\n if (t.t_ms === \"never\") {\n return \"<never>\";\n } else {\n return new Date(t.t_ms).toISOString();\n }\n }\n\n export function addDuration(t1: AbsoluteTime, d: Duration): AbsoluteTime {\n if (t1.t_ms === \"never\" || d.d_ms === \"forever\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n return { t_ms: t1.t_ms + d.d_ms, [opaque_AbsoluteTime]: true };\n }\n\n export function subtractDuraction(\n t1: AbsoluteTime,\n d: Duration,\n ): AbsoluteTime {\n if (t1.t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n if (d.d_ms === \"forever\") {\n return { t_ms: 0, [opaque_AbsoluteTime]: true };\n }\n return { t_ms: Math.max(0, t1.t_ms - d.d_ms), [opaque_AbsoluteTime]: true };\n }\n\n export function stringify(t: AbsoluteTime): string {\n if (t.t_ms === \"never\") {\n return \"never\";\n }\n return new Date(t.t_ms).toISOString();\n }\n}\n\nconst SECONDS = 1000;\nconst MINUTES = SECONDS * 60;\nconst HOURS = MINUTES * 60;\nconst DAYS = HOURS * 24;\nconst MONTHS = DAYS * 30;\nconst YEARS = DAYS * 365;\n\nexport function durationFromSpec(spec: {\n seconds?: number;\n minutes?: number;\n hours?: number;\n days?: number;\n months?: number;\n years?: number;\n}): Duration {\n let d_ms = 0;\n d_ms += (spec.seconds ?? 0) * SECONDS;\n d_ms += (spec.minutes ?? 0) * MINUTES;\n d_ms += (spec.hours ?? 0) * HOURS;\n d_ms += (spec.days ?? 0) * DAYS;\n d_ms += (spec.months ?? 0) * MONTHS;\n d_ms += (spec.years ?? 0) * YEARS;\n return { d_ms };\n}\n\nexport function durationMin(d1: Duration, d2: Duration): Duration {\n if (d1.d_ms === \"forever\") {\n return { d_ms: d2.d_ms };\n }\n if (d2.d_ms === \"forever\") {\n return { d_ms: d1.d_ms };\n }\n return { d_ms: Math.min(d1.d_ms, d2.d_ms) };\n}\n\nexport function durationMax(d1: Duration, d2: Duration): Duration {\n if (d1.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n if (d2.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: Math.max(d1.d_ms, d2.d_ms) };\n}\n\nexport function durationMul(d: Duration, n: number): Duration {\n if (d.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: Math.round(d.d_ms * n) };\n}\n\nexport function durationAdd(d1: Duration, d2: Duration): Duration {\n if (d1.d_ms === \"forever\" || d2.d_ms === \"forever\") {\n return { d_ms: \"forever\" };\n }\n return { d_ms: d1.d_ms + d2.d_ms };\n}\n\nexport const codecForAbsoluteTime: Codec<AbsoluteTime> = {\n decode(x: any, c?: Context): AbsoluteTime {\n const t_ms = x.t_ms;\n if (typeof t_ms === \"string\") {\n if (t_ms === \"never\") {\n return { t_ms: \"never\", [opaque_AbsoluteTime]: true };\n }\n } else if (typeof t_ms === \"number\") {\n return { t_ms, [opaque_AbsoluteTime]: true };\n }\n throw Error(`expected timestamp at ${renderContext(c)}`);\n },\n};\n\nexport const codecForTimestamp: Codec<TalerProtocolTimestamp> = {\n decode(x: any, c?: Context): TalerProtocolTimestamp {\n // Compatibility, should be removed soon.\n const t_ms = x.t_ms;\n if (typeof t_ms === \"string\") {\n if (t_ms === \"never\") {\n return { t_s: \"never\" };\n }\n } else if (typeof t_ms === \"number\") {\n return { t_s: Math.floor(t_ms / 1000) };\n }\n const t_s = x.t_s;\n if (typeof t_s === \"string\") {\n if (t_s === \"never\") {\n return { t_s: \"never\" };\n }\n throw Error(`expected timestamp at ${renderContext(c)}`);\n }\n if (typeof t_s === \"number\") {\n return { t_s };\n }\n throw Error(`expected timestamp at ${renderContext(c)}`);\n },\n};\n\nexport const codecForDuration: Codec<TalerProtocolDuration> = {\n decode(x: any, c?: Context): TalerProtocolDuration {\n const d_us = x.d_us;\n if (typeof d_us === \"string\") {\n if (d_us === \"forever\") {\n return { d_us: \"forever\" };\n }\n throw Error(`expected duration at ${renderContext(c)}`);\n }\n if (typeof d_us === \"number\") {\n return { d_us };\n }\n throw Error(`expected duration at ${renderContext(c)}`);\n },\n};\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type and schema definitions and helpers for the core GNU Taler protocol.\n *\n * Even though the rest of the wallet uses camelCase for fields, use snake_case\n * here, since that's the convention for the Taler JSON+HTTP API.\n */\n\n/**\n * Imports.\n */\n\nimport { Amounts, codecForAmountString } from \"./amounts.js\";\nimport {\n buildCodecForObject,\n buildCodecForUnion,\n Codec,\n codecForAny,\n codecForBoolean,\n codecForConstNumber,\n codecForConstString,\n codecForList,\n codecForMap,\n codecForNumber,\n codecForString,\n codecForStringURL,\n codecOptional,\n} from \"./codec.js\";\nimport { strcmp } from \"./helpers.js\";\nimport {\n CurrencySpecification,\n codecForCurrencySpecificiation,\n} from \"./index.js\";\nimport { AgeCommitmentProof, Edx25519PublicKeyEnc } from \"./taler-crypto.js\";\nimport {\n codecForAbsoluteTime,\n codecForDuration,\n codecForTimestamp,\n TalerProtocolDuration,\n TalerProtocolTimestamp,\n} from \"./time.js\";\n\n/**\n * Denomination as found in the /keys response from the exchange.\n */\nexport class ExchangeDenomination {\n /**\n * Value of one coin of the denomination.\n */\n value: string;\n\n /**\n * Public signing key of the denomination.\n */\n denom_pub: DenominationPubKey;\n\n /**\n * Fee for withdrawing.\n */\n fee_withdraw: string;\n\n /**\n * Fee for depositing.\n */\n fee_deposit: string;\n\n /**\n * Fee for refreshing.\n */\n fee_refresh: string;\n\n /**\n * Fee for refunding.\n */\n fee_refund: string;\n\n /**\n * Start date from which withdraw is allowed.\n */\n stamp_start: TalerProtocolTimestamp;\n\n /**\n * End date for withdrawing.\n */\n stamp_expire_withdraw: TalerProtocolTimestamp;\n\n /**\n * Expiration date after which the exchange can forget about\n * the currency.\n */\n stamp_expire_legal: TalerProtocolTimestamp;\n\n /**\n * Date after which the coins of this denomination can't be\n * deposited anymore.\n */\n stamp_expire_deposit: TalerProtocolTimestamp;\n\n /**\n * Signature over the denomination information by the exchange's master\n * signing key.\n */\n master_sig: string;\n}\n\n/**\n * Signature by the auditor that a particular denomination key is audited.\n */\nexport class AuditorDenomSig {\n /**\n * Denomination public key's hash.\n */\n denom_pub_h: string;\n\n /**\n * The signature.\n */\n auditor_sig: string;\n}\n\n/**\n * Auditor information as given by the exchange in /keys.\n */\nexport class ExchangeAuditor {\n /**\n * Auditor's public key.\n */\n auditor_pub: string;\n\n /**\n * Base URL of the auditor.\n */\n auditor_url: string;\n\n /**\n * List of signatures for denominations by the auditor.\n */\n denomination_keys: AuditorDenomSig[];\n}\n\nexport type ExchangeWithdrawValue =\n | ExchangeRsaWithdrawValue\n | ExchangeCsWithdrawValue;\n\nexport interface ExchangeRsaWithdrawValue {\n cipher: \"RSA\";\n}\n\nexport interface ExchangeCsWithdrawValue {\n cipher: \"CS\";\n\n /**\n * CSR R0 value\n */\n r_pub_0: string;\n\n /**\n * CSR R1 value\n */\n r_pub_1: string;\n}\n\nexport interface RecoupRequest {\n /**\n * Hashed denomination public key of the coin we want to get\n * paid back.\n */\n denom_pub_hash: string;\n\n /**\n * Signature over the coin public key by the denomination.\n *\n * The string variant is for the legacy exchange protocol.\n */\n denom_sig: UnblindedSignature;\n\n /**\n * Blinding key that was used during withdraw,\n * used to prove that we were actually withdrawing the coin.\n */\n coin_blind_key_secret: string;\n\n /**\n * Signature of TALER_RecoupRequestPS created with the coin's private key.\n */\n coin_sig: string;\n\n ewv: ExchangeWithdrawValue;\n}\n\nexport interface RecoupRefreshRequest {\n /**\n * Hashed enomination public key of the coin we want to get\n * paid back.\n */\n denom_pub_hash: string;\n\n /**\n * Signature over the coin public key by the denomination.\n *\n * The string variant is for the legacy exchange protocol.\n */\n denom_sig: UnblindedSignature;\n\n /**\n * Coin's blinding factor.\n */\n coin_blind_key_secret: string;\n\n /**\n * Signature of TALER_RecoupRefreshRequestPS created with\n * the coin's private key.\n */\n coin_sig: string;\n\n ewv: ExchangeWithdrawValue;\n}\n\n/**\n * Response that we get from the exchange for a payback request.\n */\nexport interface RecoupConfirmation {\n /**\n * Public key of the reserve that will receive the payback.\n */\n reserve_pub?: string;\n\n /**\n * Public key of the old coin that will receive the recoup,\n * provided if refreshed was true.\n */\n old_coin_pub?: string;\n}\n\nexport type UnblindedSignature = RsaUnblindedSignature;\n\nexport interface RsaUnblindedSignature {\n cipher: DenomKeyType.Rsa;\n rsa_signature: string;\n}\n\n/**\n * Deposit permission for a single coin.\n */\nexport interface CoinDepositPermission {\n /**\n * Signature by the coin.\n */\n coin_sig: string;\n\n /**\n * Public key of the coin being spend.\n */\n coin_pub: string;\n\n /**\n * Signature made by the denomination public key.\n *\n * The string variant is for legacy protocol support.\n */\n\n ub_sig: UnblindedSignature;\n\n /**\n * The denomination public key associated with this coin.\n */\n h_denom: string;\n\n /**\n * The amount that is subtracted from this coin with this payment.\n */\n contribution: string;\n\n /**\n * URL of the exchange this coin was withdrawn from.\n */\n exchange_url: string;\n\n minimum_age_sig?: EddsaSignatureString;\n\n age_commitment?: Edx25519PublicKeyEnc[];\n\n h_age_commitment?: string;\n}\n\n/**\n * Information about an exchange as stored inside a\n * merchant's contract terms.\n */\nexport interface ExchangeHandle {\n /**\n * Master public signing key of the exchange.\n */\n master_pub: string;\n\n /**\n * Base URL of the exchange.\n */\n url: string;\n}\n\nexport interface AuditorHandle {\n /**\n * Official name of the auditor.\n */\n name: string;\n\n /**\n * Master public signing key of the auditor.\n */\n auditor_pub: string;\n\n /**\n * Base URL of the auditor.\n */\n url: string;\n}\n\n// Delivery location, loosely modeled as a subset of\n// ISO20022's PostalAddress25.\nexport interface Location {\n // Nation with its own government.\n country?: string;\n\n // Identifies a subdivision of a country such as state, region, county.\n country_subdivision?: string;\n\n // Identifies a subdivision within a country sub-division.\n district?: string;\n\n // Name of a built-up area, with defined boundaries, and a local government.\n town?: string;\n\n // Specific location name within the town.\n town_location?: string;\n\n // Identifier consisting of a group of letters and/or numbers that\n // is added to a postal address to assist the sorting of mail.\n post_code?: string;\n\n // Name of a street or thoroughfare.\n street?: string;\n\n // Name of the building or house.\n building_name?: string;\n\n // Number that identifies the position of a building on a street.\n building_number?: string;\n\n // Free-form address lines, should not exceed 7 elements.\n address_lines?: string[];\n}\n\nexport interface MerchantInfo {\n name: string;\n jurisdiction?: Location;\n address?: Location;\n logo?: string;\n website?: string;\n email?: string;\n}\n\nexport interface Tax {\n // the name of the tax\n name: string;\n\n // amount paid in tax\n tax: AmountString;\n}\n\nexport interface Product {\n // merchant-internal identifier for the product.\n product_id?: string;\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions\n description_i18n?: { [lang_tag: string]: string };\n\n // The number of units of the product to deliver to the customer.\n quantity?: number;\n\n // The unit in which the product is measured (liters, kilograms, packages, etc.)\n unit?: string;\n\n // The price of the product; this is the total price for quantity times unit of this product.\n price?: AmountString;\n\n // An optional base64-encoded product image\n image?: string;\n\n // a list of taxes paid by the merchant for this product. Can be empty.\n taxes?: Tax[];\n\n // time indicating when this product should be delivered\n delivery_date?: TalerProtocolTimestamp;\n}\n\nexport interface InternationalizedString {\n [lang_tag: string]: string;\n}\n\n/**\n * Contract terms from a merchant.\n * FIXME: Add type field!\n */\nexport interface MerchantContractTerms {\n /**\n * Hash of the merchant's wire details.\n */\n h_wire: string;\n\n /**\n * Hash of the merchant's wire details.\n */\n auto_refund?: TalerProtocolDuration;\n\n /**\n * Wire method the merchant wants to use.\n */\n wire_method: string;\n\n /**\n * Human-readable short summary of the contract.\n */\n summary: string;\n\n summary_i18n?: InternationalizedString;\n\n /**\n * Nonce used to ensure freshness.\n */\n nonce: string;\n\n /**\n * Total amount payable.\n */\n amount: string;\n\n /**\n * Deadline to pay for the contract.\n */\n pay_deadline: TalerProtocolTimestamp;\n\n /**\n * Maximum deposit fee covered by the merchant.\n */\n max_fee: string;\n\n /**\n * Information about the merchant.\n */\n merchant: MerchantInfo;\n\n /**\n * Public key of the merchant.\n */\n merchant_pub: string;\n\n /**\n * Time indicating when the order should be delivered.\n * May be overwritten by individual products.\n */\n delivery_date?: TalerProtocolTimestamp;\n\n /**\n * Delivery location for (all!) products.\n */\n delivery_location?: Location;\n\n /**\n * List of accepted exchanges.\n */\n exchanges: ExchangeHandle[];\n\n /**\n * Products that are sold in this contract.\n */\n products?: Product[];\n\n /**\n * Deadline for refunds.\n */\n refund_deadline: TalerProtocolTimestamp;\n\n /**\n * Deadline for the wire transfer.\n */\n wire_transfer_deadline: TalerProtocolTimestamp;\n\n /**\n * Time when the contract was generated by the merchant.\n */\n timestamp: TalerProtocolTimestamp;\n\n /**\n * Order id to uniquely identify the purchase within\n * one merchant instance.\n */\n order_id: string;\n\n /**\n * Base URL of the merchant's backend.\n */\n merchant_base_url: string;\n\n /**\n * Fulfillment URL to view the product or\n * delivery status.\n */\n fulfillment_url?: string;\n\n /**\n * URL meant to share the shopping cart.\n */\n public_reorder_url?: string;\n\n /**\n * Plain text fulfillment message in the merchant's default language.\n */\n fulfillment_message?: string;\n\n /**\n * Internationalized fulfillment messages.\n */\n fulfillment_message_i18n?: InternationalizedString;\n\n /**\n * Share of the wire fee that must be settled with one payment.\n */\n wire_fee_amortization?: number;\n\n /**\n * Maximum wire fee that the merchant agrees to pay for.\n */\n max_wire_fee?: string;\n\n minimum_age?: number;\n\n /**\n * Extra data, interpreted by the mechant only.\n */\n extra?: any;\n}\n\n/**\n * Refund permission in the format that the merchant gives it to us.\n */\nexport interface MerchantAbortPayRefundDetails {\n /**\n * Amount to be refunded.\n */\n refund_amount: string;\n\n /**\n * Fee for the refund.\n */\n refund_fee: string;\n\n /**\n * Public key of the coin being refunded.\n */\n coin_pub: string;\n\n /**\n * Refund transaction ID between merchant and exchange.\n */\n rtransaction_id: number;\n\n /**\n * Exchange's key used for the signature.\n */\n exchange_pub?: string;\n\n /**\n * Exchange's signature to confirm the refund.\n */\n exchange_sig?: string;\n\n /**\n * Error replay from the exchange (if any).\n */\n exchange_reply?: any;\n\n /**\n * Error code from the exchange (if any).\n */\n exchange_code?: number;\n\n /**\n * HTTP status code of the exchange's response\n * to the merchant's refund request.\n */\n exchange_http_status: number;\n}\n\n/**\n * Response for a refund pickup or a /pay in abort mode.\n */\nexport interface MerchantRefundResponse {\n /**\n * Public key of the merchant\n */\n merchant_pub: string;\n\n /**\n * Contract terms hash of the contract that\n * is being refunded.\n */\n h_contract_terms: string;\n\n /**\n * The signed refund permissions, to be sent to the exchange.\n */\n refunds: MerchantAbortPayRefundDetails[];\n}\n\n/**\n * Planchet detail sent to the merchant.\n */\nexport interface TipPlanchetDetail {\n /**\n * Hashed denomination public key.\n */\n denom_pub_hash: string;\n\n /**\n * Coin's blinded public key.\n */\n coin_ev: CoinEnvelope;\n}\n\n/**\n * Request sent to the merchant to pick up a tip.\n */\nexport interface TipPickupRequest {\n /**\n * Identifier of the tip.\n */\n tip_id: string;\n\n /**\n * List of planchets the wallet wants to use for the tip.\n */\n planchets: TipPlanchetDetail[];\n}\n\n/**\n * Reserve signature, defined as separate class to facilitate\n * schema validation.\n */\nexport interface MerchantBlindSigWrapperV1 {\n /**\n * Reserve signature.\n */\n blind_sig: string;\n}\n\n/**\n * Response of the merchant\n * to the TipPickupRequest.\n */\nexport interface MerchantTipResponseV1 {\n /**\n * The order of the signatures matches the planchets list.\n */\n blind_sigs: MerchantBlindSigWrapperV1[];\n}\n\nexport interface MerchantBlindSigWrapperV2 {\n blind_sig: BlindedDenominationSignature;\n}\n\n/**\n * Response of the merchant\n * to the TipPickupRequest.\n */\nexport interface MerchantTipResponseV2 {\n /**\n * The order of the signatures matches the planchets list.\n */\n blind_sigs: MerchantBlindSigWrapperV2[];\n}\n\n/**\n * Element of the payback list that the\n * exchange gives us in /keys.\n */\nexport class Recoup {\n /**\n * The hash of the denomination public key for which the payback is offered.\n */\n h_denom_pub: string;\n}\n\n/**\n * Structure of one exchange signing key in the /keys response.\n */\nexport class ExchangeSignKeyJson {\n stamp_start: TalerProtocolTimestamp;\n stamp_expire: TalerProtocolTimestamp;\n stamp_end: TalerProtocolTimestamp;\n key: EddsaPublicKeyString;\n master_sig: EddsaSignatureString;\n}\n\n/**\n * Structure that the exchange gives us in /keys.\n */\nexport class ExchangeKeysJson {\n /**\n * Canonical, public base URL of the exchange.\n */\n base_url: string;\n\n currency: string;\n\n /**\n * The exchange's master public key.\n */\n master_public_key: string;\n\n /**\n * The list of auditors (partially) auditing the exchange.\n */\n auditors: ExchangeAuditor[];\n\n /**\n * Timestamp when this response was issued.\n */\n list_issue_date: TalerProtocolTimestamp;\n\n /**\n * List of revoked denominations.\n */\n recoup?: Recoup[];\n\n /**\n * Short-lived signing keys used to sign online\n * responses.\n */\n signkeys: ExchangeSignKeyJson[];\n\n /**\n * Protocol version.\n */\n version: string;\n\n reserve_closing_delay: TalerProtocolDuration;\n\n global_fees: GlobalFees[];\n\n accounts: ExchangeWireAccount[];\n\n wire_fees: { [methodName: string]: WireFeesJson[] };\n\n denominations: DenomGroup[];\n}\n\nexport type DenomGroup =\n | DenomGroupRsa\n | DenomGroupCs\n | DenomGroupRsaAgeRestricted\n | DenomGroupCsAgeRestricted;\n\nexport interface DenomGroupCommon {\n // How much are coins of this denomination worth?\n value: AmountString;\n\n // Fee charged by the exchange for withdrawing a coin of this denomination.\n fee_withdraw: AmountString;\n\n // Fee charged by the exchange for depositing a coin of this denomination.\n fee_deposit: AmountString;\n\n // Fee charged by the exchange for refreshing a coin of this denomination.\n fee_refresh: AmountString;\n\n // Fee charged by the exchange for refunding a coin of this denomination.\n fee_refund: AmountString;\n\n // XOR of all the SHA-512 hash values of the denominations' public keys\n // in this group. Note that for hashing, the binary format of the\n // public keys is used, and not their base32 encoding.\n hash: HashCodeString;\n}\n\nexport interface DenomCommon {\n // Signature of TALER_DenominationKeyValidityPS.\n master_sig: EddsaSignatureString;\n\n // When does the denomination key become valid?\n stamp_start: TalerProtocolTimestamp;\n\n // When is it no longer possible to deposit coins\n // of this denomination?\n stamp_expire_withdraw: TalerProtocolTimestamp;\n\n // Timestamp indicating by when legal disputes relating to these coins must\n // be settled, as the exchange will afterwards destroy its evidence relating to\n // transactions involving this coin.\n stamp_expire_legal: TalerProtocolTimestamp;\n\n stamp_expire_deposit: TalerProtocolTimestamp;\n\n // Set to 'true' if the exchange somehow \"lost\"\n // the private key. The denomination was not\n // necessarily revoked, but still cannot be used\n // to withdraw coins at this time (theoretically,\n // the private key could be recovered in the\n // future; coins signed with the private key\n // remain valid).\n lost?: boolean;\n}\n\nexport type RsaPublicKeySring = string;\nexport type AgeMask = number;\n\n/**\n * 32-byte value representing a point on Curve25519.\n */\nexport type Cs25519Point = string;\n\nexport interface DenomGroupRsa extends DenomGroupCommon {\n cipher: \"RSA\";\n\n denoms: ({\n rsa_pub: RsaPublicKeySring;\n } & DenomCommon)[];\n}\n\nexport interface DenomGroupRsaAgeRestricted extends DenomGroupCommon {\n cipher: \"RSA+age_restricted\";\n age_mask: AgeMask;\n\n denoms: ({\n rsa_pub: RsaPublicKeySring;\n } & DenomCommon)[];\n}\n\nexport interface DenomGroupCs extends DenomGroupCommon {\n cipher: \"CS\";\n age_mask: AgeMask;\n\n denoms: ({\n cs_pub: Cs25519Point;\n } & DenomCommon)[];\n}\n\nexport interface DenomGroupCsAgeRestricted extends DenomGroupCommon {\n cipher: \"CS+age_restricted\";\n age_mask: AgeMask;\n\n denoms: ({\n cs_pub: Cs25519Point;\n } & DenomCommon)[];\n}\n\nexport interface GlobalFees {\n // What date (inclusive) does these fees go into effect?\n start_date: TalerProtocolTimestamp;\n\n // What date (exclusive) does this fees stop going into effect?\n end_date: TalerProtocolTimestamp;\n\n // Account history fee, charged when a user wants to\n // obtain a reserve/account history.\n history_fee: AmountString;\n\n // Annual fee charged for having an open account at the\n // exchange. Charged to the account. If the account\n // balance is insufficient to cover this fee, the account\n // is automatically deleted/closed. (Note that the exchange\n // will keep the account history around for longer for\n // regulatory reasons.)\n account_fee: AmountString;\n\n // Purse fee, charged only if a purse is abandoned\n // and was not covered by the account limit.\n purse_fee: AmountString;\n\n // How long will the exchange preserve the account history?\n // After an account was deleted/closed, the exchange will\n // retain the account history for legal reasons until this time.\n history_expiration: TalerProtocolDuration;\n\n // Non-negative number of concurrent purses that any\n // account holder is allowed to create without having\n // to pay the purse_fee.\n purse_account_limit: number;\n\n // How long does an exchange keep a purse around after a purse\n // has expired (or been successfully merged)? A 'GET' request\n // for a purse will succeed until the purse expiration time\n // plus this value.\n purse_timeout: TalerProtocolDuration;\n\n // Signature of TALER_GlobalFeesPS.\n master_sig: string;\n}\n/**\n * Wire fees as announced by the exchange.\n */\nexport class WireFeesJson {\n /**\n * Cost of a wire transfer.\n */\n wire_fee: string;\n\n /**\n * Cost of clising a reserve.\n */\n closing_fee: string;\n\n /**\n * Signature made with the exchange's master key.\n */\n sig: string;\n\n /**\n * Date from which the fee applies.\n */\n start_date: TalerProtocolTimestamp;\n\n /**\n * Data after which the fee doesn't apply anymore.\n */\n end_date: TalerProtocolTimestamp;\n}\n\n/**\n * Proposal returned from the contract URL.\n */\nexport class Proposal {\n /**\n * Contract terms for the propoal.\n * Raw, un-decoded JSON object.\n */\n contract_terms: any;\n\n /**\n * Signature over contract, made by the merchant. The public key used for signing\n * must be contract_terms.merchant_pub.\n */\n sig: string;\n}\n\n/**\n * Response from the internal merchant API.\n */\nexport class CheckPaymentResponse {\n order_status: string;\n refunded: boolean | undefined;\n refunded_amount: string | undefined;\n contract_terms: any | undefined;\n taler_pay_uri: string | undefined;\n contract_url: string | undefined;\n}\n\n/**\n * Response from the bank.\n */\nexport class WithdrawOperationStatusResponse {\n selection_done: boolean;\n\n transfer_done: boolean;\n\n aborted: boolean;\n\n amount: string;\n\n sender_wire?: string;\n\n suggested_exchange?: string;\n\n confirm_transfer_url?: string;\n\n wire_types: string[];\n}\n\n/**\n * Response from the merchant.\n */\nexport class RewardPickupGetResponse {\n reward_amount: string;\n\n exchange_url: string;\n\n next_url?: string;\n\n expiration: TalerProtocolTimestamp;\n}\n\nexport enum DenomKeyType {\n Rsa = \"RSA\",\n ClauseSchnorr = \"CS\",\n}\n\nexport namespace DenomKeyType {\n export function toIntTag(t: DenomKeyType): number {\n switch (t) {\n case DenomKeyType.Rsa:\n return 1;\n case DenomKeyType.ClauseSchnorr:\n return 2;\n }\n }\n}\n\nexport interface RsaBlindedDenominationSignature {\n cipher: DenomKeyType.Rsa;\n blinded_rsa_signature: string;\n}\n\nexport interface CSBlindedDenominationSignature {\n cipher: DenomKeyType.ClauseSchnorr;\n}\n\nexport type BlindedDenominationSignature =\n | RsaBlindedDenominationSignature\n | CSBlindedDenominationSignature;\n\nexport const codecForRsaBlindedDenominationSignature = () =>\n buildCodecForObject<RsaBlindedDenominationSignature>()\n .property(\"cipher\", codecForConstString(DenomKeyType.Rsa))\n .property(\"blinded_rsa_signature\", codecForString())\n .build(\"RsaBlindedDenominationSignature\");\n\nexport const codecForBlindedDenominationSignature = () =>\n buildCodecForUnion<BlindedDenominationSignature>()\n .discriminateOn(\"cipher\")\n .alternative(DenomKeyType.Rsa, codecForRsaBlindedDenominationSignature())\n .build(\"BlindedDenominationSignature\");\n\nexport class ExchangeWithdrawResponse {\n ev_sig: BlindedDenominationSignature;\n}\n\nexport class ExchangeWithdrawBatchResponse {\n ev_sigs: ExchangeWithdrawResponse[];\n}\n\nexport interface MerchantPayResponse {\n sig: string;\n pos_confirmation?: string;\n}\n\nexport interface ExchangeMeltRequest {\n coin_pub: CoinPublicKeyString;\n confirm_sig: EddsaSignatureString;\n denom_pub_hash: HashCodeString;\n denom_sig: UnblindedSignature;\n rc: string;\n value_with_fee: AmountString;\n age_commitment_hash?: HashCodeString;\n}\n\nexport interface ExchangeMeltResponse {\n /**\n * Which of the kappa indices does the client not have to reveal.\n */\n noreveal_index: number;\n\n /**\n * Signature of TALER_RefreshMeltConfirmationPS whereby the exchange\n * affirms the successful melt and confirming the noreveal_index\n */\n exchange_sig: EddsaSignatureString;\n\n /*\n * public EdDSA key of the exchange that was used to generate the signature.\n * Should match one of the exchange's signing keys from /keys. Again given\n * explicitly as the client might otherwise be confused by clock skew as to\n * which signing key was used.\n */\n exchange_pub: EddsaPublicKeyString;\n\n /*\n * Base URL to use for operations on the refresh context\n * (so the reveal operation). If not given,\n * the base URL is the same as the one used for this request.\n * Can be used if the base URL for /refreshes/ differs from that\n * for /coins/, i.e. for load balancing. Clients SHOULD\n * respect the refresh_base_url if provided. Any HTTP server\n * belonging to an exchange MUST generate a 307 or 308 redirection\n * to the correct base URL should a client uses the wrong base\n * URL, or if the base URL has changed since the melt.\n *\n * When melting the same coin twice (technically allowed\n * as the response might have been lost on the network),\n * the exchange may return different values for the refresh_base_url.\n */\n refresh_base_url?: string;\n}\n\nexport interface ExchangeRevealItem {\n ev_sig: BlindedDenominationSignature;\n}\n\nexport interface ExchangeRevealResponse {\n // List of the exchange's blinded RSA signatures on the new coins.\n ev_sigs: ExchangeRevealItem[];\n}\n\ninterface MerchantOrderStatusPaid {\n // Was the payment refunded (even partially, via refund or abort)?\n refunded: boolean;\n\n // Is any amount of the refund still waiting to be picked up (even partially)?\n refund_pending: boolean;\n\n // Amount that was refunded in total.\n refund_amount: AmountString;\n\n // Amount that already taken by the wallet.\n refund_taken: AmountString;\n}\n\ninterface MerchantOrderRefundResponse {\n /**\n * Amount that was refunded in total.\n */\n refund_amount: AmountString;\n\n /**\n * Successful refunds for this payment, empty array for none.\n */\n refunds: MerchantCoinRefundStatus[];\n\n /**\n * Public key of the merchant.\n */\n merchant_pub: EddsaPublicKeyString;\n}\n\nexport type MerchantCoinRefundStatus =\n | MerchantCoinRefundSuccessStatus\n | MerchantCoinRefundFailureStatus;\n\nexport interface MerchantCoinRefundSuccessStatus {\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // the EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund\n exchange_sig: EddsaSignatureString;\n\n // public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n\n // Refund transaction ID.\n rtransaction_id: number;\n\n // public key of a coin that was refunded\n coin_pub: EddsaPublicKeyString;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n execution_time: TalerProtocolTimestamp;\n}\n\nexport interface MerchantCoinRefundFailureStatus {\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: number;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: number;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: any;\n\n // Refund transaction ID.\n rtransaction_id: number;\n\n // public key of a coin that was refunded\n coin_pub: EddsaPublicKeyString;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n execution_time: TalerProtocolTimestamp;\n}\n\nexport interface MerchantOrderStatusUnpaid {\n /**\n * URI that the wallet must process to complete the payment.\n */\n taler_pay_uri: string;\n\n /**\n * Alternative order ID which was paid for already in the same session.\n *\n * Only given if the same product was purchased before in the same session.\n */\n already_paid_order_id?: string;\n}\n\n/**\n * Response body for the following endpoint:\n *\n * POST {talerBankIntegrationApi}/withdrawal-operation/{wopid}\n */\nexport interface BankWithdrawalOperationPostResponse {\n transfer_done: boolean;\n}\n\nexport type DenominationPubKey = RsaDenominationPubKey | CsDenominationPubKey;\n\nexport interface RsaDenominationPubKey {\n readonly cipher: DenomKeyType.Rsa;\n readonly rsa_public_key: string;\n readonly age_mask: number;\n}\n\nexport interface CsDenominationPubKey {\n readonly cipher: DenomKeyType.ClauseSchnorr;\n readonly age_mask: number;\n readonly cs_public_key: string;\n}\n\nexport namespace DenominationPubKey {\n export function cmp(\n p1: DenominationPubKey,\n p2: DenominationPubKey,\n ): -1 | 0 | 1 {\n if (p1.cipher < p2.cipher) {\n return -1;\n } else if (p1.cipher > p2.cipher) {\n return +1;\n } else if (\n p1.cipher === DenomKeyType.Rsa &&\n p2.cipher === DenomKeyType.Rsa\n ) {\n if ((p1.age_mask ?? 0) < (p2.age_mask ?? 0)) {\n return -1;\n } else if ((p1.age_mask ?? 0) > (p2.age_mask ?? 0)) {\n return 1;\n }\n return strcmp(p1.rsa_public_key, p2.rsa_public_key);\n } else if (\n p1.cipher === DenomKeyType.ClauseSchnorr &&\n p2.cipher === DenomKeyType.ClauseSchnorr\n ) {\n if ((p1.age_mask ?? 0) < (p2.age_mask ?? 0)) {\n return -1;\n } else if ((p1.age_mask ?? 0) > (p2.age_mask ?? 0)) {\n return 1;\n }\n return strcmp(p1.cs_public_key, p2.cs_public_key);\n } else {\n throw Error(\"unsupported cipher\");\n }\n }\n}\n\nexport const codecForRsaDenominationPubKey = () =>\n buildCodecForObject<RsaDenominationPubKey>()\n .property(\"cipher\", codecForConstString(DenomKeyType.Rsa))\n .property(\"rsa_public_key\", codecForString())\n .property(\"age_mask\", codecForNumber())\n .build(\"DenominationPubKey\");\n\nexport const codecForCsDenominationPubKey = () =>\n buildCodecForObject<CsDenominationPubKey>()\n .property(\"cipher\", codecForConstString(DenomKeyType.ClauseSchnorr))\n .property(\"cs_public_key\", codecForString())\n .property(\"age_mask\", codecForNumber())\n .build(\"CsDenominationPubKey\");\n\nexport const codecForDenominationPubKey = () =>\n buildCodecForUnion<DenominationPubKey>()\n .discriminateOn(\"cipher\")\n .alternative(DenomKeyType.Rsa, codecForRsaDenominationPubKey())\n .alternative(DenomKeyType.ClauseSchnorr, codecForCsDenominationPubKey())\n .build(\"DenominationPubKey\");\n\ndeclare const __amount_str: unique symbol;\nexport type AmountString = string & { [__amount_str]: true };\n// export type AmountString = string;\nexport type Base32String = string;\nexport type EddsaSignatureString = string;\nexport type EddsaPublicKeyString = string;\nexport type CoinPublicKeyString = string;\n\nexport const codecForDenomination = (): Codec<ExchangeDenomination> =>\n buildCodecForObject<ExchangeDenomination>()\n .property(\"value\", codecForString())\n .property(\"denom_pub\", codecForDenominationPubKey())\n .property(\"fee_withdraw\", codecForString())\n .property(\"fee_deposit\", codecForString())\n .property(\"fee_refresh\", codecForString())\n .property(\"fee_refund\", codecForString())\n .property(\"stamp_start\", codecForTimestamp)\n .property(\"stamp_expire_withdraw\", codecForTimestamp)\n .property(\"stamp_expire_legal\", codecForTimestamp)\n .property(\"stamp_expire_deposit\", codecForTimestamp)\n .property(\"master_sig\", codecForString())\n .build(\"Denomination\");\n\nexport const codecForAuditorDenomSig = (): Codec<AuditorDenomSig> =>\n buildCodecForObject<AuditorDenomSig>()\n .property(\"denom_pub_h\", codecForString())\n .property(\"auditor_sig\", codecForString())\n .build(\"AuditorDenomSig\");\n\nexport const codecForAuditor = (): Codec<ExchangeAuditor> =>\n buildCodecForObject<ExchangeAuditor>()\n .property(\"auditor_pub\", codecForString())\n .property(\"auditor_url\", codecForString())\n .property(\"denomination_keys\", codecForList(codecForAuditorDenomSig()))\n .build(\"Auditor\");\n\nexport const codecForExchangeHandle = (): Codec<ExchangeHandle> =>\n buildCodecForObject<ExchangeHandle>()\n .property(\"master_pub\", codecForString())\n .property(\"url\", codecForString())\n .build(\"ExchangeHandle\");\n\nexport const codecForAuditorHandle = (): Codec<AuditorHandle> =>\n buildCodecForObject<AuditorHandle>()\n .property(\"name\", codecForString())\n .property(\"auditor_pub\", codecForString())\n .property(\"url\", codecForString())\n .build(\"AuditorHandle\");\n\nexport const codecForLocation = (): Codec<Location> =>\n buildCodecForObject<Location>()\n .property(\"country\", codecOptional(codecForString()))\n .property(\"country_subdivision\", codecOptional(codecForString()))\n .property(\"building_name\", codecOptional(codecForString()))\n .property(\"building_number\", codecOptional(codecForString()))\n .property(\"district\", codecOptional(codecForString()))\n .property(\"street\", codecOptional(codecForString()))\n .property(\"post_code\", codecOptional(codecForString()))\n .property(\"town\", codecOptional(codecForString()))\n .property(\"town_location\", codecOptional(codecForString()))\n .property(\"address_lines\", codecOptional(codecForList(codecForString())))\n .build(\"Location\");\n\nexport const codecForMerchantInfo = (): Codec<MerchantInfo> =>\n buildCodecForObject<MerchantInfo>()\n .property(\"name\", codecForString())\n .property(\"address\", codecOptional(codecForLocation()))\n .property(\"jurisdiction\", codecOptional(codecForLocation()))\n .build(\"MerchantInfo\");\n\nexport const codecForTax = (): Codec<Tax> =>\n buildCodecForObject<Tax>()\n .property(\"name\", codecForString())\n .property(\"tax\", codecForAmountString())\n .build(\"Tax\");\n\nexport const codecForInternationalizedString =\n (): Codec<InternationalizedString> => codecForMap(codecForString());\n\nexport const codecForProduct = (): Codec<Product> =>\n buildCodecForObject<Product>()\n .property(\"product_id\", codecOptional(codecForString()))\n .property(\"description\", codecForString())\n .property(\n \"description_i18n\",\n codecOptional(codecForInternationalizedString()),\n )\n .property(\"quantity\", codecOptional(codecForNumber()))\n .property(\"unit\", codecOptional(codecForString()))\n .property(\"price\", codecOptional(codecForAmountString()))\n .build(\"Tax\");\n\nexport const codecForMerchantContractTerms = (): Codec<MerchantContractTerms> =>\n buildCodecForObject<MerchantContractTerms>()\n .property(\"order_id\", codecForString())\n .property(\"fulfillment_url\", codecOptional(codecForString()))\n .property(\"fulfillment_message\", codecOptional(codecForString()))\n .property(\n \"fulfillment_message_i18n\",\n codecOptional(codecForInternationalizedString()),\n )\n .property(\"merchant_base_url\", codecForString())\n .property(\"h_wire\", codecForString())\n .property(\"auto_refund\", codecOptional(codecForDuration))\n .property(\"wire_method\", codecForString())\n .property(\"summary\", codecForString())\n .property(\"summary_i18n\", codecOptional(codecForInternationalizedString()))\n .property(\"nonce\", codecForString())\n .property(\"amount\", codecForString())\n .property(\"pay_deadline\", codecForTimestamp)\n .property(\"refund_deadline\", codecForTimestamp)\n .property(\"wire_transfer_deadline\", codecForTimestamp)\n .property(\"timestamp\", codecForTimestamp)\n .property(\"delivery_location\", codecOptional(codecForLocation()))\n .property(\"delivery_date\", codecOptional(codecForTimestamp))\n .property(\"max_fee\", codecForString())\n .property(\"max_wire_fee\", codecOptional(codecForString()))\n .property(\"merchant\", codecForMerchantInfo())\n .property(\"merchant_pub\", codecForString())\n .property(\"exchanges\", codecForList(codecForExchangeHandle()))\n .property(\"products\", codecOptional(codecForList(codecForProduct())))\n .property(\"extra\", codecForAny())\n .property(\"minimum_age\", codecOptional(codecForNumber()))\n .build(\"MerchantContractTerms\");\n\nexport const codecForPeerContractTerms = (): Codec<PeerContractTerms> =>\n buildCodecForObject<PeerContractTerms>()\n .property(\"summary\", codecForString())\n .property(\"amount\", codecForAmountString())\n .property(\"purse_expiration\", codecForTimestamp)\n .build(\"PeerContractTerms\");\n\nexport const codecForMerchantRefundPermission =\n (): Codec<MerchantAbortPayRefundDetails> =>\n buildCodecForObject<MerchantAbortPayRefundDetails>()\n .property(\"refund_amount\", codecForAmountString())\n .property(\"refund_fee\", codecForAmountString())\n .property(\"coin_pub\", codecForString())\n .property(\"rtransaction_id\", codecForNumber())\n .property(\"exchange_http_status\", codecForNumber())\n .property(\"exchange_code\", codecOptional(codecForNumber()))\n .property(\"exchange_reply\", codecOptional(codecForAny()))\n .property(\"exchange_sig\", codecOptional(codecForString()))\n .property(\"exchange_pub\", codecOptional(codecForString()))\n .build(\"MerchantRefundPermission\");\n\nexport const codecForMerchantRefundResponse =\n (): Codec<MerchantRefundResponse> =>\n buildCodecForObject<MerchantRefundResponse>()\n .property(\"merchant_pub\", codecForString())\n .property(\"h_contract_terms\", codecForString())\n .property(\"refunds\", codecForList(codecForMerchantRefundPermission()))\n .build(\"MerchantRefundResponse\");\n\nexport const codecForBlindSigWrapperV2 = (): Codec<MerchantBlindSigWrapperV2> =>\n buildCodecForObject<MerchantBlindSigWrapperV2>()\n .property(\"blind_sig\", codecForBlindedDenominationSignature())\n .build(\"MerchantBlindSigWrapperV2\");\n\nexport const codecForMerchantTipResponseV2 = (): Codec<MerchantTipResponseV2> =>\n buildCodecForObject<MerchantTipResponseV2>()\n .property(\"blind_sigs\", codecForList(codecForBlindSigWrapperV2()))\n .build(\"MerchantTipResponseV2\");\n\nexport const codecForRecoup = (): Codec<Recoup> =>\n buildCodecForObject<Recoup>()\n .property(\"h_denom_pub\", codecForString())\n .build(\"Recoup\");\n\nexport const codecForExchangeSigningKey = (): Codec<ExchangeSignKeyJson> =>\n buildCodecForObject<ExchangeSignKeyJson>()\n .property(\"key\", codecForString())\n .property(\"master_sig\", codecForString())\n .property(\"stamp_end\", codecForTimestamp)\n .property(\"stamp_start\", codecForTimestamp)\n .property(\"stamp_expire\", codecForTimestamp)\n .build(\"ExchangeSignKeyJson\");\n\nexport const codecForGlobalFees = (): Codec<GlobalFees> =>\n buildCodecForObject<GlobalFees>()\n .property(\"start_date\", codecForTimestamp)\n .property(\"end_date\", codecForTimestamp)\n .property(\"history_fee\", codecForAmountString())\n .property(\"account_fee\", codecForAmountString())\n .property(\"purse_fee\", codecForAmountString())\n .property(\"history_expiration\", codecForDuration)\n .property(\"purse_account_limit\", codecForNumber())\n .property(\"purse_timeout\", codecForDuration)\n .property(\"master_sig\", codecForString())\n .build(\"GlobalFees\");\n\n// FIXME: Validate properly!\nexport const codecForNgDenominations: Codec<DenomGroup> = codecForAny();\n\nexport const codecForExchangeKeysJson = (): Codec<ExchangeKeysJson> =>\n buildCodecForObject<ExchangeKeysJson>()\n .property(\"base_url\", codecForString())\n .property(\"currency\", codecForString())\n .property(\"master_public_key\", codecForString())\n .property(\"auditors\", codecForList(codecForAuditor()))\n .property(\"list_issue_date\", codecForTimestamp)\n .property(\"recoup\", codecOptional(codecForList(codecForRecoup())))\n .property(\"signkeys\", codecForList(codecForExchangeSigningKey()))\n .property(\"version\", codecForString())\n .property(\"reserve_closing_delay\", codecForDuration)\n .property(\"global_fees\", codecForList(codecForGlobalFees()))\n .property(\"accounts\", codecForList(codecForExchangeWireAccount()))\n .property(\"wire_fees\", codecForMap(codecForList(codecForWireFeesJson())))\n .property(\"denominations\", codecForList(codecForNgDenominations))\n .build(\"ExchangeKeysJson\");\n\nexport const codecForWireFeesJson = (): Codec<WireFeesJson> =>\n buildCodecForObject<WireFeesJson>()\n .property(\"wire_fee\", codecForString())\n .property(\"closing_fee\", codecForString())\n .property(\"sig\", codecForString())\n .property(\"start_date\", codecForTimestamp)\n .property(\"end_date\", codecForTimestamp)\n .build(\"WireFeesJson\");\n\nexport const codecForProposal = (): Codec<Proposal> =>\n buildCodecForObject<Proposal>()\n .property(\"contract_terms\", codecForAny())\n .property(\"sig\", codecForString())\n .build(\"Proposal\");\n\nexport const codecForCheckPaymentResponse = (): Codec<CheckPaymentResponse> =>\n buildCodecForObject<CheckPaymentResponse>()\n .property(\"order_status\", codecForString())\n .property(\"refunded\", codecOptional(codecForBoolean()))\n .property(\"refunded_amount\", codecOptional(codecForString()))\n .property(\"contract_terms\", codecOptional(codecForAny()))\n .property(\"taler_pay_uri\", codecOptional(codecForString()))\n .property(\"contract_url\", codecOptional(codecForString()))\n .build(\"CheckPaymentResponse\");\n\nexport const codecForWithdrawOperationStatusResponse =\n (): Codec<WithdrawOperationStatusResponse> =>\n buildCodecForObject<WithdrawOperationStatusResponse>()\n .property(\"selection_done\", codecForBoolean())\n .property(\"transfer_done\", codecForBoolean())\n .property(\"aborted\", codecForBoolean())\n .property(\"amount\", codecForString())\n .property(\"sender_wire\", codecOptional(codecForString()))\n .property(\"suggested_exchange\", codecOptional(codecForString()))\n .property(\"confirm_transfer_url\", codecOptional(codecForString()))\n .property(\"wire_types\", codecForList(codecForString()))\n .build(\"WithdrawOperationStatusResponse\");\n\nexport const codecForRewardPickupGetResponse =\n (): Codec<RewardPickupGetResponse> =>\n buildCodecForObject<RewardPickupGetResponse>()\n .property(\"reward_amount\", codecForString())\n .property(\"exchange_url\", codecForString())\n .property(\"next_url\", codecOptional(codecForString()))\n .property(\"expiration\", codecForTimestamp)\n .build(\"TipPickupGetResponse\");\n\nexport const codecForRecoupConfirmation = (): Codec<RecoupConfirmation> =>\n buildCodecForObject<RecoupConfirmation>()\n .property(\"reserve_pub\", codecOptional(codecForString()))\n .property(\"old_coin_pub\", codecOptional(codecForString()))\n .build(\"RecoupConfirmation\");\n\nexport const codecForWithdrawResponse = (): Codec<ExchangeWithdrawResponse> =>\n buildCodecForObject<ExchangeWithdrawResponse>()\n .property(\"ev_sig\", codecForBlindedDenominationSignature())\n .build(\"WithdrawResponse\");\n\nexport const codecForExchangeWithdrawBatchResponse =\n (): Codec<ExchangeWithdrawBatchResponse> =>\n buildCodecForObject<ExchangeWithdrawBatchResponse>()\n .property(\"ev_sigs\", codecForList(codecForWithdrawResponse()))\n .build(\"WithdrawBatchResponse\");\n\nexport const codecForMerchantPayResponse = (): Codec<MerchantPayResponse> =>\n buildCodecForObject<MerchantPayResponse>()\n .property(\"sig\", codecForString())\n .property(\"pos_confirmation\", codecOptional(codecForString()))\n .build(\"MerchantPayResponse\");\n\nexport const codecForExchangeMeltResponse = (): Codec<ExchangeMeltResponse> =>\n buildCodecForObject<ExchangeMeltResponse>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"noreveal_index\", codecForNumber())\n .property(\"refresh_base_url\", codecOptional(codecForString()))\n .build(\"ExchangeMeltResponse\");\n\nexport const codecForExchangeRevealItem = (): Codec<ExchangeRevealItem> =>\n buildCodecForObject<ExchangeRevealItem>()\n .property(\"ev_sig\", codecForBlindedDenominationSignature())\n .build(\"ExchangeRevealItem\");\n\nexport const codecForExchangeRevealResponse =\n (): Codec<ExchangeRevealResponse> =>\n buildCodecForObject<ExchangeRevealResponse>()\n .property(\"ev_sigs\", codecForList(codecForExchangeRevealItem()))\n .build(\"ExchangeRevealResponse\");\n\nexport const codecForMerchantCoinRefundSuccessStatus =\n (): Codec<MerchantCoinRefundSuccessStatus> =>\n buildCodecForObject<MerchantCoinRefundSuccessStatus>()\n .property(\"type\", codecForConstString(\"success\"))\n .property(\"coin_pub\", codecForString())\n .property(\"exchange_status\", codecForConstNumber(200))\n .property(\"exchange_sig\", codecForString())\n .property(\"rtransaction_id\", codecForNumber())\n .property(\"refund_amount\", codecForAmountString())\n .property(\"exchange_pub\", codecForString())\n .property(\"execution_time\", codecForTimestamp)\n .build(\"MerchantCoinRefundSuccessStatus\");\n\nexport const codecForMerchantCoinRefundFailureStatus =\n (): Codec<MerchantCoinRefundFailureStatus> =>\n buildCodecForObject<MerchantCoinRefundFailureStatus>()\n .property(\"type\", codecForConstString(\"failure\"))\n .property(\"coin_pub\", codecForString())\n .property(\"exchange_status\", codecForNumber())\n .property(\"rtransaction_id\", codecForNumber())\n .property(\"refund_amount\", codecForAmountString())\n .property(\"exchange_code\", codecOptional(codecForNumber()))\n .property(\"exchange_reply\", codecOptional(codecForAny()))\n .property(\"execution_time\", codecForTimestamp)\n .build(\"MerchantCoinRefundFailureStatus\");\n\nexport const codecForMerchantCoinRefundStatus =\n (): Codec<MerchantCoinRefundStatus> =>\n buildCodecForUnion<MerchantCoinRefundStatus>()\n .discriminateOn(\"type\")\n .alternative(\"success\", codecForMerchantCoinRefundSuccessStatus())\n .alternative(\"failure\", codecForMerchantCoinRefundFailureStatus())\n .build(\"MerchantCoinRefundStatus\");\n\nexport const codecForMerchantOrderStatusPaid =\n (): Codec<MerchantOrderStatusPaid> =>\n buildCodecForObject<MerchantOrderStatusPaid>()\n .property(\"refund_amount\", codecForAmountString())\n .property(\"refund_taken\", codecForAmountString())\n .property(\"refund_pending\", codecForBoolean())\n .property(\"refunded\", codecForBoolean())\n .build(\"MerchantOrderStatusPaid\");\n\nexport const codecForMerchantOrderRefundPickupResponse =\n (): Codec<MerchantOrderRefundResponse> =>\n buildCodecForObject<MerchantOrderRefundResponse>()\n .property(\"merchant_pub\", codecForString())\n .property(\"refund_amount\", codecForAmountString())\n .property(\"refunds\", codecForList(codecForMerchantCoinRefundStatus()))\n .build(\"MerchantOrderRefundPickupResponse\");\n\nexport const codecForMerchantOrderStatusUnpaid =\n (): Codec<MerchantOrderStatusUnpaid> =>\n buildCodecForObject<MerchantOrderStatusUnpaid>()\n .property(\"taler_pay_uri\", codecForString())\n .property(\"already_paid_order_id\", codecOptional(codecForString()))\n .build(\"MerchantOrderStatusUnpaid\");\n\nexport interface AbortRequest {\n // hash of the order's contract terms (this is used to authenticate the\n // wallet/customer in case $ORDER_ID is guessable).\n h_contract: string;\n\n // List of coins the wallet would like to see refunds for.\n // (Should be limited to the coins for which the original\n // payment succeeded, as far as the wallet knows.)\n coins: AbortingCoin[];\n}\n\nexport interface AbortingCoin {\n // Public key of a coin for which the wallet is requesting an abort-related refund.\n coin_pub: EddsaPublicKeyString;\n\n // The amount to be refunded (matches the original contribution)\n contribution: AmountString;\n\n // URL of the exchange this coin was withdrawn from.\n exchange_url: string;\n}\n\nexport interface AbortResponse {\n // List of refund responses about the coins that the wallet\n // requested an abort for. In the same order as the 'coins'\n // from the original request.\n // The rtransaction_id is implied to be 0.\n refunds: MerchantAbortPayRefundStatus[];\n}\n\nexport const codecForMerchantAbortPayRefundSuccessStatus =\n (): Codec<MerchantAbortPayRefundSuccessStatus> =>\n buildCodecForObject<MerchantAbortPayRefundSuccessStatus>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"exchange_status\", codecForConstNumber(200))\n .property(\"type\", codecForConstString(\"success\"))\n .build(\"MerchantAbortPayRefundSuccessStatus\");\n\nexport const codecForMerchantAbortPayRefundFailureStatus =\n (): Codec<MerchantAbortPayRefundFailureStatus> =>\n buildCodecForObject<MerchantAbortPayRefundFailureStatus>()\n .property(\"exchange_code\", codecForNumber())\n .property(\"exchange_reply\", codecForAny())\n .property(\"exchange_status\", codecForNumber())\n .property(\"type\", codecForConstString(\"failure\"))\n .build(\"MerchantAbortPayRefundFailureStatus\");\n\nexport const codecForMerchantAbortPayRefundStatus =\n (): Codec<MerchantAbortPayRefundStatus> =>\n buildCodecForUnion<MerchantAbortPayRefundStatus>()\n .discriminateOn(\"type\")\n .alternative(\"success\", codecForMerchantAbortPayRefundSuccessStatus())\n .alternative(\"failure\", codecForMerchantAbortPayRefundFailureStatus())\n .build(\"MerchantAbortPayRefundStatus\");\n\nexport const codecForAbortResponse = (): Codec<AbortResponse> =>\n buildCodecForObject<AbortResponse>()\n .property(\"refunds\", codecForList(codecForMerchantAbortPayRefundStatus()))\n .build(\"AbortResponse\");\n\nexport type MerchantAbortPayRefundStatus =\n | MerchantAbortPayRefundSuccessStatus\n | MerchantAbortPayRefundFailureStatus;\n\n// Details about why a refund failed.\nexport interface MerchantAbortPayRefundFailureStatus {\n // Used as tag for the sum type RefundStatus sum type.\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: number;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: number;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: unknown;\n}\n\n// Additional details needed to verify the refund confirmation signature\n// (h_contract_terms and merchant_pub) are already known\n// to the wallet and thus not included.\nexport interface MerchantAbortPayRefundSuccessStatus {\n // Used as tag for the sum type MerchantCoinRefundStatus sum type.\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // the EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund\n exchange_sig: string;\n\n // public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: string;\n}\n\nexport interface FutureKeysResponse {\n future_denoms: any[];\n\n future_signkeys: any[];\n\n master_pub: string;\n\n denom_secmod_public_key: string;\n\n // Public key of the signkey security module.\n signkey_secmod_public_key: string;\n}\n\nexport const codecForKeysManagementResponse = (): Codec<FutureKeysResponse> =>\n buildCodecForObject<FutureKeysResponse>()\n .property(\"master_pub\", codecForString())\n .property(\"future_signkeys\", codecForList(codecForAny()))\n .property(\"future_denoms\", codecForList(codecForAny()))\n .property(\"denom_secmod_public_key\", codecForAny())\n .property(\"signkey_secmod_public_key\", codecForAny())\n .build(\"FutureKeysResponse\");\n\nexport interface MerchantConfigResponse {\n currency: string;\n name: string;\n version: string;\n}\n\nexport const codecForMerchantConfigResponse =\n (): Codec<MerchantConfigResponse> =>\n buildCodecForObject<MerchantConfigResponse>()\n .property(\"currency\", codecForString())\n .property(\"name\", codecForString())\n .property(\"version\", codecForString())\n .build(\"MerchantConfigResponse\");\n\nexport enum ExchangeProtocolVersion {\n /**\n * Current version supported by the wallet.\n */\n V12 = 12,\n}\n\nexport enum MerchantProtocolVersion {\n /**\n * Current version supported by the wallet.\n */\n V3 = 3,\n}\n\nexport type CoinEnvelope = CoinEnvelopeRsa | CoinEnvelopeCs;\n\nexport interface CoinEnvelopeRsa {\n cipher: DenomKeyType.Rsa;\n rsa_blinded_planchet: string;\n}\n\nexport interface CoinEnvelopeCs {\n cipher: DenomKeyType.ClauseSchnorr;\n // FIXME: add remaining fields\n}\n\nexport type HashCodeString = string;\n\nexport interface ExchangeWithdrawRequest {\n denom_pub_hash: HashCodeString;\n reserve_sig: EddsaSignatureString;\n coin_ev: CoinEnvelope;\n}\n\nexport interface ExchangeBatchWithdrawRequest {\n planchets: ExchangeWithdrawRequest[];\n}\n\nexport interface ExchangeRefreshRevealRequest {\n new_denoms_h: HashCodeString[];\n coin_evs: CoinEnvelope[];\n /**\n * kappa - 1 transfer private keys (ephemeral ECDHE keys).\n */\n transfer_privs: string[];\n\n transfer_pub: EddsaPublicKeyString;\n\n link_sigs: EddsaSignatureString[];\n\n /**\n * Iff the corresponding denomination has support for age restriction,\n * the client MUST provide the original age commitment, i.e. the vector\n * of public keys.\n */\n old_age_commitment?: Edx25519PublicKeyEnc[];\n}\n\ninterface DepositConfirmationSignature {\n // The EdDSA signature of `TALER_DepositConfirmationPS` using a current\n // `signing key of the exchange <sign-key-priv>` affirming the successful\n // deposit and that the exchange will transfer the funds after the refund\n // deadline, or as soon as possible if the refund deadline is zero.\n exchange_sig: EddsaSignatureString;\n}\n\nexport interface BatchDepositSuccess {\n // Optional base URL of the exchange for looking up wire transfers\n // associated with this transaction. If not given,\n // the base URL is the same as the one used for this request.\n // Can be used if the base URL for ``/transactions/`` differs from that\n // for ``/coins/``, i.e. for load balancing. Clients SHOULD\n // respect the ``transaction_base_url`` if provided. Any HTTP server\n // belonging to an exchange MUST generate a 307 or 308 redirection\n // to the correct base URL should a client uses the wrong base\n // URL, or if the base URL has changed since the deposit.\n transaction_base_url?: string;\n\n // Timestamp when the deposit was received by the exchange.\n exchange_timestamp: TalerProtocolTimestamp;\n\n // `Public EdDSA key of the exchange <sign-key-pub>` that was used to\n // generate the signature.\n // Should match one of the exchange's signing keys from ``/keys``. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n\n // Array of deposit confirmation signatures from the exchange\n // Entries must be in the same order the coins were given\n // in the batch deposit request.\n exchange_sig: EddsaSignatureString;\n}\n\nexport const codecForBatchDepositSuccess = (): Codec<BatchDepositSuccess> =>\n buildCodecForObject<BatchDepositSuccess>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"exchange_timestamp\", codecForTimestamp)\n .property(\"transaction_base_url\", codecOptional(codecForString()))\n .build(\"BatchDepositSuccess\");\n\nexport interface TrackTransactionWired {\n // Raw wire transfer identifier of the deposit.\n wtid: Base32String;\n\n // When was the wire transfer given to the bank.\n execution_time: TalerProtocolTimestamp;\n\n // The contribution of this coin to the total (without fees)\n coin_contribution: AmountString;\n\n // Binary-only Signature_ with purpose TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE\n // over a TALER_ConfirmWirePS\n // whereby the exchange affirms the successful wire transfer.\n exchange_sig: EddsaSignatureString;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. Again given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n}\n\nexport const codecForTackTransactionWired = (): Codec<TrackTransactionWired> =>\n buildCodecForObject<TrackTransactionWired>()\n .property(\"wtid\", codecForString())\n .property(\"execution_time\", codecForTimestamp)\n .property(\"coin_contribution\", codecForAmountString())\n .property(\"exchange_sig\", codecForString())\n .property(\"exchange_pub\", codecForString())\n .build(\"TackTransactionWired\");\n\ninterface TrackTransactionAccepted {\n // Legitimization target that the merchant should\n // use to check for its KYC status using\n // the /kyc-check/$REQUIREMENT_ROW/... endpoint.\n // Optional, not present if the deposit has not\n // yet been aggregated to the point that a KYC\n // need has been evaluated.\n requirement_row?: number;\n\n // True if the KYC check for the merchant has been\n // satisfied. False does not mean that KYC\n // is strictly needed, unless also a\n // legitimization_uuid is provided.\n kyc_ok: boolean;\n\n // Time by which the exchange currently thinks the deposit will be executed.\n // Actual execution may be later if the KYC check is not satisfied by then.\n execution_time: TalerProtocolTimestamp;\n}\n\nexport const codecForTackTransactionAccepted =\n (): Codec<TrackTransactionAccepted> =>\n buildCodecForObject<TrackTransactionAccepted>()\n .property(\"requirement_row\", codecOptional(codecForNumber()))\n .property(\"kyc_ok\", codecForBoolean())\n .property(\"execution_time\", codecForTimestamp)\n .build(\"TackTransactionAccepted\");\n\nexport type TrackTransaction =\n | ({ type: \"accepted\" } & TrackTransactionAccepted)\n | ({ type: \"wired\" } & TrackTransactionWired);\n\nexport interface PurseDeposit {\n /**\n * Amount to be deposited, can be a fraction of the\n * coin's total value.\n */\n amount: AmountString;\n\n /**\n * Hash of denomination RSA key with which the coin is signed.\n */\n denom_pub_hash: HashCodeString;\n\n /**\n * Exchange's unblinded RSA signature of the coin.\n */\n ub_sig: UnblindedSignature;\n\n /**\n * Age commitment for the coin, if the denomination is age-restricted.\n */\n age_commitment?: string[];\n\n /**\n * Attestation for the minimum age, if the denomination is age-restricted.\n */\n attest?: string;\n\n /**\n * Signature over TALER_PurseDepositSignaturePS\n * of purpose TALER_SIGNATURE_WALLET_PURSE_DEPOSIT\n * made by the customer with the\n * coin's private key.\n */\n coin_sig: EddsaSignatureString;\n\n /**\n * Public key of the coin being deposited into the purse.\n */\n coin_pub: EddsaPublicKeyString;\n}\n\nexport interface ExchangePurseMergeRequest {\n // payto://-URI of the account the purse is to be merged into.\n // Must be of the form: 'payto://taler/$EXCHANGE_URL/$RESERVE_PUB'.\n payto_uri: string;\n\n // EdDSA signature of the account/reserve affirming the merge\n // over a TALER_AccountMergeSignaturePS.\n // Must be of purpose TALER_SIGNATURE_ACCOUNT_MERGE\n reserve_sig: EddsaSignatureString;\n\n // EdDSA signature of the purse private key affirming the merge\n // over a TALER_PurseMergeSignaturePS.\n // Must be of purpose TALER_SIGNATURE_PURSE_MERGE.\n merge_sig: EddsaSignatureString;\n\n // Client-side timestamp of when the merge request was made.\n merge_timestamp: TalerProtocolTimestamp;\n}\n\nexport interface ExchangeGetContractResponse {\n purse_pub: string;\n econtract_sig: string;\n econtract: string;\n}\n\nexport const codecForExchangeGetContractResponse =\n (): Codec<ExchangeGetContractResponse> =>\n buildCodecForObject<ExchangeGetContractResponse>()\n .property(\"purse_pub\", codecForString())\n .property(\"econtract_sig\", codecForString())\n .property(\"econtract\", codecForString())\n .build(\"ExchangeGetContractResponse\");\n\n/**\n * Contract terms between two wallets (as opposed to a merchant and wallet).\n */\nexport interface PeerContractTerms {\n amount: AmountString;\n summary: string;\n purse_expiration: TalerProtocolTimestamp;\n}\n\nexport interface EncryptedContract {\n // Encrypted contract.\n econtract: string;\n\n // Signature over the (encrypted) contract.\n econtract_sig: string;\n\n // Ephemeral public key for the DH operation to decrypt the encrypted contract.\n contract_pub: string;\n}\n\n/**\n * Payload for /reserves/{reserve_pub}/purse\n * endpoint of the exchange.\n */\nexport interface ExchangeReservePurseRequest {\n /**\n * Minimum amount that must be credited to the reserve, that is\n * the total value of the purse minus the deposit fees.\n * If the deposit fees are lower, the contribution to the\n * reserve can be higher!\n */\n purse_value: AmountString;\n\n // Minimum age required for all coins deposited into the purse.\n min_age: number;\n\n // Purse fee the reserve owner is willing to pay\n // for the purse creation. Optional, if not present\n // the purse is to be created from the purse quota\n // of the reserve.\n purse_fee: AmountString;\n\n // Optional encrypted contract, in case the buyer is\n // proposing the contract and thus establishing the\n // purse with the payment.\n econtract?: EncryptedContract;\n\n // EdDSA public key used to approve merges of this purse.\n merge_pub: EddsaPublicKeyString;\n\n // EdDSA signature of the purse private key affirming the merge\n // over a TALER_PurseMergeSignaturePS.\n // Must be of purpose TALER_SIGNATURE_PURSE_MERGE.\n merge_sig: EddsaSignatureString;\n\n // EdDSA signature of the account/reserve affirming the merge.\n // Must be of purpose TALER_SIGNATURE_WALLET_ACCOUNT_MERGE\n reserve_sig: EddsaSignatureString;\n\n // Purse public key.\n purse_pub: EddsaPublicKeyString;\n\n // EdDSA signature of the purse over\n // TALER_PurseRequestSignaturePS of\n // purpose TALER_SIGNATURE_PURSE_REQUEST\n // confirming that the\n // above details hold for this purse.\n purse_sig: EddsaSignatureString;\n\n // SHA-512 hash of the contact of the purse.\n h_contract_terms: HashCodeString;\n\n // Client-side timestamp of when the merge request was made.\n merge_timestamp: TalerProtocolTimestamp;\n\n // Indicative time by which the purse should expire\n // if it has not been paid.\n purse_expiration: TalerProtocolTimestamp;\n}\n\nexport interface ExchangePurseDeposits {\n // Array of coins to deposit into the purse.\n deposits: PurseDeposit[];\n}\n\n/**\n * @deprecated batch deposit should be used.\n */\nexport interface ExchangeDepositRequest {\n // Amount to be deposited, can be a fraction of the\n // coin's total value.\n contribution: AmountString;\n\n // The merchant's account details.\n // In case of an auction policy, it refers to the seller.\n merchant_payto_uri: string;\n\n // The salt is used to hide the payto_uri from customers\n // when computing the h_wire of the merchant.\n wire_salt: string;\n\n // SHA-512 hash of the contract of the merchant with the customer. Further\n // details are never disclosed to the exchange.\n h_contract_terms: HashCodeString;\n\n // Hash of denomination RSA key with which the coin is signed.\n denom_pub_hash: HashCodeString;\n\n // Exchange's unblinded RSA signature of the coin.\n ub_sig: UnblindedSignature;\n\n // Timestamp when the contract was finalized.\n timestamp: TalerProtocolTimestamp;\n\n // Indicative time by which the exchange undertakes to transfer the funds to\n // the merchant, in case of successful payment. A wire transfer deadline of 'never'\n // is not allowed.\n wire_transfer_deadline: TalerProtocolTimestamp;\n\n // EdDSA public key of the merchant, so that the client can identify the\n // merchant for refund requests.\n //\n // THIS FIELD WILL BE DEPRECATED, once the refund mechanism becomes a\n // policy via extension.\n merchant_pub: EddsaPublicKeyString;\n\n // Date until which the merchant can issue a refund to the customer via the\n // exchange, to be omitted if refunds are not allowed.\n //\n // THIS FIELD WILL BE DEPRECATED, once the refund mechanism becomes a\n // policy via extension.\n refund_deadline?: TalerProtocolTimestamp;\n\n // CAVEAT: THIS IS WORK IN PROGRESS\n // (Optional) policy for the deposit.\n // This might be a refund, auction or escrow policy.\n //\n // Note that support for policies is an optional feature of the exchange.\n // Optional features are so called \"extensions\" in Taler. The exchange\n // provides the list of supported extensions, including policies, in the\n // ExtensionsManifestsResponse response to the /keys endpoint.\n policy?: any;\n\n // Signature over TALER_DepositRequestPS, made by the customer with the\n // coin's private key.\n coin_sig: EddsaSignatureString;\n\n h_age_commitment?: string;\n}\n\nexport type WireSalt = string;\n\nexport interface ExchangeBatchDepositRequest {\n // The merchant's account details.\n merchant_payto_uri: string;\n\n // The salt is used to hide the ``payto_uri`` from customers\n // when computing the ``h_wire`` of the merchant.\n wire_salt: WireSalt;\n\n // SHA-512 hash of the contract of the merchant with the customer. Further\n // details are never disclosed to the exchange.\n h_contract_terms: HashCodeString;\n\n // The list of coins that are going to be deposited with this Request.\n coins: BatchDepositRequestCoin[];\n\n // Timestamp when the contract was finalized.\n timestamp: TalerProtocolTimestamp;\n\n // Indicative time by which the exchange undertakes to transfer the funds to\n // the merchant, in case of successful payment. A wire transfer deadline of 'never'\n // is not allowed.\n wire_transfer_deadline: TalerProtocolTimestamp;\n\n // EdDSA `public key of the merchant <merchant-pub>`, so that the client can identify the\n // merchant for refund requests.\n merchant_pub: EddsaPublicKeyString;\n\n // Date until which the merchant can issue a refund to the customer via the\n // exchange, to be omitted if refunds are not allowed.\n //\n // THIS FIELD WILL BE DEPRICATED, once the refund mechanism becomes a\n // policy via extension.\n refund_deadline?: TalerProtocolTimestamp;\n\n // CAVEAT: THIS IS WORK IN PROGRESS\n // (Optional) policy for the batch-deposit.\n // This might be a refund, auction or escrow policy.\n policy?: any;\n}\n\nexport interface BatchDepositRequestCoin {\n // EdDSA public key of the coin being deposited.\n coin_pub: EddsaPublicKeyString;\n\n // Hash of denomination RSA key with which the coin is signed.\n denom_pub_hash: HashCodeString;\n\n // Exchange's unblinded RSA signature of the coin.\n ub_sig: UnblindedSignature;\n\n // Amount to be deposited, can be a fraction of the\n // coin's total value.\n contribution: Amounts;\n\n // Signature over `TALER_DepositRequestPS`, made by the customer with the\n // `coin's private key <coin-priv>`.\n coin_sig: EddsaSignatureString;\n\n h_age_commitment?: string;\n}\n\nexport interface WalletKycUuid {\n // UUID that the wallet should use when initiating\n // the KYC check.\n requirement_row: number;\n\n // Hash of the payto:// account URI for the wallet.\n h_payto: string;\n}\n\nexport const codecForWalletKycUuid = (): Codec<WalletKycUuid> =>\n buildCodecForObject<WalletKycUuid>()\n .property(\"requirement_row\", codecForNumber())\n .property(\"h_payto\", codecForString())\n .build(\"WalletKycUuid\");\n\nexport interface MerchantUsingTemplateDetails {\n summary?: string;\n amount?: AmountString;\n}\n\nexport interface ExchangeRefundRequest {\n // Amount to be refunded, can be a fraction of the\n // coin's total deposit value (including deposit fee);\n // must be larger than the refund fee.\n refund_amount: AmountString;\n\n // SHA-512 hash of the contact of the merchant with the customer.\n h_contract_terms: HashCodeString;\n\n // 64-bit transaction id of the refund transaction between merchant and customer.\n rtransaction_id: number;\n\n // EdDSA public key of the merchant.\n merchant_pub: EddsaPublicKeyString;\n\n // EdDSA signature of the merchant over a\n // TALER_RefundRequestPS with purpose\n // TALER_SIGNATURE_MERCHANT_REFUND\n // affirming the refund.\n merchant_sig: EddsaPublicKeyString;\n}\n\nexport interface ExchangeRefundSuccessResponse {\n // The EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND over\n // a TALER_RecoupRefreshConfirmationPS\n // using a current signing key of the\n // exchange affirming the successful refund.\n exchange_sig: EddsaSignatureString;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKeyString;\n}\n\nexport const codecForExchangeRefundSuccessResponse =\n (): Codec<ExchangeRefundSuccessResponse> =>\n buildCodecForObject<ExchangeRefundSuccessResponse>()\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .build(\"ExchangeRefundSuccessResponse\");\n\nexport type AccountRestriction =\n | RegexAccountRestriction\n | DenyAllAccountRestriction;\n\nexport interface DenyAllAccountRestriction {\n type: \"deny\";\n}\n\n// Accounts interacting with this type of account\n// restriction must have a payto://-URI matching\n// the given regex.\nexport interface RegexAccountRestriction {\n type: \"regex\";\n\n // Regular expression that the payto://-URI of the\n // partner account must follow. The regular expression\n // should follow posix-egrep, but without support for character\n // classes, GNU extensions, back-references or intervals. See\n // https://www.gnu.org/software/findutils/manual/html_node/find_html/posix_002degrep-regular-expression-syntax.html\n // for a description of the posix-egrep syntax. Applications\n // may support regexes with additional features, but exchanges\n // must not use such regexes.\n payto_regex: string;\n\n // Hint for a human to understand the restriction\n // (that is hopefully easier to comprehend than the regex itself).\n human_hint: string;\n\n // Map from IETF BCP 47 language tags to localized\n // human hints.\n human_hint_i18n?: InternationalizedString;\n}\n\nexport interface ExchangeWireAccount {\n // payto:// URI identifying the account and wire method\n payto_uri: string;\n\n // URI to convert amounts from or to the currency used by\n // this wire account of the exchange. Missing if no\n // conversion is applicable.\n conversion_url?: string;\n\n // Restrictions that apply to bank accounts that would send\n // funds to the exchange (crediting this exchange bank account).\n // Optional, empty array for unrestricted.\n credit_restrictions: AccountRestriction[];\n\n // Restrictions that apply to bank accounts that would receive\n // funds from the exchange (debiting this exchange bank account).\n // Optional, empty array for unrestricted.\n debit_restrictions: AccountRestriction[];\n\n // Signature using the exchange's offline key over\n // a TALER_MasterWireDetailsPS\n // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.\n master_sig: EddsaSignatureString;\n}\n\nexport const codecForExchangeWireAccount = (): Codec<ExchangeWireAccount> =>\n buildCodecForObject<ExchangeWireAccount>()\n .property(\"conversion_url\", codecOptional(codecForStringURL()))\n .property(\"credit_restrictions\", codecForList(codecForAny()))\n .property(\"debit_restrictions\", codecForList(codecForAny()))\n .property(\"master_sig\", codecForString())\n .property(\"payto_uri\", codecForString())\n .build(\"WireAccount\");\n\nexport type Integer = number;\n\nexport interface BankConversionInfoConfig {\n // libtool-style representation of the Bank protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Name of the API.\n name: \"taler-conversion-info\";\n\n regional_currency: string;\n\n fiat_currency: string;\n\n // Currency used by this bank.\n regional_currency_specification: CurrencySpecification;\n\n // External currency used during conversion.\n fiat_currency_specification: CurrencySpecification;\n}\n\nexport const codecForBankConversionInfoConfig =\n (): Codec<BankConversionInfoConfig> =>\n buildCodecForObject<BankConversionInfoConfig>()\n .property(\"name\", codecForConstString(\"taler-conversion-info\"))\n .property(\"version\", codecForString())\n .property(\"fiat_currency\", codecForString())\n .property(\"regional_currency\", codecForString())\n .property(\"fiat_currency_specification\", codecForCurrencySpecificiation())\n .property(\n \"regional_currency_specification\",\n codecForCurrencySpecificiation(),\n )\n .build(\"BankConversionInfoConfig\");\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type declarations for the exchange's reserve transaction information.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\n/**\n * Imports.\n */\nimport { codecForAmountString } from \"./amounts.js\";\nimport {\n codecForString,\n buildCodecForObject,\n codecForConstString,\n buildCodecForUnion,\n Codec,\n codecForNumber,\n} from \"./codec.js\";\nimport {\n AmountString,\n Base32String,\n EddsaSignatureString,\n EddsaPublicKeyString,\n CoinPublicKeyString,\n} from \"./taler-types.js\";\nimport {\n AbsoluteTime,\n codecForTimestamp,\n TalerProtocolTimestamp,\n} from \"./time.js\";\n\nexport enum ReserveTransactionType {\n Withdraw = \"WITHDRAW\",\n Credit = \"CREDIT\",\n Recoup = \"RECOUP\",\n Closing = \"CLOSING\",\n}\n\nexport interface ReserveWithdrawTransaction {\n type: ReserveTransactionType.Withdraw;\n\n /**\n * Amount withdrawn.\n */\n amount: AmountString;\n\n /**\n * Hash of the denomination public key of the coin.\n */\n h_denom_pub: Base32String;\n\n /**\n * Hash of the blinded coin to be signed\n */\n h_coin_envelope: Base32String;\n\n /**\n * Signature of 'TALER_WithdrawRequestPS' created with the reserves's\n * private key.\n */\n reserve_sig: EddsaSignatureString;\n\n /**\n * Fee that is charged for withdraw.\n */\n withdraw_fee: AmountString;\n}\n\nexport interface ReserveCreditTransaction {\n type: ReserveTransactionType.Credit;\n\n /**\n * Amount withdrawn.\n */\n amount: AmountString;\n\n /**\n * Sender account payto://-URL\n */\n sender_account_url: string;\n\n /**\n * Transfer details uniquely identifying the transfer.\n */\n wire_reference: number;\n\n /**\n * Timestamp of the incoming wire transfer.\n */\n timestamp: TalerProtocolTimestamp;\n}\n\nexport interface ReserveClosingTransaction {\n type: ReserveTransactionType.Closing;\n\n /**\n * Closing balance.\n */\n amount: AmountString;\n\n /**\n * Closing fee charged by the exchange.\n */\n closing_fee: AmountString;\n\n /**\n * Wire transfer subject.\n */\n wtid: string;\n\n /**\n * Hash of the wire account into which the funds were returned to.\n */\n h_wire: string;\n\n /**\n * This is a signature over a\n * struct TALER_ReserveCloseConfirmationPS with purpose\n * TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED.\n */\n exchange_sig: EddsaSignatureString;\n\n /**\n * Public key used to create exchange_sig.\n */\n exchange_pub: EddsaPublicKeyString;\n\n /**\n * Time when the reserve was closed.\n */\n timestamp: TalerProtocolTimestamp;\n}\n\nexport interface ReserveRecoupTransaction {\n type: ReserveTransactionType.Recoup;\n\n /**\n * Amount paid back.\n */\n amount: AmountString;\n\n /**\n * This is a signature over\n * a struct TALER_PaybackConfirmationPS with purpose\n * TALER_SIGNATURE_EXCHANGE_CONFIRM_PAYBACK.\n */\n exchange_sig: EddsaSignatureString;\n\n /**\n * Public key used to create exchange_sig.\n */\n exchange_pub: EddsaPublicKeyString;\n\n /**\n * Time when the funds were paid back into the reserve.\n */\n timestamp: TalerProtocolTimestamp;\n\n /**\n * Public key of the coin that was paid back.\n */\n coin_pub: CoinPublicKeyString;\n}\n\n/**\n * Format of the exchange's transaction history for a reserve.\n */\nexport type ReserveTransaction =\n | ReserveWithdrawTransaction\n | ReserveCreditTransaction\n | ReserveClosingTransaction\n | ReserveRecoupTransaction;\n\nexport const codecForReserveWithdrawTransaction =\n (): Codec<ReserveWithdrawTransaction> =>\n buildCodecForObject<ReserveWithdrawTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"h_coin_envelope\", codecForString())\n .property(\"h_denom_pub\", codecForString())\n .property(\"reserve_sig\", codecForString())\n .property(\"type\", codecForConstString(ReserveTransactionType.Withdraw))\n .property(\"withdraw_fee\", codecForAmountString())\n .build(\"ReserveWithdrawTransaction\");\n\nexport const codecForReserveCreditTransaction =\n (): Codec<ReserveCreditTransaction> =>\n buildCodecForObject<ReserveCreditTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"sender_account_url\", codecForString())\n .property(\"timestamp\", codecForTimestamp)\n .property(\"wire_reference\", codecForNumber())\n .property(\"type\", codecForConstString(ReserveTransactionType.Credit))\n .build(\"ReserveCreditTransaction\");\n\nexport const codecForReserveClosingTransaction =\n (): Codec<ReserveClosingTransaction> =>\n buildCodecForObject<ReserveClosingTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"closing_fee\", codecForAmountString())\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"h_wire\", codecForString())\n .property(\"timestamp\", codecForTimestamp)\n .property(\"type\", codecForConstString(ReserveTransactionType.Closing))\n .property(\"wtid\", codecForString())\n .build(\"ReserveClosingTransaction\");\n\nexport const codecForReserveRecoupTransaction =\n (): Codec<ReserveRecoupTransaction> =>\n buildCodecForObject<ReserveRecoupTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"coin_pub\", codecForString())\n .property(\"exchange_pub\", codecForString())\n .property(\"exchange_sig\", codecForString())\n .property(\"timestamp\", codecForTimestamp)\n .property(\"type\", codecForConstString(ReserveTransactionType.Recoup))\n .build(\"ReserveRecoupTransaction\");\n\nexport const codecForReserveTransaction = (): Codec<ReserveTransaction> =>\n buildCodecForUnion<ReserveTransaction>()\n .discriminateOn(\"type\")\n .alternative(\n ReserveTransactionType.Withdraw,\n codecForReserveWithdrawTransaction(),\n )\n .alternative(\n ReserveTransactionType.Closing,\n codecForReserveClosingTransaction(),\n )\n .alternative(\n ReserveTransactionType.Recoup,\n codecForReserveRecoupTransaction(),\n )\n .alternative(\n ReserveTransactionType.Credit,\n codecForReserveCreditTransaction(),\n )\n .build<ReserveTransaction>(\"ReserveTransaction\");\n", "/*\n This file is part of GNU Taler\n (C) 2019-2020 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Codec, Context, DecodingError, renderContext } from \"./codec.js\";\nimport { canonicalizeBaseUrl } from \"./helpers.js\";\nimport { AmountString } from \"./taler-types.js\";\nimport { URLSearchParams, URL } from \"./url.js\";\n\nexport type TalerUri =\n | PayUriResult\n | PayTemplateUriResult\n | DevExperimentUri\n | PayPullUriResult\n | PayPushUriResult\n | BackupRestoreUri\n | RefundUriResult\n | RewardUriResult\n | WithdrawUriResult\n | ExchangeUri\n | WithdrawExchangeUri\n | AuditorUri;\n\ndeclare const __action_str: unique symbol;\nexport type TalerActionString = string & { [__action_str]: true };\n\nexport function codecForTalerActionString(): Codec<TalerActionString> {\n return {\n decode(x: any, c?: Context): TalerActionString {\n if (typeof x !== \"string\") {\n throw new DecodingError(\n `expected string at ${renderContext(c)} but got ${typeof x}`,\n );\n }\n if (parseTalerUri(x) === undefined) {\n throw new DecodingError(\n `invalid taler action at ${renderContext(c)} but got \"${x}\"`,\n );\n }\n return x as TalerActionString;\n },\n };\n}\n\nexport interface PayUriResult {\n type: TalerUriAction.Pay;\n merchantBaseUrl: string;\n orderId: string;\n sessionId: string;\n claimToken?: string;\n noncePriv?: string;\n}\n\nexport interface PayTemplateUriResult {\n type: TalerUriAction.PayTemplate;\n merchantBaseUrl: string;\n templateId: string;\n templateParams: Record<string, string>;\n}\n\nexport interface WithdrawUriResult {\n type: TalerUriAction.Withdraw;\n bankIntegrationApiBaseUrl: string;\n withdrawalOperationId: string;\n}\n\nexport interface RefundUriResult {\n type: TalerUriAction.Refund;\n merchantBaseUrl: string;\n orderId: string;\n}\n\nexport interface RewardUriResult {\n type: TalerUriAction.Reward;\n merchantBaseUrl: string;\n merchantRewardId: string;\n}\n\nexport interface ExchangeUri {\n type: TalerUriAction.Exchange;\n exchangeBaseUrl: string;\n exchangePub: string;\n}\n\nexport interface AuditorUri {\n type: TalerUriAction.Auditor;\n auditorBaseUrl: string;\n auditorPub: string;\n}\n\nexport interface PayPushUriResult {\n type: TalerUriAction.PayPush;\n exchangeBaseUrl: string;\n contractPriv: string;\n}\n\nexport interface PayPullUriResult {\n type: TalerUriAction.PayPull;\n exchangeBaseUrl: string;\n contractPriv: string;\n}\n\nexport interface DevExperimentUri {\n type: TalerUriAction.DevExperiment;\n devExperimentId: string;\n}\n\nexport interface BackupRestoreUri {\n type: TalerUriAction.Restore;\n walletRootPriv: string;\n providers: Array<string>;\n}\n\nexport interface WithdrawExchangeUri {\n type: TalerUriAction.WithdrawExchange;\n exchangeBaseUrl: string;\n exchangePub: string;\n amount?: AmountString;\n}\n\n/**\n * Parse a taler[+http]://withdraw URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parseWithdrawUri(s: string): WithdrawUriResult | undefined {\n const pi = parseProtoInfo(s, \"withdraw\");\n if (!pi) {\n return undefined;\n }\n const parts = pi.rest.split(\"/\");\n\n if (parts.length < 2) {\n return undefined;\n }\n\n const host = parts[0].toLowerCase();\n const pathSegments = parts.slice(1, parts.length - 1);\n /**\n * The statement below does not tolerate a slash-ended URI.\n * This results in (1) the withdrawalId being passed as the\n * empty string, and (2) the bankIntegrationApi ending with the\n * actual withdrawal operation ID. That can be fixed by\n * trimming the parts-list. FIXME\n */\n const withdrawId = parts[parts.length - 1];\n const p = [host, ...pathSegments].join(\"/\");\n\n return {\n type: TalerUriAction.Withdraw,\n bankIntegrationApiBaseUrl: canonicalizeBaseUrl(`${pi.innerProto}://${p}/`),\n withdrawalOperationId: withdrawId,\n };\n}\n\n/**\n * @deprecated use TalerUriAction\n */\nexport enum TalerUriType {\n TalerPay = \"taler-pay\",\n TalerTemplate = \"taler-template\",\n TalerPayTemplate = \"taler-pay-template\",\n TalerWithdraw = \"taler-withdraw\",\n TalerTip = \"taler-tip\",\n TalerRefund = \"taler-refund\",\n TalerPayPush = \"taler-pay-push\",\n TalerPayPull = \"taler-pay-pull\",\n TalerRecovery = \"taler-recovery\",\n TalerDevExperiment = \"taler-dev-experiment\",\n Unknown = \"unknown\",\n}\n\nconst talerActionPayPull = \"pay-pull\";\nconst talerActionPayPush = \"pay-push\";\nconst talerActionPayTemplate = \"pay-template\";\n\nexport enum TalerUriAction {\n Pay = \"pay\",\n Withdraw = \"withdraw\",\n Refund = \"refund\",\n Reward = \"reward\",\n PayPull = \"pay-pull\",\n PayPush = \"pay-push\",\n PayTemplate = \"pay-template\",\n Exchange = \"exchange\",\n Auditor = \"auditor\",\n Restore = \"restore\",\n DevExperiment = \"dev-experiment\",\n WithdrawExchange = \"withdraw-exchange\",\n}\n\ninterface TalerUriProtoInfo {\n innerProto: \"http\" | \"https\";\n rest: string;\n}\n\nfunction parseProtoInfo(\n s: string,\n action: string,\n): TalerUriProtoInfo | undefined {\n const pfxPlain = `taler://${action}/`;\n const pfxHttp = `taler+http://${action}/`;\n if (s.toLowerCase().startsWith(pfxPlain)) {\n return {\n innerProto: \"https\",\n rest: s.substring(pfxPlain.length),\n };\n } else if (s.toLowerCase().startsWith(pfxHttp)) {\n return {\n innerProto: \"http\",\n rest: s.substring(pfxHttp.length),\n };\n } else {\n return undefined;\n }\n}\n\ntype Parser = (s: string) => TalerUri | undefined;\nconst parsers: { [A in TalerUriAction]: Parser } = {\n [TalerUriAction.Pay]: parsePayUri,\n [TalerUriAction.PayPull]: parsePayPullUri,\n [TalerUriAction.PayPush]: parsePayPushUri,\n [TalerUriAction.PayTemplate]: parsePayTemplateUri,\n [TalerUriAction.Restore]: parseRestoreUri,\n [TalerUriAction.Refund]: parseRefundUri,\n [TalerUriAction.Reward]: parseRewardUri,\n [TalerUriAction.Withdraw]: parseWithdrawUri,\n [TalerUriAction.DevExperiment]: parseDevExperimentUri,\n [TalerUriAction.Exchange]: parseExchangeUri,\n [TalerUriAction.Auditor]: parseAuditorUri,\n [TalerUriAction.WithdrawExchange]: parseWithdrawExchangeUri,\n};\n\nexport function parseTalerUri(string: string): TalerUri | undefined {\n const https = string.startsWith(\"taler://\");\n const http = string.startsWith(\"taler+http://\");\n if (!https && !http) return undefined;\n const actionStart = https ? 8 : 13;\n const actionEnd = string.indexOf(\"/\", actionStart + 1);\n const action = string.substring(actionStart, actionEnd);\n const found = Object.values(TalerUriAction).find((x) => x === action);\n if (!found) return undefined;\n return parsers[found](string);\n}\n\nexport function stringifyTalerUri(uri: TalerUri): string {\n switch (uri.type) {\n case TalerUriAction.DevExperiment: {\n return stringifyDevExperimentUri(uri);\n }\n case TalerUriAction.Pay: {\n return stringifyPayUri(uri);\n }\n case TalerUriAction.PayPull: {\n return stringifyPayPullUri(uri);\n }\n case TalerUriAction.PayPush: {\n return stringifyPayPushUri(uri);\n }\n case TalerUriAction.PayTemplate: {\n return stringifyPayTemplateUri(uri);\n }\n case TalerUriAction.Restore: {\n return stringifyRestoreUri(uri);\n }\n case TalerUriAction.Refund: {\n return stringifyRefundUri(uri);\n }\n case TalerUriAction.Reward: {\n return stringifyRewardUri(uri);\n }\n case TalerUriAction.Withdraw: {\n return stringifyWithdrawUri(uri);\n }\n case TalerUriAction.Exchange: {\n return stringifyExchangeUri(uri);\n }\n case TalerUriAction.WithdrawExchange: {\n return stringifyWithdrawExchange(uri);\n }\n case TalerUriAction.Auditor: {\n return stringifyAuditorUri(uri);\n }\n }\n}\n\n/**\n * Parse a taler[+http]://pay URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parsePayUri(s: string): PayUriResult | undefined {\n const pi = parseProtoInfo(s, \"pay\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const q = new URLSearchParams(c[1] ?? \"\");\n const claimToken = q.get(\"c\") ?? undefined;\n const noncePriv = q.get(\"n\") ?? undefined;\n const parts = c[0].split(\"/\");\n if (parts.length < 3) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const sessionId = parts[parts.length - 1];\n const orderId = parts[parts.length - 2];\n const pathSegments = parts.slice(1, parts.length - 2);\n const p = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(`${pi.innerProto}://${p}/`);\n\n return {\n type: TalerUriAction.Pay,\n merchantBaseUrl,\n orderId,\n sessionId,\n claimToken,\n noncePriv,\n };\n}\n\nexport function parsePayTemplateUri(\n uriString: string,\n): PayTemplateUriResult | undefined {\n const pi = parseProtoInfo(uriString, talerActionPayTemplate);\n if (!pi) {\n return undefined;\n }\n const c = pi.rest.split(\"?\");\n\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n\n const q = new URLSearchParams(c[1] ?? \"\");\n const params: Record<string, string> = {};\n q.forEach((v, k) => {\n params[k] = v;\n });\n\n const host = parts[0].toLowerCase();\n const templateId = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.PayTemplate,\n merchantBaseUrl,\n templateId,\n templateParams: params,\n };\n}\n\nexport function parsePayPushUri(s: string): PayPushUriResult | undefined {\n const pi = parseProtoInfo(s, talerActionPayPush);\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const contractPriv = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.PayPush,\n exchangeBaseUrl,\n contractPriv,\n };\n}\n\nexport function parsePayPullUri(s: string): PayPullUriResult | undefined {\n const pi = parseProtoInfo(s, talerActionPayPull);\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const contractPriv = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.PayPull,\n exchangeBaseUrl,\n contractPriv,\n };\n}\n\n/**\n * Parse a taler[+http]://reward URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parseRewardUri(s: string): RewardUriResult | undefined {\n const pi = parseProtoInfo(s, \"reward\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const rewardId = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Reward,\n merchantBaseUrl,\n merchantRewardId: rewardId,\n };\n}\n\nexport function parseExchangeUri(s: string): ExchangeUri | undefined {\n const pi = parseProtoInfo(s, \"exchange\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const exchangePub = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Exchange,\n exchangeBaseUrl,\n exchangePub,\n };\n}\n\nexport function parseWithdrawExchangeUri(\n s: string,\n): WithdrawExchangeUri | undefined {\n const pi = parseProtoInfo(s, \"withdraw-exchange\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const exchangePub = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const exchangeBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n const q = new URLSearchParams(c[1] ?? \"\");\n const amount = (q.get(\"a\") ?? undefined) as AmountString | undefined;\n\n return {\n type: TalerUriAction.WithdrawExchange,\n exchangeBaseUrl,\n exchangePub,\n amount,\n };\n}\n\nexport function parseAuditorUri(s: string): AuditorUri | undefined {\n const pi = parseProtoInfo(s, \"auditor\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const auditorPub = parts[parts.length - 1];\n const pathSegments = parts.slice(1, parts.length - 1);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const auditorBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Auditor,\n auditorBaseUrl,\n auditorPub,\n };\n}\n\n/**\n * Parse a taler[+http]://refund URI.\n * Return undefined if not passed a valid URI.\n */\nexport function parseRefundUri(s: string): RefundUriResult | undefined {\n const pi = parseProtoInfo(s, \"refund\");\n if (!pi) {\n return undefined;\n }\n const c = pi?.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 3) {\n return undefined;\n }\n const host = parts[0].toLowerCase();\n const sessionId = parts[parts.length - 1];\n const orderId = parts[parts.length - 2];\n const pathSegments = parts.slice(1, parts.length - 2);\n const hostAndSegments = [host, ...pathSegments].join(\"/\");\n const merchantBaseUrl = canonicalizeBaseUrl(\n `${pi.innerProto}://${hostAndSegments}/`,\n );\n\n return {\n type: TalerUriAction.Refund,\n merchantBaseUrl,\n orderId,\n };\n}\n\nexport function parseDevExperimentUri(s: string): DevExperimentUri | undefined {\n const pi = parseProtoInfo(s, \"dev-experiment\");\n const c = pi?.rest.split(\"?\");\n if (!c) {\n return undefined;\n }\n const parts = c[0].split(\"/\");\n return {\n type: TalerUriAction.DevExperiment,\n devExperimentId: parts[0],\n };\n}\n\nexport function parseRestoreUri(uri: string): BackupRestoreUri | undefined {\n const pi = parseProtoInfo(uri, \"restore\");\n if (!pi) {\n return undefined;\n }\n const c = pi.rest.split(\"?\");\n const parts = c[0].split(\"/\");\n if (parts.length < 2) {\n return undefined;\n }\n\n const walletRootPriv = parts[0];\n if (!walletRootPriv) return undefined;\n const providers = new Array<string>();\n parts[1].split(\",\").map((name) => {\n const url = canonicalizeBaseUrl(\n `${pi.innerProto}://${decodeURIComponent(name)}/`,\n );\n providers.push(url);\n });\n return {\n type: TalerUriAction.Restore,\n walletRootPriv,\n providers,\n };\n}\n\n// ================================================\n// To string functions\n// ================================================\n\n/**\n * @deprecated use stringifyRecoveryUri\n */\nexport function constructRecoveryUri(args: {\n walletRootPriv: string;\n providers: string[];\n}): string {\n return stringifyRestoreUri(args);\n}\n\n/**\n * @deprecated stringifyPayPullUri\n */\nexport function constructPayPullUri(args: {\n exchangeBaseUrl: string;\n contractPriv: string;\n}): string {\n return stringifyPayPullUri(args);\n}\n\n/**\n * @deprecated use stringifyPayPushUri\n */\nexport function constructPayPushUri(args: {\n exchangeBaseUrl: string;\n contractPriv: string;\n}): string {\n return stringifyPayPushUri(args);\n}\n\n/**\n *\n * @deprecated use stringifyPayUri\n */\nexport function constructPayUri(\n merchantBaseUrl: string,\n orderId: string,\n sessionId: string,\n claimToken?: string,\n noncePriv?: string,\n): string {\n return stringifyPayUri({\n merchantBaseUrl,\n orderId,\n sessionId,\n claimToken,\n noncePriv,\n });\n}\n\nexport function stringifyPayUri({\n merchantBaseUrl,\n orderId,\n sessionId,\n claimToken,\n noncePriv,\n}: Omit<PayUriResult, \"type\">): string {\n const { proto, path, query } = getUrlInfo(merchantBaseUrl, {\n c: claimToken,\n n: noncePriv,\n });\n return `${proto}://pay/${path}${orderId}/${sessionId}${query}`;\n}\n\nexport function stringifyPayPullUri({\n contractPriv,\n exchangeBaseUrl,\n}: Omit<PayPullUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(exchangeBaseUrl);\n return `${proto}://pay-pull/${path}${contractPriv}`;\n}\n\nexport function stringifyPayPushUri({\n contractPriv,\n exchangeBaseUrl,\n}: Omit<PayPushUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(exchangeBaseUrl);\n\n return `${proto}://pay-push/${path}${contractPriv}`;\n}\n\nexport function stringifyRestoreUri({\n providers,\n walletRootPriv,\n}: Omit<BackupRestoreUri, \"type\">): string {\n const list = providers\n .map((url) => `${encodeURIComponent(new URL(url).href)}`)\n .join(\",\");\n return `taler://restore/${walletRootPriv}/${list}`;\n}\n\nexport function stringifyWithdrawExchange({\n exchangeBaseUrl,\n exchangePub,\n amount,\n}: Omit<WithdrawExchangeUri, \"type\">): string {\n const { proto, path, query } = getUrlInfo(exchangeBaseUrl, {\n a: amount,\n });\n return `${proto}://withdraw-exchange/${path}${exchangePub}${query}`;\n}\n\nexport function stringifyDevExperimentUri({\n devExperimentId,\n}: Omit<DevExperimentUri, \"type\">): string {\n return `taler://dev-experiment/${devExperimentId}`;\n}\n\nexport function stringifyPayTemplateUri({\n merchantBaseUrl,\n templateId,\n templateParams,\n}: Omit<PayTemplateUriResult, \"type\">): string {\n const { proto, path, query } = getUrlInfo(merchantBaseUrl, templateParams);\n return `${proto}://pay-template/${path}${templateId}${query}`;\n}\nexport function stringifyRefundUri({\n merchantBaseUrl,\n orderId,\n}: Omit<RefundUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(merchantBaseUrl);\n return `${proto}://refund/${path}${orderId}/`;\n}\nexport function stringifyRewardUri({\n merchantBaseUrl,\n merchantRewardId,\n}: Omit<RewardUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(merchantBaseUrl);\n return `${proto}://reward/${path}${merchantRewardId}/`;\n}\n\nexport function stringifyExchangeUri({\n exchangeBaseUrl,\n exchangePub,\n}: Omit<ExchangeUri, \"type\">): string {\n const { proto, path } = getUrlInfo(exchangeBaseUrl);\n return `${proto}://exchange/${path}${exchangePub}`;\n}\n\nexport function stringifyAuditorUri({\n auditorBaseUrl,\n auditorPub,\n}: Omit<AuditorUri, \"type\">): string {\n const { proto, path } = getUrlInfo(auditorBaseUrl);\n return `${proto}://auditor/${path}${auditorPub}`;\n}\n\nexport function stringifyWithdrawUri({\n bankIntegrationApiBaseUrl,\n withdrawalOperationId,\n}: Omit<WithdrawUriResult, \"type\">): string {\n const { proto, path } = getUrlInfo(bankIntegrationApiBaseUrl);\n return `${proto}://withdraw/${path}${withdrawalOperationId}`;\n}\n\n/**\n * Use baseUrl to defined http or https\n * create path using host+port+pathname\n * use params to create a query parameter string or empty\n *\n * @param baseUrl\n * @param params\n * @returns\n */\nfunction getUrlInfo(\n baseUrl: string,\n params: Record<string, string | undefined> = {},\n): { proto: string; path: string; query: string } {\n const url = new URL(baseUrl);\n let proto: string;\n if (url.protocol === \"https:\") {\n proto = \"taler\";\n } else if (url.protocol === \"http:\") {\n proto = \"taler+http\";\n } else {\n throw Error(`Unsupported URL protocol in ${baseUrl}`);\n }\n let path = url.hostname;\n if (url.port) {\n path = path + \":\" + url.port;\n }\n if (url.pathname) {\n path = path + url.pathname;\n }\n if (!path.endsWith(\"/\")) {\n path = path + \"/\";\n }\n\n const qp = new URLSearchParams();\n let withParams = false;\n Object.entries(params).forEach(([name, value]) => {\n if (value !== undefined) {\n withParams = true;\n qp.append(name, value);\n }\n });\n const query = withParams ? \"?\" + qp.toString() : \"\";\n\n return { proto, path, query };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Type and schema definitions for the wallet's transaction list.\n *\n * @author Florian Dold\n * @author Torsten Grote\n */\n\n/**\n * Imports.\n */\nimport { TalerPreciseTimestamp, TalerProtocolTimestamp } from \"./time.js\";\nimport {\n AmountString,\n Product,\n InternationalizedString,\n MerchantInfo,\n codecForInternationalizedString,\n codecForMerchantInfo,\n codecForProduct,\n Location,\n} from \"./taler-types.js\";\nimport {\n Codec,\n buildCodecForObject,\n codecOptional,\n codecForString,\n codecForList,\n codecForAny,\n codecForBoolean,\n codecForEither,\n codecForConstString,\n} from \"./codec.js\";\nimport {\n RefreshReason,\n TalerErrorDetail,\n TransactionIdStr,\n TransactionStateFilter,\n WithdrawalExchangeAccountDetails,\n} from \"./wallet-types.js\";\n\nexport interface TransactionsRequest {\n /**\n * return only transactions in the given currency\n */\n currency?: string;\n\n /**\n * if present, results will be limited to transactions related to the given search string\n */\n search?: string;\n\n /**\n * Sort order of the transaction items.\n * By default, items are sorted ascending by their\n * main timestamp.\n */\n sort?: \"ascending\" | \"descending\";\n\n /**\n * If true, include all refreshes in the transactions list.\n */\n includeRefreshes?: boolean;\n\n filterByState?: TransactionStateFilter;\n}\n\nexport interface TransactionState {\n major: TransactionMajorState;\n minor?: TransactionMinorState;\n}\n\nexport enum TransactionMajorState {\n // No state, only used when reporting transitions into the initial state\n None = \"none\",\n Pending = \"pending\",\n Done = \"done\",\n Aborting = \"aborting\",\n Aborted = \"aborted\",\n Suspended = \"suspended\",\n Dialog = \"dialog\",\n SuspendedAborting = \"suspended-aborting\",\n Failed = \"failed\",\n Expired = \"expired\",\n // Only used for the notification, never in the transaction history\n Deleted = \"deleted\",\n}\n\nexport enum TransactionMinorState {\n // Placeholder until D37 is fully implemented\n Unknown = \"unknown\",\n Deposit = \"deposit\",\n KycRequired = \"kyc\",\n AmlRequired = \"aml\",\n MergeKycRequired = \"merge-kyc\",\n Track = \"track\",\n SubmitPayment = \"submit-payment\",\n RebindSession = \"rebind-session\",\n Refresh = \"refresh\",\n Pickup = \"pickup\",\n AutoRefund = \"auto-refund\",\n User = \"user\",\n Bank = \"bank\",\n Exchange = \"exchange\",\n ClaimProposal = \"claim-proposal\",\n CheckRefund = \"check-refund\",\n CreatePurse = \"create-purse\",\n DeletePurse = \"delete-purse\",\n RefreshExpired = \"refresh-expired\",\n Ready = \"ready\",\n Merge = \"merge\",\n Repurchase = \"repurchase\",\n BankRegisterReserve = \"bank-register-reserve\",\n BankConfirmTransfer = \"bank-confirm-transfer\",\n WithdrawCoins = \"withdraw-coins\",\n ExchangeWaitReserve = \"exchange-wait-reserve\",\n AbortingBank = \"aborting-bank\",\n Aborting = \"aborting\",\n Refused = \"refused\",\n Withdraw = \"withdraw\",\n MerchantOrderProposed = \"merchant-order-proposed\",\n Proposed = \"proposed\",\n RefundAvailable = \"refund-available\",\n AcceptRefund = \"accept-refund\",\n}\n\nexport enum TransactionAction {\n Delete = \"delete\",\n Suspend = \"suspend\",\n Resume = \"resume\",\n Abort = \"abort\",\n Fail = \"fail\",\n Retry = \"retry\",\n}\n\nexport interface TransactionsResponse {\n // a list of past and pending transactions sorted by pending, timestamp and transactionId.\n // In case two events are both pending and have the same timestamp,\n // they are sorted by the transactionId\n // (lexically ascending and locale-independent comparison).\n transactions: Transaction[];\n}\n\nexport interface TransactionCommon {\n // opaque unique ID for the transaction, used as a starting point for paginating queries\n // and for invoking actions on the transaction (e.g. deleting/hiding it from the history)\n transactionId: TransactionIdStr;\n\n // the type of the transaction; different types might provide additional information\n type: TransactionType;\n\n // main timestamp of the transaction\n timestamp: TalerPreciseTimestamp;\n\n /**\n * Transaction state, as per DD37.\n */\n txState: TransactionState;\n\n /**\n * Possible transitions based on the current state.\n */\n txActions: TransactionAction[];\n\n /**\n * Raw amount of the transaction (exclusive of fees or other extra costs).\n */\n amountRaw: AmountString;\n\n /**\n * Amount added or removed from the wallet's balance (including all fees and other costs).\n */\n amountEffective: AmountString;\n\n error?: TalerErrorDetail;\n\n /**\n * If the transaction minor state is in KycRequired this field is going to\n * have the location where the user need to go to complete KYC information.\n */\n kycUrl?: string;\n}\n\nexport type Transaction =\n | TransactionWithdrawal\n | TransactionPayment\n | TransactionRefund\n | TransactionReward\n | TransactionRefresh\n | TransactionDeposit\n | TransactionPeerPullCredit\n | TransactionPeerPullDebit\n | TransactionPeerPushCredit\n | TransactionPeerPushDebit\n | TransactionInternalWithdrawal;\n\nexport enum TransactionType {\n Withdrawal = \"withdrawal\",\n InternalWithdrawal = \"internal-withdrawal\",\n Payment = \"payment\",\n Refund = \"refund\",\n Refresh = \"refresh\",\n Reward = \"reward\",\n Deposit = \"deposit\",\n PeerPushDebit = \"peer-push-debit\",\n PeerPushCredit = \"peer-push-credit\",\n PeerPullDebit = \"peer-pull-debit\",\n PeerPullCredit = \"peer-pull-credit\",\n}\n\nexport enum WithdrawalType {\n TalerBankIntegrationApi = \"taler-bank-integration-api\",\n ManualTransfer = \"manual-transfer\",\n}\n\nexport type WithdrawalDetails =\n | WithdrawalDetailsForManualTransfer\n | WithdrawalDetailsForTalerBankIntegrationApi;\n\ninterface WithdrawalDetailsForManualTransfer {\n type: WithdrawalType.ManualTransfer;\n\n /**\n * Payto URIs that the exchange supports.\n *\n * Already contains the amount and message.\n *\n * @deprecated in favor of exchangeCreditAccounts\n */\n exchangePaytoUris: string[];\n\n exchangeCreditAccountDetails?: WithdrawalExchangeAccountDetails[];\n\n // Public key of the reserve\n reservePub: string;\n\n /**\n * Is the reserve ready for withdrawal?\n */\n reserveIsReady: boolean;\n}\n\ninterface WithdrawalDetailsForTalerBankIntegrationApi {\n type: WithdrawalType.TalerBankIntegrationApi;\n\n /**\n * Set to true if the bank has confirmed the withdrawal, false if not.\n * An unconfirmed withdrawal usually requires user-input and should be highlighted in the UI.\n * See also bankConfirmationUrl below.\n */\n confirmed: boolean;\n\n /**\n * If the withdrawal is unconfirmed, this can include a URL for user\n * initiated confirmation.\n */\n bankConfirmationUrl?: string;\n\n // Public key of the reserve\n reservePub: string;\n\n /**\n * Is the reserve ready for withdrawal?\n */\n reserveIsReady: boolean;\n\n exchangeCreditAccountDetails?: WithdrawalExchangeAccountDetails[];\n}\n\n/**\n * A withdrawal transaction (either bank-integrated or manual).\n */\nexport interface TransactionWithdrawal extends TransactionCommon {\n type: TransactionType.Withdrawal;\n\n /**\n * Exchange of the withdrawal.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n withdrawalDetails: WithdrawalDetails;\n}\n\n/**\n * Internal withdrawal operation, only reported on request.\n *\n * Some transactions (peer-*-credit) internally do a withdrawal,\n * but only the peer-*-credit transaction is reported.\n *\n * The internal withdrawal transaction allows to access the details of\n * the underlying withdrawal for testing/debugging.\n *\n * It is usually not reported, so that amounts of transactions properly\n * add up, since the amountEffecive of the withdrawal is already reported\n * in the peer-*-credit transaction.\n */\nexport interface TransactionInternalWithdrawal extends TransactionCommon {\n type: TransactionType.InternalWithdrawal;\n\n /**\n * Exchange of the withdrawal.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n withdrawalDetails: WithdrawalDetails;\n}\n\nexport interface PeerInfoShort {\n expiration: TalerProtocolTimestamp | undefined;\n summary: string | undefined;\n}\n\n/**\n * Credit because we were paid for a P2P invoice we created.\n */\nexport interface TransactionPeerPullCredit extends TransactionCommon {\n type: TransactionType.PeerPullCredit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n /**\n * URI to send to the other party.\n */\n talerUri: string;\n}\n\n/**\n * Debit because we paid someone's invoice.\n */\nexport interface TransactionPeerPullDebit extends TransactionCommon {\n type: TransactionType.PeerPullDebit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n amountRaw: AmountString;\n\n amountEffective: AmountString;\n}\n\n/**\n * We sent money via a P2P payment.\n */\nexport interface TransactionPeerPushDebit extends TransactionCommon {\n type: TransactionType.PeerPushDebit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n\n /**\n * URI to accept the payment.\n *\n * Only present if the transaction is in a state where the other party can\n * accept the payment.\n */\n talerUri?: string;\n}\n\n/**\n * We received money via a P2P payment.\n */\nexport interface TransactionPeerPushCredit extends TransactionCommon {\n type: TransactionType.PeerPushCredit;\n\n info: PeerInfoShort;\n /**\n * Exchange used.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount that got subtracted from the reserve balance.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that actually was (or will be) added to the wallet's balance.\n */\n amountEffective: AmountString;\n}\n\nexport enum PaymentStatus {\n /**\n * Explicitly aborted after timeout / failure\n */\n Aborted = \"aborted\",\n\n /**\n * Payment failed, wallet will auto-retry.\n * User should be given the option to retry now / abort.\n */\n Failed = \"failed\",\n\n /**\n * Paid successfully\n */\n Paid = \"paid\",\n\n /**\n * User accepted, payment is processing.\n */\n Accepted = \"accepted\",\n}\n\nexport interface TransactionPayment extends TransactionCommon {\n type: TransactionType.Payment;\n\n /**\n * Additional information about the payment.\n */\n info: OrderShortInfo;\n\n /**\n * Wallet-internal end-to-end identifier for the payment.\n */\n proposalId: string;\n\n /**\n * Amount that must be paid for the contract\n */\n amountRaw: AmountString;\n\n /**\n * Amount that was paid, including deposit, wire and refresh fees.\n */\n amountEffective: AmountString;\n\n /**\n * Amount that has been refunded by the merchant\n */\n totalRefundRaw: AmountString;\n\n /**\n * Amount will be added to the wallet's balance after fees and refreshing\n */\n totalRefundEffective: AmountString;\n\n /**\n * Amount pending to be picked up\n */\n refundPending: AmountString | undefined;\n\n /**\n * Reference to applied refunds\n */\n refunds: RefundInfoShort[];\n\n /**\n * Is the wallet currently checking for a refund?\n */\n refundQueryActive: boolean;\n\n /**\n * Does this purchase has an pos validation\n */\n posConfirmation: string | undefined;\n}\n\nexport interface OrderShortInfo {\n /**\n * Order ID, uniquely identifies the order within a merchant instance\n */\n orderId: string;\n\n /**\n * Hash of the contract terms.\n */\n contractTermsHash: string;\n\n /**\n * More information about the merchant\n */\n merchant: MerchantInfo;\n\n /**\n * Summary of the order, given by the merchant\n */\n summary: string;\n\n /**\n * Map from IETF BCP 47 language tags to localized summaries\n */\n summary_i18n?: InternationalizedString;\n\n /**\n * URL of the fulfillment, given by the merchant\n */\n fulfillmentUrl?: string;\n\n /**\n * Plain text message that should be shown to the user\n * when the payment is complete.\n */\n fulfillmentMessage?: string;\n\n /**\n * Translations of fulfillmentMessage.\n */\n fulfillmentMessage_i18n?: InternationalizedString;\n}\n\nexport interface RefundInfoShort {\n transactionId: string;\n timestamp: TalerProtocolTimestamp;\n amountEffective: AmountString;\n amountRaw: AmountString;\n}\n\n/**\n * Summary information about the payment that we got a refund for.\n */\nexport interface RefundPaymentInfo {\n summary: string;\n summary_i18n?: InternationalizedString;\n /**\n * More information about the merchant\n */\n merchant: MerchantInfo;\n}\n\nexport interface TransactionRefund extends TransactionCommon {\n type: TransactionType.Refund;\n\n // Amount that has been refunded by the merchant\n amountRaw: AmountString;\n\n // Amount will be added to the wallet's balance after fees and refreshing\n amountEffective: AmountString;\n\n // ID for the transaction that is refunded\n refundedTransactionId: string;\n\n paymentInfo: RefundPaymentInfo | undefined;\n}\n\nexport interface TransactionReward extends TransactionCommon {\n type: TransactionType.Reward;\n\n // Raw amount of the tip, without extra fees that apply\n amountRaw: AmountString;\n\n /**\n * More information about the merchant\n */\n // merchant: MerchantInfo;\n\n // Amount will be (or was) added to the wallet's balance after fees and refreshing\n amountEffective: AmountString;\n\n merchantBaseUrl: string;\n}\n\n/**\n * A transaction shown for refreshes.\n * Only shown for (1) refreshes not associated with other transactions\n * and (2) refreshes in an error state.\n */\nexport interface TransactionRefresh extends TransactionCommon {\n type: TransactionType.Refresh;\n\n refreshReason: RefreshReason;\n\n /**\n * Transaction ID that caused this refresh.\n */\n originatingTransactionId?: string;\n\n /**\n * Always zero for refreshes\n */\n amountRaw: AmountString;\n\n /**\n * Fees, i.e. the effective, negative effect of the refresh\n * on the balance.\n *\n * Only applicable for stand-alone refreshes, and zero for\n * other refreshes where the transaction itself accounts for the\n * refresh fee.\n */\n amountEffective: AmountString;\n\n refreshInputAmount: AmountString;\n refreshOutputAmount: AmountString;\n}\n\nexport interface DepositTransactionTrackingState {\n // Raw wire transfer identifier of the deposit.\n wireTransferId: string;\n // When was the wire transfer given to the bank.\n timestampExecuted: TalerProtocolTimestamp;\n // Total amount transfer for this wtid (including fees)\n amountRaw: AmountString;\n // Wire fee amount for this exchange\n wireFee: AmountString;\n}\n\n/**\n * Deposit transaction, which effectively sends\n * money from this wallet somewhere else.\n */\nexport interface TransactionDeposit extends TransactionCommon {\n type: TransactionType.Deposit;\n\n depositGroupId: string;\n\n /**\n * Target for the deposit.\n */\n targetPaytoUri: string;\n\n /**\n * Raw amount that is being deposited\n */\n amountRaw: AmountString;\n\n /**\n * Effective amount that is being deposited\n */\n amountEffective: AmountString;\n\n wireTransferDeadline: TalerProtocolTimestamp;\n\n wireTransferProgress: number;\n\n /**\n * Did all the deposit requests succeed?\n */\n deposited: boolean;\n\n trackingState: Array<DepositTransactionTrackingState>;\n}\n\nexport interface TransactionByIdRequest {\n transactionId: string;\n}\n\nexport const codecForTransactionByIdRequest =\n (): Codec<TransactionByIdRequest> =>\n buildCodecForObject<TransactionByIdRequest>()\n .property(\"transactionId\", codecForString())\n .build(\"TransactionByIdRequest\");\n\nexport const codecForTransactionsRequest = (): Codec<TransactionsRequest> =>\n buildCodecForObject<TransactionsRequest>()\n .property(\"currency\", codecOptional(codecForString()))\n .property(\"search\", codecOptional(codecForString()))\n .property(\n \"sort\",\n codecOptional(\n codecForEither(\n codecForConstString(\"ascending\"),\n codecForConstString(\"descending\"),\n ),\n ),\n )\n .property(\"includeRefreshes\", codecOptional(codecForBoolean()))\n .build(\"TransactionsRequest\");\n\n// FIXME: do full validation here!\nexport const codecForTransactionsResponse = (): Codec<TransactionsResponse> =>\n buildCodecForObject<TransactionsResponse>()\n .property(\"transactions\", codecForList(codecForAny()))\n .build(\"TransactionsResponse\");\n\nexport const codecForOrderShortInfo = (): Codec<OrderShortInfo> =>\n buildCodecForObject<OrderShortInfo>()\n .property(\"contractTermsHash\", codecForString())\n .property(\"fulfillmentMessage\", codecOptional(codecForString()))\n .property(\n \"fulfillmentMessage_i18n\",\n codecOptional(codecForInternationalizedString()),\n )\n .property(\"fulfillmentUrl\", codecOptional(codecForString()))\n .property(\"merchant\", codecForMerchantInfo())\n .property(\"orderId\", codecForString())\n .property(\"summary\", codecForString())\n .property(\"summary_i18n\", codecOptional(codecForInternationalizedString()))\n .build(\"OrderShortInfo\");\n", "/*\n This file is part of GNU Taler\n (C) 2015-2020 Taler Systems SA\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Types used by clients of the wallet.\n *\n * These types are defined in a separate file make tree shaking easier, since\n * some components use these types (via RPC) but do not depend on the wallet\n * code directly.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\n/**\n * Imports.\n */\nimport { AmountJson, codecForAmountString } from \"./amounts.js\";\nimport { BackupRecovery } from \"./backup-types.js\";\nimport {\n Codec,\n Context,\n DecodingError,\n buildCodecForObject,\n buildCodecForUnion,\n codecForAny,\n codecForBoolean,\n codecForConstString,\n codecForEither,\n codecForList,\n codecForMap,\n codecForNumber,\n codecForString,\n codecOptional,\n renderContext,\n} from \"./codec.js\";\nimport { CurrencySpecification } from \"./index.js\";\nimport { VersionMatchResult } from \"./libtool-version.js\";\nimport { PaytoUri } from \"./payto.js\";\nimport { AgeCommitmentProof } from \"./taler-crypto.js\";\nimport { TalerErrorCode } from \"./taler-error-codes.js\";\nimport {\n AccountRestriction,\n AmountString,\n AuditorDenomSig,\n CoinEnvelope,\n DenomKeyType,\n DenominationPubKey,\n ExchangeAuditor,\n ExchangeWireAccount,\n InternationalizedString,\n MerchantContractTerms,\n MerchantInfo,\n PeerContractTerms,\n UnblindedSignature,\n codecForExchangeWireAccount,\n codecForMerchantContractTerms,\n codecForPeerContractTerms,\n} from \"./taler-types.js\";\nimport {\n AbsoluteTime,\n TalerPreciseTimestamp,\n TalerProtocolDuration,\n TalerProtocolTimestamp,\n codecForAbsoluteTime,\n codecForTimestamp,\n} from \"./time.js\";\nimport {\n OrderShortInfo,\n TransactionState,\n TransactionType,\n} from \"./transactions-types.js\";\n\n/**\n * Identifier for a transaction in the wallet.\n */\ndeclare const __txId: unique symbol;\nexport type TransactionIdStr = `txn:${string}:${string}` & { [__txId]: true };\n\n/**\n * Identifier for a pending task in the wallet.\n */\ndeclare const __pndId: unique symbol;\nexport type PendingIdStr = `pnd:${string}:${string}` & { [__pndId]: true };\n\ndeclare const __tmbId: unique symbol;\nexport type TombstoneIdStr = `tmb:${string}:${string}` & { [__tmbId]: true };\n\nfunction codecForTransactionIdStr(): Codec<TransactionIdStr> {\n return {\n decode(x: any, c?: Context): TransactionIdStr {\n if (typeof x === \"string\" && x.startsWith(\"txn:\")) {\n return x as TransactionIdStr;\n }\n throw new DecodingError(\n `expected string starting with \"txn:\" at ${renderContext(\n c,\n )} but got ${x}`,\n );\n },\n };\n}\n\nfunction codecForPendingIdStr(): Codec<PendingIdStr> {\n return {\n decode(x: any, c?: Context): PendingIdStr {\n if (typeof x === \"string\" && x.startsWith(\"txn:\")) {\n return x as PendingIdStr;\n }\n throw new DecodingError(\n `expected string starting with \"txn:\" at ${renderContext(\n c,\n )} but got ${x}`,\n );\n },\n };\n}\n\nfunction codecForTombstoneIdStr(): Codec<TombstoneIdStr> {\n return {\n decode(x: any, c?: Context): TombstoneIdStr {\n if (typeof x === \"string\" && x.startsWith(\"tmb:\")) {\n return x as TombstoneIdStr;\n }\n throw new DecodingError(\n `expected string starting with \"tmb:\" at ${renderContext(\n c,\n )} but got ${x}`,\n );\n },\n };\n}\n\n/**\n * Response for the create reserve request to the wallet.\n */\nexport class CreateReserveResponse {\n /**\n * Exchange URL where the bank should create the reserve.\n * The URL is canonicalized in the response.\n */\n exchange: string;\n\n /**\n * Reserve public key of the newly created reserve.\n */\n reservePub: string;\n}\n\nexport interface GetBalanceDetailRequest {\n currency: string;\n}\n\nexport const codecForGetBalanceDetailRequest =\n (): Codec<GetBalanceDetailRequest> =>\n buildCodecForObject<GetBalanceDetailRequest>()\n .property(\"currency\", codecForString())\n .build(\"GetBalanceDetailRequest\");\n\n/**\n * How the amount should be interpreted in a transaction\n * Effective = how the balance is change\n * Raw = effective amount without fee\n *\n * Depending on the transaction, raw can be higher than effective\n */\nexport enum TransactionAmountMode {\n Effective = \"effective\",\n Raw = \"raw\",\n}\n\nexport type GetPlanForOperationRequest =\n | GetPlanForWithdrawRequest\n | GetPlanForDepositRequest;\n// | GetPlanForPushDebitRequest\n// | GetPlanForPullCreditRequest\n// | GetPlanForPaymentRequest\n// | GetPlanForTipRequest\n// | GetPlanForRefundRequest\n// | GetPlanForPullDebitRequest\n// | GetPlanForPushCreditRequest;\n\ninterface GetPlanForWalletInitiatedOperation {\n instructedAmount: AmountString;\n mode: TransactionAmountMode;\n}\n\nexport interface ConvertAmountRequest {\n amount: AmountString;\n type: TransactionAmountMode;\n}\n\nexport const codecForConvertAmountRequest =\n buildCodecForObject<ConvertAmountRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\n \"type\",\n codecForEither(\n codecForConstString(TransactionAmountMode.Raw),\n codecForConstString(TransactionAmountMode.Effective),\n ),\n )\n .build(\"ConvertAmountRequest\");\n\nexport interface GetAmountRequest {\n currency: string;\n}\n\nexport const codecForGetAmountRequest = buildCodecForObject<GetAmountRequest>()\n .property(\"currency\", codecForString())\n .build(\"GetAmountRequest\");\n\ninterface GetPlanToCompleteOperation {\n instructedAmount: AmountString;\n}\n\nconst codecForGetPlanForWalletInitiatedOperation = <\n T extends GetPlanForWalletInitiatedOperation,\n>() =>\n buildCodecForObject<T>()\n .property(\n \"mode\",\n codecForEither(\n codecForConstString(TransactionAmountMode.Raw),\n codecForConstString(TransactionAmountMode.Effective),\n ),\n )\n .property(\"instructedAmount\", codecForAmountString());\n\ninterface GetPlanForWithdrawRequest extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.Withdrawal;\n exchangeUrl?: string;\n}\ninterface GetPlanForDepositRequest extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.Deposit;\n account: string; //payto string\n}\ninterface GetPlanForPushDebitRequest\n extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.PeerPushDebit;\n}\n\ninterface GetPlanForPullCreditRequest\n extends GetPlanForWalletInitiatedOperation {\n type: TransactionType.PeerPullCredit;\n exchangeUrl: string;\n}\n\nconst codecForGetPlanForWithdrawRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForWithdrawRequest>()\n .property(\"type\", codecForConstString(TransactionType.Withdrawal))\n .property(\"exchangeUrl\", codecOptional(codecForString()))\n .build(\"GetPlanForWithdrawRequest\");\n\nconst codecForGetPlanForDepositRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForDepositRequest>()\n .property(\"type\", codecForConstString(TransactionType.Deposit))\n .property(\"account\", codecForString())\n .build(\"GetPlanForDepositRequest\");\n\nconst codecForGetPlanForPushDebitRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForPushDebitRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPushDebit))\n .build(\"GetPlanForPushDebitRequest\");\n\nconst codecForGetPlanForPullCreditRequest =\n codecForGetPlanForWalletInitiatedOperation<GetPlanForPullCreditRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPullCredit))\n .property(\"exchangeUrl\", codecForString())\n .build(\"GetPlanForPullCreditRequest\");\n\ninterface GetPlanForPaymentRequest extends GetPlanToCompleteOperation {\n type: TransactionType.Payment;\n wireMethod: string;\n ageRestriction: number;\n maxDepositFee: AmountString;\n maxWireFee: AmountString;\n}\n\n// interface GetPlanForTipRequest extends GetPlanForOperationBase {\n// type: TransactionType.Tip;\n// }\n// interface GetPlanForRefundRequest extends GetPlanForOperationBase {\n// type: TransactionType.Refund;\n// }\ninterface GetPlanForPullDebitRequest extends GetPlanToCompleteOperation {\n type: TransactionType.PeerPullDebit;\n}\ninterface GetPlanForPushCreditRequest extends GetPlanToCompleteOperation {\n type: TransactionType.PeerPushCredit;\n}\n\nconst codecForGetPlanForPaymentRequest =\n buildCodecForObject<GetPlanForPaymentRequest>()\n .property(\"type\", codecForConstString(TransactionType.Payment))\n .property(\"maxDepositFee\", codecForAmountString())\n .property(\"maxWireFee\", codecForAmountString())\n .build(\"GetPlanForPaymentRequest\");\n\nconst codecForGetPlanForPullDebitRequest =\n buildCodecForObject<GetPlanForPullDebitRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPullDebit))\n .build(\"GetPlanForPullDebitRequest\");\n\nconst codecForGetPlanForPushCreditRequest =\n buildCodecForObject<GetPlanForPushCreditRequest>()\n .property(\"type\", codecForConstString(TransactionType.PeerPushCredit))\n .build(\"GetPlanForPushCreditRequest\");\n\nexport const codecForGetPlanForOperationRequest =\n (): Codec<GetPlanForOperationRequest> =>\n buildCodecForUnion<GetPlanForOperationRequest>()\n .discriminateOn(\"type\")\n .alternative(\n TransactionType.Withdrawal,\n codecForGetPlanForWithdrawRequest,\n )\n .alternative(TransactionType.Deposit, codecForGetPlanForDepositRequest)\n // .alternative(\n // TransactionType.PeerPushDebit,\n // codecForGetPlanForPushDebitRequest,\n // )\n // .alternative(\n // TransactionType.PeerPullCredit,\n // codecForGetPlanForPullCreditRequest,\n // )\n // .alternative(TransactionType.Payment, codecForGetPlanForPaymentRequest)\n // .alternative(\n // TransactionType.PeerPullDebit,\n // codecForGetPlanForPullDebitRequest,\n // )\n // .alternative(\n // TransactionType.PeerPushCredit,\n // codecForGetPlanForPushCreditRequest,\n // )\n .build(\"GetPlanForOperationRequest\");\n\nexport interface GetPlanForOperationResponse {\n effectiveAmount: AmountString;\n rawAmount: AmountString;\n counterPartyAmount?: AmountString;\n details: any;\n}\n\nexport const codecForGetPlanForOperationResponse =\n (): Codec<GetPlanForOperationResponse> =>\n buildCodecForObject<GetPlanForOperationResponse>()\n .property(\"effectiveAmount\", codecForAmountString())\n .property(\"rawAmount\", codecForAmountString())\n .property(\"details\", codecForAny())\n .property(\"counterPartyAmount\", codecOptional(codecForAmountString()))\n .build(\"GetPlanForOperationResponse\");\n\nexport interface AmountResponse {\n effectiveAmount: AmountString;\n rawAmount: AmountString;\n}\n\nexport const codecForAmountResponse = (): Codec<AmountResponse> =>\n buildCodecForObject<AmountResponse>()\n .property(\"effectiveAmount\", codecForAmountString())\n .property(\"rawAmount\", codecForAmountString())\n .build(\"AmountResponse\");\n\nexport enum BalanceFlag {\n IncomingKyc = \"incoming-kyc\",\n IncomingAml = \"incoming-aml\",\n IncomingConfirmation = \"incoming-confirmation\",\n OutgoingKyc = \"outgoing-kyc\",\n}\n\nexport interface WalletBalance {\n scopeInfo: ScopeInfo;\n available: AmountString;\n pendingIncoming: AmountString;\n pendingOutgoing: AmountString;\n\n /**\n * Does the balance for this currency have a pending\n * transaction?\n *\n * @deprecated use flags and pendingIncoming/pendingOutgoing instead\n */\n hasPendingTransactions: boolean;\n\n /**\n * Is there a transaction that requires user input?\n *\n * @deprecated use flags instead\n */\n requiresUserInput: boolean;\n\n flags: BalanceFlag[];\n}\n\nexport const codecForScopeInfoGlobal = (): Codec<ScopeInfoGlobal> =>\n buildCodecForObject<ScopeInfoGlobal>()\n .property(\"currency\", codecForString())\n .property(\"type\", codecForConstString(ScopeType.Global))\n .build(\"ScopeInfoGlobal\");\n\nexport const codecForScopeInfoExchange = (): Codec<ScopeInfoExchange> =>\n buildCodecForObject<ScopeInfoExchange>()\n .property(\"currency\", codecForString())\n .property(\"type\", codecForConstString(ScopeType.Exchange))\n .property(\"url\", codecForString())\n .build(\"ScopeInfoExchange\");\n\nexport const codecForScopeInfoAuditor = (): Codec<ScopeInfoAuditor> =>\n buildCodecForObject<ScopeInfoAuditor>()\n .property(\"currency\", codecForString())\n .property(\"type\", codecForConstString(ScopeType.Auditor))\n .property(\"url\", codecForString())\n .build(\"ScopeInfoAuditor\");\n\nexport const codecForScopeInfo = (): Codec<ScopeInfo> =>\n buildCodecForUnion<ScopeInfo>()\n .discriminateOn(\"type\")\n .alternative(ScopeType.Global, codecForScopeInfoGlobal())\n .alternative(ScopeType.Exchange, codecForScopeInfoExchange())\n .alternative(ScopeType.Auditor, codecForScopeInfoAuditor())\n .build(\"ScopeInfo\");\n\nexport interface GetCurrencySpecificationRequest {\n scope: ScopeInfo;\n}\n\nexport const codecForGetCurrencyInfoRequest =\n (): Codec<GetCurrencySpecificationRequest> =>\n buildCodecForObject<GetCurrencySpecificationRequest>()\n .property(\"scope\", codecForScopeInfo())\n .build(\"GetCurrencySpecificationRequest\");\n\nexport interface ListExchangesForScopedCurrencyRequest {\n scope: ScopeInfo;\n}\n\nexport const codecForListExchangesForScopedCurrencyRequest =\n (): Codec<ListExchangesForScopedCurrencyRequest> =>\n buildCodecForObject<ListExchangesForScopedCurrencyRequest>()\n .property(\"scope\", codecForScopeInfo())\n .build(\"ListExchangesForScopedCurrencyRequest\");\n\nexport interface GetCurrencySpecificationResponse {\n currencySpecification: CurrencySpecification;\n}\n\nexport interface InitRequest {\n skipDefaults?: boolean;\n}\n\nexport interface InitResponse {\n versionInfo: WalletCoreVersion;\n}\n\nexport enum ScopeType {\n Global = \"global\",\n Exchange = \"exchange\",\n Auditor = \"auditor\",\n}\n\nexport type ScopeInfoGlobal = { type: ScopeType.Global; currency: string };\nexport type ScopeInfoExchange = {\n type: ScopeType.Exchange;\n currency: string;\n url: string;\n};\nexport type ScopeInfoAuditor = {\n type: ScopeType.Auditor;\n currency: string;\n url: string;\n};\n\nexport type ScopeInfo = ScopeInfoGlobal | ScopeInfoExchange | ScopeInfoAuditor;\n\nexport interface BalancesResponse {\n balances: WalletBalance[];\n}\n\nexport const codecForBalance = (): Codec<WalletBalance> =>\n buildCodecForObject<WalletBalance>()\n .property(\"scopeInfo\", codecForAny()) // FIXME\n .property(\"available\", codecForAmountString())\n .property(\"hasPendingTransactions\", codecForBoolean())\n .property(\"pendingIncoming\", codecForAmountString())\n .property(\"pendingOutgoing\", codecForAmountString())\n .property(\"requiresUserInput\", codecForBoolean())\n .property(\"flags\", codecForAny()) // FIXME\n .build(\"Balance\");\n\nexport const codecForBalancesResponse = (): Codec<BalancesResponse> =>\n buildCodecForObject<BalancesResponse>()\n .property(\"balances\", codecForList(codecForBalance()))\n .build(\"BalancesResponse\");\n\n/**\n * For terseness.\n */\nexport function mkAmount(\n value: number,\n fraction: number,\n currency: string,\n): AmountJson {\n return { value, fraction, currency };\n}\n\n/**\n * Status of a coin.\n */\nexport enum CoinStatus {\n /**\n * Withdrawn and never shown to anybody.\n */\n Fresh = \"fresh\",\n\n /**\n * Fresh, but currently marked as \"suspended\", thus won't be used\n * for spending. Used for testing.\n */\n FreshSuspended = \"fresh-suspended\",\n\n /**\n * A coin that has been spent and refreshed.\n */\n Dormant = \"dormant\",\n}\n\n/**\n * Easy to process format for the public data of coins\n * managed by the wallet.\n */\nexport interface CoinDumpJson {\n coins: Array<{\n /**\n * The coin's denomination's public key.\n */\n denom_pub: DenominationPubKey;\n /**\n * Hash of denom_pub.\n */\n denom_pub_hash: string;\n /**\n * Value of the denomination (without any fees).\n */\n denom_value: string;\n /**\n * Public key of the coin.\n */\n coin_pub: string;\n /**\n * Base URL of the exchange for the coin.\n */\n exchange_base_url: string;\n /**\n * Public key of the parent coin.\n * Only present if this coin was obtained via refreshing.\n */\n refresh_parent_coin_pub: string | undefined;\n /**\n * Public key of the reserve for this coin.\n * Only present if this coin was obtained via refreshing.\n */\n withdrawal_reserve_pub: string | undefined;\n coin_status: CoinStatus;\n spend_allocation:\n | {\n id: string;\n amount: AmountString;\n }\n | undefined;\n /**\n * Information about the age restriction\n */\n ageCommitmentProof: AgeCommitmentProof | undefined;\n }>;\n}\n\nexport enum ConfirmPayResultType {\n Done = \"done\",\n Pending = \"pending\",\n}\n\n/**\n * Result for confirmPay\n */\nexport interface ConfirmPayResultDone {\n type: ConfirmPayResultType.Done;\n contractTerms: MerchantContractTerms;\n transactionId: TransactionIdStr;\n}\n\nexport interface ConfirmPayResultPending {\n type: ConfirmPayResultType.Pending;\n transactionId: TransactionIdStr;\n lastError: TalerErrorDetail | undefined;\n}\n\nexport const codecForTalerErrorDetail = (): Codec<TalerErrorDetail> =>\n buildCodecForObject<TalerErrorDetail>()\n .property(\"code\", codecForNumber())\n .property(\"when\", codecOptional(codecForAbsoluteTime))\n .property(\"hint\", codecOptional(codecForString()))\n .build(\"TalerErrorDetail\");\n\nexport type ConfirmPayResult = ConfirmPayResultDone | ConfirmPayResultPending;\n\nexport const codecForConfirmPayResultPending =\n (): Codec<ConfirmPayResultPending> =>\n buildCodecForObject<ConfirmPayResultPending>()\n .property(\"lastError\", codecOptional(codecForTalerErrorDetail()))\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"type\", codecForConstString(ConfirmPayResultType.Pending))\n .build(\"ConfirmPayResultPending\");\n\nexport const codecForConfirmPayResultDone = (): Codec<ConfirmPayResultDone> =>\n buildCodecForObject<ConfirmPayResultDone>()\n .property(\"type\", codecForConstString(ConfirmPayResultType.Done))\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"contractTerms\", codecForMerchantContractTerms())\n .build(\"ConfirmPayResultDone\");\n\nexport const codecForConfirmPayResult = (): Codec<ConfirmPayResult> =>\n buildCodecForUnion<ConfirmPayResult>()\n .discriminateOn(\"type\")\n .alternative(\n ConfirmPayResultType.Pending,\n codecForConfirmPayResultPending(),\n )\n .alternative(ConfirmPayResultType.Done, codecForConfirmPayResultDone())\n .build(\"ConfirmPayResult\");\n\n/**\n * Information about all sender wire details known to the wallet,\n * as well as exchanges that accept these wire types.\n */\nexport interface SenderWireInfos {\n /**\n * Mapping from exchange base url to list of accepted\n * wire types.\n */\n exchangeWireTypes: { [exchangeBaseUrl: string]: string[] };\n\n /**\n * Sender wire information stored in the wallet.\n */\n senderWires: string[];\n}\n\n/**\n * Request to mark a reserve as confirmed.\n */\nexport interface ConfirmReserveRequest {\n /**\n * Public key of then reserve that should be marked\n * as confirmed.\n */\n reservePub: string;\n}\n\nexport const codecForConfirmReserveRequest = (): Codec<ConfirmReserveRequest> =>\n buildCodecForObject<ConfirmReserveRequest>()\n .property(\"reservePub\", codecForString())\n .build(\"ConfirmReserveRequest\");\n\nexport interface PrepareRefundResult {\n proposalId: string;\n\n effectivePaid: AmountString;\n gone: AmountString;\n granted: AmountString;\n pending: boolean;\n awaiting: AmountString;\n\n info: OrderShortInfo;\n}\n\nexport interface PrepareTipResult {\n /**\n * Unique ID for the tip assigned by the wallet.\n * Typically different from the merchant-generated tip ID.\n *\n * @deprecated use transactionId instead\n */\n walletRewardId: string;\n\n /**\n * Tip transaction ID.\n */\n transactionId: string;\n\n /**\n * Has the tip already been accepted?\n */\n accepted: boolean;\n\n /**\n * Amount that the merchant gave.\n */\n rewardAmountRaw: AmountString;\n\n /**\n * Amount that arrived at the wallet.\n * Might be lower than the raw amount due to fees.\n */\n rewardAmountEffective: AmountString;\n\n /**\n * Base URL of the merchant backend giving then tip.\n */\n merchantBaseUrl: string;\n\n /**\n * Base URL of the exchange that is used to withdraw the tip.\n * Determined by the merchant, the wallet/user has no choice here.\n */\n exchangeBaseUrl: string;\n\n /**\n * Time when the tip will expire. After it expired, it can't be picked\n * up anymore.\n */\n expirationTimestamp: TalerProtocolTimestamp;\n}\n\nexport interface AcceptTipResponse {\n transactionId: TransactionIdStr;\n next_url?: string;\n}\n\nexport const codecForPrepareTipResult = (): Codec<PrepareTipResult> =>\n buildCodecForObject<PrepareTipResult>()\n .property(\"accepted\", codecForBoolean())\n .property(\"rewardAmountRaw\", codecForAmountString())\n .property(\"rewardAmountEffective\", codecForAmountString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"expirationTimestamp\", codecForTimestamp)\n .property(\"walletRewardId\", codecForString())\n .property(\"transactionId\", codecForString())\n .build(\"PrepareRewardResult\");\n\nexport interface BenchmarkResult {\n time: { [s: string]: number };\n repetitions: number;\n}\n\nexport enum PreparePayResultType {\n PaymentPossible = \"payment-possible\",\n InsufficientBalance = \"insufficient-balance\",\n AlreadyConfirmed = \"already-confirmed\",\n}\n\nexport const codecForPreparePayResultPaymentPossible =\n (): Codec<PreparePayResultPaymentPossible> =>\n buildCodecForObject<PreparePayResultPaymentPossible>()\n .property(\"amountEffective\", codecForAmountString())\n .property(\"amountRaw\", codecForAmountString())\n .property(\"contractTerms\", codecForMerchantContractTerms())\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"proposalId\", codecForString())\n .property(\"contractTermsHash\", codecForString())\n .property(\"talerUri\", codecForString())\n .property(\n \"status\",\n codecForConstString(PreparePayResultType.PaymentPossible),\n )\n .build(\"PreparePayResultPaymentPossible\");\n\n/**\n * Detailed reason for why the wallet's balance is insufficient.\n */\nexport interface PayMerchantInsufficientBalanceDetails {\n /**\n * Amount requested by the merchant.\n */\n amountRequested: AmountString;\n\n /**\n * Balance of type \"available\" (see balance.ts for definition).\n */\n balanceAvailable: AmountString;\n\n /**\n * Balance of type \"material\" (see balance.ts for definition).\n */\n balanceMaterial: AmountString;\n\n /**\n * Balance of type \"age-acceptable\" (see balance.ts for definition).\n */\n balanceAgeAcceptable: AmountString;\n\n /**\n * Balance of type \"merchant-acceptable\" (see balance.ts for definition).\n */\n balanceMerchantAcceptable: AmountString;\n\n /**\n * Balance of type \"merchant-depositable\" (see balance.ts for definition).\n */\n balanceMerchantDepositable: AmountString;\n\n /**\n * If the payment would succeed without fees\n * (i.e. balanceMerchantDepositable >= amountRequested),\n * this field contains an estimate of the amount that would additionally\n * be required to cover the fees.\n *\n * It is not possible to give an exact value here, since it depends\n * on the coin selection for the amount that would be additionally withdrawn.\n */\n feeGapEstimate: AmountString;\n}\n\nexport const codecForPayMerchantInsufficientBalanceDetails =\n (): Codec<PayMerchantInsufficientBalanceDetails> =>\n buildCodecForObject<PayMerchantInsufficientBalanceDetails>()\n .property(\"amountRequested\", codecForAmountString())\n .property(\"balanceAgeAcceptable\", codecForAmountString())\n .property(\"balanceAvailable\", codecForAmountString())\n .property(\"balanceMaterial\", codecForAmountString())\n .property(\"balanceMerchantAcceptable\", codecForAmountString())\n .property(\"balanceMerchantDepositable\", codecForAmountString())\n .property(\"feeGapEstimate\", codecForAmountString())\n .build(\"PayMerchantInsufficientBalanceDetails\");\n\nexport const codecForPreparePayResultInsufficientBalance =\n (): Codec<PreparePayResultInsufficientBalance> =>\n buildCodecForObject<PreparePayResultInsufficientBalance>()\n .property(\"amountRaw\", codecForAmountString())\n .property(\"contractTerms\", codecForAny())\n .property(\"talerUri\", codecForString())\n .property(\"proposalId\", codecForString())\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\n \"status\",\n codecForConstString(PreparePayResultType.InsufficientBalance),\n )\n .property(\n \"balanceDetails\",\n codecForPayMerchantInsufficientBalanceDetails(),\n )\n .build(\"PreparePayResultInsufficientBalance\");\n\nexport const codecForPreparePayResultAlreadyConfirmed =\n (): Codec<PreparePayResultAlreadyConfirmed> =>\n buildCodecForObject<PreparePayResultAlreadyConfirmed>()\n .property(\n \"status\",\n codecForConstString(PreparePayResultType.AlreadyConfirmed),\n )\n .property(\"amountEffective\", codecOptional(codecForAmountString()))\n .property(\"amountRaw\", codecForAmountString())\n .property(\"paid\", codecForBoolean())\n .property(\"talerUri\", codecForString())\n .property(\"contractTerms\", codecForAny())\n .property(\"contractTermsHash\", codecForString())\n .property(\"transactionId\", codecForTransactionIdStr())\n .property(\"proposalId\", codecForString())\n .build(\"PreparePayResultAlreadyConfirmed\");\n\nexport const codecForPreparePayResult = (): Codec<PreparePayResult> =>\n buildCodecForUnion<PreparePayResult>()\n .discriminateOn(\"status\")\n .alternative(\n PreparePayResultType.AlreadyConfirmed,\n codecForPreparePayResultAlreadyConfirmed(),\n )\n .alternative(\n PreparePayResultType.InsufficientBalance,\n codecForPreparePayResultInsufficientBalance(),\n )\n .alternative(\n PreparePayResultType.PaymentPossible,\n codecForPreparePayResultPaymentPossible(),\n )\n .build(\"PreparePayResult\");\n\n/**\n * Result of a prepare pay operation.\n */\nexport type PreparePayResult =\n | PreparePayResultInsufficientBalance\n | PreparePayResultAlreadyConfirmed\n | PreparePayResultPaymentPossible;\n\n/**\n * Payment is possible.\n */\nexport interface PreparePayResultPaymentPossible {\n status: PreparePayResultType.PaymentPossible;\n transactionId: TransactionIdStr;\n /**\n * @deprecated use transactionId instead\n */\n proposalId: string;\n contractTerms: MerchantContractTerms;\n contractTermsHash: string;\n amountRaw: AmountString;\n amountEffective: AmountString;\n talerUri: string;\n}\n\nexport interface PreparePayResultInsufficientBalance {\n status: PreparePayResultType.InsufficientBalance;\n transactionId: TransactionIdStr;\n /**\n * @deprecated use transactionId\n */\n proposalId: string;\n contractTerms: MerchantContractTerms;\n amountRaw: AmountString;\n talerUri: string;\n balanceDetails: PayMerchantInsufficientBalanceDetails;\n}\n\nexport interface PreparePayResultAlreadyConfirmed {\n status: PreparePayResultType.AlreadyConfirmed;\n transactionId: TransactionIdStr;\n contractTerms: MerchantContractTerms;\n paid: boolean;\n amountRaw: AmountString;\n amountEffective: AmountString | undefined;\n contractTermsHash: string;\n /**\n * @deprecated use transactionId\n */\n proposalId: string;\n talerUri: string;\n}\n\nexport interface BankWithdrawDetails {\n selectionDone: boolean;\n transferDone: boolean;\n amount: AmountJson;\n senderWire?: string;\n suggestedExchange?: string;\n confirmTransferUrl?: string;\n wireTypes: string[];\n}\n\nexport interface AcceptWithdrawalResponse {\n reservePub: string;\n confirmTransferUrl?: string;\n transactionId: TransactionIdStr;\n}\n\n/**\n * Details about a purchase, including refund status.\n */\nexport interface PurchaseDetails {\n contractTerms: Record<string, undefined>;\n hasRefund: boolean;\n totalRefundAmount: AmountJson;\n totalRefundAndRefreshFees: AmountJson;\n}\n\nexport interface WalletDiagnostics {\n walletManifestVersion: string;\n walletManifestDisplayVersion: string;\n errors: string[];\n firefoxIdbProblem: boolean;\n dbOutdated: boolean;\n}\n\nexport interface TalerErrorDetail {\n code: TalerErrorCode;\n when?: AbsoluteTime;\n hint?: string;\n [x: string]: unknown;\n}\n\n/**\n * Minimal information needed about a planchet for unblinding a signature.\n *\n * Can be a withdrawal/tipping/refresh planchet.\n */\nexport interface PlanchetUnblindInfo {\n denomPub: DenominationPubKey;\n blindingKey: string;\n}\n\nexport interface WithdrawalPlanchet {\n coinPub: string;\n coinPriv: string;\n reservePub: string;\n denomPubHash: string;\n denomPub: DenominationPubKey;\n blindingKey: string;\n withdrawSig: string;\n coinEv: CoinEnvelope;\n coinValue: AmountJson;\n coinEvHash: string;\n ageCommitmentProof?: AgeCommitmentProof;\n}\n\nexport interface PlanchetCreationRequest {\n secretSeed: string;\n coinIndex: number;\n value: AmountJson;\n feeWithdraw: AmountJson;\n denomPub: DenominationPubKey;\n reservePub: string;\n reservePriv: string;\n restrictAge?: number;\n}\n\n/**\n * Reasons for why a coin is being refreshed.\n */\nexport enum RefreshReason {\n Manual = \"manual\",\n PayMerchant = \"pay-merchant\",\n PayDeposit = \"pay-deposit\",\n PayPeerPush = \"pay-peer-push\",\n PayPeerPull = \"pay-peer-pull\",\n Refund = \"refund\",\n AbortPay = \"abort-pay\",\n AbortDeposit = \"abort-deposit\",\n AbortPeerPushDebit = \"abort-peer-push-debit\",\n AbortPeerPullDebit = \"abort-peer-pull-debit\",\n Recoup = \"recoup\",\n BackupRestored = \"backup-restored\",\n Scheduled = \"scheduled\",\n}\n\n/**\n * Request to refresh a single coin.\n */\nexport interface CoinRefreshRequest {\n readonly coinPub: string;\n readonly amount: AmountString;\n}\n\n/**\n * Wrapper for refresh group IDs.\n */\nexport interface RefreshGroupId {\n readonly refreshGroupId: string;\n}\n\n/**\n * Private data required to make a deposit permission.\n */\nexport interface DepositInfo {\n exchangeBaseUrl: string;\n contractTermsHash: string;\n coinPub: string;\n coinPriv: string;\n spendAmount: AmountJson;\n timestamp: TalerProtocolTimestamp;\n refundDeadline: TalerProtocolTimestamp;\n merchantPub: string;\n feeDeposit: AmountJson;\n wireInfoHash: string;\n denomKeyType: DenomKeyType;\n denomPubHash: string;\n denomSig: UnblindedSignature;\n\n requiredMinimumAge?: number;\n\n ageCommitmentProof?: AgeCommitmentProof;\n}\n\nexport interface ExchangesShortListResponse {\n exchanges: ShortExchangeListItem[];\n}\n\nexport interface ExchangesListResponse {\n exchanges: ExchangeListItem[];\n}\n\nexport interface ExchangeDetailedResponse {\n exchange: ExchangeFullDetails;\n}\n\nexport interface WalletCoreVersion {\n /**\n * Wallet-core protocol version supported by this implementation\n * of the API (\"server\" version).\n */\n version: string;\n exchange: string;\n merchant: string;\n\n bankIntegrationApiRange: string;\n bankConversionApiRange: string;\n corebankApiRange: string;\n\n /**\n * @deprecated as bank was split into multiple APIs withs separate versioning\n */\n bank: string;\n\n /**\n * @deprecated\n */\n hash: string | undefined;\n\n /**\n * @deprecated will be removed\n */\n devMode: boolean;\n}\n\nexport interface KnownBankAccountsInfo {\n uri: PaytoUri;\n kyc_completed: boolean;\n currency: string;\n alias: string;\n}\n\nexport interface KnownBankAccounts {\n accounts: KnownBankAccountsInfo[];\n}\n\n/**\n * Wire fee for one wire method\n */\nexport interface WireFee {\n /**\n * Fee for wire transfers.\n */\n wireFee: AmountString;\n\n /**\n * Fees to close and refund a reserve.\n */\n closingFee: AmountString;\n\n /**\n * Start date of the fee.\n */\n startStamp: TalerProtocolTimestamp;\n\n /**\n * End date of the fee.\n */\n endStamp: TalerProtocolTimestamp;\n\n /**\n * Signature made by the exchange master key.\n */\n sig: string;\n}\n\nexport type WireFeeMap = { [wireMethod: string]: WireFee[] };\n\nexport interface WireInfo {\n feesForType: WireFeeMap;\n accounts: ExchangeWireAccount[];\n}\n\nexport interface ExchangeGlobalFees {\n startDate: TalerProtocolTimestamp;\n endDate: TalerProtocolTimestamp;\n\n historyFee: AmountString;\n accountFee: AmountString;\n purseFee: AmountString;\n\n historyTimeout: TalerProtocolDuration;\n purseTimeout: TalerProtocolDuration;\n\n purseLimit: number;\n\n signature: string;\n}\n\nconst codecForWireFee = (): Codec<WireFee> =>\n buildCodecForObject<WireFee>()\n .property(\"sig\", codecForString())\n .property(\"wireFee\", codecForAmountString())\n .property(\"closingFee\", codecForAmountString())\n .property(\"startStamp\", codecForTimestamp)\n .property(\"endStamp\", codecForTimestamp)\n .build(\"codecForWireFee\");\n\nconst codecForWireInfo = (): Codec<WireInfo> =>\n buildCodecForObject<WireInfo>()\n .property(\"feesForType\", codecForMap(codecForList(codecForWireFee())))\n .property(\"accounts\", codecForList(codecForExchangeWireAccount()))\n .build(\"codecForWireInfo\");\n\nexport interface DenominationInfo {\n /**\n * Value of one coin of the denomination.\n */\n value: AmountString;\n\n /**\n * Hash of the denomination public key.\n * Stored in the database for faster lookups.\n */\n denomPubHash: string;\n\n denomPub: DenominationPubKey;\n\n /**\n * Fee for withdrawing.\n */\n feeWithdraw: AmountString;\n\n /**\n * Fee for depositing.\n */\n feeDeposit: AmountString;\n\n /**\n * Fee for refreshing.\n */\n feeRefresh: AmountString;\n\n /**\n * Fee for refunding.\n */\n feeRefund: AmountString;\n\n /**\n * Validity start date of the denomination.\n */\n stampStart: TalerProtocolTimestamp;\n\n /**\n * Date after which the currency can't be withdrawn anymore.\n */\n stampExpireWithdraw: TalerProtocolTimestamp;\n\n /**\n * Date after the denomination officially doesn't exist anymore.\n */\n stampExpireLegal: TalerProtocolTimestamp;\n\n /**\n * Data after which coins of this denomination can't be deposited anymore.\n */\n stampExpireDeposit: TalerProtocolTimestamp;\n\n exchangeBaseUrl: string;\n}\n\nexport type DenomOperation = \"deposit\" | \"withdraw\" | \"refresh\" | \"refund\";\nexport type DenomOperationMap<T> = { [op in DenomOperation]: T };\n\nexport interface FeeDescription {\n group: string;\n from: AbsoluteTime;\n until: AbsoluteTime;\n fee?: AmountString;\n}\n\nexport interface FeeDescriptionPair {\n group: string;\n from: AbsoluteTime;\n until: AbsoluteTime;\n left?: AmountString;\n right?: AmountString;\n}\n\nexport interface TimePoint<T> {\n id: string;\n group: string;\n fee: AmountString;\n type: \"start\" | \"end\";\n moment: AbsoluteTime;\n denom: T;\n}\n\nexport interface ExchangeFullDetails {\n exchangeBaseUrl: string;\n currency: string;\n paytoUris: string[];\n auditors: ExchangeAuditor[];\n wireInfo: WireInfo;\n denomFees: DenomOperationMap<FeeDescription[]>;\n transferFees: Record<string, FeeDescription[]>;\n globalFees: FeeDescription[];\n}\n\nexport enum ExchangeTosStatus {\n Pending = \"pending\",\n Proposed = \"proposed\",\n Accepted = \"accepted\",\n}\n\nexport enum ExchangeEntryStatus {\n Preset = \"preset\",\n Ephemeral = \"ephemeral\",\n Used = \"used\",\n}\n\nexport enum ExchangeUpdateStatus {\n Initial = \"initial\",\n InitialUpdate = \"initial-update\",\n Suspended = \"suspended\",\n UnavailableUpdate = \"unavailable-update\",\n Ready = \"ready\",\n ReadyUpdate = \"ready-update\",\n}\n\nexport interface OperationErrorInfo {\n error: TalerErrorDetail;\n}\n\nexport interface ShortExchangeListItem {\n exchangeBaseUrl: string;\n}\n\n/**\n * Info about an exchange entry in the wallet.\n */\nexport interface ExchangeListItem {\n exchangeBaseUrl: string;\n currency: string | undefined;\n paytoUris: string[];\n tosStatus: ExchangeTosStatus;\n exchangeEntryStatus: ExchangeEntryStatus;\n exchangeUpdateStatus: ExchangeUpdateStatus;\n ageRestrictionOptions: number[];\n\n scopeInfo: ScopeInfo | undefined;\n\n /**\n * Information about the last error that occurred when trying\n * to update the exchange info.\n */\n lastUpdateErrorInfo?: OperationErrorInfo;\n}\n\nconst codecForAuditorDenomSig = (): Codec<AuditorDenomSig> =>\n buildCodecForObject<AuditorDenomSig>()\n .property(\"denom_pub_h\", codecForString())\n .property(\"auditor_sig\", codecForString())\n .build(\"AuditorDenomSig\");\n\nconst codecForExchangeAuditor = (): Codec<ExchangeAuditor> =>\n buildCodecForObject<ExchangeAuditor>()\n .property(\"auditor_pub\", codecForString())\n .property(\"auditor_url\", codecForString())\n .property(\"denomination_keys\", codecForList(codecForAuditorDenomSig()))\n .build(\"codecForExchangeAuditor\");\n\nexport const codecForFeeDescriptionPair = (): Codec<FeeDescriptionPair> =>\n buildCodecForObject<FeeDescriptionPair>()\n .property(\"group\", codecForString())\n .property(\"from\", codecForAbsoluteTime)\n .property(\"until\", codecForAbsoluteTime)\n .property(\"left\", codecOptional(codecForAmountString()))\n .property(\"right\", codecOptional(codecForAmountString()))\n .build(\"FeeDescriptionPair\");\n\nexport const codecForFeeDescription = (): Codec<FeeDescription> =>\n buildCodecForObject<FeeDescription>()\n .property(\"group\", codecForString())\n .property(\"from\", codecForAbsoluteTime)\n .property(\"until\", codecForAbsoluteTime)\n .property(\"fee\", codecOptional(codecForAmountString()))\n .build(\"FeeDescription\");\n\nexport const codecForFeesByOperations = (): Codec<\n DenomOperationMap<FeeDescription[]>\n> =>\n buildCodecForObject<DenomOperationMap<FeeDescription[]>>()\n .property(\"deposit\", codecForList(codecForFeeDescription()))\n .property(\"withdraw\", codecForList(codecForFeeDescription()))\n .property(\"refresh\", codecForList(codecForFeeDescription()))\n .property(\"refund\", codecForList(codecForFeeDescription()))\n .build(\"DenomOperationMap\");\n\nexport const codecForExchangeFullDetails = (): Codec<ExchangeFullDetails> =>\n buildCodecForObject<ExchangeFullDetails>()\n .property(\"currency\", codecForString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"paytoUris\", codecForList(codecForString()))\n .property(\"auditors\", codecForList(codecForExchangeAuditor()))\n .property(\"wireInfo\", codecForWireInfo())\n .property(\"denomFees\", codecForFeesByOperations())\n .property(\n \"transferFees\",\n codecForMap(codecForList(codecForFeeDescription())),\n )\n .property(\"globalFees\", codecForList(codecForFeeDescription()))\n .build(\"ExchangeFullDetails\");\n\nexport const codecForExchangeListItem = (): Codec<ExchangeListItem> =>\n buildCodecForObject<ExchangeListItem>()\n .property(\"currency\", codecForString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"paytoUris\", codecForList(codecForString()))\n .property(\"tosStatus\", codecForAny())\n .property(\"exchangeEntryStatus\", codecForAny())\n .property(\"exchangeUpdateStatus\", codecForAny())\n .property(\"ageRestrictionOptions\", codecForList(codecForNumber()))\n .property(\"scopeInfo\", codecForScopeInfo())\n .build(\"ExchangeListItem\");\n\nexport const codecForExchangesListResponse = (): Codec<ExchangesListResponse> =>\n buildCodecForObject<ExchangesListResponse>()\n .property(\"exchanges\", codecForList(codecForExchangeListItem()))\n .build(\"ExchangesListResponse\");\n\nexport interface AcceptManualWithdrawalResult {\n /**\n * Payto URIs that can be used to fund the withdrawal.\n *\n * @deprecated in favor of withdrawalAccountsList\n */\n exchangePaytoUris: string[];\n\n /**\n * Public key of the newly created reserve.\n */\n reservePub: string;\n\n withdrawalAccountsList: WithdrawalExchangeAccountDetails[];\n\n transactionId: TransactionIdStr;\n}\n\nexport interface WithdrawalDetailsForAmount {\n /**\n * Did the user accept the current version of the exchange's\n * terms of service?\n *\n * @deprecated the client should query the exchange entry instead\n */\n tosAccepted: boolean;\n\n /**\n * Amount that the user will transfer to the exchange.\n */\n amountRaw: AmountString;\n\n /**\n * Amount that will be added to the user's wallet balance.\n */\n amountEffective: AmountString;\n\n /**\n * Number of coins that would be used for withdrawal.\n *\n * The UIs should warn if this number is too high (roughly at >100).\n */\n numCoins: number;\n\n /**\n * Ways to pay the exchange.\n *\n * @deprecated in favor of withdrawalAccountsList\n */\n paytoUris: string[];\n\n /**\n * Ways to pay the exchange, including accounts that require currency conversion.\n */\n withdrawalAccountsList: WithdrawalExchangeAccountDetails[];\n\n /**\n * If the exchange supports age-restricted coins it will return\n * the array of ages.\n */\n ageRestrictionOptions?: number[];\n\n /**\n * Scope info of the currency withdrawn.\n */\n scopeInfo: ScopeInfo;\n}\n\n/**\n * Selected denominations withn some extra info.\n */\nexport interface DenomSelectionState {\n totalCoinValue: AmountString;\n totalWithdrawCost: AmountString;\n selectedDenoms: {\n denomPubHash: string;\n count: number;\n }[];\n}\n\n/**\n * Information about what will happen doing a withdrawal.\n *\n * Sent to the wallet frontend to be rendered and shown to the user.\n */\nexport interface ExchangeWithdrawalDetails {\n exchangePaytoUris: string[];\n\n /**\n * Filtered wire info to send to the bank.\n */\n exchangeWireAccounts: string[];\n\n exchangeCreditAccountDetails: WithdrawalExchangeAccountDetails[];\n\n /**\n * Selected denominations for withdraw.\n */\n selectedDenoms: DenomSelectionState;\n\n /**\n * Did the user already accept the current terms of service for the exchange?\n */\n termsOfServiceAccepted: boolean;\n\n /**\n * The earliest deposit expiration of the selected coins.\n */\n earliestDepositExpiration: TalerProtocolTimestamp;\n\n /**\n * Number of currently offered denominations.\n */\n numOfferedDenoms: number;\n\n /**\n * Public keys of trusted auditors for the currency we're withdrawing.\n */\n trustedAuditorPubs: string[];\n\n /**\n * Result of checking the wallet's version\n * against the exchange's version.\n *\n * Older exchanges don't return version information.\n */\n versionMatch: VersionMatchResult | undefined;\n\n /**\n * Libtool-style version string for the exchange or \"unknown\"\n * for older exchanges.\n */\n exchangeVersion: string;\n\n /**\n * Libtool-style version string for the wallet.\n */\n walletVersion: string;\n\n /**\n * Amount that will be subtracted from the reserve's balance.\n */\n withdrawalAmountRaw: AmountString;\n\n /**\n * Amount that will actually be added to the wallet's balance.\n */\n withdrawalAmountEffective: AmountString;\n\n /**\n * If the exchange supports age-restricted coins it will return\n * the array of ages.\n *\n */\n ageRestrictionOptions?: number[];\n}\n\nexport interface GetExchangeTosResult {\n /**\n * Markdown version of the current ToS.\n */\n content: string;\n\n /**\n * Version tag of the current ToS.\n */\n currentEtag: string;\n\n /**\n * Version tag of the last ToS that the user has accepted,\n * if any.\n */\n acceptedEtag: string | undefined;\n\n /**\n * Accepted content type\n */\n contentType: string;\n\n /**\n * Language of the returned content.\n *\n * If missing, language is unknown.\n */\n contentLanguage: string | undefined;\n\n /**\n * Available languages as advertised by the exchange.\n */\n tosAvailableLanguages: string[];\n\n tosStatus: ExchangeTosStatus;\n}\n\nexport interface TestPayArgs {\n merchantBaseUrl: string;\n merchantAuthToken?: string;\n amount: AmountString;\n summary: string;\n forcedCoinSel?: ForcedCoinSel;\n}\n\nexport const codecForTestPayArgs = (): Codec<TestPayArgs> =>\n buildCodecForObject<TestPayArgs>()\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"merchantAuthToken\", codecOptional(codecForString()))\n .property(\"amount\", codecForAmountString())\n .property(\"summary\", codecForString())\n .property(\"forcedCoinSel\", codecForAny())\n .build(\"TestPayArgs\");\n\nexport interface IntegrationTestArgs {\n exchangeBaseUrl: string;\n corebankApiBaseUrl: string;\n merchantBaseUrl: string;\n merchantAuthToken?: string;\n amountToWithdraw: AmountString;\n amountToSpend: AmountString;\n}\n\nexport const codecForIntegrationTestArgs = (): Codec<IntegrationTestArgs> =>\n buildCodecForObject<IntegrationTestArgs>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"merchantAuthToken\", codecOptional(codecForString()))\n .property(\"amountToSpend\", codecForAmountString())\n .property(\"amountToWithdraw\", codecForAmountString())\n .property(\"corebankApiBaseUrl\", codecForString())\n .build(\"IntegrationTestArgs\");\n\nexport interface IntegrationTestV2Args {\n exchangeBaseUrl: string;\n corebankApiBaseUrl: string;\n merchantBaseUrl: string;\n merchantAuthToken?: string;\n}\n\nexport const codecForIntegrationTestV2Args = (): Codec<IntegrationTestV2Args> =>\n buildCodecForObject<IntegrationTestV2Args>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"merchantAuthToken\", codecOptional(codecForString()))\n .property(\"corebankApiBaseUrl\", codecForString())\n .build(\"IntegrationTestV2Args\");\n\nexport interface GetExchangeEntryByUrlRequest {\n exchangeBaseUrl: string;\n}\n\nexport const codecForGetExchangeEntryByUrlRequest =\n (): Codec<GetExchangeEntryByUrlRequest> =>\n buildCodecForObject<GetExchangeEntryByUrlRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .build(\"GetExchangeEntryByUrlRequest\");\n\nexport type GetExchangeEntryByUrlResponse = ExchangeListItem;\n\nexport interface AddExchangeRequest {\n exchangeBaseUrl: string;\n\n /**\n * @deprecated use a separate API call to start a forced exchange update instead\n */\n forceUpdate?: boolean;\n\n masterPub?: string;\n}\n\nexport const codecForAddExchangeRequest = (): Codec<AddExchangeRequest> =>\n buildCodecForObject<AddExchangeRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"forceUpdate\", codecOptional(codecForBoolean()))\n .property(\"masterPub\", codecOptional(codecForString()))\n .build(\"AddExchangeRequest\");\n\nexport interface UpdateExchangeEntryRequest {\n exchangeBaseUrl: string;\n}\n\nexport const codecForUpdateExchangeEntryRequest =\n (): Codec<UpdateExchangeEntryRequest> =>\n buildCodecForObject<UpdateExchangeEntryRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .build(\"UpdateExchangeEntryRequest\");\n\nexport interface ForceExchangeUpdateRequest {\n exchangeBaseUrl: string;\n}\n\nexport const codecForForceExchangeUpdateRequest =\n (): Codec<AddExchangeRequest> =>\n buildCodecForObject<AddExchangeRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .build(\"AddExchangeRequest\");\n\nexport interface GetExchangeTosRequest {\n exchangeBaseUrl: string;\n acceptedFormat?: string[];\n acceptLanguage?: string;\n}\n\nexport const codecForGetExchangeTosRequest = (): Codec<GetExchangeTosRequest> =>\n buildCodecForObject<GetExchangeTosRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"acceptedFormat\", codecOptional(codecForList(codecForString())))\n .property(\"acceptLanguage\", codecOptional(codecForString()))\n .build(\"GetExchangeTosRequest\");\n\nexport interface AcceptManualWithdrawalRequest {\n exchangeBaseUrl: string;\n amount: AmountString;\n restrictAge?: number;\n}\n\nexport const codecForAcceptManualWithdrawalRequet =\n (): Codec<AcceptManualWithdrawalRequest> =>\n buildCodecForObject<AcceptManualWithdrawalRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"amount\", codecForAmountString())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"AcceptManualWithdrawalRequest\");\n\nexport interface GetWithdrawalDetailsForAmountRequest {\n exchangeBaseUrl: string;\n amount: AmountString;\n restrictAge?: number;\n}\n\nexport interface AcceptBankIntegratedWithdrawalRequest {\n talerWithdrawUri: string;\n exchangeBaseUrl: string;\n forcedDenomSel?: ForcedDenomSel;\n restrictAge?: number;\n}\n\nexport const codecForAcceptBankIntegratedWithdrawalRequest =\n (): Codec<AcceptBankIntegratedWithdrawalRequest> =>\n buildCodecForObject<AcceptBankIntegratedWithdrawalRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"talerWithdrawUri\", codecForString())\n .property(\"forcedDenomSel\", codecForAny())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"AcceptBankIntegratedWithdrawalRequest\");\n\nexport const codecForGetWithdrawalDetailsForAmountRequest =\n (): Codec<GetWithdrawalDetailsForAmountRequest> =>\n buildCodecForObject<GetWithdrawalDetailsForAmountRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"amount\", codecForAmountString())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"GetWithdrawalDetailsForAmountRequest\");\n\nexport interface AcceptExchangeTosRequest {\n exchangeBaseUrl: string;\n etag: string | undefined;\n}\n\nexport const codecForAcceptExchangeTosRequest =\n (): Codec<AcceptExchangeTosRequest> =>\n buildCodecForObject<AcceptExchangeTosRequest>()\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"etag\", codecOptional(codecForString()))\n .build(\"AcceptExchangeTosRequest\");\n\nexport interface AcceptRefundRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForApplyRefundRequest = (): Codec<AcceptRefundRequest> =>\n buildCodecForObject<AcceptRefundRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"AcceptRefundRequest\");\n\nexport interface ApplyRefundFromPurchaseIdRequest {\n purchaseId: string;\n}\n\nexport const codecForApplyRefundFromPurchaseIdRequest =\n (): Codec<ApplyRefundFromPurchaseIdRequest> =>\n buildCodecForObject<ApplyRefundFromPurchaseIdRequest>()\n .property(\"purchaseId\", codecForString())\n .build(\"ApplyRefundFromPurchaseIdRequest\");\n\nexport interface GetWithdrawalDetailsForUriRequest {\n talerWithdrawUri: string;\n restrictAge?: number;\n}\n\nexport const codecForGetWithdrawalDetailsForUri =\n (): Codec<GetWithdrawalDetailsForUriRequest> =>\n buildCodecForObject<GetWithdrawalDetailsForUriRequest>()\n .property(\"talerWithdrawUri\", codecForString())\n .property(\"restrictAge\", codecOptional(codecForNumber()))\n .build(\"GetWithdrawalDetailsForUriRequest\");\n\nexport interface ListKnownBankAccountsRequest {\n currency?: string;\n}\n\nexport const codecForListKnownBankAccounts =\n (): Codec<ListKnownBankAccountsRequest> =>\n buildCodecForObject<ListKnownBankAccountsRequest>()\n .property(\"currency\", codecOptional(codecForString()))\n .build(\"ListKnownBankAccountsRequest\");\n\nexport interface AddKnownBankAccountsRequest {\n payto: string;\n alias: string;\n currency: string;\n}\nexport const codecForAddKnownBankAccounts =\n (): Codec<AddKnownBankAccountsRequest> =>\n buildCodecForObject<AddKnownBankAccountsRequest>()\n .property(\"payto\", codecForString())\n .property(\"alias\", codecForString())\n .property(\"currency\", codecForString())\n .build(\"AddKnownBankAccountsRequest\");\n\nexport interface ForgetKnownBankAccountsRequest {\n payto: string;\n}\n\nexport const codecForForgetKnownBankAccounts =\n (): Codec<ForgetKnownBankAccountsRequest> =>\n buildCodecForObject<ForgetKnownBankAccountsRequest>()\n .property(\"payto\", codecForString())\n .build(\"ForgetKnownBankAccountsRequest\");\n\nexport interface AbortProposalRequest {\n proposalId: string;\n}\n\nexport const codecForAbortProposalRequest = (): Codec<AbortProposalRequest> =>\n buildCodecForObject<AbortProposalRequest>()\n .property(\"proposalId\", codecForString())\n .build(\"AbortProposalRequest\");\n\nexport interface GetContractTermsDetailsRequest {\n proposalId: string;\n}\n\nexport const codecForGetContractTermsDetails =\n (): Codec<GetContractTermsDetailsRequest> =>\n buildCodecForObject<GetContractTermsDetailsRequest>()\n .property(\"proposalId\", codecForString())\n .build(\"GetContractTermsDetails\");\n\nexport interface PreparePayRequest {\n talerPayUri: string;\n}\n\nexport const codecForPreparePayRequest = (): Codec<PreparePayRequest> =>\n buildCodecForObject<PreparePayRequest>()\n .property(\"talerPayUri\", codecForString())\n .build(\"PreparePay\");\n\nexport interface SharePaymentRequest {\n merchantBaseUrl: string;\n orderId: string;\n}\nexport const codecForSharePaymentRequest = (): Codec<SharePaymentRequest> =>\n buildCodecForObject<SharePaymentRequest>()\n .property(\"merchantBaseUrl\", codecForString())\n .property(\"orderId\", codecForString())\n .build(\"SharePaymentRequest\");\n\nexport interface SharePaymentResult {\n privatePayUri: string;\n}\nexport const codecForSharePaymentResult = (): Codec<SharePaymentResult> =>\n buildCodecForObject<SharePaymentResult>()\n .property(\"privatePayUri\", codecForString())\n .build(\"SharePaymentResult\");\n\nexport interface PreparePayTemplateRequest {\n talerPayTemplateUri: string;\n templateParams: Record<string, string>;\n}\n\nexport const codecForPreparePayTemplateRequest =\n (): Codec<PreparePayTemplateRequest> =>\n buildCodecForObject<PreparePayTemplateRequest>()\n .property(\"talerPayTemplateUri\", codecForString())\n .property(\"templateParams\", codecForAny())\n .build(\"PreparePayTemplate\");\n\nexport interface ConfirmPayRequest {\n /**\n * @deprecated use transactionId instead\n */\n proposalId?: string;\n transactionId?: string;\n sessionId?: string;\n forcedCoinSel?: ForcedCoinSel;\n}\n\nexport const codecForConfirmPayRequest = (): Codec<ConfirmPayRequest> =>\n buildCodecForObject<ConfirmPayRequest>()\n .property(\"proposalId\", codecOptional(codecForString()))\n .property(\"transactionId\", codecOptional(codecForString()))\n .property(\"sessionId\", codecOptional(codecForString()))\n .property(\"forcedCoinSel\", codecForAny())\n .build(\"ConfirmPay\");\n\nexport interface CoreApiRequestEnvelope {\n id: string;\n operation: string;\n args: unknown;\n}\n\nexport type CoreApiResponse = CoreApiResponseSuccess | CoreApiResponseError;\n\nexport type CoreApiMessageEnvelope = CoreApiResponse | CoreApiNotification;\n\nexport interface CoreApiNotification {\n type: \"notification\";\n payload: unknown;\n}\n\nexport interface CoreApiResponseSuccess {\n // To distinguish the message from notifications\n type: \"response\";\n operation: string;\n id: string;\n result: unknown;\n}\n\nexport interface CoreApiResponseError {\n // To distinguish the message from notifications\n type: \"error\";\n operation: string;\n id: string;\n error: TalerErrorDetail;\n}\n\nexport interface WithdrawTestBalanceRequest {\n amount: AmountString;\n /**\n * Corebank API base URL.\n */\n corebankApiBaseUrl: string;\n exchangeBaseUrl: string;\n forcedDenomSel?: ForcedDenomSel;\n}\n\n/**\n * Request to the crypto worker to make a sync signature.\n */\nexport interface MakeSyncSignatureRequest {\n accountPriv: string;\n oldHash: string | undefined;\n newHash: string;\n}\n\n/**\n * Planchet for a coin during refresh.\n */\nexport interface RefreshPlanchetInfo {\n /**\n * Public key for the coin.\n */\n coinPub: string;\n\n /**\n * Private key for the coin.\n */\n coinPriv: string;\n\n /**\n * Blinded public key.\n */\n coinEv: CoinEnvelope;\n\n coinEvHash: string;\n\n /**\n * Blinding key used.\n */\n blindingKey: string;\n\n maxAge: number;\n ageCommitmentProof?: AgeCommitmentProof;\n}\n\n/**\n * Strategy for loading recovery information.\n */\nexport enum RecoveryMergeStrategy {\n /**\n * Keep the local wallet root key, import and take over providers.\n */\n Ours = \"ours\",\n\n /**\n * Migrate to the wallet root key from the recovery information.\n */\n Theirs = \"theirs\",\n}\n\n/**\n * Load recovery information into the wallet.\n */\nexport interface RecoveryLoadRequest {\n recovery: BackupRecovery;\n strategy?: RecoveryMergeStrategy;\n}\n\nexport const codecForWithdrawTestBalance =\n (): Codec<WithdrawTestBalanceRequest> =>\n buildCodecForObject<WithdrawTestBalanceRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"exchangeBaseUrl\", codecForString())\n .property(\"forcedDenomSel\", codecForAny())\n .property(\"corebankApiBaseUrl\", codecForString())\n .build(\"WithdrawTestBalanceRequest\");\n\nexport interface SetCoinSuspendedRequest {\n coinPub: string;\n suspended: boolean;\n}\n\nexport const codecForSetCoinSuspendedRequest =\n (): Codec<SetCoinSuspendedRequest> =>\n buildCodecForObject<SetCoinSuspendedRequest>()\n .property(\"coinPub\", codecForString())\n .property(\"suspended\", codecForBoolean())\n .build(\"SetCoinSuspendedRequest\");\n\nexport interface ForceRefreshRequest {\n coinPubList: string[];\n}\n\nexport const codecForForceRefreshRequest = (): Codec<ForceRefreshRequest> =>\n buildCodecForObject<ForceRefreshRequest>()\n .property(\"coinPubList\", codecForList(codecForString()))\n .build(\"ForceRefreshRequest\");\n\nexport interface PrepareRefundRequest {\n talerRefundUri: string;\n}\n\nexport interface StartRefundQueryForUriResponse {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForPrepareRefundRequest = (): Codec<PrepareRefundRequest> =>\n buildCodecForObject<PrepareRefundRequest>()\n .property(\"talerRefundUri\", codecForString())\n .build(\"PrepareRefundRequest\");\n\nexport interface StartRefundQueryRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForStartRefundQueryRequest =\n (): Codec<StartRefundQueryRequest> =>\n buildCodecForObject<StartRefundQueryRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"StartRefundQueryRequest\");\n\nexport interface PrepareRewardRequest {\n talerRewardUri: string;\n}\n\nexport const codecForPrepareRewardRequest = (): Codec<PrepareRewardRequest> =>\n buildCodecForObject<PrepareRewardRequest>()\n .property(\"talerRewardUri\", codecForString())\n .build(\"PrepareRewardRequest\");\n\nexport interface AcceptRewardRequest {\n walletRewardId: string;\n}\n\nexport const codecForAcceptTipRequest = (): Codec<AcceptRewardRequest> =>\n buildCodecForObject<AcceptRewardRequest>()\n .property(\"walletRewardId\", codecForString())\n .build(\"AcceptRewardRequest\");\n\nexport interface FailTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForFailTransactionRequest =\n (): Codec<FailTransactionRequest> =>\n buildCodecForObject<FailTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"FailTransactionRequest\");\n\nexport interface SuspendTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForSuspendTransaction =\n (): Codec<SuspendTransactionRequest> =>\n buildCodecForObject<AbortTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"SuspendTransactionRequest\");\n\nexport interface ResumeTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForResumeTransaction = (): Codec<ResumeTransactionRequest> =>\n buildCodecForObject<ResumeTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"ResumeTransactionRequest\");\n\nexport interface AbortTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport interface FailTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForAbortTransaction = (): Codec<AbortTransactionRequest> =>\n buildCodecForObject<AbortTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"AbortTransactionRequest\");\n\nexport interface DepositGroupFees {\n coin: AmountString;\n wire: AmountString;\n refresh: AmountString;\n}\n\nexport interface CreateDepositGroupRequest {\n /**\n * Pre-allocated transaction ID.\n * Allows clients to easily handle notifications\n * that occur while the operation has been created but\n * before the creation request has returned.\n */\n transactionId?: string;\n depositPaytoUri: string;\n amount: AmountString;\n}\n\nexport interface PrepareDepositRequest {\n depositPaytoUri: string;\n amount: AmountString;\n}\nexport const codecForPrepareDepositRequest = (): Codec<PrepareDepositRequest> =>\n buildCodecForObject<PrepareDepositRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"depositPaytoUri\", codecForString())\n .build(\"PrepareDepositRequest\");\n\nexport interface PrepareDepositResponse {\n totalDepositCost: AmountString;\n effectiveDepositAmount: AmountString;\n fees: DepositGroupFees;\n}\n\nexport const codecForCreateDepositGroupRequest =\n (): Codec<CreateDepositGroupRequest> =>\n buildCodecForObject<CreateDepositGroupRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"depositPaytoUri\", codecForString())\n .property(\"transactionId\", codecOptional(codecForString()))\n .build(\"CreateDepositGroupRequest\");\n\nexport interface CreateDepositGroupResponse {\n depositGroupId: string;\n transactionId: TransactionIdStr;\n}\n\nexport interface TxIdResponse {\n transactionId: TransactionIdStr;\n}\n\nexport interface WithdrawUriInfoResponse {\n amount: AmountString;\n defaultExchangeBaseUrl?: string;\n possibleExchanges: ExchangeListItem[];\n}\n\nexport const codecForWithdrawUriInfoResponse =\n (): Codec<WithdrawUriInfoResponse> =>\n buildCodecForObject<WithdrawUriInfoResponse>()\n .property(\"amount\", codecForAmountString())\n .property(\"defaultExchangeBaseUrl\", codecOptional(codecForString()))\n .property(\"possibleExchanges\", codecForList(codecForExchangeListItem()))\n .build(\"WithdrawUriInfoResponse\");\n\nexport interface WalletCurrencyInfo {\n trustedAuditors: {\n currency: string;\n auditorPub: string;\n auditorBaseUrl: string;\n }[];\n trustedExchanges: {\n currency: string;\n exchangeMasterPub: string;\n exchangeBaseUrl: string;\n }[];\n}\n\nexport interface DeleteTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport interface RetryTransactionRequest {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForDeleteTransactionRequest =\n (): Codec<DeleteTransactionRequest> =>\n buildCodecForObject<DeleteTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"DeleteTransactionRequest\");\n\nexport const codecForRetryTransactionRequest =\n (): Codec<RetryTransactionRequest> =>\n buildCodecForObject<RetryTransactionRequest>()\n .property(\"transactionId\", codecForTransactionIdStr())\n .build(\"RetryTransactionRequest\");\n\nexport interface SetWalletDeviceIdRequest {\n /**\n * New wallet device ID to set.\n */\n walletDeviceId: string;\n}\n\nexport const codecForSetWalletDeviceIdRequest =\n (): Codec<SetWalletDeviceIdRequest> =>\n buildCodecForObject<SetWalletDeviceIdRequest>()\n .property(\"walletDeviceId\", codecForString())\n .build(\"SetWalletDeviceIdRequest\");\n\nexport interface WithdrawFakebankRequest {\n amount: AmountString;\n exchange: string;\n bank: string;\n}\n\nexport enum AttentionPriority {\n High = \"high\",\n Medium = \"medium\",\n Low = \"low\",\n}\n\nexport interface UserAttentionByIdRequest {\n entityId: string;\n type: AttentionType;\n}\n\nexport const codecForUserAttentionByIdRequest =\n (): Codec<UserAttentionByIdRequest> =>\n buildCodecForObject<UserAttentionByIdRequest>()\n .property(\"type\", codecForAny())\n .property(\"entityId\", codecForString())\n .build(\"UserAttentionByIdRequest\");\n\nexport const codecForUserAttentionsRequest = (): Codec<UserAttentionsRequest> =>\n buildCodecForObject<UserAttentionsRequest>()\n .property(\n \"priority\",\n codecOptional(\n codecForEither(\n codecForConstString(AttentionPriority.Low),\n codecForConstString(AttentionPriority.Medium),\n codecForConstString(AttentionPriority.High),\n ),\n ),\n )\n .build(\"UserAttentionsRequest\");\n\nexport interface UserAttentionsRequest {\n priority?: AttentionPriority;\n}\n\nexport type AttentionInfo =\n | AttentionKycWithdrawal\n | AttentionBackupUnpaid\n | AttentionBackupExpiresSoon\n | AttentionMerchantRefund\n | AttentionExchangeTosChanged\n | AttentionExchangeKeyExpired\n | AttentionExchangeDenominationExpired\n | AttentionAuditorTosChanged\n | AttentionAuditorKeyExpires\n | AttentionAuditorDenominationExpires\n | AttentionPullPaymentPaid\n | AttentionPushPaymentReceived;\n\nexport enum AttentionType {\n KycWithdrawal = \"kyc-withdrawal\",\n\n BackupUnpaid = \"backup-unpaid\",\n BackupExpiresSoon = \"backup-expires-soon\",\n MerchantRefund = \"merchant-refund\",\n\n ExchangeTosChanged = \"exchange-tos-changed\",\n ExchangeKeyExpired = \"exchange-key-expired\",\n ExchangeKeyExpiresSoon = \"exchange-key-expires-soon\",\n ExchangeDenominationsExpired = \"exchange-denominations-expired\",\n ExchangeDenominationsExpiresSoon = \"exchange-denominations-expires-soon\",\n\n AuditorTosChanged = \"auditor-tos-changed\",\n AuditorKeyExpires = \"auditor-key-expires\",\n AuditorDenominationsExpires = \"auditor-denominations-expires\",\n\n PullPaymentPaid = \"pull-payment-paid\",\n PushPaymentReceived = \"push-payment-withdrawn\",\n}\n\nexport const UserAttentionPriority: {\n [type in AttentionType]: AttentionPriority;\n} = {\n \"kyc-withdrawal\": AttentionPriority.Medium,\n\n \"backup-unpaid\": AttentionPriority.High,\n \"backup-expires-soon\": AttentionPriority.Medium,\n \"merchant-refund\": AttentionPriority.Medium,\n\n \"exchange-tos-changed\": AttentionPriority.Medium,\n\n \"exchange-key-expired\": AttentionPriority.High,\n \"exchange-key-expires-soon\": AttentionPriority.Medium,\n \"exchange-denominations-expired\": AttentionPriority.High,\n \"exchange-denominations-expires-soon\": AttentionPriority.Medium,\n\n \"auditor-tos-changed\": AttentionPriority.Medium,\n \"auditor-key-expires\": AttentionPriority.Medium,\n \"auditor-denominations-expires\": AttentionPriority.Medium,\n\n \"pull-payment-paid\": AttentionPriority.High,\n \"push-payment-withdrawn\": AttentionPriority.High,\n};\n\ninterface AttentionBackupExpiresSoon {\n type: AttentionType.BackupExpiresSoon;\n provider_base_url: string;\n}\ninterface AttentionBackupUnpaid {\n type: AttentionType.BackupUnpaid;\n provider_base_url: string;\n talerUri: string;\n}\n\ninterface AttentionMerchantRefund {\n type: AttentionType.MerchantRefund;\n transactionId: TransactionIdStr;\n}\n\ninterface AttentionKycWithdrawal {\n type: AttentionType.KycWithdrawal;\n transactionId: TransactionIdStr;\n}\n\ninterface AttentionExchangeTosChanged {\n type: AttentionType.ExchangeTosChanged;\n exchange_base_url: string;\n}\ninterface AttentionExchangeKeyExpired {\n type: AttentionType.ExchangeKeyExpired;\n exchange_base_url: string;\n}\ninterface AttentionExchangeDenominationExpired {\n type: AttentionType.ExchangeDenominationsExpired;\n exchange_base_url: string;\n}\ninterface AttentionAuditorTosChanged {\n type: AttentionType.AuditorTosChanged;\n auditor_base_url: string;\n}\n\ninterface AttentionAuditorKeyExpires {\n type: AttentionType.AuditorKeyExpires;\n auditor_base_url: string;\n}\ninterface AttentionAuditorDenominationExpires {\n type: AttentionType.AuditorDenominationsExpires;\n auditor_base_url: string;\n}\ninterface AttentionPullPaymentPaid {\n type: AttentionType.PullPaymentPaid;\n transactionId: TransactionIdStr;\n}\n\ninterface AttentionPushPaymentReceived {\n type: AttentionType.PushPaymentReceived;\n transactionId: TransactionIdStr;\n}\n\nexport type UserAttentionUnreadList = Array<{\n info: AttentionInfo;\n when: TalerPreciseTimestamp;\n read: boolean;\n}>;\n\nexport interface UserAttentionsResponse {\n pending: UserAttentionUnreadList;\n}\n\nexport interface UserAttentionsCountResponse {\n total: number;\n}\n\nexport const codecForWithdrawFakebankRequest =\n (): Codec<WithdrawFakebankRequest> =>\n buildCodecForObject<WithdrawFakebankRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"bank\", codecForString())\n .property(\"exchange\", codecForString())\n .build(\"WithdrawFakebankRequest\");\n\nexport interface ImportDb {\n dump: any;\n}\n\nexport const codecForImportDbRequest = (): Codec<ImportDb> =>\n buildCodecForObject<ImportDb>()\n .property(\"dump\", codecForAny())\n .build(\"ImportDbRequest\");\n\nexport interface ForcedDenomSel {\n denoms: {\n value: AmountString;\n count: number;\n }[];\n}\n\n/**\n * Forced coin selection for deposits/payments.\n */\nexport interface ForcedCoinSel {\n coins: {\n value: AmountString;\n contribution: AmountString;\n }[];\n}\n\nexport interface TestPayResult {\n payCoinSelection: PayCoinSelection;\n}\n\n/**\n * Result of selecting coins, contains the exchange, and selected\n * coins with their denomination.\n */\nexport interface PayCoinSelection {\n /**\n * Amount requested by the merchant.\n */\n paymentAmount: AmountString;\n\n /**\n * Public keys of the coins that were selected.\n */\n coinPubs: string[];\n\n /**\n * Amount that each coin contributes.\n */\n coinContributions: AmountString[];\n\n /**\n * How much of the wire fees is the customer paying?\n */\n customerWireFees: AmountString;\n\n /**\n * How much of the deposit fees is the customer paying?\n */\n customerDepositFees: AmountString;\n}\n\nexport interface CheckPeerPushDebitRequest {\n /**\n * Preferred exchange to use for the p2p payment.\n */\n exchangeBaseUrl?: string;\n\n /**\n * Instructed amount.\n *\n * FIXME: Allow specifying the instructed amount type.\n */\n amount: AmountString;\n}\n\nexport const codecForCheckPeerPushDebitRequest =\n (): Codec<CheckPeerPushDebitRequest> =>\n buildCodecForObject<CheckPeerPushDebitRequest>()\n .property(\"exchangeBaseUrl\", codecOptional(codecForString()))\n .property(\"amount\", codecForAmountString())\n .build(\"CheckPeerPushDebitRequest\");\n\nexport interface CheckPeerPushDebitResponse {\n amountRaw: AmountString;\n amountEffective: AmountString;\n exchangeBaseUrl: string;\n /**\n * Maximum expiration date, based on how close the coins\n * used for the payment are to expiry.\n *\n * The value is based on when the wallet would typically\n * automatically refresh the coins on its own, leaving enough\n * time to get a refund for the push payment and refresh the\n * coin.\n */\n maxExpirationDate: TalerProtocolTimestamp;\n}\n\nexport interface InitiatePeerPushDebitRequest {\n exchangeBaseUrl?: string;\n partialContractTerms: PeerContractTerms;\n}\n\nexport interface InitiatePeerPushDebitResponse {\n exchangeBaseUrl: string;\n pursePub: string;\n mergePriv: string;\n contractPriv: string;\n transactionId: TransactionIdStr;\n}\n\nexport const codecForInitiatePeerPushDebitRequest =\n (): Codec<InitiatePeerPushDebitRequest> =>\n buildCodecForObject<InitiatePeerPushDebitRequest>()\n .property(\"partialContractTerms\", codecForPeerContractTerms())\n .build(\"InitiatePeerPushDebitRequest\");\n\nexport interface PreparePeerPushCreditRequest {\n talerUri: string;\n}\n\nexport interface PreparePeerPullDebitRequest {\n talerUri: string;\n}\n\nexport interface PreparePeerPushCreditResponse {\n contractTerms: PeerContractTerms;\n amountRaw: AmountString;\n amountEffective: AmountString;\n\n transactionId: string;\n\n exchangeBaseUrl: string;\n\n /**\n * @deprecated use transaction ID instead.\n */\n peerPushCreditId: string;\n\n /**\n * @deprecated\n */\n amount: AmountString;\n}\n\nexport interface PreparePeerPullDebitResponse {\n contractTerms: PeerContractTerms;\n /**\n * @deprecated Redundant field with bad name, will be removed soon.\n */\n amount: AmountString;\n\n amountRaw: AmountString;\n amountEffective: AmountString;\n\n peerPullDebitId: string;\n\n transactionId: string;\n}\n\nexport const codecForPreparePeerPushCreditRequest =\n (): Codec<PreparePeerPushCreditRequest> =>\n buildCodecForObject<PreparePeerPushCreditRequest>()\n .property(\"talerUri\", codecForString())\n .build(\"CheckPeerPushPaymentRequest\");\n\nexport const codecForCheckPeerPullPaymentRequest =\n (): Codec<PreparePeerPullDebitRequest> =>\n buildCodecForObject<PreparePeerPullDebitRequest>()\n .property(\"talerUri\", codecForString())\n .build(\"PreparePeerPullDebitRequest\");\n\nexport interface ConfirmPeerPushCreditRequest {\n /**\n * Transparent identifier of the incoming peer push payment.\n *\n * @deprecated specify transactionId instead!\n */\n peerPushCreditId?: string;\n\n transactionId?: string;\n}\nexport interface AcceptPeerPushPaymentResponse {\n transactionId: TransactionIdStr;\n}\n\nexport interface AcceptPeerPullPaymentResponse {\n transactionId: TransactionIdStr;\n}\n\nexport const codecForConfirmPeerPushPaymentRequest =\n (): Codec<ConfirmPeerPushCreditRequest> =>\n buildCodecForObject<ConfirmPeerPushCreditRequest>()\n .property(\"peerPushCreditId\", codecOptional(codecForString()))\n .property(\"transactionId\", codecOptional(codecForString()))\n .build(\"ConfirmPeerPushCreditRequest\");\n\nexport interface ConfirmPeerPullDebitRequest {\n /**\n * Transparent identifier of the incoming peer pull payment.\n *\n * @deprecated use transactionId instead\n */\n peerPullDebitId?: string;\n\n transactionId?: string;\n}\n\nexport interface ApplyDevExperimentRequest {\n devExperimentUri: string;\n}\n\nexport const codecForApplyDevExperiment =\n (): Codec<ApplyDevExperimentRequest> =>\n buildCodecForObject<ApplyDevExperimentRequest>()\n .property(\"devExperimentUri\", codecForString())\n .build(\"ApplyDevExperimentRequest\");\n\nexport const codecForAcceptPeerPullPaymentRequest =\n (): Codec<ConfirmPeerPullDebitRequest> =>\n buildCodecForObject<ConfirmPeerPullDebitRequest>()\n .property(\"peerPullDebitId\", codecOptional(codecForString()))\n .property(\"transactionId\", codecOptional(codecForString()))\n .build(\"ConfirmPeerPullDebitRequest\");\n\nexport interface CheckPeerPullCreditRequest {\n exchangeBaseUrl?: string;\n amount: AmountString;\n}\nexport const codecForPreparePeerPullPaymentRequest =\n (): Codec<CheckPeerPullCreditRequest> =>\n buildCodecForObject<CheckPeerPullCreditRequest>()\n .property(\"amount\", codecForAmountString())\n .property(\"exchangeBaseUrl\", codecOptional(codecForString()))\n .build(\"CheckPeerPullCreditRequest\");\n\nexport interface CheckPeerPullCreditResponse {\n exchangeBaseUrl: string;\n amountRaw: AmountString;\n amountEffective: AmountString;\n\n /**\n * Number of coins that will be used,\n * can be used by the UI to warn if excessively large.\n */\n numCoins: number;\n}\nexport interface InitiatePeerPullCreditRequest {\n exchangeBaseUrl?: string;\n partialContractTerms: PeerContractTerms;\n}\n\nexport const codecForInitiatePeerPullPaymentRequest =\n (): Codec<InitiatePeerPullCreditRequest> =>\n buildCodecForObject<InitiatePeerPullCreditRequest>()\n .property(\"partialContractTerms\", codecForPeerContractTerms())\n .property(\"exchangeBaseUrl\", codecOptional(codecForString()))\n .build(\"InitiatePeerPullCreditRequest\");\n\nexport interface InitiatePeerPullCreditResponse {\n /**\n * Taler URI for the other party to make the payment\n * that was requested.\n *\n * @deprecated since it's not necessarily valid yet until the tx is in the right state\n */\n talerUri: string;\n\n transactionId: TransactionIdStr;\n}\n\n/**\n * Detailed reason for why the wallet's balance is insufficient.\n */\nexport interface PayPeerInsufficientBalanceDetails {\n /**\n * Amount requested by the merchant.\n */\n amountRequested: AmountString;\n\n /**\n * Balance of type \"available\" (see balance.ts for definition).\n */\n balanceAvailable: AmountString;\n\n /**\n * Balance of type \"material\" (see balance.ts for definition).\n */\n balanceMaterial: AmountString;\n\n /**\n * If non-zero, the largest fee gap estimate of an exchange\n * where we would otherwise have enough balance available.\n */\n feeGapEstimate: AmountString;\n\n perExchange: {\n [url: string]: {\n balanceAvailable: AmountString;\n balanceMaterial: AmountString;\n feeGapEstimate: AmountString;\n };\n };\n}\n\nexport interface ValidateIbanRequest {\n iban: string;\n}\n\nexport const codecForValidateIbanRequest = (): Codec<ValidateIbanRequest> =>\n buildCodecForObject<ValidateIbanRequest>()\n .property(\"iban\", codecForString())\n .build(\"ValidateIbanRequest\");\n\nexport interface ValidateIbanResponse {\n valid: boolean;\n}\n\nexport const codecForValidateIbanResponse = (): Codec<ValidateIbanResponse> =>\n buildCodecForObject<ValidateIbanResponse>()\n .property(\"valid\", codecForBoolean())\n .build(\"ValidateIbanResponse\");\n\nexport type TransactionStateFilter = \"nonfinal\";\n\nexport interface TransactionRecordFilter {\n onlyState?: TransactionStateFilter;\n onlyCurrency?: string;\n}\n\nexport interface StoredBackupList {\n storedBackups: {\n name: string;\n }[];\n}\n\nexport interface CreateStoredBackupResponse {\n name: string;\n}\n\nexport interface RecoverStoredBackupRequest {\n name: string;\n}\n\nexport interface DeleteStoredBackupRequest {\n name: string;\n}\n\nexport const codecForDeleteStoredBackupRequest =\n (): Codec<DeleteStoredBackupRequest> =>\n buildCodecForObject<DeleteStoredBackupRequest>()\n .property(\"name\", codecForString())\n .build(\"DeleteStoredBackupRequest\");\n\nexport const codecForRecoverStoredBackupRequest =\n (): Codec<RecoverStoredBackupRequest> =>\n buildCodecForObject<RecoverStoredBackupRequest>()\n .property(\"name\", codecForString())\n .build(\"RecoverStoredBackupRequest\");\n\nexport interface TestingSetTimetravelRequest {\n offsetMs: number;\n}\n\nexport const codecForTestingSetTimetravelRequest =\n (): Codec<TestingSetTimetravelRequest> =>\n buildCodecForObject<TestingSetTimetravelRequest>()\n .property(\"offsetMs\", codecForNumber())\n .build(\"TestingSetTimetravelRequest\");\n\nexport interface AllowedAuditorInfo {\n auditorBaseUrl: string;\n auditorPub: string;\n}\n\nexport interface AllowedExchangeInfo {\n exchangeBaseUrl: string;\n exchangePub: string;\n}\n\n/**\n * Data extracted from the contract terms that is relevant for payment\n * processing in the wallet.\n */\nexport interface WalletContractData {\n /**\n * Fulfillment URL, or the empty string if the order has no fulfillment URL.\n *\n * Stored as a non-nullable string as we use this field for IndexedDB indexing.\n */\n fulfillmentUrl: string;\n\n contractTermsHash: string;\n fulfillmentMessage?: string;\n fulfillmentMessageI18n?: InternationalizedString;\n merchantSig: string;\n merchantPub: string;\n merchant: MerchantInfo;\n amount: AmountString;\n orderId: string;\n merchantBaseUrl: string;\n summary: string;\n summaryI18n: { [lang_tag: string]: string } | undefined;\n autoRefund: TalerProtocolDuration | undefined;\n maxWireFee: AmountString;\n wireFeeAmortization: number;\n payDeadline: TalerProtocolTimestamp;\n refundDeadline: TalerProtocolTimestamp;\n allowedExchanges: AllowedExchangeInfo[];\n timestamp: TalerProtocolTimestamp;\n wireMethod: string;\n wireInfoHash: string;\n maxDepositFee: AmountString;\n minimumAge?: number;\n}\n\nexport interface TestingWaitTransactionRequest {\n transactionId: string;\n txState: TransactionState;\n}\n\nexport interface WithdrawalExchangeAccountDetails {\n /**\n * Payto URI to credit the exchange.\n *\n * Depending on whether the (manual!) withdrawal is accepted or just\n * being checked, this already includes the subject with the\n * reserve public key.\n */\n paytoUri: string;\n\n /**\n * Status that indicates whether the account can be used\n * by the user to send funds for a withdrawal.\n *\n * ok: account should be shown to the user\n * error: account should not be shown to the user, UIs might render the error (in conversionError),\n * especially in dev mode.\n */\n status: \"ok\" | \"error\";\n\n /**\n * Transfer amount. Might be in a different currency than the requested\n * amount for withdrawal.\n *\n * Redundant with the amount in paytoUri, just included to avoid parsing.\n *\n * Only included if this account does a currency conversion.\n */\n transferAmount?: AmountString;\n\n /**\n * Currency specification for the external currency.\n *\n * Only included if this account requires a currency conversion.\n */\n currencySpecification?: CurrencySpecification;\n\n /**\n * Further restrictions for sending money to the\n * exchange.\n */\n creditRestrictions?: AccountRestriction[];\n\n /**\n * Error that happened when attempting to request the conversion rate.\n */\n conversionError?: TalerErrorDetail;\n}\n\nexport interface PrepareWithdrawExchangeRequest {\n /**\n * A taler://withdraw-exchange URI.\n */\n talerUri: string;\n}\n\nexport const codecForPrepareWithdrawExchangeRequest =\n (): Codec<PrepareWithdrawExchangeRequest> =>\n buildCodecForObject<PrepareWithdrawExchangeRequest>()\n .property(\"talerUri\", codecForString())\n .build(\"PrepareWithdrawExchangeRequest\");\n\nexport interface PrepareWithdrawExchangeResponse {\n /**\n * Base URL of the exchange that already existed\n * or was ephemerally added as an exchange entry to\n * the wallet.\n */\n exchangeBaseUrl: string;\n\n /**\n * Amount from the taler://withdraw-exchange URI.\n * Only present if specified in the URI.\n */\n amount?: AmountString;\n}\n\nexport interface ExchangeEntryState {\n tosStatus: ExchangeTosStatus;\n exchangeEntryStatus: ExchangeEntryStatus;\n exchangeUpdateStatus: ExchangeUpdateStatus;\n}\n", "// @ts-ignore: no type decl for this library\nimport * as jedLib from \"jed\";\nimport { Logger } from \"./logging.js\";\n\nconst logger = new Logger(\"i18n/index.ts\");\n\nexport let jed: any = undefined;\n\n/**\n * Set up jed library for internationalization,\n * based on browser language settings.\n */\nexport function setupI18n(lang: string, strings: { [s: string]: any }): void {\n lang = lang.replace(\"_\", \"-\");\n\n if (!strings[lang]) {\n strings[lang] = {};\n // logger.warn(`language ${lang} not found, defaulting to source strings`);\n }\n jed = new jedLib.Jed(strings[lang]);\n}\n\n/**\n * Use different translations for testing. Should not be used outside\n * of test cases.\n */\nexport function internalSetStrings(langStrings: any): void {\n jed = new jedLib.Jed(langStrings);\n}\n\ndeclare const __translated: unique symbol;\nexport type TranslatedString = string & { [__translated]: true };\n\n/**\n * Convert template strings to a msgid\n */\nfunction toI18nString(stringSeq: ReadonlyArray<string>): TranslatedString {\n let s = \"\";\n for (let i = 0; i < stringSeq.length; i++) {\n s += stringSeq[i];\n if (i < stringSeq.length - 1) {\n s += `%${i + 1}$s`;\n }\n }\n return s as TranslatedString;\n}\n\n/**\n * Internationalize a string template with arbitrary serialized values.\n */\nexport function singular(\n stringSeq: TemplateStringsArray,\n ...values: any[]\n): TranslatedString {\n const s = toI18nString(stringSeq);\n const tr = jed\n .translate(s)\n .ifPlural(1, s)\n .fetch(...values);\n return tr;\n}\n\n/**\n * Internationalize a string template without serializing\n */\nexport function translate(\n stringSeq: TemplateStringsArray,\n ...values: any[]\n): TranslatedString[] {\n const s = toI18nString(stringSeq);\n if (!s) return [];\n const translation: TranslatedString = jed.ngettext(s, s, 1);\n return replacePlaceholderWithValues(translation, values);\n}\n\n/**\n * Internationalize a string template without serializing\n */\nexport function Translate({\n children,\n debug,\n}: {\n children: any;\n debug?: boolean;\n}): any {\n const c = [].concat(children);\n const s = stringifyArray(c);\n if (!s) return [];\n const translation: TranslatedString = jed.ngettext(s, s, 1);\n if (debug) {\n console.log(\"looking for \", s, \"got\", translation);\n }\n return replacePlaceholderWithValues(translation, c);\n}\n\n/**\n * Get an internationalized string (based on the globally set, current language)\n * from a JSON object. Fall back to the default language of the JSON object\n * if no match exists.\n */\nexport function getJsonI18n<K extends string>(\n obj: Record<K, string>,\n key: K,\n): string {\n return obj[key];\n}\n\nexport function getTranslatedArray(array: Array<any>) {\n const s = stringifyArray(array);\n const translation: TranslatedString = jed.ngettext(s, s, 1);\n return replacePlaceholderWithValues(translation, array);\n}\n\nfunction replacePlaceholderWithValues(\n translation: TranslatedString,\n childArray: Array<any>,\n): Array<any> {\n const tr = translation.split(/%(\\d+)\\$s/);\n // const childArray = toChildArray(children);\n // Merge consecutive string children.\n const placeholderChildren = [];\n for (let i = 0; i < childArray.length; i++) {\n const x = childArray[i];\n if (x === undefined) {\n continue;\n } else if (typeof x === \"string\") {\n continue;\n } else {\n placeholderChildren.push(x);\n }\n }\n const result = [];\n for (let i = 0; i < tr.length; i++) {\n if (i % 2 == 0) {\n // Text\n result.push(tr[i]);\n } else {\n const childIdx = Number.parseInt(tr[i]) - 1;\n result.push(placeholderChildren[childIdx]);\n }\n }\n return result;\n}\n\nfunction stringifyArray(children: Array<any>): string {\n let n = 1;\n const ss = children.map((c) => {\n if (typeof c === \"string\") {\n return c;\n }\n return `%${n++}$s`;\n });\n const s = ss.join(\"\").replace(/ +/g, \" \").trim();\n return s;\n}\n\nexport const i18n = {\n str: singular,\n singular,\n Translate,\n translate,\n};\n", "/*\n This file is part of GNU Taler\n (C) 2021 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Functional programming utilities.\n */\nexport namespace fnutil {\n export function all<T>(arr: T[], f: (x: T) => boolean): boolean {\n for (const x of arr) {\n if (!f(x)) {\n return false;\n }\n }\n return true;\n }\n\n export function any<T>(arr: T[], f: (x: T) => boolean): boolean {\n for (const x of arr) {\n if (f(x)) {\n return true;\n }\n }\n return false;\n }\n}\n", "/**\n * Hypertext Transfer Protocol (HTTP) response status codes.\n *\n * @see {@link https://en.wikipedia.org/wiki/List_of_HTTP_status_codes}\n */\nexport enum HttpStatusCode {\n /**\n * The server has received the request headers and the client should proceed to send the request body\n * (in the case of a request for which a body needs to be sent; for example, a POST request).\n * Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient.\n * To have a server check the request's headers, a client must send Expect: 100-continue as a header in its initial request\n * and receive a 100 Continue status code in response before sending the body. The response 417 Expectation Failed indicates the request should not be continued.\n */\n Continue = 100,\n\n /**\n * The requester has asked the server to switch protocols and the server has agreed to do so.\n */\n SwitchingProtocols = 101,\n\n /**\n * A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request.\n * This code indicates that the server has received and is processing the request, but no response is available yet.\n * This prevents the client from timing out and assuming the request was lost.\n */\n Processing = 102,\n\n /**\n * Standard response for successful HTTP requests.\n * The actual response will depend on the request method used.\n * In a GET request, the response will contain an entity corresponding to the requested resource.\n * In a POST request, the response will contain an entity describing or containing the result of the action.\n */\n Ok = 200,\n\n /**\n * The request has been fulfilled, resulting in the creation of a new resource.\n */\n Created = 201,\n\n /**\n * The request has been accepted for processing, but the processing has not been completed.\n * The request might or might not be eventually acted upon, and may be disallowed when processing occurs.\n */\n Accepted = 202,\n\n /**\n * SINCE HTTP/1.1\n * The server is a transforming proxy that received a 200 OK from its origin,\n * but is returning a modified version of the origin's response.\n */\n NonAuthoritativeInformation = 203,\n\n /**\n * The server successfully processed the request and is not returning any content.\n */\n NoContent = 204,\n\n /**\n * The server successfully processed the request, but is not returning any content.\n * Unlike a 204 response, this response requires that the requester reset the document view.\n */\n ResetContent = 205,\n\n /**\n * The server is delivering only part of the resource (byte serving) due to a range header sent by the client.\n * The range header is used by HTTP clients to enable resuming of interrupted downloads,\n * or split a download into multiple simultaneous streams.\n */\n PartialContent = 206,\n\n /**\n * The message body that follows is an XML message and can contain a number of separate response codes,\n * depending on how many sub-requests were made.\n */\n MultiStatus = 207,\n\n /**\n * The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response,\n * and are not being included again.\n */\n AlreadyReported = 208,\n\n /**\n * The server has fulfilled a request for the resource,\n * and the response is a representation of the result of one or more instance-manipulations applied to the current instance.\n */\n ImUsed = 226,\n\n /**\n * Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation).\n * For example, this code could be used to present multiple video format options,\n * to list files with different filename extensions, or to suggest word-sense disambiguation.\n */\n MultipleChoices = 300,\n\n /**\n * This and all future requests should be directed to the given URI.\n */\n MovedPermanently = 301,\n\n /**\n * This is an example of industry practice contradicting the standard.\n * The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect\n * (the original describing phrase was \"Moved Temporarily\"), but popular browsers implemented 302\n * with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307\n * to distinguish between the two behaviours. However, some Web applications and frameworks\n * use the 302 status code as if it were the 303.\n */\n Found = 302,\n\n /**\n * SINCE HTTP/1.1\n * The response to the request can be found under another URI using a GET method.\n * When received in response to a POST (or PUT/DELETE), the client should presume that\n * the server has received the data and should issue a redirect with a separate GET message.\n */\n SeeOther = 303,\n\n /**\n * Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.\n * In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.\n */\n NotModified = 304,\n\n /**\n * SINCE HTTP/1.1\n * The requested resource is available only through a proxy, the address for which is provided in the response.\n * Many HTTP clients (such as Mozilla and Internet Explorer) do not correctly handle responses with this status code, primarily for security reasons.\n */\n UseProxy = 305,\n\n /**\n * No longer used. Originally meant \"Subsequent requests should use the specified proxy.\"\n */\n SwitchProxy = 306,\n\n /**\n * SINCE HTTP/1.1\n * In this case, the request should be repeated with another URI; however, future requests should still use the original URI.\n * In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request.\n * For example, a POST request should be repeated using another POST request.\n */\n TemporaryRedirect = 307,\n\n /**\n * The request and all future requests should be repeated using another URI.\n * 307 and 308 parallel the behaviors of 302 and 301, but do not allow the HTTP method to change.\n * So, for example, submitting a form to a permanently redirected resource may continue smoothly.\n */\n PermanentRedirect = 308,\n\n /**\n * The server cannot or will not process the request due to an apparent client error\n * (e.g., malformed request syntax, too large size, invalid request message framing, or deceptive request routing).\n */\n BadRequest = 400,\n\n /**\n * Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet\n * been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the\n * requested resource. See Basic access authentication and Digest access authentication. 401 semantically means\n * \"unauthenticated\",i.e. the user does not have the necessary credentials.\n */\n Unauthorized = 401,\n\n /**\n * Reserved for future use. The original intention was that this code might be used as part of some form of digital\n * cash or micro payment scheme, but that has not happened, and this code is not usually used.\n * Google Developers API uses this status if a particular developer has exceeded the daily limit on requests.\n */\n PaymentRequired = 402,\n\n /**\n * The request was valid, but the server is refusing action.\n * The user might not have the necessary permissions for a resource.\n */\n Forbidden = 403,\n\n /**\n * The requested resource could not be found but may be available in the future.\n * Subsequent requests by the client are permissible.\n */\n NotFound = 404,\n\n /**\n * A request method is not supported for the requested resource;\n * for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.\n */\n MethodNotAllowed = 405,\n\n /**\n * The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.\n */\n NotAcceptable = 406,\n\n /**\n * The client must first authenticate itself with the proxy.\n */\n ProxyAuthenticationRequired = 407,\n\n /**\n * The server timed out waiting for the request.\n * According to HTTP specifications:\n * \"The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.\"\n */\n RequestTimeout = 408,\n\n /**\n * Indicates that the request could not be processed because of conflict in the request,\n * such as an edit conflict between multiple simultaneous updates.\n */\n Conflict = 409,\n\n /**\n * Indicates that the resource requested is no longer available and will not be available again.\n * This should be used when a resource has been intentionally removed and the resource should be purged.\n * Upon receiving a 410 status code, the client should not request the resource in the future.\n * Clients such as search engines should remove the resource from their indices.\n * Most use cases do not require clients and search engines to purge the resource, and a \"404 Not Found\" may be used instead.\n */\n Gone = 410,\n\n /**\n * The request did not specify the length of its content, which is required by the requested resource.\n */\n LengthRequired = 411,\n\n /**\n * The server does not meet one of the preconditions that the requester put on the request.\n */\n PreconditionFailed = 412,\n\n /**\n * The request is larger than the server is willing or able to process. Previously called \"Request Entity Too Large\".\n */\n PayloadTooLarge = 413,\n\n /**\n * The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request,\n * in which case it should be converted to a POST request.\n * Called \"Request-URI Too Long\" previously.\n */\n UriTooLong = 414,\n\n /**\n * The request entity has a media type which the server or resource does not support.\n * For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.\n */\n UnsupportedMediaType = 415,\n\n /**\n * The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.\n * For example, if the client asked for a part of the file that lies beyond the end of the file.\n * Called \"Requested Range Not Satisfiable\" previously.\n */\n RangeNotSatisfiable = 416,\n\n /**\n * The server cannot meet the requirements of the Expect request-header field.\n */\n ExpectationFailed = 417,\n\n /**\n * This code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol,\n * and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by\n * teapots requested to brew coffee. This HTTP status is used as an Easter egg in some websites, including Google.com.\n */\n IAmATeapot = 418,\n\n /**\n * The request was directed at a server that is not able to produce a response (for example because a connection reuse).\n */\n MisdirectedRequest = 421,\n\n /**\n * The request was well-formed but was unable to be followed due to semantic errors.\n */\n UnprocessableEntity = 422,\n\n /**\n * The resource that is being accessed is locked.\n */\n Locked = 423,\n\n /**\n * The request failed due to failure of a previous request (e.g., a PROPPATCH).\n */\n FailedDependency = 424,\n\n /**\n * The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.\n */\n UpgradeRequired = 426,\n\n /**\n * The origin server requires the request to be conditional.\n * Intended to prevent \"the 'lost update' problem, where a client\n * GETs a resource's state, modifies it, and PUTs it back to the server,\n * when meanwhile a third party has modified the state on the server, leading to a conflict.\"\n */\n PreconditionRequired = 428,\n\n /**\n * The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.\n */\n TooManyRequests = 429,\n\n /**\n * The server is unwilling to process the request because either an individual header field,\n * or all the header fields collectively, are too large.\n */\n RequestHeaderFieldsTooLarge = 431,\n\n /**\n * A server operator has received a legal demand to deny access to a resource or to a set of resources\n * that includes the requested resource. The code 451 was chosen as a reference to the novel Fahrenheit 451.\n */\n UnavailableForLegalReasons = 451,\n\n /**\n * A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.\n */\n InternalServerError = 500,\n\n /**\n * The server either does not recognize the request method, or it lacks the ability to fulfill the request.\n * Usually this implies future availability (e.g., a new feature of a web-service API).\n */\n NotImplemented = 501,\n\n /**\n * The server was acting as a gateway or proxy and received an invalid response from the upstream server.\n */\n BadGateway = 502,\n\n /**\n * The server is currently unavailable (because it is overloaded or down for maintenance).\n * Generally, this is a temporary state.\n */\n ServiceUnavailable = 503,\n\n /**\n * The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.\n */\n GatewayTimeout = 504,\n\n /**\n * The server does not support the HTTP protocol version used in the request\n */\n HttpVersionNotSupported = 505,\n\n /**\n * Transparent content negotiation for the request results in a circular reference.\n */\n VariantAlsoNegotiates = 506,\n\n /**\n * The server is unable to store the representation needed to complete the request.\n */\n InsufficientStorage = 507,\n\n /**\n * The server detected an infinite loop while processing the request.\n */\n LoopDetected = 508,\n\n /**\n * Further extensions to the request are required for the server to fulfill it.\n */\n NotExtended = 510,\n\n /**\n * The client needs to authenticate to gain network access.\n * Intended for use by intercepting proxies used to control access to the network (e.g., \"captive portals\" used\n * to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).\n */\n NetworkAuthenticationRequired = 511,\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Logger } from \"./logging.js\";\nimport { AbsoluteTime } from \"./time.js\";\n\n/**\n * Implementation of token bucket throttling.\n */\n\nconst logger = new Logger(\"RequestThrottler.ts\");\n\n/**\n * Maximum request per second, per origin.\n */\nconst MAX_PER_SECOND = 100;\n\n/**\n * Maximum request per minute, per origin.\n */\nconst MAX_PER_MINUTE = 500;\n\n/**\n * Maximum request per hour, per origin.\n */\nconst MAX_PER_HOUR = 2000;\n\n/**\n * Throttling state for one origin.\n */\nclass OriginState {\n tokensSecond: number = MAX_PER_SECOND;\n tokensMinute: number = MAX_PER_MINUTE;\n tokensHour: number = MAX_PER_HOUR;\n private lastUpdate = AbsoluteTime.now();\n\n private refill(): void {\n const now = AbsoluteTime.now();\n if (AbsoluteTime.cmp(now, this.lastUpdate) < 0) {\n // Did the system time change?\n this.lastUpdate = now;\n return;\n }\n const d = AbsoluteTime.difference(now, this.lastUpdate);\n if (d.d_ms === \"forever\") {\n throw Error(\"assertion failed\");\n }\n this.tokensSecond = Math.min(\n MAX_PER_SECOND,\n this.tokensSecond + d.d_ms / 1000,\n );\n this.tokensMinute = Math.min(\n MAX_PER_MINUTE,\n this.tokensMinute + d.d_ms / 1000 / 60,\n );\n this.tokensHour = Math.min(\n MAX_PER_HOUR,\n this.tokensHour + d.d_ms / 1000 / 60 / 60,\n );\n this.lastUpdate = now;\n }\n\n /**\n * Return true if the request for this origin should be throttled.\n * Otherwise, take a token out of the respective buckets.\n */\n applyThrottle(): boolean {\n this.refill();\n if (this.tokensSecond < 1) {\n logger.warn(\"request throttled (per second limit exceeded)\");\n return true;\n }\n if (this.tokensMinute < 1) {\n logger.warn(\"request throttled (per minute limit exceeded)\");\n return true;\n }\n if (this.tokensHour < 1) {\n logger.warn(\"request throttled (per hour limit exceeded)\");\n return true;\n }\n this.tokensSecond--;\n this.tokensMinute--;\n this.tokensHour--;\n return false;\n }\n}\n\n/**\n * Request throttler, used as a \"last layer of defense\" when some\n * other part of the re-try logic is broken and we're sending too\n * many requests to the same exchange/bank/merchant.\n */\nexport class RequestThrottler {\n private perOriginInfo: { [origin: string]: OriginState } = {};\n\n /**\n * Get the throttling state for an origin, or\n * initialize if no state is associated with the\n * origin yet.\n */\n private getState(origin: string): OriginState {\n const s = this.perOriginInfo[origin];\n if (s) {\n return s;\n }\n const ns = (this.perOriginInfo[origin] = new OriginState());\n return ns;\n }\n\n /**\n * Apply throttling to a request.\n *\n * @returns whether the request should be throttled.\n */\n applyThrottle(requestUrl: string): boolean {\n const origin = new URL(requestUrl).origin;\n return this.getState(origin).applyThrottle();\n }\n\n /**\n * Get the throttle statistics for a particular URL.\n */\n getThrottleStats(requestUrl: string): Record<string, unknown> {\n const origin = new URL(requestUrl).origin;\n const state = this.getState(origin);\n return {\n tokensHour: state.tokensHour,\n tokensMinute: state.tokensMinute,\n tokensSecond: state.tokensSecond,\n maxTokensHour: MAX_PER_HOUR,\n maxTokensMinute: MAX_PER_MINUTE,\n maxTokensSecond: MAX_PER_SECOND,\n };\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019 GNUnet e.V.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Logger } from \"./logging.js\";\nimport { AbsoluteTime, Duration } from \"./time.js\";\n\n/**\n * Implementation of token bucket throttling.\n */\n\n/**\n * Logger.\n */\nconst logger = new Logger(\"OperationThrottler.ts\");\n\n/**\n * Maximum request per second, per origin.\n */\nconst MAX_PER_SECOND = 100;\n\n/**\n * Maximum request per minute, per origin.\n */\nconst MAX_PER_MINUTE = 500;\n\n/**\n * Maximum request per hour, per origin.\n */\nconst MAX_PER_HOUR = 2000;\n\n/**\n * Throttling state for one task.\n */\nclass TaskState {\n tokensSecond: number = MAX_PER_SECOND;\n tokensMinute: number = MAX_PER_MINUTE;\n tokensHour: number = MAX_PER_HOUR;\n lastUpdate = AbsoluteTime.now();\n\n private refill(): void {\n const now = AbsoluteTime.now();\n if (AbsoluteTime.cmp(now, this.lastUpdate) < 0) {\n // Did the system time change?\n this.lastUpdate = now;\n return;\n }\n const d = AbsoluteTime.difference(now, this.lastUpdate);\n if (d.d_ms === \"forever\") {\n throw Error(\"assertion failed\");\n }\n this.tokensSecond = Math.min(\n MAX_PER_SECOND,\n this.tokensSecond + d.d_ms / 1000,\n );\n this.tokensMinute = Math.min(\n MAX_PER_MINUTE,\n this.tokensMinute + d.d_ms / 1000 / 60,\n );\n this.tokensHour = Math.min(\n MAX_PER_HOUR,\n this.tokensHour + d.d_ms / 1000 / 60 / 60,\n );\n this.lastUpdate = now;\n }\n\n /**\n * Return true if the request for this origin should be throttled.\n * Otherwise, take a token out of the respective buckets.\n */\n applyThrottle(): boolean {\n this.refill();\n if (this.tokensSecond < 1) {\n logger.warn(\"request throttled (per second limit exceeded)\");\n return true;\n }\n if (this.tokensMinute < 1) {\n logger.warn(\"request throttled (per minute limit exceeded)\");\n return true;\n }\n if (this.tokensHour < 1) {\n logger.warn(\"request throttled (per hour limit exceeded)\");\n return true;\n }\n this.tokensSecond--;\n this.tokensMinute--;\n this.tokensHour--;\n return false;\n }\n}\n\n/**\n * Request throttler, used as a \"last layer of defense\" when some\n * other part of the re-try logic is broken and we're sending too\n * many requests to the same exchange/bank/merchant.\n */\nexport class TaskThrottler {\n private perTaskInfo: { [taskId: string]: TaskState } = {};\n\n /**\n * Get the throttling state for an origin, or\n * initialize if no state is associated with the\n * origin yet.\n */\n private getState(origin: string): TaskState {\n const s = this.perTaskInfo[origin];\n if (s) {\n return s;\n }\n const ns = (this.perTaskInfo[origin] = new TaskState());\n return ns;\n }\n\n /**\n * Apply throttling to a request.\n *\n * @returns whether the request should be throttled.\n */\n applyThrottle(taskId: string): boolean {\n for (let [k, v] of Object.entries(this.perTaskInfo)) {\n // Remove throttled tasks that haven't seen an update in more than one hour.\n if (\n Duration.cmp(\n AbsoluteTime.difference(v.lastUpdate, AbsoluteTime.now()),\n Duration.fromSpec({ hours: 1 }),\n ) > 1\n ) {\n delete this.perTaskInfo[k];\n }\n }\n return this.getState(taskId).applyThrottle();\n }\n\n /**\n * Get the throttle statistics for a particular URL.\n */\n getThrottleStats(taskId: string): Record<string, unknown> {\n const state = this.getState(taskId);\n return {\n tokensHour: state.tokensHour,\n tokensMinute: state.tokensMinute,\n tokensSecond: state.tokensSecond,\n maxTokensHour: MAX_PER_HOUR,\n maxTokensMinute: MAX_PER_MINUTE,\n maxTokensSecond: MAX_PER_SECOND,\n };\n }\n}\n", "/*\nMIT License\n\nCopyright (c) 2017 Conrad Reuter\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nconst NOOP = () => {};\n\n/**\n * A token that can be passed around to inform consumers of the token that a\n * certain operation has been cancelled.\n */\nclass CancellationToken {\n private _reason: any;\n private _callbacks?: Set<(reason?: any) => void> = new Set();\n\n /**\n * A cancellation token that is already cancelled.\n */\n public static readonly CANCELLED: CancellationToken = new CancellationToken(\n true,\n true,\n );\n\n /**\n * A cancellation token that is never cancelled.\n */\n public static readonly CONTINUE: CancellationToken = new CancellationToken(\n false,\n false,\n );\n\n /**\n * Whether the token has been cancelled.\n */\n public get isCancelled(): boolean {\n return this._isCancelled;\n }\n\n /**\n * Whether the token can be cancelled.\n */\n public get canBeCancelled(): boolean {\n return this._canBeCancelled;\n }\n\n /**\n * Why this token has been cancelled.\n */\n public get reason(): any {\n if (this.isCancelled) {\n return this._reason;\n } else {\n throw new Error(\"This token is not cancelled.\");\n }\n }\n\n /**\n * Make a promise that resolves when the async operation resolves,\n * or rejects when the operation is rejected or this token is cancelled.\n */\n public racePromise<T>(asyncOperation: Promise<T>): Promise<T> {\n if (!this.canBeCancelled) {\n return asyncOperation;\n }\n return new Promise<T>((resolve, reject) => {\n // we could use Promise.finally here as soon as it's implemented in the major browsers\n const unregister = this.onCancelled((reason) =>\n reject(new CancellationToken.CancellationError(reason)),\n );\n asyncOperation.then(\n (value) => {\n resolve(value);\n unregister();\n },\n (err) => {\n reject(err);\n unregister();\n },\n );\n });\n }\n\n /**\n * Throw a {CancellationToken.CancellationError} if this token is cancelled.\n */\n public throwIfCancelled(): void {\n if (this._isCancelled) {\n throw new CancellationToken.CancellationError(this._reason);\n }\n }\n\n /**\n * Invoke the callback when this token is cancelled.\n * If this token is already cancelled, the callback is invoked immediately.\n * Returns a function that unregisters the cancellation callback.\n */\n public onCancelled(cb: (reason?: any) => void): () => void {\n if (!this.canBeCancelled) {\n return NOOP;\n }\n if (this.isCancelled) {\n cb(this.reason);\n return NOOP;\n }\n\n /* istanbul ignore next */\n this._callbacks?.add(cb);\n return () => this._callbacks?.delete(cb);\n }\n\n private constructor(\n /**\n * Whether the token is already cancelled.\n */\n private _isCancelled: boolean,\n /**\n * Whether the token can be cancelled.\n */\n private _canBeCancelled: boolean,\n ) {}\n\n /**\n * Create a {CancellationTokenSource}.\n */\n public static create(): CancellationToken.Source {\n const token = new CancellationToken(false, true);\n\n const cancel = (reason?: any) => {\n if (token._isCancelled) return;\n token._isCancelled = true;\n token._reason = reason;\n token._callbacks?.forEach((cb) => cb(reason));\n dispose();\n };\n\n const dispose = () => {\n token._canBeCancelled = token.isCancelled;\n delete token._callbacks; // release memory\n };\n\n return { token, cancel, dispose };\n }\n\n /**\n * Create a {CancellationTokenSource}.\n * The token will be cancelled automatically after the specified timeout in milliseconds.\n */\n public static timeout(ms: number): CancellationToken.Source {\n const {\n token,\n cancel: originalCancel,\n dispose: originalDispose,\n } = CancellationToken.create();\n\n let timer: NodeJS.Timeout | null;\n timer = setTimeout(() => originalCancel(CancellationToken.timeout), ms);\n const disposeTimer = () => {\n if (timer == null) return;\n clearTimeout(timer);\n timer = null;\n };\n\n const cancel = (reason?: any) => {\n disposeTimer();\n originalCancel(reason);\n };\n\n /* istanbul ignore next */\n const dispose = () => {\n disposeTimer();\n originalDispose();\n };\n\n return { token, cancel, dispose };\n }\n\n /**\n * Create a {CancellationToken} that is cancelled when all of the given tokens are cancelled.\n *\n * This is like {Promise<T>.all} for {CancellationToken}s.\n */\n public static all(...tokens: CancellationToken[]): CancellationToken {\n // If *any* of the tokens cannot be cancelled, then the token we return can never be.\n if (tokens.some((token) => !token.canBeCancelled)) {\n return CancellationToken.CONTINUE;\n }\n\n const combined = CancellationToken.create();\n let countdown = tokens.length;\n const handleNextTokenCancelled = () => {\n if (--countdown === 0) {\n const reasons = tokens.map((token) => token._reason);\n combined.cancel(reasons);\n }\n };\n tokens.forEach((token) => token.onCancelled(handleNextTokenCancelled));\n return combined.token;\n }\n\n /**\n * Create a {CancellationToken} that is cancelled when at least one of the given tokens is cancelled.\n *\n * This is like {Promise<T>.race} for {CancellationToken}s.\n */\n public static race(...tokens: CancellationToken[]): CancellationToken {\n // If *any* of the tokens is already cancelled, immediately return that token.\n for (const token of tokens) {\n if (token._isCancelled) {\n return token;\n }\n }\n\n const combined = CancellationToken.create();\n let unregistrations: (() => void)[];\n const handleAnyTokenCancelled = (reason?: any) => {\n unregistrations.forEach((unregister) => unregister()); // release memory\n combined.cancel(reason);\n };\n unregistrations = tokens.map((token) =>\n token.onCancelled(handleAnyTokenCancelled),\n );\n return combined.token;\n }\n}\n\n/* istanbul ignore next */\nnamespace CancellationToken {\n /**\n * Provides a {CancellationToken}, along with some methods to operate on it.\n */\n export interface Source {\n /**\n * The token provided by this source.\n */\n token: CancellationToken;\n\n /**\n * Cancel the provided token with the given reason.\n * Do nothing if the provided token cannot be cancelled or is already cancelled.\n */\n cancel(reason?: any): void;\n\n /**\n * Dispose of the token and this source and release memory.\n */\n dispose(): void;\n }\n\n /**\n * The error that is thrown when a {CancellationToken} has been cancelled and a\n * consumer of the token calls {CancellationToken.throwIfCancelled} on it.\n */\n export class CancellationError extends Error {\n public constructor(\n /**\n * The reason why the token was cancelled.\n */\n public readonly reason: any,\n ) {\n super(\"Operation cancelled\");\n Object.setPrototypeOf(this, CancellationError.prototype);\n }\n }\n}\n\nexport { CancellationToken };\n", "/*\n This file is part of GNU Taler\n (C) 2021 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { canonicalJson } from \"./helpers.js\";\nimport { Logger } from \"./logging.js\";\nimport {\n decodeCrock,\n encodeCrock,\n getRandomBytes,\n hash,\n kdf,\n stringToBytes,\n} from \"./taler-crypto.js\";\n\nconst logger = new Logger(\"contractTerms.ts\");\n\nexport namespace ContractTermsUtil {\n export function forgetAllImpl(\n anyJson: any,\n path: string[],\n pred: PathPredicate,\n ): any {\n const dup = JSON.parse(JSON.stringify(anyJson));\n if (Array.isArray(dup)) {\n for (let i = 0; i < dup.length; i++) {\n dup[i] = forgetAllImpl(dup[i], [...path, `${i}`], pred);\n }\n } else if (typeof dup === \"object\" && dup != null) {\n if (typeof dup.$forgettable === \"object\") {\n for (const x of Object.keys(dup.$forgettable)) {\n if (!pred([...path, x])) {\n continue;\n }\n if (!dup.$forgotten) {\n dup.$forgotten = {};\n }\n if (!dup.$forgotten[x]) {\n const membValCanon = stringToBytes(\n canonicalJson(scrub(dup[x])) + \"\\0\",\n );\n const membSalt = stringToBytes(dup.$forgettable[x] + \"\\0\");\n const h = kdf(64, membValCanon, membSalt, new Uint8Array([]));\n dup.$forgotten[x] = encodeCrock(h);\n }\n delete dup[x];\n delete dup.$forgettable[x];\n }\n if (Object.keys(dup.$forgettable).length === 0) {\n delete dup.$forgettable;\n }\n }\n for (const x of Object.keys(dup)) {\n if (x.startsWith(\"$\")) {\n continue;\n }\n dup[x] = forgetAllImpl(dup[x], [...path, x], pred);\n }\n }\n return dup;\n }\n\n export type PathPredicate = (path: string[]) => boolean;\n\n /**\n * Scrub all forgettable members from an object.\n */\n export function scrub(anyJson: any): any {\n return forgetAllImpl(anyJson, [], () => true);\n }\n\n /**\n * Recursively forget all forgettable members of an object,\n * where the path matches a predicate.\n */\n export function forgetAll(anyJson: any, pred: PathPredicate): any {\n return forgetAllImpl(anyJson, [], pred);\n }\n\n /**\n * Generate a salt for all members marked as forgettable,\n * but which don't have an actual salt yet.\n */\n export function saltForgettable(anyJson: any): any {\n const dup = JSON.parse(JSON.stringify(anyJson));\n if (Array.isArray(dup)) {\n for (let i = 0; i < dup.length; i++) {\n dup[i] = saltForgettable(dup[i]);\n }\n } else if (typeof dup === \"object\" && dup !== null) {\n if (typeof dup.$forgettable === \"object\") {\n for (const k of Object.keys(dup.$forgettable)) {\n if (dup.$forgettable[k] === true) {\n dup.$forgettable[k] = encodeCrock(getRandomBytes(32));\n }\n }\n }\n for (const x of Object.keys(dup)) {\n if (x.startsWith(\"$\")) {\n continue;\n }\n dup[x] = saltForgettable(dup[x]);\n }\n }\n return dup;\n }\n\n const nameRegex = /^[0-9A-Za-z_]+$/;\n\n /**\n * Check that the given JSON object is well-formed with regards\n * to forgettable fields and other restrictions for forgettable JSON.\n */\n export function validateForgettable(anyJson: any): boolean {\n if (typeof anyJson === \"string\") {\n return true;\n }\n if (typeof anyJson === \"number\") {\n return (\n Number.isInteger(anyJson) &&\n anyJson >= Number.MIN_SAFE_INTEGER &&\n anyJson <= Number.MAX_SAFE_INTEGER\n );\n }\n if (typeof anyJson === \"boolean\") {\n return true;\n }\n if (anyJson === null) {\n return true;\n }\n if (Array.isArray(anyJson)) {\n return anyJson.every((x) => validateForgettable(x));\n }\n if (typeof anyJson === \"object\") {\n for (const k of Object.keys(anyJson)) {\n if (k.match(nameRegex)) {\n if (validateForgettable(anyJson[k])) {\n continue;\n } else {\n return false;\n }\n }\n if (k === \"$forgettable\") {\n const fga = anyJson.$forgettable;\n if (!fga || typeof fga !== \"object\") {\n return false;\n }\n for (const fk of Object.keys(fga)) {\n if (!fk.match(nameRegex)) {\n return false;\n }\n if (!(fk in anyJson)) {\n return false;\n }\n const fv = anyJson.$forgettable[fk];\n if (typeof fv !== \"string\") {\n return false;\n }\n }\n } else if (k === \"$forgotten\") {\n const fgo = anyJson.$forgotten;\n if (!fgo || typeof fgo !== \"object\") {\n return false;\n }\n for (const fk of Object.keys(fgo)) {\n if (!fk.match(nameRegex)) {\n return false;\n }\n // Check that the value has actually been forgotten.\n if (fk in anyJson) {\n return false;\n }\n const fv = anyJson.$forgotten[fk];\n if (typeof fv !== \"string\") {\n return false;\n }\n try {\n const decFv = decodeCrock(fv);\n if (decFv.length != 64) {\n return false;\n }\n } catch (e) {\n return false;\n }\n // Check that salt has been deleted after forgetting.\n if (anyJson.$forgettable?.[k] !== undefined) {\n return false;\n }\n }\n } else {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n\n /**\n * Check that no forgettable information has been forgotten.\n *\n * Must only be called on an object already validated with validateForgettable.\n */\n export function validateNothingForgotten(contractTerms: any): boolean {\n throw Error(\"not implemented yet\");\n }\n\n /**\n * Hash a contract terms object. Forgettable fields\n * are scrubbed and JSON canonicalization is applied\n * before hashing.\n */\n export function hashContractTerms(contractTerms: unknown): string {\n const cleaned = scrub(contractTerms);\n const canon = canonicalJson(cleaned) + \"\\0\";\n const bytes = stringToBytes(canon);\n return encodeCrock(hash(bytes));\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2019-2020 Taler Systems SA\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Classes and helpers for error handling specific to wallet operations.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\n/**\n * Imports.\n */\nimport {\n AbsoluteTime,\n PayMerchantInsufficientBalanceDetails,\n PayPeerInsufficientBalanceDetails,\n TalerErrorCode,\n TalerErrorDetail,\n TransactionType,\n} from \"@gnu-taler/taler-util\";\n\ntype empty = Record<string, never>;\n\nexport interface DetailsMap {\n [TalerErrorCode.WALLET_PENDING_OPERATION_FAILED]: {\n innerError: TalerErrorDetail;\n transactionId?: string;\n };\n [TalerErrorCode.WALLET_EXCHANGE_DENOMINATIONS_INSUFFICIENT]: {\n exchangeBaseUrl: string;\n };\n [TalerErrorCode.WALLET_EXCHANGE_PROTOCOL_VERSION_INCOMPATIBLE]: {\n exchangeProtocolVersion: string;\n walletProtocolVersion: string;\n };\n [TalerErrorCode.WALLET_WITHDRAWAL_OPERATION_ABORTED_BY_BANK]: empty;\n [TalerErrorCode.WALLET_REWARD_COIN_SIGNATURE_INVALID]: empty;\n [TalerErrorCode.WALLET_ORDER_ALREADY_CLAIMED]: {\n orderId: string;\n claimUrl: string;\n };\n [TalerErrorCode.WALLET_ORDER_ALREADY_PAID]: {\n orderId: string;\n fulfillmentUrl: string;\n };\n [TalerErrorCode.WALLET_CONTRACT_TERMS_MALFORMED]: empty;\n [TalerErrorCode.WALLET_CONTRACT_TERMS_SIGNATURE_INVALID]: {\n merchantPub: string;\n orderId: string;\n };\n [TalerErrorCode.WALLET_CONTRACT_TERMS_BASE_URL_MISMATCH]: {\n baseUrlForDownload: string;\n baseUrlFromContractTerms: string;\n };\n [TalerErrorCode.WALLET_INVALID_TALER_PAY_URI]: {\n talerPayUri: string;\n };\n [TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR]: {\n requestUrl: string;\n requestMethod: string;\n httpStatusCode: number;\n errorResponse?: any;\n };\n [TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION]: {\n stack?: string;\n };\n [TalerErrorCode.WALLET_BANK_INTEGRATION_PROTOCOL_VERSION_INCOMPATIBLE]: {\n bankProtocolVersion: string;\n walletProtocolVersion: string;\n };\n [TalerErrorCode.WALLET_CORE_API_OPERATION_UNKNOWN]: {\n operation: string;\n };\n [TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED]: {\n requestUrl: string;\n requestMethod: string;\n throttleStats: Record<string, unknown>;\n };\n [TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT]: {\n requestUrl: string;\n requestMethod: string;\n timeoutMs: number;\n };\n [TalerErrorCode.WALLET_NETWORK_ERROR]: {\n requestUrl: string;\n requestMethod: string;\n };\n [TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE]: {\n requestUrl: string;\n requestMethod: string;\n httpStatusCode: number;\n validationError?: string;\n /**\n * Content type of the response, usually only specified if not the\n * expected content type.\n */\n contentType?: string;\n };\n [TalerErrorCode.WALLET_EXCHANGE_COIN_SIGNATURE_INVALID]: empty;\n [TalerErrorCode.WALLET_WITHDRAWAL_GROUP_INCOMPLETE]: {\n numErrors: number;\n errorsPerCoin: Record<number, TalerErrorDetail>;\n };\n [TalerErrorCode.WALLET_CORE_NOT_AVAILABLE]: empty;\n [TalerErrorCode.GENERIC_UNEXPECTED_REQUEST_ERROR]: {\n httpStatusCode: number;\n };\n [TalerErrorCode.WALLET_PAY_MERCHANT_SERVER_ERROR]: {\n requestError: TalerErrorDetail;\n };\n [TalerErrorCode.WALLET_CRYPTO_WORKER_ERROR]: {\n innerError: TalerErrorDetail;\n };\n [TalerErrorCode.WALLET_CRYPTO_WORKER_BAD_REQUEST]: {\n detail: string;\n };\n [TalerErrorCode.WALLET_WITHDRAWAL_KYC_REQUIRED]: {\n kycUrl: string;\n };\n [TalerErrorCode.WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE]: {\n insufficientBalanceDetails: PayMerchantInsufficientBalanceDetails;\n };\n [TalerErrorCode.WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE]: {\n insufficientBalanceDetails: PayPeerInsufficientBalanceDetails;\n };\n [TalerErrorCode.WALLET_REFRESH_GROUP_INCOMPLETE]: {\n numErrors: number;\n /**\n * Errors, can be truncated.\n */\n errors: TalerErrorDetail[];\n };\n [TalerErrorCode.WALLET_EXCHANGE_BASE_URL_MISMATCH]: {\n urlWallet: string;\n urlExchange: string;\n };\n}\n\ntype ErrBody<Y> = Y extends keyof DetailsMap ? DetailsMap[Y] : empty;\n\nexport function makeErrorDetail<C extends TalerErrorCode>(\n code: C,\n detail: ErrBody<C>,\n hint?: string,\n): TalerErrorDetail {\n if (!hint && !(detail as any).hint) {\n hint = getDefaultHint(code);\n }\n const when = AbsoluteTime.now();\n return { code, when, hint, ...detail };\n}\n\nexport function makePendingOperationFailedError(\n innerError: TalerErrorDetail,\n tag: TransactionType,\n uid: string,\n): TalerError {\n return TalerError.fromDetail(TalerErrorCode.WALLET_PENDING_OPERATION_FAILED, {\n innerError,\n transactionId: `${tag}:${uid}`,\n });\n}\n\nexport function summarizeTalerErrorDetail(ed: TalerErrorDetail): string {\n const errName = TalerErrorCode[ed.code] ?? \"<unknown>\";\n return `Error (${ed.code}/${errName})`;\n}\n\nfunction getDefaultHint(code: number): string {\n const errName = TalerErrorCode[code];\n if (errName) {\n return `Error (${errName})`;\n } else {\n return `Error (<unknown>)`;\n }\n}\n\nexport class TalerProtocolViolationError extends Error {\n constructor(hint?: string) {\n let msg: string;\n if (hint) {\n msg = `Taler protocol violation error (${hint})`;\n } else {\n msg = `Taler protocol violation error`;\n }\n super(msg);\n Object.setPrototypeOf(this, TalerProtocolViolationError.prototype);\n }\n}\n\n// compute a subset of TalerError, just for http request\ntype HttpErrors =\n | TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT\n | TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED\n | TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE\n | TalerErrorCode.WALLET_NETWORK_ERROR\n | TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR;\n\ntype TalerHttpErrorsDetails = {\n [code in HttpErrors]: TalerError<DetailsMap[code]>;\n};\n\nexport type TalerHttpError =\n TalerHttpErrorsDetails[keyof TalerHttpErrorsDetails];\n\nexport class TalerError<T = any> extends Error {\n errorDetail: TalerErrorDetail & T;\n private constructor(d: TalerErrorDetail & T) {\n super(d.hint ?? `Error (code ${d.code})`);\n this.errorDetail = d;\n Object.setPrototypeOf(this, TalerError.prototype);\n }\n\n static fromDetail<C extends TalerErrorCode>(\n code: C,\n detail: ErrBody<C>,\n hint?: string,\n ): TalerError {\n if (!hint) {\n hint = getDefaultHint(code);\n }\n const when = AbsoluteTime.now();\n return new TalerError<unknown>({ code, when, hint, ...detail });\n }\n\n static fromUncheckedDetail(d: TalerErrorDetail): TalerError {\n return new TalerError<unknown>({ ...d });\n }\n\n static fromException(e: any): TalerError {\n const errDetail = getErrorDetailFromException(e);\n return new TalerError(errDetail);\n }\n\n hasErrorCode<C extends keyof DetailsMap>(\n code: C,\n ): this is TalerError<DetailsMap[C]> {\n return this.errorDetail.code === code;\n }\n}\n\n/**\n * Convert an exception (or anything that was thrown) into\n * a TalerErrorDetail object.\n */\nexport function getErrorDetailFromException(e: any): TalerErrorDetail {\n if (e instanceof TalerError) {\n return e.errorDetail;\n }\n if (e instanceof Error) {\n const err = makeErrorDetail(\n TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION,\n {\n stack: e.stack,\n },\n `unexpected exception (message: ${e.message})`,\n );\n return err;\n }\n // Something was thrown that is not even an exception!\n // Try to stringify it.\n let excString: string;\n try {\n excString = e.toString();\n } catch (e) {\n // Something went horribly wrong.\n excString = \"can't stringify exception\";\n }\n const err = makeErrorDetail(\n TalerErrorCode.WALLET_UNEXPECTED_EXCEPTION,\n {},\n `unexpected exception (not an exception, ${excString})`,\n );\n return err;\n}\n\nexport function assertUnreachable(x: never): never {\n throw new Error(\"Didn't expect to get here\");\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * IBAN validation.\n *\n * Currently only validates the checksum.\n *\n * It does not validate:\n * - Country-specific length\n * - Country-specific checksums\n *\n * The country list is also not complete.\n *\n * @author Florian Dold <dold@taler.net>\n */\n\nexport type IbanValidationResult =\n | { type: \"invalid\" }\n | {\n type: \"valid\";\n normalizedIban: string;\n };\n\nexport interface IbanCountryInfo {\n name: string;\n isSepa?: boolean;\n length?: number;\n}\n\n/**\n * Incomplete list, see https://www.swift.com/resource/iban-registry-pdf\n */\nexport const ibanCountryInfoTable: Record<string, IbanCountryInfo> = {\n AE: { name: \"U.A.E.\" },\n AF: { name: \"Afghanistan\" },\n AL: { name: \"Albania\" },\n AM: { name: \"Armenia\" },\n AN: { name: \"Netherlands Antilles\" },\n AR: { name: \"Argentina\" },\n AT: { name: \"Austria\" },\n AU: { name: \"Australia\" },\n AZ: { name: \"Azerbaijan\" },\n BA: { name: \"Bosnia and Herzegovina\" },\n BD: { name: \"Bangladesh\" },\n BE: { name: \"Belgium\" },\n BG: { name: \"Bulgaria\" },\n BH: { name: \"Bahrain\" },\n BN: { name: \"Brunei Darussalam\" },\n BO: { name: \"Bolivia\" },\n BR: { name: \"Brazil\" },\n BT: { name: \"Bhutan\" },\n BY: { name: \"Belarus\" },\n BZ: { name: \"Belize\" },\n CA: { name: \"Canada\" },\n CG: { name: \"Congo\" },\n CH: { name: \"Switzerland\" },\n CI: { name: \"Cote d'Ivoire\" },\n CL: { name: \"Chile\" },\n CM: { name: \"Cameroon\" },\n CN: { name: \"People's Republic of China\" },\n CO: { name: \"Colombia\" },\n CR: { name: \"Costa Rica\" },\n CS: { name: \"Serbia and Montenegro\" },\n CZ: { name: \"Czech Republic\" },\n DE: { name: \"Germany\" },\n DK: { name: \"Denmark\" },\n DO: { name: \"Dominican Republic\" },\n DZ: { name: \"Algeria\" },\n EC: { name: \"Ecuador\" },\n EE: { name: \"Estonia\" },\n EG: { name: \"Egypt\" },\n ER: { name: \"Eritrea\" },\n ES: { name: \"Spain\" },\n ET: { name: \"Ethiopia\" },\n FI: { name: \"Finland\" },\n FO: { name: \"Faroe Islands\" },\n FR: { name: \"France\" },\n GB: { name: \"United Kingdom\" },\n GD: { name: \"Caribbean\" },\n GE: { name: \"Georgia\" },\n GL: { name: \"Greenland\" },\n GR: { name: \"Greece\" },\n GT: { name: \"Guatemala\" },\n HK: { name: \"Hong Kong S.A.R.\" },\n HN: { name: \"Honduras\" },\n HR: { name: \"Croatia\" },\n HT: { name: \"Haiti\" },\n HU: { name: \"Hungary\" },\n ID: { name: \"Indonesia\" },\n IE: { name: \"Ireland\" },\n IL: { name: \"Israel\" },\n IN: { name: \"India\" },\n IQ: { name: \"Iraq\" },\n IR: { name: \"Iran\" },\n IS: { name: \"Iceland\" },\n IT: { name: \"Italy\" },\n JM: { name: \"Jamaica\" },\n JO: { name: \"Jordan\" },\n JP: { name: \"Japan\" },\n KE: { name: \"Kenya\" },\n KG: { name: \"Kyrgyzstan\" },\n KH: { name: \"Cambodia\" },\n KR: { name: \"South Korea\" },\n KW: { name: \"Kuwait\" },\n KZ: { name: \"Kazakhstan\" },\n LA: { name: \"Laos\" },\n LB: { name: \"Lebanon\" },\n LI: { name: \"Liechtenstein\" },\n LK: { name: \"Sri Lanka\" },\n LT: { name: \"Lithuania\" },\n LU: { name: \"Luxembourg\" },\n LV: { name: \"Latvia\" },\n LY: { name: \"Libya\" },\n MA: { name: \"Morocco\" },\n MC: { name: \"Principality of Monaco\" },\n MD: { name: \"Moldava\" },\n ME: { name: \"Montenegro\" },\n MK: { name: \"Former Yugoslav Republic of Macedonia\" },\n ML: { name: \"Mali\" },\n MM: { name: \"Myanmar\" },\n MN: { name: \"Mongolia\" },\n MO: { name: \"Macau S.A.R.\" },\n MT: { name: \"Malta\" },\n MV: { name: \"Maldives\" },\n MX: { name: \"Mexico\" },\n MY: { name: \"Malaysia\" },\n NG: { name: \"Nigeria\" },\n NI: { name: \"Nicaragua\" },\n NL: { name: \"Netherlands\" },\n NO: { name: \"Norway\" },\n NP: { name: \"Nepal\" },\n NZ: { name: \"New Zealand\" },\n OM: { name: \"Oman\" },\n PA: { name: \"Panama\" },\n PE: { name: \"Peru\" },\n PH: { name: \"Philippines\" },\n PK: { name: \"Islamic Republic of Pakistan\" },\n PL: { name: \"Poland\" },\n PR: { name: \"Puerto Rico\" },\n PT: { name: \"Portugal\" },\n PY: { name: \"Paraguay\" },\n QA: { name: \"Qatar\" },\n RE: { name: \"Reunion\" },\n RO: { name: \"Romania\" },\n RS: { name: \"Serbia\" },\n RU: { name: \"Russia\" },\n RW: { name: \"Rwanda\" },\n SA: { name: \"Saudi Arabia\" },\n SE: { name: \"Sweden\" },\n SG: { name: \"Singapore\" },\n SI: { name: \"Slovenia\" },\n SK: { name: \"Slovak\" },\n SN: { name: \"Senegal\" },\n SO: { name: \"Somalia\" },\n SR: { name: \"Suriname\" },\n SV: { name: \"El Salvador\" },\n SY: { name: \"Syria\" },\n TH: { name: \"Thailand\" },\n TJ: { name: \"Tajikistan\" },\n TM: { name: \"Turkmenistan\" },\n TN: { name: \"Tunisia\" },\n TR: { name: \"Turkey\" },\n TT: { name: \"Trinidad and Tobago\" },\n TW: { name: \"Taiwan\" },\n TZ: { name: \"Tanzania\" },\n UA: { name: \"Ukraine\" },\n US: { name: \"United States\" },\n UY: { name: \"Uruguay\" },\n VA: { name: \"Vatican\" },\n VE: { name: \"Venezuela\" },\n VN: { name: \"Viet Nam\" },\n YE: { name: \"Yemen\" },\n ZA: { name: \"South Africa\" },\n ZW: { name: \"Zimbabwe\" },\n};\n\nlet ccZero = \"0\".charCodeAt(0);\nlet ccNine = \"9\".charCodeAt(0);\nlet ccA = \"A\".charCodeAt(0);\nlet ccZ = \"Z\".charCodeAt(0);\n\n/**\n * Append a IBAN digit(s) based on a char code.\n */\nfunction appendDigit(digits: number[], cc: number): boolean {\n if (cc >= ccZero && cc <= ccNine) {\n digits.push(cc - ccZero);\n } else if (cc >= ccA && cc <= ccZ) {\n const n = cc - ccA + 10;\n digits.push(Math.floor(n / 10) % 10);\n digits.push(n % 10);\n } else {\n return false;\n }\n return true;\n}\n\n/**\n * Compute MOD-97-10 as per ISO/IEC 7064:2003.\n */\nfunction mod97(digits: number[]): number {\n let i = 0;\n let modAccum = 0;\n while (i < digits.length) {\n let n = 0;\n while (n < 9 && i < digits.length) {\n modAccum = modAccum * 10 + digits[i];\n i++;\n n++;\n }\n modAccum = modAccum % 97;\n }\n return modAccum;\n}\n\nexport function validateIban(ibanString: string): IbanValidationResult {\n let myIban = ibanString.toLocaleUpperCase().replace(\" \", \"\");\n let countryCode = myIban.substring(0, 2);\n let countryInfo = ibanCountryInfoTable[countryCode];\n\n if (!countryInfo) {\n return {\n type: \"invalid\",\n };\n }\n\n let digits: number[] = [];\n\n for (let i = 4; i < myIban.length; i++) {\n const cc = myIban.charCodeAt(i);\n if (!appendDigit(digits, cc)) {\n return {\n type: \"invalid\",\n };\n }\n }\n\n for (let i = 0; i < 4; i++) {\n if (!appendDigit(digits, ibanString.charCodeAt(i))) {\n return {\n type: \"invalid\",\n };\n }\n }\n\n const rem = mod97(digits);\n if (rem === 1) {\n return {\n type: \"valid\",\n normalizedIban: myIban,\n };\n } else {\n return {\n type: \"invalid\",\n };\n }\n}\n\nexport function generateIban(countryCode: string, length: number): string {\n let ibanSuffix = \"\";\n let digits: number[] = [];\n\n for (let i = 0; i < length; i++) {\n const cc = ccZero + (Math.floor(Math.random() * 100) % 10);\n appendDigit(digits, cc);\n ibanSuffix += String.fromCharCode(cc);\n }\n\n appendDigit(digits, countryCode.charCodeAt(0));\n appendDigit(digits, countryCode.charCodeAt(1));\n\n // Try using \"00\" as check digits\n appendDigit(digits, ccZero);\n appendDigit(digits, ccZero);\n\n const requiredChecksum = 98 - mod97(digits);\n\n const checkDigit1 = Math.floor(requiredChecksum / 10) % 10;\n const checkDigit2 = requiredChecksum % 10;\n\n return countryCode + checkDigit1 + checkDigit2 + ibanSuffix;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport {\n TransactionType,\n PaymentStatus,\n TransactionMajorState,\n} from \"./transactions-types.js\";\nimport { RefreshReason } from \"./wallet-types.js\";\n\n/**\n * Sample transaction list entries.\n */\nexport const sampleWalletCoreTransactions = [\n {\n type: TransactionType.Payment,\n txState: {\n major: TransactionMajorState.Done,\n },\n amountRaw: \"KUDOS:10\",\n amountEffective: \"KUDOS:10\",\n totalRefundRaw: \"KUDOS:0\",\n totalRefundEffective: \"KUDOS:0\",\n status: PaymentStatus.Paid,\n refundPending: undefined,\n posConfirmation: undefined,\n pending: false,\n refunds: [],\n timestamp: {\n t_s: 1677166045,\n },\n transactionId:\n \"txn:payment:NRRD9KJ8970P5HDAGPW1MBA6HZHB1XMFKF5M3CNR6WA0GT98DHY0\",\n proposalId: \"NRRD9KJ8970P5HDAGPW1MBA6HZHB1XMFKF5M3CNR6WA0GT98DHY0\",\n info: {\n merchant: {\n name: \"woocommerce\",\n website: \"woocommerce.demo.taler.net\",\n email: \"foo@example.com\",\n address: {},\n jurisdiction: {},\n },\n orderId: \"wc_order_KQCRldghIgDRB-100\",\n products: [\n {\n description: \"Using GCC\",\n quantity: 1,\n price: \"KUDOS:10\",\n product_id: \"28\",\n },\n ],\n summary: \"WooTalerShop #100\",\n contractTermsHash:\n \"A02E1M6ARWKBJ87K2TV4S6WQ4X5YH7BRVR6MYCHCTVAED8MBXTFD6PZ5Q50Y7Z5K18PYBTDA14NQ56XPC1VCQW1EVRWTSB7ZYT65B5G\",\n fulfillmentUrl:\n \"https://woocommerce.demo.taler.net/?wc-api=wc_gnutaler_gateway&order_id=wc_order_KQCRldghIgDRB-100\",\n },\n refundQueryActive: false,\n frozen: false,\n },\n {\n type: TransactionType.Refresh,\n txState: {\n major: TransactionMajorState.Pending,\n },\n refreshReason: RefreshReason.PayMerchant,\n amountEffective: \"KUDOS:0\",\n amountRaw: \"KUDOS:0\",\n refreshInputAmount: \"KUDOS:1.5\",\n refreshOutputAmount: \"KUDOS:1.4\",\n originatingTransactionId:\n \"txn:proposal:ZCGBZFE8KZ1CBYYGSC3ZC8E40KVJWV16VYCTHGC8FFSVZ5HD24BG\",\n pending: true,\n timestamp: {\n t_s: 1681376214,\n },\n transactionId:\n \"txn:refresh:QQSWHHXCRQ269G0E3RW14JMC6F7NFDYDW26NSFHRTXSKDS6CMCZ0\",\n frozen: false,\n error: {\n code: 7029,\n when: {\n t_ms: 1681376473665,\n },\n hint: \"Error (WALLET_REFRESH_GROUP_INCOMPLETE)\",\n numErrors: 1,\n errors: [\n {\n code: 7001,\n when: {\n t_ms: 1681376473189,\n },\n hint: \"unexpected exception (message: exchange wire fee signature invalid)\",\n stack:\n \" at validateWireInfo (../taler-wallet-core-qjs.mjs:23166)\\n\",\n },\n ],\n },\n },\n];\n", "/*\n This file is part of GNU Taler\n (C) 2019 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n\n SPDX-License-Identifier: AGPL3.0-or-later\n*/\n\n/**\n * Imports.\n */\nimport {\n HttpRequestLibrary,\n HttpRequestOptions,\n HttpResponse,\n} from \"./http.js\";\n\n/**\n * Implementation of the HTTP request library interface for node.\n */\nexport class HttpLibImpl implements HttpRequestLibrary {\n get(\n url: string,\n opt?: HttpRequestOptions | undefined,\n ): Promise<HttpResponse> {\n throw new Error(\"Method not implemented.\");\n }\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions | undefined,\n ): Promise<HttpResponse> {\n throw new Error(\"Method not implemented.\");\n }\n fetch(\n url: string,\n opt?: HttpRequestOptions | undefined,\n ): Promise<HttpResponse> {\n throw new Error(\"Method not implemented.\");\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n\n SPDX-License-Identifier: AGPL3.0-or-later\n*/\n\nimport type { CancellationToken } from \"./CancellationToken.js\";\nimport { Codec } from \"./codec.js\";\nimport { j2s } from \"./helpers.js\";\nimport {\n TalerError,\n base64FromArrayBuffer,\n makeErrorDetail,\n stringToBytes,\n} from \"./index.js\";\nimport { Logger } from \"./logging.js\";\nimport { TalerErrorCode } from \"./taler-error-codes.js\";\nimport { Duration, AbsoluteTime } from \"./time.js\";\nimport { TalerErrorDetail } from \"./wallet-types.js\";\n\nconst textEncoder = new TextEncoder();\n\nconst logger = new Logger(\"http.ts\");\n\n/**\n * An HTTP response that is returned by all request methods of this library.\n */\nexport interface HttpResponse {\n requestUrl: string;\n requestMethod: string;\n status: number;\n headers: Headers;\n json(): Promise<any>;\n text(): Promise<string>;\n bytes(): Promise<ArrayBuffer>;\n}\n\nexport const DEFAULT_REQUEST_TIMEOUT_MS = 60000;\n\nexport interface HttpRequestOptions {\n method?: \"POST\" | \"PATCH\" | \"PUT\" | \"GET\" | \"DELETE\";\n headers?: { [name: string]: string };\n\n /**\n * Timeout after which the request should be aborted.\n */\n timeout?: Duration;\n\n /**\n * Cancellation token that should abort the request when\n * cancelled.\n */\n cancellationToken?: CancellationToken;\n\n body?: string | ArrayBuffer | object;\n}\n\n/**\n * Headers, roughly modeled after the fetch API's headers object.\n */\nexport class Headers {\n private headerMap = new Map<string, string>();\n\n get(name: string): string | null {\n const r = this.headerMap.get(name.toLowerCase());\n if (r) {\n return r;\n }\n return null;\n }\n\n set(name: string, value: string): void {\n const normalizedName = name.toLowerCase();\n const existing = this.headerMap.get(normalizedName);\n if (existing !== undefined) {\n this.headerMap.set(normalizedName, existing + \",\" + value);\n } else {\n this.headerMap.set(normalizedName, value);\n }\n }\n\n toJSON(): any {\n const m: Record<string, string> = {};\n this.headerMap.forEach((v, k) => (m[k] = v));\n return m;\n }\n}\n\n/**\n * Interface for the HTTP request library used by the wallet.\n *\n * The request library is bundled into an interface to make mocking and\n * request tunneling easy.\n */\nexport interface HttpRequestLibrary {\n /**\n * Make an HTTP GET request.\n *\n * FIXME: Get rid of this, we want the API surface to be minimal.\n *\n * @deprecated use fetch instead\n */\n get(url: string, opt?: HttpRequestOptions): Promise<HttpResponse>;\n\n /**\n * Make an HTTP POST request with a JSON body.\n *\n * FIXME: Get rid of this, we want the API surface to be minimal.\n *\n * @deprecated use fetch instead\n */\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions,\n ): Promise<HttpResponse>;\n\n /**\n * Make an HTTP POST request with a JSON body.\n */\n fetch(url: string, opt?: HttpRequestOptions): Promise<HttpResponse>;\n}\n\ntype TalerErrorResponse = {\n code: number;\n} & unknown;\n\ntype ResponseOrError<T> =\n | { isError: false; response: T }\n | { isError: true; talerErrorResponse: TalerErrorResponse };\n\n/**\n * Read Taler error details from an HTTP response.\n */\nexport async function readTalerErrorResponse(\n httpResponse: HttpResponse,\n): Promise<TalerErrorDetail> {\n const contentType = httpResponse.headers.get(\"content-type\");\n if (contentType !== \"application/json\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n contentType: contentType || \"<null>\",\n },\n \"Error response did not even contain JSON. The request URL might be wrong or the service might be unavailable.\",\n );\n }\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n logger.warn(\n `malformed error response (status ${httpResponse.status}): ${j2s(\n errJson,\n )}`,\n );\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n },\n \"Error response did not contain error code\",\n );\n }\n return errJson;\n}\n\nexport async function readUnexpectedResponseDetails(\n httpResponse: HttpResponse,\n): Promise<TalerErrorDetail> {\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n return makeErrorDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n },\n \"Error response did not contain error code\",\n );\n }\n return makeErrorDetail(\n TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n errorResponse: errJson,\n },\n `Unexpected HTTP status (${httpResponse.status}) in response`,\n );\n}\n\nexport async function readSuccessResponseJsonOrErrorCode<T>(\n httpResponse: HttpResponse,\n codec: Codec<T>,\n): Promise<ResponseOrError<T>> {\n if (!(httpResponse.status >= 200 && httpResponse.status < 300)) {\n return {\n isError: true,\n talerErrorResponse: await readTalerErrorResponse(httpResponse),\n };\n }\n let respJson;\n try {\n respJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from response\",\n );\n }\n let parsedResponse: T;\n try {\n parsedResponse = codec.decode(respJson);\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Response invalid\",\n );\n }\n return {\n isError: false,\n response: parsedResponse,\n };\n}\n\ntype HttpErrorDetails = {\n requestUrl: string;\n requestMethod: string;\n httpStatusCode: number;\n};\n\nexport function getHttpResponseErrorDetails(\n httpResponse: HttpResponse,\n): HttpErrorDetails {\n return {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n };\n}\n\nexport function throwUnexpectedRequestError(\n httpResponse: HttpResponse,\n talerErrorResponse: TalerErrorResponse,\n): never {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n errorResponse: talerErrorResponse,\n },\n `Unexpected HTTP status ${httpResponse.status} in response`,\n );\n}\n\nexport async function readSuccessResponseJsonOrThrow<T>(\n httpResponse: HttpResponse,\n codec: Codec<T>,\n): Promise<T> {\n const r = await readSuccessResponseJsonOrErrorCode(httpResponse, codec);\n if (!r.isError) {\n return r.response;\n }\n throwUnexpectedRequestError(httpResponse, r.talerErrorResponse);\n}\n\nexport async function expectSuccessResponseOrThrow<T>(\n httpResponse: HttpResponse,\n): Promise<void> {\n if (httpResponse.status >= 200 && httpResponse.status <= 299) {\n return;\n }\n const errResp = await readTalerErrorResponse(httpResponse);\n throwUnexpectedRequestError(httpResponse, errResp);\n}\n\nexport async function readSuccessResponseTextOrErrorCode<T>(\n httpResponse: HttpResponse,\n): Promise<ResponseOrError<string>> {\n if (!(httpResponse.status >= 200 && httpResponse.status < 300)) {\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n httpStatusCode: httpResponse.status,\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n },\n \"Error response did not contain error code\",\n );\n }\n return {\n isError: true,\n talerErrorResponse: errJson,\n };\n }\n const respJson = await httpResponse.text();\n return {\n isError: false,\n response: respJson,\n };\n}\n\nexport async function checkSuccessResponseOrThrow(\n httpResponse: HttpResponse,\n): Promise<void> {\n if (!(httpResponse.status >= 200 && httpResponse.status < 300)) {\n let errJson;\n try {\n errJson = await httpResponse.json();\n } catch (e: any) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n httpStatusCode: httpResponse.status,\n validationError: e.toString(),\n },\n \"Couldn't parse JSON format from error response\",\n );\n }\n\n const talerErrorCode = errJson.code;\n if (typeof talerErrorCode !== \"number\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n httpStatusCode: httpResponse.status,\n requestUrl: httpResponse.requestUrl,\n requestMethod: httpResponse.requestMethod,\n },\n \"Error response did not contain error code\",\n );\n }\n throwUnexpectedRequestError(httpResponse, errJson);\n }\n}\n\nexport async function readSuccessResponseTextOrThrow<T>(\n httpResponse: HttpResponse,\n): Promise<string> {\n const r = await readSuccessResponseTextOrErrorCode(httpResponse);\n if (!r.isError) {\n return r.response;\n }\n throwUnexpectedRequestError(httpResponse, r.talerErrorResponse);\n}\n\n/**\n * Get the timestamp at which the response's content is considered expired.\n */\nexport function getExpiry(\n httpResponse: HttpResponse,\n opt: { minDuration?: Duration },\n): AbsoluteTime {\n const expiryDateMs = new Date(\n httpResponse.headers.get(\"expiry\") ?? \"\",\n ).getTime();\n let t: AbsoluteTime;\n if (Number.isNaN(expiryDateMs)) {\n t = AbsoluteTime.now();\n } else {\n t = AbsoluteTime.fromMilliseconds(expiryDateMs);\n }\n if (opt.minDuration) {\n const t2 = AbsoluteTime.addDuration(AbsoluteTime.now(), opt.minDuration);\n return AbsoluteTime.max(t, t2);\n }\n return t;\n}\n\nexport interface HttpLibArgs {\n enableThrottling?: boolean;\n /**\n * Only allow HTTPS connections, not plain http.\n */\n requireTls?: boolean;\n}\n\nexport function encodeBody(body: any): ArrayBuffer {\n if (body == null) {\n return new ArrayBuffer(0);\n }\n if (typeof body === \"string\") {\n return textEncoder.encode(body).buffer;\n } else if (ArrayBuffer.isView(body)) {\n return body.buffer;\n } else if (body instanceof ArrayBuffer) {\n return body;\n } else if (typeof body === \"object\") {\n return textEncoder.encode(JSON.stringify(body)).buffer;\n }\n throw new TypeError(\"unsupported request body type\");\n}\n\nexport function getDefaultHeaders(method: string): Record<string, string> {\n const headers: Record<string, string> = {};\n\n if (method === \"POST\" || method === \"PUT\" || method === \"PATCH\") {\n // Default to JSON if we have a body\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n headers[\"Accept\"] = \"application/json\";\n\n return headers;\n}\n\n/**\n * Helper function to generate the \"Authorization\" HTTP header.\n */\nexport function makeBasicAuthHeader(\n username: string,\n password: string,\n): string {\n const auth = `${username}:${password}`;\n const authEncoded: string = base64FromArrayBuffer(stringToBytes(auth));\n return `Basic ${authEncoded}`;\n}\n", "/*\n This file is part of TALER\n (C) 2016 GNUnet e.V.\n\n TALER is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n TALER is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Helpers for doing XMLHttpRequest-s that are based on ES6 promises.\n * Allows for easy mocking for test cases.\n *\n * The API is inspired by the HTML5 fetch API.\n */\n\n/**\n * Imports\n */\n\nimport * as impl from \"#http-impl\";\nimport * as common from \"./http-common.js\";\n\nexport * from \"./http-common.js\";\n\nexport function createPlatformHttpLib(\n args?: common.HttpLibArgs,\n): common.HttpRequestLibrary {\n return new impl.HttpLibImpl(args);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { codecForAny } from \"./codec.js\";\nimport {\n createPlatformHttpLib,\n expectSuccessResponseOrThrow,\n readSuccessResponseJsonOrThrow,\n} from \"./http.js\";\nimport { FacadeCredentials } from \"./libeufin-api-types.js\";\nimport { Logger } from \"./logging.js\";\nimport {\n MerchantReserveCreateConfirmation,\n codecForMerchantReserveCreateConfirmation,\n TippingReserveStatus,\n MerchantInstancesResponse,\n MerchantPostOrderRequest,\n MerchantPostOrderResponse,\n codecForMerchantPostOrderResponse,\n MerchantOrderPrivateStatusResponse,\n codecForMerchantOrderPrivateStatusResponse,\n RewardCreateRequest,\n RewardCreateConfirmation,\n MerchantTemplateAddDetails,\n} from \"./merchant-api-types.js\";\nimport { AmountString } from \"./taler-types.js\";\nimport { TalerProtocolDuration } from \"./time.js\";\n\nconst logger = new Logger(\"MerchantApiClient.ts\");\n\nexport interface MerchantAuthConfiguration {\n method: \"external\" | \"token\";\n token?: string;\n}\n\n// FIXME: Why do we need this? Describe / fix!\nexport interface PartialMerchantInstanceConfig {\n auth?: MerchantAuthConfiguration;\n id: string;\n name: string;\n paytoUris: string[];\n address?: unknown;\n jurisdiction?: unknown;\n defaultWireTransferDelay?: TalerProtocolDuration;\n defaultPayDelay?: TalerProtocolDuration;\n}\n\nexport interface CreateMerchantTippingReserveRequest {\n // Amount that the merchant promises to put into the reserve\n initial_balance: AmountString;\n\n // Exchange the merchant intends to use for tipping\n exchange_url: string;\n\n // Desired wire method, for example \"iban\" or \"x-taler-bank\"\n wire_method: string;\n}\n\nexport interface DeleteTippingReserveArgs {\n reservePub: string;\n purge?: boolean;\n}\n\ninterface MerchantBankAccount {\n // The payto:// URI where the wallet will send coins.\n payto_uri: string;\n\n // Optional base URL for a facade where the\n // merchant backend can see incoming wire\n // transfers to reconcile its accounting\n // with that of the exchange. Used by\n // taler-merchant-wirewatch.\n credit_facade_url?: string;\n\n // Credentials for accessing the credit facade.\n credit_facade_credentials?: FacadeCredentials;\n}\n\nexport interface MerchantInstanceConfig {\n auth: MerchantAuthConfiguration;\n id: string;\n name: string;\n address: unknown;\n jurisdiction: unknown;\n use_stefan: boolean;\n default_wire_transfer_delay: TalerProtocolDuration;\n default_pay_delay: TalerProtocolDuration;\n}\n\nexport interface PrivateOrderStatusQuery {\n instance?: string;\n orderId: string;\n sessionId?: string;\n}\n\n/**\n * Client for the GNU Taler merchant backend.\n */\nexport class MerchantApiClient {\n /**\n * Base URL for the particular instance that this merchant API client\n * is for.\n */\n private baseUrl: string;\n\n readonly auth: MerchantAuthConfiguration;\n\n constructor(baseUrl: string, auth?: MerchantAuthConfiguration) {\n this.baseUrl = baseUrl;\n\n this.auth = auth ?? {\n method: \"external\",\n };\n }\n\n httpClient = createPlatformHttpLib();\n\n async changeAuth(auth: MerchantAuthConfiguration): Promise<void> {\n const url = new URL(\"private/auth\", this.baseUrl);\n const res = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: auth,\n headers: this.makeAuthHeader(),\n });\n await expectSuccessResponseOrThrow(res);\n }\n\n async deleteTippingReserve(req: DeleteTippingReserveArgs): Promise<void> {\n const url = new URL(`private/reserves/${req.reservePub}`, this.baseUrl);\n if (req.purge) {\n url.searchParams.set(\"purge\", \"YES\");\n }\n const resp = await this.httpClient.fetch(url.href, {\n method: \"DELETE\",\n headers: this.makeAuthHeader(),\n });\n logger.info(`delete status: ${resp.status}`);\n return;\n }\n\n async createTippingReserve(\n req: CreateMerchantTippingReserveRequest,\n ): Promise<MerchantReserveCreateConfirmation> {\n const url = new URL(\"private/reserves\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n const respData = readSuccessResponseJsonOrThrow(\n resp,\n codecForMerchantReserveCreateConfirmation(),\n );\n return respData;\n }\n\n async getPrivateInstanceInfo(): Promise<any> {\n const url = new URL(\"private\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"GET\",\n headers: this.makeAuthHeader(),\n });\n return await resp.json();\n }\n\n async getPrivateTipReserves(): Promise<TippingReserveStatus> {\n const url = new URL(\"private/reserves\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"GET\",\n headers: this.makeAuthHeader(),\n });\n // FIXME: Validate!\n return await resp.json();\n }\n\n async deleteInstance(instanceId: string) {\n const url = new URL(`management/instances/${instanceId}`, this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"DELETE\",\n headers: this.makeAuthHeader(),\n });\n await expectSuccessResponseOrThrow(resp);\n }\n\n async createInstance(req: MerchantInstanceConfig): Promise<void> {\n const url = new URL(\"management/instances\", this.baseUrl);\n await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n }\n\n async getInstances(): Promise<MerchantInstancesResponse> {\n const url = new URL(\"management/instances\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n\n async getInstanceFullDetails(instanceId: string): Promise<any> {\n const url = new URL(`management/instances/${instanceId}`, this.baseUrl);\n try {\n const resp = await this.httpClient.fetch(url.href, {\n headers: this.makeAuthHeader(),\n });\n return resp.json();\n } catch (e) {\n throw e;\n }\n }\n\n async createOrder(\n req: MerchantPostOrderRequest,\n ): Promise<MerchantPostOrderResponse> {\n let url = new URL(\"private/orders\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(\n resp,\n codecForMerchantPostOrderResponse(),\n );\n }\n\n async queryPrivateOrderStatus(\n query: PrivateOrderStatusQuery,\n ): Promise<MerchantOrderPrivateStatusResponse> {\n const reqUrl = new URL(`private/orders/${query.orderId}`, this.baseUrl);\n if (query.sessionId) {\n reqUrl.searchParams.set(\"session_id\", query.sessionId);\n }\n const resp = await this.httpClient.fetch(reqUrl.href, {\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(\n resp,\n codecForMerchantOrderPrivateStatusResponse(),\n );\n }\n\n async giveTip(req: RewardCreateRequest): Promise<RewardCreateConfirmation> {\n const reqUrl = new URL(`private/rewards`, this.baseUrl);\n const resp = await this.httpClient.fetch(reqUrl.href, {\n method: \"POST\",\n body: req,\n });\n // FIXME: validate\n return resp.json();\n }\n\n async queryTippingReserves(): Promise<TippingReserveStatus> {\n const reqUrl = new URL(`private/reserves`, this.baseUrl);\n const resp = await this.httpClient.fetch(reqUrl.href, {\n headers: this.makeAuthHeader(),\n });\n // FIXME: validate\n return resp.json();\n }\n\n async giveRefund(r: {\n instance: string;\n orderId: string;\n amount: string;\n justification: string;\n }): Promise<{ talerRefundUri: string }> {\n const reqUrl = new URL(`private/orders/${r.orderId}/refund`, this.baseUrl);\n const resp = await this.httpClient.fetch(reqUrl.href, {\n method: \"POST\",\n body: {\n refund: r.amount,\n reason: r.justification,\n },\n });\n const respBody = await resp.json();\n return {\n talerRefundUri: respBody.taler_refund_uri,\n };\n }\n\n async createTemplate(req: MerchantTemplateAddDetails) {\n let url = new URL(\"private/templates\", this.baseUrl);\n const resp = await this.httpClient.fetch(url.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n if (resp.status !== 204) {\n throw Error(\"failed to create template\");\n }\n }\n\n private makeAuthHeader(): Record<string, string> {\n switch (this.auth.method) {\n case \"external\":\n return {};\n case \"token\":\n return {\n Authorization: `Bearer ${this.auth.token}`,\n };\n }\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Client for the Taler (demo-)bank.\n */\n\n/**\n * Imports.\n */\nimport {\n AmountString,\n base64FromArrayBuffer,\n buildCodecForObject,\n Codec,\n codecForAny,\n codecForString,\n encodeCrock,\n generateIban,\n getRandomBytes,\n j2s,\n Logger,\n stringToBytes,\n TalerError,\n TalerErrorCode,\n} from \"@gnu-taler/taler-util\";\nimport {\n checkSuccessResponseOrThrow,\n createPlatformHttpLib,\n HttpRequestLibrary,\n readSuccessResponseJsonOrThrow,\n} from \"@gnu-taler/taler-util/http\";\n\nconst logger = new Logger(\"bank-api-client.ts\");\n\nexport enum CreditDebitIndicator {\n Credit = \"credit\",\n Debit = \"debit\",\n}\n\nexport interface BankAccountBalanceResponse {\n balance: {\n amount: AmountString;\n credit_debit_indicator: CreditDebitIndicator;\n };\n}\n\nexport interface BankUser {\n username: string;\n password: string;\n accountPaytoUri: string;\n}\n\nexport interface WithdrawalOperationInfo {\n withdrawal_id: string;\n taler_withdraw_uri: string;\n}\n\n/**\n * Helper function to generate the \"Authorization\" HTTP header.\n */\nfunction makeBasicAuthHeader(username: string, password: string): string {\n const auth = `${username}:${password}`;\n const authEncoded: string = base64FromArrayBuffer(stringToBytes(auth));\n return `Basic ${authEncoded}`;\n}\n\nconst codecForWithdrawalOperationInfo = (): Codec<WithdrawalOperationInfo> =>\n buildCodecForObject<WithdrawalOperationInfo>()\n .property(\"withdrawal_id\", codecForString())\n .property(\"taler_withdraw_uri\", codecForString())\n .build(\"WithdrawalOperationInfo\");\n\nexport interface BankAccessApiClientArgs {\n auth?: { username: string; password: string };\n httpClient?: HttpRequestLibrary;\n}\n\nexport interface BankAccessApiCreateTransactionRequest {\n amount: AmountString;\n paytoUri: string;\n}\n\nexport class WireGatewayApiClientArgs {\n auth?: {\n username: string;\n password: string;\n };\n httpClient?: HttpRequestLibrary;\n}\n\n/**\n * This API look like it belongs to harness\n * but it will be nice to have in utils to be used by others\n */\nexport class WireGatewayApiClient {\n httpLib;\n\n constructor(\n private baseUrl: string,\n private args: WireGatewayApiClientArgs = {},\n ) {\n this.httpLib = args.httpClient ?? createPlatformHttpLib();\n }\n\n private makeAuthHeader(): Record<string, string> {\n const auth = this.args.auth;\n if (auth) {\n return {\n Authorization: makeBasicAuthHeader(auth.username, auth.password),\n };\n }\n return {};\n }\n\n async adminAddIncoming(params: {\n amount: string;\n reservePub: string;\n debitAccountPayto: string;\n }): Promise<void> {\n let url = new URL(`admin/add-incoming`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {\n amount: params.amount,\n reserve_pub: params.reservePub,\n debit_account: params.debitAccountPayto,\n },\n headers: this.makeAuthHeader(),\n });\n logger.info(`add-incoming response status: ${resp.status}`);\n await checkSuccessResponseOrThrow(resp);\n }\n}\n\nexport interface ChallengeContactData {\n // E-Mail address\n email?: string;\n\n // Phone number.\n phone?: string;\n}\n\nexport interface AccountBalance {\n amount: AmountString;\n credit_debit_indicator: \"credit\" | \"debit\";\n}\n\nexport interface RegisterAccountRequest {\n // Username\n username: string;\n\n // Password.\n password: string;\n\n // Legal name of the account owner\n name: string;\n\n // Defaults to false.\n is_public?: boolean;\n\n // Is this a taler exchange account?\n // If true:\n // - incoming transactions to the account that do not\n // have a valid reserve public key are automatically\n // - the account provides the taler-wire-gateway-api endpoints\n // Defaults to false.\n is_taler_exchange?: boolean;\n\n // Addresses where to send the TAN for transactions.\n // Currently only used for cashouts.\n // If missing, cashouts will fail.\n // In the future, might be used for other transactions\n // as well.\n challenge_contact_data?: ChallengeContactData;\n\n // 'payto' address pointing a bank account\n // external to the libeufin-bank.\n // Payments will be sent to this bank account\n // when the user wants to convert the local currency\n // back to fiat currency outside libeufin-bank.\n cashout_payto_uri?: string;\n\n // Internal payto URI of this bank account.\n // Used mostly for testing.\n internal_payto_uri?: string;\n}\n\nexport interface AccountData {\n // Legal name of the account owner.\n name: string;\n\n // Available balance on the account.\n balance: AccountBalance;\n\n // payto://-URI of the account.\n payto_uri: string;\n\n // Number indicating the max debit allowed for the requesting user.\n debit_threshold: AmountString;\n\n contact_data?: ChallengeContactData;\n\n // 'payto' address pointing the bank account\n // where to send cashouts. This field is optional\n // because not all the accounts are required to participate\n // in the merchants' circuit. One example is the exchange:\n // that never cashouts. Registering these accounts can\n // be done via the access API.\n cashout_payto_uri?: string;\n}\n\nexport interface ConfirmWithdrawalArgs {\n withdrawalOperationId: string;\n}\n\n/**\n * Client for the Taler corebank API.\n */\nexport class TalerCorebankApiClient {\n httpLib: HttpRequestLibrary;\n\n constructor(\n private baseUrl: string,\n private args: BankAccessApiClientArgs = {},\n ) {\n this.httpLib = args.httpClient ?? createPlatformHttpLib();\n }\n\n setAuth(auth: { username: string; password: string }) {\n this.args.auth = auth;\n }\n\n private makeAuthHeader(): Record<string, string> {\n if (!this.args.auth) {\n return {};\n }\n const authHeaderValue = makeBasicAuthHeader(\n this.args.auth.username,\n this.args.auth.password,\n );\n return {\n Authorization: authHeaderValue,\n };\n }\n\n async getAccountBalance(\n username: string,\n ): Promise<BankAccountBalanceResponse> {\n const url = new URL(`accounts/${username}`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n\n async getTransactions(username: string): Promise<void> {\n const reqUrl = new URL(`accounts/${username}/transactions`, this.baseUrl);\n const resp = await this.httpLib.fetch(reqUrl.href, {\n method: \"GET\",\n headers: {\n ...this.makeAuthHeader(),\n },\n });\n\n const res = await readSuccessResponseJsonOrThrow(resp, codecForAny());\n logger.info(`result: ${j2s(res)}`);\n }\n\n async createTransaction(\n username: string,\n req: BankAccessApiCreateTransactionRequest,\n ): Promise<any> {\n const reqUrl = new URL(`accounts/${username}/transactions`, this.baseUrl);\n\n const resp = await this.httpLib.fetch(reqUrl.href, {\n method: \"POST\",\n body: req,\n headers: this.makeAuthHeader(),\n });\n\n return await readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n\n async registerAccountExtended(req: RegisterAccountRequest): Promise<void> {\n const url = new URL(\"accounts\", this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: req,\n });\n\n if (\n resp.status !== 200 &&\n resp.status !== 201 &&\n resp.status !== 202 &&\n resp.status !== 204\n ) {\n logger.error(`unexpected status ${resp.status} from POST ${url.href}`);\n logger.error(`${j2s(await resp.json())}`);\n throw TalerError.fromDetail(\n TalerErrorCode.GENERIC_UNEXPECTED_REQUEST_ERROR,\n {\n httpStatusCode: resp.status,\n },\n );\n }\n }\n\n /**\n * Register a new account and return information about it.\n *\n * This is a helper, as it does both the registration and the\n * account info query.\n */\n async registerAccount(username: string, password: string): Promise<BankUser> {\n const url = new URL(\"accounts\", this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {\n username,\n password,\n name: username,\n },\n });\n if (\n resp.status !== 200 &&\n resp.status !== 201 &&\n resp.status !== 202 &&\n resp.status !== 204\n ) {\n logger.error(`unexpected status ${resp.status} from POST ${url.href}`);\n logger.error(`${j2s(await resp.json())}`);\n throw TalerError.fromDetail(\n TalerErrorCode.GENERIC_UNEXPECTED_REQUEST_ERROR,\n {\n httpStatusCode: resp.status,\n },\n );\n }\n // FIXME: Corebank should directly return this info!\n const infoUrl = new URL(`accounts/${username}`, this.baseUrl);\n const infoResp = await this.httpLib.fetch(infoUrl.href, {\n headers: {\n Authorization: makeBasicAuthHeader(username, password),\n },\n });\n // FIXME: Validate!\n const acctInfo: AccountData = await readSuccessResponseJsonOrThrow(\n infoResp,\n codecForAny(),\n );\n return {\n password,\n username,\n accountPaytoUri: acctInfo.payto_uri,\n };\n }\n\n async createRandomBankUser(): Promise<BankUser> {\n const username = \"user-\" + encodeCrock(getRandomBytes(10)).toLowerCase();\n const password = \"pw-\" + encodeCrock(getRandomBytes(10)).toLowerCase();\n return await this.registerAccount(username, password);\n }\n\n async createWithdrawalOperation(\n user: string,\n amount: string,\n ): Promise<WithdrawalOperationInfo> {\n const url = new URL(`accounts/${user}/withdrawals`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {\n amount,\n },\n headers: this.makeAuthHeader(),\n });\n return readSuccessResponseJsonOrThrow(\n resp,\n codecForWithdrawalOperationInfo(),\n );\n }\n\n async confirmWithdrawalOperation(\n username: string,\n wopi: ConfirmWithdrawalArgs,\n ): Promise<void> {\n const url = new URL(\n `withdrawals/${wopi.withdrawalOperationId}/confirm`,\n this.baseUrl,\n );\n logger.info(`confirming withdrawal operation via ${url.href}`);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {},\n headers: this.makeAuthHeader(),\n });\n\n logger.info(`response status ${resp.status}`);\n // const respJson = await readSuccessResponseJsonOrThrow(resp, codecForAny());\n\n // FIXME: We don't check the status here!\n }\n\n async abortWithdrawalOperation(\n wopi: WithdrawalOperationInfo,\n ): Promise<void> {\n const url = new URL(\n `withdrawals/${wopi.withdrawal_id}/abort`,\n this.baseUrl,\n );\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body: {},\n headers: this.makeAuthHeader(),\n });\n await readSuccessResponseJsonOrThrow(resp, codecForAny());\n }\n}\n", "import { HttpResponse, readSuccessResponseJsonOrThrow, readTalerErrorResponse } from \"./http-common.js\";\nimport { Codec, TalerError, TalerErrorCode, TalerErrorDetail } from \"./index.js\";\n\nexport type OperationResult<Body, ErrorEnum> =\n | OperationOk<Body>\n | OperationFail<ErrorEnum>;\n\nexport interface OperationOk<T> {\n type: \"ok\",\n body: T;\n}\nexport function isOperationOk<T, E>(c: OperationResult<T, E>): c is OperationOk<T> {\n return c.type === \"ok\"\n}\nexport function isOperationFail<T, E>(c: OperationResult<T, E>): c is OperationFail<E> {\n return c.type === \"fail\"\n}\nexport interface OperationFail<T> {\n type: \"fail\",\n case: T,\n detail: TalerErrorDetail,\n}\n\nexport async function opSuccess<T>(resp: HttpResponse, codec: Codec<T>): Promise<OperationOk<T>> {\n const body = await readSuccessResponseJsonOrThrow(resp, codec)\n return { type: \"ok\" as const, body }\n}\nexport function opFixedSuccess<T>(body: T): OperationOk<T> {\n return { type: \"ok\" as const, body }\n}\nexport function opEmptySuccess(): OperationOk<void> {\n return { type: \"ok\" as const, body: void 0 }\n}\nexport async function opKnownFailure<T extends string>(s: T, resp: HttpResponse): Promise<OperationFail<T>> {\n const detail = await readTalerErrorResponse(resp)\n return { type: \"fail\", case: s, detail }\n}\nexport function opUnknownFailure(resp: HttpResponse, text: string): never {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,\n {\n requestUrl: resp.requestUrl,\n requestMethod: resp.requestMethod,\n httpStatusCode: resp.status,\n errorResponse: text,\n },\n `Unexpected HTTP status ${resp.status} in response`,\n );\n}\nexport async function succeedOrThrow<R, E>(cb: () => Promise<OperationResult<R, E>>): Promise<R> {\n const resp = await cb()\n if (resp.type === \"ok\") return resp.body\n throw TalerError.fromUncheckedDetail({ ...resp.detail, case: resp.case })\n}\nexport async function failOrThrow<E>(s: E, cb: () => Promise<OperationResult<unknown, E>>): Promise<TalerErrorDetail> {\n const resp = await cb()\n if (resp.type === \"ok\") {\n throw TalerError.fromException(new Error(`request succeed but failure \"${s}\" was expected`))\n }\n if (resp.case === s) {\n return resp.detail\n }\n throw TalerError.fromException(new Error(`request failed with \"${resp.case}\" but case \"${s}\" was expected`))\n}\n\n\n\nexport type ResultByMethod<TT extends object, p extends keyof TT> = TT[p] extends (...args: any[]) => infer Ret ?\n Ret extends Promise<infer Result> ?\n Result extends OperationResult<any, any> ? Result : never :\n never : //api always use Promises\n never; //error cases just for functions\n\nexport type FailCasesByMethod<TT extends object, p extends keyof TT> = Exclude<ResultByMethod<TT, p>, OperationOk<any>>\n\ntype MethodsOfOperations<T extends object> = keyof {\n [P in keyof T as\n //when the property is a function\n T[P] extends (...args: any[]) => infer Ret ?\n // that returns a promise\n Ret extends Promise<infer Result> ?\n // of an operation\n Result extends OperationResult<any, any> ?\n P : never\n : never\n : never]: any\n}\n\ntype AllKnownCases<t extends object, d extends keyof t> = \"success\" | FailCasesByMethod<t, d>[\"case\"]\n\nexport type TestForApi<ApiType extends object> = {\n [OpType in MethodsOfOperations<ApiType> as `test_${OpType & string}`]: {\n [c in AllKnownCases<ApiType, OpType>]: undefined | (() => Promise<void>);\n };\n};\n", "import { codecForAmountString } from \"../amounts.js\";\nimport {\n Codec,\n buildCodecForObject,\n buildCodecForUnion,\n codecForAny,\n codecForBoolean,\n codecForConstString,\n codecForEither,\n codecForList,\n codecForMap,\n codecForNumber,\n codecForString,\n codecOptional,\n} from \"../codec.js\";\nimport { PaytoString, codecForPaytoString } from \"../payto.js\";\nimport { AmountString } from \"../taler-types.js\";\nimport { TalerActionString, codecForTalerActionString } from \"../taleruri.js\";\nimport { codecForTimestamp } from \"../time.js\";\n\nexport type UserAndPassword = {\n username: string;\n password: string;\n};\n\nexport type UserAndToken = {\n username: string;\n token: AccessToken;\n};\n\ndeclare const opaque_OfficerAccount: unique symbol;\nexport type LockedAccount = string & { [opaque_OfficerAccount]: true };\n\ndeclare const opaque_OfficerId: unique symbol;\nexport type OfficerId = string & { [opaque_OfficerId]: true };\n\ndeclare const opaque_OfficerSigningKey: unique symbol;\nexport type SigningKey = Uint8Array & { [opaque_OfficerSigningKey]: true };\n\nexport interface OfficerAccount {\n id: OfficerId;\n signingKey: SigningKey;\n}\n\nexport type PaginationParams = {\n /**\n * row identifier as the starting point of the query\n */\n offset?: string;\n /**\n * max number of element in the result response\n * always greater than 0\n */\n limit?: number;\n /**\n * milliseconds the server should wait for at least one result to be shown\n */\n timoutMs?: number;\n /**\n * order\n */\n order: \"asc\" | \"dec\";\n};\n\n///\n/// HASH\n///\n\n// 64-byte hash code.\ntype HashCode = string;\n\ntype PaytoHash = string;\n\ntype AmlOfficerPublicKeyP = string;\n\n// 32-byte hash code.\ntype ShortHashCode = string;\n\n// 16-byte salt.\ntype WireSalt = string;\n\ntype SHA256HashCode = ShortHashCode;\n\ntype SHA512HashCode = HashCode;\n\n// 32-byte nonce value, must only be used once.\ntype CSNonce = string;\n\n// 32-byte nonce value, must only be used once.\ntype RefreshMasterSeed = string;\n\n// 32-byte value representing a point on Curve25519.\ntype Cs25519Point = string;\n\n// 32-byte value representing a scalar multiplier\n// for scalar operations on points on Curve25519.\ntype Cs25519Scalar = string;\n\n///\n/// KEYS\n///\n\n// 16-byte access token used to authorize access.\ntype ClaimToken = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EddsaPublicKey = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EddsaPrivateKey = string;\n\n// Edx25519 public keys are points on Curve25519 and represented using the\n// standard 256 bits Ed25519 compact format converted to Crockford\n// Base32.\ntype Edx25519PublicKey = string;\n\n// Edx25519 private keys are always points on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype Edx25519PrivateKey = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EcdhePublicKey = string;\n\n// Point on Curve25519 represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype CsRPublic = string;\n\n// EdDSA and ECDHE public keys always point on Curve25519\n// and represented using the standard 256 bits Ed25519 compact format,\n// converted to Crockford Base32.\ntype EcdhePrivateKey = string;\n\ntype CoinPublicKey = EddsaPublicKey;\n\n// RSA public key converted to Crockford Base32.\ntype RsaPublicKey = string;\n\ntype Integer = number;\n\ntype WireTransferIdentifierRawP = string;\n// Subset of numbers: Integers in the\n// inclusive range 0 .. (2^53 - 1).\ntype SafeUint64 = number;\n\n// The string must be a data URL according to RFC 2397\n// with explicit mediatype and base64 parameters.\n//\n// data:<mediatype>;base64,<data>\n//\n// Supported mediatypes are image/jpeg and image/png.\n// Invalid strings will be rejected by the wallet.\ntype ImageDataUrl = string;\n\ntype WadId = string;\n\ninterface Timestamp {\n // Seconds since epoch, or the special\n // value \"never\" to represent an event that will\n // never happen.\n t_s: number | \"never\";\n}\n\ninterface RelativeTime {\n // Duration in microseconds or \"forever\"\n // to represent an infinite duration. Numeric\n // values are capped at 2^53 - 1 inclusive.\n d_us: number | \"forever\";\n}\n\nexport interface LoginToken {\n token: AccessToken;\n expiration: Timestamp;\n}\n\ndeclare const __ac_token: unique symbol;\nexport type AccessToken = string & {\n [__ac_token]: true;\n};\n\ndeclare const __officer_signature: unique symbol;\nexport type OfficerSignature = string & {\n [__officer_signature]: true;\n};\n\nexport namespace TalerAuthentication {\n export interface TokenRequest {\n // Service-defined scope for the token.\n // Typical scopes would be \"readonly\" or \"readwrite\".\n scope: string;\n\n // Server may impose its own upper bound\n // on the token validity duration\n duration?: RelativeTime;\n\n // Is the token refreshable into a new token during its\n // validity?\n // Refreshable tokens effectively provide indefinite\n // access if they are refreshed in time.\n refreshable?: boolean;\n }\n\n export interface TokenSuccessResponse {\n // Expiration determined by the server.\n // Can be based on the token_duration\n // from the request, but ultimately the\n // server decides the expiration.\n expiration: Timestamp;\n\n // Opque access token.\n access_token: AccessToken;\n }\n}\n\n// DD51 https://docs.taler.net/design-documents/051-fractional-digits.html\nexport interface CurrencySpecification {\n // Name of the currency.\n name: string;\n\n // how many digits the user may enter after the decimal_separator\n num_fractional_input_digits: Integer;\n\n // Number of fractional digits to render in normal font and size.\n num_fractional_normal_digits: Integer;\n\n // Number of fractional digits to render always, if needed by\n // padding with zeros.\n num_fractional_trailing_zero_digits: Integer;\n\n // map of powers of 10 to alternative currency names / symbols, must\n // always have an entry under \"0\" that defines the base name,\n // e.g. \"0 => \u20AC\" or \"3 => k\u20AC\". For BTC, would be \"0 => BTC, -3 => mBTC\".\n // Communicates the currency symbol to be used.\n alt_unit_names: { [log10: string]: string };\n}\n\nexport const codecForAccessToken = codecForString as () => Codec<AccessToken>;\nexport const codecForTokenSuccessResponse =\n (): Codec<TalerAuthentication.TokenSuccessResponse> =>\n buildCodecForObject<TalerAuthentication.TokenSuccessResponse>()\n .property(\"access_token\", codecForAccessToken())\n .property(\"expiration\", codecForTimestamp)\n .build(\"TalerAuthentication.TokenSuccessResponse\");\n\nexport const codecForCurrencySpecificiation =\n (): Codec<CurrencySpecification> =>\n buildCodecForObject<CurrencySpecification>()\n .property(\"name\", codecForString())\n .property(\"num_fractional_input_digits\", codecForNumber())\n .property(\"num_fractional_normal_digits\", codecForNumber())\n .property(\"num_fractional_trailing_zero_digits\", codecForNumber())\n .property(\"alt_unit_names\", codecForMap(codecForString()))\n .build(\"CurrencySpecification\");\n\nexport const codecForIntegrationBankConfig =\n (): Codec<TalerCorebankApi.IntegrationConfig> =>\n buildCodecForObject<TalerCorebankApi.IntegrationConfig>()\n .property(\"name\", codecForConstString(\"taler-bank-integration\"))\n .property(\"version\", codecForString())\n .property(\"currency\", codecForString())\n .property(\"currency_specification\", codecForCurrencySpecificiation())\n .build(\"TalerCorebankApi.IntegrationConfig\");\n\nexport const codecForCoreBankConfig = (): Codec<TalerCorebankApi.Config> =>\n buildCodecForObject<TalerCorebankApi.Config>()\n .property(\"name\", codecForConstString(\"libeufin-bank\"))\n .property(\"version\", codecForString())\n .property(\"allow_conversion\", codecForBoolean())\n .property(\"allow_deletions\", codecForBoolean())\n .property(\"allow_registrations\", codecForBoolean())\n .property(\"allow_edit_cashout_payto_uri\", codecForBoolean())\n .property(\"allow_edit_name\", codecForBoolean())\n .property(\"default_debit_threshold\", codecForAmountString())\n .property(\"currency_specification\", codecForCurrencySpecificiation())\n .property(\"currency\", codecForString())\n .property(\"supported_tan_channels\", codecForList(codecForEither(\n codecForConstString(TanChannel.SMS),\n codecForConstString(TanChannel.EMAIL),\n )))\n .build(\"TalerCorebankApi.Config\");\n\nexport const codecForMerchantConfig =\n (): Codec<TalerMerchantApi.VersionResponse> =>\n buildCodecForObject<TalerMerchantApi.VersionResponse>()\n .property(\"name\", codecForConstString(\"taler-merchant\"))\n .property(\"currency\", codecForString())\n .property(\"version\", codecForString())\n .property(\"currencies\", codecForMap(codecForCurrencySpecificiation()))\n .build(\"TalerMerchantApi.VersionResponse\");\n\nexport const codecForExchangeConfig =\n (): Codec<TalerExchangeApi.ExchangeVersionResponse> =>\n buildCodecForObject<TalerExchangeApi.ExchangeVersionResponse>()\n .property(\"version\", codecForString())\n .property(\"name\", codecForConstString(\"taler-exchange\"))\n .property(\"currency\", codecForString())\n .property(\"currency_specification\", codecForCurrencySpecificiation())\n .property(\"supported_kyc_requirements\", codecForList(codecForString()))\n .build(\"TalerExchangeApi.ExchangeVersionResponse\");\n\nconst codecForBalance = (): Codec<TalerCorebankApi.Balance> =>\n buildCodecForObject<TalerCorebankApi.Balance>()\n .property(\"amount\", codecForAmountString())\n .property(\n \"credit_debit_indicator\",\n codecForEither(\n codecForConstString(\"credit\"),\n codecForConstString(\"debit\"),\n ),\n )\n .build(\"TalerCorebankApi.Balance\");\n\nconst codecForPublicAccount = (): Codec<TalerCorebankApi.PublicAccount> =>\n buildCodecForObject<TalerCorebankApi.PublicAccount>()\n .property(\"username\", codecForString())\n .property(\"balance\", codecForBalance())\n .property(\"payto_uri\", codecForPaytoString())\n .property(\"is_taler_exchange\", codecForBoolean())\n .build(\"TalerCorebankApi.PublicAccount\");\n\nexport const codecForPublicAccountsResponse =\n (): Codec<TalerCorebankApi.PublicAccountsResponse> =>\n buildCodecForObject<TalerCorebankApi.PublicAccountsResponse>()\n .property(\"public_accounts\", codecForList(codecForPublicAccount()))\n .build(\"TalerCorebankApi.PublicAccountsResponse\");\n\nexport const codecForAccountMinimalData =\n (): Codec<TalerCorebankApi.AccountMinimalData> =>\n buildCodecForObject<TalerCorebankApi.AccountMinimalData>()\n .property(\"balance\", codecForBalance())\n .property(\"debit_threshold\", codecForAmountString())\n .property(\"name\", codecForString())\n .property(\"username\", codecForString())\n .property(\"is_public\", codecForBoolean())\n .property(\"is_taler_exchange\", codecForBoolean())\n .build(\"TalerCorebankApi.AccountMinimalData\");\n\nexport const codecForListBankAccountsResponse =\n (): Codec<TalerCorebankApi.ListBankAccountsResponse> =>\n buildCodecForObject<TalerCorebankApi.ListBankAccountsResponse>()\n .property(\"accounts\", codecForList(codecForAccountMinimalData()))\n .build(\"TalerCorebankApi.ListBankAccountsResponse\");\n\nexport const codecForAccountData = (): Codec<TalerCorebankApi.AccountData> =>\n buildCodecForObject<TalerCorebankApi.AccountData>()\n .property(\"name\", codecForString())\n .property(\"balance\", codecForBalance())\n .property(\"payto_uri\", codecForPaytoString())\n .property(\"debit_threshold\", codecForAmountString())\n .property(\"contact_data\", codecOptional(codecForChallengeContactData()))\n .property(\"cashout_payto_uri\", codecOptional(codecForPaytoString()))\n .property(\"is_public\", codecForBoolean())\n .property(\"is_taler_exchange\", codecForBoolean())\n .build(\"TalerCorebankApi.AccountData\");\n\nexport const codecForChallengeContactData =\n (): Codec<TalerCorebankApi.ChallengeContactData> =>\n buildCodecForObject<TalerCorebankApi.ChallengeContactData>()\n .property(\"email\", codecOptional(codecForString()))\n .property(\"phone\", codecOptional(codecForString()))\n .build(\"TalerCorebankApi.ChallengeContactData\");\n\nexport const codecForWithdrawalPublicInfo =\n (): Codec<TalerCorebankApi.WithdrawalPublicInfo> =>\n buildCodecForObject<TalerCorebankApi.WithdrawalPublicInfo>()\n .property(\"username\", codecForString())\n .property(\"amount\", codecForAmountString())\n .property(\n \"selected_exchange_account\",\n codecOptional(codecForPaytoString()),\n )\n .property(\"selected_reserve_pub\", codecOptional(codecForString()))\n .property(\n \"status\",\n codecForEither(\n codecForConstString(\"pending\"),\n codecForConstString(\"selected\"),\n codecForConstString(\"aborted\"),\n codecForConstString(\"confirmed\"),\n ),\n )\n .build(\"TalerCorebankApi.WithdrawalPublicInfo\");\n\nexport const codecForBankAccountTransactionsResponse =\n (): Codec<TalerCorebankApi.BankAccountTransactionsResponse> =>\n buildCodecForObject<TalerCorebankApi.BankAccountTransactionsResponse>()\n .property(\n \"transactions\",\n codecForList(codecForBankAccountTransactionInfo()),\n )\n .build(\"TalerCorebankApi.BankAccountTransactionsResponse\");\n\nexport const codecForBankAccountTransactionInfo =\n (): Codec<TalerCorebankApi.BankAccountTransactionInfo> =>\n buildCodecForObject<TalerCorebankApi.BankAccountTransactionInfo>()\n .property(\"creditor_payto_uri\", codecForPaytoString())\n .property(\"debtor_payto_uri\", codecForPaytoString())\n .property(\"amount\", codecForAmountString())\n .property(\n \"direction\",\n codecForEither(\n codecForConstString(\"debit\"),\n codecForConstString(\"credit\"),\n ),\n )\n .property(\"subject\", codecForString())\n .property(\"row_id\", codecForNumber())\n .property(\"date\", codecForTimestamp)\n .build(\"TalerCorebankApi.BankAccountTransactionInfo\");\n\nexport const codecForCreateTransactionResponse =\n (): Codec<TalerCorebankApi.CreateTransactionResponse> =>\n buildCodecForObject<TalerCorebankApi.CreateTransactionResponse>()\n .property(\"row_id\", codecForNumber())\n .build(\"TalerCorebankApi.CreateTransactionResponse\");\n\nexport const codecForRegisterAccountResponse =\n (): Codec<TalerCorebankApi.RegisterAccountResponse> =>\n buildCodecForObject<TalerCorebankApi.RegisterAccountResponse>()\n .property(\"internal_payto_uri\", codecForPaytoString())\n .build(\"TalerCorebankApi.RegisterAccountResponse\");\n\nexport const codecForBankAccountCreateWithdrawalResponse =\n (): Codec<TalerCorebankApi.BankAccountCreateWithdrawalResponse> =>\n buildCodecForObject<TalerCorebankApi.BankAccountCreateWithdrawalResponse>()\n .property(\"taler_withdraw_uri\", codecForTalerActionString())\n .property(\"withdrawal_id\", codecForString())\n .build(\"TalerCorebankApi.BankAccountCreateWithdrawalResponse\");\n\nexport const codecForCashoutPending =\n (): Codec<TalerCorebankApi.CashoutPending> =>\n buildCodecForObject<TalerCorebankApi.CashoutPending>()\n .property(\"cashout_id\", codecForNumber())\n .build(\"TalerCorebankApi.CashoutPending\");\n\nexport const codecForCashoutConversionResponse =\n (): Codec<TalerBankConversionApi.CashoutConversionResponse> =>\n buildCodecForObject<TalerBankConversionApi.CashoutConversionResponse>()\n .property(\"amount_credit\", codecForAmountString())\n .property(\"amount_debit\", codecForAmountString())\n .build(\"TalerCorebankApi.CashoutConversionResponse\");\n\nexport const codecForCashinConversionResponse =\n (): Codec<TalerBankConversionApi.CashinConversionResponse> =>\n buildCodecForObject<TalerBankConversionApi.CashinConversionResponse>()\n .property(\"amount_credit\", codecForAmountString())\n .property(\"amount_debit\", codecForAmountString())\n .build(\"TalerCorebankApi.CashinConversionResponse\");\n\nexport const codecForCashouts = (): Codec<TalerCorebankApi.Cashouts> =>\n buildCodecForObject<TalerCorebankApi.Cashouts>()\n .property(\"cashouts\", codecForList(codecForCashoutInfo()))\n .build(\"TalerCorebankApi.Cashouts\");\n\nexport const codecForCashoutInfo = (): Codec<TalerCorebankApi.CashoutInfo> =>\n buildCodecForObject<TalerCorebankApi.CashoutInfo>()\n .property(\"cashout_id\", codecForNumber())\n .property(\n \"status\",\n codecForEither(\n codecForConstString(\"pending\"),\n codecForConstString(\"aborted\"),\n codecForConstString(\"confirmed\"),\n ),\n )\n .build(\"TalerCorebankApi.CashoutInfo\");\n\nexport const codecForGlobalCashouts =\n (): Codec<TalerCorebankApi.GlobalCashouts> =>\n buildCodecForObject<TalerCorebankApi.GlobalCashouts>()\n .property(\"cashouts\", codecForList(codecForGlobalCashoutInfo()))\n .build(\"TalerCorebankApi.GlobalCashouts\");\n\nexport const codecForGlobalCashoutInfo =\n (): Codec<TalerCorebankApi.GlobalCashoutInfo> =>\n buildCodecForObject<TalerCorebankApi.GlobalCashoutInfo>()\n .property(\"cashout_id\", codecForNumber())\n .property(\"username\", codecForString())\n .property(\n \"status\",\n codecForEither(\n codecForConstString(\"pending\"),\n codecForConstString(\"aborted\"),\n codecForConstString(\"confirmed\"),\n ),\n )\n .build(\"TalerCorebankApi.GlobalCashoutInfo\");\n\nexport const codecForCashoutStatusResponse =\n (): Codec<TalerCorebankApi.CashoutStatusResponse> =>\n buildCodecForObject<TalerCorebankApi.CashoutStatusResponse>()\n .property(\"amount_credit\", codecForAmountString())\n .property(\"amount_debit\", codecForAmountString())\n .property(\"confirmation_time\", codecOptional(codecForTimestamp))\n .property(\"creation_time\", codecForTimestamp)\n // .property(\"credit_payto_uri\", codecForPaytoString())\n .property(\n \"status\",\n codecForEither(\n codecForConstString(\"pending\"),\n codecForConstString(\"aborted\"),\n codecForConstString(\"confirmed\"),\n ),\n )\n .property(\n \"tan_channel\",\n codecForEither(\n codecForConstString(TanChannel.SMS),\n codecForConstString(TanChannel.EMAIL),\n ),\n )\n .property(\"subject\", codecForString())\n .property(\"tan_info\", codecForString())\n .build(\"TalerCorebankApi.CashoutStatusResponse\");\n\nexport const codecForConversionRatesResponse =\n (): Codec<TalerCorebankApi.ConversionRatesResponse> =>\n buildCodecForObject<TalerCorebankApi.ConversionRatesResponse>()\n .property(\"buy_at_ratio\", codecForDecimalNumber())\n .property(\"buy_in_fee\", codecForDecimalNumber())\n .property(\"sell_at_ratio\", codecForDecimalNumber())\n .property(\"sell_out_fee\", codecForDecimalNumber())\n .build(\"TalerCorebankApi.ConversionRatesResponse\");\n\nexport const codecForMonitorResponse =\n (): Codec<TalerCorebankApi.MonitorResponse> =>\n buildCodecForUnion<TalerCorebankApi.MonitorResponse>()\n .discriminateOn(\"type\")\n .alternative(\"no-conversions\", codecForMonitorNoConversion())\n .alternative(\"with-conversions\", codecForMonitorWithCashout())\n .build(\"TalerWireGatewayApi.IncomingBankTransaction\");\n\nexport const codecForMonitorNoConversion =\n (): Codec<TalerCorebankApi.MonitorNoConversion> =>\n buildCodecForObject<TalerCorebankApi.MonitorNoConversion>()\n .property(\"type\", codecForConstString(\"no-conversions\"))\n .property(\"talerInCount\", codecForNumber())\n .property(\"talerInVolume\", codecForAmountString())\n .property(\"talerOutCount\", codecForNumber())\n .property(\"talerOutVolume\", codecForAmountString())\n .build(\"TalerCorebankApi.MonitorJustPayouts\");\n\nexport const codecForMonitorWithCashout =\n (): Codec<TalerCorebankApi.MonitorWithConversion> =>\n buildCodecForObject<TalerCorebankApi.MonitorWithConversion>()\n .property(\"type\", codecForConstString(\"with-conversions\"))\n .property(\"cashinCount\", codecForNumber())\n .property(\"cashinFiatVolume\", codecForAmountString())\n .property(\"cashinRegionalVolume\", codecForAmountString())\n .property(\"cashoutCount\", codecForNumber())\n .property(\"cashoutFiatVolume\", codecForAmountString())\n .property(\"cashoutRegionalVolume\", codecForAmountString())\n .property(\"talerInCount\", codecForNumber())\n .property(\"talerInVolume\", codecForAmountString())\n .property(\"talerOutCount\", codecForNumber())\n .property(\"talerOutVolume\", codecForAmountString())\n .build(\"TalerCorebankApi.MonitorWithCashout\");\n\nexport const codecForBankVersion =\n (): Codec<TalerBankIntegrationApi.BankVersion> =>\n buildCodecForObject<TalerBankIntegrationApi.BankVersion>()\n .property(\"currency\", codecForCurrencyName())\n .property(\"currency_specification\", codecForCurrencySpecificiation())\n .property(\"name\", codecForConstString(\"taler-bank-integration\"))\n .property(\"version\", codecForLibtoolVersion())\n .build(\"TalerBankIntegrationApi.BankVersion\");\n\nexport const codecForBankWithdrawalOperationStatus =\n (): Codec<TalerBankIntegrationApi.BankWithdrawalOperationStatus> =>\n buildCodecForObject<TalerBankIntegrationApi.BankWithdrawalOperationStatus>()\n .property(\n \"status\",\n codecForEither(\n codecForConstString(\"pending\"),\n codecForConstString(\"selected\"),\n codecForConstString(\"aborted\"),\n codecForConstString(\"confirmed\"),\n ),\n )\n .property(\"amount\", codecForAmountString())\n .property(\"sender_wire\", codecOptional(codecForPaytoString()))\n .property(\"suggested_exchange\", codecOptional(codecForString()))\n .property(\"confirm_transfer_url\", codecOptional(codecForURL()))\n .property(\"wire_types\", codecForList(codecForString()))\n .property(\"selected_reserve_pub\", codecOptional(codecForString()))\n .property(\"selected_exchange_account\", codecOptional(codecForString()))\n .build(\"TalerBankIntegrationApi.BankWithdrawalOperationStatus\");\n\nexport const codecForBankWithdrawalOperationPostResponse =\n (): Codec<TalerBankIntegrationApi.BankWithdrawalOperationPostResponse> =>\n buildCodecForObject<TalerBankIntegrationApi.BankWithdrawalOperationPostResponse>()\n .property(\n \"status\",\n codecForEither(\n codecForConstString(\"pending\"),\n codecForConstString(\"selected\"),\n codecForConstString(\"aborted\"),\n codecForConstString(\"confirmed\"),\n ),\n )\n .property(\"confirm_transfer_url\", codecOptional(codecForURL()))\n .build(\"TalerBankIntegrationApi.BankWithdrawalOperationPostResponse\");\n\nexport const codecForMerchantIncomingHistory =\n (): Codec<TalerRevenueApi.MerchantIncomingHistory> =>\n buildCodecForObject<TalerRevenueApi.MerchantIncomingHistory>()\n .property(\"credit_account\", codecForPaytoString())\n .property(\n \"incoming_transactions\",\n codecForList(codecForMerchantIncomingBankTransaction()),\n )\n .build(\"TalerRevenueApi.MerchantIncomingHistory\");\n\nexport const codecForMerchantIncomingBankTransaction =\n (): Codec<TalerRevenueApi.MerchantIncomingBankTransaction> =>\n buildCodecForObject<TalerRevenueApi.MerchantIncomingBankTransaction>()\n .property(\"row_id\", codecForNumber())\n .property(\"date\", codecForTimestamp)\n .property(\"amount\", codecForAmountString())\n .property(\"debit_account\", codecForPaytoString())\n .property(\"exchange_url\", codecForURL())\n .property(\"wtid\", codecForString())\n .build(\"TalerRevenueApi.MerchantIncomingBankTransaction\");\n\nexport const codecForTransferResponse =\n (): Codec<TalerWireGatewayApi.TransferResponse> =>\n buildCodecForObject<TalerWireGatewayApi.TransferResponse>()\n .property(\"row_id\", codecForNumber())\n .property(\"timestamp\", codecForTimestamp)\n .build(\"TalerWireGatewayApi.TransferResponse\");\n\nexport const codecForIncomingHistory =\n (): Codec<TalerWireGatewayApi.IncomingHistory> =>\n buildCodecForObject<TalerWireGatewayApi.IncomingHistory>()\n .property(\"credit_account\", codecForPaytoString())\n .property(\n \"incoming_transactions\",\n codecForList(codecForIncomingBankTransaction()),\n )\n .build(\"TalerWireGatewayApi.IncomingHistory\");\n\nexport const codecForIncomingBankTransaction =\n (): Codec<TalerWireGatewayApi.IncomingBankTransaction> =>\n buildCodecForUnion<TalerWireGatewayApi.IncomingBankTransaction>()\n .discriminateOn(\"type\")\n .alternative(\"RESERVE\", codecForIncomingReserveTransaction())\n .alternative(\"WAD\", codecForIncomingWadTransaction())\n .build(\"TalerWireGatewayApi.IncomingBankTransaction\");\n\nexport const codecForIncomingReserveTransaction =\n (): Codec<TalerWireGatewayApi.IncomingReserveTransaction> =>\n buildCodecForObject<TalerWireGatewayApi.IncomingReserveTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"date\", codecForTimestamp)\n .property(\"debit_account\", codecForPaytoString())\n .property(\"reserve_pub\", codecForString())\n .property(\"row_id\", codecForNumber())\n .property(\"type\", codecForConstString(\"RESERVE\"))\n .build(\"TalerWireGatewayApi.IncomingReserveTransaction\");\n\nexport const codecForIncomingWadTransaction =\n (): Codec<TalerWireGatewayApi.IncomingWadTransaction> =>\n buildCodecForObject<TalerWireGatewayApi.IncomingWadTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"credit_account\", codecForPaytoString())\n .property(\"date\", codecForTimestamp)\n .property(\"debit_account\", codecForPaytoString())\n .property(\"origin_exchange_url\", codecForURL())\n .property(\"row_id\", codecForNumber())\n .property(\"type\", codecForConstString(\"WAD\"))\n .property(\"wad_id\", codecForString())\n .build(\"TalerWireGatewayApi.IncomingWadTransaction\");\n\nexport const codecForOutgoingHistory =\n (): Codec<TalerWireGatewayApi.OutgoingHistory> =>\n buildCodecForObject<TalerWireGatewayApi.OutgoingHistory>()\n .property(\"debit_account\", codecForPaytoString())\n .property(\n \"outgoing_transactions\",\n codecForList(codecForOutgoingBankTransaction()),\n )\n .build(\"TalerWireGatewayApi.OutgoingHistory\");\n\nexport const codecForOutgoingBankTransaction =\n (): Codec<TalerWireGatewayApi.OutgoingBankTransaction> =>\n buildCodecForObject<TalerWireGatewayApi.OutgoingBankTransaction>()\n .property(\"amount\", codecForAmountString())\n .property(\"credit_account\", codecForPaytoString())\n .property(\"date\", codecForTimestamp)\n .property(\"exchange_base_url\", codecForURL())\n .property(\"row_id\", codecForNumber())\n .property(\"wtid\", codecForString())\n .build(\"TalerWireGatewayApi.OutgoingBankTransaction\");\n\nexport const codecForAddIncomingResponse =\n (): Codec<TalerWireGatewayApi.AddIncomingResponse> =>\n buildCodecForObject<TalerWireGatewayApi.AddIncomingResponse>()\n .property(\"row_id\", codecForNumber())\n .property(\"timestamp\", codecForTimestamp)\n .build(\"TalerWireGatewayApi.AddIncomingResponse\");\n\nexport const codecForAmlRecords = (): Codec<TalerExchangeApi.AmlRecords> =>\n buildCodecForObject<TalerExchangeApi.AmlRecords>()\n .property(\"records\", codecForList(codecForAmlRecord()))\n .build(\"TalerExchangeApi.PublicAccountsResponse\");\n\nexport const codecForAmlRecord = (): Codec<TalerExchangeApi.AmlRecord> =>\n buildCodecForObject<TalerExchangeApi.AmlRecord>()\n .property(\"current_state\", codecForNumber())\n .property(\"h_payto\", codecForString())\n .property(\"rowid\", codecForNumber())\n .property(\"threshold\", codecForAmountString())\n .build(\"TalerExchangeApi.AmlRecord\");\n\nexport const codecForAmlDecisionDetails =\n (): Codec<TalerExchangeApi.AmlDecisionDetails> =>\n buildCodecForObject<TalerExchangeApi.AmlDecisionDetails>()\n .property(\"aml_history\", codecForList(codecForAmlDecisionDetail()))\n .property(\"kyc_attributes\", codecForList(codecForKycDetail()))\n .build(\"TalerExchangeApi.AmlDecisionDetails\");\n\nexport const codecForAmlDecisionDetail =\n (): Codec<TalerExchangeApi.AmlDecisionDetail> =>\n buildCodecForObject<TalerExchangeApi.AmlDecisionDetail>()\n .property(\"justification\", codecForString())\n .property(\"new_state\", codecForNumber())\n .property(\"decision_time\", codecForTimestamp)\n .property(\"new_threshold\", codecForAmountString())\n .property(\"decider_pub\", codecForString())\n .build(\"TalerExchangeApi.AmlDecisionDetail\");\n\ninterface KycDetail {\n provider_section: string;\n attributes?: Object;\n collection_time: Timestamp;\n expiration_time: Timestamp;\n}\nexport const codecForKycDetail = (): Codec<TalerExchangeApi.KycDetail> =>\n buildCodecForObject<TalerExchangeApi.KycDetail>()\n .property(\"provider_section\", codecForString())\n .property(\"attributes\", codecOptional(codecForAny()))\n .property(\"collection_time\", codecForTimestamp)\n .property(\"expiration_time\", codecForTimestamp)\n .build(\"TalerExchangeApi.KycDetail\");\n\nexport const codecForAmlDecision = (): Codec<TalerExchangeApi.AmlDecision> =>\n buildCodecForObject<TalerExchangeApi.AmlDecision>()\n .property(\"justification\", codecForString())\n .property(\"new_threshold\", codecForAmountString())\n .property(\"h_payto\", codecForString())\n .property(\"new_state\", codecForNumber())\n .property(\"officer_sig\", codecForString())\n .property(\"decision_time\", codecForTimestamp)\n .property(\"kyc_requirements\", codecOptional(codecForList(codecForString())))\n .build(\"TalerExchangeApi.AmlDecision\");\n\n// version: string;\n\n// // Name of the API.\n// name: \"taler-conversion-info\";\n\n// // Currency used by this bank.\n// regional_currency: string;\n\n// // How the bank SPA should render this currency.\n// regional_currency_specification: CurrencySpecification;\n\n// // External currency used during conversion.\n// fiat_currency: string;\n\n// // How the bank SPA should render this currency.\n// fiat_currency_specification: CurrencySpecification;\n\n// Extra conversion rate information.\n// // Only present if server opts in to report the static conversion rate.\n// conversion_info?: {\n\n// // Fee to subtract after applying the cashin ratio.\n// cashin_fee: AmountString;\n\n// // Fee to subtract after applying the cashout ratio.\n// cashout_fee: AmountString;\n\n// // Minimum amount authorised for cashin, in fiat before conversion\n// cashin_min_amount: AmountString;\n\n// // Minimum amount authorised for cashout, in regional before conversion\n// cashout_min_amount: AmountString;\n\n// // Smallest possible regional amount, converted amount is rounded to this amount\n// cashin_tiny_amount: AmountString;\n\n// // Smallest possible fiat amount, converted amount is rounded to this amount\n// cashout_tiny_amount: AmountString;\n\n// // Rounding mode used during cashin conversion\n// cashin_rounding_mode: \"zero\" | \"up\" | \"nearest\";\n\n// // Rounding mode used during cashout conversion\n// cashout_rounding_mode: \"zero\" | \"up\" | \"nearest\";\n// }\nexport const codecForConversionInfo =\n (): Codec<TalerBankConversionApi.ConversionInfo> =>\n buildCodecForObject<TalerBankConversionApi.ConversionInfo>()\n .property(\"cashin_fee\", codecForAmountString())\n .property(\"cashin_min_amount\", codecForAmountString())\n .property(\"cashin_ratio\", codecForDecimalNumber())\n .property(\n \"cashin_rounding_mode\",\n codecForEither(\n codecForConstString(\"zero\"),\n codecForConstString(\"up\"),\n codecForConstString(\"nearest\"),\n ),\n )\n .property(\"cashin_tiny_amount\", codecForAmountString())\n .property(\"cashout_fee\", codecForAmountString())\n .property(\"cashout_min_amount\", codecForAmountString())\n .property(\"cashout_ratio\", codecForDecimalNumber())\n .property(\n \"cashout_rounding_mode\",\n codecForEither(\n codecForConstString(\"zero\"),\n codecForConstString(\"up\"),\n codecForConstString(\"nearest\"),\n ),\n )\n .property(\"cashout_tiny_amount\", codecForAmountString())\n .build(\"ConversionBankConfig.ConversionInfo\");\n\nexport const codecForConversionBankConfig =\n (): Codec<TalerBankConversionApi.IntegrationConfig> =>\n buildCodecForObject<TalerBankConversionApi.IntegrationConfig>()\n .property(\"name\", codecForConstString(\"taler-conversion-info\"))\n .property(\"version\", codecForString())\n .property(\"regional_currency\", codecForString())\n .property(\n \"regional_currency_specification\",\n codecForCurrencySpecificiation(),\n )\n .property(\"fiat_currency\", codecForString())\n .property(\"fiat_currency_specification\", codecForCurrencySpecificiation())\n\n .property(\"conversion_rate\", codecOptional(codecForConversionInfo()))\n .build(\"ConversionBankConfig.IntegrationConfig\");\n\n// export const codecFor =\n// (): Codec<TalerWireGatewayApi.PublicAccountsResponse> =>\n// buildCodecForObject<TalerWireGatewayApi.PublicAccountsResponse>()\n// .property(\"\", codecForString())\n// .build(\"TalerWireGatewayApi.PublicAccountsResponse\");\n\ntype EmailAddress = string;\ntype PhoneNumber = string;\ntype EddsaSignature = string;\n// base32 encoded RSA blinded signature.\ntype BlindedRsaSignature = string;\ntype Base32 = string;\n\ntype DecimalNumber = string;\ntype RsaSignature = string;\n// The type of a coin's blinded envelope depends on the cipher that is used\n// for signing with a denomination key.\ntype CoinEnvelope = RSACoinEnvelope | CSCoinEnvelope;\n// For denomination signatures based on RSA, the planchet is just a blinded\n// coin's public EdDSA key.\ninterface RSACoinEnvelope {\n cipher: \"RSA\" | \"RSA+age_restricted\";\n rsa_blinded_planchet: string; // Crockford Base32 encoded\n}\n// For denomination signatures based on Blind Clause-Schnorr, the planchet\n// consists of the public nonce and two Curve25519 scalars which are two\n// blinded challenges in the Blinded Clause-Schnorr signature scheme.\n// See https://taler.net/papers/cs-thesis.pdf for details.\ninterface CSCoinEnvelope {\n cipher: \"CS\" | \"CS+age_restricted\";\n cs_nonce: string; // Crockford Base32 encoded\n cs_blinded_c0: string; // Crockford Base32 encoded\n cs_blinded_c1: string; // Crockford Base32 encoded\n}\n// Secret for blinding/unblinding.\n// An RSA blinding secret, which is basically\n// a 256-bit nonce, converted to Crockford Base32.\ntype DenominationBlindingKeyP = string;\n\nconst codecForURL = codecForString;\nconst codecForLibtoolVersion = codecForString;\nconst codecForCurrencyName = codecForString;\nconst codecForDecimalNumber = codecForString;\n\nenum TanChannel {\n SMS = \"sms\",\n EMAIL = \"email\",\n}\nexport type WithdrawalOperationStatus =\n | \"pending\"\n | \"selected\"\n | \"aborted\"\n | \"confirmed\";\n\nexport namespace TalerWireGatewayApi {\n export interface TransferResponse {\n // Timestamp that indicates when the wire transfer will be executed.\n // In cases where the wire transfer gateway is unable to know when\n // the wire transfer will be executed, the time at which the request\n // has been received and stored will be returned.\n // The purpose of this field is for debugging (humans trying to find\n // the transaction) as well as for taxation (determining which\n // time period a transaction belongs to).\n timestamp: Timestamp;\n\n // Opaque ID of the transaction that the bank has made.\n row_id: SafeUint64;\n }\n\n export interface TransferRequest {\n // Nonce to make the request idempotent. Requests with the same\n // transaction_uid that differ in any of the other fields\n // are rejected.\n request_uid: HashCode;\n\n // Amount to transfer.\n amount: AmountString;\n\n // Base URL of the exchange. Shall be included by the bank gateway\n // in the appropriate section of the wire transfer details.\n exchange_base_url: string;\n\n // Wire transfer identifier chosen by the exchange,\n // used by the merchant to identify the Taler order(s)\n // associated with this wire transfer.\n wtid: ShortHashCode;\n\n // The recipient's account identifier as a payto URI.\n credit_account: PaytoString;\n }\n\n export interface IncomingHistory {\n // Array of incoming transactions.\n incoming_transactions: IncomingBankTransaction[];\n\n // Payto URI to identify the receiver of funds.\n // This must be one of the exchange's bank accounts.\n // Credit account is shared by all incoming transactions\n // as per the nature of the request.\n\n // undefined if incoming transaction is empty\n credit_account?: PaytoString;\n }\n\n // Union discriminated by the \"type\" field.\n export type IncomingBankTransaction =\n | IncomingReserveTransaction\n | IncomingWadTransaction;\n\n export interface IncomingReserveTransaction {\n type: \"RESERVE\";\n\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the sender of funds.\n debit_account: PaytoString;\n\n // The reserve public key extracted from the transaction details.\n reserve_pub: EddsaPublicKey;\n }\n\n export interface IncomingWadTransaction {\n type: \"WAD\";\n\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the receiver of funds.\n // This must be one of the exchange's bank accounts.\n credit_account: PaytoString;\n\n // Payto URI to identify the sender of funds.\n debit_account: PaytoString;\n\n // Base URL of the exchange that originated the wad.\n origin_exchange_url: string;\n\n // The reserve public key extracted from the transaction details.\n wad_id: WadId;\n }\n\n export interface OutgoingHistory {\n // Array of outgoing transactions.\n outgoing_transactions: OutgoingBankTransaction[];\n\n // Payto URI to identify the sender of funds.\n // This must be one of the exchange's bank accounts.\n // Credit account is shared by all incoming transactions\n // as per the nature of the request.\n\n // undefined if outgoing transactions is empty\n debit_account?: PaytoString;\n }\n\n export interface OutgoingBankTransaction {\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the receiver of funds.\n credit_account: PaytoString;\n\n // The wire transfer ID in the outgoing transaction.\n wtid: ShortHashCode;\n\n // Base URL of the exchange.\n exchange_base_url: string;\n }\n\n export interface AddIncomingRequest {\n // Amount to transfer.\n amount: AmountString;\n\n // Reserve public key that is included in the wire transfer details\n // to identify the reserve that is being topped up.\n reserve_pub: EddsaPublicKey;\n\n // Account (as payto URI) that makes the wire transfer to the exchange.\n // Usually this account must be created by the test harness before this API is\n // used. An exception is the \"exchange-fakebank\", where any debit account can be\n // specified, as it is automatically created.\n debit_account: PaytoString;\n }\n\n export interface AddIncomingResponse {\n // Timestamp that indicates when the wire transfer will be executed.\n // In cases where the wire transfer gateway is unable to know when\n // the wire transfer will be executed, the time at which the request\n // has been received and stored will be returned.\n // The purpose of this field is for debugging (humans trying to find\n // the transaction) as well as for taxation (determining which\n // time period a transaction belongs to).\n timestamp: Timestamp;\n\n // Opaque ID of the transaction that the bank has made.\n row_id: SafeUint64;\n }\n}\n\nexport namespace TalerRevenueApi {\n export interface MerchantIncomingHistory {\n // Array of incoming transactions.\n incoming_transactions: MerchantIncomingBankTransaction[];\n\n // Payto URI to identify the receiver of funds.\n // This must be one of the merchant's bank accounts.\n // Credit account is shared by all incoming transactions\n // as per the nature of the request.\n credit_account: PaytoString;\n }\n\n export interface MerchantIncomingBankTransaction {\n // Opaque identifier of the returned record.\n row_id: SafeUint64;\n\n // Date of the transaction.\n date: Timestamp;\n\n // Amount transferred.\n amount: AmountString;\n\n // Payto URI to identify the sender of funds.\n debit_account: PaytoString;\n\n // Base URL of the exchange where the transfer originated form.\n exchange_url: string;\n\n // The wire transfer identifier.\n wtid: WireTransferIdentifierRawP;\n }\n}\n\nexport namespace TalerBankConversionApi {\n export interface ConversionInfo {\n // Exchange rate to buy regional currency from fiat\n cashin_ratio: DecimalNumber;\n\n // Exchange rate to sell regional currency for fiat\n cashout_ratio: DecimalNumber;\n\n // Fee to subtract after applying the cashin ratio.\n cashin_fee: AmountString;\n\n // Fee to subtract after applying the cashout ratio.\n cashout_fee: AmountString;\n\n // Minimum amount authorised for cashin, in fiat before conversion\n cashin_min_amount: AmountString;\n\n // Minimum amount authorised for cashout, in regional before conversion\n cashout_min_amount: AmountString;\n\n // Smallest possible regional amount, converted amount is rounded to this amount\n cashin_tiny_amount: AmountString;\n\n // Smallest possible fiat amount, converted amount is rounded to this amount\n cashout_tiny_amount: AmountString;\n\n // Rounding mode used during cashin conversion\n cashin_rounding_mode: \"zero\" | \"up\" | \"nearest\";\n\n // Rounding mode used during cashout conversion\n cashout_rounding_mode: \"zero\" | \"up\" | \"nearest\";\n }\n\n export interface IntegrationConfig {\n // libtool-style representation of the Bank protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Name of the API.\n name: \"taler-conversion-info\";\n\n // Currency used by this bank.\n regional_currency: string;\n\n // How the bank SPA should render this currency.\n regional_currency_specification: CurrencySpecification;\n\n // External currency used during conversion.\n fiat_currency: string;\n\n // How the bank SPA should render this currency.\n fiat_currency_specification: CurrencySpecification;\n\n // Extra conversion rate information.\n // Only present if server opts in to report the static conversion rate.\n conversion_rate?: ConversionInfo;\n }\n\n export interface CashinConversionResponse {\n // Amount that the user will get deducted from their fiat\n // bank account, according to the 'amount_credit' value.\n amount_debit: AmountString;\n // Amount that the user will receive in their regional\n // bank account, according to 'amount_debit'.\n amount_credit: AmountString;\n }\n\n export interface CashoutConversionResponse {\n // Amount that the user will get deducted from their regional\n // bank account, according to the 'amount_credit' value.\n amount_debit: AmountString;\n // Amount that the user will receive in their fiat\n // bank account, according to 'amount_debit'.\n amount_credit: AmountString;\n }\n\n export type RoundingMode = \"zero\" | \"up\" | \"nearest\";\n\n export interface ConversionRate {\n // Exchange rate to buy regional currency from fiat\n cashin_ratio: DecimalNumber;\n\n // Fee to subtract after applying the cashin ratio.\n cashin_fee: AmountString;\n\n // Minimum amount authorised for cashin, in fiat before conversion\n cashin_min_amount: AmountString;\n\n // Smallest possible regional amount, converted amount is rounded to this amount\n cashin_tiny_amount: AmountString;\n\n // Rounding mode used during cashin conversion\n cashin_rounding_mode: RoundingMode;\n\n // Exchange rate to sell regional currency for fiat\n cashout_ratio: DecimalNumber;\n\n // Fee to subtract after applying the cashout ratio.\n cashout_fee: AmountString;\n\n // Minimum amount authorised for cashout, in regional before conversion\n cashout_min_amount: AmountString;\n\n // Smallest possible fiat amount, converted amount is rounded to this amount\n cashout_tiny_amount: AmountString;\n\n // Rounding mode used during cashout conversion\n cashout_rounding_mode: RoundingMode;\n }\n}\nexport namespace TalerBankIntegrationApi {\n export interface BankVersion {\n // libtool-style representation of the Bank protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Currency used by this bank.\n currency: string;\n\n // How the bank SPA should render this currency.\n currency_specification?: CurrencySpecification;\n\n // Name of the API.\n name: \"taler-bank-integration\";\n }\n\n export interface BankWithdrawalOperationStatus {\n // Current status of the operation\n // pending: the operation is pending parameters selection (exchange and reserve public key)\n // selected: the operations has been selected and is pending confirmation\n // aborted: the operation has been aborted\n // confirmed: the transfer has been confirmed and registered by the bank\n status: WithdrawalOperationStatus;\n\n // Amount that will be withdrawn with this operation\n // (raw amount without fee considerations).\n amount: AmountString;\n\n // Bank account of the customer that is withdrawing, as a\n // payto URI.\n sender_wire?: PaytoString;\n\n // Suggestion for an exchange given by the bank.\n suggested_exchange?: string;\n\n // URL that the user needs to navigate to in order to\n // complete some final confirmation (e.g. 2FA).\n // It may contain withdrawal operation id\n confirm_transfer_url?: string;\n\n // Wire transfer types supported by the bank.\n wire_types: string[];\n\n // Reserve public key selected by the exchange,\n // only non-null if status is selected or confirmed.\n selected_reserve_pub?: string;\n\n // Exchange account selected by the wallet\n // only non-null if status is selected or confirmed.\n selected_exchange_account?: string;\n }\n\n export interface BankWithdrawalOperationPostRequest {\n // Reserve public key.\n reserve_pub: string;\n\n // Payto address of the exchange selected for the withdrawal.\n selected_exchange: PaytoString;\n }\n\n export interface BankWithdrawalOperationPostResponse {\n // Current status of the operation\n // pending: the operation is pending parameters selection (exchange and reserve public key)\n // selected: the operations has been selected and is pending confirmation\n // aborted: the operation has been aborted\n // confirmed: the transfer has been confirmed and registered by the bank\n status: Omit<\"pending\", WithdrawalOperationStatus>;\n\n // URL that the user needs to navigate to in order to\n // complete some final confirmation (e.g. 2FA).\n //\n // Only applicable when status is selected.\n // It may contain withdrawal operation id\n confirm_transfer_url?: string;\n }\n}\nexport namespace TalerCorebankApi {\n export interface IntegrationConfig {\n // libtool-style representation of the Bank protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n currency: string;\n\n // How the bank SPA should render this currency.\n currency_specification: CurrencySpecification;\n\n // Name of the API.\n name: \"taler-bank-integration\";\n }\n export interface Config {\n // Name of this API, always \"taler-corebank\".\n name: \"libeufin-bank\";\n // name: \"taler-corebank\";\n\n // API version in the form $n:$n:$n\n version: string;\n\n // If 'true' the server provides local currency conversion support\n // If 'false' some parts of the API are not supported and return 501\n allow_conversion: boolean;\n\n // If 'true' anyone can register\n // If 'false' only the admin can\n allow_registrations: boolean;\n\n // If 'true' account can delete themselves\n // If 'false' only the admin can delete accounts\n allow_deletions: boolean;\n\n // If 'true' anyone can edit their name\n // If 'false' only admin can\n allow_edit_name: boolean;\n\n // If 'true' anyone can edit their cashout account\n // If 'false' only the admin\n allow_edit_cashout_payto_uri: boolean;\n\n // Default debt limit for newly created accounts\n default_debit_threshold: AmountString;\n\n // Currency used by this bank.\n currency: string;\n\n // How the bank SPA should render this currency.\n currency_specification: CurrencySpecification;\n\n // TAN channels supported by the server\n supported_tan_channels: TanChannel[];\n }\n\n export interface BankAccountCreateWithdrawalRequest {\n // Amount to withdraw.\n amount: AmountString;\n }\n export interface BankAccountCreateWithdrawalResponse {\n // ID of the withdrawal, can be used to view/modify the withdrawal operation.\n withdrawal_id: string;\n\n // URI that can be passed to the wallet to initiate the withdrawal.\n taler_withdraw_uri: TalerActionString;\n }\n export interface WithdrawalPublicInfo {\n // Current status of the operation\n // pending: the operation is pending parameters selection (exchange and reserve public key)\n // selected: the operations has been selected and is pending confirmation\n // aborted: the operation has been aborted\n // confirmed: the transfer has been confirmed and registered by the bank\n status: WithdrawalOperationStatus;\n\n // Amount that will be withdrawn with this operation\n // (raw amount without fee considerations).\n amount: AmountString;\n\n // Account username\n username: string;\n\n // Reserve public key selected by the exchange,\n // only non-null if status is selected or confirmed.\n selected_reserve_pub?: string;\n\n // Exchange account selected by the wallet\n // only non-null if status is selected or confirmed.\n selected_exchange_account?: PaytoString;\n }\n\n export interface BankAccountTransactionsResponse {\n transactions: BankAccountTransactionInfo[];\n }\n\n export interface BankAccountTransactionInfo {\n creditor_payto_uri: PaytoString;\n debtor_payto_uri: PaytoString;\n\n amount: AmountString;\n direction: \"debit\" | \"credit\";\n\n subject: string;\n\n // Transaction unique ID. Matches\n // $transaction_id from the URI.\n row_id: number;\n date: Timestamp;\n }\n\n export interface CreateTransactionRequest {\n // Address in the Payto format of the wire transfer receiver.\n // It needs at least the 'message' query string parameter.\n payto_uri: PaytoString;\n\n // Transaction amount (in the $currency:x.y format), optional.\n // However, when not given, its value must occupy the 'amount'\n // query string parameter of the 'payto' field. In case it\n // is given in both places, the paytoUri's takes the precedence.\n amount?: AmountString;\n }\n\n export interface CreateTransactionResponse {\n // ID identifying the transaction being created\n row_id: Integer;\n }\n\n export interface RegisterAccountResponse {\n // Internal payto URI of this bank account.\n internal_payto_uri: PaytoString;\n }\n\n export interface RegisterAccountRequest {\n // Username\n username: string;\n\n // Password.\n password: string;\n\n // Legal name of the account owner\n name: string;\n\n // Defaults to false.\n is_public?: boolean;\n\n // Is this a taler exchange account?\n // If true:\n // - incoming transactions to the account that do not\n // have a valid reserve public key are automatically\n // - the account provides the taler-wire-gateway-api endpoints\n // Defaults to false.\n is_taler_exchange?: boolean;\n\n // Addresses where to send the TAN for transactions.\n // Currently only used for cashouts.\n // If missing, cashouts will fail.\n // In the future, might be used for other transactions\n // as well.\n contact_data?: ChallengeContactData;\n\n // 'payto' address of a fiat bank account.\n // Payments will be sent to this bank account\n // when the user wants to convert the regional currency\n // back to fiat currency outside bank.\n cashout_payto_uri?: PaytoString;\n\n // Internal payto URI of this bank account.\n // Used mostly for testing.\n payto_uri?: PaytoString;\n\n // If present, set the max debit allowed for this user\n // Only admin can change this property.\n debit_threshold?: AmountString;\n }\n\n export interface ChallengeContactData {\n // E-Mail address\n email?: EmailAddress;\n\n // Phone number.\n phone?: PhoneNumber;\n }\n\n export interface AccountReconfiguration {\n // Addresses where to send the TAN for transactions.\n // Currently only used for cashouts.\n // If missing, cashouts will fail.\n // In the future, might be used for other transactions\n // as well.\n // Only admin can change this property.\n contact_data?: ChallengeContactData;\n\n // 'payto' URI of a fiat bank account.\n // Payments will be sent to this bank account\n // when the user wants to convert the regional currency\n // back to fiat currency outside bank.\n // Only admin can change this property if not allowed in config\n cashout_payto_uri?: PaytoString;\n\n // If present, change the legal name associated with $username.\n // Only admin can change this property if not allowed in config\n name?: string;\n\n // Make this account visible to anyone?\n is_public?: boolean;\n\n // If present, change the max debit allowed for this user\n // Only admin can change this property.\n debit_threshold?: AmountString;\n }\n\n export interface AccountPasswordChange {\n // New password.\n new_password: string;\n // Old password. If present, chec that the old password matches.\n // Optional for admin account.\n old_password?: string;\n }\n\n export interface PublicAccountsResponse {\n public_accounts: PublicAccount[];\n }\n export interface PublicAccount {\n // Username of the account\n username: string;\n\n // Internal payto URI of this bank account.\n payto_uri: string;\n\n // Current balance of the account\n balance: Balance;\n\n // Is this a taler exchange account?\n is_taler_exchange: boolean;\n }\n\n export interface ListBankAccountsResponse {\n accounts: AccountMinimalData[];\n }\n export interface Balance {\n amount: AmountString;\n credit_debit_indicator: \"credit\" | \"debit\";\n }\n export interface AccountMinimalData {\n // Username\n username: string;\n\n // Legal name of the account owner.\n name: string;\n\n // current balance of the account\n balance: Balance;\n\n // Number indicating the max debit allowed for the requesting user.\n debit_threshold: AmountString;\n\n // Is this account visible to anyone?\n is_public: boolean;\n\n // Is this a taler exchange account?\n is_taler_exchange: boolean;\n }\n\n export interface AccountData {\n // Legal name of the account owner.\n name: string;\n\n // Available balance on the account.\n balance: Balance;\n\n // payto://-URI of the account.\n payto_uri: PaytoString;\n\n // Number indicating the max debit allowed for the requesting user.\n debit_threshold: AmountString;\n\n contact_data?: ChallengeContactData;\n\n // 'payto' address pointing the bank account\n // where to send cashouts. This field is optional\n // because not all the accounts are required to participate\n // in the merchants' circuit. One example is the exchange:\n // that never cashouts. Registering these accounts can\n // be done via the access API.\n cashout_payto_uri?: PaytoString;\n\n // Is this account visible to anyone?\n is_public: boolean;\n\n // Is this a taler exchange account?\n is_taler_exchange: boolean;\n }\n\n export interface CashoutRequest {\n // Nonce to make the request idempotent. Requests with the same\n // request_uid that differ in any of the other fields\n // are rejected.\n request_uid: ShortHashCode;\n\n // Optional subject to associate to the\n // cashout operation. This data will appear\n // as the incoming wire transfer subject in\n // the user's fiat bank account.\n subject?: string;\n\n // That is the plain amount that the user specified\n // to cashout. Its $currency is the (regional) currency of the\n // bank instance.\n amount_debit: AmountString;\n\n // That is the amount that will effectively be\n // transferred by the bank to the user's bank\n // account, that is external to the regional currency.\n // It is expressed in the fiat currency and\n // is calculated after the cashout fee and the\n // exchange rate. See the /cashout-rates call.\n // The client needs to calculate this amount\n // correctly based on the amount_debit and the cashout rate,\n // otherwise the request will fail.\n amount_credit: AmountString;\n\n // Which channel the TAN should be sent to. If\n // this field is missing, it defaults to SMS.\n // The default choice prefers to change the communication\n // channel respect to the one used to issue this request.\n tan_channel?: TanChannel;\n }\n\n export interface CashoutPending {\n // ID identifying the operation being created\n // and now waiting for the TAN confirmation.\n cashout_id: number;\n }\n\n export interface CashoutConfirmRequest {\n // the TAN that confirms $CASHOUT_ID.\n tan: string;\n }\n\n export interface Cashouts {\n // Every string represents a cash-out operation ID.\n cashouts: CashoutInfo[];\n }\n\n export interface CashoutInfo {\n cashout_id: number;\n status: \"pending\" | \"aborted\" | \"confirmed\";\n }\n export interface GlobalCashouts {\n // Every string represents a cash-out operation ID.\n cashouts: GlobalCashoutInfo[];\n }\n export interface GlobalCashoutInfo {\n cashout_id: number;\n username: string;\n status: \"pending\" | \"aborted\" | \"confirmed\";\n }\n\n export interface CashoutStatusResponse {\n status: \"pending\" | \"aborted\" | \"confirmed\";\n\n // Amount debited to the internal\n // regional currency bank account.\n amount_debit: AmountString;\n\n // Amount credited to the external bank account.\n amount_credit: AmountString;\n\n // Transaction subject.\n subject: string;\n\n // Fiat bank account that will receive the cashed out amount.\n // Specified as a payto URI.\n // credit_payto_uri: PaytoString;\n\n // Time when the cashout was created.\n creation_time: Timestamp;\n\n // Time when the cashout was confirmed via its TAN.\n // Missing when the operation wasn't confirmed yet.\n confirmation_time?: Timestamp;\n\n // Channel of the last successful transmission of the TAN challenge.\n // Missing when all transmissions failed.\n tan_channel?: TanChannel;\n\n // Info of the last successful transmission of the TAN challenge.\n // Missing when all transmissions failed.\n tan_info?: string;\n }\n\n export interface ConversionRatesResponse {\n // Exchange rate to buy the local currency from the external one\n buy_at_ratio: DecimalNumber;\n\n // Exchange rate to sell the local currency for the external one\n sell_at_ratio: DecimalNumber;\n\n // Fee to subtract after applying the buy ratio.\n buy_in_fee: DecimalNumber;\n\n // Fee to subtract after applying the sell ratio.\n sell_out_fee: DecimalNumber;\n }\n\n export enum MonitorTimeframeParam {\n hour,\n day,\n month,\n year,\n decade,\n }\n\n export type MonitorResponse = MonitorNoConversion | MonitorWithConversion;\n\n // Monitoring stats when conversion is not supported\n export interface MonitorNoConversion {\n type: \"no-conversions\";\n\n // How many payments were made to a Taler exchange by another\n // bank account.\n talerInCount: number;\n\n // Overall volume that has been paid to a Taler\n // exchange by another bank account.\n talerInVolume: AmountString;\n\n // How many payments were made by a Taler exchange to another\n // bank account.\n talerOutCount: number;\n\n // Overall volume that has been paid by a Taler\n // exchange to another bank account.\n talerOutVolume: AmountString;\n }\n // Monitoring stats when conversion is supported\n export interface MonitorWithConversion {\n type: \"with-conversions\";\n\n // How many cashin operations were confirmed by a\n // wallet owner. Note: wallet owners\n // are NOT required to be customers of the libeufin-bank.\n cashinCount: number;\n\n // Overall regional currency that has been paid by the regional admin account\n // to regional bank accounts to fulfill all the confirmed cashin operations.\n cashinRegionalVolume: AmountString;\n\n // Overall fiat currency that has been paid to the fiat admin account\n // by fiat bank accounts to fulfill all the confirmed cashin operations.\n cashinFiatVolume: AmountString;\n\n // How many cashout operations were confirmed.\n cashoutCount: number;\n\n // Overall regional currency that has been paid to the regional admin account\n // by fiat bank accounts to fulfill all the confirmed cashout operations.\n cashoutRegionalVolume: AmountString;\n\n // Overall fiat currency that has been paid by the fiat admin account\n // to fiat bank accounts to fulfill all the confirmed cashout operations.\n cashoutFiatVolume: AmountString;\n\n // How many payments were made to a Taler exchange by another\n // bank account.\n talerInCount: number;\n\n // Overall volume that has been paid to a Taler\n // exchange by another bank account.\n talerInVolume: AmountString;\n\n // How many payments were made by a Taler exchange to another\n // bank account.\n talerOutCount: number;\n\n // Overall volume that has been paid by a Taler\n // exchange to another bank account.\n talerOutVolume: AmountString;\n }\n}\n\nexport namespace TalerExchangeApi {\n export enum AmlState {\n normal = 0,\n pending = 1,\n frozen = 2,\n }\n\n export interface AmlRecords {\n // Array of AML records matching the query.\n records: AmlRecord[];\n }\n export interface AmlRecord {\n // Which payto-address is this record about.\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n\n // What is the current AML state.\n current_state: AmlState;\n\n // Monthly transaction threshold before a review will be triggered\n threshold: AmountString;\n\n // RowID of the record.\n rowid: Integer;\n }\n\n export interface AmlDecisionDetails {\n // Array of AML decisions made for this account. Possibly\n // contains only the most recent decision if \"history\" was\n // not set to 'true'.\n aml_history: AmlDecisionDetail[];\n\n // Array of KYC attributes obtained for this account.\n kyc_attributes: KycDetail[];\n }\n export interface AmlDecisionDetail {\n // What was the justification given?\n justification: string;\n\n // What is the new AML state.\n new_state: Integer;\n\n // When was this decision made?\n decision_time: Timestamp;\n\n // What is the new AML decision threshold (in monthly transaction volume)?\n new_threshold: AmountString;\n\n // Who made the decision?\n decider_pub: AmlOfficerPublicKeyP;\n }\n export interface KycDetail {\n // Name of the configuration section that specifies the provider\n // which was used to collect the KYC details\n provider_section: string;\n\n // The collected KYC data. NULL if the attribute data could not\n // be decrypted (internal error of the exchange, likely the\n // attribute key was changed).\n attributes?: Object;\n\n // Time when the KYC data was collected\n collection_time: Timestamp;\n\n // Time when the validity of the KYC data will expire\n expiration_time: Timestamp;\n }\n\n export interface AmlDecision {\n // Human-readable justification for the decision.\n justification: string;\n\n // At what monthly transaction volume should the\n // decision be automatically reviewed?\n new_threshold: AmountString;\n\n // Which payto-address is the decision about?\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n\n // What is the new AML state (e.g. frozen, unfrozen, etc.)\n // Numerical values are defined in AmlDecisionState.\n new_state: Integer;\n\n // Signature by the AML officer over a\n // TALER_MasterAmlOfficerStatusPS.\n // Must have purpose TALER_SIGNATURE_MASTER_AML_KEY.\n officer_sig: EddsaSignature;\n\n // When was the decision made?\n decision_time: Timestamp;\n\n // Optional argument to impose new KYC requirements\n // that the customer has to satisfy to unblock transactions.\n kyc_requirements?: string[];\n }\n\n export interface ExchangeVersionResponse {\n // libtool-style representation of the Exchange protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Name of the protocol.\n name: \"taler-exchange\";\n\n // Currency supported by this exchange.\n currency: string;\n\n // How wallets should render this currency.\n currency_specification: CurrencySpecification;\n\n // Names of supported KYC requirements.\n supported_kyc_requirements: string[];\n }\n\n export type AccountRestriction =\n | RegexAccountRestriction\n | DenyAllAccountRestriction;\n // Account restriction that disables this type of\n // account for the indicated operation categorically.\n export interface DenyAllAccountRestriction {\n type: \"deny\";\n }\n // Accounts interacting with this type of account\n // restriction must have a payto://-URI matching\n // the given regex.\n export interface RegexAccountRestriction {\n type: \"regex\";\n\n // Regular expression that the payto://-URI of the\n // partner account must follow. The regular expression\n // should follow posix-egrep, but without support for character\n // classes, GNU extensions, back-references or intervals. See\n // https://www.gnu.org/software/findutils/manual/html_node/find_html/posix_002degrep-regular-expression-syntax.html\n // for a description of the posix-egrep syntax. Applications\n // may support regexes with additional features, but exchanges\n // must not use such regexes.\n payto_regex: string;\n\n // Hint for a human to understand the restriction\n // (that is hopefully easier to comprehend than the regex itself).\n human_hint: string;\n\n // Map from IETF BCP 47 language tags to localized\n // human hints.\n human_hint_i18n?: { [lang_tag: string]: string };\n }\n\n export interface WireAccount {\n // payto:// URI identifying the account and wire method\n payto_uri: PaytoString;\n\n // URI to convert amounts from or to the currency used by\n // this wire account of the exchange. Missing if no\n // conversion is applicable.\n conversion_url?: string;\n\n // Restrictions that apply to bank accounts that would send\n // funds to the exchange (crediting this exchange bank account).\n // Optional, empty array for unrestricted.\n credit_restrictions: AccountRestriction[];\n\n // Restrictions that apply to bank accounts that would receive\n // funds from the exchange (debiting this exchange bank account).\n // Optional, empty array for unrestricted.\n debit_restrictions: AccountRestriction[];\n\n // Signature using the exchange's offline key over\n // a TALER_MasterWireDetailsPS\n // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.\n master_sig: EddsaSignature;\n }\n}\n\nexport namespace TalerMerchantApi {\n export interface VersionResponse {\n // libtool-style representation of the Merchant protocol version, see\n // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning\n // The format is \"current:revision:age\".\n version: string;\n\n // Name of the protocol.\n name: \"taler-merchant\";\n\n // Default (!) currency supported by this backend.\n // This is the currency that the backend should\n // suggest by default to the user when entering\n // amounts. See currencies for a list of\n // supported currencies and how to render them.\n currency: string;\n\n // How wallets should render currencies supported\n // by this backend. Maps\n // currency codes (e.g. \"EUR\" or \"KUDOS\") to\n // the respective currency specification.\n // All currencies in this map are supported by\n // the backend.\n currencies: { [currency: string]: CurrencySpecification };\n }\n\n export interface ClaimRequest {\n // Nonce to identify the wallet that claimed the order.\n nonce: string;\n\n // Token that authorizes the wallet to claim the order.\n // *Optional* as the merchant may not have required it\n // (create_token set to false in PostOrderRequest).\n token?: ClaimToken;\n }\n\n export interface ClaimResponse {\n // Contract terms of the claimed order\n contract_terms: ContractTerms;\n\n // Signature by the merchant over the contract terms.\n sig: EddsaSignature;\n }\n\n export interface PaymentResponse {\n // Signature on TALER_PaymentResponsePS with the public\n // key of the merchant instance.\n sig: EddsaSignature;\n\n // Text to be shown to the point-of-sale staff as a proof of\n // payment.\n pos_confirmation?: string;\n }\n\n interface PayRequest {\n // The coins used to make the payment.\n coins: CoinPaySig[];\n\n // Custom inputs from the wallet for the contract.\n wallet_data?: Object;\n\n // The session for which the payment is made (or replayed).\n // Only set for session-based payments.\n session_id?: string;\n }\n export interface CoinPaySig {\n // Signature by the coin.\n coin_sig: EddsaSignature;\n\n // Public key of the coin being spent.\n coin_pub: EddsaPublicKey;\n\n // Signature made by the denomination public key.\n ub_sig: RsaSignature;\n\n // The hash of the denomination public key associated with this coin.\n h_denom: HashCode;\n\n // The amount that is subtracted from this coin with this payment.\n contribution: AmountString;\n\n // URL of the exchange this coin was withdrawn from.\n exchange_url: string;\n }\n\n interface StatusPaid {\n // Was the payment refunded (even partially, via refund or abort)?\n refunded: boolean;\n\n // Is any amount of the refund still waiting to be picked up (even partially)?\n refund_pending: boolean;\n\n // Amount that was refunded in total.\n refund_amount: AmountString;\n\n // Amount that already taken by the wallet.\n refund_taken: AmountString;\n }\n interface StatusGotoResponse {\n // The client should go to the reorder URL, there a fresh\n // order might be created as this one is taken by another\n // customer or wallet (or repurchase detection logic may\n // apply).\n public_reorder_url: string;\n }\n interface StatusUnpaidResponse {\n // URI that the wallet must process to complete the payment.\n taler_pay_uri: string;\n\n // Status URL, can be used as a redirect target for the browser\n // to show the order QR code / trigger the wallet.\n fulfillment_url?: string;\n\n // Alternative order ID which was paid for already in the same session.\n // Only given if the same product was purchased before in the same session.\n already_paid_order_id?: string;\n }\n\n interface PaidRefundStatusResponse {\n // Text to be shown to the point-of-sale staff as a proof of\n // payment (present only if re-usable OTP algorithm is used).\n pos_confirmation?: string;\n\n // True if the order has been subjected to\n // refunds. False if it was simply paid.\n refunded: boolean;\n }\n interface PaidRequest {\n // Signature on TALER_PaymentResponsePS with the public\n // key of the merchant instance.\n sig: EddsaSignature;\n\n // Hash of the order's contract terms (this is used to authenticate the\n // wallet/customer and to enable signature verification without\n // database access).\n h_contract: HashCode;\n\n // Hash over custom inputs from the wallet for the contract.\n wallet_data_hash?: HashCode;\n\n // Session id for which the payment is proven.\n session_id: string;\n }\n\n interface AbortRequest {\n // Hash of the order's contract terms (this is used to authenticate the\n // wallet/customer in case $ORDER_ID is guessable).\n h_contract: HashCode;\n\n // List of coins the wallet would like to see refunds for.\n // (Should be limited to the coins for which the original\n // payment succeeded, as far as the wallet knows.)\n coins: AbortingCoin[];\n }\n interface AbortingCoin {\n // Public key of a coin for which the wallet is requesting an abort-related refund.\n coin_pub: EddsaPublicKey;\n\n // The amount to be refunded (matches the original contribution)\n contribution: AmountString;\n\n // URL of the exchange this coin was withdrawn from.\n exchange_url: string;\n }\n interface AbortResponse {\n // List of refund responses about the coins that the wallet\n // requested an abort for. In the same order as the coins\n // from the original request.\n // The rtransaction_id is implied to be 0.\n refunds: MerchantAbortPayRefundStatus[];\n }\n type MerchantAbortPayRefundStatus =\n | MerchantAbortPayRefundSuccessStatus\n | MerchantAbortPayRefundFailureStatus;\n // Details about why a refund failed.\n interface MerchantAbortPayRefundFailureStatus {\n // Used as tag for the sum type RefundStatus sum type.\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: Integer;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: Integer;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: Object;\n }\n // Additional details needed to verify the refund confirmation signature\n // (h_contract_terms and merchant_pub) are already known\n // to the wallet and thus not included.\n interface MerchantAbortPayRefundSuccessStatus {\n // Used as tag for the sum type MerchantCoinRefundStatus sum type.\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // The EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund.\n exchange_sig: EddsaSignature;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKey;\n }\n\n interface WalletRefundRequest {\n // Hash of the order's contract terms (this is used to authenticate the\n // wallet/customer).\n h_contract: HashCode;\n }\n interface WalletRefundResponse {\n // Amount that was refunded in total.\n refund_amount: AmountString;\n\n // Successful refunds for this payment, empty array for none.\n refunds: MerchantCoinRefundStatus[];\n\n // Public key of the merchant.\n merchant_pub: EddsaPublicKey;\n }\n type MerchantCoinRefundStatus =\n | MerchantCoinRefundSuccessStatus\n | MerchantCoinRefundFailureStatus;\n // Details about why a refund failed.\n interface MerchantCoinRefundFailureStatus {\n // Used as tag for the sum type RefundStatus sum type.\n type: \"failure\";\n\n // HTTP status of the exchange request, must NOT be 200.\n exchange_status: Integer;\n\n // Taler error code from the exchange reply, if available.\n exchange_code?: Integer;\n\n // If available, HTTP reply from the exchange.\n exchange_reply?: Object;\n\n // Refund transaction ID.\n rtransaction_id: Integer;\n\n // Public key of a coin that was refunded.\n coin_pub: EddsaPublicKey;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n // Timestamp when the merchant approved the refund.\n // Useful for grouping refunds.\n execution_time: Timestamp;\n }\n // Additional details needed to verify the refund confirmation signature\n // (h_contract_terms and merchant_pub) are already known\n // to the wallet and thus not included.\n interface MerchantCoinRefundSuccessStatus {\n // Used as tag for the sum type MerchantCoinRefundStatus sum type.\n type: \"success\";\n\n // HTTP status of the exchange request, 200 (integer) required for refund confirmations.\n exchange_status: 200;\n\n // The EdDSA :ref:signature (binary-only) with purpose\n // TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND using a current signing key of the\n // exchange affirming the successful refund.\n exchange_sig: EddsaSignature;\n\n // Public EdDSA key of the exchange that was used to generate the signature.\n // Should match one of the exchange's signing keys from /keys. It is given\n // explicitly as the client might otherwise be confused by clock skew as to\n // which signing key was used.\n exchange_pub: EddsaPublicKey;\n\n // Refund transaction ID.\n rtransaction_id: Integer;\n\n // Public key of a coin that was refunded.\n coin_pub: EddsaPublicKey;\n\n // Amount that was refunded, including refund fee charged by the exchange\n // to the customer.\n refund_amount: AmountString;\n\n // Timestamp when the merchant approved the refund.\n // Useful for grouping refunds.\n execution_time: Timestamp;\n }\n\n interface RewardInformation {\n // Exchange from which the reward will be withdrawn. Needed by the\n // wallet to determine denominations, fees, etc.\n exchange_url: string;\n\n // URL where to go after obtaining the reward.\n next_url: string;\n\n // (Remaining) amount of the reward (including fees).\n reward_amount: AmountString;\n\n // Timestamp indicating when the reward is set to expire (may be in the past).\n // Note that rewards that have expired MAY also result in a 404 response.\n expiration: Timestamp;\n }\n\n interface RewardPickupRequest {\n // List of planchets the wallet wants to use for the reward.\n planchets: PlanchetDetail[];\n }\n interface PlanchetDetail {\n // Hash of the denomination's public key (hashed to reduce\n // bandwidth consumption).\n denom_pub_hash: HashCode;\n\n // Coin's blinded public key.\n coin_ev: CoinEnvelope;\n }\n interface RewardResponse {\n // Blind RSA signatures over the planchets.\n // The order of the signatures matches the planchets list.\n blind_sigs: BlindSignature[];\n }\n interface BlindSignature {\n // The (blind) RSA signature. Still needs to be unblinded.\n blind_sig: BlindedRsaSignature;\n }\n\n interface InstanceConfigurationMessage {\n // Name of the merchant instance to create (will become $INSTANCE).\n // Must match the regex ^[A-Za-z0-9][A-Za-z0-9_.@-]+$.\n id: string;\n\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (business or individual).\n // Defaults to 'business'. Should become mandatory field\n // in the future, left as optional for API compatibility for now.\n user_type?: string;\n\n // Merchant email for customer contact.\n email?: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // Authentication settings for this instance\n auth: InstanceAuthConfigurationMessage;\n\n // The merchant's physical address (to be put into contracts).\n address: Location;\n\n // The jurisdiction under which the merchant conducts its business\n // (to be put into contracts).\n jurisdiction: Location;\n\n // Use STEFAN curves to determine default fees?\n // If false, no fees are allowed by default.\n // Can always be overridden by the frontend on a per-order basis.\n use_stefan: boolean;\n\n // If the frontend does NOT specify an execution date, how long should\n // we tell the exchange to wait to aggregate transactions before\n // executing the wire transfer? This delay is added to the current\n // time when we generate the advisory execution time for the exchange.\n default_wire_transfer_delay: RelativeTime;\n\n // If the frontend does NOT specify a payment deadline, how long should\n // offers we make be valid by default?\n default_pay_delay: RelativeTime;\n }\n\n interface InstanceAuthConfigurationMessage {\n // Type of authentication.\n // \"external\": The mechant backend does not do\n // any authentication checks. Instead an API\n // gateway must do the authentication.\n // \"token\": The merchant checks an auth token.\n // See \"token\" for details.\n method: \"external\" | \"token\";\n\n // For method \"token\", this field is mandatory.\n // The token MUST begin with the string \"secret-token:\".\n // After the auth token has been set (with method \"token\"),\n // the value must be provided in a \"Authorization: Bearer $token\"\n // header.\n token?: string;\n }\n\n interface LoginTokenRequest {\n // Scope of the token (which kinds of operations it will allow)\n scope: \"readonly\" | \"write\";\n\n // Server may impose its own upper bound\n // on the token validity duration\n duration?: RelativeTime;\n\n // Can this token be refreshed?\n // Defaults to false.\n refreshable?: boolean;\n }\n interface LoginTokenSuccessResponse {\n // The login token that can be used to access resources\n // that are in scope for some time. Must be prefixed\n // with \"Bearer \" when used in the \"Authorization\" HTTP header.\n // Will already begin with the RFC 8959 prefix.\n token: string;\n\n // Scope of the token (which kinds of operations it will allow)\n scope: \"readonly\" | \"write\";\n\n // Server may impose its own upper bound\n // on the token validity duration\n expiration: Timestamp;\n\n // Can this token be refreshed?\n refreshable: boolean;\n }\n\n interface InstanceReconfigurationMessage {\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (business or individual).\n // Defaults to 'business'. Should become mandatory field\n // in the future, left as optional for API compatibility for now.\n user_type?: string;\n\n // Merchant email for customer contact.\n email?: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // The merchant's physical address (to be put into contracts).\n address: Location;\n\n // The jurisdiction under which the merchant conducts its business\n // (to be put into contracts).\n jurisdiction: Location;\n\n // Use STEFAN curves to determine default fees?\n // If false, no fees are allowed by default.\n // Can always be overridden by the frontend on a per-order basis.\n use_stefan: boolean;\n\n // If the frontend does NOT specify an execution date, how long should\n // we tell the exchange to wait to aggregate transactions before\n // executing the wire transfer? This delay is added to the current\n // time when we generate the advisory execution time for the exchange.\n default_wire_transfer_delay: RelativeTime;\n\n // If the frontend does NOT specify a payment deadline, how long should\n // offers we make be valid by default?\n default_pay_delay: RelativeTime;\n }\n\n interface InstancesResponse {\n // List of instances that are present in the backend (see Instance).\n instances: Instance[];\n }\n\n interface Instance {\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (\"business\" or \"individual\").\n user_type: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // Merchant instance this response is about ($INSTANCE).\n id: string;\n\n // Public key of the merchant/instance, in Crockford Base32 encoding.\n merchant_pub: EddsaPublicKey;\n\n // List of the payment targets supported by this instance. Clients can\n // specify the desired payment target in /order requests. Note that\n // front-ends do not have to support wallets selecting payment targets.\n payment_targets: string[];\n\n // Has this instance been deleted (but not purged)?\n deleted: boolean;\n }\n\n interface QueryInstancesResponse {\n // Merchant name corresponding to this instance.\n name: string;\n\n // Type of the user (\"business\" or \"individual\").\n user_type: string;\n\n // Merchant email for customer contact.\n email?: string;\n\n // Merchant public website.\n website?: string;\n\n // Merchant logo.\n logo?: ImageDataUrl;\n\n // Public key of the merchant/instance, in Crockford Base32 encoding.\n merchant_pub: EddsaPublicKey;\n\n // The merchant's physical address (to be put into contracts).\n address: Location;\n\n // The jurisdiction under which the merchant conducts its business\n // (to be put into contracts).\n jurisdiction: Location;\n\n // Use STEFAN curves to determine default fees?\n // If false, no fees are allowed by default.\n // Can always be overridden by the frontend on a per-order basis.\n use_stefan: boolean;\n\n // If the frontend does NOT specify an execution date, how long should\n // we tell the exchange to wait to aggregate transactions before\n // executing the wire transfer? This delay is added to the current\n // time when we generate the advisory execution time for the exchange.\n default_wire_transfer_delay: RelativeTime;\n\n // If the frontend does NOT specify a payment deadline, how long should\n // offers we make be valid by default?\n default_pay_delay: RelativeTime;\n\n // Authentication configuration.\n // Does not contain the token when token auth is configured.\n auth: {\n type: \"external\" | \"token\";\n };\n }\n\n interface AccountKycRedirects {\n // Array of pending KYCs.\n pending_kycs: MerchantAccountKycRedirect[];\n\n // Array of exchanges with no reply.\n timeout_kycs: ExchangeKycTimeout[];\n }\n\n interface MerchantAccountKycRedirect {\n // URL that the user should open in a browser to\n // proceed with the KYC process (as returned\n // by the exchange's /kyc-check/ endpoint).\n // Optional, missing if the account is blocked\n // due to AML and not due to KYC.\n kyc_url?: string;\n\n // AML status of the account.\n aml_status: Integer;\n\n // Base URL of the exchange this is about.\n exchange_url: string;\n\n // Our bank wire account this is about.\n payto_uri: PaytoString;\n }\n\n interface ExchangeKycTimeout {\n // Base URL of the exchange this is about.\n exchange_url: string;\n\n // Numeric error code indicating errors the exchange\n // returned, or TALER_EC_INVALID for none.\n exchange_code: number;\n\n // HTTP status code returned by the exchange when we asked for\n // information about the KYC status.\n // 0 if there was no response at all.\n exchange_http_status: number;\n }\n\n interface AccountAddDetails {\n // payto:// URI of the account.\n payto_uri: PaytoString;\n\n // URL from where the merchant can download information\n // about incoming wire transfers to this account.\n credit_facade_url?: string;\n\n // Credentials to use when accessing the credit facade.\n // Never returned on a GET (as this may be somewhat\n // sensitive data). Can be set in POST\n // or PATCH requests to update (or delete) credentials.\n // To really delete credentials, set them to the type: \"none\".\n credit_facade_credentials?: FacadeCredentials;\n }\n\n type FacadeCredentials = NoFacadeCredentials | BasicAuthFacadeCredentials;\n interface NoFacadeCredentials {\n type: \"none\";\n }\n interface BasicAuthFacadeCredentials {\n type: \"basic\";\n\n // Username to use to authenticate\n username: string;\n\n // Password to use to authenticate\n password: string;\n }\n interface AccountAddResponse {\n // Hash over the wire details (including over the salt).\n h_wire: HashCode;\n\n // Salt used to compute h_wire.\n salt: HashCode;\n }\n\n interface AccountPatchDetails {\n // URL from where the merchant can download information\n // about incoming wire transfers to this account.\n credit_facade_url?: string;\n\n // Credentials to use when accessing the credit facade.\n // Never returned on a GET (as this may be somewhat\n // sensitive data). Can be set in POST\n // or PATCH requests to update (or delete) credentials.\n // To really delete credentials, set them to the type: \"none\".\n // If the argument is omitted, the old credentials\n // are simply preserved.\n credit_facade_credentials?: FacadeCredentials;\n }\n\n interface AccountsSummaryResponse {\n // List of accounts that are known for the instance.\n accounts: BankAccountEntry[];\n }\n interface BankAccountEntry {\n // payto:// URI of the account.\n payto_uri: PaytoString;\n\n // Hash over the wire details (including over the salt).\n h_wire: HashCode;\n\n // Salt used to compute h_wire.\n salt: HashCode;\n\n // URL from where the merchant can download information\n // about incoming wire transfers to this account.\n credit_facade_url?: string;\n\n // true if this account is active,\n // false if it is historic.\n active: boolean;\n }\n\n interface ProductAddDetail {\n // Product ID to use.\n product_id: string;\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n?: { [lang_tag: string]: string };\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit: string;\n\n // The price for one unit of the product. Zero is used\n // to imply that this product is not sold separately, or\n // that the price is not fixed, and must be supplied by the\n // front-end. If non-zero, this price MUST include applicable\n // taxes.\n price: AmountString;\n\n // An optional base64-encoded product image.\n image?: ImageDataUrl;\n\n // A list of taxes paid by the merchant for one unit of this product.\n taxes?: Tax[];\n\n // Number of units of the product in stock in sum in total,\n // including all existing sales ever. Given in product-specific\n // units.\n // A value of -1 indicates \"infinite\" (i.e. for \"electronic\" books).\n total_stock: Integer;\n\n // Identifies where the product is in stock.\n address?: Location;\n\n // Identifies when we expect the next restocking to happen.\n next_restock?: Timestamp;\n\n // Minimum age buyer must have (in years). Default is 0.\n minimum_age?: Integer;\n }\n\n interface ProductPatchDetail {\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n?: { [lang_tag: string]: string };\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit: string;\n\n // The price for one unit of the product. Zero is used\n // to imply that this product is not sold separately, or\n // that the price is not fixed, and must be supplied by the\n // front-end. If non-zero, this price MUST include applicable\n // taxes.\n price: AmountString;\n\n // An optional base64-encoded product image.\n image?: ImageDataUrl;\n\n // A list of taxes paid by the merchant for one unit of this product.\n taxes?: Tax[];\n\n // Number of units of the product in stock in sum in total,\n // including all existing sales ever. Given in product-specific\n // units.\n // A value of -1 indicates \"infinite\" (i.e. for \"electronic\" books).\n total_stock: Integer;\n\n // Number of units of the product that were lost (spoiled, stolen, etc.).\n total_lost?: Integer;\n\n // Identifies where the product is in stock.\n address?: Location;\n\n // Identifies when we expect the next restocking to happen.\n next_restock?: Timestamp;\n\n // Minimum age buyer must have (in years). Default is 0.\n minimum_age?: Integer;\n }\n\n interface InventorySummaryResponse {\n // List of products that are present in the inventory.\n products: InventoryEntry[];\n }\n\n interface InventoryEntry {\n // Product identifier, as found in the product.\n product_id: string;\n }\n\n interface ProductDetail {\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n: { [lang_tag: string]: string };\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit: string;\n\n // The price for one unit of the product. Zero is used\n // to imply that this product is not sold separately, or\n // that the price is not fixed, and must be supplied by the\n // front-end. If non-zero, this price MUST include applicable\n // taxes.\n price: AmountString;\n\n // An optional base64-encoded product image.\n image: ImageDataUrl;\n\n // A list of taxes paid by the merchant for one unit of this product.\n taxes: Tax[];\n\n // Number of units of the product in stock in sum in total,\n // including all existing sales ever. Given in product-specific\n // units.\n // A value of -1 indicates \"infinite\" (i.e. for \"electronic\" books).\n total_stock: Integer;\n\n // Number of units of the product that have already been sold.\n total_sold: Integer;\n\n // Number of units of the product that were lost (spoiled, stolen, etc.).\n total_lost: Integer;\n\n // Identifies where the product is in stock.\n address: Location;\n\n // Identifies when we expect the next restocking to happen.\n next_restock?: Timestamp;\n\n // Minimum age buyer must have (in years).\n minimum_age?: Integer;\n }\n interface LockRequest {\n // UUID that identifies the frontend performing the lock\n // Must be unique for the lifetime of the lock.\n lock_uuid: string;\n\n // How long does the frontend intend to hold the lock?\n duration: RelativeTime;\n\n // How many units should be locked?\n quantity: Integer;\n }\n\n interface PostOrderRequest {\n // The order must at least contain the minimal\n // order detail, but can override all.\n order: Order;\n\n // If set, the backend will then set the refund deadline to the current\n // time plus the specified delay. If it's not set, refunds will not be\n // possible.\n refund_delay?: RelativeTime;\n\n // Specifies the payment target preferred by the client. Can be used\n // to select among the various (active) wire methods supported by the instance.\n payment_target?: string;\n\n // Specifies that some products are to be included in the\n // order from the inventory. For these inventory management\n // is performed (so the products must be in stock) and\n // details are completed from the product data of the backend.\n inventory_products?: MinimalInventoryProduct[];\n\n // Specifies a lock identifier that was used to\n // lock a product in the inventory. Only useful if\n // inventory_products is set. Used in case a frontend\n // reserved quantities of the individual products while\n // the shopping cart was being built. Multiple UUIDs can\n // be used in case different UUIDs were used for different\n // products (i.e. in case the user started with multiple\n // shopping sessions that were combined during checkout).\n lock_uuids: string[];\n\n // Should a token for claiming the order be generated?\n // False can make sense if the ORDER_ID is sufficiently\n // high entropy to prevent adversarial claims (like it is\n // if the backend auto-generates one). Default is 'true'.\n create_token?: boolean;\n\n // OTP device ID to associate with the order.\n // This parameter is optional.\n otp_id?: string;\n }\n\n type Order = MinimalOrderDetail | ContractTerms;\n\n interface MinimalOrderDetail {\n // Amount to be paid by the customer.\n amount: AmountString;\n\n // Short summary of the order.\n summary: string;\n\n // See documentation of fulfillment_url in ContractTerms.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_url?: string;\n\n // See documentation of fulfillment_message in ContractTerms.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_message?: string;\n }\n\n interface MinimalInventoryProduct {\n // Which product is requested (here mandatory!).\n product_id: string;\n\n // How many units of the product are requested.\n quantity: Integer;\n }\n\n interface PostOrderResponse {\n // Order ID of the response that was just created.\n order_id: string;\n\n // Token that authorizes the wallet to claim the order.\n // Provided only if \"create_token\" was set to 'true'\n // in the request.\n token?: ClaimToken;\n }\n interface OutOfStockResponse {\n // Product ID of an out-of-stock item.\n product_id: string;\n\n // Requested quantity.\n requested_quantity: Integer;\n\n // Available quantity (must be below requested_quantity).\n available_quantity: Integer;\n\n // When do we expect the product to be again in stock?\n // Optional, not given if unknown.\n restock_expected?: Timestamp;\n }\n\n interface OrderHistory {\n // Timestamp-sorted array of all orders matching the query.\n // The order of the sorting depends on the sign of delta.\n orders: OrderHistoryEntry[];\n }\n interface OrderHistoryEntry {\n // Order ID of the transaction related to this entry.\n order_id: string;\n\n // Row ID of the order in the database.\n row_id: number;\n\n // When the order was created.\n timestamp: Timestamp;\n\n // The amount of money the order is for.\n amount: AmountString;\n\n // The summary of the order.\n summary: string;\n\n // Whether some part of the order is refundable,\n // that is the refund deadline has not yet expired\n // and the total amount refunded so far is below\n // the value of the original transaction.\n refundable: boolean;\n\n // Whether the order has been paid or not.\n paid: boolean;\n }\n\n type MerchantOrderStatusResponse =\n | CheckPaymentPaidResponse\n | CheckPaymentClaimedResponse\n | CheckPaymentUnpaidResponse;\n interface CheckPaymentPaidResponse {\n // The customer paid for this contract.\n order_status: \"paid\";\n\n // Was the payment refunded (even partially)?\n refunded: boolean;\n\n // True if there are any approved refunds that the wallet has\n // not yet obtained.\n refund_pending: boolean;\n\n // Did the exchange wire us the funds?\n wired: boolean;\n\n // Total amount the exchange deposited into our bank account\n // for this contract, excluding fees.\n deposit_total: AmountString;\n\n // Numeric error code indicating errors the exchange\n // encountered tracking the wire transfer for this purchase (before\n // we even got to specific coin issues).\n // 0 if there were no issues.\n exchange_code: number;\n\n // HTTP status code returned by the exchange when we asked for\n // information to track the wire transfer for this purchase.\n // 0 if there were no issues.\n exchange_http_status: number;\n\n // Total amount that was refunded, 0 if refunded is false.\n refund_amount: AmountString;\n\n // Contract terms.\n contract_terms: ContractTerms;\n\n // The wire transfer status from the exchange for this order if\n // available, otherwise empty array.\n wire_details: TransactionWireTransfer[];\n\n // Reports about trouble obtaining wire transfer details,\n // empty array if no trouble were encountered.\n wire_reports: TransactionWireReport[];\n\n // The refund details for this order. One entry per\n // refunded coin; empty array if there are no refunds.\n refund_details: RefundDetails[];\n\n // Status URL, can be used as a redirect target for the browser\n // to show the order QR code / trigger the wallet.\n order_status_url: string;\n }\n interface CheckPaymentClaimedResponse {\n // A wallet claimed the order, but did not yet pay for the contract.\n order_status: \"claimed\";\n\n // Contract terms.\n contract_terms: ContractTerms;\n }\n interface CheckPaymentUnpaidResponse {\n // The order was neither claimed nor paid.\n order_status: \"unpaid\";\n\n // URI that the wallet must process to complete the payment.\n taler_pay_uri: string;\n\n // when was the order created\n creation_time: Timestamp;\n\n // Order summary text.\n summary: string;\n\n // Total amount of the order (to be paid by the customer).\n total_amount: AmountString;\n\n // Alternative order ID which was paid for already in the same session.\n // Only given if the same product was purchased before in the same session.\n already_paid_order_id?: string;\n\n // Fulfillment URL of an already paid order. Only given if under this\n // session an already paid order with a fulfillment URL exists.\n already_paid_fulfillment_url?: string;\n\n // Status URL, can be used as a redirect target for the browser\n // to show the order QR code / trigger the wallet.\n order_status_url: string;\n\n // We do we NOT return the contract terms here because they may not\n // exist in case the wallet did not yet claim them.\n }\n interface RefundDetails {\n // Reason given for the refund.\n reason: string;\n\n // Set to true if a refund is still available for the wallet for this payment.\n pending: boolean;\n\n // When was the refund approved.\n timestamp: Timestamp;\n\n // Total amount that was refunded (minus a refund fee).\n amount: AmountString;\n }\n interface TransactionWireTransfer {\n // Responsible exchange.\n exchange_url: string;\n\n // 32-byte wire transfer identifier.\n wtid: Base32;\n\n // Execution time of the wire transfer.\n execution_time: Timestamp;\n\n // Total amount that has been wire transferred\n // to the merchant.\n amount: AmountString;\n\n // Was this transfer confirmed by the merchant via the\n // POST /transfers API, or is it merely claimed by the exchange?\n confirmed: boolean;\n }\n interface TransactionWireReport {\n // Numerical error code.\n code: number;\n\n // Human-readable error description.\n hint: string;\n\n // Numerical error code from the exchange.\n exchange_code: number;\n\n // HTTP status code received from the exchange.\n exchange_http_status: number;\n\n // Public key of the coin for which we got the exchange error.\n coin_pub: CoinPublicKey;\n }\n\n interface ForgetRequest {\n // Array of valid JSON paths to forgettable fields in the order's\n // contract terms.\n fields: string[];\n }\n\n interface RefundRequest {\n // Amount to be refunded.\n refund: AmountString;\n\n // Human-readable refund justification.\n reason: string;\n }\n interface MerchantRefundResponse {\n // URL (handled by the backend) that the wallet should access to\n // trigger refund processing.\n // taler://refund/...\n taler_refund_uri: string;\n\n // Contract hash that a client may need to authenticate an\n // HTTP request to obtain the above URI in a wallet-friendly way.\n h_contract: HashCode;\n }\n\n interface TransferInformation {\n // How much was wired to the merchant (minus fees).\n credit_amount: AmountString;\n\n // Raw wire transfer identifier identifying the wire transfer (a base32-encoded value).\n wtid: WireTransferIdentifierRawP;\n\n // Target account that received the wire transfer.\n payto_uri: PaytoString;\n\n // Base URL of the exchange that made the wire transfer.\n exchange_url: string;\n }\n\n interface TransferList {\n // List of all the transfers that fit the filter that we know.\n transfers: TransferDetails[];\n }\n interface TransferDetails {\n // How much was wired to the merchant (minus fees).\n credit_amount: AmountString;\n\n // Raw wire transfer identifier identifying the wire transfer (a base32-encoded value).\n wtid: WireTransferIdentifierRawP;\n\n // Target account that received the wire transfer.\n payto_uri: PaytoString;\n\n // Base URL of the exchange that made the wire transfer.\n exchange_url: string;\n\n // Serial number identifying the transfer in the merchant backend.\n // Used for filtering via offset.\n transfer_serial_id: number;\n\n // Time of the execution of the wire transfer by the exchange, according to the exchange\n // Only provided if we did get an answer from the exchange.\n execution_time?: Timestamp;\n\n // True if we checked the exchange's answer and are happy with it.\n // False if we have an answer and are unhappy, missing if we\n // do not have an answer from the exchange.\n verified?: boolean;\n\n // True if the merchant uses the POST /transfers API to confirm\n // that this wire transfer took place (and it is thus not\n // something merely claimed by the exchange).\n confirmed?: boolean;\n }\n\n interface ReserveCreateRequest {\n // Amount that the merchant promises to put into the reserve.\n initial_balance: AmountString;\n\n // Exchange the merchant intends to use for rewards.\n exchange_url: string;\n\n // Desired wire method, for example \"iban\" or \"x-taler-bank\".\n wire_method: string;\n }\n interface ReserveCreateConfirmation {\n // Public key identifying the reserve.\n reserve_pub: EddsaPublicKey;\n\n // Wire accounts of the exchange where to transfer the funds.\n accounts: TalerExchangeApi.WireAccount[];\n }\n\n interface RewardReserveStatus {\n // Array of all known reserves (possibly empty!).\n reserves: ReserveStatusEntry[];\n }\n interface ReserveStatusEntry {\n // Public key of the reserve.\n reserve_pub: EddsaPublicKey;\n\n // Timestamp when it was established.\n creation_time: Timestamp;\n\n // Timestamp when it expires.\n expiration_time: Timestamp;\n\n // Initial amount as per reserve creation call.\n merchant_initial_amount: AmountString;\n\n // Initial amount as per exchange, 0 if exchange did\n // not confirm reserve creation yet.\n exchange_initial_amount: AmountString;\n\n // Amount picked up so far.\n pickup_amount: AmountString;\n\n // Amount approved for rewards that exceeds the pickup_amount.\n committed_amount: AmountString;\n\n // Is this reserve active (false if it was deleted but not purged)?\n active: boolean;\n }\n\n interface ReserveDetail {\n // Timestamp when it was established.\n creation_time: Timestamp;\n\n // Timestamp when it expires.\n expiration_time: Timestamp;\n\n // Initial amount as per reserve creation call.\n merchant_initial_amount: AmountString;\n\n // Initial amount as per exchange, 0 if exchange did\n // not confirm reserve creation yet.\n exchange_initial_amount: AmountString;\n\n // Amount picked up so far.\n pickup_amount: AmountString;\n\n // Amount approved for rewards that exceeds the pickup_amount.\n committed_amount: AmountString;\n\n // Array of all rewards created by this reserves (possibly empty!).\n // Only present if asked for explicitly.\n rewards?: RewardStatusEntry[];\n\n // Is this reserve active (false if it was deleted but not purged)?\n active: boolean;\n\n // Array of wire accounts of the exchange that could\n // be used to fill the reserve, can be NULL\n // if the reserve is inactive or was already filled\n accounts?: TalerExchangeApi.WireAccount[];\n\n // URL of the exchange hosting the reserve,\n // NULL if the reserve is inactive\n exchange_url: string;\n }\n interface RewardStatusEntry {\n // Unique identifier for the reward.\n reward_id: HashCode;\n\n // Total amount of the reward that can be withdrawn.\n total_amount: AmountString;\n\n // Human-readable reason for why the reward was granted.\n reason: string;\n }\n\n interface RewardCreateRequest {\n // Amount that the customer should be rewarded.\n amount: AmountString;\n\n // Justification for giving the reward.\n justification: string;\n\n // URL that the user should be directed to after receiving the reward,\n // will be included in the reward_token.\n next_url: string;\n }\n interface RewardCreateConfirmation {\n // Unique reward identifier for the reward that was created.\n reward_id: HashCode;\n\n // taler://reward URI for the reward.\n taler_reward_uri: string;\n\n // URL that will directly trigger processing\n // the reward when the browser is redirected to it.\n reward_status_url: string;\n\n // When does the reward expire?\n reward_expiration: Timestamp;\n }\n\n interface RewardDetails {\n // Amount that we authorized for this reward.\n total_authorized: AmountString;\n\n // Amount that was picked up by the user already.\n total_picked_up: AmountString;\n\n // Human-readable reason given when authorizing the reward.\n reason: string;\n\n // Timestamp indicating when the reward is set to expire (may be in the past).\n expiration: Timestamp;\n\n // Reserve public key from which the reward is funded.\n reserve_pub: EddsaPublicKey;\n\n // Array showing the pickup operations of the wallet (possibly empty!).\n // Only present if asked for explicitly.\n pickups?: PickupDetail[];\n }\n interface PickupDetail {\n // Unique identifier for the pickup operation.\n pickup_id: HashCode;\n\n // Number of planchets involved.\n num_planchets: Integer;\n\n // Total amount requested for this pickup_id.\n requested_amount: AmountString;\n }\n\n interface RewardsResponse {\n // List of rewards that are present in the backend.\n rewards: Reward[];\n }\n interface Reward {\n // ID of the reward in the backend database.\n row_id: number;\n\n // Unique identifier for the reward.\n reward_id: HashCode;\n\n // (Remaining) amount of the reward (including fees).\n reward_amount: AmountString;\n }\n\n interface OtpDeviceAddDetails {\n // Device ID to use.\n otp_device_id: string;\n\n // Human-readable description for the device.\n otp_device_description: string;\n\n // A base64-encoded key\n otp_key: string;\n\n // Algorithm for computing the POS confirmation.\n otp_algorithm: Integer;\n\n // Counter for counter-based OTP devices.\n otp_ctr?: Integer;\n }\n\n interface OtpDevicePatchDetails {\n // Human-readable description for the device.\n otp_device_description: string;\n\n // A base64-encoded key\n otp_key: string;\n\n // Algorithm for computing the POS confirmation.\n otp_algorithm: Integer;\n\n // Counter for counter-based OTP devices.\n otp_ctr?: Integer;\n }\n\n interface OtpDeviceSummaryResponse {\n // Array of devices that are present in our backend.\n otp_devices: OtpDeviceEntry[];\n }\n interface OtpDeviceEntry {\n // Device identifier.\n otp_device_id: string;\n\n // Human-readable description for the device.\n device_description: string;\n }\n\n interface OtpDeviceDetails {\n // Human-readable description for the device.\n device_description: string;\n\n // Algorithm for computing the POS confirmation.\n otp_algorithm: Integer;\n\n // Counter for counter-based OTP devices.\n otp_ctr?: Integer;\n }\n interface TemplateAddDetails {\n // Template ID to use.\n template_id: string;\n\n // Human-readable description for the template.\n template_description: string;\n\n // OTP device ID.\n // This parameter is optional.\n otp_id?: string;\n\n // Additional information in a separate template.\n template_contract: TemplateContractDetails;\n }\n interface TemplateContractDetails {\n // Human-readable summary for the template.\n summary?: string;\n\n // Required currency for payments to the template.\n // The user may specify any amount, but it must be\n // in this currency.\n // This parameter is optional and should not be present\n // if \"amount\" is given.\n currency?: string;\n\n // The price is imposed by the merchant and cannot be changed by the customer.\n // This parameter is optional.\n amount?: AmountString;\n\n // Minimum age buyer must have (in years). Default is 0.\n minimum_age: Integer;\n\n // The time the customer need to pay before his order will be deleted.\n // It is deleted if the customer did not pay and if the duration is over.\n pay_duration: RelativeTime;\n }\n interface TemplatePatchDetails {\n // Human-readable description for the template.\n template_description: string;\n\n // OTP device ID.\n // This parameter is optional.\n otp_id?: string;\n\n // Additional information in a separate template.\n template_contract: TemplateContractDetails;\n }\n\n interface TemplateSummaryResponse {\n // List of templates that are present in our backend.\n templates_list: TemplateEntry[];\n }\n\n interface TemplateEntry {\n // Template identifier, as found in the template.\n template_id: string;\n\n // Human-readable description for the template.\n template_description: string;\n }\n interface TemplateDetails {\n // Human-readable description for the template.\n template_description: string;\n\n // OTP device ID.\n // This parameter is optional.\n otp_id?: string;\n\n // Additional information in a separate template.\n template_contract: TemplateContractDetails;\n }\n interface UsingTemplateDetails {\n // Summary of the template\n summary?: string;\n\n // The amount entered by the customer.\n amount?: AmountString;\n }\n\n interface WebhookAddDetails {\n // Webhook ID to use.\n webhook_id: string;\n\n // The event of the webhook: why the webhook is used.\n event_type: string;\n\n // URL of the webhook where the customer will be redirected.\n url: string;\n\n // Method used by the webhook\n http_method: string;\n\n // Header template of the webhook\n header_template?: string;\n\n // Body template by the webhook\n body_template?: string;\n }\n\n interface WebhookPatchDetails {\n // The event of the webhook: why the webhook is used.\n event_type: string;\n\n // URL of the webhook where the customer will be redirected.\n url: string;\n\n // Method used by the webhook\n http_method: string;\n\n // Header template of the webhook\n header_template?: string;\n\n // Body template by the webhook\n body_template?: string;\n }\n\n interface WebhookSummaryResponse {\n // Return webhooks that are present in our backend.\n webhooks: WebhookEntry[];\n }\n\n interface WebhookEntry {\n // Webhook identifier, as found in the webhook.\n webhook_id: string;\n\n // The event of the webhook: why the webhook is used.\n event_type: string;\n }\n\n interface WebhookDetails {\n // The event of the webhook: why the webhook is used.\n event_type: string;\n\n // URL of the webhook where the customer will be redirected.\n url: string;\n\n // Method used by the webhook\n http_method: string;\n\n // Header template of the webhook\n header_template?: string;\n\n // Body template by the webhook\n body_template?: string;\n }\n\n interface ContractTerms {\n // Human-readable description of the whole purchase.\n summary: string;\n\n // Map from IETF BCP 47 language tags to localized summaries.\n summary_i18n?: { [lang_tag: string]: string };\n\n // Unique, free-form identifier for the proposal.\n // Must be unique within a merchant instance.\n // For merchants that do not store proposals in their DB\n // before the customer paid for them, the order_id can be used\n // by the frontend to restore a proposal from the information\n // encoded in it (such as a short product identifier and timestamp).\n order_id: string;\n\n // Total price for the transaction.\n // The exchange will subtract deposit fees from that amount\n // before transferring it to the merchant.\n amount: AmountString;\n\n // URL where the same contract could be ordered again (if\n // available). Returned also at the public order endpoint\n // for people other than the actual buyer (hence public,\n // in case order IDs are guessable).\n public_reorder_url?: string;\n\n // URL that will show that the order was successful after\n // it has been paid for. Optional. When POSTing to the\n // merchant, the placeholder \"${ORDER_ID}\" will be\n // replaced with the actual order ID (useful if the\n // order ID is generated server-side and needs to be\n // in the URL).\n // Note that this placeholder can only be used once.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_url?: string;\n\n // Message shown to the customer after paying for the order.\n // Either fulfillment_url or fulfillment_message must be specified.\n fulfillment_message?: string;\n\n // Map from IETF BCP 47 language tags to localized fulfillment\n // messages.\n fulfillment_message_i18n?: { [lang_tag: string]: string };\n\n // Maximum total deposit fee accepted by the merchant for this contract.\n // Overrides defaults of the merchant instance.\n max_fee: AmountString;\n\n // List of products that are part of the purchase (see Product).\n products: Product[];\n\n // Time when this contract was generated.\n timestamp: Timestamp;\n\n // After this deadline has passed, no refunds will be accepted.\n refund_deadline: Timestamp;\n\n // After this deadline, the merchant won't accept payments for the contract.\n pay_deadline: Timestamp;\n\n // Transfer deadline for the exchange. Must be in the\n // deposit permissions of coins used to pay for this order.\n wire_transfer_deadline: Timestamp;\n\n // Merchant's public key used to sign this proposal; this information\n // is typically added by the backend. Note that this can be an ephemeral key.\n merchant_pub: EddsaPublicKey;\n\n // Base URL of the (public!) merchant backend API.\n // Must be an absolute URL that ends with a slash.\n merchant_base_url: string;\n\n // More info about the merchant, see below.\n merchant: Merchant;\n\n // The hash of the merchant instance's wire details.\n h_wire: HashCode;\n\n // Wire transfer method identifier for the wire method associated with h_wire.\n // The wallet may only select exchanges via a matching auditor if the\n // exchange also supports this wire method.\n // The wire transfer fees must be added based on this wire transfer method.\n wire_method: string;\n\n // Exchanges that the merchant accepts even if it does not accept any auditors that audit them.\n exchanges: Exchange[];\n\n // Delivery location for (all!) products.\n delivery_location?: Location;\n\n // Time indicating when the order should be delivered.\n // May be overwritten by individual products.\n delivery_date?: Timestamp;\n\n // Nonce generated by the wallet and echoed by the merchant\n // in this field when the proposal is generated.\n nonce: string;\n\n // Specifies for how long the wallet should try to get an\n // automatic refund for the purchase. If this field is\n // present, the wallet should wait for a few seconds after\n // the purchase and then automatically attempt to obtain\n // a refund. The wallet should probe until \"delay\"\n // after the payment was successful (i.e. via long polling\n // or via explicit requests with exponential back-off).\n //\n // In particular, if the wallet is offline\n // at that time, it MUST repeat the request until it gets\n // one response from the merchant after the delay has expired.\n // If the refund is granted, the wallet MUST automatically\n // recover the payment. This is used in case a merchant\n // knows that it might be unable to satisfy the contract and\n // desires for the wallet to attempt to get the refund without any\n // customer interaction. Note that it is NOT an error if the\n // merchant does not grant a refund.\n auto_refund?: RelativeTime;\n\n // Extra data that is only interpreted by the merchant frontend.\n // Useful when the merchant needs to store extra information on a\n // contract without storing it separately in their database.\n extra?: any;\n }\n\n interface Product {\n // Merchant-internal identifier for the product.\n product_id?: string;\n\n // Human-readable product description.\n description: string;\n\n // Map from IETF BCP 47 language tags to localized descriptions.\n description_i18n?: { [lang_tag: string]: string };\n\n // The number of units of the product to deliver to the customer.\n quantity?: Integer;\n\n // Unit in which the product is measured (liters, kilograms, packages, etc.).\n unit?: string;\n\n // The price of the product; this is the total price for quantity times unit of this product.\n price?: AmountString;\n\n // An optional base64-encoded product image.\n image?: ImageDataUrl;\n\n // A list of taxes paid by the merchant for this product. Can be empty.\n taxes?: Tax[];\n\n // Time indicating when this product should be delivered.\n delivery_date?: Timestamp;\n }\n\n interface Tax {\n // The name of the tax.\n name: string;\n\n // Amount paid in tax.\n tax: AmountString;\n }\n interface Merchant {\n // The merchant's legal name of business.\n name: string;\n\n // Label for a location with the business address of the merchant.\n email?: string;\n\n // Label for a location with the business address of the merchant.\n website?: string;\n\n // An optional base64-encoded product image.\n logo?: ImageDataUrl;\n\n // Label for a location with the business address of the merchant.\n address?: Location;\n\n // Label for a location that denotes the jurisdiction for disputes.\n // Some of the typical fields for a location (such as a street address) may be absent.\n jurisdiction?: Location;\n }\n // Delivery location, loosely modeled as a subset of\n // ISO20022's PostalAddress25.\n interface Location {\n // Nation with its own government.\n country?: string;\n\n // Identifies a subdivision of a country such as state, region, county.\n country_subdivision?: string;\n\n // Identifies a subdivision within a country sub-division.\n district?: string;\n\n // Name of a built-up area, with defined boundaries, and a local government.\n town?: string;\n\n // Specific location name within the town.\n town_location?: string;\n\n // Identifier consisting of a group of letters and/or numbers that\n // is added to a postal address to assist the sorting of mail.\n post_code?: string;\n\n // Name of a street or thoroughfare.\n street?: string;\n\n // Name of the building or house.\n building_name?: string;\n\n // Number that identifies the position of a building on a street.\n building_number?: string;\n\n // Free-form address lines, should not exceed 7 elements.\n address_lines?: string[];\n }\n interface Auditor {\n // Official name.\n name: string;\n\n // Auditor's public key.\n auditor_pub: EddsaPublicKey;\n\n // Base URL of the auditor.\n url: string;\n }\n interface Exchange {\n // The exchange's base URL.\n url: string;\n\n // How much would the merchant like to use this exchange.\n // The wallet should use a suitable exchange with high\n // priority. The following priority values are used, but\n // it should be noted that they are NOT in any way normative.\n //\n // 0: likely it will not work (recently seen with account\n // restriction that would be bad for this merchant)\n // 512: merchant does not know, might be down (merchant\n // did not yet get /wire response).\n // 1024: good choice (recently confirmed working)\n priority: Integer;\n\n // Master public key of the exchange.\n master_pub: EddsaPublicKey;\n }\n}\n", "import { base64FromArrayBuffer } from \"../base64.js\";\nimport { stringToBytes } from \"../taler-crypto.js\";\nimport { AccessToken, PaginationParams } from \"./types.js\";\n\n/**\n * Helper function to generate the \"Authorization\" HTTP header.\n */\nexport function makeBasicAuthHeader(username: string, password: string): string {\n const auth = `${username}:${password}`;\n const authEncoded: string = base64FromArrayBuffer(stringToBytes(auth));\n return `Basic ${authEncoded}`;\n}\n\n/**\n * rfc8959\n * @param token \n * @returns \n */\nexport function makeBearerTokenAuthHeader(token: AccessToken): string {\n return `Bearer secret-token:${token}`;\n}\n\n/**\n * https://bugs.gnunet.org/view.php?id=7949\n */\nexport function addPaginationParams(url: URL, pagination?: PaginationParams) {\n if (!pagination) return;\n if (pagination.timoutMs) {\n url.searchParams.set(\"long_poll_ms\", String(pagination.timoutMs))\n }\n if (pagination.offset) {\n url.searchParams.set(\"start\", pagination.offset)\n }\n const order = !pagination || pagination.order === \"asc\" ? 1 : -1\n const limit = !pagination || !pagination.limit || pagination.limit === 0 ? 5 : Math.abs(pagination.limit)\n //always send delta\n url.searchParams.set(\"delta\", String(order * limit))\n}\n", "import { HttpRequestLibrary } from \"../http-common.js\";\nimport { HttpStatusCode } from \"../http-status-codes.js\";\nimport { createPlatformHttpLib } from \"../http.js\";\nimport { LibtoolVersion } from \"../libtool-version.js\";\nimport { hash } from \"../nacl-fast.js\";\nimport { FailCasesByMethod, ResultByMethod, opEmptySuccess, opFixedSuccess, opKnownFailure, opSuccess, opUnknownFailure } from \"../operation.js\";\nimport { TalerSignaturePurpose, amountToBuffer, bufferForUint32, buildSigPS, decodeCrock, eddsaSign, encodeCrock, stringToBytes, timestampRoundedToBuffer } from \"../taler-crypto.js\";\nimport { OfficerAccount, PaginationParams, SigningKey, TalerExchangeApi, codecForAmlDecisionDetails, codecForAmlRecords, codecForExchangeConfig } from \"./types.js\";\nimport { addPaginationParams } from \"./utils.js\";\n\nexport type TalerExchangeResultByMethod<prop extends keyof TalerExchangeHttpClient> = ResultByMethod<TalerExchangeHttpClient, prop>\nexport type TalerExchangeErrorsByMethod<prop extends keyof TalerExchangeHttpClient> = FailCasesByMethod<TalerExchangeHttpClient, prop>\n\n/**\n */\nexport class TalerExchangeHttpClient {\n httpLib: HttpRequestLibrary;\n public readonly PROTOCOL_VERSION = \"17:0:0\";\n\n constructor(\n readonly baseUrl: string,\n httpClient?: HttpRequestLibrary,\n ) {\n this.httpLib = httpClient ?? createPlatformHttpLib();\n }\n\n isCompatible(version: string): boolean {\n const compare = LibtoolVersion.compare(this.PROTOCOL_VERSION, version)\n return compare?.compatible ?? false\n }\n /**\n * https://docs.taler.net/core/api-merchant.html#get--config\n * \n */\n async getConfig() {\n const url = new URL(`config`, this.baseUrl);\n const resp = await this.httpLib.fetch(url.href, {\n method: \"GET\"\n });\n switch (resp.status) {\n case HttpStatusCode.Ok: return opSuccess(resp, codecForExchangeConfig())\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n //\n // AML operations\n //\n\n /**\n * https://docs.taler.net/core/api-exchange.html#get--aml-$OFFICER_PUB-decisions-$STATE\n * \n */\n async getDecisionsByState(auth: OfficerAccount, state: TalerExchangeApi.AmlState, pagination?: PaginationParams) {\n const url = new URL(`aml/${auth.id}/decisions/${TalerExchangeApi.AmlState[state]}`, this.baseUrl);\n addPaginationParams(url, pagination)\n\n const resp = await this.httpLib.fetch(url.href, {\n method: \"GET\",\n headers: {\n \"Taler-AML-Officer-Signature\": buildQuerySignature(auth.signingKey)\n }\n });\n\n switch (resp.status) {\n case HttpStatusCode.Ok: return opSuccess(resp, codecForAmlRecords())\n case HttpStatusCode.NoContent: return opFixedSuccess({ records: [] })\n //this should be unauthorized\n case HttpStatusCode.Forbidden: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.Unauthorized: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.NotFound: return opKnownFailure(\"officer-not-found\", resp);\n case HttpStatusCode.Conflict: return opKnownFailure(\"officer-disabled\", resp);\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n /**\n * https://docs.taler.net/core/api-exchange.html#get--aml-$OFFICER_PUB-decision-$H_PAYTO\n * \n */\n async getDecisionDetails(auth: OfficerAccount, account: string) {\n const url = new URL(`aml/${auth.id}/decision/${account}`, this.baseUrl);\n\n const resp = await this.httpLib.fetch(url.href, {\n method: \"GET\",\n headers: {\n \"Taler-AML-Officer-Signature\": buildQuerySignature(auth.signingKey)\n }\n });\n\n switch (resp.status) {\n case HttpStatusCode.Ok: return opSuccess(resp, codecForAmlDecisionDetails())\n case HttpStatusCode.NoContent: return opFixedSuccess({ aml_history: [], kyc_attributes: [] })\n //this should be unauthorized\n case HttpStatusCode.Forbidden: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.Unauthorized: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.NotFound: return opKnownFailure(\"officer-not-found\", resp);\n case HttpStatusCode.Conflict: return opKnownFailure(\"officer-disabled\", resp);\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n /**\n * https://docs.taler.net/core/api-exchange.html#post--aml-$OFFICER_PUB-decision\n * \n */\n async addDecisionDetails(auth: OfficerAccount, decision: Omit<TalerExchangeApi.AmlDecision, \"officer_sig\">) {\n const url = new URL(`aml/${auth.id}/decision`, this.baseUrl);\n\n const body = buildDecisionSignature(auth.signingKey, decision)\n const resp = await this.httpLib.fetch(url.href, {\n method: \"POST\",\n body,\n });\n\n switch (resp.status) {\n case HttpStatusCode.NoContent: return opEmptySuccess()\n //FIXME: this should be unauthorized\n case HttpStatusCode.Forbidden: return opKnownFailure(\"unauthorized\", resp);\n case HttpStatusCode.Unauthorized: return opKnownFailure(\"unauthorized\", resp);\n //FIXME: this two need to be splitted by error code\n case HttpStatusCode.NotFound: return opKnownFailure(\"officer-or-account-not-found\", resp);\n case HttpStatusCode.Conflict: return opKnownFailure(\"officer-disabled-or-recent-decision\", resp);\n default: return opUnknownFailure(resp, await resp.text())\n }\n }\n\n\n}\n\nfunction buildQuerySignature(key: SigningKey): string {\n const sigBlob = buildSigPS(\n TalerSignaturePurpose.TALER_SIGNATURE_AML_QUERY,\n ).build();\n\n return encodeCrock(eddsaSign(sigBlob, key));\n}\n\nfunction buildDecisionSignature(\n key: SigningKey,\n decision: Omit<TalerExchangeApi.AmlDecision, \"officer_sig\">,\n): TalerExchangeApi.AmlDecision {\n const zero = new Uint8Array(new ArrayBuffer(64))\n\n const sigBlob = buildSigPS(TalerSignaturePurpose.TALER_SIGNATURE_AML_DECISION)\n //TODO: new need the null terminator, also in the exchange\n .put(hash(stringToBytes(decision.justification)))//check null\n .put(timestampRoundedToBuffer(decision.decision_time))\n .put(amountToBuffer(decision.new_threshold))\n .put(decodeCrock(decision.h_payto))\n .put(zero) //kyc_requirement\n .put(bufferForUint32(decision.new_state))\n .build();\n\n const officer_sig = encodeCrock(eddsaSign(sigBlob, key));\n return {\n ...decision,\n officer_sig\n }\n}", "import {\n EncryptionNonce,\n LockedAccount,\n OfficerAccount,\n OfficerId,\n SigningKey,\n createEddsaKeyPair,\n decodeCrock,\n decryptWithDerivedKey,\n eddsaGetPublic,\n encodeCrock,\n encryptWithDerivedKey,\n getRandomBytesF,\n kdf,\n stringToBytes\n} from \"@gnu-taler/taler-util\";\n\n/**\n * Restore previous session and unlock account with password\n *\n * @param salt string from which crypto params will be derived\n * @param key secured private key\n * @param password password for the private key\n * @returns\n */\nexport async function unlockOfficerAccount(\n account: LockedAccount,\n password: string,\n): Promise<OfficerAccount> {\n const rawKey = decodeCrock(account);\n const rawPassword = stringToBytes(password);\n\n const signingKey = (await decryptWithDerivedKey(\n rawKey,\n rawPassword,\n password,\n ).catch((e: Error) => {\n throw new UnwrapKeyError(e.message);\n })) as SigningKey;\n\n const publicKey = eddsaGetPublic(signingKey);\n\n const accountId = encodeCrock(publicKey) as OfficerId;\n\n return { id: accountId, signingKey };\n}\n\n/**\n * Create new account (secured private key)\n * secured with the given password\n *\n * @param sessionId\n * @param password\n * @returns\n */\nexport async function createNewOfficerAccount(\n password: string,\n extraNonce: EncryptionNonce,\n): Promise<OfficerAccount & { safe: LockedAccount }> {\n const { eddsaPriv, eddsaPub } = createEddsaKeyPair();\n\n const key = stringToBytes(password);\n\n const localRnd = getRandomBytesF(24)\n const mergedRnd: EncryptionNonce = extraNonce ?\n kdf(24, stringToBytes(\"aml-officer\"), extraNonce, localRnd) :\n localRnd;\n\n const protectedPrivKey = await encryptWithDerivedKey(\n mergedRnd,\n key,\n eddsaPriv,\n password,\n );\n\n const signingKey = eddsaPriv as SigningKey;\n const accountId = encodeCrock(eddsaPub) as OfficerId;\n const safe = encodeCrock(protectedPrivKey) as LockedAccount;\n\n return { id: accountId, signingKey, safe };\n}\n\nexport class UnwrapKeyError extends Error {\n public cause: string;\n constructor(cause: string) {\n super(`Recovering private key failed on: ${cause}`);\n this.cause = cause;\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n// Entry point for the browser.\n\nimport { loadBrowserPrng } from \"./prng-browser.js\";\nloadBrowserPrng();\nexport * from \"./index.js\";\n\n// The web stuff doesn't support package.json export declarations yet,\n// so we export more stuff here than we should.\nexport * from \"./http-common.js\";\n", "/*\n This file is part of GNU Anastasis\n (C) 2021-2022 Anastasis SARL\n\n GNU Anastasis is free software; you can redistribute it and/or modify it under the\n terms of the GNU Affero General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License along with\n GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Codec, codecForString } from \"@gnu-taler/taler-util\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport {\n ObservableMap,\n browserStorageMap,\n localStorageMap,\n memoryMap,\n} from \"../utils/observable.js\";\n\ndeclare const opaque_StorageKey: unique symbol;\n\nexport type StorageKey<Key> = {\n id: string;\n [opaque_StorageKey]: true;\n codec: Codec<Key>;\n};\n\nexport function buildStorageKey<Key>(\n name: string,\n codec: Codec<Key>,\n): StorageKey<Key>;\nexport function buildStorageKey(name: string): StorageKey<string>;\nexport function buildStorageKey<Key = string>(\n name: string,\n codec?: Codec<Key>,\n): StorageKey<Key> {\n return {\n id: name,\n codec: codec ?? (codecForString() as Codec<Key>),\n } as StorageKey<Key>;\n}\n\nexport interface StorageState<Type = string> {\n value?: Type;\n update: (s: Type) => void;\n reset: () => void;\n}\n\nconst supportLocalStorage = typeof window !== \"undefined\";\nconst supportBrowserStorage =\n typeof chrome !== \"undefined\" && typeof chrome.storage !== \"undefined\";\n\nconst storage: ObservableMap<string, string> = (function buildStorage() {\n if (supportBrowserStorage) {\n return browserStorageMap(memoryMap<string>());\n } else if (supportLocalStorage) {\n return localStorageMap();\n } else {\n return memoryMap<string>();\n }\n})();\n\n//with initial value\nexport function useLocalStorage<Type = string>(\n key: StorageKey<Type>,\n defaultValue: Type,\n): Required<StorageState<Type>>;\n//without initial value\nexport function useLocalStorage<Type = string>(\n key: StorageKey<Type>,\n): StorageState<Type>;\n// impl\nexport function useLocalStorage<Type = string>(\n key: StorageKey<Type>,\n defaultValue?: Type,\n): StorageState<Type> {\n function convert(updated: string | undefined): Type | undefined {\n if (updated === undefined) return defaultValue; //optional\n try {\n return key.codec.decode(JSON.parse(updated));\n } catch (e) {\n //decode error\n return defaultValue;\n }\n }\n const [storedValue, setStoredValue] = useState<Type | undefined>(\n (): Type | undefined => {\n const prev = storage.get(key.id);\n return convert(prev);\n },\n );\n\n useEffect(() => {\n return storage.onUpdate(key.id, () => {\n const newValue = storage.get(key.id);\n setStoredValue(convert(newValue));\n });\n }, [key.id]);\n\n const setValue = (value?: Type): void => {\n if (value === undefined) {\n storage.delete(key.id);\n } else {\n storage.set(\n key.id,\n key.codec ? JSON.stringify(value) : (value as string),\n );\n }\n };\n\n return {\n value: storedValue,\n update: setValue,\n reset: () => {\n setValue(defaultValue);\n },\n };\n}\n", "import { isArrayBufferView } from \"util/types\";\n\nexport type ObservableMap<K, V> = Map<K, V> & {\n onAnyUpdate: (callback: () => void) => () => void;\n onUpdate: (key: string, callback: () => void) => () => void;\n};\n\n//FIXME: allow different type for different properties\nexport function memoryMap<T>(\n backend: Map<string, T> = new Map<string, T>(),\n): ObservableMap<string, T> {\n const obs = new EventTarget();\n const theMemoryMap: ObservableMap<string, T> = {\n onAnyUpdate: (handler) => {\n obs.addEventListener(`update`, handler);\n obs.addEventListener(`clear`, handler);\n return () => {\n obs.removeEventListener(`update`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n onUpdate: (key, handler) => {\n obs.addEventListener(`update-${key}`, handler);\n obs.addEventListener(`clear`, handler);\n return () => {\n obs.removeEventListener(`update-${key}`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n delete: (key: string) => {\n const result = backend.delete(key);\n //@ts-ignore\n theMemoryMap.size = backend.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return result;\n },\n set: (key: string, value: T) => {\n backend.set(key, value);\n //@ts-ignore\n theMemoryMap.size = backend.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return theMemoryMap;\n },\n clear: () => {\n backend.clear();\n obs.dispatchEvent(new Event(`clear`));\n },\n entries: backend.entries.bind(backend),\n forEach: backend.forEach.bind(backend),\n get: backend.get.bind(backend),\n has: backend.has.bind(backend),\n keys: backend.keys.bind(backend),\n size: backend.size,\n values: backend.values.bind(backend),\n [Symbol.iterator]: backend[Symbol.iterator],\n [Symbol.toStringTag]: \"theMemoryMap\",\n };\n return theMemoryMap;\n}\n\n//FIXME: change this implementation to match the\n// browser storage. instead of creating a sync implementation\n// of observable map it should reuse the memoryMap and\n// sync the state with local storage\nexport function localStorageMap(): ObservableMap<string, string> {\n const obs = new EventTarget();\n const theLocalStorageMap: ObservableMap<string, string> = {\n onAnyUpdate: (handler) => {\n obs.addEventListener(`update`, handler);\n obs.addEventListener(`clear`, handler);\n window.addEventListener(\"storage\", handler);\n return () => {\n window.removeEventListener(\"storage\", handler);\n obs.removeEventListener(`update`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n onUpdate: (key, handler) => {\n obs.addEventListener(`update-${key}`, handler);\n obs.addEventListener(`clear`, handler);\n function handleStorageEvent(ev: StorageEvent) {\n if (ev.key === null || ev.key === key) {\n handler();\n }\n }\n window.addEventListener(\"storage\", handleStorageEvent);\n return () => {\n window.removeEventListener(\"storage\", handleStorageEvent);\n obs.removeEventListener(`update-${key}`, handler);\n obs.removeEventListener(`clear`, handler);\n };\n },\n delete: (key: string) => {\n const exists = localStorage.getItem(key) !== null;\n localStorage.removeItem(key);\n //@ts-ignore\n theLocalStorageMap.size = localStorage.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return exists;\n },\n set: (key: string, v: string) => {\n localStorage.setItem(key, v);\n //@ts-ignore\n theLocalStorageMap.size = localStorage.length;\n obs.dispatchEvent(new Event(`update-${key}`));\n obs.dispatchEvent(new Event(`update`));\n return theLocalStorageMap;\n },\n clear: () => {\n localStorage.clear();\n obs.dispatchEvent(new Event(`clear`));\n },\n entries: (): IterableIterator<[string, string]> => {\n let index = 0;\n const total = localStorage.length;\n return {\n next() {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n const item = localStorage.getItem(key);\n if (item === null) {\n //the key exist, this should not happen\n throw Error(\"value cant be null\");\n }\n if (index == total) return { done: true, value: [key, item] };\n index = index + 1;\n return { done: false, value: [key, item] };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n },\n forEach: (cb) => {\n for (let index = 0; index < localStorage.length; index++) {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n const item = localStorage.getItem(key);\n if (item === null) {\n //the key exist, this should not happen\n throw Error(\"value cant be null\");\n }\n cb(key, item, theLocalStorageMap);\n }\n },\n get: (key: string) => {\n const item = localStorage.getItem(key);\n if (item === null) return undefined;\n return item;\n },\n has: (key: string) => {\n return localStorage.getItem(key) === null;\n },\n keys: () => {\n let index = 0;\n const total = localStorage.length;\n return {\n next() {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n if (index == total) return { done: true, value: key };\n index = index + 1;\n return { done: false, value: key };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n },\n size: localStorage.length,\n values: () => {\n let index = 0;\n const total = localStorage.length;\n return {\n next() {\n const key = localStorage.key(index);\n if (key === null) {\n //we are going from 0 until last, this should not happen\n throw Error(\"key cant be null\");\n }\n const item = localStorage.getItem(key);\n if (item === null) {\n //the key exist, this should not happen\n throw Error(\"value cant be null\");\n }\n if (index == total) return { done: true, value: item };\n index = index + 1;\n return { done: false, value: item };\n },\n [Symbol.iterator]() {\n return this;\n },\n };\n },\n [Symbol.iterator]: function (): IterableIterator<[string, string]> {\n return theLocalStorageMap.entries();\n },\n [Symbol.toStringTag]: \"theLocalStorageMap\",\n };\n return theLocalStorageMap;\n}\n\nconst isFirefox =\n typeof (window as any) !== \"undefined\" &&\n typeof (window as any)[\"InstallTrigger\"] !== \"undefined\";\n\nasync function getAllContent() {\n //Firefox and Chrome has different storage api\n if (isFirefox) {\n // @ts-ignore\n return browser.storage.local.get();\n } else {\n return chrome.storage.local.get();\n }\n}\n\nasync function updateContent(obj: Record<string, any>) {\n if (isFirefox) {\n // @ts-ignore\n return browser.storage.local.set(obj);\n } else {\n return chrome.storage.local.set(obj);\n }\n}\ntype Changes = { [key: string]: { oldValue?: any; newValue?: any } };\nfunction onBrowserStorageUpdate(cb: (changes: Changes) => void): void {\n if (isFirefox) {\n // @ts-ignore\n browser.storage.local.onChanged.addListener(cb);\n } else {\n chrome.storage.local.onChanged.addListener(cb);\n }\n}\n\nexport function browserStorageMap(\n backend: ObservableMap<string, string>,\n): ObservableMap<string, string> {\n getAllContent().then((content) => {\n Object.entries(content ?? {}).forEach(([k, v]) => {\n backend.set(k, v as string);\n });\n });\n\n backend.onAnyUpdate(async () => {\n const result: Record<string, string> = {};\n for (const [key, value] of backend.entries()) {\n result[key] = value;\n }\n await updateContent(result);\n });\n\n onBrowserStorageUpdate((changes) => {\n //another chrome instance made the change\n const changedItems = Object.keys(changes);\n if (changedItems.length === 0) {\n backend.clear();\n } else {\n for (const key of changedItems) {\n if (!changes[key].newValue) {\n backend.delete(key);\n } else {\n if (changes[key].newValue !== changes[key].oldValue) {\n backend.set(key, changes[key].newValue);\n }\n }\n }\n }\n });\n\n return backend;\n}\n", "/*\n This file is part of GNU Anastasis\n (C) 2021-2022 Anastasis SARL\n\n GNU Anastasis is free software; you can redistribute it and/or modify it under the\n terms of the GNU Affero General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License along with\n GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport {\n StorageState,\n buildStorageKey,\n useLocalStorage,\n} from \"./useLocalStorage.js\";\n\nfunction getBrowserLang(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n if (window.navigator.languages) return window.navigator.languages[0];\n if (window.navigator.language) return window.navigator.language;\n return undefined;\n}\n\nconst langPreferenceKey = buildStorageKey(\"lang-preference\");\n\nexport function useLang(initial?: string): Required<StorageState> {\n const defaultValue = (getBrowserLang() || initial || \"en\").substring(0, 2);\n return useLocalStorage(langPreferenceKey, defaultValue);\n}\n", "/*\n This file is part of GNU Anastasis\n (C) 2021-2022 Anastasis SARL\n\n GNU Anastasis is free software; you can redistribute it and/or modify it under the\n terms of the GNU Affero General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License along with\n GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useEffect, useState } from \"preact/hooks\";\nimport { ObservableMap, memoryMap } from \"../utils/observable.js\";\nimport { StorageKey, StorageState } from \"./useLocalStorage.js\";\n\nconst storage: ObservableMap<string, any> = memoryMap<any>();\n\n//with initial value\nexport function useMemoryStorage<Type = string>(\n key: string,\n defaultValue: Type,\n): Required<StorageState<Type>>;\n//with initial value\nexport function useMemoryStorage<Type = string>(\n key: string,\n): StorageState<Type>;\n// impl\nexport function useMemoryStorage<Type = string>(\n key: string,\n defaultValue?: Type,\n): StorageState<Type> {\n const [storedValue, setStoredValue] = useState<Type | undefined>(\n (): Type | undefined => {\n const prev = storage.get(key);\n return prev === undefined ? defaultValue : prev;\n },\n );\n\n useEffect(() => {\n return storage.onUpdate(key, () => {\n const newValue = storage.get(key);\n setStoredValue(newValue === undefined ? defaultValue : newValue);\n });\n }, [key]);\n\n const setValue = (value?: Type): void => {\n if (value === undefined) {\n storage.delete(key);\n } else {\n storage.set(key, value);\n }\n };\n\n return {\n value: storedValue,\n update: setValue,\n reset: () => {\n setValue(defaultValue);\n },\n };\n}\n", "import { TalerError, TalerErrorCode, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { memoryMap, useTranslationContext } from \"../index.browser.js\";\n\nexport type NotificationMessage = ErrorNotification | InfoNotification;\n\nexport interface ErrorNotification {\n type: \"error\";\n title: TranslatedString;\n description?: TranslatedString;\n debug?: any;\n}\nexport interface InfoNotification {\n type: \"info\";\n title: TranslatedString;\n}\n\nconst storage = memoryMap<Map<string, NotificationMessage>>();\nconst NOTIFICATION_KEY = \"notification\";\n\nexport function notify(notif: NotificationMessage): void {\n const currentState: Map<string, NotificationMessage> =\n storage.get(NOTIFICATION_KEY) ?? new Map();\n const newState = currentState.set(hash(notif), notif);\n storage.set(NOTIFICATION_KEY, newState);\n}\nexport function notifyError(\n title: TranslatedString,\n description: TranslatedString | undefined,\n debug?: any,\n) {\n notify({\n type: \"error\" as const,\n title,\n description,\n debug,\n });\n}\nexport function notifyException(\n title: TranslatedString,\n ex: Error,\n) {\n notify({\n type: \"error\" as const,\n title,\n description: ex.message as TranslatedString,\n debug: ex.stack,\n });\n}\nexport function notifyInfo(title: TranslatedString) {\n notify({\n type: \"info\" as const,\n title,\n });\n}\n\nexport type Notification = {\n message: NotificationMessage;\n remove: () => void;\n};\n\nexport function useNotifications(): Notification[] {\n const [value, setter] = useState<Map<string, NotificationMessage>>(new Map());\n useEffect(() => {\n return storage.onUpdate(NOTIFICATION_KEY, () => {\n const mem = storage.get(NOTIFICATION_KEY) ?? new Map();\n setter(structuredClone(mem));\n });\n });\n\n return Array.from(value.values()).map((message, idx) => {\n return {\n message,\n remove: () => {\n const mem = storage.get(NOTIFICATION_KEY) ?? new Map();\n const newState = new Map(mem);\n newState.delete(hash(message));\n storage.set(NOTIFICATION_KEY, newState);\n },\n };\n });\n}\n\nfunction hashCode(str: string): string {\n if (str.length === 0) return \"0\";\n let hash = 0;\n let chr;\n for (let i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash.toString(16);\n}\n\nfunction hash(msg: NotificationMessage): string {\n let str = (msg.type + \":\" + msg.title) as string;\n if (msg.type === \"error\") {\n if (msg.description) {\n str += \":\" + msg.description;\n }\n if (msg.debug) {\n str += \":\" + msg.debug;\n }\n }\n return hashCode(str);\n}\n\nexport function useLocalNotification(): [Notification | undefined, (n: NotificationMessage) => void, (cb: () => Promise<void>) => Promise<void>] {\n const {i18n} = useTranslationContext();\n\n const [value, setter] = useState<NotificationMessage>();\n const notif = !value ? undefined : {\n message: value,\n remove: () => {\n setter(undefined);\n },\n }\n\n async function errorHandling(cb: () => Promise<void>) {\n try {\n return await cb()\n } catch (error: unknown) {\n if (error instanceof TalerError) {\n notify(buildRequestErrorMessage(i18n, error))\n } else {\n notifyError(\n i18n.str`Operation failed, please report`,\n (error instanceof Error\n ? error.message\n : JSON.stringify(error)) as TranslatedString\n )\n }\n\n }\n }\n return [notif, setter, errorHandling]\n}\n\ntype Translator = ReturnType<typeof useTranslationContext>[\"i18n\"]\n\nfunction buildRequestErrorMessage( i18n: Translator, cause: TalerError): ErrorNotification {\n let result: ErrorNotification;\n switch (cause.errorDetail.code) {\n case TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT: {\n result = {\n type: \"error\",\n title: i18n.str`Request timeout`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED: {\n result = {\n type: \"error\",\n title: i18n.str`Request throttled`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE: {\n result = {\n type: \"error\",\n title: i18n.str`Malformed response`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_NETWORK_ERROR: {\n result = {\n type: \"error\",\n title: i18n.str`Network error`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n case TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR: {\n result = {\n type: \"error\",\n title: i18n.str`Unexpected request error`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n default: {\n result = {\n type: \"error\",\n title: i18n.str`Unexpected error`,\n description: cause.message as TranslatedString,\n debug: JSON.stringify(cause.errorDetail, undefined, 2),\n };\n break;\n }\n }\n return result;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\nimport { TalerErrorDetail } from \"@gnu-taler/taler-util\";\n// import { TalerError } from \"@gnu-taler/taler-wallet-core\";\nimport { useEffect, useMemo, useState } from \"preact/hooks\";\n\nexport interface HookOk<T> {\n hasError: false;\n response: T;\n}\n\nexport type HookError = HookGenericError | HookOperationalError;\n\nexport interface HookGenericError {\n hasError: true;\n operational: false;\n message: string;\n}\n\nexport interface HookOperationalError {\n hasError: true;\n operational: true;\n details: TalerErrorDetail;\n}\n\ninterface WithRetry {\n retry: () => void;\n}\n\nexport type HookResponse<T> = HookOk<T> | HookError | undefined;\nexport type HookResponseWithRetry<T> =\n | ((HookOk<T> | HookError) & WithRetry)\n | undefined;\n\nexport function useAsyncAsHook<T>(\n fn: () => Promise<T | false>,\n deps?: any[],\n): HookResponseWithRetry<T> {\n const [result, setHookResponse] = useState<HookResponse<T>>(undefined);\n\n const args = useMemo(\n () => ({\n fn,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }),\n deps || [],\n );\n\n async function doAsync(): Promise<void> {\n try {\n const response = await args.fn();\n if (response === false) return;\n setHookResponse({ hasError: false, response });\n } catch (e) {\n // if (e instanceof TalerError) {\n // setHookResponse({\n // hasError: true,\n // operational: true,\n // details: e.errorDetail,\n // });\n // } else\n if (e instanceof Error) {\n setHookResponse({\n hasError: true,\n operational: false,\n message: e.message,\n });\n }\n }\n }\n\n useEffect(() => {\n doAsync();\n }, [args]);\n\n if (!result) return undefined;\n return { ...result, retry: doAsync };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n\nexport function base64encode(str: string): string {\n return base64EncArr(strToUTF8Arr(str))\n}\n\nexport function base64decode(str: string): string {\n return UTF8ArrToStr(base64DecToArr(str))\n}\n\n// from https://developer.mozilla.org/en-US/docs/Glossary/Base64\n\n// Array of bytes to Base64 string decoding\nfunction b64ToUint6(nChr: number): number {\n return nChr > 64 && nChr < 91\n ? nChr - 65\n : nChr > 96 && nChr < 123\n ? nChr - 71\n : nChr > 47 && nChr < 58\n ? nChr + 4\n : nChr === 43\n ? 62\n : nChr === 47\n ? 63\n : 0;\n}\n\nfunction base64DecToArr(sBase64: string, nBlocksSize?: number): Uint8Array {\n const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, \"\"); // Only necessary if the base64 includes whitespace such as line breaks.\n const nInLen = sB64Enc.length;\n const nOutLen = nBlocksSize\n ? Math.ceil(((nInLen * 3 + 1) >> 2) / nBlocksSize) * nBlocksSize\n : (nInLen * 3 + 1) >> 2;\n const taBytes = new Uint8Array(nOutLen);\n\n let nMod3;\n let nMod4;\n let nUint24 = 0;\n let nOutIdx = 0;\n for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3;\n nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4));\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n nMod3 = 0;\n while (nMod3 < 3 && nOutIdx < nOutLen) {\n taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255;\n nMod3++;\n nOutIdx++;\n }\n nUint24 = 0;\n }\n }\n\n return taBytes;\n}\n\n/* Base64 string to array encoding */\nfunction uint6ToB64(nUint6: number): number {\n return nUint6 < 26\n ? nUint6 + 65\n : nUint6 < 52\n ? nUint6 + 71\n : nUint6 < 62\n ? nUint6 - 4\n : nUint6 === 62\n ? 43\n : nUint6 === 63\n ? 47\n : 65;\n}\n\nfunction base64EncArr(aBytes: Uint8Array): string {\n let nMod3 = 2;\n let sB64Enc = \"\";\n\n const nLen = aBytes.length;\n let nUint24 = 0;\n for (let nIdx = 0; nIdx < nLen; nIdx++) {\n nMod3 = nIdx % 3;\n // To break your base64 into several 80-character lines, add:\n // if (nIdx > 0 && ((nIdx * 4) / 3) % 76 === 0) {\n // sB64Enc += \"\\r\\n\";\n // }\n\n nUint24 |= aBytes[nIdx] << ((16 >>> nMod3) & 24);\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\n sB64Enc += String.fromCodePoint(\n uint6ToB64((nUint24 >>> 18) & 63),\n uint6ToB64((nUint24 >>> 12) & 63),\n uint6ToB64((nUint24 >>> 6) & 63),\n uint6ToB64(nUint24 & 63)\n );\n nUint24 = 0;\n }\n }\n return (\n sB64Enc.substring(0, sB64Enc.length - 2 + nMod3) +\n (nMod3 === 2 ? \"\" : nMod3 === 1 ? \"=\" : \"==\")\n );\n}\n\n/* UTF-8 array to JS string and vice versa */\n\nfunction UTF8ArrToStr(aBytes: Uint8Array): string {\n let sView = \"\";\n let nPart;\n const nLen = aBytes.length;\n for (let nIdx = 0; nIdx < nLen; nIdx++) {\n nPart = aBytes[nIdx];\n sView += String.fromCodePoint(\n nPart > 251 && nPart < 254 && nIdx + 5 < nLen /* six bytes */\n ? /* (nPart - 252 << 30) may be not so safe in ECMAScript! So\u2026: */\n (nPart - 252) * 1073741824 +\n ((aBytes[++nIdx] - 128) << 24) +\n ((aBytes[++nIdx] - 128) << 18) +\n ((aBytes[++nIdx] - 128) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen /* five bytes */\n ? ((nPart - 248) << 24) +\n ((aBytes[++nIdx] - 128) << 18) +\n ((aBytes[++nIdx] - 128) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen /* four bytes */\n ? ((nPart - 240) << 18) +\n ((aBytes[++nIdx] - 128) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen /* three bytes */\n ? ((nPart - 224) << 12) +\n ((aBytes[++nIdx] - 128) << 6) +\n aBytes[++nIdx] -\n 128\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen /* two bytes */\n ? ((nPart - 192) << 6) + aBytes[++nIdx] - 128\n : /* nPart < 127 ? */ /* one byte */\n nPart\n );\n }\n return sView;\n}\n\nfunction strToUTF8Arr(sDOMStr: string): Uint8Array {\n let nChr;\n const nStrLen = sDOMStr.length;\n let nArrLen = 0;\n\n /* mapping\u2026 */\n for (let nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\n nChr = sDOMStr.codePointAt(nMapIdx);\n if (nChr === undefined) {\n throw Error(`No char at ${nMapIdx} on string with length: ${sDOMStr.length}`)\n }\n\n if (nChr >= 0x10000) {\n nMapIdx++;\n }\n\n nArrLen +=\n nChr < 0x80\n ? 1\n : nChr < 0x800\n ? 2\n : nChr < 0x10000\n ? 3\n : nChr < 0x200000\n ? 4\n : nChr < 0x4000000\n ? 5\n : 6;\n }\n\n const aBytes = new Uint8Array(nArrLen);\n\n /* transcription\u2026 */\n let nIdx = 0;\n let nChrIdx = 0;\n while (nIdx < nArrLen) {\n nChr = sDOMStr.codePointAt(nChrIdx);\n if (nChr === undefined) {\n throw Error(`No char at ${nChrIdx} on string with length: ${sDOMStr.length}`)\n }\n if (nChr < 128) {\n /* one byte */\n aBytes[nIdx++] = nChr;\n } else if (nChr < 0x800) {\n /* two bytes */\n aBytes[nIdx++] = 192 + (nChr >>> 6);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x10000) {\n /* three bytes */\n aBytes[nIdx++] = 224 + (nChr >>> 12);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x200000) {\n /* four bytes */\n aBytes[nIdx++] = 240 + (nChr >>> 18);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n nChrIdx++;\n } else if (nChr < 0x4000000) {\n /* five bytes */\n aBytes[nIdx++] = 248 + (nChr >>> 24);\n aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n nChrIdx++;\n } /* if (nChr <= 0x7fffffff) */ else {\n /* six bytes */\n aBytes[nIdx++] = 252 + (nChr >>> 30);\n aBytes[nIdx++] = 128 + ((nChr >>> 24) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n nChrIdx++;\n }\n nChrIdx++;\n }\n\n return aBytes;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { HttpStatusCode } from \"@gnu-taler/taler-util\";\nimport { base64encode } from \"./base64.js\";\n\nexport enum ErrorType {\n CLIENT,\n SERVER,\n UNREADABLE,\n TIMEOUT,\n UNEXPECTED,\n}\n\n\n\n/**\n *\n * @param baseUrl URL where the service is located\n * @param endpoint endpoint of the service to be called\n * @param options auth, method and params\n * @returns\n */\nexport async function defaultRequestHandler<T>(\n baseUrl: string,\n endpoint: string,\n options: RequestOptions = {},\n): Promise<HttpResponseOk<T>> {\n const requestHeaders: Record<string, string> = {};\n if (options.token) {\n requestHeaders.Authorization = `Bearer ${options.token}`;\n } else if (options.basicAuth) {\n requestHeaders.Authorization = `Basic ${base64encode(\n `${options.basicAuth.username}:${options.basicAuth.password}`,\n )}`;\n }\n requestHeaders[\"Content-Type\"] =\n !options.contentType || options.contentType === \"json\" ? \"application/json\" : \"text/plain\";\n\n if (options.talerAmlOfficerSignature) {\n requestHeaders[\"Taler-AML-Officer-Signature\"] =\n options.talerAmlOfficerSignature;\n }\n\n const requestMethod = options?.method ?? \"GET\";\n const requestBody = options?.data;\n const requestTimeout = options?.timeout ?? 5 * 1000;\n const requestParams = options.params ?? {};\n const requestPreventCache = options.preventCache ?? false;\n const requestPreventCors = options.preventCors ?? false;\n\n const validURL = validateURL(baseUrl, endpoint);\n\n if (!validURL) {\n const error: HttpResponseUnexpectedError = {\n info: {\n url: `${baseUrl}${endpoint}`,\n payload: {},\n hasToken: !!options.token,\n status: 0,\n options,\n },\n type: ErrorType.UNEXPECTED,\n exception: undefined,\n loading: false,\n message: `invalid URL: \"${baseUrl}${endpoint}\"`,\n };\n throw new RequestError(error)\n }\n\n Object.entries(requestParams).forEach(([key, value]) => {\n validURL.searchParams.set(key, String(value));\n });\n\n let payload: BodyInit | undefined = undefined;\n if (requestBody != null) {\n if (typeof requestBody === \"string\") {\n payload = requestBody;\n } else if (requestBody instanceof ArrayBuffer) {\n payload = requestBody;\n } else if (ArrayBuffer.isView(requestBody)) {\n payload = requestBody;\n } else if (typeof requestBody === \"object\") {\n payload = JSON.stringify(requestBody);\n } else {\n const error: HttpResponseUnexpectedError = {\n info: {\n url: validURL.href,\n payload: {},\n hasToken: !!options.token,\n status: 0,\n options,\n },\n type: ErrorType.UNEXPECTED,\n exception: undefined,\n loading: false,\n message: `unsupported request body type: \"${typeof requestBody}\"`,\n };\n throw new RequestError(error)\n }\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => {\n controller.abort(\"HTTP_REQUEST_TIMEOUT\");\n }, requestTimeout);\n\n let response;\n try {\n response = await fetch(validURL.href, {\n headers: requestHeaders,\n method: requestMethod,\n credentials: \"omit\",\n mode: requestPreventCors ? \"no-cors\" : \"cors\",\n cache: requestPreventCache ? \"no-cache\" : \"default\",\n body: payload,\n signal: controller.signal,\n });\n } catch (ex) {\n const info: RequestInfo = {\n payload,\n url: validURL.href,\n hasToken: !!options.token,\n status: 0,\n options,\n };\n\n if (ex instanceof Error) {\n if (ex.message === \"HTTP_REQUEST_TIMEOUT\") {\n const error: HttpRequestTimeoutError = {\n info,\n type: ErrorType.TIMEOUT,\n message: \"request timeout\",\n };\n throw new RequestError(error);\n }\n }\n\n const error: HttpResponseUnexpectedError = {\n info,\n type: ErrorType.UNEXPECTED,\n exception: ex,\n loading: false,\n message: (ex instanceof Error ? ex.message : \"\"),\n };\n throw new RequestError(error);\n }\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n const headerMap = new Headers();\n response.headers.forEach((value, key) => {\n headerMap.set(key, value);\n });\n\n if (response.ok) {\n const result = await buildRequestOk<T>(\n response,\n validURL.href,\n payload,\n !!options.token,\n options,\n );\n return result;\n } else {\n const dataTxt = await response.text();\n const error = buildRequestFailed(\n validURL.href,\n dataTxt,\n response.status,\n payload,\n options,\n );\n throw new RequestError(error);\n }\n}\n\nexport type HttpResponse<T, ErrorDetail> =\n | HttpResponseOk<T>\n | HttpResponseLoading<T>\n | HttpError<ErrorDetail>;\n\nexport type HttpResponsePaginated<T, ErrorDetail> =\n | HttpResponseOkPaginated<T>\n | HttpResponseLoading<T>\n | HttpError<ErrorDetail>;\n\nexport interface RequestInfo {\n url: string;\n hasToken: boolean;\n payload: any;\n status: number;\n options: RequestOptions;\n}\n\ninterface HttpResponseLoading<T> {\n ok?: false;\n loading: true;\n clientError?: false;\n serverError?: false;\n\n data?: T;\n}\nexport interface HttpResponseOk<T> {\n ok: true;\n loading?: false;\n clientError?: false;\n serverError?: false;\n\n data: T;\n info?: RequestInfo;\n}\n\nexport type HttpResponseOkPaginated<T> = HttpResponseOk<T> & WithPagination;\n\nexport interface WithPagination {\n loadMore: () => void;\n loadMorePrev: () => void;\n isReachingEnd?: boolean;\n isReachingStart?: boolean;\n}\n\nexport type HttpError<ErrorDetail> =\n | HttpRequestTimeoutError\n | HttpResponseClientError<ErrorDetail>\n | HttpResponseServerError<ErrorDetail>\n | HttpResponseUnreadableError\n | HttpResponseUnexpectedError;\n\nexport interface HttpResponseServerError<ErrorDetail> {\n ok?: false;\n loading?: false;\n type: ErrorType.SERVER;\n payload: ErrorDetail;\n status: HttpStatusCode;\n message: string;\n info: RequestInfo;\n}\ninterface HttpRequestTimeoutError {\n ok?: false;\n loading?: false;\n type: ErrorType.TIMEOUT;\n\n info: RequestInfo;\n\n message: string;\n}\ninterface HttpResponseClientError<ErrorDetail> {\n ok?: false;\n loading?: false;\n type: ErrorType.CLIENT;\n\n info: RequestInfo;\n status: HttpStatusCode;\n payload: ErrorDetail;\n message: string;\n}\n\ninterface HttpResponseUnexpectedError {\n ok?: false;\n loading: false;\n type: ErrorType.UNEXPECTED;\n\n info: RequestInfo;\n status?: HttpStatusCode;\n exception: unknown;\n message: string;\n}\n\ninterface HttpResponseUnreadableError {\n ok?: false;\n loading: false;\n type: ErrorType.UNREADABLE;\n\n info: RequestInfo;\n status: HttpStatusCode;\n exception: unknown;\n body: string;\n message: string;\n}\nexport class RequestError<ErrorDetail> extends Error {\n /**\n * @deprecated use cause\n */\n info: HttpError<ErrorDetail>;\n cause: HttpError<ErrorDetail>;\n constructor(d: HttpError<ErrorDetail>) {\n super(d.message);\n this.info = d;\n this.cause = d;\n }\n}\n\ntype Methods = \"GET\" | \"POST\" | \"PATCH\" | \"DELETE\" | \"PUT\";\n\nexport interface RequestOptions {\n method?: Methods;\n token?: string;\n basicAuth?: {\n username: string;\n password: string;\n };\n preventCache?: boolean;\n preventCors?: boolean;\n data?: any;\n params?: unknown;\n timeout?: number;\n contentType?: \"text\" | \"json\";\n talerAmlOfficerSignature?: string;\n}\n\nasync function buildRequestOk<T>(\n response: Response,\n url: string,\n payload: any,\n hasToken: boolean,\n options: RequestOptions,\n): Promise<HttpResponseOk<T>> {\n const dataTxt = await response.text();\n const data = dataTxt ? JSON.parse(dataTxt) : undefined;\n return {\n ok: true,\n data,\n info: {\n payload,\n url,\n hasToken,\n options,\n status: response.status,\n },\n };\n}\n\nexport function buildRequestFailed<ErrorDetail>(\n url: string,\n dataTxt: string,\n status: number,\n payload: any,\n maybeOptions?: RequestOptions,\n):\n | HttpResponseClientError<ErrorDetail>\n | HttpResponseServerError<ErrorDetail>\n | HttpResponseUnreadableError\n | HttpResponseUnexpectedError {\n const options = maybeOptions ?? {};\n const info: RequestInfo = {\n payload,\n url,\n hasToken: !!options.token,\n options,\n status: status || 0,\n };\n\n // const dataTxt = await response.text();\n try {\n const data = dataTxt ? JSON.parse(dataTxt) : undefined;\n const errorCode = !data || !data.code ? \"\" : `(code: ${data.code})`;\n const errorHint =\n !data || !data.hint ? \"Not hint.\" : `${data.hint} ${errorCode}`;\n\n if (status && status >= 400 && status < 500) {\n const message =\n data === undefined\n ? `Client error (${status}) without data.`\n : errorHint;\n\n const error: HttpResponseClientError<ErrorDetail> = {\n type: ErrorType.CLIENT,\n status,\n info,\n message,\n payload: data,\n };\n return error;\n }\n if (status && status >= 500 && status < 600) {\n const message =\n data === undefined\n ? `Server error (${status}) without data.`\n : errorHint;\n const error: HttpResponseServerError<ErrorDetail> = {\n type: ErrorType.SERVER,\n status,\n info,\n message,\n payload: data,\n };\n return error;\n }\n return {\n info,\n loading: false,\n type: ErrorType.UNEXPECTED,\n status,\n exception: undefined,\n message: `http status code not handled: ${status}`,\n };\n } catch (ex) {\n const error: HttpResponseUnreadableError = {\n info,\n loading: false,\n status,\n type: ErrorType.UNREADABLE,\n exception: ex,\n body: dataTxt,\n message: \"Could not parse body as json\",\n };\n\n return error;\n }\n}\n\nfunction validateURL(baseUrl: string, endpoint: string): URL | undefined {\n try {\n return new URL(`${baseUrl}${endpoint}`)\n } catch (ex) {\n return undefined\n }\n\n}", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Imports.\n */\nimport {\n Logger,\n RequestThrottler,\n TalerErrorCode,\n TalerError,\n Duration,\n} from \"@gnu-taler/taler-util\";\n\nimport {\n HttpRequestLibrary,\n HttpRequestOptions,\n HttpResponse,\n Headers,\n getDefaultHeaders,\n encodeBody,\n DEFAULT_REQUEST_TIMEOUT_MS,\n} from \"@gnu-taler/taler-util/http\";\n\nconst logger = new Logger(\"browserHttpLib\");\n\n/**\n * An implementation of the [[HttpRequestLibrary]] using the\n * browser's XMLHttpRequest.\n */\nexport class BrowserHttpLib implements HttpRequestLibrary {\n private throttle = new RequestThrottler();\n private throttlingEnabled = true;\n\n fetch(\n requestUrl: string,\n options?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n const requestMethod = options?.method ?? \"GET\";\n const requestBody = options?.body;\n const requestHeader = options?.headers;\n const requestTimeout =\n options?.timeout ?? Duration.fromMilliseconds(DEFAULT_REQUEST_TIMEOUT_MS);\n\n if (this.throttlingEnabled && this.throttle.applyThrottle(requestUrl)) {\n const parsedUrl = new URL(requestUrl);\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED,\n {\n requestMethod,\n requestUrl,\n throttleStats: this.throttle.getThrottleStats(requestUrl),\n },\n `request to origin ${parsedUrl.origin} was throttled`,\n );\n }\n\n let myBody: ArrayBuffer | undefined =\n requestMethod === \"POST\" || requestMethod === \"PUT\" || requestMethod === \"PATCH\"\n ? encodeBody(requestBody)\n : undefined;\n\n const requestHeadersMap = {\n ...getDefaultHeaders(requestMethod),\n ...requestHeader,\n };\n\n return new Promise<HttpResponse>((resolve, reject) => {\n const myRequest = new XMLHttpRequest();\n\n myRequest.onerror = (e) => {\n logger.error(\"http request error\");\n reject(\n TalerError.fromDetail(\n TalerErrorCode.WALLET_NETWORK_ERROR,\n {\n requestUrl,\n requestMethod,\n },\n \"Could not make request\",\n ),\n );\n };\n\n myRequest.open(requestMethod, requestUrl);\n\n let timeoutId: any | undefined;\n if (requestTimeout.d_ms !== \"forever\") {\n timeoutId = setTimeout(() => {\n myRequest.abort();\n reject(\n TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT,\n {\n requestUrl,\n requestMethod,\n timeoutMs: requestTimeout.d_ms === \"forever\" ? 0 : requestTimeout.d_ms\n },\n `request to ${requestUrl} timed out`,\n ),\n );\n }, requestTimeout.d_ms);\n }\n\n Object.keys(requestHeadersMap).forEach((headerName) => {\n myRequest.setRequestHeader(headerName, requestHeadersMap[headerName]);\n });\n\n myRequest.responseType = \"arraybuffer\";\n myRequest.send(myBody);\n\n myRequest.addEventListener(\"readystatechange\", (e) => {\n if (myRequest.readyState === XMLHttpRequest.DONE) {\n if (myRequest.status === 0) {\n const exc = TalerError.fromDetail(\n TalerErrorCode.WALLET_NETWORK_ERROR,\n {\n requestUrl,\n requestMethod,\n },\n \"HTTP request failed (status 0, maybe URI scheme was wrong?)\",\n );\n reject(exc);\n return;\n }\n const makeText = async (): Promise<string> => {\n const td = new TextDecoder();\n return td.decode(myRequest.response);\n };\n let responseJson: unknown = undefined;\n const makeJson = async (): Promise<any> => {\n if (responseJson === undefined) {\n try {\n const td = new TextDecoder();\n const responseString = td.decode(myRequest.response);\n responseJson = JSON.parse(responseString);\n } catch (e) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: myRequest.status,\n },\n \"Invalid JSON from HTTP response\",\n );\n }\n }\n if (responseJson === null || typeof responseJson !== \"object\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: myRequest.status,\n },\n \"Invalid JSON from HTTP response\",\n );\n }\n return responseJson;\n };\n\n const headers = myRequest.getAllResponseHeaders();\n const arr = headers.trim().split(/[\\r\\n]+/);\n\n // Create a map of header names to values\n const headerMap: Headers = new Headers();\n arr.forEach(function (line) {\n const parts = line.split(\": \");\n const headerName = parts.shift();\n if (!headerName) {\n logger.warn(\"skipping invalid header\");\n return;\n }\n const value = parts.join(\": \");\n headerMap.set(headerName, value);\n });\n const resp: HttpResponse = {\n requestUrl: requestUrl,\n status: myRequest.status,\n headers: headerMap,\n requestMethod: requestMethod,\n json: makeJson,\n text: makeText,\n bytes: async () => myRequest.response,\n };\n resolve(resp);\n }\n });\n });\n }\n\n get(url: string, opt?: HttpRequestOptions): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"GET\",\n ...opt,\n });\n }\n\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n ...opt,\n });\n }\n\n stop(): void {\n // Nothing to do\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n * Imports.\n */\nimport {\n RequestThrottler,\n TalerErrorCode,\n TalerError,\n Duration,\n} from \"@gnu-taler/taler-util\";\n\nimport {\n DEFAULT_REQUEST_TIMEOUT_MS,\n Headers,\n HttpRequestLibrary,\n HttpRequestOptions,\n HttpResponse,\n encodeBody,\n getDefaultHeaders,\n} from \"@gnu-taler/taler-util/http\";\n\n/**\n * An implementation of the [[HttpRequestLibrary]] using the\n * browser's XMLHttpRequest.\n */\nexport class ServiceWorkerHttpLib implements HttpRequestLibrary {\n private throttle = new RequestThrottler();\n private throttlingEnabled = true;\n\n async fetch(\n requestUrl: string,\n options?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n const requestMethod = options?.method ?? \"GET\";\n const requestBody = options?.body;\n const requestHeader = options?.headers;\n const requestTimeout =\n options?.timeout ?? Duration.fromMilliseconds(DEFAULT_REQUEST_TIMEOUT_MS);\n\n if (this.throttlingEnabled && this.throttle.applyThrottle(requestUrl)) {\n const parsedUrl = new URL(requestUrl);\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED,\n {\n requestMethod,\n requestUrl,\n throttleStats: this.throttle.getThrottleStats(requestUrl),\n },\n `request to origin ${parsedUrl.origin} was throttled`,\n );\n }\n\n let myBody: ArrayBuffer | undefined =\n requestMethod === \"POST\" ? encodeBody(requestBody) : undefined;\n\n const requestHeadersMap = {\n ...getDefaultHeaders(requestMethod),\n ...requestHeader,\n };\n\n const controller = new AbortController();\n let timeoutId: any | undefined;\n if (requestTimeout.d_ms !== \"forever\") {\n timeoutId = setTimeout(() => {\n controller.abort(TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT);\n }, requestTimeout.d_ms);\n }\n\n try {\n const response = await fetch(requestUrl, {\n headers: requestHeadersMap,\n body: myBody,\n method: requestMethod,\n signal: controller.signal,\n });\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n const headerMap = new Headers();\n response.headers.forEach((value, key) => {\n headerMap.set(key, value);\n });\n return {\n headers: headerMap,\n status: response.status,\n requestMethod,\n requestUrl,\n json: makeJsonHandler(response, requestUrl, requestMethod),\n text: makeTextHandler(response, requestUrl, requestMethod),\n bytes: async () => (await response.blob()).arrayBuffer(),\n };\n } catch (e) {\n if (controller.signal) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT,\n {\n requestUrl,\n requestMethod,\n timeoutMs: requestTimeout.d_ms === \"forever\" ? 0 : requestTimeout.d_ms\n },\n `request to ${requestUrl} timed out`,\n );\n }\n throw e;\n }\n }\n\n get(url: string, opt?: HttpRequestOptions): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"GET\",\n ...opt,\n });\n }\n\n postJson(\n url: string,\n body: any,\n opt?: HttpRequestOptions,\n ): Promise<HttpResponse> {\n return this.fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n ...opt,\n });\n }\n\n stop(): void {\n // Nothing to do\n }\n}\n\nfunction makeTextHandler(\n response: Response,\n requestUrl: string,\n requestMethod: string,\n) {\n return async function getTextFromResponse(): Promise<any> {\n let respText;\n try {\n respText = await response.text();\n } catch (e) {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: response.status,\n },\n \"Invalid text from HTTP response\",\n );\n }\n return respText;\n };\n}\n\nfunction makeJsonHandler(\n response: Response,\n requestUrl: string,\n requestMethod: string,\n) {\n let responseJson: unknown = undefined;\n return async function getJsonFromResponse(): Promise<any> {\n if (responseJson === undefined) {\n try {\n responseJson = await response.json();\n } catch (e) {\n const message = e instanceof Error ? `Invalid JSON from HTTP response: ${e.message}` : \"Invalid JSON from HTTP response\"\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: response.status,\n },\n\t message,\n );\n }\n }\n if (responseJson === null || typeof responseJson !== \"object\") {\n throw TalerError.fromDetail(\n TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,\n {\n requestUrl,\n requestMethod,\n httpStatusCode: response.status,\n },\n \"Invalid JSON from HTTP response: null or not object\",\n );\n }\n return responseJson;\n };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { TalerBankIntegrationHttpClient, TalerCoreBankHttpClient, TalerRevenueHttpClient, TalerWireGatewayHttpClient } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, createContext, h, VNode } from \"preact\";\nimport { useContext } from \"preact/hooks\";\nimport { defaultRequestHandler } from \"../utils/request.js\";\n\ninterface Type {\n request: typeof defaultRequestHandler;\n bankCore: TalerCoreBankHttpClient,\n bankIntegration: TalerBankIntegrationHttpClient,\n bankWire: TalerWireGatewayHttpClient,\n bankRevenue: TalerRevenueHttpClient,\n}\n\nconst Context = createContext<Type>({request: defaultRequestHandler} as any);\n\nexport const useApiContext = (): Type => useContext(Context);\nexport const ApiContextProvider = ({\n children,\n value,\n}: {\n value: Type;\n children: ComponentChildren;\n}): VNode => {\n return h(Context.Provider, { value, children });\n};\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { i18n, setupI18n } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, createContext, h, VNode } from \"preact\";\nimport { useContext, useEffect } from \"preact/hooks\";\nimport { useLang } from \"../hooks/index.js\";\n\nexport type InternationalizationAPI = typeof i18n;\n\ninterface Type {\n lang: string;\n supportedLang: { [id in keyof typeof supportedLang]: string };\n changeLanguage: (l: string) => void;\n i18n: InternationalizationAPI;\n}\n\nconst supportedLang = {\n es: \"Espanol [es]\",\n en: \"English [en]\",\n fr: \"Francais [fr]\",\n de: \"Deutsch [de]\",\n sv: \"Svenska [sv]\",\n it: \"Italiane [it]\",\n navigator: \"Defined by navigator\",\n};\n\nconst initial = {\n lang: \"en\",\n supportedLang,\n changeLanguage: () => {\n // do not change anything\n },\n i18n,\n};\nconst Context = createContext<Type>(initial);\n\ninterface Props {\n initial?: string;\n children: ComponentChildren;\n forceLang?: string;\n source: Record<string, any>;\n}\n\n// Outmost UI wrapper.\nexport const TranslationProvider = ({\n initial,\n children,\n forceLang,\n source,\n}: Props): VNode => {\n const { value: lang, update: changeLanguage } = useLang(initial);\n useEffect(() => {\n if (forceLang) {\n changeLanguage(forceLang);\n }\n });\n useEffect(() => {\n setupI18n(lang, source);\n }, [lang]);\n if (forceLang) {\n setupI18n(forceLang, source);\n } else {\n setupI18n(lang, source);\n }\n\n return h(Context.Provider, {\n value: { lang, changeLanguage, supportedLang, i18n },\n children,\n });\n};\n\nexport const useTranslationContext = (): Type => useContext(Context);\n", "import { createElement, VNode } from \"preact\";\n\nexport type StateFunc<S> = (p: S) => VNode;\n\nexport type StateViewMap<StateType extends { status: string }> = {\n [S in StateType as S[\"status\"]]: StateFunc<S>;\n};\n\nexport type RecursiveState<S extends object> = S | (() => RecursiveState<S>);\n\nexport function compose<SType extends { status: string }, PType>(\n hook: (p: PType) => RecursiveState<SType>,\n viewMap: StateViewMap<SType>,\n): (p: PType) => VNode {\n function withHook(stateHook: () => RecursiveState<SType>): () => VNode {\n function ComposedComponent(): VNode {\n const state = stateHook();\n\n if (typeof state === \"function\") {\n const subComponent = withHook(state);\n return createElement(subComponent, {});\n }\n\n const statusName = state.status as unknown as SType[\"status\"];\n const viewComponent = viewMap[statusName] as unknown as StateFunc<SType>;\n return createElement(viewComponent, state);\n }\n\n return ComposedComponent;\n }\n\n return (p: PType) => {\n const h = withHook(() => hook(p));\n return h();\n };\n}\n\n/**\n *\n * @param obj VNode\n * @returns\n */\nexport function saveVNodeForInspection<T>(obj: T): T {\n // @ts-ignore\n window[\"showVNodeInfo\"] = function showVNodeInfo() {\n inspect(obj);\n };\n return obj;\n}\nfunction inspect(obj: any) {\n if (!obj) return;\n if (obj.__c && obj.__c.__H) {\n const componentName = obj.__c.constructor.name;\n const hookState = obj.__c.__H;\n const stateList = hookState.__ as Array<any>;\n console.log(\"==============\", componentName);\n stateList.forEach((hook) => {\n const { __: value, c: context, __h: factory, __H: args } = hook;\n if (typeof context !== \"undefined\") {\n const { __c: contextId } = context;\n console.log(\"context:\", contextId, hook);\n } else if (typeof factory === \"function\") {\n console.log(\"memo:\", value, \"deps:\", args);\n } else if (typeof value === \"function\") {\n const effectName = value.name;\n console.log(\"effect:\", effectName, \"deps:\", args);\n } else if (typeof value.current !== \"undefined\") {\n const ref = value.current;\n console.log(\"ref:\", ref instanceof Element ? ref.outerHTML : ref);\n } else if (value instanceof Array) {\n console.log(\"state:\", value[0]);\n } else {\n console.log(hook);\n }\n });\n }\n const children = obj.__k;\n if (children instanceof Array) {\n children.forEach((e) => inspect(e));\n } else {\n inspect(children);\n }\n}\n", "import { TranslatedString, assertUnreachable } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\n\ninterface Props {\n type?: \"info\" | \"success\" | \"warning\" | \"danger\",\n onClose?: () => void,\n title: TranslatedString,\n children?: ComponentChildren,\n}\nexport function Attention({ type = \"info\", title, children, onClose }: Props): VNode {\n return <div class={`group attention-${type} mt-2 shadow-lg`}>\n <div class=\"rounded-md group-[.attention-info]:bg-blue-50 group-[.attention-warning]:bg-yellow-50 group-[.attention-danger]:bg-red-50 group-[.attention-success]:bg-green-50 p-4 shadow\">\n <div class=\"flex\">\n <div >\n <svg xmlns=\"http://www.w3.org/2000/svg\" stroke=\"none\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-8 h-8 group-[.attention-info]:text-blue-400 group-[.attention-warning]:text-yellow-400 group-[.attention-danger]:text-red-400 group-[.attention-success]:text-green-400\">\n {(() => {\n switch (type) {\n case \"info\":\n return <path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\" />\n case \"warning\":\n return <path fill-rule=\"evenodd\" d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\" />\n case \"danger\":\n return <path fill-rule=\"evenodd\" d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\" />\n case \"success\":\n return <path fill-rule=\"evenodd\" d=\"M7.493 18.75c-.425 0-.82-.236-.975-.632A7.48 7.48 0 016 15.375c0-1.75.599-3.358 1.602-4.634.151-.192.373-.309.6-.397.473-.183.89-.514 1.212-.924a9.042 9.042 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75 2.25 2.25 0 012.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H14.23c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23h-.777zM2.331 10.977a11.969 11.969 0 00-.831 4.398 12 12 0 00.52 3.507c.26.85 1.084 1.368 1.973 1.368H4.9c.445 0 .72-.498.523-.898a8.963 8.963 0 01-.924-3.977c0-1.708.476-3.305 1.302-4.666.245-.403-.028-.959-.5-.959H4.25c-.832 0-1.612.453-1.918 1.227z\" />\n default:\n assertUnreachable(type)\n }\n })()}\n </svg>\n </div>\n <div class=\"ml-3 w-full\">\n <h3 class=\"text-sm group-hover:text-white font-bold group-[.attention-info]:text-blue-800 group-[.attention-success]:text-green-800 group-[.attention-warning]:text-yellow-800 group-[.attention-danger]:text-red-800\">\n {title}\n </h3>\n <div class=\"mt-2 text-sm group-[.attention-info]:text-blue-700 group-[.attention-warning]:text-yellow-700 group-[.attention-danger]:text-red-700 group-[.attention-success]:text-green-700\">\n {children}\n </div>\n </div>\n {onClose &&\n <div>\n <button type=\"button\" class=\"font-semibold items-center rounded bg-transparent px-2 py-1 text-xs text-gray-900 hover:bg-gray-50\"\n onClick={(e) => {\n e.preventDefault();\n onClose();\n }}\n >\n <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\n </svg>\n </button>\n </div>\n }\n </div>\n </div>\n\n </div>\n}\n", "import { h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\n\nexport function CopyIcon(): VNode {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75\" />\n </svg>\n )\n};\n\nexport function CopiedIcon(): VNode {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\" />\n </svg>\n )\n};\n\nexport function CopyButton({ class: clazz, getContent }: { class: string, getContent: () => string }): VNode {\n const [copied, setCopied] = useState(false);\n function copyText(): void {\n if (!navigator.clipboard && !window.isSecureContext) {\n alert('clipboard is not available on insecure context (http)')\n }\n if (navigator.clipboard) {\n navigator.clipboard.writeText(getContent() || \"\");\n setCopied(true);\n }\n }\n useEffect(() => {\n if (copied) {\n setTimeout(() => {\n setCopied(false);\n }, 1000);\n }\n }, [copied]);\n\n if (!copied) {\n return (\n <button class={clazz} onClick={copyText} >\n <CopyIcon />\n </button>\n );\n }\n return (\n <button class={clazz} disabled>\n <CopiedIcon />\n </button>\n );\n}\n", "/*\n/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { TalerError, TalerErrorCode, assertUnreachable } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { Attention } from \"./Attention.js\";\nimport { useTranslationContext } from \"../index.browser.js\";\n\nexport function ErrorLoading({ error, showDetail }: { error: TalerError, showDetail?: boolean }): VNode {\n const { i18n } = useTranslationContext()\n switch (error.errorDetail.code) {\n //////////////////\n // Every error that can be produce in a Http Request\n //////////////////\n case TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_HTTP_REQUEST_GENERIC_TIMEOUT)) {\n const { requestMethod, requestUrl, timeoutMs } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`The request reached a timeout, check your connection.`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, timeoutMs }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_HTTP_REQUEST_THROTTLED)) {\n const { requestMethod, requestUrl, throttleStats } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`A lot of request were made to the same server and this action was throttled`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, throttleStats }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE)) {\n const { requestMethod, requestUrl, httpStatusCode, validationError } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`The response of the request is malformed.`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, httpStatusCode, validationError }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_NETWORK_ERROR: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_NETWORK_ERROR)) {\n const { requestMethod, requestUrl } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`Could not complete the request due to a network problem.`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n case TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR: {\n if (error.hasErrorCode(TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR)) {\n const { requestMethod, requestUrl, httpStatusCode, errorResponse } = error.errorDetail\n return <Attention type=\"danger\" title={i18n.str`Unexpected request error`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify({ requestMethod, requestUrl, httpStatusCode, errorResponse }, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n assertUnreachable(1 as never)\n }\n //////////////////\n // Every other error \n //////////////////\n // case TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR: {\n // return <Attention type=\"danger\" title={i18n.str``}>\n // </Attention>\n // }\n //////////////////\n // Default message for unhandled case\n //////////////////\n default: return <Attention type=\"danger\" title={i18n.str`Unexpected error`}>\n {error.message}\n {showDetail &&\n <pre class=\"whitespace-break-spaces \">\n {JSON.stringify(error.errorDetail, undefined, 2)}\n </pre>\n }\n </Attention>\n }\n}\n\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Fragment, h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\n// import { strings as messages } from \"../i18n/strings.js\";\nimport langIcon from \"../assets/lang.svg\";\nimport { useTranslationContext } from \"../index.browser.js\";\n\ntype LangsNames = {\n [P: string]: string;\n};\n\nconst names: LangsNames = {\n es: \"Espa\u00F1ol [es]\",\n en: \"English [en]\",\n fr: \"Fran\u00E7ais [fr]\",\n de: \"Deutsch [de]\",\n sv: \"Svenska [sv]\",\n it: \"Italiano [it]\",\n};\n\nfunction getLangName(s: keyof LangsNames | string): string {\n if (names[s]) return names[s];\n return String(s);\n}\n\nexport function LangSelector({ supportedLangs }: { supportedLangs: string[] }): VNode {\n const [updatingLang, setUpdatingLang] = useState(false);\n const { lang, changeLanguage } = useTranslationContext();\n const [hidden, setHidden] = useState(true);\n\n useEffect(() => {\n function bodyKeyPress(event: KeyboardEvent) {\n if (event.code === \"Escape\") setHidden(true);\n }\n function bodyOnClick(event: Event) {\n setHidden(true);\n }\n document.body.addEventListener(\"click\", bodyOnClick);\n document.body.addEventListener(\"keydown\", bodyKeyPress as any);\n return () => {\n document.body.removeEventListener(\"keydown\", bodyKeyPress as any);\n document.body.removeEventListener(\"click\", bodyOnClick);\n };\n }, []);\n return (\n <div>\n <div class=\"relative mt-2\">\n <button type=\"button\" class=\"relative w-full cursor-default rounded-md bg-white py-1.5 pl-3 pr-10 text-left text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-600 sm:text-sm sm:leading-6\" aria-haspopup=\"listbox\" aria-expanded=\"true\" aria-labelledby=\"listbox-label\"\n onClick={() => {\n setHidden((h) => !h);\n }}>\n <span class=\"flex items-center\">\n <img alt=\"language\" class=\"h-5 w-5 flex-shrink-0 rounded-full\" src={langIcon} />\n <span class=\"ml-3 block truncate\">{getLangName(lang)}</span>\n </span>\n <span class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2\">\n <svg class=\"h-5 w-5 text-gray-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n </button>\n\n {!hidden &&\n <ul class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\" tabIndex={-1} role=\"listbox\" aria-labelledby=\"listbox-label\" aria-activedescendant=\"listbox-option-3\">\n {supportedLangs\n .filter((l) => l !== lang)\n .map((lang) => (\n <li class=\"text-gray-900 hover:bg-indigo-600 hover:text-white cursor-pointer relative select-none py-2 pl-3 pr-9\" role=\"option\"\n onClick={() => {\n changeLanguage(lang);\n setUpdatingLang(false);\n setHidden(true)\n }}\n >\n <span class=\"font-normal block truncate\">{getLangName(lang)}</span>\n\n <span class=\"text-indigo-600 absolute inset-y-0 right-0 flex items-center pr-4\">\n {/* <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\" clip-rule=\"evenodd\" />\n </svg> */}\n </span>\n </li>\n ))}\n\n </ul>\n }\n\n </div>\n </div>\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { h, VNode } from \"preact\";\n\nexport function Loading(): VNode {\n return (\n <div\n class=\"columns is-centered is-vcentered\"\n style={{\n width: \"100%\",\n height: \"200px\",\n display: \"flex\",\n margin: \"auto\",\n justifyContent: \"center\",\n }}\n >\n <Spinner />\n </div>\n );\n}\n\nfunction Spinner(): VNode {\n return (\n <div class=\"lds-ring\" style={{ margin: \"auto\" }}>\n <div />\n <div />\n <div />\n <div />\n </div>\n );\n}\n", "import { useState } from \"preact/hooks\";\nimport { LangSelector, useTranslationContext } from \"../index.browser.js\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\nimport logo from \"../assets/logo-2021.svg\";\n\nexport function Header({ title, iconLinkURL, sites, supportedLangs, onLogout, children }:\n { title: string, iconLinkURL: string, children?: ComponentChildren, onLogout: (() => void) | undefined, sites: Array<Array<string>>, supportedLangs: string[] }): VNode {\n const { i18n } = useTranslationContext();\n const [open, setOpen] = useState(false)\n return <Fragment>\n <header class=\"bg-indigo-600 w-full mx-auto px-2 border-b border-opacity-25 border-indigo-400\">\n <div class=\"flex flex-row h-16 items-center \">\n <div class=\"flex px-2 justify-start\">\n <div class=\"flex-shrink-0 bg-white rounded-lg\">\n <a href={iconLinkURL ?? \"#\"}>\n <img\n class=\"h-8 w-auto\"\n src={logo}\n alt=\"GNU Taler\"\n style={{ height: \"1.5rem\", margin: \".5rem\" }}\n />\n </a>\n </div>\n <span class=\"flex items-center text-white text-lg font-bold ml-4\">\n {title}\n </span>\n </div>\n <div class=\"flex-1 ml-6 \">\n <div class=\"flex flex-1 space-x-4\">\n {sites.map((site) => {\n if (site.length !== 2) return;\n const [name, url] = site\n return <a href={url} class=\"hidden sm:block text-white hover:bg-indigo-500 hover:bg-opacity-75 rounded-md py-2 px-3 text-sm font-medium\">{name}</a>\n })}\n </div>\n </div>\n <div class=\"flex justify-end\">\n <button type=\"button\" class=\"relative inline-flex items-center justify-center rounded-md bg-indigo-600 p-1 text-indigo-200 hover:bg-indigo-500 hover:bg-opacity-75 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-indigo-600\" aria-controls=\"mobile-menu\" aria-expanded=\"false\"\n onClick={(e) => {\n setOpen(!open)\n }}>\n <span class=\"absolute -inset-0.5\"></span>\n <span class=\"sr-only\"><i18n.Translate>Open settings</i18n.Translate></span>\n <svg class=\"block h-10 w-10\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\" />\n </svg>\n </button>\n </div>\n </div>\n </header>\n\n {open &&\n <div class=\"relative z-10\" aria-labelledby=\"slide-over-title\" role=\"dialog\" aria-modal=\"true\"\n onClick={() => {\n setOpen(false)\n }}>\n <div class=\"fixed inset-0\"></div>\n\n <div class=\"fixed inset-0 overflow-hidden\">\n <div class=\"absolute inset-0 overflow-hidden\">\n <div class=\"pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10\">\n <div class=\"pointer-events-auto w-screen max-w-md\" >\n <div class=\"flex h-full flex-col overflow-y-scroll bg-white py-6 shadow-xl\" onClick={(e) => {\n //do not trigger close if clicking inside the sidebar\n e.stopPropagation();\n }}>\n <div class=\"px-4 sm:px-6\" >\n <div class=\"flex items-start justify-between\" >\n <h2 class=\"text-base font-semibold leading-6 text-gray-900\" id=\"slide-over-title\">\n <i18n.Translate>Menu</i18n.Translate>\n </h2>\n <div class=\"ml-3 flex h-7 items-center\">\n <button type=\"button\" class=\"relative rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n onClick={(e) => {\n setOpen(false)\n }}\n\n >\n <span class=\"absolute -inset-2.5\"></span>\n <span class=\"sr-only\">\n <i18n.Translate>Close panel</i18n.Translate>\n </span>\n <svg class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div class=\"relative mt-6 flex-1 px-4 sm:px-6\">\n <nav class=\"flex flex-1 flex-col\" aria-label=\"Sidebar\">\n <ul role=\"list\" class=\"flex flex-1 flex-col gap-y-7\">\n {onLogout ?\n <li>\n <a href=\"#\"\n class=\"text-gray-700 hover:text-indigo-600 hover:bg-gray-100 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\"\n onClick={() => {\n onLogout();\n setOpen(false)\n }}\n >\n <svg class=\"h-6 w-6 shrink-0 text-indigo-600\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\" />\n </svg>\n <i18n.Translate>Log out</i18n.Translate>\n </a>\n </li>\n : undefined}\n <li>\n <LangSelector supportedLangs={supportedLangs} />\n </li>\n {/* CHILDREN */}\n {children}\n {/* /CHILDREN */}\n <li class=\"block sm:hidden\">\n <div class=\"text-xs font-semibold leading-6 text-gray-400\">\n <i18n.Translate>Sites</i18n.Translate>\n </div>\n <ul role=\"list\" class=\"space-y-1\">\n {sites.map(([name, url]) => {\n return <li>\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-gray-700 hover:text-indigo-600 hover:bg-gray-100 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\">\n <span class=\"flex h-6 w-6 shrink-0 items-center justify-center rounded-lg border text-[0.625rem] font-medium bg-white text-gray-400 border-gray-200 group-hover:border-indigo-600 group-hover:text-indigo-600\">&gt;</span>\n <span class=\"truncate\">{name}</span>\n </a>\n </li>\n })}\n </ul>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </Fragment>\n}\n", "import { useTranslationContext } from \"../index.browser.js\";\nimport { h } from \"preact\";\n\nexport function Footer({ testingUrlKey, VERSION, GIT_HASH }: { VERSION?: string, GIT_HASH?: string, testingUrlKey?: string }) {\n const { i18n } = useTranslationContext()\n\n const testingUrl = (testingUrlKey && typeof localStorage !== \"undefined\") && localStorage.getItem(testingUrlKey) ?\n localStorage.getItem(testingUrlKey) ?? undefined :\n undefined\n const versionText = VERSION\n ? GIT_HASH\n ? <a href={`https://git.taler.net/wallet-core.git/tree/?id=${GIT_HASH}`} target=\"_blank\" rel=\"noreferrer noopener\">\n Version {VERSION} ({GIT_HASH.substring(0, 8)})\n </a>\n : VERSION\n : \"\";\n return (\n <footer class=\"bottom-4 my-4 mx-8 bg-slate-200\">\n <div>\n <p class=\"text-xs leading-5 text-gray-400\">\n <i18n.Translate>\n Learn more about <a target=\"_blank\" rel=\"noreferrer noopener\" class=\"font-semibold text-gray-500 hover:text-gray-400\" href=\"https://taler.net\">GNU Taler</a>\n </i18n.Translate>\n </p>\n </div>\n <div style=\"flex-grow:1\" />\n <p class=\"text-xs leading-5 text-gray-400\">\n Copyright &copy; 2014&mdash;2023 Taler Systems SA. {versionText}{\" \"}\n </p>\n {testingUrlKey && testingUrl &&\n\n <p class=\"text-xs leading-5 text-gray-300\">\n Testing with {testingUrl}{\" \"}\n <a\n href=\"\"\n onClick={(e) => {\n e.preventDefault();\n localStorage.removeItem(testingUrlKey);\n window.location.reload();\n }}\n >\n stop testing\n </a>\n </p>\n }\n </footer>\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { Fragment, h, VNode } from \"preact\";\n\nexport function ShowInputErrorLabel({\n isDirty,\n message,\n}: {\n message: string | undefined;\n isDirty: boolean;\n}): VNode {\n if (message && isDirty)\n return <div class=\"text-base\" style={{ color: \"red\" }}>{message}</div>;\n return <div class=\"text-base\" style={{ }}> </div>;\n}\n", "import { h, Fragment, VNode } from \"preact\";\nimport { Attention } from \"./Attention.js\";\nimport { Notification } from \"../index.browser.js\";\n// import { useSettings } from \"../hooks/settings.js\";\n\nexport function LocalNotificationBanner({ notification }: { notification?: Notification }): VNode {\n if (!notification) return <Fragment />\n switch (notification.message.type) {\n case \"error\":\n return <div class=\"relative\">\n <div class=\"fixed top-0 left-0 right-0 z-20 w-full p-4\">\n <Attention type=\"danger\" title={notification.message.title} onClose={() => {\n notification.remove()\n }}>\n {notification.message.description &&\n <div class=\"mt-2 text-sm text-red-700\">\n {notification.message.description}\n </div>\n }\n {/* <MaybeShowDebugInfo info={notification.message.debug} /> */}\n </Attention>\n </div>\n </div>\n case \"info\":\n return <div class=\"relative\">\n <div class=\"fixed top-0 left-0 right-0 z-20 w-full p-4\">\n <Attention type=\"success\" title={notification.message.title} onClose={() => {\n notification.remove();\n }} /></div></div>\n }\n}\n\n\n// function MaybeShowDebugInfo({ info }: { info: any }): VNode {\n// const [settings] = useSettings()\n// if (settings.showDebugInfo) {\n// return <pre class=\"whitespace-break-spaces \">\n// {info}\n// </pre>\n// }\n// return <Fragment />\n// }\n\n", "import { Fragment, VNode, h } from \"preact\"\nimport { Attention, useNotifications } from \"../index.browser.js\"\n\nexport function GlobalNotificationsBanner(): VNode {\n const notifs = useNotifications()\n if (notifs.length === 0) return <Fragment />\n return <div class=\"fixed z-20 w-full p-4\"> {\n notifs.map(n => {\n switch (n.message.type) {\n case \"error\":\n return <Attention type=\"danger\" title={n.message.title} onClose={() => {\n n.remove()\n }}>\n {n.message.description &&\n <div class=\"mt-2 text-sm text-red-700\">\n {n.message.description}\n </div>\n }\n {/* <MaybeShowDebugInfo info={n.message.debug} /> */}\n </Attention>\n case \"info\":\n return <Attention type=\"success\" title={n.message.title} onClose={() => {\n n.remove();\n }} />\n }\n })}\n </div>\n}\n", "import { AbsoluteTime } from \"@gnu-taler/taler-util\"\nimport { add as dateAdd, sub as dateSub, eachDayOfInterval, endOfMonth, endOfWeek, format, getMonth, getYear, isSameDay, isSameMonth, startOfDay, startOfMonth, startOfWeek } from \"date-fns\"\nimport { VNode, h } from \"preact\"\nimport { useState } from \"preact/hooks\"\nimport { useTranslationContext } from \"../index.browser.js\"\n\nexport function Calendar({ value, onChange }: { value: AbsoluteTime | undefined, onChange: (v: AbsoluteTime) => void }): VNode {\n const today = startOfDay(new Date())\n const selected = !value ? today : new Date(AbsoluteTime.toStampMs(value))\n const [showingDate, setShowingDate] = useState(selected)\n const month = getMonth(showingDate)\n const year = getYear(showingDate)\n\n const start = startOfWeek(startOfMonth(showingDate));\n const end = endOfWeek(endOfMonth(showingDate));\n const daysInMonth = eachDayOfInterval({ start, end });\n const { i18n } = useTranslationContext()\n const monthNames = [\n i18n.str`January`,\n i18n.str`February`,\n i18n.str`March`,\n i18n.str`April`,\n i18n.str`May`,\n i18n.str`June`,\n i18n.str`July`,\n i18n.str`August`,\n i18n.str`September`,\n i18n.str`October`,\n i18n.str`November`,\n i18n.str`December`,\n ]\n return <div class=\"text-center p-2\">\n <div class=\"flex items-center text-gray-900\">\n <button type=\"button\" class=\"flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 round-sm\"\n onClick={() => {\n setShowingDate(dateSub(showingDate, { years: 1 }))\n }}>\n <span class=\"sr-only\">\n {i18n.str`Previous year`}\n </span>\n <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <div class=\"flex-auto text-sm font-semibold\">{year}</div>\n <button type=\"button\" class=\"flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 round-sm\"\n onClick={() => {\n setShowingDate(dateAdd(showingDate, { years: 1 }))\n }}>\n <span class=\"sr-only\">\n {i18n.str`Next year`}\n </span>\n <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <div class=\"mt-4 flex items-center text-gray-900\">\n <button type=\"button\" class=\"flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 round-sm\"\n onClick={() => {\n setShowingDate(dateSub(showingDate, { months: 1 }))\n }}>\n <span class=\"sr-only\">\n {i18n.str`Previous month`}\n </span>\n <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <div class=\"flex-auto text-sm font-semibold\">{monthNames[month]}</div>\n <button type=\"button\" class=\"flex px-4 flex-none items-center justify-center p-1.5 text-gray-400 hover:text-gray-500 ring-2 rounded-sm \"\n onClick={() => {\n setShowingDate(dateAdd(showingDate, { months: 1 }))\n }}>\n <span class=\"sr-only\">\n {i18n.str`Next month`}\n </span>\n <svg class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <div class=\"mt-6 grid grid-cols-7 text-xs leading-6 text-gray-500\">\n <div>M</div>\n <div>T</div>\n <div>W</div>\n <div>T</div>\n <div>F</div>\n <div>S</div>\n <div>S</div>\n </div>\n <div class=\"isolate mt-2\">\n <div class=\"grid grid-cols-7 gap-px rounded-lg bg-gray-200 text-sm shadow ring-1 ring-gray-200\">\n {daysInMonth.map(current => (\n <button type=\"button\"\n data-month={isSameMonth(current, showingDate)}\n data-today={isSameDay(current, today)}\n data-selected={isSameDay(current, selected)}\n onClick={() => {\n onChange(AbsoluteTime.fromStampMs(current.getTime()))\n }}\n class=\"text-gray-400 hover:bg-gray-700 focus:z-10 py-1.5 \n data-[month=false]:bg-gray-100 data-[month=true]:bg-white \n data-[today=true]:font-semibold \n data-[month=true]:text-gray-900\n data-[today=true]:bg-red-300 data-[today=true]:hover:bg-red-200\n data-[month=true]:hover:bg-gray-200\n data-[selected=true]:!bg-blue-400 data-[selected=true]:hover:!bg-blue-300 \">\n <time dateTime={format(current, \"yyyy-MM-dd\")}\n class=\"mx-auto flex h-7 w-7 py-4 px-5 sm:px-8 items-center justify-center rounded-full\">\n {format(current, \"dd\")}\n </time>\n </button>\n ))}\n </div>\n {daysInMonth.length < 40 ? <div class=\"w-7 h-7 m-1.5\" /> : undefined}\n </div>\n </div>\n}\n", "export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}", "export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport addDays from \"../addDays/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || _typeof(duration) !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Add years and months\n\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date; // Add weeks and days\n\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; // Add days, hours, minutes and seconds\n\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}", "var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}", "import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}", "/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}", "/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;", "import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}", "import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\n\nexport default function eachDayOfInterval(dirtyInterval, options) {\n var _options$step;\n\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return dates;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}", "import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}", "import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}", "import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;", "import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;", "var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;", "var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}", "var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;", "export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}", "import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;", "var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;", "export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}", "import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;", "export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}", "export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}", "import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;", "import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;", "import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;", "import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}", "export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n\n return target;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n\n _defineProperty(this, \"subPriority\", 0);\n }\n\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n\n var _super = _createSuper(ValueSetter);\n\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n\n _classCallCheck(this, ValueSetter);\n\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n\n return _this;\n }\n\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n\n function DateToSystemTimezoneSetter() {\n var _this2;\n\n _classCallCheck(this, DateToSystemTimezoneSetter);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n\n return _this2;\n }\n\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n\n return DateToSystemTimezoneSetter;\n}(Setter);", "function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n }\n\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n\n return Parser;\n}();", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n\n var _super = _createSuper(EraParser);\n\n function EraParser() {\n var _this;\n\n _classCallCheck(this, EraParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n\n return _this;\n }\n\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return EraParser;\n}(Parser);", "export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};", "import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n\n var _super = _createSuper(YearParser);\n\n function YearParser() {\n var _this;\n\n _classCallCheck(this, YearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return YearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n\n var _super = _createSuper(LocalWeekYearParser);\n\n function LocalWeekYearParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n\n return LocalWeekYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\n\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n\n var _super = _createSuper(ISOWeekYearParser);\n\n function ISOWeekYearParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n\n return ISOWeekYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n\n var _super = _createSuper(ExtendedYearParser);\n\n function ExtendedYearParser() {\n var _this;\n\n _classCallCheck(this, ExtendedYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ExtendedYearParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n\n var _super = _createSuper(QuarterParser);\n\n function QuarterParser() {\n var _this;\n\n _classCallCheck(this, QuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return QuarterParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n\n var _super = _createSuper(StandAloneQuarterParser);\n\n function StandAloneQuarterParser() {\n var _this;\n\n _classCallCheck(this, StandAloneQuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneQuarterParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n\n var _super = _createSuper(MonthParser);\n\n function MonthParser() {\n var _this;\n\n _classCallCheck(this, MonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n return _this;\n }\n\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return MonthParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n\n var _super = _createSuper(StandAloneMonthParser);\n\n function StandAloneMonthParser() {\n var _this;\n\n _classCallCheck(this, StandAloneMonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneMonthParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\n\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n\n var _super = _createSuper(LocalWeekParser);\n\n function LocalWeekParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n\n return LocalWeekParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\n\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n\n var _super = _createSuper(ISOWeekParser);\n\n function ISOWeekParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n\n return ISOWeekParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // Day of the month\n\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n\n var _super = _createSuper(DateParser);\n\n function DateParser() {\n var _this;\n\n _classCallCheck(this, DateParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DateParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n\n var _super = _createSuper(DayOfYearParser);\n\n function DayOfYearParser() {\n var _this;\n\n _classCallCheck(this, DayOfYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayOfYearParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\n\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n\n var _super = _createSuper(DayParser);\n\n function DayParser() {\n var _this;\n\n _classCallCheck(this, DayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\n\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n\n var _super = _createSuper(LocalDayParser);\n\n function LocalDayParser() {\n var _this;\n\n _classCallCheck(this, LocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return LocalDayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\n\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n\n var _super = _createSuper(StandAloneLocalDayParser);\n\n function StandAloneLocalDayParser() {\n var _this;\n\n _classCallCheck(this, StandAloneLocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneLocalDayParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\n\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n\n var _super = _createSuper(ISODayParser);\n\n function ISODayParser() {\n var _this;\n\n _classCallCheck(this, ISODayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ISODayParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n\n var _super = _createSuper(AMPMParser);\n\n function AMPMParser() {\n var _this;\n\n _classCallCheck(this, AMPMParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n\n var _super = _createSuper(AMPMMidnightParser);\n\n function AMPMMidnightParser() {\n var _this;\n\n _classCallCheck(this, AMPMMidnightParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMMidnightParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\n\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n\n var _super = _createSuper(DayPeriodParser);\n\n function DayPeriodParser() {\n var _this;\n\n _classCallCheck(this, DayPeriodParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return DayPeriodParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n\n var _super = _createSuper(Hour1to12Parser);\n\n function Hour1to12Parser() {\n var _this;\n\n _classCallCheck(this, Hour1to12Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour1to12Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n\n var _super = _createSuper(Hour0to23Parser);\n\n function Hour0to23Parser() {\n var _this;\n\n _classCallCheck(this, Hour0to23Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour0to23Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n\n var _super = _createSuper(Hour0To11Parser);\n\n function Hour0To11Parser() {\n var _this;\n\n _classCallCheck(this, Hour0To11Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour0To11Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n\n var _super = _createSuper(Hour1To24Parser);\n\n function Hour1To24Parser() {\n var _this;\n\n _classCallCheck(this, Hour1To24Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour1To24Parser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n\n var _super = _createSuper(MinuteParser);\n\n function MinuteParser() {\n var _this;\n\n _classCallCheck(this, MinuteParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n\n return MinuteParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n\n var _super = _createSuper(SecondParser);\n\n function SecondParser() {\n var _this;\n\n _classCallCheck(this, SecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n\n return SecondParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n\n var _super = _createSuper(FractionOfSecondParser);\n\n function FractionOfSecondParser() {\n var _this;\n\n _classCallCheck(this, FractionOfSecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n\n return FractionOfSecondParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\n\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneWithZParser);\n\n function ISOTimezoneWithZParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneWithZParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneWithZParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\n\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneParser);\n\n function ISOTimezoneParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n\n var _super = _createSuper(TimestampSecondsParser);\n\n function TimestampSecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampSecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampSecondsParser;\n}(Parser);", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n\n var _super = _createSuper(TimestampMillisecondsParser);\n\n function TimestampMillisecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampMillisecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampMillisecondsParser;\n}(Parser);", "import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n\n try {\n var _loop = function _loop() {\n var token = _step.value;\n\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n\n if (_typeof(_ret) === \"object\") return _ret.v;\n } // Check if the remaining input contains something other than whitespace\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, subFnOptions); // Result is tuple (date, flags)\n\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return utcDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}", "import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport subDays from \"../subDays/index.js\";\nimport subMonths from \"../subMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\n\nexport default function sub(date, duration) {\n requiredArgs(2, arguments);\n if (!duration || _typeof(duration) !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Subtract years and months\n\n var dateWithoutMonths = subMonths(date, months + years * 12); // Subtract weeks and days\n\n var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7); // Subtract hours, minutes and seconds\n\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport {\n LabelWithTooltipMaybeRequired\n} from \"./InputLine.js\";\n\ninterface Props {\n label: TranslatedString;\n tooltip?: TranslatedString;\n help?: TranslatedString;\n before?: VNode;\n after?: VNode;\n}\n\nexport function Caption({ before, after, label, tooltip, help }: Props): VNode {\n return (\n <div class=\"sm:col-span-6 flex\">\n {before !== undefined && (\n <span class=\"pointer-events-none flex items-center pr-2\">{before}</span>\n )}\n <LabelWithTooltipMaybeRequired label={label} tooltip={tooltip} />\n {after !== undefined && (\n <span class=\"pointer-events-none flex items-center pl-2\">{after}</span>\n )}\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { useField } from \"./useField.js\";\n\n//@ts-ignore\nconst TooltipIcon = (\n <svg\n class=\"w-5 h-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n);\n\nexport function LabelWithTooltipMaybeRequired({\n label,\n required,\n tooltip,\n}: {\n label: TranslatedString;\n required?: boolean;\n tooltip?: TranslatedString;\n}): VNode {\n const Label = (\n <Fragment>\n <div class=\"flex justify-between\">\n <label\n htmlFor=\"email\"\n class=\"block text-sm font-medium leading-6 text-gray-900\"\n >\n {label}\n </label>\n </div>\n </Fragment>\n );\n const WithTooltip = tooltip ? (\n <div class=\"relative flex flex-grow items-stretch focus-within:z-10\">\n {Label}\n <span class=\"relative flex items-center group pl-2\">\n {TooltipIcon}\n <div class=\"absolute bottom-0 -ml-10 hidden flex-col items-center mb-6 group-hover:flex w-28\">\n <div class=\"relative z-10 p-2 text-xs leading-none text-white whitespace-no-wrap bg-black shadow-lg\">\n {tooltip}\n </div>\n <div class=\"w-3 h-3 -mt-2 rotate-45 bg-black\"></div>\n </div>\n </span>\n </div>\n ) : (\n Label\n );\n if (required) {\n return (\n <div class=\"flex justify-between\">\n {WithTooltip}\n <span class=\"text-sm leading-6 text-red-600\">*</span>\n </div>\n );\n }\n return WithTooltip;\n}\n\nfunction InputWrapper<T extends object, K extends keyof T>({\n children,\n label,\n tooltip,\n before,\n after,\n help,\n error,\n disabled,\n required,\n}: { error?: string; disabled: boolean, children: ComponentChildren } & UIFormProps<T, K>): VNode {\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <div class=\"relative mt-2 flex rounded-md shadow-sm\">\n {before &&\n (before.type === \"text\" ? (\n <span class=\"inline-flex items-center rounded-l-md border border-r-0 border-gray-300 px-3 text-gray-500 sm:text-sm\">\n {before.text}\n </span>\n ) : before.type === \"icon\" ? (\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n {before.icon}\n </div>\n ) : before.type === \"button\" ? (\n <button\n type=\"button\"\n disabled={disabled}\n onClick={before.onClick}\n class=\"relative -ml-px inline-flex items-center gap-x-1.5 rounded-l-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50\"\n >\n {before.children}\n </button>\n ) : undefined)}\n\n {children}\n\n {after &&\n (after.type === \"text\" ? (\n <span class=\"inline-flex items-center rounded-r-md border border-l-0 border-gray-300 px-3 text-gray-500 sm:text-sm\">\n {after.text}\n </span>\n ) : after.type === \"icon\" ? (\n <div class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\">\n {after.icon}\n </div>\n ) : after.type === \"button\" ? (\n <button\n type=\"button\"\n disabled={disabled}\n onClick={after.onClick}\n class=\"relative -ml-px inline-flex items-center gap-x-1.5 rounded-r-md px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50\"\n >\n {after.children}\n </button>\n ) : undefined)}\n </div>\n {error && (\n <p class=\"mt-2 text-sm text-red-600\" id=\"email-error\">\n {error}\n </p>\n )}\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n\nfunction defaultToString(v: unknown) {\n return v === undefined ? \"\" : typeof v !== \"object\" ? String(v) : \"\";\n}\nfunction defaultFromString(v: string) {\n return v;\n}\n\ntype InputType = \"text\" | \"text-area\" | \"password\" | \"email\" | \"number\";\n\nexport function InputLine<T extends object, K extends keyof T>(\n props: { type: InputType } & UIFormProps<T, K>,\n): VNode {\n const { name, placeholder, before, after, converter, type } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n\n const [text, setText] = useState(\"\")\n const fromString: (s: string) => any =\n converter?.fromStringUI ?? defaultFromString;\n const toString: (s: any) => string = converter?.toStringUI ?? defaultToString;\n\n useEffect(() => {\n const newValue = toString(value)\n if (newValue) {\n setText(newValue)\n }\n }, [value])\n\n if (state.hidden) return <div />;\n\n let clazz =\n \"block w-full rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset focus:ring-2 focus:ring-inset sm:text-sm sm:leading-6 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200\";\n if (before) {\n switch (before.type) {\n case \"icon\": {\n clazz += \" pl-10\";\n break;\n }\n case \"button\": {\n clazz += \" rounded-none rounded-r-md \";\n break;\n }\n case \"text\": {\n clazz += \" min-w-0 flex-1 rounded-r-md rounded-none \";\n break;\n }\n }\n }\n if (after) {\n switch (after.type) {\n case \"icon\": {\n clazz += \" pr-10\";\n break;\n }\n case \"button\": {\n clazz += \" rounded-none rounded-l-md\";\n break;\n }\n case \"text\": {\n clazz += \" min-w-0 flex-1 rounded-l-md rounded-none \";\n break;\n }\n }\n }\n const showError = isDirty && state.error;\n if (showError) {\n clazz +=\n \" text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500\";\n } else {\n clazz +=\n \" text-gray-900 ring-gray-300 placeholder:text-gray-400 focus:ring-indigo-600\";\n }\n\n if (type === \"text-area\") {\n return (\n <InputWrapper<T, K>\n {...props}\n help={props.help ?? state.help}\n disabled={state.disabled ?? false}\n error={showError ? state.error : undefined}\n >\n <textarea\n rows={4}\n name={String(name)}\n onChange={(e) => {\n onChange(fromString(e.currentTarget.value));\n }}\n placeholder={placeholder ? placeholder : undefined}\n value={toString(value) ?? \"\"}\n // defaultValue={toString(value)}\n disabled={state.disabled}\n aria-invalid={showError}\n // aria-describedby=\"email-error\"\n class={clazz}\n />\n </InputWrapper>\n );\n }\n\n return (\n <InputWrapper<T, K> {...props}\n help={props.help ?? state.help}\n disabled={state.disabled ?? false} error={showError ? state.error : undefined}\n >\n <input\n name={String(name)}\n type={type}\n onChange={(e) => {\n setText(e.currentTarget.value)\n }}\n placeholder={placeholder ? placeholder : undefined}\n value={text}\n onBlur={() => {\n onChange(fromString(text));\n }}\n // defaultValue={toString(value)}\n disabled={state.disabled}\n aria-invalid={showError}\n // aria-describedby=\"email-error\"\n class={clazz}\n />\n </InputWrapper>\n );\n}\n", "import { useContext, useState } from \"preact/compat\";\nimport { FieldUIOptions, FormContext } from \"./FormProvider.js\";\n\nexport interface InputFieldHandler<Type> {\n value: Type;\n onChange: (s: Type) => void;\n state: FieldUIOptions;\n isDirty: boolean;\n}\n\nexport function useField<T extends object, K extends keyof T>(\n name: K,\n): InputFieldHandler<T[K]> {\n const {\n value: formValue,\n computeFormState,\n onUpdate: notifyUpdate,\n readOnly: readOnlyForm,\n } = useContext(FormContext);\n\n type P = typeof name;\n type V = T[P];\n const formState = computeFormState ? computeFormState(formValue.current) : {};\n\n const fieldValue = readField(formValue.current, String(name)) as V;\n // console.log(\"USE FIELD\", String(name), formValue.current, fieldValue);\n const [currentValue, setCurrentValue] = useState<any | undefined>(fieldValue);\n const fieldState =\n readField<Partial<FieldUIOptions>>(formState, String(name)) ?? {};\n\n //compute default state\n const state = {\n disabled: readOnlyForm ? true : (fieldState.disabled ?? false),\n hidden: fieldState.hidden ?? false,\n error: fieldState.error,\n help: fieldState.help,\n elements: \"elements\" in fieldState ? fieldState.elements ?? [] : [],\n };\n\n function onChange(value: V): void {\n setCurrentValue(value);\n formValue.current = setValueDeeper(\n formValue.current,\n String(name).split(\".\"),\n value,\n );\n if (notifyUpdate) {\n notifyUpdate(formValue.current);\n }\n }\n\n return {\n value: fieldValue,\n onChange,\n isDirty: currentValue !== undefined,\n state,\n };\n}\n\n/**\n * read the field of an object an support accessing it using '.'\n *\n * @param object\n * @param name\n * @returns\n */\nfunction readField<T>(\n object: any,\n name: string,\n debug?: boolean,\n): T | undefined {\n return name.split(\".\").reduce((prev, current) => {\n if (debug) {\n console.log(\n \"READ\",\n name,\n prev,\n current,\n prev ? prev[current] : undefined,\n );\n }\n return prev ? prev[current] : undefined;\n }, object);\n}\n\nfunction setValueDeeper(object: any, names: string[], value: any): any {\n if (names.length === 0) return value;\n const [head, ...rest] = names;\n if (object === undefined) {\n return { [head]: setValueDeeper({}, rest, value) };\n }\n return { ...object, [head]: setValueDeeper(object[head] ?? {}, rest, value) };\n}\n", "import {\n AbsoluteTime,\n AmountJson,\n TranslatedString,\n} from \"@gnu-taler/taler-util\";\nimport { ComponentChildren, VNode, createContext, h } from \"preact\";\nimport {\n MutableRef,\n useState\n} from \"preact/hooks\";\n\nexport interface FormType<T extends object> {\n value: MutableRef<Partial<T>>;\n initial?: Partial<T>;\n readOnly?: boolean;\n onUpdate?: (v: Partial<T>) => void;\n computeFormState?: (v: Partial<T>) => FormState<T>;\n}\n\n//@ts-ignore\nexport const FormContext = createContext<FormType<any>>({});\n\n/**\n * Map of {[field]:FieldUIOptions}\n * for every field of type\n * - any native (string, number, etc...)\n * - absoluteTime\n * - amountJson\n * \n * except for: \n * - object => recurse into\n * - array => behavior result and element field\n */\nexport type FormState<T extends object | undefined> = {\n [field in keyof T]?: T[field] extends AbsoluteTime\n ? FieldUIOptions\n : T[field] extends AmountJson\n ? FieldUIOptions\n : T[field] extends Array<infer P extends object>\n ? InputArrayFieldState<P>\n : T[field] extends (object | undefined)\n ? FormState<T[field]>\n : FieldUIOptions;\n};\n\n/**\n * Properties that can be defined by design or by computing state\n */\nexport type FieldUIOptions = {\n /* text to be shown next to the field */\n error?: TranslatedString;\n /* instruction to be shown in the field */\n placeholder?: TranslatedString;\n /* long text help to be shown on demand */\n tooltip?: TranslatedString;\n /* short text to be shown next to the field*/\n\n help?: TranslatedString;\n /* should show as disabled and readonly */\n disabled?: boolean;\n /* should not show */\n hidden?: boolean;\n\n /* show a mark as required*/\n required?: boolean;\n}\n\n/**\n * properties only to be defined on design time\n */\nexport interface UIFormProps<T extends object, K extends keyof T> extends FieldUIOptions {\n\n // property name of the object\n name: K;\n\n // label if the field\n label: TranslatedString;\n before?: Addon;\n after?: Addon;\n\n // converter to string and back\n converter?: StringConverter<T[K]>;\n}\n\nexport interface IconAddon {\n type: \"icon\";\n icon: VNode;\n}\nexport interface ButtonAddon {\n type: \"button\";\n onClick: () => void;\n children: ComponentChildren;\n}\nexport interface TextAddon {\n type: \"text\";\n text: TranslatedString;\n}\nexport type Addon = IconAddon | ButtonAddon | TextAddon;\n\nexport interface StringConverter<T> {\n toStringUI: (v?: T) => string;\n fromStringUI: (v?: string) => T;\n}\n\nexport interface InputArrayFieldState<P extends object> extends FieldUIOptions {\n elements?: FormState<P>[];\n}\n\nexport type FormProviderProps<T extends object> = Omit<FormType<T>, \"value\"> & {\n onSubmit?: (v: Partial<T>, s: FormState<T> | undefined) => void;\n children?: ComponentChildren;\n}\n\nexport function FormProvider<T extends object>({\n children,\n initial,\n onUpdate: notify,\n onSubmit,\n computeFormState,\n readOnly,\n}: FormProviderProps<T>): VNode {\n\n const [state, setState] = useState<Partial<T>>(initial ?? {});\n const value = { current: state };\n const onUpdate = (v: typeof state) => {\n setState(v);\n if (notify) notify(v);\n };\n return (\n <FormContext.Provider\n value={{ initial, value, onUpdate, computeFormState, readOnly }}\n >\n <form\n onSubmit={(e) => {\n e.preventDefault();\n //@ts-ignore\n if (onSubmit)\n onSubmit(\n value.current,\n !computeFormState ? undefined : computeFormState(value.current),\n );\n }}\n >\n {children}\n </form>\n </FormContext.Provider>\n );\n}\n", "import { Fragment, h } from \"preact\";\nimport { FormProvider, FormProviderProps, FormState } from \"./FormProvider.js\";\nimport { RenderAllFieldsByUiConfig, UIFormField } from \"./forms.js\";\nimport { TranslatedString } from \"@gnu-taler/taler-util\";\n\n/**\n * Flexible form uses a DoubleColumForm for design\n * and may have a dynamic properties defined by \n * behavior function.\n */\nexport interface FlexibleForm<T extends object> {\n design: DoubleColumnForm;\n behavior?: (form: Partial<T>) => FormState<T>;\n}\n\n/**\n * Double column form\n * \n * Form with sections, every sections have a title and may\n * have a description.\n * Every sections contain a set of fields.\n */\nexport type DoubleColumnForm = Array<DoubleColumnFormSection | undefined>;\n\nexport type DoubleColumnFormSection = {\n title: TranslatedString;\n description?: TranslatedString;\n fields: UIFormField[];\n};\n\n/**\n * Form Provider implementation that use FlexibleForm\n * to defined behavior and fields.\n */\nexport function DefaultForm<T extends object>({\n initial,\n onUpdate,\n form,\n onSubmit,\n children,\n readOnly,\n}: Omit<FormProviderProps<T>, \"computeFormState\"> & { form: FlexibleForm<T> }) {\n return (\n <FormProvider\n initial={initial}\n onUpdate={onUpdate}\n onSubmit={onSubmit}\n readOnly={readOnly}\n computeFormState={form.behavior}\n >\n <div class=\"space-y-10 divide-y -mt-5 divide-gray-900/10\">\n {form.design.map((section, i) => {\n if (!section) return <Fragment />;\n return (\n <div class=\"grid grid-cols-1 gap-x-8 gap-y-8 pt-5 md:grid-cols-3\">\n <div class=\"px-4 sm:px-0\">\n <h2 class=\"text-base font-semibold leading-7 text-gray-900\">\n {section.title}\n </h2>\n {section.description && (\n <p class=\"mt-1 text-sm leading-6 text-gray-600\">\n {section.description}\n </p>\n )}\n </div>\n <div class=\"bg-white shadow-sm ring-1 ring-gray-900/5 rounded-md md:col-span-2\">\n <div class=\"p-3\">\n <div class=\"grid max-w-2xl grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6\">\n <RenderAllFieldsByUiConfig\n key={i}\n fields={section.fields}\n />\n </div>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n {children}\n </FormProvider>\n );\n}\n", "import { h as create, Fragment, VNode } from \"preact\";\nimport { Caption } from \"./Caption.js\";\nimport { FormProvider } from \"./FormProvider.js\";\nimport { Group } from \"./Group.js\";\nimport { InputAbsoluteTime } from \"./InputAbsoluteTime.js\";\nimport { InputAmount } from \"./InputAmount.js\";\nimport { InputArray } from \"./InputArray.js\";\nimport { InputChoiceHorizontal } from \"./InputChoiceHorizontal.js\";\nimport { InputChoiceStacked } from \"./InputChoiceStacked.js\";\nimport { InputFile } from \"./InputFile.js\";\nimport { InputInteger } from \"./InputInteger.js\";\nimport { InputLine } from \"./InputLine.js\";\nimport { InputSelectMultiple } from \"./InputSelectMultiple.js\";\nimport { InputSelectOne } from \"./InputSelectOne.js\";\nimport { InputText } from \"./InputText.js\";\nimport { InputTextArea } from \"./InputTextArea.js\";\nimport { InputToggle } from \"./InputToggle.js\";\n\n/**\n * Constrain the type with the ui props\n */\ntype FieldType<T extends object = any, K extends keyof T = any> = {\n group: Parameters<typeof Group>[0];\n caption: Parameters<typeof Caption>[0];\n array: Parameters<typeof InputArray<T, K>>[0];\n file: Parameters<typeof InputFile<T, K>>[0];\n selectOne: Parameters<typeof InputSelectOne<T, K>>[0];\n selectMultiple: Parameters<typeof InputSelectMultiple<T, K>>[0];\n text: Parameters<typeof InputText<T, K>>[0];\n textArea: Parameters<typeof InputTextArea<T, K>>[0];\n choiceStacked: Parameters<typeof InputChoiceStacked<T, K>>[0];\n choiceHorizontal: Parameters<typeof InputChoiceHorizontal<T, K>>[0];\n absoluteTime: Parameters<typeof InputAbsoluteTime<T, K>>[0];\n integer: Parameters<typeof InputInteger<T, K>>[0];\n toggle: Parameters<typeof InputToggle<T, K>>[0];\n amount: Parameters<typeof InputAmount<T, K>>[0];\n};\n\n/**\n * List all the form fields so typescript can type-check the form instance\n */\nexport type UIFormField =\n | { type: \"group\"; props: FieldType[\"group\"] }\n | { type: \"caption\"; props: FieldType[\"caption\"] }\n | { type: \"array\"; props: FieldType[\"array\"] }\n | { type: \"file\"; props: FieldType[\"file\"] }\n | { type: \"amount\"; props: FieldType[\"amount\"] }\n | { type: \"selectOne\"; props: FieldType[\"selectOne\"] }\n | { type: \"selectMultiple\"; props: FieldType[\"selectMultiple\"] }\n | { type: \"text\"; props: FieldType[\"text\"] }\n | { type: \"textArea\"; props: FieldType[\"textArea\"] }\n | { type: \"choiceStacked\"; props: FieldType[\"choiceStacked\"] }\n | { type: \"choiceHorizontal\"; props: FieldType[\"choiceHorizontal\"] }\n | { type: \"integer\"; props: FieldType[\"integer\"] }\n | { type: \"toggle\"; props: FieldType[\"toggle\"] }\n | { type: \"absoluteTime\"; props: FieldType[\"absoluteTime\"] };\n\ntype FieldComponentFunction<key extends keyof FieldType> = (\n props: FieldType[key],\n) => VNode;\n\ntype UIFormFieldMap = {\n [key in keyof FieldType]: FieldComponentFunction<key>;\n};\n\n/**\n * Maps input type with component implementation\n */\nconst UIFormConfiguration: UIFormFieldMap = {\n group: Group,\n caption: Caption,\n //@ts-ignore\n array: InputArray,\n text: InputText,\n //@ts-ignore\n file: InputFile,\n textArea: InputTextArea,\n //@ts-ignore\n absoluteTime: InputAbsoluteTime,\n //@ts-ignore\n choiceStacked: InputChoiceStacked,\n //@ts-ignore\n choiceHorizontal: InputChoiceHorizontal,\n integer: InputInteger,\n //@ts-ignore\n selectOne: InputSelectOne,\n //@ts-ignore\n selectMultiple: InputSelectMultiple,\n //@ts-ignore\n toggle: InputToggle,\n //@ts-ignore\n amount: InputAmount,\n};\n\nexport function RenderAllFieldsByUiConfig({\n fields,\n}: {\n fields: UIFormField[];\n}): VNode {\n return create(\n Fragment,\n {},\n fields.map((field, i) => {\n const Component = UIFormConfiguration[\n field.type\n ] as FieldComponentFunction<any>;\n return Component(field.props);\n }),\n );\n}\n\ntype FormSet<T extends object> = {\n Provider: typeof FormProvider<T>;\n InputLine: <K extends keyof T>() => typeof InputLine<T, K>;\n InputChoiceHorizontal: <K extends keyof T>() => typeof InputChoiceHorizontal<T, K>;\n};\n\n/**\n * Helper function that created a typed object.\n * \n * @returns \n */\nexport function createNewForm<T extends object>() {\n const res: FormSet<T> = {\n Provider: FormProvider,\n InputLine: () => InputLine,\n InputChoiceHorizontal: () => InputChoiceHorizontal,\n };\n return {\n Provider: res.Provider,\n InputLine: res.InputLine(),\n InputChoiceHorizontal: res.InputChoiceHorizontal(),\n };\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { RenderAllFieldsByUiConfig, UIFormField } from \"./forms.js\";\n\ninterface Props {\n before?: TranslatedString;\n after?: TranslatedString;\n tooltipBefore?: TranslatedString;\n tooltipAfter?: TranslatedString;\n fields: UIFormField[];\n}\n\nexport function Group({\n before,\n after,\n tooltipAfter,\n tooltipBefore,\n fields,\n}: Props): VNode {\n return (\n <div class=\"sm:col-span-6 p-4 rounded-lg border-r-2 border-2 bg-gray-50\">\n <div class=\"pb-4\">\n {before && (\n <LabelWithTooltipMaybeRequired\n label={before}\n tooltip={tooltipBefore}\n />\n )}\n </div>\n <div class=\"grid max-w-2xl grid-cols-1 gap-x-6 gap-y-2 sm:grid-cols-6\">\n <RenderAllFieldsByUiConfig fields={fields} />\n </div>\n <div class=\"pt-4\">\n {after && (\n <LabelWithTooltipMaybeRequired label={after} tooltip={tooltipAfter} />\n )}\n </div>\n </div>\n );\n}\n", "import { AbsoluteTime } from \"@gnu-taler/taler-util\";\nimport { InputLine } from \"./InputLine.js\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { format, parse } from \"date-fns\";\nimport { Dialog } from \"./Dialog.js\";\nimport { Calendar } from \"./Calendar.js\";\nimport { useState } from \"preact/hooks\";\nimport { useField } from \"./useField.js\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { TimePicker } from \"./TimePicker.js\";\n\nexport function InputAbsoluteTime<T extends object, K extends keyof T>(\n props: { pattern?: string } & UIFormProps<T, K>,\n): VNode {\n const pattern = props.pattern ?? \"dd/MM/yyyy\";\n const [open, setOpen] = useState(false)\n const { value, onChange } = useField<T, K>(props.name);\n return (\n <Fragment>\n\n <InputLine<T, K>\n type=\"text\"\n after={{\n type: \"button\",\n onClick: () => {\n setOpen(true)\n },\n // icon: <CalendarIcon class=\"h-6 w-6\" />,\n children: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5\" />\n </svg>)\n }}\n converter={{\n //@ts-ignore\n fromStringUI: (v): AbsoluteTime | undefined => {\n if (!v) return undefined;\n try {\n const t_ms = parse(v, pattern, Date.now()).getTime();\n return AbsoluteTime.fromMilliseconds(t_ms);\n } catch (e) {\n return undefined;\n }\n },\n //@ts-ignore\n toStringUI: (v: AbsoluteTime | undefined) => {\n return !v || !v.t_ms\n ? undefined\n : v.t_ms === \"never\"\n ? \"never\"\n : format(v.t_ms, pattern);\n },\n }}\n {...props}\n />\n {open &&\n <Dialog onClose={() => setOpen(false)}>\n <Calendar value={value as AbsoluteTime ?? AbsoluteTime.now()}\n onChange={(v) => {\n onChange(v as any)\n setOpen(false)\n }} />\n </Dialog>\n }\n {/* {open &&\n <Dialog onClose={() => setOpen(false)} >\n <TimePicker value={value as AbsoluteTime ?? AbsoluteTime.now()}\n onChange={(v) => {\n onChange(v as any)\n }}\n onConfirm={() => {\n setOpen(false)\n }} />\n </Dialog>} */}\n </Fragment>\n );\n}\n", "import { ComponentChildren, VNode, h } from \"preact\";\n\nexport function Dialog({ children, onClose }: { onClose?: () => void; children: ComponentChildren }): VNode {\n return <div class=\"relative z-10\" aria-labelledby=\"modal-title\" role=\"dialog\" aria-modal=\"true\" onClick={onClose}>\n <div class=\"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity\"></div>\n\n <div class=\"fixed inset-0 z-10 w-screen overflow-y-auto\">\n <div class=\"flex min-h-full items-center justify-center p-4 text-center \">\n <div class=\"relative transform overflow-hidden rounded-lg bg-white p-1 text-left shadow-xl transition-all\" onClick={(e) => e.stopPropagation()}>\n {children}\n </div>\n </div>\n </div>\n </div>\n}\n", "import { AmountJson, Amounts, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { VNode, h } from \"preact\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { InputLine } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputAmount<T extends object, K extends keyof T>(\n props: { currency?: string } & UIFormProps<T, K>,\n): VNode {\n const { value } = useField<T, K>(props.name);\n const currency =\n !value || !(value as any).currency\n ? props.currency\n : (value as any).currency;\n return (\n <InputLine<T, K>\n type=\"text\"\n before={{\n type: \"text\",\n text: currency as TranslatedString,\n }}\n converter={{\n //@ts-ignore\n fromStringUI: (v): AmountJson => {\n\n return Amounts.parse(`${currency}:${v}`) ?? Amounts.zeroOfCurrency(currency);\n },\n //@ts-ignore\n toStringUI: (v: AmountJson) => {\n return v === undefined ? \"\" : Amounts.stringifyValue(v);\n },\n }}\n {...props}\n />\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { FormProvider, UIFormProps } from \"./FormProvider.js\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { RenderAllFieldsByUiConfig, UIFormField } from \"./forms.js\";\nimport { useField } from \"./useField.js\";\n\nfunction Option({\n label,\n disabled,\n isFirst,\n isLast,\n isSelected,\n onClick,\n}: {\n label: TranslatedString;\n isFirst?: boolean;\n isLast?: boolean;\n isSelected?: boolean;\n disabled?: boolean;\n onClick: () => void;\n}): VNode {\n let clazz = \"relative flex border p-4 focus:outline-none disabled:text-grey\";\n if (isFirst) {\n clazz += \" rounded-tl-md rounded-tr-md \";\n }\n if (isLast) {\n clazz += \" rounded-bl-md rounded-br-md \";\n }\n if (isSelected) {\n clazz += \" z-10 border-indigo-200 bg-indigo-50 \";\n } else {\n clazz += \" border-gray-200\";\n }\n if (disabled) {\n clazz +=\n \" cursor-not-allowed bg-gray-50 text-gray-500 ring-gray-200 text-gray\";\n } else {\n clazz += \" cursor-pointer\";\n }\n return (\n <label class={clazz}>\n <input\n type=\"radio\"\n name=\"privacy-setting\"\n checked={isSelected}\n disabled={disabled}\n onClick={onClick}\n class=\"mt-0.5 h-4 w-4 shrink-0 text-indigo-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200 focus:ring-indigo-600\"\n aria-labelledby=\"privacy-setting-0-label\"\n aria-describedby=\"privacy-setting-0-description\"\n />\n <span class=\"ml-3 flex flex-col\">\n <span\n id=\"privacy-setting-0-label\"\n disabled\n class=\"block text-sm font-medium\"\n >\n {label}\n </span>\n {/* <!-- Checked: \"text-indigo-700\", Not Checked: \"text-gray-500\" --> */}\n {/* <span\n id=\"privacy-setting-0-description\"\n class=\"block text-sm\"\n >\n This project would be available to anyone who has the link\n </span> */}\n </span>\n </label>\n );\n}\n\nexport function InputArray<T extends object, K extends keyof T>(\n props: {\n fields: UIFormField[];\n labelField: string;\n } & UIFormProps<T, K>,\n): VNode {\n const { fields, labelField, name, label, required, tooltip } = props;\n const { value, onChange, state } = useField<T, K>(name);\n const list = (value ?? []) as Array<Record<string, string | undefined>>;\n const [selectedIndex, setSelected] = useState<number | undefined>(undefined);\n const selected =\n selectedIndex === undefined ? undefined : list[selectedIndex];\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n\n <div class=\"-space-y-px rounded-md bg-white \">\n {list.map((v, idx) => {\n return (\n <Option\n label={v[labelField] as TranslatedString}\n isSelected={selectedIndex === idx}\n isLast={idx === list.length - 1}\n disabled={selectedIndex !== undefined && selectedIndex !== idx}\n isFirst={idx === 0}\n onClick={() => {\n setSelected(selectedIndex === idx ? undefined : idx);\n }}\n />\n );\n })}\n {!state.disabled &&\n <div class=\"pt-2\">\n <Option\n label={\"Add...\" as TranslatedString}\n isSelected={selectedIndex === list.length}\n isLast\n isFirst\n disabled={\n selectedIndex !== undefined && selectedIndex !== list.length\n }\n onClick={() => {\n setSelected(\n selectedIndex === list.length ? undefined : list.length,\n );\n }}\n />\n </div>\n }\n </div>\n {selectedIndex !== undefined && (\n /**\n * This form provider act as a substate of the parent form\n * Consider creating an InnerFormProvider since not every feature is expected\n */\n <FormProvider\n initial={selected}\n readOnly={state.disabled}\n computeFormState={(v) => {\n // current state is ignored\n // the state is defined by the parent form\n\n // elements should be present in the state object since this is expected to be an array\n //@ts-ignore\n return state.elements[selectedIndex];\n }}\n onSubmit={(v) => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1, v);\n onChange(newValue as T[K]);\n setSelected(undefined);\n }}\n onUpdate={(v) => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1, v);\n onChange(newValue as T[K]);\n }}\n >\n <div class=\"px-4 py-6\">\n <div class=\"grid grid-cols-1 gap-y-8 \">\n <RenderAllFieldsByUiConfig fields={fields} />\n </div>\n </div>\n </FormProvider>\n )}\n {selectedIndex !== undefined && (\n <div class=\"flex items-center pt-3\">\n <div class=\"flex-auto\">\n {selected !== undefined && (\n <button\n type=\"button\"\n onClick={() => {\n const newValue = [...list];\n newValue.splice(selectedIndex, 1);\n onChange(newValue as T[K]);\n setSelected(undefined);\n }}\n class=\"block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 \"\n >\n Remove\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport interface ChoiceH<V> {\n label: TranslatedString;\n value: V;\n}\n\nexport function InputChoiceHorizontal<T extends object, K extends keyof T>(\n props: {\n choices: ChoiceH<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const {\n choices,\n name,\n label,\n tooltip,\n help,\n placeholder,\n required,\n before,\n after,\n converter,\n } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n if (state.hidden) {\n return <Fragment />;\n }\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <fieldset class=\"mt-2\">\n <div class=\"isolate inline-flex rounded-md shadow-sm\">\n {choices.map((choice, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === choices.length - 1;\n let clazz =\n \"relative inline-flex items-center px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 focus:z-10\";\n if (choice.value === value) {\n clazz +=\n \" text-white bg-indigo-600 hover:bg-indigo-500 ring-2 ring-indigo-600 hover:ring-indigo-500\";\n } else {\n clazz += \" hover:bg-gray-100 border-gray-300\";\n }\n if (isFirst) {\n clazz += \" rounded-l-md\";\n } else {\n clazz += \" -ml-px\";\n }\n if (isLast) {\n clazz += \" rounded-r-md\";\n }\n return (\n <button\n type=\"button\"\n disabled={state.disabled}\n label={choice.label}\n class={clazz}\n onClick={(e) => {\n onChange(\n (value === choice.value ? undefined : choice.value) as T[K],\n );\n }}\n >\n {choice.label}\n </button>\n );\n })}\n </div>\n </fieldset>\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport interface ChoiceS<V> {\n label: TranslatedString;\n description?: TranslatedString;\n value: V;\n}\n\nexport function InputChoiceStacked<T extends object, K extends keyof T>(\n props: {\n choices: ChoiceS<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const {\n choices,\n name,\n label,\n tooltip,\n help,\n placeholder,\n required,\n before,\n after,\n converter,\n } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n if (state.hidden) {\n return <Fragment />;\n }\n\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <fieldset class=\"mt-2\">\n <div class=\"space-y-4\">\n {choices.map((choice) => {\n // const currentValue = !converter\n // ? choice.value\n // : converter.fromStringUI(choice.value) ?? \"\";\n\n let clazz =\n \"border relative block cursor-pointer rounded-lg bg-white px-6 py-4 shadow-sm focus:outline-none sm:flex sm:justify-between\";\n if (choice.value === value) {\n clazz +=\n \" border-transparent border-indigo-600 ring-2 ring-indigo-600\";\n } else {\n clazz += \" border-gray-300\";\n }\n\n return (\n <label class={clazz}>\n <input\n type=\"radio\"\n name=\"server-size\"\n // defaultValue={choice.value}\n disabled={state.disabled}\n value={\n (!converter\n ? (choice.value as string)\n : converter?.toStringUI(choice.value)) ?? \"\"\n }\n onClick={(e) => {\n onChange(\n (value === choice.value\n ? undefined\n : choice.value) as T[K],\n );\n }}\n class=\"sr-only\"\n aria-labelledby=\"server-size-0-label\"\n aria-describedby=\"server-size-0-description-0 server-size-0-description-1\"\n />\n <span class=\"flex items-center\">\n <span class=\"flex flex-col text-sm\">\n <span\n id=\"server-size-0-label\"\n class=\"font-medium text-gray-900\"\n >\n {choice.label}\n </span>\n {choice.description !== undefined && (\n <span\n id=\"server-size-0-description-0\"\n class=\"text-gray-500\"\n >\n <span class=\"block sm:inline\">\n {choice.description}\n </span>\n </span>\n )}\n </span>\n </span>\n </label>\n );\n })}\n </div>\n </fieldset>\n {help && (\n <p class=\"mt-2 text-sm text-gray-500\" id=\"email-description\">\n {help}\n </p>\n )}\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputFile<T extends object, K extends keyof T>(\n props: { maxBites: number; accept?: string } & UIFormProps<T, K>,\n): VNode {\n const {\n name,\n label,\n placeholder,\n tooltip,\n required,\n help: propsHelp,\n maxBites,\n accept,\n } = props;\n const { value, onChange, state } = useField<T, K>(name);\n const help = propsHelp ?? state.help\n if (state.hidden) {\n return <div />;\n }\n return (\n <div class=\"col-span-full\">\n <LabelWithTooltipMaybeRequired\n label={label}\n tooltip={tooltip}\n required={required}\n />\n {!value || !(value as string).startsWith(\"data:image/\") ? (\n <div class=\"mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 py-1\">\n <div class=\"text-center\">\n <svg\n class=\"mx-auto h-12 w-12 text-gray-300\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M1.5 6a2.25 2.25 0 012.25-2.25h16.5A2.25 2.25 0 0122.5 6v12a2.25 2.25 0 01-2.25 2.25H3.75A2.25 2.25 0 011.5 18V6zM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0021 18v-1.94l-2.69-2.689a1.5 1.5 0 00-2.12 0l-.88.879.97.97a.75.75 0 11-1.06 1.06l-5.16-5.159a1.5 1.5 0 00-2.12 0L3 16.061zm10.125-7.81a1.125 1.125 0 112.25 0 1.125 1.125 0 01-2.25 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n {!state.disabled &&\n <div class=\"my-2 flex text-sm leading-6 text-gray-600\">\n <label\n for=\"file-upload\"\n class=\"relative cursor-pointer rounded-md bg-white font-semibold text-indigo-600 focus-within:outline-none focus-within:ring-2 focus-within:ring-indigo-600 focus-within:ring-offset-2 hover:text-indigo-500\"\n >\n <span>Upload a file</span>\n <input\n id=\"file-upload\"\n name=\"file-upload\"\n type=\"file\"\n class=\"sr-only\"\n accept={accept}\n onChange={(e) => {\n const f: FileList | null = e.currentTarget.files;\n if (!f || f.length != 1) {\n return onChange(undefined!);\n }\n if (f[0].size > maxBites) {\n return onChange(undefined!);\n }\n return f[0].arrayBuffer().then((b) => {\n const b64 = window.btoa(\n new Uint8Array(b).reduce(\n (data, byte) => data + String.fromCharCode(byte),\n \"\",\n ),\n );\n return onChange(`data:${f[0].type};base64,${b64}` as any);\n });\n }}\n />\n </label>\n {/* <p class=\"pl-1\">or drag and drop</p> */}\n </div>\n }\n </div>\n </div>\n ) : (\n <div class=\"mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 relative\">\n <img\n src={value as string}\n class=\" h-24 w-full object-cover relative\"\n />\n\n {!state.disabled &&\n <div\n class=\"opacity-0 hover:opacity-70 duration-300 absolute rounded-lg border inset-0 z-10 flex justify-center text-xl items-center bg-black text-white cursor-pointer \"\n onClick={() => {\n onChange(undefined!);\n }}\n >\n Clear\n </div>\n }\n </div>\n )}\n {help && <p class=\"text-xs leading-5 text-gray-600 mt-2\">{help}</p>}\n </div>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { InputLine } from \"./InputLine.js\";\nimport { UIFormProps } from \"./FormProvider.js\";\n\nexport function InputInteger<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return (\n <InputLine\n type=\"number\"\n converter={{\n //@ts-ignore\n fromStringUI: (v): number => {\n return !v ? 0 : Number.parseInt(v, 10);\n },\n //@ts-ignore\n toStringUI: (v?: number): string => {\n return v === undefined ? \"\" : String(v);\n },\n }}\n {...props}\n />\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { ChoiceS } from \"./InputChoiceStacked.js\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputSelectMultiple<T extends object, K extends keyof T>(\n props: {\n choices: ChoiceS<T[K]>[];\n unique?: boolean;\n max?: number;\n } & UIFormProps<T, K>,\n): VNode {\n const { name, label, choices, placeholder, tooltip, required, unique, max } =\n props;\n const { value, onChange, state } = useField<T, K>(name);\n\n const [filter, setFilter] = useState<string | undefined>(undefined);\n const regex = new RegExp(`.*${filter}.*`, \"i\");\n const choiceMap = choices.reduce((prev, curr) => {\n return { ...prev, [curr.value as string]: curr.label };\n }, {} as Record<string, string>);\n\n const list = (value ?? []) as string[];\n const filteredChoices =\n filter === undefined\n ? undefined\n : choices.filter((v) => {\n return regex.test(v.label);\n });\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n {list.map((v, idx) => {\n return (\n <span class=\"inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 text-xs font-medium text-gray-600\">\n {choiceMap[v]}\n <button\n type=\"button\"\n disabled={state.disabled}\n onClick={() => {\n const newValue = [...list];\n newValue.splice(idx, 1);\n onChange(newValue as T[K]);\n setFilter(undefined);\n }}\n class=\"group relative h-5 w-5 rounded-sm hover:bg-gray-500/20\"\n >\n <span class=\"sr-only\">Remove</span>\n <svg\n viewBox=\"0 0 14 14\"\n class=\"h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75\"\n >\n <path d=\"M4 4l6 6m0-6l-6 6\" />\n </svg>\n <span class=\"absolute -inset-1\"></span>\n </button>\n </span>\n );\n })}\n\n {!state.disabled && <div class=\"relative mt-2\">\n <input\n id=\"combobox\"\n type=\"text\"\n value={filter ?? \"\"}\n onChange={(e) => {\n setFilter(e.currentTarget.value);\n }}\n placeholder={placeholder}\n class=\"w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6\"\n role=\"combobox\"\n aria-controls=\"options\"\n aria-expanded=\"false\"\n />\n <button\n type=\"button\"\n disabled={state.disabled}\n onClick={() => {\n setFilter(filter === undefined ? \"\" : undefined);\n }}\n class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\"\n >\n <svg\n class=\"h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n\n {filteredChoices !== undefined && (\n <ul\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n id=\"options\"\n role=\"listbox\"\n >\n {filteredChoices.map((v, idx) => {\n return (\n <li\n class=\"relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600\"\n id=\"option-0\"\n role=\"option\"\n onClick={() => {\n setFilter(undefined);\n if (unique && list.indexOf(v.value as string) !== -1) {\n return;\n }\n if (max !== undefined && list.length >= max) {\n return;\n }\n const newValue = [...list];\n newValue.splice(0, 0, v.value as string);\n onChange(newValue as T[K]);\n }}\n\n // tabindex=\"-1\"\n >\n {/* <!-- Selected: \"font-semibold\" --> */}\n <span class=\"block truncate\">{v.label}</span>\n\n {/* <!--\n Checkmark, only display for selected option.\n\n Active: \"text-white\", Not Active: \"text-indigo-600\"\n --> */}\n </li>\n );\n })}\n\n {/* <!--\n Combobox option, manage highlight styles based on mouseenter/mouseleave and keyboard navigation.\n\n Active: \"text-white bg-indigo-600\", Not Active: \"text-gray-900\"\n --> */}\n\n {/* <!-- More items... --> */}\n </ul>\n )}\n </div>}\n </div>\n );\n}\n", "import { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { ChoiceS } from \"./InputChoiceStacked.js\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputSelectOne<T extends object, K extends keyof T>(\n props: {\n choices: ChoiceS<T[K]>[];\n } & UIFormProps<T, K>,\n): VNode {\n const { name, label, choices, placeholder, tooltip, required } = props;\n const { value, onChange } = useField<T, K>(name);\n\n const [filter, setFilter] = useState<string | undefined>(undefined);\n const regex = new RegExp(`.*${filter}.*`, \"i\");\n const choiceMap = choices.reduce((prev, curr) => {\n return { ...prev, [curr.value as string]: curr.label };\n }, {} as Record<string, string>);\n\n const filteredChoices =\n filter === undefined\n ? undefined\n : choices.filter((v) => {\n return regex.test(v.label);\n });\n return (\n <div class=\"sm:col-span-6\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n {value ? (\n <span class=\"inline-flex items-center gap-x-0.5 rounded-md bg-gray-100 p-1 mr-2 font-medium text-gray-600\">\n {choiceMap[value as string]}\n <button\n type=\"button\"\n onClick={() => {\n onChange(undefined!);\n }}\n class=\"group relative h-5 w-5 rounded-sm hover:bg-gray-500/20\"\n >\n <span class=\"sr-only\">Remove</span>\n <svg\n viewBox=\"0 0 14 14\"\n class=\"h-5 w-5 stroke-gray-700/50 group-hover:stroke-gray-700/75\"\n >\n <path d=\"M4 4l6 6m0-6l-6 6\" />\n </svg>\n <span class=\"absolute -inset-1\"></span>\n </button>\n </span>\n ) : (\n <div class=\"relative mt-2\">\n <input\n id=\"combobox\"\n type=\"text\"\n value={filter ?? \"\"}\n onChange={(e) => {\n setFilter(e.currentTarget.value);\n }}\n placeholder={placeholder}\n class=\"w-full rounded-md border-0 bg-white py-1.5 pl-3 pr-12 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6\"\n role=\"combobox\"\n aria-controls=\"options\"\n aria-expanded=\"false\"\n />\n <button\n type=\"button\"\n onClick={() => {\n setFilter(filter === undefined ? \"\" : undefined);\n }}\n class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\"\n >\n <svg\n class=\"h-5 w-5 text-gray-400\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n\n {filteredChoices !== undefined && (\n <ul\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n id=\"options\"\n role=\"listbox\"\n >\n {filteredChoices.map((v, idx) => {\n return (\n <li\n class=\"relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:text-white hover:bg-indigo-600\"\n id=\"option-0\"\n role=\"option\"\n onClick={() => {\n setFilter(undefined);\n onChange(v.value as T[K]);\n }}\n\n // tabindex=\"-1\"\n >\n {/* <!-- Selected: \"font-semibold\" --> */}\n <span class=\"block truncate\">{v.label}</span>\n\n {/* <!--\n Checkmark, only display for selected option.\n\n Active: \"text-white\", Not Active: \"text-indigo-600\"\n --> */}\n </li>\n );\n })}\n\n {/* <!--\n Combobox option, manage highlight styles based on mouseenter/mouseleave and keyboard navigation.\n\n Active: \"text-white bg-indigo-600\", Not Active: \"text-gray-900\"\n --> */}\n\n {/* <!-- More items... --> */}\n </ul>\n )}\n </div>\n )}\n </div>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { InputLine } from \"./InputLine.js\";\n\nexport function InputText<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return <InputLine type=\"text\" {...props} />;\n}\n", "import { VNode, h } from \"preact\";\nimport { InputLine } from \"./InputLine.js\";\nimport { UIFormProps } from \"./FormProvider.js\";\n\nexport function InputTextArea<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n return <InputLine type=\"text-area\" {...props} />;\n}\n", "import { VNode, h } from \"preact\";\nimport { UIFormProps } from \"./FormProvider.js\";\nimport { LabelWithTooltipMaybeRequired } from \"./InputLine.js\";\nimport { useField } from \"./useField.js\";\n\nexport function InputToggle<T extends object, K extends keyof T>(\n props: UIFormProps<T, K>,\n): VNode {\n const {\n name,\n label,\n tooltip,\n help,\n placeholder,\n required,\n before,\n after,\n converter,\n } = props;\n const { value, onChange, state, isDirty } = useField<T, K>(name);\n\n const isOn = !!value\n return <div class=\"sm:col-span-6\">\n <div class=\"flex items-center justify-between\">\n <LabelWithTooltipMaybeRequired\n label={label}\n required={required}\n tooltip={tooltip}\n />\n <button type=\"button\" data-enabled={isOn}\n class=\"bg-indigo-600 data-[enabled=false]:bg-gray-200 relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-600 focus:ring-offset-2\"\n role=\"switch\" aria-checked=\"false\" aria-labelledby=\"availability-label\" aria-describedby=\"availability-description\"\n onClick={() => { onChange(!isOn as any); }}>\n <span aria-hidden=\"true\" data-enabled={isOn} class=\"translate-x-5 data-[enabled=false]:translate-x-0 pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out\"></span>\n </button>\n </div>\n </div>\n}\n", "import { AbsoluteTime } from \"@gnu-taler/taler-util\"\nimport { getHours, getMinutes, getSeconds, setHours } from \"date-fns\"\nimport { Fragment, VNode, h } from \"preact\"\nimport { useTranslationContext } from \"../index.browser.js\"\n\nexport function TimePicker({ value, onChange, onConfirm }: { value: AbsoluteTime | undefined, onChange: (v: AbsoluteTime) => void, onConfirm: () => void }): VNode {\n const date = !value ? new Date() : new Date(AbsoluteTime.toStampMs(value))\n const hours = getHours(date) % 12\n const minutes = getMinutes(date)\n const seconds = getSeconds(date)\n\n const { i18n } = useTranslationContext()\n\n return <Fragment>\n <div class=\"flex flex-col bg-white rounded-t-sm justify-around\" >\n {/* time selection */}\n <div id=\"\" class=\"bg-[#3b71ca] dark:bg-zinc-700 h-24 rounded-t-lg p-12 flex flex-row items-center justify-center\">\n <div class=\"flex w-full justify-evenly\">\n <div class=\"\">\n <span class=\"relative h-full\">\n <button type=\"button\" class=\"py-1 px-3 text-[3.75rem] font-light leading-[1.2] text-white opacity-[.54] border-none bg-transparent p-0 cursor-pointer hover:bg-[#00000026] hover:outline-none focus:bg-[#00000026] focus:outline-none \"\n style=\"pointer-events: none;\">\n {new String(hours).padStart(2, \"0\")}\n </button>\n </span>\n <span type=\"button\" class=\"font-light leading-[1.2] text-[3.75rem] opacity-[.54] border-none bg-transparent p-0 text-white \" >:</span>\n <span class=\"relative h-full\">\n <button type=\"button\" class=\"py-1 px-3 text-[3.75rem] font-light leading-[1.2] text-white opacity-[.54] border-none bg-transparent p-0 cursor-pointer hover:bg-[#00000026] hover:outline-none focus:bg-[#00000026] focus:outline-none \" >\n {new String(minutes).padStart(2, \"0\")}\n </button>\n </span>\n <span type=\"button\" class=\"font-light leading-[1.2] text-[3.75rem] opacity-[.54] border-none bg-transparent p-0 text-white \" >:</span>\n <span class=\"relative h-full\">\n <button type=\"button\" class=\"py-1 px-3 text-[3.75rem] font-light leading-[1.2] text-white opacity-[.54] border-none bg-transparent p-0 cursor-pointer hover:bg-[#00000026] hover:outline-none focus:bg-[#00000026] focus:outline-none \" >\n {new String(seconds).padStart(2, \"0\")}\n </button>\n </span>\n </div>\n <div class=\"flex flex-col justify-center text-[18px] text-[#ffffff8a] \">\n <button type=\"button\" class=\"py-1 px-3 bg-transparent border-none text-white cursor-pointer hover:bg-[#00000026] hover:outline-none focus:bg-[#00000026] focus:outline-none\" >\n AM\n </button>\n <button type=\"button\" class=\"py-1 px-3 bg-transparent border-none text-white cursor-pointer hover:bg-[#00000026] hover:outline-none focus:bg-[#00000026] focus:outline-none\" >\n PM\n </button>\n </div>\n </div>\n </div>\n {/* clock */}\n <div id=\"\" class=\"mt-2 min-w-[310px] max-w-[325px] min-h-[305px] overflow-x-hidden h-full flex justify-center mx-auto flex-col items-center dark:bg-zinc-500\" >\n <div class=\"relative rounded-[100%] w-[260px] h-[260px] cursor-default my-0 mx-auto bg-[#00000012] dark:bg-zinc-600/50 animate-[show-up-clock_350ms_linear]\" >\n\n <span class=\"top-1/2 left-1/2 w-[6px] h-[6px] -translate-y-1/2 -translate-x-1/2 rounded-[50%] bg-[#3b71ca] absolute\" ></span>\n <div class=\"bg-[#3b71ca] bottom-1/2 h-2/5 left-[calc(50%-1px)] rtl:!left-auto origin-[center_bottom_0] rtl:!origin-[50%_50%_0] w-[2px] absolute\" style={{ transform: \"rotateZ(60deg)\", height: \"calc(35% + 1px)\" }}>\n {/* <div class=\"-top-[21px] -left-[15px] w-[4px] border-[14px] border-solid border-[#3b71ca] h-[4px] box-content rounded-[100%] absolute\" style=\"background-color: rgb(25, 118, 210);\"></div> */}\n </div>\n\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 12).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 114px; bottom: 224px;\">\n <span>0</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 1).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 169px; bottom: 209.263px;\">\n <span >1</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 2).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" data-selected={true} style=\"left: 209.263px; bottom: 169px;\" >\n <span >2</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 3).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 224px; bottom: 114px;\">\n <span >3</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 4).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 209.263px; bottom: 59px;\">\n <span >4</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 5).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 169px; bottom: 18.7372px;\">\n <span >5</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 6).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 114px; bottom: 4px;\">\n <span >6</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 7).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 59px; bottom: 18.7372px;\">\n <span >7</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 8).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 18.7372px; bottom: 59px;\">\n <span >8</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 9).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 4px; bottom: 114px;\">\n <span >9</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 10).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 18.7372px; bottom: 169px;\">\n <span >10</span>\n </span>\n <span onClick={() => onChange(AbsoluteTime.fromStampMs(setHours(date, 11).getTime()))} class=\"absolute rounded-[100%] w-[32px] h-[32px] text-center cursor-pointer text-[1.1rem] bg-transparent flex justify-center items-center font-light focus:outline-none selection:bg-transparent data-[selected=true]:text-white data-[selected=true]:bg-[#3b71ca] data-[selected=true]:font-normal\" style=\"left: 59px; bottom: 209.263px;\">\n <span >11</span>\n </span>\n </div>\n </div>\n </div>\n <div id=\"\" class=\"rounded-b-lg flex justify-between items-center w-full h-[56px] px-[12px] bg-white dark:bg-zinc-500\">\n <div class=\"w-full flex justify-end\">\n <button\n type=\"submit\"\n onClick={onConfirm}\n class=\"rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n <i18n.Translate>Confirm</i18n.Translate>\n </button>\n </div>\n </div>\n </Fragment>\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { setupI18n } from \"@gnu-taler/taler-util\";\nimport {\n ComponentChild,\n ComponentChildren,\n Fragment,\n FunctionalComponent,\n FunctionComponent,\n h,\n JSX,\n render,\n VNode,\n} from \"preact\";\nimport { useEffect, useErrorBoundary, useState } from \"preact/hooks\";\nimport { ExampleItemSetup } from \"./tests/hook.js\";\n\nconst Page: FunctionalComponent = ({ children }): VNode => {\n return (\n <div\n style={{\n fontFamily: \"Arial, Helvetica, sans-serif\",\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n }}\n >\n {children}\n </div>\n );\n};\n\nconst SideBar: FunctionalComponent<{ width: number }> = ({\n width,\n children,\n}): VNode => {\n return (\n <div\n style={{\n minWidth: width,\n height: \"calc(100vh - 20px)\",\n overflowX: \"hidden\",\n overflowY: \"visible\",\n scrollBehavior: \"smooth\",\n }}\n >\n {children}\n </div>\n );\n};\n\nconst ResizeHandleDiv: FunctionalComponent<\n JSX.HTMLAttributes<HTMLDivElement>\n> = ({ children, ...props }): VNode => {\n return (\n <div\n {...props}\n style={{\n width: 10,\n backgroundColor: \"#ddd\",\n cursor: \"ew-resize\",\n }}\n >\n {children}\n </div>\n );\n};\n\nconst Content: FunctionalComponent = ({ children }): VNode => {\n return (\n <div\n style={{\n width: \"100%\",\n padding: 20,\n }}\n >\n {children}\n </div>\n );\n};\n\nfunction findByGroupComponentName(\n allExamples: Group[],\n group: string,\n component: string,\n name: string,\n): ExampleItem | undefined {\n const gl = allExamples.filter((e) => e.title === group);\n if (gl.length === 0) {\n return undefined;\n }\n const cl = gl[0].list.filter((l) => l.name === component);\n if (cl.length === 0) {\n return undefined;\n }\n const el = cl[0].examples.filter((c) => c.name === name);\n if (el.length === 0) {\n return undefined;\n }\n return el[0];\n}\n\nfunction getContentForExample(\n item: ExampleItem | undefined,\n allExamples: Group[],\n): FunctionalComponent {\n if (!item)\n return function SelectExampleMessage() {\n return <div>select example from the list on the left</div>;\n };\n const example = findByGroupComponentName(\n allExamples,\n item.group,\n item.component,\n item.name,\n );\n if (!example) {\n return function ExampleNotFoundMessage() {\n return <div>example not found</div>;\n };\n }\n return () => example.render.component(example.render.props);\n}\n\nfunction ExampleList({\n name,\n list,\n selected,\n onSelectStory,\n}: {\n name: string;\n list: {\n name: string;\n examples: ExampleItem[];\n }[];\n selected: ExampleItem | undefined;\n onSelectStory: (i: ExampleItem, id: string) => void;\n}): VNode {\n const [isOpen, setOpen] = useState(selected && selected.group === name);\n return (\n <ol style={{ padding: 4, margin: 0 }}>\n <div\n style={{ backgroundColor: \"lightcoral\", cursor: \"pointer\" }}\n onClick={() => setOpen(!isOpen)}\n >\n {name}\n </div>\n <div style={{ display: isOpen ? undefined : \"none\" }}>\n {list.map((k) => (\n <li key={k.name}>\n <dl style={{ margin: 0 }}>\n <dt>{k.name}</dt>\n {k.examples.map((r, i) => {\n const e = encodeURIComponent;\n const eId = `${e(r.group)}-${e(r.component)}-${e(r.name)}`;\n const isSelected =\n selected &&\n selected.component === r.component &&\n selected.group === r.group &&\n selected.name === r.name;\n return (\n <dd\n id={eId}\n key={r.name}\n style={{\n backgroundColor: isSelected\n ? \"green\"\n : i % 2\n ? \"lightgray\"\n : \"lightblue\",\n marginLeft: \"1em\",\n padding: 4,\n cursor: \"pointer\",\n borderRadius: 4,\n marginBottom: 4,\n }}\n >\n <a\n href={`#${eId}`}\n style={{ color: \"black\" }}\n onClick={(e) => {\n e.preventDefault();\n location.hash = `#${eId}`;\n onSelectStory(r, eId);\n history.pushState({}, \"\", `#${eId}`);\n }}\n >\n {r.name}\n </a>\n </dd>\n );\n })}\n </dl>\n </li>\n ))}\n </div>\n </ol>\n );\n}\n\n/**\n * Prevents the UI from redirecting and inform the dev\n * where the <a /> should have redirected\n * @returns\n */\nfunction PreventLinkNavigation({\n children,\n}: {\n children: ComponentChildren;\n}): VNode {\n return (\n <div\n onClick={(e) => {\n let t: any = e.target;\n do {\n if (t.localName === \"a\" && t.getAttribute(\"href\")) {\n alert(`should navigate to: ${t.attributes.href.value}`);\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n } while ((t = t.parentNode));\n return true;\n }}\n >\n {children}\n </div>\n );\n}\n\nfunction ErrorReport({\n children,\n selected,\n}: {\n children: ComponentChild;\n selected: ExampleItem | undefined;\n}): VNode {\n const [error, resetError] = useErrorBoundary();\n //if there is an error, reset when unloading this component\n useEffect(() => (error ? resetError : undefined));\n if (error) {\n return (\n <div>\n <p>Error was thrown trying to render</p>\n {selected && (\n <ul>\n <li>\n <b>group</b>: {selected.group}\n </li>\n <li>\n <b>component</b>: {selected.component}\n </li>\n <li>\n <b>example</b>: {selected.name}\n </li>\n <li>\n <b>args</b>:{\" \"}\n <pre>{JSON.stringify(selected.render.props, undefined, 2)}</pre>\n </li>\n </ul>\n )}\n <p>{error.message}</p>\n <pre>{error.stack}</pre>\n </div>\n );\n }\n return <Fragment>{children}</Fragment>;\n}\n\nfunction getSelectionFromLocationHash(\n hash: string,\n allExamples: Group[],\n): ExampleItem | undefined {\n if (!hash) return undefined;\n const parts = hash.substring(1).split(\"-\");\n if (parts.length < 3) return undefined;\n return findByGroupComponentName(\n allExamples,\n decodeURIComponent(parts[0]),\n decodeURIComponent(parts[1]),\n decodeURIComponent(parts[2]),\n );\n}\n\nfunction parseExampleImport(\n group: string,\n componentName: string,\n im: MaybeComponent,\n): ComponentItem {\n const examples: ExampleItem[] = Object.entries(im)\n .filter(([k]) => k !== \"default\")\n .map(([exampleName, exampleValue]): ExampleItem => {\n if (!exampleValue) {\n throw Error(\n `example \"${exampleName}\" from component \"${componentName}\" in group \"${group}\" is undefined`,\n );\n }\n\n if (typeof exampleValue === \"function\") {\n return {\n group,\n component: componentName,\n name: exampleName,\n render: {\n component: exampleValue as FunctionComponent,\n props: {},\n contextProps: {},\n },\n };\n }\n const v: any = exampleValue;\n if (\n \"component\" in v &&\n typeof v.component === \"function\" &&\n \"props\" in v\n ) {\n return {\n group,\n component: componentName,\n name: exampleName,\n render: v,\n };\n }\n throw Error(\n `example \"${exampleName}\" from component \"${componentName}\" in group \"${group}\" doesn't follow one of the two ways of example`,\n );\n });\n return {\n name: componentName,\n examples,\n };\n}\n\nexport function parseGroupImport(\n groups: Record<string, ComponentOrFolder>,\n): Group[] {\n return Object.entries(groups).map(([groupName, value]) => {\n return {\n title: groupName,\n list: Object.entries(value).flatMap(([key, value]) =>\n folder(groupName, value),\n ),\n };\n });\n}\n\nexport interface Group {\n title: string;\n list: ComponentItem[];\n}\n\nexport interface ComponentItem<Props extends object = {}> {\n name: string;\n examples: ExampleItem<Props>[];\n}\n\nexport interface ExampleItem<Props extends object = {}> {\n group: string;\n component: string;\n name: string;\n render: ExampleItemSetup<Props>;\n}\n\ntype ComponentOrFolder = MaybeComponent | MaybeFolder;\ninterface MaybeFolder {\n default?: { title: string };\n // [exampleName: string]: FunctionalComponent;\n}\ninterface MaybeComponent {\n // default?: undefined;\n [exampleName: string]: undefined | object;\n}\n\nfunction folder(groupName: string, value: ComponentOrFolder): ComponentItem[] {\n let title: string | undefined = undefined;\n try {\n title =\n typeof value === \"object\" &&\n typeof value.default === \"object\" &&\n value.default !== undefined &&\n \"title\" in value.default &&\n typeof value.default.title === \"string\"\n ? value.default.title\n : undefined;\n } catch (e) {\n throw Error(\n `Could not defined if it is component or folder ${groupName}: ${JSON.stringify(\n value,\n undefined,\n 2,\n )}`,\n );\n }\n if (title) {\n const c = parseExampleImport(groupName, title, value as MaybeComponent);\n return [c];\n }\n return Object.entries(value).flatMap(([subkey, value]) =>\n folder(groupName, value),\n );\n}\n\ninterface Props {\n getWrapperForGroup: (name: string) => FunctionComponent;\n examplesInGroups: Group[];\n langs: Record<string, object>;\n}\n\nfunction Application({\n langs,\n examplesInGroups,\n getWrapperForGroup,\n}: Props): VNode {\n const url = new URL(window.location.href);\n const initialSelection = getSelectionFromLocationHash(\n url.hash,\n examplesInGroups,\n );\n\n const currentLang = url.searchParams.get(\"lang\") || \"en\";\n\n if (!langs[\"en\"]) {\n langs[\"en\"] = {};\n }\n setupI18n(currentLang, langs);\n\n const [selected, updateSelected] = useState<ExampleItem | undefined>(\n initialSelection,\n );\n const [sidebarWidth, setSidebarWidth] = useState(200);\n useEffect(() => {\n if (url.hash) {\n const hash = url.hash.substring(1);\n const found = document.getElementById(hash);\n if (found) {\n setTimeout(() => {\n found.scrollIntoView({\n block: \"center\",\n });\n }, 50);\n }\n }\n }, []);\n\n const GroupWrapper = getWrapperForGroup(selected?.group || \"default\");\n const ExampleContent = getContentForExample(selected, examplesInGroups);\n\n //style={{ \"--with-size\": `${sidebarWidth}px` }}\n return (\n <Page>\n {/* <LiveReload /> */}\n <SideBar width={sidebarWidth}>\n <div>\n Language:\n <select\n value={currentLang}\n onChange={(e) => {\n const url = new URL(window.location.href);\n url.searchParams.set(\"lang\", e.currentTarget.value);\n window.location.href = url.href;\n }}\n >\n {Object.keys(langs).map((l) => (\n <option key={l}>{l}</option>\n ))}\n </select>\n </div>\n {examplesInGroups.map((group) => (\n <ExampleList\n key={group.title}\n name={group.title}\n list={group.list}\n selected={selected}\n onSelectStory={(item, htmlId) => {\n document.getElementById(htmlId)?.scrollIntoView({\n block: \"center\",\n });\n updateSelected(item);\n }}\n />\n ))}\n <hr />\n </SideBar>\n {/* <ResizeHandle\n onUpdate={(x) => {\n setSidebarWidth((s) => s + x);\n }}\n /> */}\n <Content>\n <ErrorReport selected={selected}>\n <PreventLinkNavigation>\n <GroupWrapper>\n <ExampleContent />\n </GroupWrapper>\n </PreventLinkNavigation>\n </ErrorReport>\n </Content>\n </Page>\n );\n}\n\nexport interface Options {\n id?: string;\n strings?: any;\n getWrapperForGroup?: (name: string) => FunctionComponent;\n}\n\nexport function renderStories(\n groups: Record<string, ComponentOrFolder>,\n options: Options = {},\n): void {\n const examples = parseGroupImport(groups);\n\n try {\n const cid = options.id ?? \"container\";\n const container = document.getElementById(cid);\n if (!container) {\n throw Error(\n `container with id ${cid} not found, can't mount page contents`,\n );\n }\n render(\n <Application\n examplesInGroups={examples}\n getWrapperForGroup={options.getWrapperForGroup ?? (() => Fragment)}\n langs={options.strings ?? { en: {} }}\n />,\n container,\n );\n } catch (e) {\n console.error(\"got error\", e);\n if (e instanceof Error) {\n document.body.innerText = `Fatal error: \"${e.message}\". Please report this bug at https://bugs.gnunet.org/.`;\n }\n }\n}\n\nfunction ResizeHandle({ onUpdate }: { onUpdate: (x: number) => void }): VNode {\n const [start, setStart] = useState<number | undefined>(undefined);\n return (\n <ResizeHandleDiv\n onMouseDown={(e: any) => {\n setStart(e.pageX);\n console.log(\"active\", e.pageX);\n return false;\n }}\n onMouseMove={(e: any) => {\n if (start !== undefined) {\n onUpdate(e.pageX - start);\n }\n return false;\n }}\n onMouseUp={() => {\n setStart(undefined);\n return false;\n }}\n />\n );\n}\n", "import { TranslationProvider } from \"@gnu-taler/web-util/browser\";\nimport { h, VNode } from \"preact\";\nimport { ExchangeAmlFrame } from \"./Dashboard.js\";\nimport \"./scss/main.css\";\nimport { ExchangeApiProvider } from \"./context/config.js\";\nimport { getInitialBackendBaseURL } from \"./hooks/useBackend.js\";\nimport { HashPathProvider, Router } from \"./route.js\";\nimport { Pages } from \"./pages.js\";\n\nconst pageList = Object.values(Pages);\n\n\nexport function App(): VNode {\n const baseUrl = getInitialBackendBaseURL();\n return (\n <TranslationProvider source={{}}>\n <ExchangeApiProvider baseUrl={baseUrl} frameOnError={ExchangeAmlFrame}>\n <HashPathProvider>\n <ExchangeAmlFrame>\n <Router\n pageList={pageList}\n onNotFound={() => {\n window.location.href = Pages.cases.url\n return <div>not found</div>;\n }}\n />\n </ExchangeAmlFrame>\n </HashPathProvider>\n </ExchangeApiProvider>\n </TranslationProvider>\n );\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { Footer, GlobalNotificationsBanner, Header, notifyError, notifyException, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { ComponentChildren, Fragment, VNode, h } from \"preact\";\nimport { useEffect, useErrorBoundary } from \"preact/hooks\";\nimport { useOfficer } from \"./hooks/useOfficer.js\";\nimport { getAllBooleanSettings, getLabelForSetting, useSettings } from \"./hooks/useSettings.js\";\nimport { Pages } from \"./pages.js\";\nimport { PageEntry, useChangeLocation } from \"./route.js\";\nimport { uiSettings } from \"./settings.js\";\n\nfunction classNames(...classes: string[]) {\n return classes.filter(Boolean).join(\" \");\n}\n\n/**\n * mapping route to view\n * not found (error page)\n * nested, index element, relative routes\n * link interception\n * form POST interception, call action\n * fromData => Object.fromEntries\n * segments in the URL\n * navigationState: idle, submitting, loading\n * form GET interception: does a navigateTo\n * form GET Sync:\n * 1.- back after submit: useEffect to sync URL to form\n * 2.- refresh after submit: input default value\n * useSubmit for form submission onChange, history replace\n *\n * post form without redirect\n *\n *\n * @param param0\n * @returns\n */\n\nconst GIT_HASH = typeof __GIT_HASH__ !== \"undefined\" ? __GIT_HASH__ : undefined;\nconst VERSION = typeof __VERSION__ !== \"undefined\" ? __VERSION__ : undefined;\n\nconst versionText = VERSION\n ? GIT_HASH\n ? `v${VERSION} (${GIT_HASH.substring(0, 8)})`\n : VERSION\n : \"\";\n\n/**\n * TO BE FIXED:\n *\n * 1.- when the form change to other form and both form share the same structure\n * the same input component may be rendered in the same place,\n * since input are uncontrolled the are not re-rendered and since they are\n * uncontrolled it will keep the value of the previous form.\n * One solutions could be to remove the form when unloading and when the new\n * form load it will start without previous vdom, preventing the cache\n * to create this behavior.\n * Other solutions could be using IDs in the fields that are constructed\n * with the ID of the form, so two fields of different form will need to re-render\n * cleaning up the state of the previous form.\n *\n * 2.- currently the design prop and the behavior prop of the flexible form\n * are two side of the same coin. From the design point of view, it is important\n * to design the form in a list-of-field manner and there may be additional\n * content that is not directly mapped to the form structure (object)\n * So maybe we want to change the current shape so the computation of the state\n * of the form is in a field level, but this computation required the field value and\n * the whole form values and state (since one field may be disabled/hidden) because\n * of the value of other field.\n *\n * 3.- given the previous requirement, maybe the name of the field of the form could be\n * a function (P: F -> V) where F is the form (or parent object) and V is the type of the\n * property. That will help with the typing of the forms props\n *\n * 4.- tooltip are not placed correctly: the arrow should point the question mark\n * and the text area should be bigger\n *\n */\n\n/**\n * check this fields\n * \n * Signature of Contracting partner, 902_9e\n * Currency and amount of deposited assets, 902_5e\n * Signature on declaration of trust, 902.13e\n * also fundations\n * also life insurance\n * \n * no all state are handled by all the inputs\n * all the input implementation should respect\n * ui props and state \n */\n\nexport function ExchangeAmlFrame({\n children,\n}: {\n children?: ComponentChildren;\n}): VNode {\n const { i18n } = useTranslationContext();\n\n const [error, resetError] = useErrorBoundary();\n\n useEffect(() => {\n if (error) {\n if (error instanceof Error) {\n notifyException(i18n.str`Internal error, please report.`, error)\n } else {\n notifyError(i18n.str`Internal error, please report.`, String(error) as TranslatedString)\n }\n resetError()\n }\n }, [error])\n\n const officer = useOfficer();\n const [settings, updateSettings] = useSettings();\n\n return (<div class=\"min-h-full flex flex-col m-0 bg-slate-200\" style=\"min-height: 100vh;\">\n <div class=\"bg-indigo-600 pb-32\">\n <Header\n title=\"Exchange\"\n iconLinkURL={uiSettings.backendBaseURL ?? \"#\"}\n onLogout={officer.state !== \"ready\" ? undefined : () => {\n officer.lock()\n }}\n sites={[]}\n supportedLangs={[\"en\", \"es\", \"de\"]}\n >\n <li>\n <div class=\"text-xs font-semibold leading-6 text-gray-400\">\n <i18n.Translate>Preferences</i18n.Translate>\n </div>\n <ul role=\"list\" class=\"space-y-1\">\n {getAllBooleanSettings().map(set => {\n const isOn: boolean = !!settings[set]\n return <li class=\"mt-2 pl-2\">\n <div class=\"flex items-center justify-between\">\n <span class=\"flex flex-grow flex-col\">\n <span class=\"text-sm text-black font-medium leading-6 \" id=\"availability-label\">\n {getLabelForSetting(set, i18n)}\n </span>\n </span>\n <button type=\"button\" data-enabled={isOn} class=\"bg-indigo-600 data-[enabled=false]:bg-gray-200 relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-600 focus:ring-offset-2\" role=\"switch\" aria-checked=\"false\" aria-labelledby=\"availability-label\" aria-describedby=\"availability-description\"\n\n onClick={() => { updateSettings(set, !isOn); }}>\n <span aria-hidden=\"true\" data-enabled={isOn} class=\"translate-x-5 data-[enabled=false]:translate-x-0 pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out\"></span>\n </button>\n </div>\n </li>\n })}\n </ul>\n </li>\n </Header>\n </div>\n\n <GlobalNotificationsBanner />\n\n <div class=\"-mt-32 flex grow \">\n {officer.state !== \"ready\" ? undefined :\n <Navigation />\n }\n <div class=\"flex mx-auto my-4\">\n <main class=\"rounded-lg bg-white px-5 py-6 shadow\">\n {children}\n </main>\n </div>\n\n </div>\n\n <Footer\n testingUrlKey=\"exchange-base-url\"\n GIT_HASH={GIT_HASH}\n VERSION={VERSION}\n />\n </div>\n );\n}\n\nfunction Navigation(): VNode {\n const { i18n } = useTranslationContext()\n const pageList: Array<PageEntry> = [\n Pages.officer,\n Pages.cases\n ]\n const location = useChangeLocation();\n return (\n <div class=\"hidden sm:block min-w-min bg-indigo-600 divide-y rounded-r-lg divide-cyan-800 overflow-y-auto overflow-x-clip\">\n\n <nav class=\"flex flex-1 flex-col mx-4 mt-4 mb-2\">\n <ul role=\"list\" class=\"flex flex-1 flex-col gap-y-7\">\n <li>\n <ul role=\"list\" class=\"-mx-2 space-y-1\">\n {pageList.map(p => {\n\n return <li>\n <a href={p.url} data-selected={location == p.url}\n class=\"data-[selected=true]:bg-indigo-700 pr-4 data-[selected=true]:text-white text-indigo-200 hover:text-white hover:bg-indigo-700 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\">\n {p.Icon && <p.Icon />}\n <span class=\"hidden md:inline\">\n {p.name}\n </span>\n </a>\n </li>\n\n })}\n {/* <li>\n <a href=\"#\" class=\"text-indigo-200 hover:text-white hover:bg-indigo-700 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold\">\n\n <i18n.Translate>Officer</i18n.Translate>\n </a>\n </li> */}\n </ul>\n </li>\n\n {/* <li class=\"mt-auto \">\n <a href=\"#\" class=\"group -mx-2 flex gap-x-3 rounded-md p-2 text-sm font-semibold leading-6 text-indigo-200 hover:bg-indigo-700 hover:text-white\">\n <svg class=\"h-6 w-6 shrink-0 text-indigo-200 group-hover:text-white\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.087.22-.128.332-.183.582-.495.644-.869l.214-1.281z\" />\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\" />\n </svg>\n Settings\n </a>\n </li> */}\n\n </ul>\n </nav>\n </div>\n )\n\n}\n\n\n", "import {\n AbsoluteTime,\n Codec,\n LockedAccount,\n OfficerAccount,\n OfficerId,\n SigningKey,\n buildCodecForObject,\n codecForAbsoluteTime,\n codecForString,\n codecOptional,\n createNewOfficerAccount,\n decodeCrock,\n encodeCrock,\n unlockOfficerAccount,\n} from \"@gnu-taler/taler-util\";\nimport {\n buildStorageKey,\n useLocalStorage,\n useMemoryStorage,\n} from \"@gnu-taler/web-util/browser\";\nimport { useMemo } from \"preact/hooks\";\nimport { useExchangeApiContext, useMaybeExchangeApiContext } from \"../context/config.js\";\n\nexport interface Officer {\n account: LockedAccount;\n when: AbsoluteTime;\n}\n\nconst codecForLockedAccount = codecForString() as Codec<LockedAccount>;\n\ntype OfficerAccountString = {\n id: string,\n strKey: string;\n}\n\nexport const codecForOfficerAccount = (): Codec<OfficerAccountString> =>\n buildCodecForObject<OfficerAccountString>()\n .property(\"id\", codecForString()) // FIXME\n .property(\"strKey\", codecForString()) // FIXME\n .build(\"OfficerAccount\");\n\nexport const codecForOfficer = (): Codec<Officer> =>\n buildCodecForObject<Officer>()\n .property(\"account\", codecForLockedAccount) // FIXME\n .property(\"when\", codecForAbsoluteTime) // FIXME\n .build(\"Officer\");\n\nexport type OfficerState = OfficerNotReady | OfficerReady;\nexport type OfficerNotReady = OfficerNotFound | OfficerLocked;\ninterface OfficerNotFound {\n state: \"not-found\";\n create: (password: string) => Promise<void>;\n}\ninterface OfficerLocked {\n state: \"locked\";\n forget: () => void;\n tryUnlock: (password: string) => Promise<void>;\n}\ninterface OfficerReady {\n state: \"ready\";\n account: OfficerAccount;\n forget: () => void;\n lock: () => void;\n}\n\nconst OFFICER_KEY = buildStorageKey(\"officer\", codecForOfficer());\nconst DEV_ACCOUNT_KEY = buildStorageKey(\"account-dev\", codecForOfficerAccount());\nconst ACCOUNT_KEY = \"account\";\n\nexport function useOfficer(): OfficerState {\n const exchangeContext = useMaybeExchangeApiContext();\n // dev account, is save when reloaded.\n const accountStorage = useLocalStorage(DEV_ACCOUNT_KEY);\n const account = useMemo(() => {\n if (!accountStorage.value) return undefined\n return {\n id: accountStorage.value.id as OfficerId,\n signingKey: decodeCrock(accountStorage.value.strKey) as SigningKey\n }\n }, [accountStorage.value])\n\n\n // const accountStorage = useMemoryStorage<OfficerAccount>(ACCOUNT_KEY);\n // const account = accountStorage.value;\n\n const officerStorage = useLocalStorage(OFFICER_KEY);\n const officer = officerStorage.value;\n\n if (officer === undefined) {\n return {\n state: \"not-found\",\n create: async (pwd: string) => {\n if (!exchangeContext) return;\n const req = await fetch(new URL(\"seed\", exchangeContext.api.baseUrl).href)\n const b = await req.blob()\n const ar = await b.arrayBuffer()\n const uintar = new Uint8Array(ar)\n\n const { id, safe, signingKey } = await createNewOfficerAccount(pwd, uintar);\n officerStorage.update({\n account: safe,\n when: AbsoluteTime.now(),\n });\n\n // accountStorage.update({ id, signingKey });\n const strKey = encodeCrock(signingKey)\n accountStorage.update({ id, strKey })\n },\n };\n }\n\n if (account === undefined) {\n return {\n state: \"locked\",\n forget: () => {\n officerStorage.reset();\n },\n tryUnlock: async (pwd: string) => {\n const ac = await unlockOfficerAccount(officer.account, pwd);\n // accountStorage.update(ac);\n accountStorage.update({ id: ac.id, strKey: encodeCrock(ac.signingKey) })\n },\n };\n }\n\n return {\n state: \"ready\",\n account,\n lock: () => {\n accountStorage.reset();\n },\n forget: () => {\n officerStorage.reset();\n accountStorage.reset();\n },\n };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { TalerExchangeApi, TalerExchangeHttpClient, TalerError } from \"@gnu-taler/taler-util\";\nimport { BrowserHttpLib, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { ComponentChildren, createContext, FunctionComponent, h, VNode } from \"preact\";\nimport { useContext, useEffect, useState } from \"preact/hooks\";\nimport { ErrorLoading } from \"@gnu-taler/web-util/browser\";\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nexport type Type = {\n url: URL,\n config: TalerExchangeApi.ExchangeVersionResponse,\n api: TalerExchangeHttpClient,\n};\n\nconst Context = createContext<Type>(undefined as any);\n\nexport const useExchangeApiContext = (): Type => useContext(Context);\nexport const useMaybeExchangeApiContext = (): Type | undefined => useContext(Context);\n\nexport function ExchangeApiContextTesting({ config, children }: { config: TalerExchangeApi.ExchangeVersionResponse, children?: ComponentChildren; }): VNode {\n return h(Context.Provider, {\n value: { url: new URL(\"http://testing\"), config, api: null as any },\n children\n }\n )\n}\n\nexport type ConfigResult = undefined\n | { type: \"ok\", config: TalerExchangeApi.ExchangeVersionResponse }\n | { type: \"incompatible\", result: TalerExchangeApi.ExchangeVersionResponse, supported: string }\n | { type: \"error\", error: TalerError }\n\nexport const ExchangeApiProvider = ({\n baseUrl,\n children,\n frameOnError,\n}: {\n baseUrl: string,\n children: ComponentChildren;\n frameOnError: FunctionComponent<{ children: ComponentChildren }>,\n}): VNode => {\n const [checked, setChecked] = useState<ConfigResult>()\n const { i18n } = useTranslationContext();\n const url = new URL(baseUrl)\n const api = new TalerExchangeHttpClient(url.href, new BrowserHttpLib())\n useEffect(() => {\n api.getConfig()\n .then((resp) => {\n if (api.isCompatible(resp.body.version)) {\n setChecked({ type: \"ok\", config: resp.body });\n } else {\n setChecked({ type: \"incompatible\", result: resp.body, supported: api.PROTOCOL_VERSION })\n }\n })\n .catch((error: unknown) => {\n if (error instanceof TalerError) {\n setChecked({ type: \"error\", error });\n }\n });\n }, []);\n\n if (checked === undefined) {\n return h(frameOnError, { children: h(\"div\", {}, \"loading...\") })\n }\n if (checked.type === \"error\") {\n return h(frameOnError, { children: h(ErrorLoading, { error: checked.error, showDetail: true }) })\n }\n if (checked.type === \"incompatible\") {\n return h(frameOnError, { children: h(\"div\", {}, i18n.str`the bank backend is not supported. supported version \"${checked.supported}\", server version \"${checked.result.version}\"`) })\n }\n const value: Type = {\n url, config: checked.config, api\n }\n return h(Context.Provider, {\n value,\n children,\n });\n};\n\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport {\n Codec,\n TranslatedString,\n buildCodecForObject,\n codecForBoolean,\n codecForNumber,\n codecForString,\n codecOptional\n} from \"@gnu-taler/taler-util\";\nimport { buildStorageKey, useLocalStorage, useTranslationContext } from \"@gnu-taler/web-util/browser\";\n\ninterface Settings {\n allowInsecurePassword: boolean;\n keepSessionAfterReload: boolean;\n}\n\nexport function getAllBooleanSettings(): Array<keyof Settings> {\n return [\"allowInsecurePassword\", \"keepSessionAfterReload\"]\n}\n\nexport function getLabelForSetting(k: keyof Settings, i18n: ReturnType<typeof useTranslationContext>[\"i18n\"]): TranslatedString {\n switch (k) {\n case \"allowInsecurePassword\": return i18n.str`Allow Insecure password`\n case \"keepSessionAfterReload\": return i18n.str`Keep session after reload`\n }\n}\n\nexport const codecForSettings = (): Codec<Settings> =>\n buildCodecForObject<Settings>()\n .property(\"allowInsecurePassword\", (codecForBoolean()))\n .property(\"keepSessionAfterReload\", (codecForBoolean()))\n .build(\"Settings\");\n\nconst defaultSettings: Settings = {\n allowInsecurePassword: false,\n keepSessionAfterReload: false,\n};\n\nconst EXCHANGE_SETTINGS_KEY = buildStorageKey(\n \"exchange-settings\",\n codecForSettings(),\n);\n\nexport function useSettings(): [\n Readonly<Settings>,\n <T extends keyof Settings>(key: T, value: Settings[T]) => void,\n] {\n const { value, update } = useLocalStorage(\n EXCHANGE_SETTINGS_KEY,\n defaultSettings,\n );\n\n function updateField<T extends keyof Settings>(k: T, v: Settings[T]) {\n const newValue = { ...value, [k]: v };\n update(newValue);\n }\n return [value, updateField];\n}\n", "export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}", "export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}", "var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}", "/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}", "function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}", "import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}", "import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}", "import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;", "import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;", "var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;", "var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}", "var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;", "export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}", "import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;", "var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;", "export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}", "import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;", "export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}", "export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}", "import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;", "import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;", "import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;", "import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}", "import {\n AbsoluteTime,\n AmountJson,\n Amounts,\n TalerError,\n TranslatedString,\n assertUnreachable\n} from \"@gnu-taler/taler-util\";\nimport { DefaultForm, ErrorLoading, Loading, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { useCaseDetails } from \"../hooks/useCaseDetails.js\";\nimport { Pages } from \"../pages.js\";\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { FormMetadata, Justification, allForms, parseJustification } from \"./AntiMoneyLaunderingForm.js\";\nimport { ShowConsolidated } from \"./ShowConsolidated.js\";\n\nexport type AmlEvent = AmlFormEvent | AmlFormEventError | KycCollectionEvent | KycExpirationEvent;\ntype AmlFormEvent = {\n type: \"aml-form\";\n when: AbsoluteTime;\n title: TranslatedString;\n justification: Justification;\n metadata: FormMetadata<any>;\n state: AmlExchangeBackend.AmlState;\n threshold: AmountJson;\n};\ntype AmlFormEventError = {\n type: \"aml-form-error\";\n when: AbsoluteTime;\n title: TranslatedString;\n justification: undefined,\n metadata: undefined,\n state: AmlExchangeBackend.AmlState;\n threshold: AmountJson;\n};\ntype KycCollectionEvent = {\n type: \"kyc-collection\";\n when: AbsoluteTime;\n title: TranslatedString;\n values: object;\n provider: string;\n};\ntype KycExpirationEvent = {\n type: \"kyc-expiration\";\n when: AbsoluteTime;\n title: TranslatedString;\n fields: string[];\n};\n\ntype WithTime = { when: AbsoluteTime };\n\nfunction selectSooner(a: WithTime, b: WithTime) {\n return AbsoluteTime.cmp(a.when, b.when);\n}\n\nfunction titleForJustification(op: ReturnType<typeof parseJustification>): TranslatedString {\n if (op.type === \"ok\") {\n return op.body.justification.label as TranslatedString;\n }\n switch (op.case) {\n case \"not-json\": return \"error: the justification is not a form\" as TranslatedString\n case \"id-not-found\": return \"error: justification form's id not found\" as TranslatedString\n case \"version-not-found\": return \"error: justification form's version not found\" as TranslatedString\n case \"form-not-found\": return `error: justification form not found` as TranslatedString\n }\n assertUnreachable(op.case)\n}\n\nexport function getEventsFromAmlHistory(\n aml: AmlExchangeBackend.AmlDecisionDetail[],\n kyc: AmlExchangeBackend.KycDetail[],\n): AmlEvent[] {\n const ae: AmlEvent[] = aml.map((a) => {\n const just = parseJustification(a.justification, allForms)\n return {\n type: just.type === \"ok\" ? \"aml-form\" : \"aml-form-error\",\n state: a.new_state,\n threshold: Amounts.parseOrThrow(a.new_threshold),\n title: titleForJustification(just),\n metadata: just.type === \"ok\" ? just.body.metadata : undefined,\n justification: just.type === \"ok\" ? just.body.justification : undefined,\n when: {\n t_ms:\n a.decision_time.t_s === \"never\"\n ? \"never\"\n : a.decision_time.t_s * 1000,\n },\n } as AmlEvent;\n });\n const ke = kyc.reduce((prev, k) => {\n prev.push({\n type: \"kyc-collection\",\n title: \"collection\" as TranslatedString,\n when: AbsoluteTime.fromProtocolTimestamp(k.collection_time),\n values: !k.attributes ? {} : k.attributes,\n provider: k.provider_section,\n });\n prev.push({\n type: \"kyc-expiration\",\n title: \"expiration\" as TranslatedString,\n when: AbsoluteTime.fromProtocolTimestamp(k.expiration_time),\n fields: !k.attributes ? [] : Object.keys(k.attributes),\n });\n return prev;\n }, [] as AmlEvent[]);\n return ae.concat(ke).sort(selectSooner);\n}\n\nexport function CaseDetails({ account }: { account: string }) {\n const [selected, setSelected] = useState<AbsoluteTime>(AbsoluteTime.now());\n const [showForm, setShowForm] = useState<{ justification: Justification, metadata: FormMetadata<any> }>()\n\n const { i18n } = useTranslationContext();\n const details = useCaseDetails(account)\n if (!details) {\n return <Loading />\n }\n if (details instanceof TalerError) {\n return <ErrorLoading error={details} />\n }\n if (details.type === \"fail\") {\n switch (details.case) {\n case \"unauthorized\":\n case \"officer-not-found\":\n case \"officer-disabled\": return <div />\n default: assertUnreachable(details)\n }\n }\n const { aml_history, kyc_attributes } = details.body\n\n const events = getEventsFromAmlHistory(aml_history, kyc_attributes);\n\n if (showForm !== undefined) {\n return <DefaultForm\n readOnly={true}\n initial={showForm.justification.value}\n form={showForm.metadata.impl(showForm.justification.value)}\n >\n <div class=\"mt-6 flex items-center justify-end gap-x-6\">\n <button\n class=\"text-sm font-semibold leading-6 text-gray-900\"\n onClick={() => {\n setShowForm(undefined)\n }}\n >\n <i18n.Translate>Cancel</i18n.Translate>\n </button>\n </div>\n\n </DefaultForm>\n }\n return (\n <div>\n <a\n href={Pages.newFormEntry.url({ account })}\n class=\"m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700\"\n >\n <i18n.Translate>\n New AML form\n </i18n.Translate>\n </a>\n\n <header class=\"flex items-center justify-between border-b border-white/5 px-4 py-4 sm:px-6 sm:py-6 lg:px-8\">\n <h1 class=\"text-base font-semibold leading-7 text-black\">\n <i18n.Translate>\n Case history for account <span title={account}>{account.substring(0, 16)}...</span>\n </i18n.Translate>\n </h1>\n </header>\n <ShowTimeline history={events} onSelect={(e) => {\n switch (e.type) {\n case \"aml-form\": {\n const { justification, metadata } = e\n setShowForm({ justification, metadata })\n break;\n }\n case \"kyc-collection\":\n case \"kyc-expiration\": {\n setSelected(e.when);\n break;\n }\n case \"aml-form-error\":\n }\n }} />\n {/* {selected && <ShowEventDetails event={selected} />} */}\n {selected && <ShowConsolidated history={events} until={selected} />}\n </div>\n );\n}\n\nfunction AmlStateBadge({ state }: { state: AmlExchangeBackend.AmlState }): VNode {\n switch (state) {\n case AmlExchangeBackend.AmlState.normal: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20\">\n Normal\n </span>\n );\n }\n case AmlExchangeBackend.AmlState.pending: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20\">\n Pending\n </span>\n );\n }\n case AmlExchangeBackend.AmlState.frozen: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20\">\n Frozen\n </span>\n );\n }\n }\n assertUnreachable(state)\n}\n\nfunction ShowTimeline({ history, onSelect }: { onSelect: (e: AmlEvent) => void, history: AmlEvent[] }): VNode {\n return <div class=\"flow-root\">\n <ul role=\"list\">\n {history.map((e, idx) => {\n const isLast = history.length - 1 === idx;\n return (\n <li\n data-ok={e.type !== \"aml-form-error\"}\n class=\"hover:bg-gray-200 p-2 rounded data-[ok=true]:cursor-pointer\"\n onClick={() => {\n onSelect(e);\n }}\n >\n <div class=\"relative pb-6\">\n {!isLast ? (\n <span\n class=\"absolute left-4 top-4 -ml-px h-full w-1 bg-gray-200\"\n aria-hidden=\"true\"\n ></span>\n ) : undefined}\n <div class=\"relative flex space-x-3\">\n {(() => {\n switch (e.type) {\n case \"aml-form-error\":\n case \"aml-form\": {\n return <div>\n <AmlStateBadge state={e.state} />\n <span class=\"inline-flex items-center px-2 py-1 text-xs font-medium text-gray-700 \">\n {e.threshold.currency}{\" \"}\n {Amounts.stringifyValue(e.threshold)}\n </span>\n </div>\n }\n case \"kyc-collection\": {\n return (\n // <ArrowDownCircleIcon class=\"h-8 w-8 text-green-700\" />\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75l3 3m0 0l3-3m-3 3v-7.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n );\n }\n case \"kyc-expiration\": {\n // return <ClockIcon class=\"h-8 w-8 text-gray-700\" />;\n return <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n\n }\n }\n assertUnreachable(e)\n })()}\n <div class=\"flex min-w-0 flex-1 justify-between space-x-4 pt-1.5\">\n {e.type === \"aml-form\" ?\n <span\n // href={Pages.newFormEntry.url({ account })}\n class=\"block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700\"\n >\n {e.title}\n </span>\n :\n <p class=\"text-sm text-gray-900\">{e.title}</p>\n }\n <div class=\"whitespace-nowrap text-right text-sm text-gray-500\">\n {e.when.t_ms === \"never\" ? (\n \"never\"\n ) : (\n <time dateTime={format(e.when.t_ms, \"dd MMM yyyy\")}>\n {format(e.when.t_ms, \"dd MMM yyyy\")}\n </time>\n )}\n </div>\n </div>\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n\n}\n\nfunction ShowEventDetails({ event }: { event: AmlEvent }): VNode {\n return <div>type {event.type}</div>;\n}\n\n\n", "import { useRef, useMemo, useCallback, useDebugValue } from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\nimport { OBJECT, SWRConfig as SWRConfig$1, defaultConfig, withArgs, SWRGlobalState, serialize, createCacheHelper, isUndefined, getTimestamp, UNDEFINED, isFunction, internalMutate, useIsomorphicLayoutEffect, subscribeCallback, IS_SERVER, rAF, IS_REACT_LEGACY, mergeObjects, revalidateEvents } from 'swr/_internal';\nexport { mutate, preload, useSWRConfig } from 'swr/_internal';\n\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache , compare , suspense , fallbackData , revalidateOnMount , revalidateIfStale , refreshInterval , refreshWhenHidden , refreshWhenOffline , keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH] = SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR `data` state, `keyInfo` holds extra\n // states such as `error` and `isValidating` inside,\n // all of them are derived from `_key`.\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n const [key, fnArg] = serialize(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = useRef(false);\n // Refs to keep the key and config.\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = createCacheHelper(cache, key);\n const stateDependencies = useRef({}).current;\n const fallback = isUndefined(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n let equal = true;\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(current[t], prev[t])) {\n if (isUndefined(prev[t])) {\n if (!compare(current[t], returnedData)) {\n equal = false;\n }\n } else {\n equal = false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n equal = false;\n }\n }\n }\n return equal;\n };\n const getSnapshot = useMemo(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!isUndefined(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = mergeObjects(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = getSelectedCache(getCache());\n const memorizedInitialSnapshot = getSelectedCache(getInitialCache());\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n return isEqual(newSnapshot, memorizedSnapshot) ? memorizedSnapshot : memorizedSnapshot = newSnapshot;\n },\n ()=>memorizedInitialSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = useSyncExternalStore(useCallback((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = isUndefined(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = useRef(data);\n const returnedData = keepPreviousData ? isUndefined(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !isUndefined(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return isUndefined(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return isUndefined(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = isUndefined(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = isUndefined(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = useCallback(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if (isUndefined(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && isUndefined(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n getTimestamp()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || isFunction(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, revalidate, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const boundMutate = useCallback(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return internalMutate(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n useIsomorphicLayoutEffect(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!isUndefined(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type)=>{\n if (type == revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n }\n return;\n };\n const unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation.\n if (shouldDoInitialRevalidation) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n useIsomorphicLayoutEffect(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = isFunction(refreshInterval) ? refreshInterval(data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n useDebugValue(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!IS_REACT_LEGACY && IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n throw isUndefined(error) ? revalidate(WITH_DEDUPE) : error;\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nconst SWRConfig = OBJECT.defineProperty(SWRConfig$1, 'defaultValue', {\n value: defaultConfig\n});\nconst unstable_serialize = (key)=>serialize(key)[0];\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error } = useSWR('/api/user', fetcher)\n * if (error) return <div>failed to load</div>\n * if (!data) return <div>loading...</div>\n * return <div>hello {data.name}!</div>\n * }\n * ```\n */ var useSWR = withArgs(useSWRHandler);\n\n// useSWR\n\nexport { SWRConfig, useSWR as default, unstable_serialize };\n", "import React, { useEffect, useLayoutEffect, createContext, useContext, useMemo, useState, createElement, useRef, useCallback } from 'react';\n\n// Global state used to deduplicate requests and store listeners\nconst SWRGlobalState = new WeakMap();\n\nconst EMPTY_CACHE = {};\nconst INITIAL_CACHE = {};\nconst noop = ()=>{};\n// Using noop() as the undefined value as undefined can be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nconst UNDEFINED = /*#__NOINLINE__*/ noop();\nconst OBJECT = Object;\nconst isUndefined = (v)=>v === UNDEFINED;\nconst isFunction = (v)=>typeof v == 'function';\nconst mergeObjects = (a, b)=>({\n ...a,\n ...b\n });\nconst STR_UNDEFINED = 'undefined';\n// NOTE: Use the function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nconst isWindowDefined = typeof window != STR_UNDEFINED;\nconst isDocumentDefined = typeof document != STR_UNDEFINED;\nconst hasRequestAnimationFrame = ()=>isWindowDefined && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\nconst createCacheHelper = (cache, key)=>{\n const state = SWRGlobalState.get(cache);\n return [\n // Getter\n ()=>cache.get(key) || EMPTY_CACHE,\n // Setter\n (info)=>{\n if (!isUndefined(key)) {\n const prev = cache.get(key);\n // Before writing to the store, we keep the value in the initial cache\n // if it's not there yet.\n if (!(key in INITIAL_CACHE)) {\n INITIAL_CACHE[key] = prev;\n }\n state[5](key, mergeObjects(prev, info), prev || EMPTY_CACHE);\n }\n },\n // Subscriber\n state[6],\n // Get server cache snapshot\n ()=>{\n if (!isUndefined(key)) {\n // If the cache was updated on the client, we return the stored initial value.\n if (key in INITIAL_CACHE) return INITIAL_CACHE[key];\n }\n // If we haven't done any client-side updates, we return the current value.\n return cache.get(key) || EMPTY_CACHE;\n }\n ];\n};\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nconst table = new WeakMap();\n// counter of the key\nlet counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsable.\nconst stableHash = (arg)=>{\n const type = typeof arg;\n const constructor = arg && arg.constructor;\n const isDate = constructor == Date;\n let result;\n let index;\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result) return result;\n // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n result = ++counter + '~';\n table.set(arg, result);\n if (constructor == Array) {\n // Array.\n result = '@';\n for(index = 0; index < arg.length; index++){\n result += stableHash(arg[index]) + ',';\n }\n table.set(arg, result);\n }\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n const keys = OBJECT.keys(arg).sort();\n while(!isUndefined(index = keys.pop())){\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n table.set(arg, result);\n }\n } else {\n result = isDate ? arg.toJSON() : type == 'symbol' ? arg.toString() : type == 'string' ? JSON.stringify(arg) : '' + arg;\n }\n return result;\n};\n\n/**\n * Due to the bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a workaround, we always assume it's online on the first load, and change\n * the status upon `online` or `offline` events.\n */ let online = true;\nconst isOnline = ()=>online;\n// For node and React Native, `add/removeEventListener` doesn't exist on window.\nconst [onWindowEvent, offWindowEvent] = isWindowDefined && window.addEventListener ? [\n window.addEventListener.bind(window),\n window.removeEventListener.bind(window)\n] : [\n noop,\n noop\n];\nconst isVisible = ()=>{\n const visibilityState = isDocumentDefined && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\nconst initFocus = (callback)=>{\n // focus revalidate\n if (isDocumentDefined) {\n document.addEventListener('visibilitychange', callback);\n }\n onWindowEvent('focus', callback);\n return ()=>{\n if (isDocumentDefined) {\n document.removeEventListener('visibilitychange', callback);\n }\n offWindowEvent('focus', callback);\n };\n};\nconst initReconnect = (callback)=>{\n // revalidate on reconnected\n const onOnline = ()=>{\n online = true;\n callback();\n };\n // nothing to revalidate, just update the status\n const onOffline = ()=>{\n online = false;\n };\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return ()=>{\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\nconst preset = {\n isOnline,\n isVisible\n};\nconst defaultConfigOptions = {\n initFocus,\n initReconnect\n};\n\nconst IS_REACT_LEGACY = !React.useId;\nconst IS_SERVER = !isWindowDefined || 'Deno' in window;\n// Polyfill requestAnimationFrame\nconst rAF = (f)=>hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nconst useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// This assignment is to extend the Navigator type to use effectiveType.\nconst navigatorConnection = typeof navigator !== 'undefined' && navigator.connection;\n// Adjust the config based on slow connection status (<= 70Kbps).\nconst slowConnection = !IS_SERVER && navigatorConnection && ([\n 'slow-2g',\n '2g'\n].includes(navigatorConnection.effectiveType) || navigatorConnection.saveData);\n\nconst serialize = (key)=>{\n if (isFunction(key)) {\n try {\n key = key();\n } catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n // Use the original key as the argument of fetcher. This can be a string or an\n // array of values.\n const args = key;\n // If key is not falsy, or not an empty array, hash it.\n key = typeof key == 'string' ? key : (Array.isArray(key) ? key.length : key) ? stableHash(key) : '';\n return [\n key,\n args\n ];\n};\n\n// Global timestamp.\nlet __timestamp = 0;\nconst getTimestamp = ()=>++__timestamp;\n\nconst FOCUS_EVENT = 0;\nconst RECONNECT_EVENT = 1;\nconst MUTATE_EVENT = 2;\n\nvar constants = {\n __proto__: null,\n FOCUS_EVENT: FOCUS_EVENT,\n RECONNECT_EVENT: RECONNECT_EVENT,\n MUTATE_EVENT: MUTATE_EVENT\n};\n\nasync function internalMutate(...args) {\n const [cache, _key, _data, _opts] = args;\n // When passing as a boolean, it's explicitly used to disable/enable\n // revalidation.\n const options = mergeObjects({\n populateCache: true,\n throwOnError: true\n }, typeof _opts === 'boolean' ? {\n revalidate: _opts\n } : _opts || {});\n let populateCache = options.populateCache;\n const rollbackOnErrorOption = options.rollbackOnError;\n let optimisticData = options.optimisticData;\n const revalidate = options.revalidate !== false;\n const rollbackOnError = (error)=>{\n return typeof rollbackOnErrorOption === 'function' ? rollbackOnErrorOption(error) : rollbackOnErrorOption !== false;\n };\n const throwOnError = options.throwOnError;\n // If the second argument is a key filter, return the mutation results for all\n // filtered keys.\n if (isFunction(_key)) {\n const keyFilter = _key;\n const matchedKeys = [];\n const it = cache.keys();\n for(let keyIt = it.next(); !keyIt.done; keyIt = it.next()){\n const key = keyIt.value;\n if (// Skip the special useSWRInfinite keys.\n !key.startsWith('$inf$') && keyFilter(cache.get(key)._k)) {\n matchedKeys.push(key);\n }\n }\n return Promise.all(matchedKeys.map(mutateByKey));\n }\n return mutateByKey(_key);\n async function mutateByKey(_k) {\n // Serialize key\n const [key] = serialize(_k);\n if (!key) return;\n const [get, set] = createCacheHelper(cache, key);\n const [EVENT_REVALIDATORS, MUTATION, FETCH] = SWRGlobalState.get(cache);\n const revalidators = EVENT_REVALIDATORS[key];\n const startRevalidate = ()=>{\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(()=>get().data);\n }\n }\n return get().data;\n };\n // If there is no new data provided, revalidate the key with current state.\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return startRevalidate();\n }\n let data = _data;\n let error;\n // Update global timestamps.\n const beforeMutationTs = getTimestamp();\n MUTATION[key] = [\n beforeMutationTs,\n 0\n ];\n const hasOptimisticData = !isUndefined(optimisticData);\n const state = get();\n // `displayedData` is the current value on screen. It could be the optimistic value\n // that is going to be overridden by a `committedData`, or get reverted back.\n // `committedData` is the validated value that comes from a fetch or mutation.\n const displayedData = state.data;\n const currentData = state._c;\n const committedData = isUndefined(currentData) ? displayedData : currentData;\n // Do optimistic data update.\n if (hasOptimisticData) {\n optimisticData = isFunction(optimisticData) ? optimisticData(committedData) : optimisticData;\n // When we set optimistic data, backup the current committedData data in `_c`.\n set({\n data: optimisticData,\n _c: committedData\n });\n }\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(committedData);\n } catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n // `data` is a promise/thenable, resolve the final data first.\n if (data && isFunction(data.then)) {\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = await data.catch((err)=>{\n error = err;\n });\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error) throw error;\n return data;\n } else if (error && hasOptimisticData && rollbackOnError(error)) {\n // Rollback. Always populate the cache in this case but without\n // transforming the data.\n populateCache = true;\n data = committedData;\n // Reset data to be the latest committed data, and clear the `_c` value.\n set({\n data,\n _c: UNDEFINED\n });\n }\n }\n // If we should write back the cache after request.\n if (populateCache) {\n if (!error) {\n // Transform the result into data.\n if (isFunction(populateCache)) {\n data = populateCache(data, committedData);\n }\n // Only update cached data if there's no error. Data can be `undefined` here.\n set({\n data,\n _c: UNDEFINED\n });\n }\n }\n // Reset the timestamp to mark the mutation has ended.\n MUTATION[key][1] = getTimestamp();\n // Update existing SWR Hooks' internal states:\n const res = await startRevalidate();\n // The mutation and revalidation are ended, we can clear it since the data is\n // not an optimistic value anymore.\n set({\n _c: UNDEFINED\n });\n // Throw error or return data\n if (error) {\n if (throwOnError) throw error;\n return;\n }\n return populateCache ? res : data;\n }\n}\n\nconst revalidateAllKeys = (revalidators, type)=>{\n for(const key in revalidators){\n if (revalidators[key][0]) revalidators[key][0](type);\n }\n};\nconst initCache = (provider, options)=>{\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that is bound to\n // the cache.\n // The provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n const opts = mergeObjects(defaultConfigOptions, options);\n // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n const EVENT_REVALIDATORS = {};\n const mutate = internalMutate.bind(UNDEFINED, provider);\n let unmount = noop;\n const subscriptions = {};\n const subscribe = (key, callback)=>{\n const subs = subscriptions[key] || [];\n subscriptions[key] = subs;\n subs.push(callback);\n return ()=>subs.splice(subs.indexOf(callback), 1);\n };\n const setter = (key, value, prev)=>{\n provider.set(key, value);\n const subs = subscriptions[key];\n if (subs) {\n for(let i = subs.length; i--;){\n subs[i](value, prev);\n }\n }\n };\n const initProvider = ()=>{\n if (!SWRGlobalState.has(provider)) {\n // Update the state if it's new, or if the provider has been extended.\n SWRGlobalState.set(provider, [\n EVENT_REVALIDATORS,\n {},\n {},\n {},\n mutate,\n setter,\n subscribe\n ]);\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n const releaseFocus = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n const releaseReconnect = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n unmount = ()=>{\n releaseFocus && releaseFocus();\n releaseReconnect && releaseReconnect();\n // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise, when re-mounting we\n // will not re-register those event listeners.\n SWRGlobalState.delete(provider);\n };\n }\n }\n };\n initProvider();\n // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n return [\n provider,\n mutate,\n initProvider,\n unmount\n ];\n }\n return [\n provider,\n SWRGlobalState.get(provider)[4]\n ];\n};\n\n// error retry\nconst onErrorRetry = (_, __, config, revalidate, opts)=>{\n const maxRetryCount = config.errorRetryCount;\n const currentRetryCount = opts.retryCount;\n // Exponential backoff\n const timeout = ~~((Math.random() + 0.5) * (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n setTimeout(revalidate, timeout, opts);\n};\nconst compare = (currentData, newData)=>stableHash(currentData) == stableHash(newData);\n// Default cache provider\nconst [cache, mutate] = initCache(new Map());\n// Default config\nconst defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare,\n isPaused: ()=>false,\n cache,\n mutate,\n fallback: {}\n}, // use web preset by default\npreset);\n\nconst mergeConfigs = (a, b)=>{\n // Need to create a new object to avoid mutating the original here.\n const v = mergeObjects(a, b);\n // If two configs are provided, merge their `use` and `fallback` options.\n if (b) {\n const { use: u1 , fallback: f1 } = a;\n const { use: u2 , fallback: f2 } = b;\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n return v;\n};\n\nconst SWRConfigContext = createContext({});\nconst SWRConfig = (props)=>{\n const { value } = props;\n const parentConfig = useContext(SWRConfigContext);\n const isFunctionalConfig = isFunction(value);\n const config = useMemo(()=>isFunctionalConfig ? value(parentConfig) : value, [\n isFunctionalConfig,\n parentConfig,\n value\n ]);\n // Extend parent context values and middleware.\n const extendedConfig = useMemo(()=>isFunctionalConfig ? config : mergeConfigs(parentConfig, config), [\n isFunctionalConfig,\n parentConfig,\n config\n ]);\n // Should not use the inherited provider.\n const provider = config && config.provider;\n // Use a lazy initialized state to create the cache on first access.\n const [cacheContext] = useState(()=>provider ? initCache(provider(extendedConfig.cache || cache), config) : UNDEFINED);\n // Override the cache if a new provider is given.\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n }\n // Unsubscribe events.\n useIsomorphicLayoutEffect(()=>{\n if (cacheContext) {\n cacheContext[2] && cacheContext[2]();\n return cacheContext[3];\n }\n }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n\n// @ts-expect-error\nconst enableDevtools = isWindowDefined && window.__SWR_DEVTOOLS_USE__;\nconst use = enableDevtools ? window.__SWR_DEVTOOLS_USE__ : [];\nconst setupDevTools = ()=>{\n if (enableDevtools) {\n // @ts-expect-error\n window.__SWR_DEVTOOLS_REACT__ = React;\n }\n};\n\nconst normalize = (args)=>{\n return isFunction(args[1]) ? [\n args[0],\n args[1],\n args[2] || {}\n ] : [\n args[0],\n null,\n (args[1] === null ? args[2] : args[1]) || {}\n ];\n};\n\nconst useSWRConfig = ()=>{\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n};\n\nconst preload = (key_, fetcher)=>{\n const key = serialize(key_)[0];\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n // Prevent preload to be called multiple times before used.\n if (PRELOAD[key]) return PRELOAD[key];\n const req = fetcher(key_);\n PRELOAD[key] = req;\n return req;\n};\nconst middleware = (useSWRNext)=>(key_, fetcher_, config)=>{\n // fetcher might be a sync function, so this should not be an async function\n const fetcher = fetcher_ && ((...args)=>{\n const key = serialize(key_)[0];\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n const req = PRELOAD[key];\n if (req) {\n delete PRELOAD[key];\n return req;\n }\n return fetcher_(...args);\n });\n return useSWRNext(key_, fetcher, config);\n };\n\nconst BUILT_IN_MIDDLEWARE = use.concat(middleware);\n\n// It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\nconst withArgs = (hook)=>{\n return function useSWRArgs(...args) {\n // Get the default and inherited configuration.\n const fallbackConfig = useSWRConfig();\n // Normalize arguments.\n const [key, fn, _config] = normalize(args);\n // Merge configurations.\n const config = mergeConfigs(fallbackConfig, _config);\n // Apply middleware\n let next = hook;\n const { use } = config;\n const middleware = (use || []).concat(BUILT_IN_MIDDLEWARE);\n for(let i = middleware.length; i--;){\n next = middleware[i](next);\n }\n return next(key, fn || config.fetcher || null, config);\n };\n};\n\n/**\n * An implementation of state with dependency-tracking.\n */ const useStateWithDeps = (state)=>{\n const rerender = useState({})[1];\n const unmountedRef = useRef(false);\n const stateRef = useRef(state);\n // If a state property (data, error, or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n const stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */ const setState = useCallback((payload)=>{\n let shouldRerender = false;\n const currentState = stateRef.current;\n for(const _ in payload){\n const k = _;\n // If the property has changed, update the state and mark rerender as\n // needed.\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k];\n // If the property is accessed by the component, a rerender should be\n // triggered.\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n if (shouldRerender && !unmountedRef.current) {\n if (IS_REACT_LEGACY) {\n rerender({});\n } else {\n React.startTransition(()=>rerender({}));\n }\n }\n }, // config.suspense isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n useIsomorphicLayoutEffect(()=>{\n unmountedRef.current = false;\n return ()=>{\n unmountedRef.current = true;\n };\n });\n return [\n stateRef,\n stateDependenciesRef.current,\n setState\n ];\n};\n\n// Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\nconst subscribeCallback = (key, callbacks, callback)=>{\n const keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return ()=>{\n const index = keyedRevalidators.indexOf(callback);\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\n// Create a custom hook with a middleware\nconst withMiddleware = (useSWR, middleware)=>{\n return (...args)=>{\n const [key, fn, config] = normalize(args);\n const uses = (config.use || []).concat(middleware);\n return useSWR(key, fn, {\n ...config,\n use: uses\n });\n };\n};\n\nsetupDevTools();\n\nexport { IS_REACT_LEGACY, IS_SERVER, OBJECT, SWRConfig, SWRGlobalState, UNDEFINED, cache, compare, createCacheHelper, defaultConfig, defaultConfigOptions, getTimestamp, hasRequestAnimationFrame, initCache, internalMutate, isDocumentDefined, isFunction, isUndefined, isWindowDefined, mergeConfigs, mergeObjects, mutate, noop, normalize, preload, preset, rAF, constants as revalidateEvents, serialize, slowConnection, stableHash, subscribeCallback, useIsomorphicLayoutEffect, useSWRConfig, useStateWithDeps, withArgs, withMiddleware };\n", "\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport { AmountString, OfficerAccount, PaytoString, TalerExchangeApi, TalerExchangeResultByMethod, TalerHttpError } from \"@gnu-taler/taler-util\";\nimport _useSWR, { SWRHook } from \"swr\";\nimport { useExchangeApiContext } from \"../context/config.js\";\nimport { useOfficer } from \"./useOfficer.js\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useCaseDetails(paytoHash: string) {\n const officer = useOfficer();\n const session = officer.state === \"ready\" ? officer.account : undefined;\n\n const { api } = useExchangeApiContext();\n\n async function fetcher([officer, account]: [OfficerAccount, PaytoString]) {\n return await api.getDecisionDetails(officer, account)\n }\n\n const { data, error } = useSWR<TalerExchangeResultByMethod<\"getDecisionDetails\">, TalerHttpError>(\n !session ? undefined : [session, paytoHash], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n errorRetryCount: 0,\n errorRetryInterval: 1,\n shouldRetryOnError: false,\n keepPreviousData: true,\n });\n\n if (data) return data;\n if (error) return error;\n return undefined;\n}\n\nconst example1: TalerExchangeApi.AmlDecisionDetails = {\n aml_history: [\n {\n justification: \"Lack of documentation\",\n decider_pub: \"ASDASDASD\",\n decision_time: {\n t_s: Date.now() / 1000,\n },\n new_state: 2,\n new_threshold: \"USD:0\" as AmountString,\n },\n {\n justification: \"Doing a transfer of high amount\",\n decider_pub: \"ASDASDASD\",\n decision_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 6,\n },\n new_state: 1,\n new_threshold: \"USD:2000\" as AmountString,\n },\n {\n justification: \"Account is known to the system\",\n decider_pub: \"ASDASDASD\",\n decision_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 9,\n },\n new_state: 0,\n new_threshold: \"USD:100\" as AmountString,\n },\n ],\n kyc_attributes: [\n {\n collection_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 8,\n },\n expiration_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 4,\n },\n provider_section: \"asdasd\",\n attributes: {\n name: \"Sebastian\",\n },\n },\n {\n collection_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 5,\n },\n expiration_time: {\n t_s: Date.now() / 1000 - 60 * 60 * 24 * 30 * 2,\n },\n provider_section: \"asdasd\",\n attributes: {\n creditCard: \"12312312312\",\n },\n },\n ],\n};\n\n\n", "export namespace AmlExchangeBackend {\n // FIXME: placeholder\n export interface AmlError {\n code: number;\n hint: string;\n }\n export interface AmlDecisionDetails {\n // Array of AML decisions made for this account. Possibly\n // contains only the most recent decision if \"history\" was\n // not set to 'true'.\n aml_history: AmlDecisionDetail[];\n\n // Array of KYC attributes obtained for this account.\n kyc_attributes: KycDetail[];\n }\n\n type AmlOfficerPublicKeyP = string;\n\n export interface AmlDecisionDetail {\n // What was the justification given?\n justification: string;\n\n // What is the new AML state.\n new_state: Integer;\n\n // When was this decision made?\n decision_time: Timestamp;\n\n // What is the new AML decision threshold (in monthly transaction volume)?\n new_threshold: Amount;\n\n // Who made the decision?\n decider_pub: AmlOfficerPublicKeyP;\n }\n export interface KycDetail {\n // Name of the configuration section that specifies the provider\n // which was used to collect the KYC details\n provider_section: string;\n\n // The collected KYC data. NULL if the attribute data could not\n // be decrypted (internal error of the exchange, likely the\n // attribute key was changed).\n attributes?: Object;\n\n // Time when the KYC data was collected\n collection_time: Timestamp;\n\n // Time when the validity of the KYC data will expire\n expiration_time: Timestamp;\n }\n\n interface Timestamp {\n // Seconds since epoch, or the special\n // value \"never\" to represent an event that will\n // never happen.\n t_s: number | \"never\";\n }\n\n type PaytoHash = string;\n type Integer = number;\n type Amount = string;\n // EdDSA signatures are transmitted as 64-bytes base32\n // binary-encoded objects with just the R and S values (base32_ binary-only).\n type EddsaSignature = string;\n\n export interface AmlRecords {\n // Array of AML records matching the query.\n records: AmlRecord[];\n }\n\n interface AmlRecord {\n // Which payto-address is this record about.\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n\n // What is the current AML state.\n current_state: AmlState;\n\n // Monthly transaction threshold before a review will be triggered\n threshold: Amount;\n\n // RowID of the record.\n rowid: Integer;\n }\n\n export enum AmlState {\n normal = 0,\n pending = 1,\n frozen = 2,\n }\n\n \n export interface AmlDecision {\n\n // Human-readable justification for the decision.\n justification: string;\n \n // At what monthly transaction volume should the\n // decision be automatically reviewed?\n new_threshold: Amount;\n \n // Which payto-address is the decision about?\n // Identifies a GNU Taler wallet or an affected bank account.\n h_payto: PaytoHash;\n \n // What is the new AML state (e.g. frozen, unfrozen, etc.)\n // Numerical values are defined in AmlDecisionState.\n new_state: Integer;\n \n // Signature by the AML officer over a\n // TALER_MasterAmlOfficerStatusPS.\n // Must have purpose TALER_SIGNATURE_MASTER_AML_KEY.\n officer_sig: EddsaSignature;\n \n // When was the decision made?\n decision_time: Timestamp;\n \n // Optional argument to impose new KYC requirements\n // that the customer has to satisfy to unblock transactions.\n kyc_requirements?: string[];\n }\n \n\n}\n", "import { AbsoluteTime, AmountJson, Amounts, Codec, OperationResult, buildCodecForObject, codecForNumber, codecForString, codecOptional } from \"@gnu-taler/taler-util\";\nimport { h } from \"preact\";\nimport { v1 as form_902_11e_v1 } from \"../forms/902_11e.js\";\nimport { v1 as form_902_12e_v1 } from \"../forms/902_12e.js\";\nimport { v1 as form_902_13e_v1 } from \"../forms/902_13e.js\";\nimport { v1 as form_902_15e_v1 } from \"../forms/902_15e.js\";\nimport { v1 as form_902_1e_v1 } from \"../forms/902_1e.js\";\nimport { v1 as form_902_4e_v1 } from \"../forms/902_4e.js\";\nimport { v1 as form_902_5e_v1 } from \"../forms/902_5e.js\";\nimport { v1 as form_902_9e_v1 } from \"../forms/902_9e.js\";\nimport { v1 as simplest } from \"../forms/simplest.js\";\nimport { Pages } from \"../pages.js\";\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { useExchangeApiContext } from \"../context/config.js\";\nimport { DefaultForm, FlexibleForm, useTranslationContext } from \"@gnu-taler/web-util/browser\";\n\nexport function AntiMoneyLaunderingForm({ account, formId, onSubmit }: { account: string, formId: string, onSubmit: (justification: Justification, state: AmlExchangeBackend.AmlState, threshold: AmountJson) => Promise<void>; }) {\n const { i18n } = useTranslationContext()\n const theForm = allForms.find((v) => v.id === formId)\n if (!theForm) {\n return <div>form with id {formId} not found</div>\n }\n\n const { config } = useExchangeApiContext()\n\n const initial = {\n when: AbsoluteTime.now(),\n state: AmlExchangeBackend.AmlState.pending,\n threshold: Amounts.zeroOfCurrency(config.currency),\n };\n return (\n <DefaultForm\n initial={initial}\n form={theForm.impl(initial)}\n onUpdate={() => { }}\n onSubmit={(formValue) => {\n if (formValue.state === undefined || formValue.threshold === undefined) return;\n const st = formValue.state;\n const amount = formValue.threshold;\n\n const justification: Justification = {\n id: theForm.id,\n label: theForm.label,\n version: theForm.version,\n value: formValue\n }\n\n onSubmit(justification, st, amount);\n }}\n >\n <div class=\"mt-6 flex items-center justify-end gap-x-6\">\n <a\n href={Pages.account.url({ account })}\n class=\"text-sm font-semibold leading-6 text-gray-900\"\n >\n <i18n.Translate>Cancel</i18n.Translate>\n </a>\n <button\n type=\"submit\"\n class=\"rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n <i18n.Translate>Confirm</i18n.Translate>\n </button>\n </div>\n </DefaultForm>\n );\n}\n\nexport interface BaseForm {\n state: AmlExchangeBackend.AmlState;\n threshold: AmountJson;\n}\n\nconst DocumentDuplicateIcon = <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75\" />\n</svg>\n\n\nexport type FormMetadata<T extends BaseForm> = {\n label: string,\n id: string,\n version: number,\n icon: h.JSX.Element,\n impl: (current: BaseForm) => FlexibleForm<T>\n}\n\nexport type Justification<T = any> = {\n // form values\n value: T;\n} & Omit<Omit<FormMetadata<any>, \"icon\">, \"impl\">\n\nexport function stringifyJustification(j: Justification): string {\n return JSON.stringify(j)\n}\n\n\ntype SimpleFormMetadata = {\n version?: number,\n id?: string,\n}\n\nexport const codecForSimpleFormMetadata = (): Codec<SimpleFormMetadata> =>\n buildCodecForObject<SimpleFormMetadata>()\n .property(\"id\", codecOptional(codecForString()))\n .property(\"version\", codecOptional(codecForNumber()))\n .build(\"SimpleFormMetadata\");\n\ntype ParseJustificationFail =\n \"not-json\" |\n \"id-not-found\" |\n \"form-not-found\" |\n \"version-not-found\";\n\nexport function parseJustification(s: string, listOfAllKnownForms: FormMetadata<any>[]): OperationResult<{ justification: Justification, metadata: FormMetadata<any> }, ParseJustificationFail> {\n try {\n const justification = JSON.parse(s)\n const info = codecForSimpleFormMetadata().decode(justification)\n if (!info.id) {\n return {\n type: \"fail\",\n case: \"id-not-found\",\n detail: {} as any\n }\n }\n if (!info.version) {\n return {\n type: \"fail\",\n case: \"version-not-found\",\n detail: {} as any\n }\n }\n const found = listOfAllKnownForms.find((f) => {\n return f.id === info.id && f.version === info.version\n })\n if (!found) {\n return {\n type: \"fail\",\n case: \"form-not-found\",\n detail: {} as any\n }\n }\n return {\n type: \"ok\",\n body: {\n justification, metadata: found\n }\n }\n } catch (e) {\n return {\n type: \"fail\",\n case: \"not-json\",\n detail: {} as any\n }\n }\n\n}\n\nexport const allForms: Array<FormMetadata<BaseForm>> = [\n {\n label: \"Simple comment\",\n id: \"simple_comment\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: simplest,\n },\n {\n label: \"Identification form\",\n id: \"902.1e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_1e_v1,\n },\n {\n label: \"Operational legal entity or partnership\",\n id: \"902.11e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_11e_v1,\n },\n {\n label: \"Foundations\",\n id: \"902.12e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_12e_v1,\n },\n {\n label: \"Declaration for trusts\",\n id: \"902.13e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_13e_v1,\n },\n {\n label: \"Information on life insurance policies\",\n id: \"902.15e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_15e_v1,\n },\n {\n label: \"Declaration of beneficial owner\",\n id: \"902.9e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_9e_v1,\n },\n {\n label: \"Customer profile\",\n id: \"902.5e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_5e_v1,\n },\n {\n label: \"Risk profile\",\n id: \"902.4e\",\n version: 1,\n icon: DocumentDuplicateIcon,\n impl: form_902_4e_v1,\n },\n];\n", "import { AbsoluteTime, AmountJson, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { format } from \"date-fns\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { AmlEvent } from \"./CaseDetails.js\";\nimport { DefaultForm, FlexibleForm, UIFormField } from \"@gnu-taler/web-util/browser\";\n\nexport function ShowConsolidated({\n history,\n until,\n}: {\n history: AmlEvent[];\n until: AbsoluteTime;\n}): VNode {\n const cons = getConsolidated(history, until);\n\n const form: FlexibleForm<Consolidated> = {\n behavior: (form) => {\n return {\n aml: {\n threshold: {\n hidden: !form.aml\n },\n since: {\n hidden: !form.aml\n },\n state: {\n hidden: !form.aml\n }\n }\n };\n },\n design: [\n {\n title: \"AML\" as TranslatedString,\n fields: [\n {\n type: \"amount\",\n props: {\n label: \"Threshold\" as TranslatedString,\n name: \"aml.threshold\",\n },\n },\n {\n type: \"choiceHorizontal\",\n props: {\n label: \"State\" as TranslatedString,\n name: \"aml.state\",\n converter: amlStateConverter,\n choices: [\n {\n label: \"Frozen\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.frozen,\n },\n {\n label: \"Pending\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.pending,\n },\n {\n label: \"Normal\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.normal,\n },\n ],\n },\n },\n ],\n },\n Object.entries(cons.kyc).length > 0\n ? {\n title: \"KYC\" as TranslatedString,\n fields: Object.entries(cons.kyc).map(([key, field]) => {\n const result: UIFormField = {\n type: \"text\",\n props: {\n label: key as TranslatedString,\n name: `kyc.${key}.value`,\n help: `${field.provider} since ${field.since.t_ms === \"never\"\n ? \"never\"\n : format(field.since.t_ms, \"dd/MM/yyyy\")\n }` as TranslatedString,\n },\n };\n return result;\n }),\n }\n : undefined,\n ],\n };\n return (\n <Fragment>\n <h1 class=\"text-base font-semibold leading-7 text-black\">\n Consolidated information {until.t_ms === \"never\"\n ? \"\"\n : `after ${format(until.t_ms, \"dd MMMM yyyy\")}`}\n </h1>\n <DefaultForm\n key={`${String(Date.now())}`}\n form={form}\n initial={cons}\n readOnly\n onUpdate={() => { }}\n />\n </Fragment>\n );\n}\n\ninterface Consolidated {\n aml: {\n state: AmlExchangeBackend.AmlState;\n threshold: AmountJson;\n since: AbsoluteTime;\n };\n kyc: {\n [field: string]: {\n value: any;\n provider: string;\n since: AbsoluteTime;\n };\n };\n}\n\nfunction getConsolidated(\n history: AmlEvent[],\n when: AbsoluteTime,\n): Consolidated {\n const initial: Consolidated = {\n aml: {\n state: AmlExchangeBackend.AmlState.normal,\n threshold: {\n currency: \"ARS\",\n value: 1000,\n fraction: 0,\n },\n since: AbsoluteTime.never()\n },\n kyc: {},\n };\n return history.reduce((prev, cur) => {\n if (AbsoluteTime.cmp(when, cur.when) < 0) {\n return prev;\n }\n switch (cur.type) {\n case \"kyc-expiration\": {\n cur.fields.forEach((field) => {\n delete prev.kyc[field];\n });\n break;\n }\n case \"aml-form\": {\n prev.aml = {\n since: cur.when,\n state: cur.state,\n threshold: cur.threshold\n }\n break;\n }\n case \"kyc-collection\": {\n Object.keys(cur.values).forEach((field) => {\n prev.kyc[field] = {\n value: (cur.values as any)[field],\n provider: cur.provider,\n since: cur.when,\n };\n });\n break;\n }\n }\n return prev;\n }, initial);\n}\n\nexport const amlStateConverter = {\n toStringUI: stringifyAmlState,\n fromStringUI: parseAmlState,\n};\n\nfunction stringifyAmlState(s: AmlExchangeBackend.AmlState | undefined): string {\n if (s === undefined) return \"\";\n switch (s) {\n case AmlExchangeBackend.AmlState.normal:\n return \"normal\";\n case AmlExchangeBackend.AmlState.pending:\n return \"pending\";\n case AmlExchangeBackend.AmlState.frozen:\n return \"frozen\";\n }\n}\n\nfunction parseAmlState(s: string | undefined): AmlExchangeBackend.AmlState {\n switch (s) {\n case \"normal\":\n return AmlExchangeBackend.AmlState.normal;\n case \"pending\":\n return AmlExchangeBackend.AmlState.pending;\n case \"frozen\":\n return AmlExchangeBackend.AmlState.frozen;\n default:\n throw Error(`unknown AML state: ${s}`);\n }\n}\n", "import {\n AbsoluteTime,\n AmountJson,\n Amounts,\n TranslatedString,\n} from \"@gnu-taler/taler-util\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\n\nimport { AmlExchangeBackend } from \"../types.js\";\nimport { amlStateConverter } from \"../pages/ShowConsolidated.js\";\nimport { DoubleColumnFormSection, FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Simplest.Form> => ({\n design: [\n {\n title: \"Simple form\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"comment\",\n label: \"Comments\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Simplest.Form>,\n ): FormState<Simplest.Form> {\n return {\n comment: {\n help: ((v.comment?.length ?? 0) > 100 ? \"keep it short\" : \"\") as TranslatedString,\n\n },\n threshold: {\n disabled: v.state === AmlExchangeBackend.AmlState.frozen,\n },\n };\n },\n});\n\nexport namespace Simplest {\n export interface Form extends BaseForm {\n comment: string;\n }\n}\n\nexport function resolutionSection(current: BaseForm): DoubleColumnFormSection {\n return {\n title: \"Resolution\" as TranslatedString,\n description: `Current state is ${amlStateConverter.toStringUI(\n current.state,\n )} and threshold at ${Amounts.stringifyValue(\n current.threshold,\n )}` as TranslatedString,\n fields: [\n {\n type: \"choiceHorizontal\",\n props: {\n name: \"state\",\n label: \"New state\" as TranslatedString,\n converter: amlStateConverter,\n choices: [\n {\n value: AmlExchangeBackend.AmlState.frozen,\n label: \"Frozen\" as TranslatedString,\n },\n {\n value: AmlExchangeBackend.AmlState.pending,\n label: \"Pending\" as TranslatedString,\n },\n {\n value: AmlExchangeBackend.AmlState.normal,\n label: \"Normal\" as TranslatedString,\n },\n ],\n },\n },\n {\n type: \"amount\",\n props: {\n name: \"threshold\",\n label: \"New threshold\" as TranslatedString,\n },\n },\n ],\n };\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { resolutionSection } from \"./simplest.js\";\nimport { FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_11.Form> => ({\n design: [\n {\n title:\n \"Establishing of the controlling person of operating legal entities and partnerships both not quoted on the stock exchange\" as TranslatedString,\n description:\n \"for operating legal entities and partnership that are contracting partner as well as analogously for operating legal entities and partnership that are beneficial owners.\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"declares\",\n label:\n \"The contracting partner hereby declares that\" as TranslatedString,\n required: true,\n choices: [\n {\n label:\n \"the person(s) listed below is/are holding 25% or more of the contracting partner's shares (capital shares or voting rights)\" as TranslatedString,\n value: \"25-or-more\",\n },\n {\n label:\n \"if the capital shares or voting rights cannot be determined or in case there are no capital shares or voting rights 25% or more, the contracting partner hereby declares that the person(s) listed below is/are controlling the contracting partner in other ways\" as TranslatedString,\n value: \"controlling-in-other-ways\",\n },\n {\n label:\n \"in case this/these person(s) cannot be determined or this/these person(s) does/do not exist, the contracting partner hereby declares that the person(s) listed below is/are the managing director(s)\" as TranslatedString,\n value: \"managing-director\",\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n name: \"people\",\n label: \"People\" as TranslatedString,\n required: true,\n placeholder: \"this is the placeholder\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"lastName\",\n label: \"Last name(s)\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"firstName\",\n label: \"First name(s)\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label: \"Actual address of domicile\" as TranslatedString,\n required: true,\n },\n },\n ],\n labelField: \"lastName\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"fiduciaryAssets\",\n label: \"Fiduciary holding assets\" as TranslatedString,\n help: \"Is a third person the beneficial owner of the assets held in the account/securities account?\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n description:\n \"The relevant information regarding the beneficial owner has to be obtained by filling in a separate VQF doc. No. 902.9\" as TranslatedString,\n },\n ],\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_11.Form>,\n ): FormState<Form902_11.Form> {\n return {\n people: {\n hidden: v.declares !== \"controlling-in-other-ways\" &&\n v.declares !== \"managing-director\",\n }\n };\n }\n});\n\nnamespace Form902_11 {\n interface Person {\n lastName: string;\n firstName: string;\n address: string;\n }\n export interface Form extends BaseForm {\n contractingPartner: string;\n declares: \"25-or-more\" | \"controlling-in-other-ways\" | \"managing-director\";\n people: Person[];\n fiduciaryAssets: \"no\" | \"yes\";\n signature: string;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_12.Form> => ({\n design: [\n {\n title: \"Foundations\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"knownAs\",\n label:\n \"The undersigned hereby declare(s) that as board member of the foundation, or of the highest supervisory body of an underlying company of a foundation, known as\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"foundation.name\",\n label:\n \"Name and information pertaining to the foundation\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"foundation.type\",\n label: \"Type of foundation\" as TranslatedString,\n choices: [\n {\n label: \"Discretionary foundation\" as TranslatedString,\n value: \"discretionary\",\n },\n {\n label: \"Non-discretionary foundation\" as TranslatedString,\n value: \"non-discretionary\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"foundation.revocability\",\n label: \"Revocability\" as TranslatedString,\n choices: [\n {\n label: \"Revocable foundation\" as TranslatedString,\n value: \"revocable\",\n },\n {\n label: \"Irrevocable foundation\" as TranslatedString,\n value: \"irrevocable\",\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the (ultimate economic, not fiduciary) founder (individual(s) or entity/ies)\" as TranslatedString,\n labelField: \"fullName\",\n name: \"founders\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n help: \"if deceased\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToRevoke\",\n required: true,\n label:\n \"Does the founder have the right to revoke the foundation?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"If the foundation results from the restructuring of pre-existing foundation (re-settlement) or the merger of pre-existing foundations, the following information pertaining to the (actual) founder(s) of the pre-existing foundation(s) has to be given\" as TranslatedString,\n labelField: \"fullName\",\n name: \"preExistingFounders\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n help: \"if deceased\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Pertaining to the beneficiary/-ies at the time of the signing of this form\" as TranslatedString,\n labelField: \"fullName\",\n name: \"beneficiaryWhenSigning\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Has the beneficiary an actual right to claim distribution?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the founder) known at the time of the signing of this form\" as TranslatedString,\n name: \"beneficiaryExtra\",\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to further persons having the right to determine or nominate representatives (e.g.) members of the foundation board), if these representatives may dispose over the assets or have the right to change the distribution of the assets or the nomination of beneficiaries\" as TranslatedString,\n labelField: \"fullName\",\n name: \"withRightToNominate\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"has the person the right to revoke the foundation?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the founder) known at the time of the signing of this form\" as TranslatedString,\n name: \"beneficiaryExtra\",\n },\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_12.Form>,\n ): FormState<Form902_12.Form> {\n return {\n founders: {\n elements: (v.founders ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n withRightToNominate: {\n elements: (v.withRightToNominate ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n };\n },\n});\n\nnamespace Form902_12 {\n interface Foundation {\n name: string;\n type: \"discretionary\" | \"non-discretionary\";\n revocability: \"revocable\" | \"irrevocable\";\n }\n interface Person {\n fullName: string;\n address: string;\n country: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n }\n type WithRevoke<T> = {\n rightToRevoke: \"yes\" | \"no\";\n } & T;\n type WithClaim<T> = {\n rightToClaim: \"yes\" | \"no\";\n } & T;\n type WithDeath<T> = {\n dateOfDeath: AbsoluteTime;\n } & T;\n\n type Founder = WithRevoke<WithDeath<Person>>;\n type Beneficiary = WithClaim<Person>;\n\n export interface Form extends BaseForm {\n contractingPartner: string;\n knownAs: string;\n boardMember: string;\n foundation: Foundation;\n founders: Array<Founder>;\n preExistingFounders: Array<Founder>;\n beneficiaryWhenSigning: Array<Beneficiary>;\n beneficiaryExtra: Array<Beneficiary>;\n withRightToNominate: Array<WithRevoke<Person>>;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\nimport { BaseForm, } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_13.Form> => ({\n design: [\n {\n title: \"Declaration for trusts\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"knownAs\",\n label:\n \"The undersigned hereby declare(s) that as trustee or a member of highest supervisory body of an underlying company of a trust known as\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"trust.name\",\n label:\n \"Name and information pertaining to the trust\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"trust.type\",\n label: \"Type of trust\" as TranslatedString,\n choices: [\n {\n label: \"Discretionary trust\" as TranslatedString,\n value: \"discretionary\",\n },\n {\n label: \"Non-discretionary trust\" as TranslatedString,\n value: \"non-discretionary\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"trust.revocability\",\n label: \"Revocability\" as TranslatedString,\n choices: [\n {\n label: \"Revocable foundation\" as TranslatedString,\n value: \"revocable\",\n },\n {\n label: \"Irrevocable foundation\" as TranslatedString,\n value: \"irrevocable\",\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the (ultimate economic, not fiduciary) settlor of the trust (individual(s) or entity/ies)\" as TranslatedString,\n labelField: \"fullName\",\n name: \"settlors\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n // help: \"if deceased. format 'dd/MM/yyyy'\" as TranslatedString,\n help: \"if deceased'\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToRevoke\",\n required: true,\n label:\n \"Does the founder have the right to revoke the trust?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"If the trust results from the restructuring of pre-existing trust (re-settlement) or the merger of pre-existing trusts, the following information pertaining to the (actual) settlor of the pre-existing trust(s) has to be given\" as TranslatedString,\n labelField: \"fullName\",\n name: \"preExistingSettlors\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"dateOfDeath\",\n label: \"Date of death\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n help: \"if deceased.\" as TranslatedString,\n // help: \"if deceased. format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Pertaining to the beneficiary/-ies at the time of the signing of this form\" as TranslatedString,\n labelField: \"fullName\",\n name: \"beneficiaryWhenSigning\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Has the beneficiary an actual right to claim distribution?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the settlor) known at the time of the signing of this form\" as TranslatedString,\n name: \"beneficiaryExtra\",\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the protector(s) as well as (a) further person(s) having the right to revoke the trust (in case of revocable trusts) or to appoint the trustee of a trust\" as TranslatedString,\n labelField: \"asd\",\n name: \"nothing\",\n fields: [],\n },\n },\n\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to the protectors\" as TranslatedString,\n labelField: \"fullName\",\n name: \"protectors\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Does the protector have the right to revoke the trust?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"array\",\n props: {\n label:\n \"Information pertaining to further persons\" as TranslatedString,\n labelField: \"fullName\",\n name: \"furtherPersons\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label:\n \"Actual address of domicile/registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"country\",\n label: \"Country\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"rightToClaim\",\n label:\n \"Has this further person the right to revoke the trust?\" as TranslatedString,\n choices: [\n {\n label: \"Yes\" as TranslatedString,\n value: \"yes\",\n },\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_13.Form>,\n ): FormState<Form902_13.Form> {\n return {\n settlors: {\n elements: (v.settlors ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n protectors: {\n elements: (v.protectors ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n furtherPersons: {\n elements: (v.furtherPersons ?? []).map((f) => {\n return {\n rightToRevoke: {\n hidden: v.foundation?.revocability !== \"revocable\",\n },\n };\n }),\n },\n };\n },\n});\n\nnamespace Form902_13 {\n interface Foundation {\n name: string;\n type: \"discretionary\" | \"non-discretionary\";\n revocability: \"revocable\" | \"irrevocable\";\n }\n interface Person {\n fullName: string;\n address: string;\n country: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n }\n type WithRevoke<T> = {\n rightToRevoke: \"yes\" | \"no\";\n } & T;\n type WithClaim<T> = {\n rightToClaim: \"yes\" | \"no\";\n } & T;\n type WithDeath<T> = {\n dateOfDeath: AbsoluteTime;\n } & T;\n\n type Founder = WithRevoke<WithDeath<Person>>;\n type Beneficiary = WithClaim<Person>;\n\n export interface Form extends BaseForm {\n contractingPartner: string;\n knownAs: string;\n boardMember: string;\n foundation: Foundation;\n settlors: Array<Founder>;\n preExistingSettlors: Array<Founder>;\n beneficiaryWhenSigning: Array<Beneficiary>;\n beneficiaryExtra: Array<Beneficiary>;\n protectors: Array<WithRevoke<Person>>;\n furtherPersons: Array<WithRevoke<Person>>;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FlexibleForm } from \"@gnu-taler/web-util/browser\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_15.Form> => ({\n design: [\n {\n title:\n \"Information on life insurance policies with separately managed accounts/securities accounts\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"contractualRelationship\",\n label:\n \"Name or number of the contractual relationship between the contracting party and the financial intermediary\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"insurancePolicy\",\n label: \"Insurance policy\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner confirms in accordance with Art. 41a SRO Regulations that it is a licensed and state-supervised insurance company and that it has entered into the above-mentioned contractual relationship the assets connected to the life insurance policy also mentioned above.\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"In relation with the above insurance policy, the contracting partner gives the following further details\" as TranslatedString,\n },\n },\n {\n type: \"group\",\n props: {\n before: \"Policy holder\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"holder.fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"holder.address\",\n label:\n \"Actual address of domicile/registered office (incl. country)\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"holder.dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"holder.nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"Person actually (not in a fiduciary capacity) paying the premiums (to be filled in if not identical with point 1 above)\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"premiumPayer.fullName\",\n label:\n \"Last name(s), first name(s)/entity\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"premiumPayer.address\",\n label:\n \"Actual address of domicile/registered office (incl. country)\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"premiumPayer.dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"premiumPayer.nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner hereby undertakes to automatically inform the financial intermediary of any changes. The contracting partner hereby also declares having been given permission by the above individuals and/or entities to transmit their data to the financial intermediary\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"It is a criminal offense to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery)\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n});\n\nnamespace Form902_15 {\n interface Person {\n fullName: string;\n address: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n }\n\n export interface Form extends BaseForm {\n contractingPartner: string;\n contractualRelationship: string;\n insurancePolicy: string;\n holder: Person;\n premiumsPayer: Person;\n signature: string;\n }\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\n\n\nexport const languageList = [\n {\n label: \"Mandarin Chinese\" as TranslatedString,\n value: \"cmn\",\n },\n {\n label: \"Spanish\" as TranslatedString,\n value: \"spa\",\n },\n {\n label: \"English\" as TranslatedString,\n value: \"eng\",\n },\n {\n label: \"Hindi\" as TranslatedString,\n value: \"hin\",\n },\n {\n label: \"Portuguese\" as TranslatedString,\n value: \"por\",\n },\n {\n label: \"Bengali\" as TranslatedString,\n value: \"ben\",\n },\n {\n label: \"Russian\" as TranslatedString,\n value: \"rus\",\n },\n {\n label: \"Japanese\" as TranslatedString,\n value: \"jpn\",\n },\n {\n label: \"Yue\" as TranslatedString,\n value: \"yue\",\n },\n {\n label: \"Vietnamese\" as TranslatedString,\n value: \"vie\",\n },\n {\n label: \"Turkish\" as TranslatedString,\n value: \"tur\",\n },\n {\n label: \"Wu\" as TranslatedString,\n value: \"wuu\",\n },\n {\n label: \"Marathi\" as TranslatedString,\n value: \"mar\",\n },\n {\n label: \"Telugu\" as TranslatedString,\n value: \"ten\",\n },\n {\n label: \"Korean\" as TranslatedString,\n value: \"kor\",\n },\n {\n label: \"French\" as TranslatedString,\n value: \"fra\",\n },\n {\n label: \"Tamil\" as TranslatedString,\n value: \"tam\",\n },\n {\n label: \"Egyptian Arabic\" as TranslatedString,\n value: \"arz\",\n },\n {\n label: \"Standard German\" as TranslatedString,\n value: \"deu\",\n },\n {\n label: \"Urdu\" as TranslatedString,\n value: \"urd\",\n },\n {\n label: \"Javanese\" as TranslatedString,\n value: \"jav\",\n },\n {\n label: \"Punjabi\" as TranslatedString,\n value: \"pan\",\n },\n {\n label: \"Italian\" as TranslatedString,\n value: \"ita\",\n },\n {\n label: \"Gujarati\" as TranslatedString,\n value: \"guj\",\n },\n {\n label: \"Iranian Persian\" as TranslatedString,\n value: \"pes\",\n },\n {\n label: \"Bhojpuri\" as TranslatedString,\n value: \"bho\",\n },\n {\n label: \"Hausa\" as TranslatedString,\n value: \"hau\",\n },\n];\nexport const currencyList = [\n {\n label: \"United States dollar\" as TranslatedString,\n value: \"usd\",\n },\n {\n label: \"Euro\" as TranslatedString,\n value: \"eur\",\n },\n {\n label: \"Swiss franc\" as TranslatedString,\n value: \"chf\",\n },\n {\n label: \"Argentine peso\" as TranslatedString,\n value: \"ars\",\n },\n {\n label: \"Mexican peso\" as TranslatedString,\n value: \"mxn\",\n },\n {\n label: \"Brazilian real\" as TranslatedString,\n value: \"brl\",\n },\n];\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { languageList } from \"./index.js\";\nimport { resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_1.Form> => ({\n design: [\n {\n title: \"Information on customer\" as TranslatedString,\n description:\n \"The customer is the person with whom the member concludes the contract with regard to the financial service provided (civil law). Does the member act as director of a domiciliary company, this domiciliary company is the customer.\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n name: \"customerType\",\n label: \"Type of customer\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"Natural person\" as TranslatedString,\n value: \"natural\",\n },\n {\n label: \"Legal entity\" as TranslatedString,\n value: \"legal\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.fullName\",\n label: \"Full name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.address\",\n label: \"Residential address\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"integer\",\n props: {\n name: \"naturalCustomer.telephone\",\n label: \"Telephone\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.email\",\n label: \"E-mail\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"naturalCustomer.dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n required: true,\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.nationality\",\n label: \"Nationality\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.document\",\n label: \"Identification document\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"naturalCustomer.documentAttachment\",\n label: \"Document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.companyName\",\n label: \"Company name\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.office\",\n label: \"Registered office\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"naturalCustomer.companyDocument\",\n label: \"Company identification document\" as TranslatedString,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"naturalCustomer.companyDocumentAttachment\",\n label: \"Document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.companyName\",\n label: \"Company name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.domicile\",\n label: \"Domicile\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.contactPerson\",\n label: \"Contact person\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.telephone\",\n label: \"Telephone\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.email\",\n label: \"E-mail\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"legalCustomer.document\",\n label: \"Identification document\" as TranslatedString,\n help: \"Not older than 12 month\" as TranslatedString,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"legalCustomer.documentAttachment\",\n label: \"Document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Information on the natural persons who establish the business relationship for legal entities and partnerships\" as TranslatedString,\n description:\n \"For legal entities and partnerships the identity of the natural persons who establish the business relationship must be verified.\" as TranslatedString,\n fields: [\n {\n type: \"array\",\n props: {\n name: \"businessEstablisher\",\n label: \"Persons\" as TranslatedString,\n required: true,\n placeholder: \"this is the placeholder\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"fullName\",\n label: \"Full name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label: \"Residential address\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n required: true,\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"typeOfAuthorization\",\n label:\n \"Type of authorization (signatory of representation)\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"file\",\n props: {\n name: \"documentAttachment\",\n label:\n \"Identification document attachment\" as TranslatedString,\n required: true,\n maxBites: 2 * 1024 * 1024,\n accept: \".png\",\n help: \"Max size of 2 mega bytes\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"powerOfAttorneyArrangements\",\n label: \"Power of attorney arrangements\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"CR extract\" as TranslatedString,\n value: \"cr\",\n },\n {\n label: \"Mandate\" as TranslatedString,\n value: \"mandate\",\n },\n {\n label: \"Other\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"powerOfAttorneyArrangementsOther\",\n label: \"Power of attorney arrangements\" as TranslatedString,\n required: true,\n },\n },\n ],\n labelField: \"fullName\",\n },\n },\n ],\n },\n {\n title: \"Acceptance of business relationship\" as TranslatedString,\n fields: [\n {\n type: \"absoluteTime\",\n props: {\n name: \"acceptance.when\",\n pattern: \"dd/MM/yyyy\",\n label: \"Date (conclusion of contract)\" as TranslatedString,\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"acceptance.acceptedBy\",\n label: \"Accepted by\" as TranslatedString,\n required: true,\n choices: [\n {\n label: \"Face-to-face meeting with customer\" as TranslatedString,\n value: \"face-to-face\",\n },\n {\n label:\n \"Correspondence: authenticated copy of identification document obtained\" as TranslatedString,\n value: \"correspondence-document\",\n },\n {\n label:\n \"Correspondence: residential address validated\" as TranslatedString,\n value: \"correspondence-address\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n name: \"acceptance.typeOfCorrespondence\",\n label: \"Type of correspondence service\" as TranslatedString,\n choices: [\n {\n label: \"to the customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label: \"hold at bank\" as TranslatedString,\n value: \"bank\",\n },\n {\n label: \"to the member\" as TranslatedString,\n value: \"member\",\n },\n {\n label: \"to a third party\" as TranslatedString,\n value: \"third-party\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"acceptance.thirdPartyFullName\",\n label: \"Third party full name\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"acceptance.thirdPartyAddress\",\n label: \"Third party address\" as TranslatedString,\n required: true,\n },\n },\n {\n type: \"selectMultiple\",\n props: {\n name: \"acceptance.language\",\n label: \"Languages\" as TranslatedString,\n choices: languageList,\n unique: true,\n },\n },\n {\n type: \"textArea\",\n props: {\n name: \"acceptance.furtherInformation\",\n label: \"Further information\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Information on the beneficial owner of the assets and/or controlling person\" as TranslatedString,\n description:\n \"Establishment of the beneficial owner of the assets and/or controlling person\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n name: \"establishment\",\n label: \"The customer is\" as TranslatedString,\n required: true,\n choices: [\n {\n label:\n \"a natural person and there are no doubts that this person is the sole beneficial owner of the assets\" as TranslatedString,\n value: \"natural\",\n },\n {\n label:\n \"a foundation (or a similar construct; incl. underlying companies)\" as TranslatedString,\n value: \"foundation\",\n },\n {\n label:\n \"a trust (incl. underlying companies)\" as TranslatedString,\n value: \"trust\",\n },\n {\n label:\n \"a life insurance policy with separately managed accounts/securities accounts\" as TranslatedString,\n value: \"insurance-wrapper\",\n },\n {\n label: \"all other cases\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n ],\n },\n {\n title:\n \"Evaluation with regard to embargo procedures/terrorism lists on establishing the business relationship\" as TranslatedString,\n description:\n \"Verification whether the customer, beneficial owners of the assets, controlling persons, authorized representatives or other involved persons are listed on an embargo/terrorism list (date of verification/result)\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"embargoEvaluation\",\n help: \"The evaluation must be made at the beginning of the business relationship and has to be repeated in the case of permanent business relationship every time the according lists are updated.\" as TranslatedString,\n label: \"Evaluation\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"In the case of cash transactions/occasional customers: Information on type and purpose of business relationship\" as TranslatedString,\n description:\n \"These details are only necessary for occasional customers, i.e. money exchange, money and asset transfer or other cash transactions provided that no customer profile (VQF doc. No. 902.5) is created\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n name: \"cashTransactions.typeOfBusiness\",\n label: \"Type of business relationship\" as TranslatedString,\n choices: [\n {\n label: \"Money exchange\" as TranslatedString,\n value: \"money-exchange\",\n },\n {\n label: \"Money and asset transfer\" as TranslatedString,\n value: \"money-and-asset-transfer\",\n },\n {\n label:\n \"Other cash transactions. Specify below\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n name: \"cashTransactions.otherTypeOfBusiness\",\n required: true,\n label: \"Specify other cash transactions:\" as TranslatedString,\n },\n },\n {\n type: \"textArea\",\n props: {\n name: \"cashTransactions.purpose\",\n label:\n \"Purpose of the business relationship (purpose of service requested)\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_1.Form>,\n ): FormState<Form902_1.Form> {\n return {\n fullName: {\n disabled: true,\n },\n businessEstablisher: {\n elements: (v.businessEstablisher ?? []).map((be) => {\n return {\n powerOfAttorneyArrangementsOther: {\n hidden: be.powerOfAttorneyArrangements !== \"other\",\n },\n };\n }),\n },\n acceptance: {\n thirdPartyFullName: {\n hidden: v.acceptance?.typeOfCorrespondence !== \"third-party\",\n },\n thirdPartyAddress: {\n hidden: v.acceptance?.typeOfCorrespondence !== \"third-party\",\n },\n },\n cashTransactions: {\n otherTypeOfBusiness: {\n hidden: v.cashTransactions?.typeOfBusiness !== \"other\",\n },\n },\n naturalCustomer: {\n fullName: {\n hidden: v.customerType !== \"natural\",\n },\n address: {\n hidden: v.customerType !== \"natural\",\n },\n telephone: {\n hidden: v.customerType !== \"natural\",\n },\n email: {\n hidden: v.customerType !== \"natural\",\n },\n dateOfBirth: {\n hidden: v.customerType !== \"natural\",\n },\n nationality: {\n hidden: v.customerType !== \"natural\",\n },\n document: {\n hidden: v.customerType !== \"natural\",\n },\n companyName: {\n hidden: v.customerType !== \"natural\",\n },\n office: {\n hidden: v.customerType !== \"natural\",\n },\n companyDocument: {\n hidden: v.customerType !== \"natural\",\n },\n companyDocumentAttachment: {\n hidden: v.customerType !== \"natural\",\n },\n documentAttachment: {\n hidden: v.customerType !== \"natural\",\n },\n },\n legalCustomer: {\n companyName: {\n hidden: v.customerType !== \"legal\",\n },\n contactPerson: {\n hidden: v.customerType !== \"legal\",\n },\n document: {\n hidden: v.customerType !== \"legal\",\n },\n domicile: {\n hidden: v.customerType !== \"legal\",\n },\n email: {\n hidden: v.customerType !== \"legal\",\n },\n telephone: {\n hidden: v.customerType !== \"legal\",\n },\n documentAttachment: {\n hidden: v.customerType !== \"legal\",\n },\n },\n };\n },\n});\n\nnamespace Form902_1 {\n interface LegalEntityCustomer {\n companyName: string;\n domicile: string;\n contactPerson: string;\n telephone: string;\n email: string;\n document: string;\n documentAttachment: string;\n }\n interface NaturalCustomer {\n fullName: string;\n address: string;\n telephone: string;\n email: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n document: string;\n documentAttachment: string;\n companyName: string;\n office: string;\n companyDocument: string;\n companyDocumentAttachment: string;\n }\n\n interface Person {\n fullName: string;\n address: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n typeOfAuthorization: string;\n document: string;\n documentAttachment: string;\n powerOfAttorneyArrangements: \"cr\" | \"mandate\" | \"other\";\n powerOfAttorneyArrangementsOther: string;\n }\n\n interface Acceptance {\n when: AbsoluteTime;\n acceptedBy: \"face-to-face\" | \"authenticated-copy\";\n typeOfCorrespondence: string;\n language: string[];\n furtherInformation: string;\n thirdPartyFullName: string;\n thirdPartyAddress: string;\n }\n\n interface BeneficialOwner {\n establishment:\n | \"natural-person\"\n | \"foundation\"\n | \"trust\"\n | \"insurance-wrapper\"\n | \"other\";\n }\n\n interface CashTransactions {\n typeOfBusiness: \"money-exchange\" | \"money-and-asset-transfer\" | \"other\";\n otherTypeOfBusiness: string;\n purpose: string;\n }\n\n export interface Form extends BaseForm {\n fullName: string;\n customerType: \"natural\" | \"legal\";\n naturalCustomer: NaturalCustomer;\n legalCustomer: LegalEntityCustomer;\n businessEstablisher: Array<Person>;\n acceptance: Acceptance;\n beneficialOwner: BeneficialOwner;\n embargoEvaluation: string;\n cashTransactions: CashTransactions;\n // enclosures: Enclosures;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\nimport { h as create } from \"preact\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { ArrowRightIcon, ChevronRightIcon } from \"../pages/Cases.js\";\nimport { resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_4.Form> => ({\n design: [\n {\n title: \"Risk Profile AMLA\" as TranslatedString,\n description:\n \"Evaluation of business relationship with increased risk and definition of criteria for transaction monitoring.\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"The member performs additional clarifications if the business relationship or the transaction is classified as increased risk (Art. 56 SRO Regulations)\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"text\",\n props: {\n name: \"customer\",\n label: \"Customer\" as TranslatedString,\n help: \"Pursuant identification form (VQF doc. Nr. 902.1) numeral 1\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Evaluation of politically exposed persons (PEP-Check)\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"This evaluation has to be completed by all members for every business relationship\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Foreign PEP\" as TranslatedString,\n // tooltip:\n // \"Definition see Art. 7 lit. g numeral 1 SRO Regulations\" as TranslatedString,\n help: \"Is the customer, the beneficial owner or the controlling person or authorized representative a foreign PEP or closely related to such a person?\" as TranslatedString,\n name: \"pep.foreign\",\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label: \"Yes\" as TranslatedString,\n description:\n \"The business relationship is compulsory classified as increased risk\" as TranslatedString,\n value: \"yes\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label:\n \"Domestic PEP and PEP of International Organizations\" as TranslatedString,\n // tooltip:\n // \"Definition see Art. 7 lit. g numeral 2 and 3 SRO Regulations \" as TranslatedString,\n help: \"Is the customer, the beneficial owner or the controlling person or authorized representative a domestic PEP or PEP in International Organizations or closely related to such a person?\" as TranslatedString,\n name: \"pep.domestic\",\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label:\n \"Yes, but NOT risk criterion pursuant to numeral 3 subsequently increased.\" as TranslatedString,\n value: \"yes-but-no-risk\",\n },\n {\n label:\n \"Yes, AND a risk criterion pursuant to numeral 3 subsequently increased.\" as TranslatedString,\n description:\n \"Classification of the business relationship as increased risk is compulsory\" as TranslatedString,\n value: \"yes\",\n },\n ],\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n label:\n \"The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on\" as TranslatedString,\n name: \"pep.when\",\n pattern: \"dd/MM/yyyy\",\n // placeholder: \"dd/MM/yyyy\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n 'Evaluation \"high risk\" or non-cooperative country' as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"This evaluation has to be completed by all members for every business relationship\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: '\"High risk\" or non-cooperative country' as TranslatedString,\n help: 'Is the customer, the beneficial owner or the controlling person or authorized representative in a country considered by the FATF \"high risk\" or non-cooperative and for which FATF requires increased diligence?' as TranslatedString,\n name: \"highRisk.evaluation\",\n choices: [\n {\n label: \"No\" as TranslatedString,\n value: \"no\",\n },\n {\n label: \"Yes\" as TranslatedString,\n description:\n \"considered as business relationship with increased risk\" as TranslatedString,\n value: \"yes\",\n },\n ],\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n label:\n \"The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on\" as TranslatedString,\n name: \"highRisk.when\",\n pattern: \"dd/MM/yyyy\",\n // placeholder: \"dd/MM/yyyy\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Evaluation of business relationship risk\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"This evaluation has to be completed by all members who have in total more than 20 customers for every business relationship. At least two risk categories have to be chosen and assessed\" as TranslatedString,\n before: create(ArrowRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"group\",\n props: {\n before: \"a) Country risk (nationality)\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n label: \"Domicile/residential address\" as TranslatedString,\n name: \"evaluation.nationality.address\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n {\n label: \"Controlling person\" as TranslatedString,\n value: \"controlling\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Nationality\" as TranslatedString,\n name: \"evaluation.nationality.nationality\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.nationality.risk\",\n choices: [\n {\n label:\n \"Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"b) Country risk (business activity)\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n label: \"Place of business activity\" as TranslatedString,\n name: \"evaluation.business.place\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.business.risk\",\n choices: [\n {\n label:\n \"Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"c) Country risk (payments)\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Country of origin and destination of frequent payments (if known)\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.payments.risk\",\n choices: [\n {\n label:\n \"Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"d) Industry risk\" as TranslatedString,\n fields: [\n {\n type: \"choiceStacked\",\n props: {\n label:\n \"Nature of customer's business activity\" as TranslatedString,\n name: \"evaluation.industry.nature\",\n choices: [\n {\n label: \"Customer\" as TranslatedString,\n value: \"customer\",\n },\n {\n label:\n \"Beneficial owner of the assets\" as TranslatedString,\n value: \"owner\",\n },\n ],\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.payments.risk\",\n choices: [\n {\n label:\n \"Clearly defined, transparent, easily comprehensible business activity well known to the member\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"Business activity with a high level of cash transactions\" as TranslatedString,\n value: \"medium-cash\",\n },\n {\n label:\n \"Business activity not well known to the member\" as TranslatedString,\n value: \"medium-unknown\",\n },\n {\n label:\n \"Trade in munitions/arms, raw gem stones/diamonds, jewelry, international trade in exotic animals, casino and lottery business, trade in erotic wares\" as TranslatedString,\n value: \"high-restricted\",\n },\n {\n label:\n \"Member has no personal knowledge of the customer's industry\" as TranslatedString,\n value: \"high-unknown\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"e) Contact risk\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Types of contact to the customer/ beneficial owner of the assets\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.contact.risk\",\n choices: [\n {\n label:\n \"Personal acquaintance between member and customer/beneficial owner of the assets over several years (at least 2) prior to entering into the business relationship\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"The customer/beneficial owner was not personally known to the member for several years (at least 2) prior to entering into the business relationship; however (a) no business was entered into in the absence of the customer/beneficial owner, or (b) the customer was at least introduced/brokered by a trusted third party\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"The customer/beneficial owner was not personally known to the member and business was entered into in the absence of the former (relationship by correspondence) and the customer was not introduced/brokered by a trusted third party\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"f) Product risk\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Nature of services and products requested by the customer\" as TranslatedString,\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.product.risk\",\n choices: [\n {\n label:\n \"Easy to understand, transparent services and products whose financial background is easy to comprehend and verify\" as TranslatedString,\n value: \"low\",\n },\n {\n label:\n \"More sophisticated services/products whose financial background is not readily easy to comprehend and verify\" as TranslatedString,\n value: \"medium\",\n },\n {\n label:\n \"Main focus on offshore business (especially: relationships with domiciliary companies or other such offshore organisations)\" as TranslatedString,\n value: \"high-offshore\",\n },\n {\n label:\n \"Complex structures in particular by using a domiciliary company with fiduciary shareholders in a non-transparent jurisdiction, without comprehensible reason or for the purpose of short-term asset placement\" as TranslatedString,\n value: \"high-structure\",\n },\n {\n label:\n \"The customer or beneficial owner of the assets has a large number of accounts with pass-through transactions (pass-through accounts)\" as TranslatedString,\n value: \"high-accounts\",\n },\n {\n label:\n \"Complex services/products whose financial background can\u2019t be understood or verified with considerable effort\" as TranslatedString,\n value: \"high-service\",\n },\n {\n label:\n \"Frequent transactions with increased risks\" as TranslatedString,\n value: \"high-freq-tx\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before: \"g) Criteria defined by the member\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n label: \"Criteria definition\" as TranslatedString,\n name: \"evaluation.custom.definition\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk level\" as TranslatedString,\n name: \"evaluation.custom.risk\",\n choices: [\n {\n label: \"Low\" as TranslatedString,\n value: \"low\",\n },\n {\n label: \"Medium\" as TranslatedString,\n value: \"medium\",\n },\n {\n label: \"High\" as TranslatedString,\n value: \"high\",\n },\n ],\n },\n },\n ],\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"Overall assessment of the business relationship\" as TranslatedString,\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"A business relationship is classified as increased risk if:\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Business relationship with PEP pursuant to numeral 1 (no exception possible)\" as TranslatedString,\n before: create(ChevronRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n 'Relationship with a person from a \"high risk\" or non-cooperative country according to numeral 2 (no exceptions possible)' as TranslatedString,\n before: create(ChevronRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"Min. one criterion pursuant to numeral 3 was assessed with risk 2 or min. two criteria pursuant to numeral 3 were assessed with risk 1 (exception: justification by the member below why the business relationship overall does not have to be classified as increased risk despite the fact that individual risk criteria are increased)\" as TranslatedString,\n before: create(ChevronRightIcon, { class: \"h-6 w-6\" }),\n },\n },\n ],\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Justification for differing risk assessment\" as TranslatedString,\n name: \"evaluation.overall.justification\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Risk classified\" as TranslatedString,\n name: \"evaluation.overall.risk\",\n choices: [\n {\n label:\n \"Business relationship _without_ increased risk\" as TranslatedString,\n value: \"without\",\n },\n {\n label:\n \"Business relationship __with__ increased risk\" as TranslatedString,\n value: \"with\",\n },\n ],\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n label:\n \"The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on\" as TranslatedString,\n name: \"evaluation.when\",\n pattern: \"dd/MM/yyyy\",\n // placeholder: \"dd/MM/yyyy\" as TranslatedString,\n },\n },\n ],\n },\n {\n title:\n \"Criteria for identification of increased risk transactions (transaction monitoring)\" as TranslatedString,\n fields: [\n {\n type: \"group\",\n props: {\n before: \"Criteria\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n label:\n \"Classification as as increased risk is compulsory if\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-6 h-6\" }),\n label:\n \"Transactions for which assets with an equivalent value of CHF 100'000.- or more are physically introduced at the beginning of the business relationship, either at once or in a staggered manner\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-6 h-6\" }),\n label:\n 'Money and asset transfers (\"money transfer\") whereby a single transaction or multiple transactions which appear to be related reach or exceed the amount of CHF 5,000.-' as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-6 h-6\" }),\n label:\n 'Payments from or to a country that is considered to be \"high risk\" or non-cooperative by the FATF and for which increased diligence is required' as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"Additional criteria defined by the member\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n before: create(ArrowRightIcon, { class: \"w-6 h-6\" }),\n label:\n \"All members have to define min. 1 additional criterion for every business relationship to identify unusual transactions\" as TranslatedString,\n },\n },\n {\n type: \"textArea\",\n props: {\n label: \"Description\" as TranslatedString,\n name: \"criteria.additional\",\n },\n },\n {\n type: \"group\",\n props: {\n before:\n \"Possible criteria (Art. 59 para. 2 SRO Regulations)\" as TranslatedString,\n fields: [\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"the amount of inflowing and outflowing assets\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"type, volume and frequency of transactions usual to the business relationship (considerable variance would be unusual)\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"type, volume and frequency of transactions usual to comparable business relationships (considerable variance would be unusual)\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n \"description of expected transaction patterns which the client notify the member of (considerable variance would be unusual)\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n before: create(ChevronRightIcon, { class: \"w-4 h-4\" }),\n label:\n 'The country of origin or destination of payments, especially in the case of payments from or to a country considered by the FATF as \"high risk\" or non-cooperative' as TranslatedString,\n },\n },\n ],\n },\n },\n ],\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_4.Form>,\n ): FormState<Form902_4.Form> {\n return {\n };\n },\n});\n\nnamespace Form902_4 {\n export interface Form extends BaseForm {\n customer: string;\n fullName: string;\n pep: {\n foreign: \"yes\" | \"no\";\n domestic: \"yes\" | \"no\" | \"yes-but-no-risk\";\n when: AbsoluteTime;\n };\n highRisk: {\n evaluation: \"yes\" | \"no\";\n when: AbsoluteTime;\n };\n evaluation: {\n nationality: {\n address: \"customer\" | \"owner\" | \"controlling\";\n nationality: \"customer\" | \"owner\";\n risk: \"low\" | \"medium\" | \"high\";\n };\n business: {\n place: \"customer\" | \"owner\";\n risk: \"low\" | \"medium\" | \"high\";\n };\n payments: {\n risk: \"low\" | \"medium\" | \"high\";\n };\n industry: {\n nature: \"customer\" | \"owner\";\n risk:\n | \"low\"\n | \"medium-cash\"\n | \"medium-unknown\"\n | \"high-restricted\"\n | \"high-unknown\";\n };\n contact: {\n risk: \"low\" | \"medium\" | \"high\";\n };\n product: {\n risk:\n | \"low\"\n | \"medium\"\n | \"high-offshore\"\n | \"high-structure\"\n | \"high-accounts\"\n | \"high-service\"\n | \"high-freq-tx\";\n };\n custom: {\n definition: string;\n risk: \"low\" | \"medium\" | \"high\";\n };\n overall: {\n justification: string;\n risk: \"with\" | \"without\";\n };\n };\n criteria: {\n additional: string;\n };\n }\n}\n", "import { TalerError, TalerExchangeApi, TranslatedString, assertUnreachable } from \"@gnu-taler/taler-util\";\nimport { ErrorLoading, Loading, createNewForm, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { VNode, h } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { useCases } from \"../hooks/useCases.js\";\nimport { Pages } from \"../pages.js\";\nimport { AmlExchangeBackend } from \"../types.js\";\n\nimport { Officer } from \"./Officer.js\";\nimport { amlStateConverter } from \"./ShowConsolidated.js\";\n\nexport function CasesUI({ records, filter, onChangeFilter, onFirstPage, onNext }: { onFirstPage?: () => void, onNext?: () => void, filter: AmlExchangeBackend.AmlState, onChangeFilter: (f: AmlExchangeBackend.AmlState) => void, records: TalerExchangeApi.AmlRecord[] }): VNode {\n const { i18n } = useTranslationContext();\n\n const form = createNewForm<{ state: AmlExchangeBackend.AmlState }>();\n\n return <div>\n <div class=\"sm:flex sm:items-center\">\n <div class=\"px-2 sm:flex-auto\">\n <h1 class=\"text-base font-semibold leading-6 text-gray-900\">\n <i18n.Translate>\n Cases\n </i18n.Translate>\n </h1>\n <p class=\"mt-2 text-sm text-gray-700 w-80\">\n <i18n.Translate>\n A list of all the account with the status\n </i18n.Translate>\n </p>\n </div>\n <div class=\"px-2\">\n <form.Provider\n initial={{ state: filter }}\n onUpdate={(v) => {\n onChangeFilter(v.state ?? filter);\n }}\n onSubmit={(v) => { }}\n >\n <form.InputChoiceHorizontal\n name=\"state\"\n label={i18n.str`Filter`}\n converter={amlStateConverter}\n choices={[\n {\n label: \"Pending\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.pending,\n },\n {\n label: \"Frozen\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.frozen,\n },\n {\n label: \"Normal\" as TranslatedString,\n value: AmlExchangeBackend.AmlState.normal,\n },\n ]}\n />\n\n </form.Provider>\n </div>\n </div>\n <div class=\"mt-8 flow-root\">\n <div class=\"overflow-x-auto\">\n {!records.length ? (\n <div>empty result </div>\n ) : (\n <div class=\"inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8\">\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900 w-80\"\n >\n <i18n.Translate>\n Account Id\n </i18n.Translate>\n </th>\n <th\n scope=\"col\"\n class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900 w-40\"\n >\n <i18n.Translate>\n Status\n </i18n.Translate>\n </th>\n <th\n scope=\"col\"\n class=\"sm:hidden px-3 py-3.5 text-left text-sm font-semibold text-gray-900 w-40\"\n >\n <i18n.Translate>\n Threshold\n </i18n.Translate>\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n {records.map((r) => {\n return (\n <tr class=\"hover:bg-gray-100 \">\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-500 \">\n <div class=\"text-gray-900\">\n <a\n href={Pages.account.url({ account: r.h_payto })}\n class=\"text-indigo-600 hover:text-indigo-900\"\n >\n {r.h_payto.substring(0, 16)}...\n </a>\n </div>\n </td>\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-500\">\n {((state: AmlExchangeBackend.AmlState): VNode => {\n switch (state) {\n case AmlExchangeBackend.AmlState.normal: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20\">\n Normal\n </span>\n );\n }\n case AmlExchangeBackend.AmlState.pending: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-yellow-50 px-2 py-1 text-xs font-medium text-yellow-700 ring-1 ring-inset ring-green-600/20\">\n Pending\n </span>\n );\n }\n case AmlExchangeBackend.AmlState.frozen: {\n return (\n <span class=\"inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-green-600/20\">\n Frozen\n </span>\n );\n }\n }\n })(r.current_state)}\n </td>\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-900\">\n {r.threshold}\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n <Pagination onFirstPage={onFirstPage} onNext={onNext} />\n </div>\n )}\n </div>\n </div>\n </div>\n\n}\n\n\nexport function Cases() {\n const [stateFilter, setStateFilter] = useState(AmlExchangeBackend.AmlState.pending);\n\n const list = useCases(stateFilter);\n\n if (!list) {\n return <Loading />\n }\n if (list instanceof TalerError) {\n return <ErrorLoading error={list} />\n }\n\n if (list.data.type === \"fail\") {\n switch (list.data.case) {\n case \"unauthorized\": return <Officer />\n case \"officer-not-found\": return <Officer />\n case \"officer-disabled\": return <Officer />\n default: assertUnreachable(list.data)\n }\n }\n\n const { records } = list.data.body\n\n return <CasesUI\n records={records}\n onFirstPage={list.pagination && !list.pagination.isFirstPage ? list.pagination.reset : undefined}\n onNext={list.pagination && !list.pagination.isLastPage ? list.pagination.loadMore : undefined}\n filter={stateFilter}\n onChangeFilter={setStateFilter}\n />\n}\n\nexport const PeopleIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z\" />\n</svg>\n\nexport const HomeIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\" />\n</svg>\n\n\nexport const ChevronRightIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 4.5l7.5 7.5-7.5 7.5\" />\n</svg>\n\n\nexport const ArrowRightIcon = () => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\" />\n</svg>\n\n\nfunction Pagination({ onFirstPage, onNext }: { onFirstPage?: () => void, onNext?: () => void, }) {\n const { i18n } = useTranslationContext()\n return (\n <nav class=\"flex items-center justify-between border-t border-gray-200 bg-white px-4 py-3 sm:px-6 rounded-lg\" aria-label=\"Pagination\">\n <div class=\"flex flex-1 justify-between sm:justify-end\">\n <button\n class=\"relative disabled:bg-gray-100 disabled:text-gray-500 inline-flex items-center rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus-visible:outline-offset-0\"\n disabled={!onFirstPage}\n onClick={onFirstPage}\n >\n <i18n.Translate>First page</i18n.Translate>\n </button>\n <button\n class=\"relative disabled:bg-gray-100 disabled:text-gray-500 ml-3 inline-flex items-center rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus-visible:outline-offset-0\"\n disabled={!onNext}\n onClick={onNext}\n >\n <i18n.Translate>Next</i18n.Translate>\n </button>\n </div>\n </nav>\n\n )\n}\n", "import { useState } from \"preact/hooks\";\n\nimport {\n HttpResponsePaginated\n} from \"@gnu-taler/web-util/browser\";\nimport { AmlExchangeBackend } from \"../types.js\";\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport { AmountString, OfficerAccount, OperationFail, TalerExchangeApi, TalerExchangeResultByMethod, TalerHttpError } from \"@gnu-taler/taler-util\";\nimport _useSWR, { SWRHook } from \"swr\";\nimport { useExchangeApiContext } from \"../context/config.js\";\nimport { useOfficer } from \"./useOfficer.js\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nconst PAGE_SIZE = 10;\n/**\n * FIXME: mutate result when balance change (transaction )\n * @param account\n * @param args\n * @returns\n */\nexport function useCases(state: AmlExchangeBackend.AmlState) {\n const officer = useOfficer();\n const session = officer.state === \"ready\" ? officer.account : undefined;\n const { api } = useExchangeApiContext();\n\n const [offset, setOffset] = useState<string>();\n\n async function fetcher([officer, state, offset]: [OfficerAccount, AmlExchangeBackend.AmlState, string | undefined]) {\n return await api.getDecisionsByState(officer, state, {\n order: \"asc\", offset, limit: PAGE_SIZE + 1\n })\n }\n\n const { data, error } = useSWR<TalerExchangeResultByMethod<\"getDecisionsByState\">, TalerHttpError>(\n !session ? undefined : [session, state, offset],\n fetcher,\n );\n\n // const [lastAfter, setLastAfter] = useState<\n // HttpResponse<AmlExchangeBackend.AmlRecords, AmlExchangeBackend.AmlError>\n // >({ loading: true });\n\n // useEffect(() => {\n // if (afterData) setLastAfter(afterData);\n // }, [afterData]);\n\n // if (afterError) {\n // return afterError.cause;\n // }\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isLastPage =\n data && data.type === \"ok\" && data.body.records.length <= PAGE_SIZE;\n const isFirstPage = !offset;\n\n const pagination = {\n isLastPage,\n isFirstPage,\n loadMore: () => {\n if (isLastPage || data?.type !== \"ok\") return;\n const list = data.body.records\n setOffset(String(list[list.length - 1].rowid));\n },\n reset: () => {\n setOffset(undefined)\n },\n };\n\n // const public_accountslist = data?.type !== \"ok\" ? [] : data.body.public_accounts;\n if (!session) {\n return {\n data: {\n type: \"fail\",\n case: \"unauthorized\",\n detail: {}\n } as OperationFail<never>\n }\n }\n\n if (data) {\n if (data.type === \"fail\") {\n return { data }\n }\n const records = isLastPage ? data.body.records : removeLastElement(data.body.records)\n return { data: { type: \"ok\" as const, body: { records } }, pagination }\n }\n if (error) {\n return error;\n }\n return undefined;\n}\n\nconst example1: TalerExchangeApi.AmlRecords = {\n records: [\n {\n current_state: 0,\n h_payto: \"QWEQWEQWEQWEWQE\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 1,\n h_payto: \"ASDASDASD\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 2,\n h_payto: \"ZXCZXCZXCXZC\",\n rowid: 1,\n threshold: \"USD 1000\" as AmountString,\n },\n {\n current_state: 0,\n h_payto: \"QWEQWEQWEQWEWQE\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 1,\n h_payto: \"ASDASDASD\",\n rowid: 1,\n threshold: \"USD 100\" as AmountString,\n },\n {\n current_state: 2,\n h_payto: \"ZXCZXCZXCXZC\",\n rowid: 1,\n threshold: \"USD 1000\" as AmountString,\n },\n ].map((e, idx) => {\n e.rowid = idx;\n e.threshold = `${e.threshold}${idx}` as AmountString;\n return e;\n }),\n};\n\n\nfunction removeLastElement<T>(list: Array<T>): Array<T> {\n if (list.length === 0) {\n return list;\n }\n return list.slice(0, -1)\n}", "import { Fragment, h } from \"preact\";\nimport { useOfficer } from \"../hooks/useOfficer.js\";\nimport { HandleAccountNotReady } from \"./HandleAccountNotReady.js\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { uiSettings } from \"../settings.js\";\nimport { getInitialBackendBaseURL } from \"../hooks/useBackend.js\";\n\nexport function Officer() {\n const officer = useOfficer();\n const { i18n } = useTranslationContext()\n if (officer.state !== \"ready\") {\n return <HandleAccountNotReady officer={officer} />;\n }\n\n const url = new URL(getInitialBackendBaseURL())\n const signupEmail = uiSettings.signupEmail ?? `aml-signup@${url.hostname}`\n\n return (\n <div>\n <h1 class=\"my-2 text-3xl font-bold tracking-tight text-gray-900 \">\n <i18n.Translate>Public key</i18n.Translate>\n </h1>\n <div class=\"max-w-xl text-base leading-7 text-gray-700 lg:max-w-lg\">\n <p class=\"mt-6 font-mono break-all\">{officer.account.id}</p>\n </div>\n <p>\n <a\n href={`mailto:${signupEmail}?subject=${encodeURIComponent(\"Request AML signup\")}&body=${encodeURIComponent(`I want my AML account\\n\\n\\nPubKey: ${officer.account.id}`)}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n class=\"m-4 block rounded-md w-fit border-0 px-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-700\"\n >\n <i18n.Translate>Request account activation</i18n.Translate>\n </a>\n </p>\n <p>\n <button\n type=\"button\"\n onClick={() => {\n officer.lock();\n }}\n class=\"m-4 block rounded-md border-0 bg-gray-200 px-3 py-2 text-center text-sm text-black shadow-sm \"\n >\n <i18n.Translate>Lock account</i18n.Translate>\n </button>\n </p>\n <p>\n <button\n type=\"button\"\n onClick={() => {\n officer.forget();\n }}\n class=\"m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 \"\n >\n <i18n.Translate>Forget account</i18n.Translate>\n </button>\n </p>\n </div>\n );\n}\n", "import { VNode, h } from \"preact\";\nimport { OfficerNotReady } from \"../hooks/useOfficer.js\";\nimport { CreateAccount } from \"./CreateAccount.js\";\nimport { UnlockAccount } from \"./UnlockAccount.js\";\nimport { assertUnreachable } from \"@gnu-taler/taler-util\";\n\nexport function HandleAccountNotReady({\n officer,\n}: {\n officer: OfficerNotReady;\n}): VNode {\n if (officer.state === \"not-found\") {\n return (\n <CreateAccount\n onNewAccount={(password) => {\n officer.create(password);\n }}\n />\n );\n }\n\n if (officer.state === \"locked\") {\n return (\n <UnlockAccount\n onRemoveAccount={() => {\n officer.forget();\n }}\n onAccountUnlocked={async (pwd) => {\n await officer.tryUnlock(pwd);\n }}\n />\n );\n }\n assertUnreachable(officer)\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport {\n createNewForm,\n notifyError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/browser\";\nimport { VNode, h } from \"preact\";\nimport { useSettings } from \"../hooks/useSettings.js\";\n\nexport function CreateAccount({\n onNewAccount,\n}: {\n onNewAccount: (password: string) => void;\n}): VNode {\n const { i18n } = useTranslationContext();\n const Form = createNewForm<{\n password: string;\n repeat: string;\n }>();\n const [settings] = useSettings()\n\n return (\n <div class=\"flex min-h-full flex-col \">\n <div class=\"sm:mx-auto sm:w-full sm:max-w-md\">\n <h2 class=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900\">\n <i18n.Translate>Create account</i18n.Translate>\n </h2>\n </div>\n\n <div class=\"mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] \">\n <div class=\"bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12\">\n <Form.Provider\n computeFormState={(v) => {\n return {\n password: {\n error: !v.password\n ? i18n.str`required`\n : settings.allowInsecurePassword\n ? undefined\n : v.password.length < 8\n ? i18n.str`should have at least 8 characters`\n : !v.password.match(/[a-z]/) && v.password.match(/[A-Z]/)\n ? i18n.str`should have lowercase and uppercase characters`\n : !v.password.match(/\\d/)\n ? i18n.str`should have numbers`\n : !v.password.match(/[^a-zA-Z\\d]/)\n ? i18n.str`should have at least one character which is not a number or letter`\n : undefined,\n },\n repeat: {\n error: !v.repeat\n ? i18n.str`required`\n : v.repeat !== v.password\n ? i18n.str`doesn't match`\n : undefined,\n },\n };\n }}\n onSubmit={async (v, s) => {\n const error = s?.password?.error ?? s?.repeat?.error;\n if (error) {\n notifyError(\n \"Can't create account\" as TranslatedString,\n error as TranslatedString,\n );\n } else {\n onNewAccount(v.password!);\n }\n }}\n >\n <div class=\"mb-4\">\n <Form.InputLine\n label={\"Password\" as TranslatedString}\n name=\"password\"\n type=\"password\"\n help={\n settings.allowInsecurePassword\n ? i18n.str`short password are insecure, turn off insecure password in settings`\n : i18n.str`lower and upper case letters, number and special character`\n }\n required\n />\n </div>\n <div class=\"mb-4\">\n <Form.InputLine\n label={\"Repeat password\" as TranslatedString}\n name=\"repeat\"\n type=\"password\"\n required\n />\n </div>\n\n <div class=\"mt-8\">\n <button\n type=\"submit\"\n class=\"flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n <i18n.Translate>Create</i18n.Translate>\n </button>\n </div>\n </Form.Provider>\n </div>\n </div>\n </div>\n );\n}\n", "import { TranslatedString, UnwrapKeyError } from \"@gnu-taler/taler-util\";\nimport { createNewForm, notifyError, notifyInfo, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { VNode, h } from \"preact\";\n\nexport function UnlockAccount({\n onAccountUnlocked,\n onRemoveAccount,\n}: {\n onAccountUnlocked: (password: string) => Promise<void>;\n onRemoveAccount: () => void;\n}): VNode {\n const { i18n } = useTranslationContext()\n const Form = createNewForm<{\n password: string;\n }>();\n\n return (\n <div class=\"flex min-h-full flex-col \">\n <div class=\"sm:mx-auto sm:w-full sm:max-w-md\">\n <h1 class=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900\">\n <i18n.Translate>Account locked</i18n.Translate>\n </h1>\n <p class=\"mt-6 text-lg leading-8 text-gray-600\">\n <i18n.Translate>Your account is normally locked anytime you reload. To unlock type\n your password again.</i18n.Translate>\n </p>\n </div>\n\n <div class=\"mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] \">\n <div class=\"bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12\">\n <Form.Provider\n onSubmit={async (v) => {\n try {\n await onAccountUnlocked(v.password!);\n notifyInfo(\"Account unlocked\" as TranslatedString);\n } catch (e) {\n if (e instanceof UnwrapKeyError) {\n notifyError(\n \"Could not unlock account\" as any,\n e.message as any,\n );\n } else {\n throw e;\n }\n }\n }}\n >\n <div class=\"mb-4\">\n <Form.InputLine\n label={\"Password\" as TranslatedString}\n name=\"password\"\n type=\"password\"\n required\n />\n </div>\n\n <div class=\"mt-8\">\n <button\n type=\"submit\"\n class=\"flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n <i18n.Translate>Unlock</i18n.Translate>\n </button>\n </div>\n </Form.Provider>\n </div>\n <button\n type=\"button\"\n onClick={() => {\n onRemoveAccount();\n }}\n class=\"m-4 block rounded-md bg-red-600 px-3 py-2 text-center text-sm text-white shadow-sm hover:bg-red-500 \"\n >\n <i18n.Translate>Forget account</i18n.Translate>\n </button>\n </div>\n </div>\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nexport interface UiSettings {\n backendBaseURL?: string;\n signupEmail?: string;\n}\n\n/**\n * Global settings for the UI.\n */\nconst defaultSettings: UiSettings = {\n};\n\nexport const uiSettings: UiSettings =\n \"talerExchangeAmlSettings\" in globalThis\n ? (globalThis as any).talerExchangeAmlSettings\n : defaultSettings;\n", "import { canonicalizeBaseUrl } from \"@gnu-taler/taler-util\";\nimport {\n HttpResponseOk,\n RequestOptions,\n useApiContext,\n} from \"@gnu-taler/web-util/browser\";\nimport { useCallback } from \"preact/hooks\";\nimport { uiSettings } from \"../settings.js\";\n\ninterface useBackendType {\n request: <T>(\n path: string,\n options?: RequestOptions,\n ) => Promise<HttpResponseOk<T>>;\n fetcher: <T>(args: [string, string]) => Promise<HttpResponseOk<T>>;\n paginatedFetcher: <T>(\n args: [string, number, number, string],\n ) => Promise<HttpResponseOk<T>>;\n}\nexport function usePublicBackend(): useBackendType {\n const { request: requestHandler } = useApiContext();\n\n const baseUrl = getInitialBackendBaseURL();\n\n const request = useCallback(\n function requestImpl<T>(\n path: string,\n options: RequestOptions = {},\n ): Promise<HttpResponseOk<T>> {\n return requestHandler<T>(baseUrl, path, options);\n },\n [baseUrl],\n );\n\n const fetcher = useCallback(\n function fetcherImpl<T>([endpoint, talerAmlOfficerSignature]: [string, string]): Promise<HttpResponseOk<T>> {\n return requestHandler<T>(baseUrl, endpoint, {\n talerAmlOfficerSignature\n });\n },\n [baseUrl],\n );\n const paginatedFetcher = useCallback(\n function fetcherImpl<T>([endpoint, page, size, talerAmlOfficerSignature]: [\n string,\n number,\n number,\n string,\n ]): Promise<HttpResponseOk<T>> {\n return requestHandler<T>(baseUrl, endpoint, {\n params: { page: page || 1, size },\n talerAmlOfficerSignature,\n });\n },\n [baseUrl],\n );\n return {\n request,\n fetcher,\n paginatedFetcher,\n };\n}\n\nexport function getInitialBackendBaseURL(): string {\n const overrideUrl =\n typeof localStorage !== \"undefined\"\n ? localStorage.getItem(\"exchange-base-url\")\n : undefined;\n\n let result: string;\n\n if (!overrideUrl) {\n //normal path\n if (!uiSettings.backendBaseURL) {\n console.error(\n \"ERROR: backendBaseURL was overridden by a setting file and missing. Setting value to 'window.origin'\",\n ); \n result = typeof (window as any) !== \"undefined\" ? window.origin : \"localhost\"\n } else {\n result = uiSettings.backendBaseURL;\n }\n } else {\n // testing/development path\n result = overrideUrl\n }\n try {\n return canonicalizeBaseUrl(result)\n } catch (e) {\n //fall back\n return canonicalizeBaseUrl(window.origin)\n }\n}\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { currencyList } from \"./index.js\";\nimport { resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_5.Form> => ({\n design: [\n {\n title: \"Customer Profile\" as TranslatedString,\n description:\n \"The information below has to refer to the persons from whom the assets originate ultimately (e.g. beneficial owner of the assets, founder/creator of a trust or foundation). Is the customer an operational legal entity or partnership the information may refer to the entity itself (not to the controlling person), unless the entity holds the assets in trust for a third party.\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n name: \"customer\",\n label: \"Customer\" as TranslatedString,\n help: \"Pursuant Identification Form (VQF doc. No. 902.1) numeral 1\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Business activity\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Profession, business activities\" as TranslatedString,\n name: \"businessActivity\",\n help: \"former, current, potentially planned\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Financial circumstances\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Income and assets, liabilities\" as TranslatedString,\n name: \"financial\",\n help: \"estimated\" as TranslatedString,\n },\n },\n ],\n },\n {\n title: \"Origin of the deposited assets involved\" as TranslatedString,\n fields: [\n {\n type: \"text\",\n props: {\n label: \"Nature\" as TranslatedString,\n name: \"originOfAssets.nature\",\n help: \"nature of the involved assets\" as TranslatedString,\n },\n },\n {\n type: \"selectOne\",\n props: {\n name: \"originOfAssets.currency\",\n label: \"Currency\" as TranslatedString,\n choices: currencyList,\n },\n },\n {\n type: \"integer\",\n props: {\n label: \"Amount\" as TranslatedString,\n name: \"originOfAssets.amount\",\n },\n },\n {\n type: \"choiceStacked\",\n props: {\n label: \"Category\" as TranslatedString,\n name: \"originOfAssets.category\",\n choices: [\n {\n label: \"Savings\" as TranslatedString,\n value: \"savings\",\n },\n {\n label: \"Own business operations\" as TranslatedString,\n value: \"own-business\",\n },\n {\n label: \"Inheritance\" as TranslatedString,\n value: \"inheritance\",\n },\n {\n label: \"Other, what?\" as TranslatedString,\n value: \"other\",\n },\n ],\n },\n },\n {\n type: \"text\",\n props: {\n label: \"Other category\" as TranslatedString,\n name: \"originOfAssets.categoryOther\",\n required: true,\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Detailed description of the origins/economical background of the assets involved in the business relationship\" as TranslatedString,\n name: \"originOfAssets.details\",\n },\n },\n ],\n },\n {\n title:\n \"Nature and purpose of the business relationship\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Purpose of the business relationship\" as TranslatedString,\n name: \"nature.purpose\",\n help: \"nature of the involved assets\" as TranslatedString,\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Information on the planned development of the business relationship and the assets\" as TranslatedString,\n name: \"nature.plan\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Especially in the case of cash or money and asset transfer transactions with regular customers: Details on usual business volume, Information on the beneficiaries, (Full name, address, bank account)\" as TranslatedString,\n name: \"nature.cashOrMoneyTransfer\",\n },\n },\n ],\n },\n {\n title: \"Relationship with third parties\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to the beneficial owner involved in the business relationship\" as TranslatedString,\n name: \"relations.beneficialOwners\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to the controlling persons involved in the business relationship\" as TranslatedString,\n name: \"relations.controllingPersons\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to the authorized signatories involved in the business relationship\" as TranslatedString,\n name: \"relations.authorizedSignatories\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label:\n \"Relation of the customer to other persons involved in the business relationship\" as TranslatedString,\n name: \"relations.otherPersons\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label: \"Relation to other AMLA-Files\" as TranslatedString,\n name: \"relations.withOtherAmlaFiles\",\n },\n },\n {\n type: \"textArea\",\n props: {\n label: \"Introducer / agents / references\" as TranslatedString,\n name: \"relations.references\",\n },\n },\n ],\n },\n {\n title: \"Further information\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n label: \"Other relevant information\" as TranslatedString,\n name: \"furtherInformation\",\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_5.Form>,\n ): FormState<Form902_5.Form> {\n return {\n originOfAssets: {\n categoryOther: {\n hidden: v.originOfAssets?.category !== \"other\",\n },\n },\n };\n },\n});\n\nnamespace Form902_5 {\n export interface Form extends BaseForm {\n customer: string;\n fullName: string;\n businessActivity: string;\n financial: string;\n originOfAssets: {\n nature: string;\n currency: string;\n amount: number;\n category: \"savings\" | \"own-business\" | \"inheritance\" | \"other\";\n categoryOther: string;\n details: string;\n };\n nature: {\n purpose: string;\n plan: string;\n cashOrMoneyTransfer: string;\n };\n relations: {\n beneficialOwners: string;\n controllingPersons: string;\n authorizedSignatories: string;\n otherPersons: string;\n withOtherAmlaFiles: string;\n references: string;\n };\n furtherInformation: string;\n }\n}\n", "import { AbsoluteTime, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { FlexibleForm, FormState } from \"@gnu-taler/web-util/browser\";\nimport { BaseForm } from \"../pages/AntiMoneyLaunderingForm.js\";\nimport { resolutionSection } from \"./simplest.js\";\n\nexport const v1 = (current: BaseForm): FlexibleForm<Form902_9.Form> => ({\n design: [\n {\n title:\n \"Declaration of identity of the beneficial owner\" as TranslatedString,\n fields: [\n {\n type: \"textArea\",\n props: {\n name: \"contractingPartner\",\n label: \"Contracting partner\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner hereby declares that the person(s) listed below is/are the beneficial owner(s) of the assets involved in the business relationship. If the contracting partner is also the sole beneficial owner of the assets, the contracting partner's detail must be set out below\" as TranslatedString,\n },\n },\n {\n type: \"array\",\n props: {\n label: \"Persons\" as TranslatedString,\n labelField: \"surname\",\n name: \"persons\",\n fields: [\n {\n type: \"text\",\n props: {\n name: \"surname\",\n label: \"Surname(s)\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"firstName\",\n label: \"First name(s)\" as TranslatedString,\n },\n },\n {\n type: \"absoluteTime\",\n props: {\n name: \"dateOfBirth\",\n label: \"Date of birth\" as TranslatedString,\n pattern: \"dd/MM/yyyy\",\n // help: \"format 'dd/MM/yyyy'\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"nationality\",\n label: \"Nationality\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"address\",\n label: \"Actual address of domicile\" as TranslatedString,\n },\n },\n ],\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"The contracting partner hereby undertakes to inform automatically of any changes to the information contained herein\" as TranslatedString,\n },\n },\n {\n type: \"text\",\n props: {\n name: \"signature\",\n label: \"Signature\" as TranslatedString,\n },\n },\n {\n type: \"caption\",\n props: {\n label:\n \"It is a criminal offense to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery)\" as TranslatedString,\n },\n },\n ],\n },\n resolutionSection(current),\n ],\n behavior: function formBehavior(\n v: Partial<Form902_9.Form>,\n ): FormState<Form902_9.Form> {\n return {\n };\n },\n});\n\nnamespace Form902_9 {\n interface Person {\n surname: string;\n firstName: string;\n dateOfBirth: AbsoluteTime;\n nationality: string;\n address: string;\n }\n export interface Form extends BaseForm {\n contractingPartner: string;\n persons: Person;\n signature: string;\n }\n}\n", "import { Amounts, TalerExchangeApi, TalerProtocolTimestamp, TranslatedString } from \"@gnu-taler/taler-util\";\nimport { LocalNotificationBanner, useLocalNotification, useTranslationContext } from \"@gnu-taler/web-util/browser\";\nimport { Fragment, VNode, h } from \"preact\";\nimport { useExchangeApiContext } from \"../context/config.js\";\nimport { useOfficer } from \"../hooks/useOfficer.js\";\nimport { Pages } from \"../pages.js\";\nimport { AntiMoneyLaunderingForm, allForms } from \"./AntiMoneyLaunderingForm.js\";\nimport { HandleAccountNotReady } from \"./HandleAccountNotReady.js\";\n\nexport function NewFormEntry({\n account,\n type,\n}: {\n account?: string;\n type?: string;\n}): VNode {\n const { i18n } = useTranslationContext()\n const officer = useOfficer();\n const { api } = useExchangeApiContext()\n const [notification, notify, handleError] = useLocalNotification()\n\n if (!account) {\n return <div>no account</div>;\n }\n if (!type) {\n return <SelectForm account={account} />;\n }\n if (officer.state !== \"ready\") {\n return <HandleAccountNotReady officer={officer} />;\n }\n\n return (\n <Fragment>\n <LocalNotificationBanner notification={notification} />\n\n <AntiMoneyLaunderingForm\n account={account}\n formId={type}\n onSubmit={async (justification, new_state, new_threshold) => {\n\n const decision: Omit<TalerExchangeApi.AmlDecision, \"officer_sig\"> = {\n justification: JSON.stringify(justification),\n decision_time: TalerProtocolTimestamp.now(),\n h_payto: account,\n new_state,\n new_threshold: Amounts.stringify(new_threshold),\n kyc_requirements: undefined\n }\n await handleError(async () => {\n const resp = await api.addDecisionDetails(officer.account, decision);\n if (resp.type === \"ok\") {\n window.location.href = Pages.cases.url;\n return;\n }\n switch (resp.case) {\n case \"unauthorized\": return notify({\n type: \"error\",\n title: i18n.str`Wrong credentials for \"${officer.account}\"`,\n description: resp.detail.hint as TranslatedString,\n debug: resp.detail,\n })\n case \"officer-or-account-not-found\": return notify({\n type: \"error\",\n title: i18n.str`Officer or account not found`,\n description: resp.detail.hint as TranslatedString,\n debug: resp.detail,\n })\n case \"officer-disabled-or-recent-decision\": return notify({\n type: \"error\",\n title: i18n.str`Officer disabled or more recent decision was already submitted.`,\n description: resp.detail.hint as TranslatedString,\n debug: resp.detail,\n })\n }\n })\n }}\n />\n </Fragment>\n );\n}\n\nfunction SelectForm({ account }: { account: string }) {\n return (\n <div>\n <pre>New form for account: {account.substring(0, 16)}...</pre>\n {allForms.map((form, idx) => {\n return (\n <a\n href={Pages.newFormEntry.url({ account, type: form.id })}\n class=\"m-4 block rounded-md w-fit border-0 p-3 py-2 text-center text-sm bg-indigo-700 text-white shadow-sm hover:bg-indigo-600\"\n >\n {form.label}\n </a>\n );\n })}\n </div>\n );\n}\n", "export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}", "function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n", "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { createHashHistory } from \"history\";\nimport { ComponentChildren, h as create, createContext, VNode } from \"preact\";\nimport { useContext, useEffect, useState } from \"preact/hooks\";\n\ntype ContextType = {\n onChange: (listener: () => void) => VoidFunction\n}\nconst nullChangeListener = { onChange: () => () => { } }\nconst Context = createContext<ContextType>(nullChangeListener);\n\nexport const usePathChangeContext = (): ContextType => useContext(Context);\n\nexport function HashPathProvider({ children }: { children: ComponentChildren }): VNode {\n const history = createHashHistory();\n return create(Context.Provider, { value: { onChange: history.listen }, children }, children)\n}\n\ntype PageDefinition<DynamicPart extends Record<string, string>> = {\n pattern: string;\n (params: DynamicPart): string;\n};\n\nfunction replaceAll(\n pattern: string,\n vars: Record<string, string>,\n values: Record<string, string>,\n): string {\n let result = pattern;\n for (const v in vars) {\n result = result.replace(vars[v], !values[v] ? \"\" : values[v]);\n }\n return result;\n}\n\nexport function pageDefinition<T extends Record<string, string>>(\n pattern: string,\n): PageDefinition<T> {\n const patternParams = pattern.match(/(:[\\w?]*)/g);\n if (!patternParams)\n throw Error(\n `page definition pattern ${pattern} doesn't have any parameter`,\n );\n\n const vars = patternParams.reduce((prev, cur) => {\n const pName = cur.match(/(\\w+)/g);\n\n //skip things like :? in the path pattern\n if (!pName || !pName[0]) return prev;\n const name = pName[0];\n return { ...prev, [name]: cur };\n }, {} as Record<string, string>);\n\n const f = (values: T): string => replaceAll(pattern, vars, values);\n f.pattern = pattern;\n return f;\n}\n\nexport type PageEntry<T = unknown> = T extends Record<string, string>\n ? {\n url: PageDefinition<T>;\n view: (props: T) => VNode;\n name: TranslatedString,\n Icon?: () => VNode,\n }\n : T extends unknown\n ? {\n url: string;\n view: (props: {}) => VNode;\n name: TranslatedString,\n Icon?: () => VNode,\n }\n : never;\n\nexport function Router({\n pageList,\n onNotFound,\n}: {\n pageList: Array<PageEntry<any>>;\n onNotFound: () => VNode;\n}): VNode {\n const current = useCurrentLocation(pageList);\n if (current !== undefined) {\n return create(current.page.view, current.values);\n }\n return onNotFound();\n}\n\ntype Location = {\n page: PageEntry<any>;\n path: string;\n values: Record<string, string>;\n};\nexport function useCurrentLocation(pageList: Array<PageEntry<any>>): Location | undefined {\n const [currentLocation, setCurrentLocation] = useState<Location | null | undefined>(null);\n const path = usePathChangeContext();\n useEffect(() => {\n return path.onChange(() => {\n const result = doSync(window.location.hash, new URLSearchParams(window.location.search), pageList);\n setCurrentLocation(result);\n });\n }, []);\n if (currentLocation === null) {\n return doSync(window.location.hash, new URLSearchParams(window.location.search), pageList);\n }\n return currentLocation;\n}\n\nexport function useChangeLocation() {\n const [location, setLocation] = useState(window.location.hash)\n const path = usePathChangeContext()\n useEffect(() => {\n return path.onChange(() => {\n setLocation(window.location.hash)\n });\n }, []);\n return location;\n}\n\n/**\n * Search path in the pageList\n * get the values from the path found\n * add params from searchParams\n *\n * @param path\n * @param params\n */\nexport function doSync(path: string, params: URLSearchParams, pageList: Array<PageEntry<any>>): Location | undefined {\n for (let idx = 0; idx < pageList.length; idx++) {\n const page = pageList[idx];\n if (typeof page.url === \"string\") {\n if (page.url === path) {\n const values: Record<string, string> = {};\n params.forEach((v, k) => {\n values[k] = v;\n });\n return { page, values, path };\n }\n } else {\n const values = doestUrlMatchToRoute(path, page.url.pattern);\n if (values !== undefined) {\n params.forEach((v, k) => {\n values[k] = v;\n });\n return { page, values, path };\n }\n }\n }\n return undefined;\n}\n\nfunction doestUrlMatchToRoute(\n url: string,\n route: string,\n): undefined | Record<string, string> {\n const paramsPattern = /(?:\\?([^#]*))?$/;\n // const paramsPattern = /(?:\\?([^#]*))?(#.*)?$/;\n const params = url.match(paramsPattern);\n const urlWithoutParams = url.replace(paramsPattern, \"\");\n\n const result: Record<string, string> = {};\n if (params && params[1]) {\n const paramList = params[1].split(\"&\");\n for (let i = 0; i < paramList.length; i++) {\n const idx = paramList[i].indexOf(\"=\");\n const name = paramList[i].substring(0, idx);\n const value = paramList[i].substring(idx + 1);\n result[decodeURIComponent(name)] = decodeURIComponent(value);\n }\n }\n const urlSeg = urlWithoutParams.split(\"/\");\n const routeSeg = route.split(\"/\");\n let max = Math.max(urlSeg.length, routeSeg.length);\n for (let i = 0; i < max; i++) {\n if (routeSeg[i] && routeSeg[i].charAt(0) === \":\") {\n const param = routeSeg[i].replace(/(^:|[+*?]+$)/g, \"\");\n\n const flags = (routeSeg[i].match(/[+*?]+$/) || EMPTY)[0] || \"\";\n const plus = ~flags.indexOf(\"+\");\n const star = ~flags.indexOf(\"*\");\n const val = urlSeg[i] || \"\";\n\n if (!val && !star && (flags.indexOf(\"?\") < 0 || plus)) {\n return undefined;\n }\n result[param] = decodeURIComponent(val);\n if (plus || star) {\n result[param] = urlSeg.slice(i).map(decodeURIComponent).join(\"/\");\n break;\n }\n } else if (routeSeg[i] !== urlSeg[i]) {\n return undefined;\n }\n }\n return result;\n}\nconst EMPTY: Record<string, string> = {};\n", "import { TranslatedString } from \"@gnu-taler/taler-util\";\nimport { AntiMoneyLaunderingForm } from \"./pages/AntiMoneyLaunderingForm.js\";\nimport { CaseDetails } from \"./pages/CaseDetails.js\";\nimport { Cases, HomeIcon, PeopleIcon } from \"./pages/Cases.js\";\nimport { NewFormEntry } from \"./pages/NewFormEntry.js\";\nimport { Officer } from \"./pages/Officer.js\";\nimport { PageEntry, pageDefinition } from \"./route.js\";\n// import homeLogo from \"./assets/home.svg\";\n// import peopleLogo from \"./assets/people.svg\";\nconst cases: PageEntry = {\n url: \"#/cases\",\n view: Cases,\n name: \"Cases\" as TranslatedString,\n Icon: HomeIcon,\n};\n\nconst officer: PageEntry = {\n url: \"#/officer\",\n view: Officer,\n name: \"Officer\" as TranslatedString,\n Icon: PeopleIcon,\n};\n\nconst account: PageEntry<{ account: string }> = {\n url: pageDefinition(\"#/account/:account\"),\n view: CaseDetails,\n name: \"Account\" as TranslatedString,\n // icon: () => undefined,\n};\n\nconst newFormEntry: PageEntry<{ account?: string; type?: string }> = {\n url: pageDefinition(\"#/account/:account/new/:type?\"),\n view: NewFormEntry,\n name: \"New Form\" as TranslatedString,\n // icon: () => undefined,\n};\n\n\nexport const Pages = {\n cases,\n officer,\n account,\n newFormEntry,\n};\n", "/*\n This file is part of GNU Taler\n (C) 2022 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>\n */\n\nimport { App } from \"./App.js\";\nimport { h, render } from \"preact\";\n\nconst app = document.getElementById(\"app\");\n\nrender(<App />, app as any);\n"],
+ "mappings": "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C,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAA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",
+ "names": ["undefined", "v", "sign", "n", "i", "x", "add", "a", "b", "r", "base", "l", "j", "y", "d", "c", "l2", "q", "self", "_2", "t", "fn", "p", "e", "isValid", "max", "min", "_", "i", "l", "Jed", "i18n", "x", "k", "match", "n", "p", "hash", "parse", "self", "table", "a", "r", "lexer", "c", "assign", "obj", "props", "i", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "slice", "call", "defaultProps", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__d", "__c", "__h", "constructor", "__v", "vnodeId", "options", "createRef", "current", "Fragment", "Component", "context", "this", "getDomSibling", "childIndex", "indexOf", "sibling", "updateParentDomPointers", "child", "base", "enqueueRender", "c", "rerenderQueue", "push", "process", "prevDebounce", "debounceRendering", "setTimeout", "queue", "__r", "sort", "a", "b", "some", "component", "commitQueue", "oldVNode", "oldDom", "parentDom", "__P", "diff", "ownerSVGElement", "commitRoot", "diffChildren", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "isSvg", "excessDomChildren", "isHydrating", "j", "childVNode", "newDom", "firstChildDom", "refs", "oldChildren", "EMPTY_ARR", "oldChildrenLength", "Array", "isArray", "EMPTY_OBJ", "reorderChildren", "placeChild", "unmount", "applyRef", "tmp", "toChildArray", "out", "nextDom", "sibDom", "outer", "appendChild", "nextSibling", "insertBefore", "diffProps", "dom", "newProps", "oldProps", "hydrate", "setProperty", "setStyle", "style", "value", "IS_NON_DIMENSIONAL", "test", "name", "oldValue", "useCapture", "o", "cssText", "replace", "toLowerCase", "l", "addEventListener", "eventProxyCapture", "eventProxy", "removeEventListener", "e", "removeAttribute", "setAttribute", "event", "newVNode", "isNew", "oldState", "snapshot", "clearProcessingException", "provider", "componentContext", "renderHook", "count", "newType", "contextType", "__E", "prototype", "render", "doRender", "sub", "state", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "forEach", "componentWillUpdate", "componentDidUpdate", "getChildContext", "getSnapshotBeforeUpdate", "diffElementNodes", "diffed", "root", "cb", "oldHtml", "newHtml", "nodeType", "localName", "document", "createTextNode", "createElementNS", "is", "data", "childNodes", "dangerouslySetInnerHTML", "attributes", "__html", "innerHTML", "checked", "parentVNode", "skipRemove", "r", "componentWillUnmount", "replaceNode", "firstChild", "cloneElement", "createContext", "defaultValue", "contextId", "Consumer", "contextValue", "Provider", "subs", "ctx", "_props", "old", "splice", "isValidElement", "error", "errorInfo", "ctor", "handled", "getDerivedStateFromError", "setState", "componentDidCatch", "update", "callback", "s", "forceUpdate", "getHookState", "index", "type", "options", "__h", "currentComponent", "currentHook", "hooks", "__H", "__", "length", "push", "__V", "EMPTY", "useState", "initialState", "useReducer", "invokeOrReturn", "reducer", "init", "hookState", "currentIndex", "_reducer", "__c", "action", "currentValue", "__N", "nextValue", "setState", "_hasScuFromHooks", "prevScu", "shouldComponentUpdate", "p", "s", "c", "stateHooks", "filter", "x", "every", "call", "this", "shouldUpdate", "forEach", "hookItem", "props", "useEffect", "callback", "args", "state", "__s", "argsChanged", "_pendingArgs", "useLayoutEffect", "useRef", "initialValue", "useMemo", "current", "useImperativeHandle", "ref", "createHandle", "concat", "factory", "useCallback", "useContext", "context", "provider", "sub", "value", "useDebugValue", "formatter", "useErrorBoundary", "cb", "errState", "componentDidCatch", "err", "errorInfo", "undefined", "useId", "root", "__v", "__m", "mask", "flushAfterPaintEffects", "component", "afterPaintEffects", "shift", "invokeCleanup", "invokeEffect", "e", "__e", "afterNextFrame", "raf", "done", "clearTimeout", "timeout", "HAS_RAF", "cancelAnimationFrame", "setTimeout", "requestAnimationFrame", "hook", "comp", "cleanup", "oldArgs", "newArgs", "some", "arg", "f", "previousComponent", "prevRaf", "oldBeforeDiff", "oldBeforeRender", "oldAfterDiff", "oldCommit", "oldBeforeUnmount", "diffed", "unmount", "__b", "vnode", "commitQueue", "hasErrored", "assign", "obj", "props", "i", "shallowDiffers", "a", "b", "is", "x", "y", "PureComponent", "p", "this", "memo", "c", "comparer", "shouldUpdate", "nextProps", "ref", "updateRef", "call", "current", "Memoed", "shouldComponentUpdate", "createElement", "displayName", "name", "prototype", "isReactComponent", "forwardRef", "fn", "Forwarded", "clone", "$$typeof", "REACT_FORWARD_SYMBOL", "render", "__f", "detachedClone", "vnode", "detachedParent", "parentDom", "__c", "forEach", "effect", "__H", "__P", "__k", "map", "child", "removeOriginal", "originalParent", "__v", "__e", "insertBefore", "__d", "Suspense", "__u", "_suspenders", "suspended", "component", "__", "__a", "lazy", "loader", "prom", "error", "Lazy", "then", "exports", "default", "e", "SuspenseList", "_next", "_map", "ContextProvider", "getChildContext", "context", "children", "Portal", "_this", "container", "_container", "componentWillUnmount", "_temp", "nodeType", "parentNode", "childNodes", "appendChild", "push", "before", "removeChild", "splice", "indexOf", "createPortal", "el", "containerInfo", "parent", "callback", "textContent", "preactRender", "hydrate", "preactHydrate", "empty", "isPropagationStopped", "cancelBubble", "isDefaultPrevented", "defaultPrevented", "createFactory", "type", "bind", "isValidElement", "element", "REACT_ELEMENT_TYPE", "cloneElement", "preactCloneElement", "apply", "arguments", "unmountComponentAtNode", "findDOMNode", "base", "Fragment", "startTransition", "cb", "useDeferredValue", "val", "useTransition", "useLayoutEffect", "useSyncExternalStore", "subscribe", "getSnapshot", "value", "_useState", "useState", "_instance", "_getSnapshot", "forceUpdate", "useEffect", "oldDiffHook", "mapFn", "Children", "oldCatchError", "oldUnmount", "resolve", "CAMEL_PROPS", "IS_DOM", "onChangeInputType", "oldEventHook", "currentComponent", "classNameDescriptor", "oldVNodeHook", "oldBeforeRender", "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED", "version", "unstable_batchedUpdates", "flushSync", "StrictMode", "useInsertionEffect", "index", "Component", "isPureReactComponent", "state", "options", "__b", "Symbol", "for", "toChildArray", "count", "length", "only", "normalized", "toArray", "newVNode", "oldVNode", "errorInfo", "unmount", "__R", "__h", "promise", "suspendingVNode", "suspendingComponent", "resolved", "onResolved", "onSuspensionComplete", "suspendedVNode", "setState", "pop", "wasHydrating", "document", "detachedComponent", "__O", "fallback", "list", "node", "delete", "revealOrder", "size", "delegated", "get", "unsuspend", "wrappedUnsuspend", "Map", "reverse", "set", "componentDidUpdate", "componentDidMount", "test", "key", "Object", "defineProperty", "configurable", "v", "writable", "event", "persist", "nativeEvent", "class", "normalizedProps", "nonCustomElement", "toLowerCase", "replace", "multiple", "Array", "isArray", "selected", "defaultValue", "className", "enumerable", "__r", "ReactCurrentDispatcher", "readContext", "__n", "arg", "useId", "useReducer", "useRef", "useImperativeHandle", "useMemo", "useCallback", "useContext", "useDebugValue", "createContext", "createRef", "e", "h", "a", "b", "k", "l", "m", "n", "p", "q", "d", "f", "c", "g", "r", "t", "u", "r", "i", "x", "n", "h", "l", "y", "d", "o", "p", "k", "c", "j2", "j3", "x2", "x3", "x4", "x5", "x6", "u", "m", "b", "z", "s", "sn", "t2", "t3", "t4", "d2", "d3", "d4", "d5", "h2", "h3", "h4", "r2", "g", "f", "a", "v", "q", "t", "j", "t22", "b2", "b3", "b4", "b5", "m", "n", "i", "j", "h", "l", "a", "b", "c", "d", "x", "r", "p", "q", "e", "f", "g", "t", "s", "k", "m", "n", "i", "t", "h", "p", "q", "k", "n", "i", "b", "i", "i", "h", "fn", "m", "c", "i", "x", "z", "i", "o", "y", "m", "n", "h", "r", "j", "p", "x", "n", "i", "v", "TalerErrorCode", "fn", "counter", "k", "i", "n", "j", "w", "t", "m", "q", "i", "c", "a", "b", "R", "n", "counter", "e", "base", "res", "v", "URL", "URLSearchParams", "x", "URL", "e", "s", "i", "s2", "LogLevel", "m", "e", "location", "c", "p", "x", "x", "c", "map", "i", "x", "c", "s", "x", "c", "e", "x", "c", "a2", "x2", "a", "b", "n", "r", "s", "r2", "e", "i", "names", "normal", "small", "LibtoolVersion", "compare", "v", "NotificationType", "K", "w", "v", "p", "a", "b", "c", "d", "e", "f", "g", "h", "u", "i", "j", "t2", "h", "blockSize", "k", "i", "b2", "TalerPreciseTimestamp", "t", "s", "TalerProtocolTimestamp", "t2", "Duration", "d", "s", "i", "d2", "n", "AbsoluteTime", "t2", "t", "at", "x", "c", "DenomKeyType", "t", "DenominationPubKey", "p2", "ExchangeProtocolVersion", "MerchantProtocolVersion", "n", "a", "d", "v", "N", "i", "j", "s", "c", "p", "hash", "d", "logger", "n", "TalerSignaturePurpose", "WalletAccountMergeFlags", "c", "p", "x", "bigint", "Edx25519", "L", "sign", "a", "AgeRestriction", "m", "i", "c2", "k2", "d", "ContractFormatTag", "bigint", "i", "b", "v", "s", "ReserveTransactionType", "s", "p", "TalerUriType", "TalerUriAction", "s", "c", "q", "URLSearchParams", "p", "v", "k", "TransactionMajorState", "TransactionMinorState", "TransactionAction", "TransactionType", "WithdrawalType", "PaymentStatus", "TransactionAmountMode", "BalanceFlag", "ScopeType", "CoinStatus", "ConfirmPayResultType", "PreparePayResultType", "RefreshReason", "ExchangeTosStatus", "ExchangeEntryStatus", "ExchangeUpdateStatus", "RecoveryMergeStrategy", "AttentionPriority", "AttentionType", "logger", "s", "i", "c", "i", "x", "n", "c", "s", "fnutil", "f", "x", "HttpStatusCode", "logger", "d", "s", "logger", "_a", "CancellationToken", "logger", "ContractTermsUtil", "i", "x", "h", "k", "e", "hash", "d", "e", "err", "x", "logger", "Headers", "r", "m", "v", "k", "e", "e", "r", "logger", "logger", "CreditDebitIndicator", "s", "TanChannel", "TalerCorebankApi", "MonitorTimeframeParam", "TalerExchangeApi", "AmlState", "compare", "account", "account", "e", "v", "k", "e", "p", "h", "initial", "storage", "storage", "hash", "useState", "useEffect", "i", "i18n", "error", "error", "d", "logger", "TalerError", "TalerErrorCode", "e", "Headers", "Context", "createContext", "initial", "useEffect", "h", "useContext", "__export", "p", "e", "error", "i18n", "TalerErrorCode", "h", "assertUnreachable", "s", "useState", "useEffect", "l", "lang", "Fragment", "e", "VERSION", "GIT_HASH", "versionText", "h", "Fragment", "n", "_typeof", "obj", "add", "defaultOptions", "MILLISECONDS_IN_WEEK", "sign", "y", "M", "d", "a", "H", "m", "s", "S", "formatters", "G", "localize", "Y", "R", "u", "Q", "q", "L", "w", "I", "D", "E", "e", "c", "i", "b", "B", "K", "k", "X", "x", "O", "z", "t", "T", "delimiter", "dateLongFormatter", "formatLong", "timeLongFormatter", "dateTimeLongFormatter", "format", "formatDistance", "formatRelative", "ordinalNumber", "valueCallback", "locale", "_typeof", "obj", "o", "p", "_setPrototypeOf", "self", "e", "_getPrototypeOf", "i", "Setter", "ValueSetter", "DateToSystemTimezoneSetter", "_classCallCheck", "_defineProperties", "_createClass", "Parser", "match", "_inherits", "_createSuper", "_isNativeReflectConstruct", "_possibleConstructorReturn", "_assertThisInitialized", "_defineProperty", "EraParser", "parse", "sign", "n", "YearParser", "valueCallback", "LocalWeekYearParser", "ISOWeekYearParser", "ExtendedYearParser", "QuarterParser", "StandAloneQuarterParser", "MonthParser", "StandAloneMonthParser", "LocalWeekParser", "ISOWeekParser", "DateParser", "DayOfYearParser", "defaultOptions", "DayParser", "LocalDayParser", "StandAloneLocalDayParser", "ISODayParser", "AMPMParser", "AMPMMidnightParser", "DayPeriodParser", "Hour1to12Parser", "Hour0to23Parser", "Hour0To11Parser", "Hour1To24Parser", "MinuteParser", "SecondParser", "FractionOfSecondParser", "ISOTimezoneWithZParser", "ISOTimezoneParser", "TimestampSecondsParser", "TimestampMillisecondsParser", "parsers", "F", "s", "f", "formattingTokensRegExp", "longFormattingTokensRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "unescapedLatinCharacterRegExp", "locale", "_loop", "cleanEscapedString", "setter", "a", "b", "_typeof", "obj", "useState", "i18n", "h", "add", "createContext", "initial", "notify", "v", "e", "useContext", "names", "Fragment", "error", "useEffect", "AbsoluteTime", "f", "b", "i", "Context", "q", "p", "i18n", "h", "error", "Context", "account", "officer", "b", "k", "i18n", "v", "toInteger", "requiredArgs", "_typeof", "obj", "toDate", "requiredArgs", "addMilliseconds", "requiredArgs", "toDate", "toInteger", "defaultOptions", "getDefaultOptions", "getTimezoneOffsetInMilliseconds", "_typeof", "obj", "isDate", "requiredArgs", "isValid", "requiredArgs", "isDate", "toDate", "subMilliseconds", "requiredArgs", "toInteger", "addMilliseconds", "MILLISECONDS_IN_DAY", "getUTCDayOfYear", "requiredArgs", "toDate", "startOfUTCISOWeek", "requiredArgs", "toDate", "getUTCISOWeekYear", "requiredArgs", "toDate", "startOfUTCISOWeek", "startOfUTCISOWeekYear", "requiredArgs", "getUTCISOWeekYear", "startOfUTCISOWeek", "MILLISECONDS_IN_WEEK", "getUTCISOWeek", "requiredArgs", "toDate", "startOfUTCISOWeek", "startOfUTCISOWeekYear", "startOfUTCWeek", "requiredArgs", "defaultOptions", "getDefaultOptions", "toInteger", "toDate", "getUTCWeekYear", "requiredArgs", "toDate", "defaultOptions", "getDefaultOptions", "toInteger", "startOfUTCWeek", "startOfUTCWeekYear", "requiredArgs", "defaultOptions", "getDefaultOptions", "toInteger", "getUTCWeekYear", "startOfUTCWeek", "MILLISECONDS_IN_WEEK", "getUTCWeek", "requiredArgs", "toDate", "startOfUTCWeek", "startOfUTCWeekYear", "addLeadingZeros", "sign", "formatters", "y", "addLeadingZeros", "M", "d", "a", "h", "H", "m", "s", "S", "lightFormatters_default", "dayPeriodEnum", "formatters", "G", "localize", "y", "lightFormatters_default", "Y", "getUTCWeekYear", "addLeadingZeros", "R", "getUTCISOWeekYear", "u", "Q", "q", "M", "L", "w", "getUTCWeek", "I", "getUTCISOWeek", "d", "D", "getUTCDayOfYear", "E", "e", "c", "i", "a", "b", "B", "h", "H", "K", "k", "m", "s", "S", "X", "formatTimezoneWithOptionalMinutes", "formatTimezone", "x", "O", "formatTimezoneShort", "z", "t", "T", "sign", "delimiter", "formatters_default", "dateLongFormatter", "formatLong", "timeLongFormatter", "dateTimeLongFormatter", "longFormatters", "longFormatters_default", "protectedDayOfYearTokens", "protectedWeekYearTokens", "isProtectedDayOfYearToken", "isProtectedWeekYearToken", "throwProtectedError", "format", "formatDistanceLocale", "formatDistance", "formatDistance_default", "buildFormatLongFn", "format", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatLong_default", "formatRelativeLocale", "formatRelative", "formatRelative_default", "buildLocalizeFn", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "localize", "buildLocalizeFn", "argumentCallback", "localize_default", "buildMatchFn", "findIndex", "findKey", "buildMatchPatternFn", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "valueCallback", "buildMatchFn", "match_default", "locale", "formatDistance_default", "formatLong_default", "formatRelative_default", "localize_default", "match_default", "en_US_default", "defaultLocale_default", "en_US_default", "formattingTokensRegExp", "longFormattingTokensRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "unescapedLatinCharacterRegExp", "format", "requiredArgs", "defaultOptions", "getDefaultOptions", "locale", "defaultLocale_default", "toInteger", "toDate", "isValid", "getTimezoneOffsetInMilliseconds", "subMilliseconds", "longFormatters_default", "cleanEscapedString", "formatters_default", "isProtectedWeekYearToken", "throwProtectedError", "isProtectedDayOfYearToken", "v", "a", "b", "cache", "isDate", "f", "h", "s", "error", "mutate", "i", "_", "u2", "f2", "q", "p", "fn", "use", "middleware", "i", "cache", "compare", "_", "t", "T", "error", "x", "SWRConfig", "useSWR", "officer", "account", "error", "AmlExchangeBackend", "AmlState", "history", "form", "format", "p", "initial", "s", "v", "v1", "v", "v1", "v", "f", "_a", "v1", "v", "f", "_a", "v1", "v1", "v", "useSWR", "officer", "p", "state", "offset", "error", "example1", "e", "i18n", "v", "s", "error", "i18n", "v", "e", "officer", "defaultSettings", "e", "officer", "i18n", "i18n", "v", "r", "p", "v1", "v", "v1", "v", "v1", "v", "account", "i18n", "v", "initial", "s", "f", "e", "v1", "a", "b", "k", "account", "p", "i18n", "e", "history", "format", "account", "i18n", "officer", "notify", "p", "i", "i", "k", "n", "invariant", "prefix", "hash", "location", "e", "location", "fn", "invariant", "encodePath", "decodePath", "path", "history", "a", "b", "encodedPath", "location", "n", "Context", "q", "history", "v", "f", "pageList", "p", "h", "location", "k", "i", "i18n", "error", "P", "h", "officer", "pageList", "location", "p"]
}