podcast manager

polish on the storage side

+1957 -1652
+1654 -1499
package-lock.json
··· 71 } 72 }, 73 "node_modules/@adobe/css-tools": { 74 - "version": "4.4.3", 75 - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.3.tgz", 76 - "integrity": "sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==", 77 "dev": true, 78 "license": "MIT" 79 - }, 80 - "node_modules/@ampproject/remapping": { 81 - "version": "2.3.0", 82 - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 83 - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 84 - "dev": true, 85 - "license": "Apache-2.0", 86 - "dependencies": { 87 - "@jridgewell/gen-mapping": "^0.3.5", 88 - "@jridgewell/trace-mapping": "^0.3.24" 89 - }, 90 - "engines": { 91 - "node": ">=6.0.0" 92 - } 93 }, 94 "node_modules/@asamuzakjp/css-color": { 95 "version": "3.2.0", ··· 128 } 129 }, 130 "node_modules/@babel/compat-data": { 131 - "version": "7.27.5", 132 - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", 133 - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", 134 "dev": true, 135 "license": "MIT", 136 "engines": { ··· 138 } 139 }, 140 "node_modules/@babel/core": { 141 - "version": "7.27.4", 142 - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", 143 - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", 144 "dev": true, 145 "license": "MIT", 146 "dependencies": { 147 - "@ampproject/remapping": "^2.2.0", 148 "@babel/code-frame": "^7.27.1", 149 - "@babel/generator": "^7.27.3", 150 "@babel/helper-compilation-targets": "^7.27.2", 151 - "@babel/helper-module-transforms": "^7.27.3", 152 - "@babel/helpers": "^7.27.4", 153 - "@babel/parser": "^7.27.4", 154 "@babel/template": "^7.27.2", 155 - "@babel/traverse": "^7.27.4", 156 - "@babel/types": "^7.27.3", 157 "convert-source-map": "^2.0.0", 158 "debug": "^4.1.0", 159 "gensync": "^1.0.0-beta.2", ··· 169 } 170 }, 171 "node_modules/@babel/generator": { 172 - "version": "7.27.5", 173 - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", 174 - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", 175 "dev": true, 176 "license": "MIT", 177 "dependencies": { 178 - "@babel/parser": "^7.27.5", 179 - "@babel/types": "^7.27.3", 180 - "@jridgewell/gen-mapping": "^0.3.5", 181 - "@jridgewell/trace-mapping": "^0.3.25", 182 "jsesc": "^3.0.2" 183 }, 184 "engines": { ··· 215 "node": ">=6.9.0" 216 } 217 }, 218 "node_modules/@babel/helper-module-imports": { 219 "version": "7.27.1", 220 "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", ··· 230 } 231 }, 232 "node_modules/@babel/helper-module-transforms": { 233 - "version": "7.27.3", 234 - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", 235 - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", 236 "dev": true, 237 "license": "MIT", 238 "dependencies": { 239 "@babel/helper-module-imports": "^7.27.1", 240 "@babel/helper-validator-identifier": "^7.27.1", 241 - "@babel/traverse": "^7.27.3" 242 }, 243 "engines": { 244 "node": ">=6.9.0" ··· 268 } 269 }, 270 "node_modules/@babel/helper-validator-identifier": { 271 - "version": "7.27.1", 272 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", 273 - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", 274 "dev": true, 275 "license": "MIT", 276 "engines": { ··· 288 } 289 }, 290 "node_modules/@babel/helpers": { 291 - "version": "7.27.6", 292 - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", 293 - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", 294 "dev": true, 295 "license": "MIT", 296 "dependencies": { 297 "@babel/template": "^7.27.2", 298 - "@babel/types": "^7.27.6" 299 }, 300 "engines": { 301 "node": ">=6.9.0" 302 } 303 }, 304 "node_modules/@babel/parser": { 305 - "version": "7.27.5", 306 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", 307 - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", 308 "dev": true, 309 "license": "MIT", 310 "dependencies": { 311 - "@babel/types": "^7.27.3" 312 }, 313 "bin": { 314 "parser": "bin/babel-parser.js" ··· 593 } 594 }, 595 "node_modules/@babel/runtime": { 596 - "version": "7.27.6", 597 - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", 598 - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", 599 "dev": true, 600 "license": "MIT", 601 "engines": { ··· 618 } 619 }, 620 "node_modules/@babel/traverse": { 621 - "version": "7.27.4", 622 - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", 623 - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", 624 "dev": true, 625 "license": "MIT", 626 "dependencies": { 627 "@babel/code-frame": "^7.27.1", 628 - "@babel/generator": "^7.27.3", 629 - "@babel/parser": "^7.27.4", 630 "@babel/template": "^7.27.2", 631 - "@babel/types": "^7.27.3", 632 - "debug": "^4.3.1", 633 - "globals": "^11.1.0" 634 }, 635 "engines": { 636 "node": ">=6.9.0" 637 } 638 }, 639 - "node_modules/@babel/traverse/node_modules/globals": { 640 - "version": "11.12.0", 641 - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 642 - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 643 - "dev": true, 644 - "license": "MIT", 645 - "engines": { 646 - "node": ">=4" 647 - } 648 - }, 649 "node_modules/@babel/types": { 650 - "version": "7.27.6", 651 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", 652 - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", 653 "dev": true, 654 "license": "MIT", 655 "dependencies": { 656 "@babel/helper-string-parser": "^7.27.1", 657 - "@babel/helper-validator-identifier": "^7.27.1" 658 }, 659 "engines": { 660 "node": ">=6.9.0" ··· 668 "license": "MIT" 669 }, 670 "node_modules/@csstools/color-helpers": { 671 - "version": "5.0.2", 672 - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", 673 - "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", 674 "dev": true, 675 "funding": [ 676 { ··· 712 } 713 }, 714 "node_modules/@csstools/css-color-parser": { 715 - "version": "3.0.10", 716 - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", 717 - "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", 718 "dev": true, 719 "funding": [ 720 { ··· 728 ], 729 "license": "MIT", 730 "dependencies": { 731 - "@csstools/color-helpers": "^5.0.2", 732 "@csstools/css-calc": "^2.1.4" 733 }, 734 "engines": { ··· 783 } 784 }, 785 "node_modules/@emnapi/core": { 786 - "version": "1.4.3", 787 - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", 788 - "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", 789 "dev": true, 790 "license": "MIT", 791 "optional": true, 792 "dependencies": { 793 - "@emnapi/wasi-threads": "1.0.2", 794 "tslib": "^2.4.0" 795 } 796 }, 797 "node_modules/@emnapi/runtime": { 798 - "version": "1.4.3", 799 - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", 800 - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", 801 "dev": true, 802 "license": "MIT", 803 "optional": true, ··· 806 } 807 }, 808 "node_modules/@emnapi/wasi-threads": { 809 - "version": "1.0.2", 810 - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", 811 - "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", 812 "dev": true, 813 "license": "MIT", 814 "optional": true, ··· 817 } 818 }, 819 "node_modules/@esbuild/aix-ppc64": { 820 - "version": "0.25.5", 821 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", 822 - "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", 823 "cpu": [ 824 "ppc64" 825 ], ··· 833 } 834 }, 835 "node_modules/@esbuild/android-arm": { 836 - "version": "0.25.5", 837 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", 838 - "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", 839 "cpu": [ 840 "arm" 841 ], ··· 849 } 850 }, 851 "node_modules/@esbuild/android-arm64": { 852 - "version": "0.25.5", 853 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", 854 - "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", 855 "cpu": [ 856 "arm64" 857 ], ··· 865 } 866 }, 867 "node_modules/@esbuild/android-x64": { 868 - "version": "0.25.5", 869 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", 870 - "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", 871 "cpu": [ 872 "x64" 873 ], ··· 881 } 882 }, 883 "node_modules/@esbuild/darwin-arm64": { 884 - "version": "0.25.5", 885 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", 886 - "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", 887 "cpu": [ 888 "arm64" 889 ], ··· 897 } 898 }, 899 "node_modules/@esbuild/darwin-x64": { 900 - "version": "0.25.5", 901 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", 902 - "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", 903 "cpu": [ 904 "x64" 905 ], ··· 913 } 914 }, 915 "node_modules/@esbuild/freebsd-arm64": { 916 - "version": "0.25.5", 917 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", 918 - "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", 919 "cpu": [ 920 "arm64" 921 ], ··· 929 } 930 }, 931 "node_modules/@esbuild/freebsd-x64": { 932 - "version": "0.25.5", 933 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", 934 - "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", 935 "cpu": [ 936 "x64" 937 ], ··· 945 } 946 }, 947 "node_modules/@esbuild/linux-arm": { 948 - "version": "0.25.5", 949 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", 950 - "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", 951 "cpu": [ 952 "arm" 953 ], ··· 961 } 962 }, 963 "node_modules/@esbuild/linux-arm64": { 964 - "version": "0.25.5", 965 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", 966 - "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", 967 "cpu": [ 968 "arm64" 969 ], ··· 977 } 978 }, 979 "node_modules/@esbuild/linux-ia32": { 980 - "version": "0.25.5", 981 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", 982 - "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", 983 "cpu": [ 984 "ia32" 985 ], ··· 993 } 994 }, 995 "node_modules/@esbuild/linux-loong64": { 996 - "version": "0.25.5", 997 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", 998 - "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", 999 "cpu": [ 1000 "loong64" 1001 ], ··· 1009 } 1010 }, 1011 "node_modules/@esbuild/linux-mips64el": { 1012 - "version": "0.25.5", 1013 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", 1014 - "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", 1015 "cpu": [ 1016 "mips64el" 1017 ], ··· 1025 } 1026 }, 1027 "node_modules/@esbuild/linux-ppc64": { 1028 - "version": "0.25.5", 1029 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", 1030 - "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", 1031 "cpu": [ 1032 "ppc64" 1033 ], ··· 1041 } 1042 }, 1043 "node_modules/@esbuild/linux-riscv64": { 1044 - "version": "0.25.5", 1045 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", 1046 - "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", 1047 "cpu": [ 1048 "riscv64" 1049 ], ··· 1057 } 1058 }, 1059 "node_modules/@esbuild/linux-s390x": { 1060 - "version": "0.25.5", 1061 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", 1062 - "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", 1063 "cpu": [ 1064 "s390x" 1065 ], ··· 1073 } 1074 }, 1075 "node_modules/@esbuild/linux-x64": { 1076 - "version": "0.25.5", 1077 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", 1078 - "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", 1079 "cpu": [ 1080 "x64" 1081 ], ··· 1089 } 1090 }, 1091 "node_modules/@esbuild/netbsd-arm64": { 1092 - "version": "0.25.5", 1093 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", 1094 - "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", 1095 "cpu": [ 1096 "arm64" 1097 ], ··· 1105 } 1106 }, 1107 "node_modules/@esbuild/netbsd-x64": { 1108 - "version": "0.25.5", 1109 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", 1110 - "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", 1111 "cpu": [ 1112 "x64" 1113 ], ··· 1121 } 1122 }, 1123 "node_modules/@esbuild/openbsd-arm64": { 1124 - "version": "0.25.5", 1125 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", 1126 - "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", 1127 "cpu": [ 1128 "arm64" 1129 ], ··· 1137 } 1138 }, 1139 "node_modules/@esbuild/openbsd-x64": { 1140 - "version": "0.25.5", 1141 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", 1142 - "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", 1143 "cpu": [ 1144 "x64" 1145 ], ··· 1152 "node": ">=18" 1153 } 1154 }, 1155 "node_modules/@esbuild/sunos-x64": { 1156 - "version": "0.25.5", 1157 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", 1158 - "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", 1159 "cpu": [ 1160 "x64" 1161 ], ··· 1169 } 1170 }, 1171 "node_modules/@esbuild/win32-arm64": { 1172 - "version": "0.25.5", 1173 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", 1174 - "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", 1175 "cpu": [ 1176 "arm64" 1177 ], ··· 1185 } 1186 }, 1187 "node_modules/@esbuild/win32-ia32": { 1188 - "version": "0.25.5", 1189 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", 1190 - "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", 1191 "cpu": [ 1192 "ia32" 1193 ], ··· 1201 } 1202 }, 1203 "node_modules/@esbuild/win32-x64": { 1204 - "version": "0.25.5", 1205 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", 1206 - "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", 1207 "cpu": [ 1208 "x64" 1209 ], ··· 1217 } 1218 }, 1219 "node_modules/@eslint-community/eslint-utils": { 1220 - "version": "4.7.0", 1221 - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", 1222 - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", 1223 "dev": true, 1224 "license": "MIT", 1225 "dependencies": { ··· 1249 } 1250 }, 1251 "node_modules/@eslint-community/regexpp": { 1252 - "version": "4.12.1", 1253 - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", 1254 - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", 1255 "dev": true, 1256 "license": "MIT", 1257 "engines": { ··· 1259 } 1260 }, 1261 "node_modules/@eslint/compat": { 1262 - "version": "1.3.0", 1263 - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.3.0.tgz", 1264 - "integrity": "sha512-ZBygRBqpDYiIHsN+d1WyHn3TYgzgpzLEcgJUxTATyiInQbKZz6wZb6+ljwdg8xeeOe4v03z6Uh6lELiw0/mVhQ==", 1265 "dev": true, 1266 "license": "Apache-2.0", 1267 "engines": { 1268 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1269 }, 1270 "peerDependencies": { 1271 - "eslint": "^9.10.0" 1272 }, 1273 "peerDependenciesMeta": { 1274 "eslint": { ··· 1277 } 1278 }, 1279 "node_modules/@eslint/config-array": { 1280 - "version": "0.20.1", 1281 - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz", 1282 - "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==", 1283 "dev": true, 1284 "license": "Apache-2.0", 1285 "dependencies": { 1286 - "@eslint/object-schema": "^2.1.6", 1287 "debug": "^4.3.1", 1288 "minimatch": "^3.1.2" 1289 }, ··· 1316 } 1317 }, 1318 "node_modules/@eslint/config-helpers": { 1319 - "version": "0.2.3", 1320 - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz", 1321 - "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==", 1322 "dev": true, 1323 "license": "Apache-2.0", 1324 "engines": { 1325 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1326 } 1327 }, 1328 "node_modules/@eslint/core": { 1329 - "version": "0.14.0", 1330 - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", 1331 - "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", 1332 "dev": true, 1333 "license": "Apache-2.0", 1334 "dependencies": { ··· 1354 } 1355 }, 1356 "node_modules/@eslint/css-tree": { 1357 - "version": "3.6.1", 1358 - "resolved": "https://registry.npmjs.org/@eslint/css-tree/-/css-tree-3.6.1.tgz", 1359 - "integrity": "sha512-5DIsBME23tUQD5zHD+T38lC2DG4jB8x8JRa+yDncLne2TIZA0VuCpcSazOX1EC+sM/q8w24qeevXfmfsIxAeqA==", 1360 "dev": true, 1361 "license": "MIT", 1362 "dependencies": { 1363 - "mdn-data": "2.21.0", 1364 "source-map-js": "^1.0.1" 1365 }, 1366 "engines": { 1367 "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 1368 } 1369 }, 1370 "node_modules/@eslint/eslintrc": { 1371 "version": "3.3.1", 1372 "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", ··· 1498 } 1499 }, 1500 "node_modules/@eslint/markdown": { 1501 - "version": "6.5.0", 1502 - "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-6.5.0.tgz", 1503 - "integrity": "sha512-oSkF0p8X21vKEEAGTZASi7q3tbdTvlGduQ02Xz2A1AFncUP4RLVcNz27XurxVW4fs1JXuh0xBtvokXdtp/nN+Q==", 1504 "dev": true, 1505 "license": "MIT", 1506 "dependencies": { 1507 "@eslint/core": "^0.14.0", 1508 "@eslint/plugin-kit": "^0.3.1", 1509 "mdast-util-from-markdown": "^2.0.2", 1510 "mdast-util-frontmatter": "^2.0.1", 1511 "mdast-util-gfm": "^3.0.0", ··· 1516 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1517 } 1518 }, 1519 "node_modules/@eslint/object-schema": { 1520 - "version": "2.1.6", 1521 - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", 1522 - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", 1523 "dev": true, 1524 "license": "Apache-2.0", 1525 "engines": { ··· 1527 } 1528 }, 1529 "node_modules/@eslint/plugin-kit": { 1530 - "version": "0.3.2", 1531 - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz", 1532 - "integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==", 1533 "dev": true, 1534 "license": "Apache-2.0", 1535 "dependencies": { 1536 - "@eslint/core": "^0.15.0", 1537 "levn": "^0.4.1" 1538 }, 1539 "engines": { ··· 1541 } 1542 }, 1543 "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { 1544 - "version": "0.15.0", 1545 - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.0.tgz", 1546 - "integrity": "sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==", 1547 "dev": true, 1548 "license": "Apache-2.0", 1549 "dependencies": { ··· 1554 } 1555 }, 1556 "node_modules/@faker-js/faker": { 1557 - "version": "9.8.0", 1558 - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.8.0.tgz", 1559 - "integrity": "sha512-U9wpuSrJC93jZBxx/Qq2wPjCuYISBueyVUGK7qqdmj7r/nxaxwW8AQDCLeRO7wZnjj94sh3p246cAYjUKuqgfg==", 1560 "dev": true, 1561 "funding": [ 1562 { ··· 1589 } 1590 }, 1591 "node_modules/@humanfs/node": { 1592 - "version": "0.16.6", 1593 - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", 1594 - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", 1595 "dev": true, 1596 "license": "Apache-2.0", 1597 "dependencies": { 1598 "@humanfs/core": "^0.19.1", 1599 - "@humanwhocodes/retry": "^0.3.0" 1600 }, 1601 "engines": { 1602 "node": ">=18.18.0" 1603 } 1604 }, 1605 - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 1606 - "version": "0.3.1", 1607 - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 1608 - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 1609 - "dev": true, 1610 - "license": "Apache-2.0", 1611 - "engines": { 1612 - "node": ">=18.18" 1613 - }, 1614 - "funding": { 1615 - "type": "github", 1616 - "url": "https://github.com/sponsors/nzakas" 1617 - } 1618 - }, 1619 "node_modules/@humanwhocodes/module-importer": { 1620 "version": "1.0.1", 1621 "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", ··· 1631 } 1632 }, 1633 "node_modules/@humanwhocodes/momoa": { 1634 - "version": "3.3.8", 1635 - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-3.3.8.tgz", 1636 - "integrity": "sha512-/3PZzor2imi/RLLcnHztkwA79txiVvW145Ve2cp5dxRcH5qOUNJPToasqLFHniTfw4B4lT7jGDdBOPXbXYlIMQ==", 1637 "dev": true, 1638 "license": "Apache-2.0", 1639 "engines": { ··· 1779 "node": ">=8" 1780 } 1781 }, 1782 - "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { 1783 - "version": "1.0.3", 1784 - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1785 - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", 1786 - "dev": true, 1787 - "license": "BSD-3-Clause" 1788 - }, 1789 "node_modules/@istanbuljs/schema": { 1790 "version": "0.1.3", 1791 "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", ··· 1797 } 1798 }, 1799 "node_modules/@jest/console": { 1800 - "version": "30.0.2", 1801 - "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.0.2.tgz", 1802 - "integrity": "sha512-krGElPU0FipAqpVZ/BRZOy0MZh/ARdJ0Nj+PiH1ykFY1+VpBlYNLjdjVA5CFKxnKR6PFqFutO4Z7cdK9BlGiDA==", 1803 "dev": true, 1804 "license": "MIT", 1805 "dependencies": { 1806 - "@jest/types": "30.0.1", 1807 "@types/node": "*", 1808 "chalk": "^4.1.2", 1809 - "jest-message-util": "30.0.2", 1810 - "jest-util": "30.0.2", 1811 "slash": "^3.0.0" 1812 }, 1813 "engines": { ··· 1815 } 1816 }, 1817 "node_modules/@jest/core": { 1818 - "version": "30.0.2", 1819 - "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.0.2.tgz", 1820 - "integrity": "sha512-mUMFdDtYWu7la63NxlyNIhgnzynszxunXWrtryR7bV24jV9hmi7XCZTzZHaLJjcBU66MeUAPZ81HjwASVpYhYQ==", 1821 "dev": true, 1822 "license": "MIT", 1823 "dependencies": { 1824 - "@jest/console": "30.0.2", 1825 "@jest/pattern": "30.0.1", 1826 - "@jest/reporters": "30.0.2", 1827 - "@jest/test-result": "30.0.2", 1828 - "@jest/transform": "30.0.2", 1829 - "@jest/types": "30.0.1", 1830 "@types/node": "*", 1831 "ansi-escapes": "^4.3.2", 1832 "chalk": "^4.1.2", 1833 "ci-info": "^4.2.0", 1834 "exit-x": "^0.2.2", 1835 "graceful-fs": "^4.2.11", 1836 - "jest-changed-files": "30.0.2", 1837 - "jest-config": "30.0.2", 1838 - "jest-haste-map": "30.0.2", 1839 - "jest-message-util": "30.0.2", 1840 "jest-regex-util": "30.0.1", 1841 - "jest-resolve": "30.0.2", 1842 - "jest-resolve-dependencies": "30.0.2", 1843 - "jest-runner": "30.0.2", 1844 - "jest-runtime": "30.0.2", 1845 - "jest-snapshot": "30.0.2", 1846 - "jest-util": "30.0.2", 1847 - "jest-validate": "30.0.2", 1848 - "jest-watcher": "30.0.2", 1849 "micromatch": "^4.0.8", 1850 - "pretty-format": "30.0.2", 1851 "slash": "^3.0.0" 1852 }, 1853 "engines": { ··· 1876 } 1877 }, 1878 "node_modules/@jest/core/node_modules/pretty-format": { 1879 - "version": "30.0.2", 1880 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 1881 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 1882 "dev": true, 1883 "license": "MIT", 1884 "dependencies": { 1885 - "@jest/schemas": "30.0.1", 1886 "ansi-styles": "^5.2.0", 1887 "react-is": "^18.3.1" 1888 }, ··· 1908 } 1909 }, 1910 "node_modules/@jest/environment": { 1911 - "version": "30.0.2", 1912 - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.0.2.tgz", 1913 - "integrity": "sha512-hRLhZRJNxBiOhxIKSq2UkrlhMt3/zVFQOAi5lvS8T9I03+kxsbflwHJEF+eXEYXCrRGRhHwECT7CDk6DyngsRA==", 1914 "dev": true, 1915 "license": "MIT", 1916 "dependencies": { 1917 - "@jest/fake-timers": "30.0.2", 1918 - "@jest/types": "30.0.1", 1919 "@types/node": "*", 1920 - "jest-mock": "30.0.2" 1921 }, 1922 "engines": { 1923 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 1924 } 1925 }, 1926 "node_modules/@jest/environment-jsdom-abstract": { 1927 - "version": "30.0.2", 1928 - "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.0.2.tgz", 1929 - "integrity": "sha512-8aMoEzGdUuJeQl71BUACkys1ZEX437AF376VBqdYXsGFd4l3F1SdTjFHmNq8vF0Rp+CYhUyxa0kRAzXbBaVzfQ==", 1930 "dev": true, 1931 "license": "MIT", 1932 "dependencies": { 1933 - "@jest/environment": "30.0.2", 1934 - "@jest/fake-timers": "30.0.2", 1935 - "@jest/types": "30.0.1", 1936 "@types/jsdom": "^21.1.7", 1937 "@types/node": "*", 1938 - "jest-mock": "30.0.2", 1939 - "jest-util": "30.0.2" 1940 }, 1941 "engines": { 1942 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 1952 } 1953 }, 1954 "node_modules/@jest/expect": { 1955 - "version": "30.0.2", 1956 - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.0.2.tgz", 1957 - "integrity": "sha512-blWRFPjv2cVfh42nLG6L3xIEbw+bnuiZYZDl/BZlsNG/i3wKV6FpPZ2EPHguk7t5QpLaouIu+7JmYO4uBR6AOg==", 1958 "dev": true, 1959 "license": "MIT", 1960 "dependencies": { 1961 - "expect": "30.0.2", 1962 - "jest-snapshot": "30.0.2" 1963 }, 1964 "engines": { 1965 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 1966 } 1967 }, 1968 "node_modules/@jest/expect-utils": { 1969 - "version": "30.0.2", 1970 - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.0.2.tgz", 1971 - "integrity": "sha512-FHF2YdtFBUQOo0/qdgt+6UdBFcNPF/TkVzcc+4vvf8uaBzUlONytGBeeudufIHHW1khRfM1sBbRT1VCK7n/0dQ==", 1972 "dev": true, 1973 "license": "MIT", 1974 "dependencies": { 1975 - "@jest/get-type": "30.0.1" 1976 }, 1977 "engines": { 1978 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 1979 } 1980 }, 1981 "node_modules/@jest/fake-timers": { 1982 - "version": "30.0.2", 1983 - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.0.2.tgz", 1984 - "integrity": "sha512-jfx0Xg7l0gmphTY9UKm5RtH12BlLYj/2Plj6wXjVW5Era4FZKfXeIvwC67WX+4q8UCFxYS20IgnMcFBcEU0DtA==", 1985 "dev": true, 1986 "license": "MIT", 1987 "dependencies": { 1988 - "@jest/types": "30.0.1", 1989 "@sinonjs/fake-timers": "^13.0.0", 1990 "@types/node": "*", 1991 - "jest-message-util": "30.0.2", 1992 - "jest-mock": "30.0.2", 1993 - "jest-util": "30.0.2" 1994 }, 1995 "engines": { 1996 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 1997 } 1998 }, 1999 "node_modules/@jest/get-type": { 2000 - "version": "30.0.1", 2001 - "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.0.1.tgz", 2002 - "integrity": "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==", 2003 "dev": true, 2004 "license": "MIT", 2005 "engines": { ··· 2007 } 2008 }, 2009 "node_modules/@jest/globals": { 2010 - "version": "30.0.2", 2011 - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.0.2.tgz", 2012 - "integrity": "sha512-DwTtus9jjbG7b6jUdkcVdptf0wtD1v153A+PVwWB/zFwXhqu6hhtSd+uq88jofMhmYPtkmPmVGUBRNCZEKXn+w==", 2013 "dev": true, 2014 "license": "MIT", 2015 "dependencies": { 2016 - "@jest/environment": "30.0.2", 2017 - "@jest/expect": "30.0.2", 2018 - "@jest/types": "30.0.1", 2019 - "jest-mock": "30.0.2" 2020 }, 2021 "engines": { 2022 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 2037 } 2038 }, 2039 "node_modules/@jest/reporters": { 2040 - "version": "30.0.2", 2041 - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.0.2.tgz", 2042 - "integrity": "sha512-l4QzS/oKf57F8WtPZK+vvF4Io6ukplc6XgNFu4Hd/QxaLEO9f+8dSFzUua62Oe0HKlCUjKHpltKErAgDiMJKsA==", 2043 "dev": true, 2044 "license": "MIT", 2045 "dependencies": { 2046 "@bcoe/v8-coverage": "^0.2.3", 2047 - "@jest/console": "30.0.2", 2048 - "@jest/test-result": "30.0.2", 2049 - "@jest/transform": "30.0.2", 2050 - "@jest/types": "30.0.1", 2051 "@jridgewell/trace-mapping": "^0.3.25", 2052 "@types/node": "*", 2053 "chalk": "^4.1.2", ··· 2060 "istanbul-lib-report": "^3.0.0", 2061 "istanbul-lib-source-maps": "^5.0.0", 2062 "istanbul-reports": "^3.1.3", 2063 - "jest-message-util": "30.0.2", 2064 - "jest-util": "30.0.2", 2065 - "jest-worker": "30.0.2", 2066 "slash": "^3.0.0", 2067 "string-length": "^4.0.2", 2068 "v8-to-istanbul": "^9.0.1" ··· 2080 } 2081 }, 2082 "node_modules/@jest/schemas": { 2083 - "version": "30.0.1", 2084 - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.1.tgz", 2085 - "integrity": "sha512-+g/1TKjFuGrf1Hh0QPCv0gISwBxJ+MQSNXmG9zjHy7BmFhtoJ9fdNhWJp3qUKRi93AOZHXtdxZgJ1vAtz6z65w==", 2086 "dev": true, 2087 "license": "MIT", 2088 "dependencies": { ··· 2093 } 2094 }, 2095 "node_modules/@jest/snapshot-utils": { 2096 - "version": "30.0.1", 2097 - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.0.1.tgz", 2098 - "integrity": "sha512-6Dpv7vdtoRiISEFwYF8/c7LIvqXD7xDXtLPNzC2xqAfBznKip0MQM+rkseKwUPUpv2PJ7KW/YsnwWXrIL2xF+A==", 2099 "dev": true, 2100 "license": "MIT", 2101 "dependencies": { 2102 - "@jest/types": "30.0.1", 2103 "chalk": "^4.1.2", 2104 "graceful-fs": "^4.2.11", 2105 "natural-compare": "^1.4.0" ··· 2124 } 2125 }, 2126 "node_modules/@jest/test-result": { 2127 - "version": "30.0.2", 2128 - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.0.2.tgz", 2129 - "integrity": "sha512-KKMuBKkkZYP/GfHMhI+cH2/P3+taMZS3qnqqiPC1UXZTJskkCS+YU/ILCtw5anw1+YsTulDHFpDo70mmCedW8w==", 2130 "dev": true, 2131 "license": "MIT", 2132 "dependencies": { 2133 - "@jest/console": "30.0.2", 2134 - "@jest/types": "30.0.1", 2135 "@types/istanbul-lib-coverage": "^2.0.6", 2136 "collect-v8-coverage": "^1.0.2" 2137 }, ··· 2140 } 2141 }, 2142 "node_modules/@jest/test-sequencer": { 2143 - "version": "30.0.2", 2144 - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.0.2.tgz", 2145 - "integrity": "sha512-fbyU5HPka0rkalZ3MXVvq0hwZY8dx3Y6SCqR64zRmh+xXlDeFl0IdL4l9e7vp4gxEXTYHbwLFA1D+WW5CucaSw==", 2146 "dev": true, 2147 "license": "MIT", 2148 "dependencies": { 2149 - "@jest/test-result": "30.0.2", 2150 "graceful-fs": "^4.2.11", 2151 - "jest-haste-map": "30.0.2", 2152 "slash": "^3.0.0" 2153 }, 2154 "engines": { ··· 2156 } 2157 }, 2158 "node_modules/@jest/transform": { 2159 - "version": "30.0.2", 2160 - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.0.2.tgz", 2161 - "integrity": "sha512-kJIuhLMTxRF7sc0gPzPtCDib/V9KwW3I2U25b+lYCYMVqHHSrcZopS8J8H+znx9yixuFv+Iozl8raLt/4MoxrA==", 2162 "dev": true, 2163 "license": "MIT", 2164 "dependencies": { 2165 "@babel/core": "^7.27.4", 2166 - "@jest/types": "30.0.1", 2167 "@jridgewell/trace-mapping": "^0.3.25", 2168 - "babel-plugin-istanbul": "^7.0.0", 2169 "chalk": "^4.1.2", 2170 "convert-source-map": "^2.0.0", 2171 "fast-json-stable-stringify": "^2.1.0", 2172 "graceful-fs": "^4.2.11", 2173 - "jest-haste-map": "30.0.2", 2174 "jest-regex-util": "30.0.1", 2175 - "jest-util": "30.0.2", 2176 "micromatch": "^4.0.8", 2177 "pirates": "^4.0.7", 2178 "slash": "^3.0.0", ··· 2183 } 2184 }, 2185 "node_modules/@jest/types": { 2186 - "version": "30.0.1", 2187 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.1.tgz", 2188 - "integrity": "sha512-HGwoYRVF0QSKJu1ZQX0o5ZrUrrhj0aOOFA8hXrumD7SIzjouevhawbTjmXdwOmURdGluU9DM/XvGm3NyFoiQjw==", 2189 "dev": true, 2190 "license": "MIT", 2191 "dependencies": { 2192 "@jest/pattern": "30.0.1", 2193 - "@jest/schemas": "30.0.1", 2194 "@types/istanbul-lib-coverage": "^2.0.6", 2195 "@types/istanbul-reports": "^3.0.4", 2196 "@types/node": "*", ··· 2202 } 2203 }, 2204 "node_modules/@jridgewell/gen-mapping": { 2205 - "version": "0.3.8", 2206 - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 2207 - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 2208 "dev": true, 2209 "license": "MIT", 2210 "dependencies": { 2211 - "@jridgewell/set-array": "^1.2.1", 2212 - "@jridgewell/sourcemap-codec": "^1.4.10", 2213 "@jridgewell/trace-mapping": "^0.3.24" 2214 - }, 2215 - "engines": { 2216 - "node": ">=6.0.0" 2217 } 2218 }, 2219 - "node_modules/@jridgewell/resolve-uri": { 2220 - "version": "3.1.2", 2221 - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 2222 - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 2223 "dev": true, 2224 "license": "MIT", 2225 - "engines": { 2226 - "node": ">=6.0.0" 2227 } 2228 }, 2229 - "node_modules/@jridgewell/set-array": { 2230 - "version": "1.2.1", 2231 - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 2232 - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 2233 "dev": true, 2234 "license": "MIT", 2235 "engines": { ··· 2237 } 2238 }, 2239 "node_modules/@jridgewell/sourcemap-codec": { 2240 - "version": "1.5.0", 2241 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 2242 - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 2243 "dev": true, 2244 "license": "MIT" 2245 }, 2246 "node_modules/@jridgewell/trace-mapping": { 2247 - "version": "0.3.25", 2248 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 2249 - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 2250 "dev": true, 2251 "license": "MIT", 2252 "dependencies": { ··· 2299 "license": "MIT" 2300 }, 2301 "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { 2302 - "version": "1.22.10", 2303 - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", 2304 - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", 2305 "dev": true, 2306 "license": "MIT", 2307 "dependencies": { 2308 - "is-core-module": "^2.16.0", 2309 "path-parse": "^1.0.7", 2310 "supports-preserve-symlinks-flag": "^1.0.0" 2311 }, ··· 2320 } 2321 }, 2322 "node_modules/@napi-rs/wasm-runtime": { 2323 - "version": "0.2.11", 2324 - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz", 2325 - "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==", 2326 "dev": true, 2327 "license": "MIT", 2328 "optional": true, 2329 "dependencies": { 2330 "@emnapi/core": "^1.4.3", 2331 "@emnapi/runtime": "^1.4.3", 2332 - "@tybys/wasm-util": "^0.9.0" 2333 } 2334 }, 2335 "node_modules/@nodelib/fs.scandir": { ··· 2383 } 2384 }, 2385 "node_modules/@npmcli/fs/node_modules/semver": { 2386 - "version": "7.7.2", 2387 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 2388 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 2389 "dev": true, 2390 "license": "ISC", 2391 "optional": true, ··· 2424 } 2425 }, 2426 "node_modules/@pkgr/core": { 2427 - "version": "0.2.7", 2428 - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", 2429 - "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", 2430 "dev": true, 2431 "license": "MIT", 2432 "engines": { ··· 2437 } 2438 }, 2439 "node_modules/@preact/preset-vite": { 2440 - "version": "2.10.1", 2441 - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.10.1.tgz", 2442 - "integrity": "sha512-59lyGBXNfZIr5OOuBUB4/IB8AqF/ULbvYnyItgK/2BJnsGJqaeaJobRVtMp1129obHQuj8oZ/dVxB9inmH8Xig==", 2443 "dev": true, 2444 "license": "MIT", 2445 "dependencies": { ··· 2449 "@rollup/pluginutils": "^4.1.1", 2450 "babel-plugin-transform-hook-names": "^1.0.2", 2451 "debug": "^4.3.4", 2452 - "kolorist": "^1.8.0", 2453 "vite-prerender-plugin": "^0.5.3" 2454 }, 2455 "peerDependencies": { 2456 "@babel/core": "7.x", 2457 - "vite": "2.x || 3.x || 4.x || 5.x || 6.x" 2458 } 2459 }, 2460 "node_modules/@preact/signals": { 2461 - "version": "2.2.0", 2462 - "resolved": "https://registry.npmjs.org/@preact/signals/-/signals-2.2.0.tgz", 2463 - "integrity": "sha512-P3KPcEYyVk9Wiwfw68QQzRpPkt0H+zjfH3X4AaGCDlc86GuRBYFGiAxT1nC5F5qlsVIEmjNJ9yVYe7C91z3L+g==", 2464 "license": "MIT", 2465 "dependencies": { 2466 - "@preact/signals-core": "^1.9.0" 2467 }, 2468 "funding": { 2469 "type": "opencollective", 2470 "url": "https://opencollective.com/preact" 2471 }, 2472 "peerDependencies": { 2473 - "preact": ">= 10.25.0" 2474 } 2475 }, 2476 "node_modules/@preact/signals-core": { 2477 - "version": "1.10.0", 2478 - "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.10.0.tgz", 2479 - "integrity": "sha512-qlKeXlfqtlC+sjxCPHt6Sk0/dXBrKZVcPlianqjNc/vW263YBFiP5mRrgKpHoO0q222Thm1TdYQWfCKpbbgvwA==", 2480 "license": "MIT", 2481 "funding": { 2482 "type": "opencollective", ··· 2484 } 2485 }, 2486 "node_modules/@prefresh/babel-plugin": { 2487 - "version": "0.5.1", 2488 - "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.1.tgz", 2489 - "integrity": "sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==", 2490 "dev": true, 2491 "license": "MIT" 2492 }, 2493 "node_modules/@prefresh/core": { 2494 - "version": "1.5.3", 2495 - "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.5.3.tgz", 2496 - "integrity": "sha512-nDzxj0tA1/M6APNAWqaxkZ+3sTdPHESa+gol4+Bw7rMc2btWdkLoNH7j9rGhUb8SThC0Vz0VoXtq+U+9azGLHg==", 2497 "dev": true, 2498 "license": "MIT", 2499 "peerDependencies": { 2500 - "preact": "^10.0.0" 2501 } 2502 }, 2503 "node_modules/@prefresh/utils": { 2504 - "version": "1.2.0", 2505 - "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.2.0.tgz", 2506 - "integrity": "sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==", 2507 "dev": true, 2508 "license": "MIT" 2509 }, 2510 "node_modules/@prefresh/vite": { 2511 - "version": "2.4.7", 2512 - "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.4.7.tgz", 2513 - "integrity": "sha512-zmCEDWSFHl5A7PciXa/fe+OUjoGi4iiCQclpWfpIg7LjxwWrtlUT4DfxDBcQwHfTyipS/XDm8x7WYrkiTW0q+w==", 2514 "dev": true, 2515 "license": "MIT", 2516 "dependencies": { 2517 "@babel/core": "^7.22.1", 2518 - "@prefresh/babel-plugin": "0.5.1", 2519 - "@prefresh/core": "^1.5.1", 2520 "@prefresh/utils": "^1.2.0", 2521 "@rollup/pluginutils": "^4.2.1" 2522 }, 2523 "peerDependencies": { 2524 - "preact": "^10.4.0", 2525 "vite": ">=2.0.0" 2526 } 2527 }, ··· 2549 } 2550 }, 2551 "node_modules/@rollup/plugin-inject/node_modules/@rollup/pluginutils": { 2552 - "version": "5.2.0", 2553 - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz", 2554 - "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==", 2555 "dev": true, 2556 "license": "MIT", 2557 "dependencies": { ··· 2572 } 2573 }, 2574 "node_modules/@rollup/plugin-inject/node_modules/picomatch": { 2575 - "version": "4.0.2", 2576 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 2577 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 2578 "dev": true, 2579 "license": "MIT", 2580 "engines": { ··· 2599 } 2600 }, 2601 "node_modules/@rollup/rollup-android-arm-eabi": { 2602 - "version": "4.44.0", 2603 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", 2604 - "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", 2605 "cpu": [ 2606 "arm" 2607 ], ··· 2613 ] 2614 }, 2615 "node_modules/@rollup/rollup-android-arm64": { 2616 - "version": "4.44.0", 2617 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", 2618 - "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", 2619 "cpu": [ 2620 "arm64" 2621 ], ··· 2627 ] 2628 }, 2629 "node_modules/@rollup/rollup-darwin-arm64": { 2630 - "version": "4.44.0", 2631 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", 2632 - "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", 2633 "cpu": [ 2634 "arm64" 2635 ], ··· 2641 ] 2642 }, 2643 "node_modules/@rollup/rollup-darwin-x64": { 2644 - "version": "4.44.0", 2645 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", 2646 - "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", 2647 "cpu": [ 2648 "x64" 2649 ], ··· 2655 ] 2656 }, 2657 "node_modules/@rollup/rollup-freebsd-arm64": { 2658 - "version": "4.44.0", 2659 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", 2660 - "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", 2661 "cpu": [ 2662 "arm64" 2663 ], ··· 2669 ] 2670 }, 2671 "node_modules/@rollup/rollup-freebsd-x64": { 2672 - "version": "4.44.0", 2673 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", 2674 - "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", 2675 "cpu": [ 2676 "x64" 2677 ], ··· 2683 ] 2684 }, 2685 "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 2686 - "version": "4.44.0", 2687 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", 2688 - "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", 2689 "cpu": [ 2690 "arm" 2691 ], ··· 2697 ] 2698 }, 2699 "node_modules/@rollup/rollup-linux-arm-musleabihf": { 2700 - "version": "4.44.0", 2701 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", 2702 - "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", 2703 "cpu": [ 2704 "arm" 2705 ], ··· 2711 ] 2712 }, 2713 "node_modules/@rollup/rollup-linux-arm64-gnu": { 2714 - "version": "4.44.0", 2715 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", 2716 - "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", 2717 "cpu": [ 2718 "arm64" 2719 ], ··· 2725 ] 2726 }, 2727 "node_modules/@rollup/rollup-linux-arm64-musl": { 2728 - "version": "4.44.0", 2729 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", 2730 - "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", 2731 "cpu": [ 2732 "arm64" 2733 ], ··· 2738 "linux" 2739 ] 2740 }, 2741 - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 2742 - "version": "4.44.0", 2743 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", 2744 - "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", 2745 "cpu": [ 2746 "loong64" 2747 ], ··· 2752 "linux" 2753 ] 2754 }, 2755 - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 2756 - "version": "4.44.0", 2757 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", 2758 - "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", 2759 "cpu": [ 2760 "ppc64" 2761 ], ··· 2767 ] 2768 }, 2769 "node_modules/@rollup/rollup-linux-riscv64-gnu": { 2770 - "version": "4.44.0", 2771 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", 2772 - "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", 2773 "cpu": [ 2774 "riscv64" 2775 ], ··· 2781 ] 2782 }, 2783 "node_modules/@rollup/rollup-linux-riscv64-musl": { 2784 - "version": "4.44.0", 2785 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", 2786 - "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", 2787 "cpu": [ 2788 "riscv64" 2789 ], ··· 2795 ] 2796 }, 2797 "node_modules/@rollup/rollup-linux-s390x-gnu": { 2798 - "version": "4.44.0", 2799 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", 2800 - "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", 2801 "cpu": [ 2802 "s390x" 2803 ], ··· 2809 ] 2810 }, 2811 "node_modules/@rollup/rollup-linux-x64-gnu": { 2812 - "version": "4.44.0", 2813 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", 2814 - "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", 2815 "cpu": [ 2816 "x64" 2817 ], ··· 2823 ] 2824 }, 2825 "node_modules/@rollup/rollup-linux-x64-musl": { 2826 - "version": "4.44.0", 2827 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", 2828 - "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", 2829 "cpu": [ 2830 "x64" 2831 ], ··· 2836 "linux" 2837 ] 2838 }, 2839 "node_modules/@rollup/rollup-win32-arm64-msvc": { 2840 - "version": "4.44.0", 2841 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", 2842 - "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", 2843 "cpu": [ 2844 "arm64" 2845 ], ··· 2851 ] 2852 }, 2853 "node_modules/@rollup/rollup-win32-ia32-msvc": { 2854 - "version": "4.44.0", 2855 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", 2856 - "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", 2857 "cpu": [ 2858 "ia32" 2859 ], ··· 2864 "win32" 2865 ] 2866 }, 2867 "node_modules/@rollup/rollup-win32-x64-msvc": { 2868 - "version": "4.44.0", 2869 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", 2870 - "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", 2871 "cpu": [ 2872 "x64" 2873 ], ··· 2897 } 2898 }, 2899 "node_modules/@sinclair/typebox": { 2900 - "version": "0.34.35", 2901 - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.35.tgz", 2902 - "integrity": "sha512-C6ypdODf2VZkgRT6sFM8E1F8vR+HcffniX0Kp8MsU8PIfrlXbNCBz0jzj17GjdmjTx1OtZzdH8+iALL21UjF5A==", 2903 "dev": true, 2904 "license": "MIT" 2905 }, ··· 2961 "license": "MIT" 2962 }, 2963 "node_modules/@testing-library/jest-dom": { 2964 - "version": "6.6.3", 2965 - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", 2966 - "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", 2967 "dev": true, 2968 "license": "MIT", 2969 "dependencies": { 2970 "@adobe/css-tools": "^4.4.0", 2971 "aria-query": "^5.0.0", 2972 - "chalk": "^3.0.0", 2973 "css.escape": "^1.5.1", 2974 "dom-accessibility-api": "^0.6.3", 2975 - "lodash": "^4.17.21", 2976 "redent": "^3.0.0" 2977 }, 2978 "engines": { ··· 2981 "yarn": ">=1" 2982 } 2983 }, 2984 - "node_modules/@testing-library/jest-dom/node_modules/chalk": { 2985 - "version": "3.0.0", 2986 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 2987 - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 2988 - "dev": true, 2989 - "license": "MIT", 2990 - "dependencies": { 2991 - "ansi-styles": "^4.1.0", 2992 - "supports-color": "^7.1.0" 2993 - }, 2994 - "engines": { 2995 - "node": ">=8" 2996 - } 2997 - }, 2998 "node_modules/@testing-library/preact": { 2999 "version": "3.2.4", 3000 "resolved": "https://registry.npmjs.org/@testing-library/preact/-/preact-3.2.4.tgz", ··· 3012 } 3013 }, 3014 "node_modules/@thaunknown/simple-peer": { 3015 - "version": "10.0.11", 3016 - "resolved": "https://registry.npmjs.org/@thaunknown/simple-peer/-/simple-peer-10.0.11.tgz", 3017 - "integrity": "sha512-A5MdmtZ6HUzRa4gwPOS4jG+09HvpTv2rFo4kk7Vwveo2ELm+WmbO124ZrJrQnZc2D7z2Q3AWKSitjl9OKXO88g==", 3018 "dev": true, 3019 "license": "MIT", 3020 "dependencies": { ··· 3064 } 3065 }, 3066 "node_modules/@tybys/wasm-util": { 3067 - "version": "0.9.0", 3068 - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", 3069 - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", 3070 "dev": true, 3071 "license": "MIT", 3072 "optional": true, ··· 3124 } 3125 }, 3126 "node_modules/@types/babel__traverse": { 3127 - "version": "7.20.7", 3128 - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", 3129 - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", 3130 "dev": true, 3131 "license": "MIT", 3132 "dependencies": { 3133 - "@babel/types": "^7.20.7" 3134 } 3135 }, 3136 "node_modules/@types/body-parser": { ··· 3190 "license": "MIT" 3191 }, 3192 "node_modules/@types/express": { 3193 - "version": "5.0.3", 3194 - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", 3195 - "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==", 3196 "dev": true, 3197 "license": "MIT", 3198 "dependencies": { ··· 3202 } 3203 }, 3204 "node_modules/@types/express-serve-static-core": { 3205 - "version": "5.0.6", 3206 - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", 3207 - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", 3208 "dev": true, 3209 "license": "MIT", 3210 "dependencies": { ··· 3273 } 3274 }, 3275 "node_modules/@types/jest/node_modules/pretty-format": { 3276 - "version": "30.0.2", 3277 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 3278 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 3279 "dev": true, 3280 "license": "MIT", 3281 "dependencies": { 3282 - "@jest/schemas": "30.0.1", 3283 "ansi-styles": "^5.2.0", 3284 "react-is": "^18.3.1" 3285 }, ··· 3376 "license": "MIT" 3377 }, 3378 "node_modules/@types/node": { 3379 - "version": "24.0.3", 3380 - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", 3381 - "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", 3382 "dev": true, 3383 "license": "MIT", 3384 "dependencies": { 3385 - "undici-types": "~7.8.0" 3386 } 3387 }, 3388 "node_modules/@types/qs": { ··· 3400 "license": "MIT" 3401 }, 3402 "node_modules/@types/send": { 3403 - "version": "0.17.5", 3404 - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", 3405 - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", 3406 "dev": true, 3407 "license": "MIT", 3408 "dependencies": { 3409 - "@types/mime": "^1", 3410 "@types/node": "*" 3411 } 3412 }, 3413 "node_modules/@types/serve-static": { 3414 - "version": "1.15.8", 3415 - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", 3416 - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", 3417 "dev": true, 3418 "license": "MIT", 3419 "dependencies": { 3420 "@types/http-errors": "*", 3421 "@types/node": "*", 3422 - "@types/send": "*" 3423 } 3424 }, 3425 "node_modules/@types/simple-peer": { 3426 - "version": "9.11.8", 3427 - "resolved": "https://registry.npmjs.org/@types/simple-peer/-/simple-peer-9.11.8.tgz", 3428 - "integrity": "sha512-rvqefdp2rvIA6wiomMgKWd2UZNPe6LM2EV5AuY3CPQJF+8TbdrL5TjYdMf0VAjGczzlkH4l1NjDkihwbj3Xodw==", 3429 "dev": true, 3430 "license": "MIT", 3431 "dependencies": { ··· 3464 } 3465 }, 3466 "node_modules/@types/yargs": { 3467 - "version": "17.0.33", 3468 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", 3469 - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", 3470 "dev": true, 3471 "license": "MIT", 3472 "dependencies": { ··· 3481 "license": "MIT" 3482 }, 3483 "node_modules/@typescript-eslint/eslint-plugin": { 3484 - "version": "8.34.1", 3485 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.1.tgz", 3486 - "integrity": "sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==", 3487 "dev": true, 3488 "license": "MIT", 3489 "dependencies": { 3490 "@eslint-community/regexpp": "^4.10.0", 3491 - "@typescript-eslint/scope-manager": "8.34.1", 3492 - "@typescript-eslint/type-utils": "8.34.1", 3493 - "@typescript-eslint/utils": "8.34.1", 3494 - "@typescript-eslint/visitor-keys": "8.34.1", 3495 "graphemer": "^1.4.0", 3496 "ignore": "^7.0.0", 3497 "natural-compare": "^1.4.0", ··· 3505 "url": "https://opencollective.com/typescript-eslint" 3506 }, 3507 "peerDependencies": { 3508 - "@typescript-eslint/parser": "^8.34.1", 3509 "eslint": "^8.57.0 || ^9.0.0", 3510 - "typescript": ">=4.8.4 <5.9.0" 3511 } 3512 }, 3513 "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { ··· 3521 } 3522 }, 3523 "node_modules/@typescript-eslint/parser": { 3524 - "version": "8.34.1", 3525 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz", 3526 - "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==", 3527 "dev": true, 3528 "license": "MIT", 3529 "dependencies": { 3530 - "@typescript-eslint/scope-manager": "8.34.1", 3531 - "@typescript-eslint/types": "8.34.1", 3532 - "@typescript-eslint/typescript-estree": "8.34.1", 3533 - "@typescript-eslint/visitor-keys": "8.34.1", 3534 "debug": "^4.3.4" 3535 }, 3536 "engines": { ··· 3542 }, 3543 "peerDependencies": { 3544 "eslint": "^8.57.0 || ^9.0.0", 3545 - "typescript": ">=4.8.4 <5.9.0" 3546 } 3547 }, 3548 "node_modules/@typescript-eslint/project-service": { 3549 - "version": "8.34.1", 3550 - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz", 3551 - "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==", 3552 "dev": true, 3553 "license": "MIT", 3554 "dependencies": { 3555 - "@typescript-eslint/tsconfig-utils": "^8.34.1", 3556 - "@typescript-eslint/types": "^8.34.1", 3557 "debug": "^4.3.4" 3558 }, 3559 "engines": { ··· 3564 "url": "https://opencollective.com/typescript-eslint" 3565 }, 3566 "peerDependencies": { 3567 - "typescript": ">=4.8.4 <5.9.0" 3568 } 3569 }, 3570 "node_modules/@typescript-eslint/scope-manager": { 3571 - "version": "8.34.1", 3572 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz", 3573 - "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==", 3574 "dev": true, 3575 "license": "MIT", 3576 "dependencies": { 3577 - "@typescript-eslint/types": "8.34.1", 3578 - "@typescript-eslint/visitor-keys": "8.34.1" 3579 }, 3580 "engines": { 3581 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 3586 } 3587 }, 3588 "node_modules/@typescript-eslint/tsconfig-utils": { 3589 - "version": "8.34.1", 3590 - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz", 3591 - "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==", 3592 "dev": true, 3593 "license": "MIT", 3594 "engines": { ··· 3599 "url": "https://opencollective.com/typescript-eslint" 3600 }, 3601 "peerDependencies": { 3602 - "typescript": ">=4.8.4 <5.9.0" 3603 } 3604 }, 3605 "node_modules/@typescript-eslint/type-utils": { 3606 - "version": "8.34.1", 3607 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.1.tgz", 3608 - "integrity": "sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==", 3609 "dev": true, 3610 "license": "MIT", 3611 "dependencies": { 3612 - "@typescript-eslint/typescript-estree": "8.34.1", 3613 - "@typescript-eslint/utils": "8.34.1", 3614 "debug": "^4.3.4", 3615 "ts-api-utils": "^2.1.0" 3616 }, ··· 3623 }, 3624 "peerDependencies": { 3625 "eslint": "^8.57.0 || ^9.0.0", 3626 - "typescript": ">=4.8.4 <5.9.0" 3627 } 3628 }, 3629 "node_modules/@typescript-eslint/types": { 3630 - "version": "8.34.1", 3631 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz", 3632 - "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==", 3633 "dev": true, 3634 "license": "MIT", 3635 "engines": { ··· 3641 } 3642 }, 3643 "node_modules/@typescript-eslint/typescript-estree": { 3644 - "version": "8.34.1", 3645 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz", 3646 - "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==", 3647 "dev": true, 3648 "license": "MIT", 3649 "dependencies": { 3650 - "@typescript-eslint/project-service": "8.34.1", 3651 - "@typescript-eslint/tsconfig-utils": "8.34.1", 3652 - "@typescript-eslint/types": "8.34.1", 3653 - "@typescript-eslint/visitor-keys": "8.34.1", 3654 "debug": "^4.3.4", 3655 "fast-glob": "^3.3.2", 3656 "is-glob": "^4.0.3", ··· 3666 "url": "https://opencollective.com/typescript-eslint" 3667 }, 3668 "peerDependencies": { 3669 - "typescript": ">=4.8.4 <5.9.0" 3670 } 3671 }, 3672 "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { ··· 3683 } 3684 }, 3685 "node_modules/@typescript-eslint/utils": { 3686 - "version": "8.34.1", 3687 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.1.tgz", 3688 - "integrity": "sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==", 3689 "dev": true, 3690 "license": "MIT", 3691 "dependencies": { 3692 "@eslint-community/eslint-utils": "^4.7.0", 3693 - "@typescript-eslint/scope-manager": "8.34.1", 3694 - "@typescript-eslint/types": "8.34.1", 3695 - "@typescript-eslint/typescript-estree": "8.34.1" 3696 }, 3697 "engines": { 3698 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 3703 }, 3704 "peerDependencies": { 3705 "eslint": "^8.57.0 || ^9.0.0", 3706 - "typescript": ">=4.8.4 <5.9.0" 3707 } 3708 }, 3709 "node_modules/@typescript-eslint/visitor-keys": { 3710 - "version": "8.34.1", 3711 - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz", 3712 - "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==", 3713 "dev": true, 3714 "license": "MIT", 3715 "dependencies": { 3716 - "@typescript-eslint/types": "8.34.1", 3717 "eslint-visitor-keys": "^4.2.1" 3718 }, 3719 "engines": { ··· 3732 "license": "ISC" 3733 }, 3734 "node_modules/@unrs/resolver-binding-android-arm-eabi": { 3735 - "version": "1.9.0", 3736 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.0.tgz", 3737 - "integrity": "sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==", 3738 "cpu": [ 3739 "arm" 3740 ], ··· 3746 ] 3747 }, 3748 "node_modules/@unrs/resolver-binding-android-arm64": { 3749 - "version": "1.9.0", 3750 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.0.tgz", 3751 - "integrity": "sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==", 3752 "cpu": [ 3753 "arm64" 3754 ], ··· 3760 ] 3761 }, 3762 "node_modules/@unrs/resolver-binding-darwin-arm64": { 3763 - "version": "1.9.0", 3764 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.0.tgz", 3765 - "integrity": "sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==", 3766 "cpu": [ 3767 "arm64" 3768 ], ··· 3774 ] 3775 }, 3776 "node_modules/@unrs/resolver-binding-darwin-x64": { 3777 - "version": "1.9.0", 3778 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.0.tgz", 3779 - "integrity": "sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==", 3780 "cpu": [ 3781 "x64" 3782 ], ··· 3788 ] 3789 }, 3790 "node_modules/@unrs/resolver-binding-freebsd-x64": { 3791 - "version": "1.9.0", 3792 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.0.tgz", 3793 - "integrity": "sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==", 3794 "cpu": [ 3795 "x64" 3796 ], ··· 3802 ] 3803 }, 3804 "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { 3805 - "version": "1.9.0", 3806 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.0.tgz", 3807 - "integrity": "sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==", 3808 "cpu": [ 3809 "arm" 3810 ], ··· 3816 ] 3817 }, 3818 "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { 3819 - "version": "1.9.0", 3820 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.0.tgz", 3821 - "integrity": "sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==", 3822 "cpu": [ 3823 "arm" 3824 ], ··· 3830 ] 3831 }, 3832 "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { 3833 - "version": "1.9.0", 3834 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.0.tgz", 3835 - "integrity": "sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==", 3836 "cpu": [ 3837 "arm64" 3838 ], ··· 3844 ] 3845 }, 3846 "node_modules/@unrs/resolver-binding-linux-arm64-musl": { 3847 - "version": "1.9.0", 3848 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.0.tgz", 3849 - "integrity": "sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==", 3850 "cpu": [ 3851 "arm64" 3852 ], ··· 3858 ] 3859 }, 3860 "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { 3861 - "version": "1.9.0", 3862 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.0.tgz", 3863 - "integrity": "sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==", 3864 "cpu": [ 3865 "ppc64" 3866 ], ··· 3872 ] 3873 }, 3874 "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { 3875 - "version": "1.9.0", 3876 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.0.tgz", 3877 - "integrity": "sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==", 3878 "cpu": [ 3879 "riscv64" 3880 ], ··· 3886 ] 3887 }, 3888 "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { 3889 - "version": "1.9.0", 3890 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.0.tgz", 3891 - "integrity": "sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==", 3892 "cpu": [ 3893 "riscv64" 3894 ], ··· 3900 ] 3901 }, 3902 "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { 3903 - "version": "1.9.0", 3904 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.0.tgz", 3905 - "integrity": "sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==", 3906 "cpu": [ 3907 "s390x" 3908 ], ··· 3914 ] 3915 }, 3916 "node_modules/@unrs/resolver-binding-linux-x64-gnu": { 3917 - "version": "1.9.0", 3918 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.0.tgz", 3919 - "integrity": "sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==", 3920 "cpu": [ 3921 "x64" 3922 ], ··· 3928 ] 3929 }, 3930 "node_modules/@unrs/resolver-binding-linux-x64-musl": { 3931 - "version": "1.9.0", 3932 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.0.tgz", 3933 - "integrity": "sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==", 3934 "cpu": [ 3935 "x64" 3936 ], ··· 3942 ] 3943 }, 3944 "node_modules/@unrs/resolver-binding-wasm32-wasi": { 3945 - "version": "1.9.0", 3946 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.0.tgz", 3947 - "integrity": "sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==", 3948 "cpu": [ 3949 "wasm32" 3950 ], ··· 3959 } 3960 }, 3961 "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { 3962 - "version": "1.9.0", 3963 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.0.tgz", 3964 - "integrity": "sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==", 3965 "cpu": [ 3966 "arm64" 3967 ], ··· 3973 ] 3974 }, 3975 "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { 3976 - "version": "1.9.0", 3977 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.0.tgz", 3978 - "integrity": "sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==", 3979 "cpu": [ 3980 "ia32" 3981 ], ··· 3987 ] 3988 }, 3989 "node_modules/@unrs/resolver-binding-win32-x64-msvc": { 3990 - "version": "1.9.0", 3991 - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.0.tgz", 3992 - "integrity": "sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==", 3993 "cpu": [ 3994 "x64" 3995 ], ··· 4011 "http-parser-js": "^0.4.3" 4012 } 4013 }, 4014 - "node_modules/@zod/core": { 4015 - "version": "0.11.6", 4016 - "resolved": "https://registry.npmjs.org/@zod/core/-/core-0.11.6.tgz", 4017 - "integrity": "sha512-03Bv82fFSfjDAvMfdHHdGSS6SOJs0iCcJlWJv1kJHRtoTT02hZpyip/2Lk6oo4l4FtjuwTrsEQTwg/LD8I7dJA==", 4018 - "dev": true, 4019 - "license": "MIT", 4020 - "peer": true, 4021 - "funding": { 4022 - "url": "https://github.com/sponsors/colinhacks" 4023 - } 4024 - }, 4025 "node_modules/abbrev": { 4026 "version": "1.1.1", 4027 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", ··· 4107 } 4108 }, 4109 "node_modules/agent-base": { 4110 - "version": "7.1.3", 4111 - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", 4112 - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", 4113 "dev": true, 4114 "license": "MIT", 4115 "engines": { ··· 4219 } 4220 }, 4221 "node_modules/aproba": { 4222 - "version": "2.0.0", 4223 - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", 4224 - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", 4225 "dev": true, 4226 "license": "ISC", 4227 "optional": true ··· 4437 "util": "^0.12.5" 4438 } 4439 }, 4440 - "node_modules/async": { 4441 - "version": "3.2.6", 4442 - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", 4443 - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", 4444 - "dev": true, 4445 - "license": "MIT" 4446 - }, 4447 "node_modules/async-function": { 4448 "version": "1.0.0", 4449 "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", ··· 4471 } 4472 }, 4473 "node_modules/b4a": { 4474 - "version": "1.6.7", 4475 - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", 4476 - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", 4477 "dev": true, 4478 - "license": "Apache-2.0" 4479 }, 4480 "node_modules/babel-jest": { 4481 - "version": "30.0.2", 4482 - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.0.2.tgz", 4483 - "integrity": "sha512-A5kqR1/EUTidM2YC2YMEUDP2+19ppgOwK0IAd9Swc3q2KqFb5f9PtRUXVeZcngu0z5mDMyZ9zH2huJZSOMLiTQ==", 4484 "dev": true, 4485 "license": "MIT", 4486 "dependencies": { 4487 - "@jest/transform": "30.0.2", 4488 "@types/babel__core": "^7.20.5", 4489 - "babel-plugin-istanbul": "^7.0.0", 4490 - "babel-preset-jest": "30.0.1", 4491 "chalk": "^4.1.2", 4492 "graceful-fs": "^4.2.11", 4493 "slash": "^3.0.0" ··· 4496 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 4497 }, 4498 "peerDependencies": { 4499 - "@babel/core": "^7.11.0" 4500 } 4501 }, 4502 "node_modules/babel-plugin-istanbul": { 4503 - "version": "7.0.0", 4504 - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.0.tgz", 4505 - "integrity": "sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==", 4506 "dev": true, 4507 "license": "BSD-3-Clause", 4508 "dependencies": { 4509 "@babel/helper-plugin-utils": "^7.0.0", 4510 "@istanbuljs/load-nyc-config": "^1.0.0", ··· 4517 } 4518 }, 4519 "node_modules/babel-plugin-jest-hoist": { 4520 - "version": "30.0.1", 4521 - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz", 4522 - "integrity": "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==", 4523 "dev": true, 4524 "license": "MIT", 4525 "dependencies": { 4526 - "@babel/template": "^7.27.2", 4527 - "@babel/types": "^7.27.3", 4528 "@types/babel__core": "^7.20.5" 4529 }, 4530 "engines": { ··· 4542 } 4543 }, 4544 "node_modules/babel-preset-current-node-syntax": { 4545 - "version": "1.1.0", 4546 - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", 4547 - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", 4548 "dev": true, 4549 "license": "MIT", 4550 "dependencies": { ··· 4565 "@babel/plugin-syntax-top-level-await": "^7.14.5" 4566 }, 4567 "peerDependencies": { 4568 - "@babel/core": "^7.0.0" 4569 } 4570 }, 4571 "node_modules/babel-preset-jest": { 4572 - "version": "30.0.1", 4573 - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz", 4574 - "integrity": "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==", 4575 "dev": true, 4576 "license": "MIT", 4577 "dependencies": { 4578 - "babel-plugin-jest-hoist": "30.0.1", 4579 - "babel-preset-current-node-syntax": "^1.1.0" 4580 }, 4581 "engines": { 4582 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 4583 }, 4584 "peerDependencies": { 4585 - "@babel/core": "^7.11.0" 4586 } 4587 }, 4588 "node_modules/balanced-match": { ··· 4593 "license": "MIT" 4594 }, 4595 "node_modules/bare-addon-resolve": { 4596 - "version": "1.9.4", 4597 - "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.9.4.tgz", 4598 - "integrity": "sha512-unn6Vy/Yke6F99vg/7tcrvM2KUvIhTNniaSqDbam4AWkd4NhvDVSrQiRYVlNzUV2P7SPobkCK7JFVxrJk9btCg==", 4599 "dev": true, 4600 "license": "Apache-2.0", 4601 "optional": true, ··· 4613 } 4614 }, 4615 "node_modules/bare-events": { 4616 - "version": "2.5.4", 4617 - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", 4618 - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", 4619 "dev": true, 4620 - "license": "Apache-2.0" 4621 }, 4622 "node_modules/bare-fs": { 4623 - "version": "4.1.5", 4624 - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.5.tgz", 4625 - "integrity": "sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==", 4626 "dev": true, 4627 "license": "Apache-2.0", 4628 "dependencies": { 4629 "bare-events": "^2.5.4", 4630 "bare-path": "^3.0.0", 4631 - "bare-stream": "^2.6.4" 4632 }, 4633 "engines": { 4634 "bare": ">=1.16.0" ··· 4643 } 4644 }, 4645 "node_modules/bare-module-resolve": { 4646 - "version": "1.11.1", 4647 - "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.11.1.tgz", 4648 - "integrity": "sha512-DCxeT9i8sTs3vUMA3w321OX/oXtNEu5EjObQOnTmCdNp5RXHBAvAaBDHvAi9ta0q/948QPz+co6SsGi6aQMYRg==", 4649 "dev": true, 4650 "license": "Apache-2.0", 4651 "optional": true, ··· 4662 } 4663 }, 4664 "node_modules/bare-os": { 4665 - "version": "3.6.1", 4666 - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", 4667 - "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", 4668 "dev": true, 4669 "license": "Apache-2.0", 4670 "engines": { ··· 4682 } 4683 }, 4684 "node_modules/bare-semver": { 4685 - "version": "1.0.1", 4686 - "resolved": "https://registry.npmjs.org/bare-semver/-/bare-semver-1.0.1.tgz", 4687 - "integrity": "sha512-UtggzHLiTrmFOC/ogQ+Hy7VfoKoIwrP1UFcYtTxoCUdLtsIErT8+SWtOC2DH/snT9h+xDrcBEPcwKei1mzemgg==", 4688 "dev": true, 4689 "license": "Apache-2.0", 4690 "optional": true 4691 }, 4692 "node_modules/bare-stream": { 4693 - "version": "2.6.5", 4694 - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", 4695 - "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", 4696 "dev": true, 4697 "license": "Apache-2.0", 4698 "dependencies": { ··· 4712 } 4713 }, 4714 "node_modules/bare-url": { 4715 - "version": "2.1.6", 4716 - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.1.6.tgz", 4717 - "integrity": "sha512-FgjDeR+/yDH34By4I0qB5NxAoWv7dOTYcOXwn73kr+c93HyC2lU6tnjifqUe33LKMJcDyCYPQjEAqgOQiXkE2Q==", 4718 "dev": true, 4719 "license": "Apache-2.0", 4720 - "optional": true, 4721 "dependencies": { 4722 "bare-path": "^3.0.0" 4723 } ··· 4762 ], 4763 "license": "MIT" 4764 }, 4765 "node_modules/bencode": { 4766 "version": "4.0.0", 4767 "resolved": "https://registry.npmjs.org/bencode/-/bencode-4.0.0.tgz", ··· 4823 } 4824 }, 4825 "node_modules/bittorrent-dht": { 4826 - "version": "11.0.10", 4827 - "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-11.0.10.tgz", 4828 - "integrity": "sha512-/Xlruvh+nT5IZcDYiCjvDinJy2X5532zJ8vJpVYh4f52IPw29FnjqYAcLenLludupXmFHj/pxntu8KkP7jAbUg==", 4829 "dev": true, 4830 "funding": [ 4831 { ··· 4844 "license": "MIT", 4845 "dependencies": { 4846 "bencode": "^4.0.0", 4847 - "debug": "^4.4.1", 4848 "k-bucket": "^5.1.0", 4849 "k-rpc": "^5.1.0", 4850 "last-one-wins": "^1.0.4", ··· 4906 "license": "MIT" 4907 }, 4908 "node_modules/bittorrent-protocol": { 4909 - "version": "4.1.16", 4910 - "resolved": "https://registry.npmjs.org/bittorrent-protocol/-/bittorrent-protocol-4.1.16.tgz", 4911 - "integrity": "sha512-93t8h77uAyD8BGSpBo8SqxYyKBA/xgv9N8+WghnXpH2I+JmlmJmddUt8nugPRgj/LNuL1VrWJ26jhYhiVWpRaQ==", 4912 "dev": true, 4913 "funding": [ 4914 { ··· 4927 "license": "MIT", 4928 "dependencies": { 4929 "bencode": "^4.0.0", 4930 - "bitfield": "^4.1.0", 4931 - "debug": "^4.4.0", 4932 "rc4": "^0.1.5", 4933 - "streamx": "^2.15.1", 4934 - "throughput": "^1.0.1", 4935 "uint8-util": "^2.2.5", 4936 "unordered-array-remove": "^1.0.2" 4937 }, ··· 4940 } 4941 }, 4942 "node_modules/bittorrent-tracker": { 4943 - "version": "11.2.1", 4944 - "resolved": "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-11.2.1.tgz", 4945 - "integrity": "sha512-SffBgHzNrhn+HBwdRD2st+TYJOs2LhF3ljJFPCYGv592LpGtPxw41UZHTUeY5muWnQl+wopcU8qXM9UEk2WKrA==", 4946 "dev": true, 4947 "funding": [ 4948 { ··· 5121 } 5122 }, 5123 "node_modules/browser-resolve/node_modules/resolve": { 5124 - "version": "1.22.10", 5125 - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", 5126 - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", 5127 "dev": true, 5128 "license": "MIT", 5129 "dependencies": { 5130 - "is-core-module": "^2.16.0", 5131 "path-parse": "^1.0.7", 5132 "supports-preserve-symlinks-flag": "^1.0.0" 5133 }, ··· 5197 } 5198 }, 5199 "node_modules/browserify-sign": { 5200 - "version": "4.2.3", 5201 - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", 5202 - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", 5203 "dev": true, 5204 "license": "ISC", 5205 "dependencies": { 5206 - "bn.js": "^5.2.1", 5207 - "browserify-rsa": "^4.1.0", 5208 "create-hash": "^1.2.0", 5209 "create-hmac": "^1.1.7", 5210 - "elliptic": "^6.5.5", 5211 - "hash-base": "~3.0", 5212 "inherits": "^2.0.4", 5213 - "parse-asn1": "^5.1.7", 5214 "readable-stream": "^2.3.8", 5215 "safe-buffer": "^5.2.1" 5216 }, 5217 "engines": { 5218 - "node": ">= 0.12" 5219 } 5220 }, 5221 "node_modules/browserify-sign/node_modules/isarray": { ··· 5276 } 5277 }, 5278 "node_modules/browserslist": { 5279 - "version": "4.25.0", 5280 - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", 5281 - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", 5282 "dev": true, 5283 "funding": [ 5284 { ··· 5296 ], 5297 "license": "MIT", 5298 "dependencies": { 5299 - "caniuse-lite": "^1.0.30001718", 5300 - "electron-to-chromium": "^1.5.160", 5301 - "node-releases": "^2.0.19", 5302 - "update-browserslist-db": "^1.1.3" 5303 }, 5304 "bin": { 5305 "browserslist": "cli.js" ··· 5620 } 5621 }, 5622 "node_modules/caniuse-lite": { 5623 - "version": "1.0.30001724", 5624 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001724.tgz", 5625 - "integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==", 5626 "dev": true, 5627 "funding": [ 5628 { ··· 5641 "license": "CC-BY-4.0" 5642 }, 5643 "node_modules/canvas": { 5644 - "version": "3.1.2", 5645 - "resolved": "https://registry.npmjs.org/canvas/-/canvas-3.1.2.tgz", 5646 - "integrity": "sha512-Z/tzFAcBzoCvJlOSlCnoekh1Gu8YMn0J51+UAuXJAbW1Z6I9l2mZgdD7738MepoeeIcUdDtbMnOg6cC7GJxy/g==", 5647 "dev": true, 5648 "hasInstallScript": true, 5649 "license": "MIT", ··· 5797 } 5798 }, 5799 "node_modules/ci-info": { 5800 - "version": "4.2.0", 5801 - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz", 5802 - "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==", 5803 "dev": true, 5804 "funding": [ 5805 { ··· 5813 } 5814 }, 5815 "node_modules/cipher-base": { 5816 - "version": "1.0.6", 5817 - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", 5818 - "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", 5819 "dev": true, 5820 "license": "MIT", 5821 "dependencies": { 5822 "inherits": "^2.0.4", 5823 - "safe-buffer": "^5.2.1" 5824 }, 5825 "engines": { 5826 "node": ">= 0.10" ··· 5940 } 5941 }, 5942 "node_modules/collect-v8-coverage": { 5943 - "version": "1.0.2", 5944 - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", 5945 - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", 5946 "dev": true, 5947 "license": "MIT" 5948 }, ··· 6245 } 6246 }, 6247 "node_modules/css-select": { 6248 - "version": "5.1.0", 6249 - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", 6250 - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", 6251 "dev": true, 6252 "license": "BSD-2-Clause", 6253 "dependencies": { ··· 6262 } 6263 }, 6264 "node_modules/css-what": { 6265 - "version": "6.1.0", 6266 - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", 6267 - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", 6268 "dev": true, 6269 "license": "BSD-2-Clause", 6270 "engines": { ··· 6282 "license": "MIT" 6283 }, 6284 "node_modules/cssstyle": { 6285 - "version": "4.4.0", 6286 - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.4.0.tgz", 6287 - "integrity": "sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==", 6288 "dev": true, 6289 "license": "MIT", 6290 "dependencies": { ··· 6374 } 6375 }, 6376 "node_modules/debug": { 6377 - "version": "4.4.1", 6378 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 6379 - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 6380 "license": "MIT", 6381 "dependencies": { 6382 "ms": "^2.1.3" ··· 6391 } 6392 }, 6393 "node_modules/decimal.js": { 6394 - "version": "10.5.0", 6395 - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", 6396 - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", 6397 "dev": true, 6398 "license": "MIT" 6399 }, ··· 6428 } 6429 }, 6430 "node_modules/dedent": { 6431 - "version": "1.6.0", 6432 - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", 6433 - "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", 6434 "dev": true, 6435 "license": "MIT", 6436 "peerDependencies": { ··· 6715 } 6716 }, 6717 "node_modules/detect-libc": { 6718 - "version": "2.0.4", 6719 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 6720 - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 6721 "dev": true, 6722 "license": "Apache-2.0", 6723 "engines": { ··· 6749 } 6750 }, 6751 "node_modules/dexie": { 6752 - "version": "4.0.11", 6753 - "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.0.11.tgz", 6754 - "integrity": "sha512-SOKO002EqlvBYYKQSew3iymBoN2EQ4BDw/3yprjh7kAfFzjBYkaMNa/pZvcA7HSWlcKSQb9XhPe3wKyQ0x4A8A==", 6755 "license": "Apache-2.0" 6756 }, 6757 "node_modules/diffie-hellman": { ··· 6915 "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", 6916 "license": "MIT" 6917 }, 6918 - "node_modules/ejs": { 6919 - "version": "3.1.10", 6920 - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", 6921 - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", 6922 - "dev": true, 6923 - "license": "Apache-2.0", 6924 - "dependencies": { 6925 - "jake": "^10.8.5" 6926 - }, 6927 - "bin": { 6928 - "ejs": "bin/cli.js" 6929 - }, 6930 - "engines": { 6931 - "node": ">=0.10.0" 6932 - } 6933 - }, 6934 "node_modules/electron-to-chromium": { 6935 - "version": "1.5.171", 6936 - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.171.tgz", 6937 - "integrity": "sha512-scWpzXEJEMrGJa4Y6m/tVotb0WuvNmasv3wWVzUAeCgKU0ToFOhUW6Z+xWnRQANMYGxN4ngJXIThgBJOqzVPCQ==", 6938 "dev": true, 6939 "license": "ISC" 6940 }, ··· 7042 "license": "MIT" 7043 }, 7044 "node_modules/error-ex": { 7045 - "version": "1.3.2", 7046 - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 7047 - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 7048 "dev": true, 7049 "license": "MIT", 7050 "dependencies": { ··· 7247 } 7248 }, 7249 "node_modules/esbuild": { 7250 - "version": "0.25.5", 7251 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", 7252 - "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", 7253 "hasInstallScript": true, 7254 "license": "MIT", 7255 "bin": { ··· 7259 "node": ">=18" 7260 }, 7261 "optionalDependencies": { 7262 - "@esbuild/aix-ppc64": "0.25.5", 7263 - "@esbuild/android-arm": "0.25.5", 7264 - "@esbuild/android-arm64": "0.25.5", 7265 - "@esbuild/android-x64": "0.25.5", 7266 - "@esbuild/darwin-arm64": "0.25.5", 7267 - "@esbuild/darwin-x64": "0.25.5", 7268 - "@esbuild/freebsd-arm64": "0.25.5", 7269 - "@esbuild/freebsd-x64": "0.25.5", 7270 - "@esbuild/linux-arm": "0.25.5", 7271 - "@esbuild/linux-arm64": "0.25.5", 7272 - "@esbuild/linux-ia32": "0.25.5", 7273 - "@esbuild/linux-loong64": "0.25.5", 7274 - "@esbuild/linux-mips64el": "0.25.5", 7275 - "@esbuild/linux-ppc64": "0.25.5", 7276 - "@esbuild/linux-riscv64": "0.25.5", 7277 - "@esbuild/linux-s390x": "0.25.5", 7278 - "@esbuild/linux-x64": "0.25.5", 7279 - "@esbuild/netbsd-arm64": "0.25.5", 7280 - "@esbuild/netbsd-x64": "0.25.5", 7281 - "@esbuild/openbsd-arm64": "0.25.5", 7282 - "@esbuild/openbsd-x64": "0.25.5", 7283 - "@esbuild/sunos-x64": "0.25.5", 7284 - "@esbuild/win32-arm64": "0.25.5", 7285 - "@esbuild/win32-ia32": "0.25.5", 7286 - "@esbuild/win32-x64": "0.25.5" 7287 } 7288 }, 7289 "node_modules/escalade": { ··· 7316 } 7317 }, 7318 "node_modules/eslint": { 7319 - "version": "9.29.0", 7320 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz", 7321 - "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==", 7322 "dev": true, 7323 "license": "MIT", 7324 "dependencies": { 7325 - "@eslint-community/eslint-utils": "^4.2.0", 7326 "@eslint-community/regexpp": "^4.12.1", 7327 - "@eslint/config-array": "^0.20.1", 7328 - "@eslint/config-helpers": "^0.2.1", 7329 - "@eslint/core": "^0.14.0", 7330 "@eslint/eslintrc": "^3.3.1", 7331 - "@eslint/js": "9.29.0", 7332 - "@eslint/plugin-kit": "^0.3.1", 7333 "@humanfs/node": "^0.16.6", 7334 "@humanwhocodes/module-importer": "^1.0.1", 7335 "@humanwhocodes/retry": "^0.4.2", 7336 "@types/estree": "^1.0.6", 7337 - "@types/json-schema": "^7.0.15", 7338 "ajv": "^6.12.4", 7339 "chalk": "^4.0.0", 7340 "cross-spawn": "^7.0.6", ··· 7377 } 7378 }, 7379 "node_modules/eslint-config-prettier": { 7380 - "version": "10.1.5", 7381 - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", 7382 - "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", 7383 "dev": true, 7384 "license": "MIT", 7385 "bin": { ··· 7393 } 7394 }, 7395 "node_modules/eslint-plugin-prettier": { 7396 - "version": "5.5.0", 7397 - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.0.tgz", 7398 - "integrity": "sha512-8qsOYwkkGrahrgoUv76NZi23koqXOGiiEzXMrT8Q7VcYaUISR+5MorIUxfWqYXN0fN/31WbSrxCxFkVQ43wwrA==", 7399 "dev": true, 7400 "license": "MIT", 7401 "dependencies": { ··· 7534 "url": "https://opencollective.com/eslint" 7535 } 7536 }, 7537 "node_modules/eslint/node_modules/brace-expansion": { 7538 "version": "1.1.12", 7539 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", ··· 7745 } 7746 }, 7747 "node_modules/expect": { 7748 - "version": "30.0.2", 7749 - "resolved": "https://registry.npmjs.org/expect/-/expect-30.0.2.tgz", 7750 - "integrity": "sha512-YN9Mgv2mtTWXVmifQq3QT+ixCL/uLuLJw+fdp8MOjKqu8K3XQh3o5aulMM1tn+O2DdrWNxLZTeJsCY/VofUA0A==", 7751 "dev": true, 7752 "license": "MIT", 7753 "dependencies": { 7754 - "@jest/expect-utils": "30.0.2", 7755 - "@jest/get-type": "30.0.1", 7756 - "jest-matcher-utils": "30.0.2", 7757 - "jest-message-util": "30.0.2", 7758 - "jest-mock": "30.0.2", 7759 - "jest-util": "30.0.2" 7760 }, 7761 "engines": { 7762 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 7955 "license": "MIT", 7956 "optional": true 7957 }, 7958 - "node_modules/filelist": { 7959 - "version": "1.0.4", 7960 - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", 7961 - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", 7962 - "dev": true, 7963 - "license": "Apache-2.0", 7964 - "dependencies": { 7965 - "minimatch": "^5.0.1" 7966 - } 7967 - }, 7968 - "node_modules/filelist/node_modules/minimatch": { 7969 - "version": "5.1.6", 7970 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", 7971 - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", 7972 - "dev": true, 7973 - "license": "ISC", 7974 - "dependencies": { 7975 - "brace-expansion": "^2.0.1" 7976 - }, 7977 - "engines": { 7978 - "node": ">=10" 7979 - } 7980 - }, 7981 "node_modules/filename-reserved-regex": { 7982 "version": "3.0.0", 7983 "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", ··· 8140 } 8141 }, 8142 "node_modules/fs-chunk-store": { 8143 - "version": "4.1.0", 8144 - "resolved": "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-4.1.0.tgz", 8145 - "integrity": "sha512-8apaYPaENIVUjVGqjo+Yg5/Hv7qL2fijWV+XGMCs3MR07o9DZZVMpF7dclxdjYotSjLdUGVPhqaJn+eAx6NLYQ==", 8146 "dev": true, 8147 "funding": [ 8148 { ··· 8163 "filename-reserved-regex": "^3.0.0", 8164 "queue-microtask": "^1.2.2", 8165 "random-access-file": "^4.0.0", 8166 - "randombytes": "^2.0.3", 8167 "run-parallel": "^1.1.2", 8168 - "thunky": "^1.0.1" 8169 }, 8170 "engines": { 8171 "node": ">=12.20.0" ··· 8215 "optional": true 8216 }, 8217 "node_modules/fs-native-extensions": { 8218 - "version": "1.4.2", 8219 - "resolved": "https://registry.npmjs.org/fs-native-extensions/-/fs-native-extensions-1.4.2.tgz", 8220 - "integrity": "sha512-QoQqYdHJTtfHUUO/ylyKSrt3dtPDyXCAjzveqCxPsV3hpIMNt455ua470+iTKJ8lFZ94pLC6Dv1TBbwOFLiV5w==", 8221 "dev": true, 8222 "license": "Apache-2.0", 8223 "optional": true, ··· 8365 "node": ">=8" 8366 } 8367 }, 8368 "node_modules/gensync": { 8369 "version": "1.0.0-beta.2", 8370 "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", ··· 8483 } 8484 }, 8485 "node_modules/get-tsconfig": { 8486 - "version": "4.10.1", 8487 - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", 8488 - "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", 8489 "license": "MIT", 8490 "dependencies": { 8491 "resolve-pkg-maps": "^1.0.0" ··· 8500 "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", 8501 "dev": true, 8502 "license": "MIT" 8503 }, 8504 "node_modules/glob": { 8505 "version": "10.4.5", ··· 8543 "license": "BSD-2-Clause" 8544 }, 8545 "node_modules/globals": { 8546 - "version": "16.2.0", 8547 - "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", 8548 - "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", 8549 "dev": true, 8550 "license": "MIT", 8551 "engines": { ··· 8598 "dev": true, 8599 "license": "MIT" 8600 }, 8601 "node_modules/harmony-reflect": { 8602 "version": "1.6.2", 8603 "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", ··· 9012 } 9013 }, 9014 "node_modules/indexeddbshim": { 9015 - "version": "16.0.0", 9016 - "resolved": "https://registry.npmjs.org/indexeddbshim/-/indexeddbshim-16.0.0.tgz", 9017 - "integrity": "sha512-hN565sRDleKQo9ZTuLIGtZVuUAUgkE3EPvWdK/P9L+MTREgNFqmrf99GMUiXS2/hqwV5V9Gp+CB+ukkjxQ5Zkg==", 9018 "dev": true, 9019 "license": "(MIT OR Apache-2.0)", 9020 "dependencies": { 9021 - "canvas": "^3.1.0", 9022 "eventtargeter": "0.9.0", 9023 "sync-promise-expanded": "^1.0.0", 9024 - "typeson": "9.0.3", 9025 - "typeson-registry": "11.1.1", 9026 "websql-configurable": "^3.0.3" 9027 }, 9028 "engines": { ··· 9085 "license": "MIT" 9086 }, 9087 "node_modules/ip-address": { 9088 - "version": "9.0.5", 9089 - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", 9090 - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", 9091 "dev": true, 9092 "license": "MIT", 9093 - "dependencies": { 9094 - "jsbn": "1.1.0", 9095 - "sprintf-js": "^1.1.3" 9096 - }, 9097 "engines": { 9098 "node": ">= 12" 9099 } ··· 9366 } 9367 }, 9368 "node_modules/is-generator-function": { 9369 - "version": "1.1.0", 9370 - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", 9371 - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", 9372 "dev": true, 9373 "license": "MIT", 9374 "dependencies": { 9375 - "call-bound": "^1.0.3", 9376 - "get-proto": "^1.0.0", 9377 "has-tostringtag": "^1.0.2", 9378 "safe-regex-test": "^1.1.0" 9379 }, ··· 9707 } 9708 }, 9709 "node_modules/istanbul-lib-instrument/node_modules/semver": { 9710 - "version": "7.7.2", 9711 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 9712 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 9713 "dev": true, 9714 "license": "ISC", 9715 "bin": { ··· 9750 } 9751 }, 9752 "node_modules/istanbul-reports": { 9753 - "version": "3.1.7", 9754 - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", 9755 - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", 9756 "dev": true, 9757 "license": "BSD-3-Clause", 9758 "dependencies": { ··· 9797 "@pkgjs/parseargs": "^0.11.0" 9798 } 9799 }, 9800 - "node_modules/jake": { 9801 - "version": "10.9.2", 9802 - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", 9803 - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", 9804 - "dev": true, 9805 - "license": "Apache-2.0", 9806 - "dependencies": { 9807 - "async": "^3.2.3", 9808 - "chalk": "^4.0.2", 9809 - "filelist": "^1.0.4", 9810 - "minimatch": "^3.1.2" 9811 - }, 9812 - "bin": { 9813 - "jake": "bin/cli.js" 9814 - }, 9815 - "engines": { 9816 - "node": ">=10" 9817 - } 9818 - }, 9819 - "node_modules/jake/node_modules/brace-expansion": { 9820 - "version": "1.1.12", 9821 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", 9822 - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", 9823 - "dev": true, 9824 - "license": "MIT", 9825 - "dependencies": { 9826 - "balanced-match": "^1.0.0", 9827 - "concat-map": "0.0.1" 9828 - } 9829 - }, 9830 - "node_modules/jake/node_modules/minimatch": { 9831 - "version": "3.1.2", 9832 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 9833 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 9834 - "dev": true, 9835 - "license": "ISC", 9836 - "dependencies": { 9837 - "brace-expansion": "^1.1.7" 9838 - }, 9839 - "engines": { 9840 - "node": "*" 9841 - } 9842 - }, 9843 "node_modules/jest": { 9844 - "version": "30.0.2", 9845 - "resolved": "https://registry.npmjs.org/jest/-/jest-30.0.2.tgz", 9846 - "integrity": "sha512-HlSEiHRcmTuGwNyeawLTEzpQUMFn+f741FfoNg7RXG2h0WLJKozVCpcQLT0GW17H6kNCqRwGf+Ii/I1YVNvEGQ==", 9847 "dev": true, 9848 "license": "MIT", 9849 "dependencies": { 9850 - "@jest/core": "30.0.2", 9851 - "@jest/types": "30.0.1", 9852 "import-local": "^3.2.0", 9853 - "jest-cli": "30.0.2" 9854 }, 9855 "bin": { 9856 "jest": "bin/jest.js" ··· 9868 } 9869 }, 9870 "node_modules/jest-changed-files": { 9871 - "version": "30.0.2", 9872 - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.0.2.tgz", 9873 - "integrity": "sha512-Ius/iRST9FKfJI+I+kpiDh8JuUlAISnRszF9ixZDIqJF17FckH5sOzKC8a0wd0+D+8em5ADRHA5V5MnfeDk2WA==", 9874 "dev": true, 9875 "license": "MIT", 9876 "dependencies": { 9877 "execa": "^5.1.1", 9878 - "jest-util": "30.0.2", 9879 "p-limit": "^3.1.0" 9880 }, 9881 "engines": { ··· 9883 } 9884 }, 9885 "node_modules/jest-circus": { 9886 - "version": "30.0.2", 9887 - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.0.2.tgz", 9888 - "integrity": "sha512-NRozwx4DaFHcCUtwdEd/0jBLL1imyMrCbla3vF//wdsB2g6jIicMbjx9VhqE/BYU4dwsOQld+06ODX0oZ9xOLg==", 9889 "dev": true, 9890 "license": "MIT", 9891 "dependencies": { 9892 - "@jest/environment": "30.0.2", 9893 - "@jest/expect": "30.0.2", 9894 - "@jest/test-result": "30.0.2", 9895 - "@jest/types": "30.0.1", 9896 "@types/node": "*", 9897 "chalk": "^4.1.2", 9898 "co": "^4.6.0", 9899 "dedent": "^1.6.0", 9900 "is-generator-fn": "^2.1.0", 9901 - "jest-each": "30.0.2", 9902 - "jest-matcher-utils": "30.0.2", 9903 - "jest-message-util": "30.0.2", 9904 - "jest-runtime": "30.0.2", 9905 - "jest-snapshot": "30.0.2", 9906 - "jest-util": "30.0.2", 9907 "p-limit": "^3.1.0", 9908 - "pretty-format": "30.0.2", 9909 "pure-rand": "^7.0.0", 9910 "slash": "^3.0.0", 9911 "stack-utils": "^2.0.6" ··· 9928 } 9929 }, 9930 "node_modules/jest-circus/node_modules/pretty-format": { 9931 - "version": "30.0.2", 9932 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 9933 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 9934 "dev": true, 9935 "license": "MIT", 9936 "dependencies": { 9937 - "@jest/schemas": "30.0.1", 9938 "ansi-styles": "^5.2.0", 9939 "react-is": "^18.3.1" 9940 }, ··· 9950 "license": "MIT" 9951 }, 9952 "node_modules/jest-cli": { 9953 - "version": "30.0.2", 9954 - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.0.2.tgz", 9955 - "integrity": "sha512-yQ6Qz747oUbMYLNAqOlEby+hwXx7WEJtCl0iolBRpJhr2uvkBgiVMrvuKirBc8utwQBnkETFlDUkYifbRpmBrQ==", 9956 "dev": true, 9957 "license": "MIT", 9958 "dependencies": { 9959 - "@jest/core": "30.0.2", 9960 - "@jest/test-result": "30.0.2", 9961 - "@jest/types": "30.0.1", 9962 "chalk": "^4.1.2", 9963 "exit-x": "^0.2.2", 9964 "import-local": "^3.2.0", 9965 - "jest-config": "30.0.2", 9966 - "jest-util": "30.0.2", 9967 - "jest-validate": "30.0.2", 9968 "yargs": "^17.7.2" 9969 }, 9970 "bin": { ··· 9983 } 9984 }, 9985 "node_modules/jest-config": { 9986 - "version": "30.0.2", 9987 - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.0.2.tgz", 9988 - "integrity": "sha512-vo0fVq+uzDcXETFVnCUyr5HaUCM8ES6DEuS9AFpma34BVXMRRNlsqDyiW5RDHaEFoeFlJHoI4Xjh/WSYIAL58g==", 9989 "dev": true, 9990 "license": "MIT", 9991 "dependencies": { 9992 "@babel/core": "^7.27.4", 9993 - "@jest/get-type": "30.0.1", 9994 "@jest/pattern": "30.0.1", 9995 - "@jest/test-sequencer": "30.0.2", 9996 - "@jest/types": "30.0.1", 9997 - "babel-jest": "30.0.2", 9998 "chalk": "^4.1.2", 9999 "ci-info": "^4.2.0", 10000 "deepmerge": "^4.3.1", 10001 "glob": "^10.3.10", 10002 "graceful-fs": "^4.2.11", 10003 - "jest-circus": "30.0.2", 10004 - "jest-docblock": "30.0.1", 10005 - "jest-environment-node": "30.0.2", 10006 "jest-regex-util": "30.0.1", 10007 - "jest-resolve": "30.0.2", 10008 - "jest-runner": "30.0.2", 10009 - "jest-util": "30.0.2", 10010 - "jest-validate": "30.0.2", 10011 "micromatch": "^4.0.8", 10012 "parse-json": "^5.2.0", 10013 - "pretty-format": "30.0.2", 10014 "slash": "^3.0.0", 10015 "strip-json-comments": "^3.1.1" 10016 }, ··· 10048 } 10049 }, 10050 "node_modules/jest-config/node_modules/pretty-format": { 10051 - "version": "30.0.2", 10052 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10053 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10054 "dev": true, 10055 "license": "MIT", 10056 "dependencies": { 10057 - "@jest/schemas": "30.0.1", 10058 "ansi-styles": "^5.2.0", 10059 "react-is": "^18.3.1" 10060 }, ··· 10070 "license": "MIT" 10071 }, 10072 "node_modules/jest-diff": { 10073 - "version": "30.0.2", 10074 - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.0.2.tgz", 10075 - "integrity": "sha512-2UjrNvDJDn/oHFpPrUTVmvYYDNeNtw2DlY3er8bI6vJJb9Fb35ycp/jFLd5RdV59tJ8ekVXX3o/nwPcscgXZJQ==", 10076 "dev": true, 10077 "license": "MIT", 10078 "dependencies": { 10079 "@jest/diff-sequences": "30.0.1", 10080 - "@jest/get-type": "30.0.1", 10081 "chalk": "^4.1.2", 10082 - "pretty-format": "30.0.2" 10083 }, 10084 "engines": { 10085 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10099 } 10100 }, 10101 "node_modules/jest-diff/node_modules/pretty-format": { 10102 - "version": "30.0.2", 10103 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10104 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10105 "dev": true, 10106 "license": "MIT", 10107 "dependencies": { 10108 - "@jest/schemas": "30.0.1", 10109 "ansi-styles": "^5.2.0", 10110 "react-is": "^18.3.1" 10111 }, ··· 10121 "license": "MIT" 10122 }, 10123 "node_modules/jest-docblock": { 10124 - "version": "30.0.1", 10125 - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.0.1.tgz", 10126 - "integrity": "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==", 10127 "dev": true, 10128 "license": "MIT", 10129 "dependencies": { ··· 10134 } 10135 }, 10136 "node_modules/jest-each": { 10137 - "version": "30.0.2", 10138 - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.0.2.tgz", 10139 - "integrity": "sha512-ZFRsTpe5FUWFQ9cWTMguCaiA6kkW5whccPy9JjD1ezxh+mJeqmz8naL8Fl/oSbNJv3rgB0x87WBIkA5CObIUZQ==", 10140 "dev": true, 10141 "license": "MIT", 10142 "dependencies": { 10143 - "@jest/get-type": "30.0.1", 10144 - "@jest/types": "30.0.1", 10145 "chalk": "^4.1.2", 10146 - "jest-util": "30.0.2", 10147 - "pretty-format": "30.0.2" 10148 }, 10149 "engines": { 10150 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10164 } 10165 }, 10166 "node_modules/jest-each/node_modules/pretty-format": { 10167 - "version": "30.0.2", 10168 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10169 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10170 "dev": true, 10171 "license": "MIT", 10172 "dependencies": { 10173 - "@jest/schemas": "30.0.1", 10174 "ansi-styles": "^5.2.0", 10175 "react-is": "^18.3.1" 10176 }, ··· 10186 "license": "MIT" 10187 }, 10188 "node_modules/jest-environment-jsdom": { 10189 - "version": "30.0.2", 10190 - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.0.2.tgz", 10191 - "integrity": "sha512-lwMpe7hZ81e2PpHj+4nowAzSkC0p8ftRfzC+qEjav9p5ElCs6LAce3y46iLwMS27oL9+/KQe55gUvUDwrlDeJQ==", 10192 "dev": true, 10193 "license": "MIT", 10194 "dependencies": { 10195 - "@jest/environment": "30.0.2", 10196 - "@jest/environment-jsdom-abstract": "30.0.2", 10197 "@types/jsdom": "^21.1.7", 10198 "@types/node": "*", 10199 "jsdom": "^26.1.0" ··· 10211 } 10212 }, 10213 "node_modules/jest-environment-node": { 10214 - "version": "30.0.2", 10215 - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.0.2.tgz", 10216 - "integrity": "sha512-XsGtZ0H+a70RsxAQkKuIh0D3ZlASXdZdhpOSBq9WRPq6lhe0IoQHGW0w9ZUaPiZQ/CpkIdprvlfV1QcXcvIQLQ==", 10217 "dev": true, 10218 "license": "MIT", 10219 "dependencies": { 10220 - "@jest/environment": "30.0.2", 10221 - "@jest/fake-timers": "30.0.2", 10222 - "@jest/types": "30.0.1", 10223 "@types/node": "*", 10224 - "jest-mock": "30.0.2", 10225 - "jest-util": "30.0.2", 10226 - "jest-validate": "30.0.2" 10227 }, 10228 "engines": { 10229 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10243 } 10244 }, 10245 "node_modules/jest-haste-map": { 10246 - "version": "30.0.2", 10247 - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.0.2.tgz", 10248 - "integrity": "sha512-telJBKpNLeCb4MaX+I5k496556Y2FiKR/QLZc0+MGBYl4k3OO0472drlV2LUe7c1Glng5HuAu+5GLYp//GpdOQ==", 10249 "dev": true, 10250 "license": "MIT", 10251 "dependencies": { 10252 - "@jest/types": "30.0.1", 10253 "@types/node": "*", 10254 "anymatch": "^3.1.3", 10255 "fb-watchman": "^2.0.2", 10256 "graceful-fs": "^4.2.11", 10257 "jest-regex-util": "30.0.1", 10258 - "jest-util": "30.0.2", 10259 - "jest-worker": "30.0.2", 10260 "micromatch": "^4.0.8", 10261 "walker": "^1.0.8" 10262 }, ··· 10268 } 10269 }, 10270 "node_modules/jest-leak-detector": { 10271 - "version": "30.0.2", 10272 - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.0.2.tgz", 10273 - "integrity": "sha512-U66sRrAYdALq+2qtKffBLDWsQ/XoNNs2Lcr83sc9lvE/hEpNafJlq2lXCPUBMNqamMECNxSIekLfe69qg4KMIQ==", 10274 "dev": true, 10275 "license": "MIT", 10276 "dependencies": { 10277 - "@jest/get-type": "30.0.1", 10278 - "pretty-format": "30.0.2" 10279 }, 10280 "engines": { 10281 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10295 } 10296 }, 10297 "node_modules/jest-leak-detector/node_modules/pretty-format": { 10298 - "version": "30.0.2", 10299 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10300 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10301 "dev": true, 10302 "license": "MIT", 10303 "dependencies": { 10304 - "@jest/schemas": "30.0.1", 10305 "ansi-styles": "^5.2.0", 10306 "react-is": "^18.3.1" 10307 }, ··· 10317 "license": "MIT" 10318 }, 10319 "node_modules/jest-matcher-utils": { 10320 - "version": "30.0.2", 10321 - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.0.2.tgz", 10322 - "integrity": "sha512-1FKwgJYECR8IT93KMKmjKHSLyru0DqguThov/aWpFccC0wbiXGOxYEu7SScderBD7ruDOpl7lc5NG6w3oxKfaA==", 10323 "dev": true, 10324 "license": "MIT", 10325 "dependencies": { 10326 - "@jest/get-type": "30.0.1", 10327 "chalk": "^4.1.2", 10328 - "jest-diff": "30.0.2", 10329 - "pretty-format": "30.0.2" 10330 }, 10331 "engines": { 10332 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10346 } 10347 }, 10348 "node_modules/jest-matcher-utils/node_modules/pretty-format": { 10349 - "version": "30.0.2", 10350 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10351 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10352 "dev": true, 10353 "license": "MIT", 10354 "dependencies": { 10355 - "@jest/schemas": "30.0.1", 10356 "ansi-styles": "^5.2.0", 10357 "react-is": "^18.3.1" 10358 }, ··· 10368 "license": "MIT" 10369 }, 10370 "node_modules/jest-message-util": { 10371 - "version": "30.0.2", 10372 - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.0.2.tgz", 10373 - "integrity": "sha512-vXywcxmr0SsKXF/bAD7t7nMamRvPuJkras00gqYeB1V0WllxZrbZ0paRr3XqpFU2sYYjD0qAaG2fRyn/CGZ0aw==", 10374 "dev": true, 10375 "license": "MIT", 10376 "dependencies": { 10377 "@babel/code-frame": "^7.27.1", 10378 - "@jest/types": "30.0.1", 10379 "@types/stack-utils": "^2.0.3", 10380 "chalk": "^4.1.2", 10381 "graceful-fs": "^4.2.11", 10382 "micromatch": "^4.0.8", 10383 - "pretty-format": "30.0.2", 10384 "slash": "^3.0.0", 10385 "stack-utils": "^2.0.6" 10386 }, ··· 10402 } 10403 }, 10404 "node_modules/jest-message-util/node_modules/pretty-format": { 10405 - "version": "30.0.2", 10406 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10407 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10408 "dev": true, 10409 "license": "MIT", 10410 "dependencies": { 10411 - "@jest/schemas": "30.0.1", 10412 "ansi-styles": "^5.2.0", 10413 "react-is": "^18.3.1" 10414 }, ··· 10424 "license": "MIT" 10425 }, 10426 "node_modules/jest-mock": { 10427 - "version": "30.0.2", 10428 - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.2.tgz", 10429 - "integrity": "sha512-PnZOHmqup/9cT/y+pXIVbbi8ID6U1XHRmbvR7MvUy4SLqhCbwpkmXhLbsWbGewHrV5x/1bF7YDjs+x24/QSvFA==", 10430 "dev": true, 10431 "license": "MIT", 10432 "dependencies": { 10433 - "@jest/types": "30.0.1", 10434 "@types/node": "*", 10435 - "jest-util": "30.0.2" 10436 }, 10437 "engines": { 10438 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10467 } 10468 }, 10469 "node_modules/jest-resolve": { 10470 - "version": "30.0.2", 10471 - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.0.2.tgz", 10472 - "integrity": "sha512-q/XT0XQvRemykZsvRopbG6FQUT6/ra+XV6rPijyjT6D0msOyCvR2A5PlWZLd+fH0U8XWKZfDiAgrUNDNX2BkCw==", 10473 "dev": true, 10474 "license": "MIT", 10475 "dependencies": { 10476 "chalk": "^4.1.2", 10477 "graceful-fs": "^4.2.11", 10478 - "jest-haste-map": "30.0.2", 10479 "jest-pnp-resolver": "^1.2.3", 10480 - "jest-util": "30.0.2", 10481 - "jest-validate": "30.0.2", 10482 "slash": "^3.0.0", 10483 "unrs-resolver": "^1.7.11" 10484 }, ··· 10487 } 10488 }, 10489 "node_modules/jest-resolve-dependencies": { 10490 - "version": "30.0.2", 10491 - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.0.2.tgz", 10492 - "integrity": "sha512-Lp1iIXpsF5fGM4vyP8xHiIy2H5L5yO67/nXoYJzH4kz+fQmO+ZMKxzYLyWxYy4EeCLeNQ6a9OozL+uHZV2iuEA==", 10493 "dev": true, 10494 "license": "MIT", 10495 "dependencies": { 10496 "jest-regex-util": "30.0.1", 10497 - "jest-snapshot": "30.0.2" 10498 }, 10499 "engines": { 10500 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 10501 } 10502 }, 10503 "node_modules/jest-runner": { 10504 - "version": "30.0.2", 10505 - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.0.2.tgz", 10506 - "integrity": "sha512-6H+CIFiDLVt1Ix6jLzASXz3IoIiDukpEIxL9FHtDQ2BD/k5eFtDF5e5N9uItzRE3V1kp7VoSRyrGBytXKra4xA==", 10507 "dev": true, 10508 "license": "MIT", 10509 "dependencies": { 10510 - "@jest/console": "30.0.2", 10511 - "@jest/environment": "30.0.2", 10512 - "@jest/test-result": "30.0.2", 10513 - "@jest/transform": "30.0.2", 10514 - "@jest/types": "30.0.1", 10515 "@types/node": "*", 10516 "chalk": "^4.1.2", 10517 "emittery": "^0.13.1", 10518 "exit-x": "^0.2.2", 10519 "graceful-fs": "^4.2.11", 10520 - "jest-docblock": "30.0.1", 10521 - "jest-environment-node": "30.0.2", 10522 - "jest-haste-map": "30.0.2", 10523 - "jest-leak-detector": "30.0.2", 10524 - "jest-message-util": "30.0.2", 10525 - "jest-resolve": "30.0.2", 10526 - "jest-runtime": "30.0.2", 10527 - "jest-util": "30.0.2", 10528 - "jest-watcher": "30.0.2", 10529 - "jest-worker": "30.0.2", 10530 "p-limit": "^3.1.0", 10531 "source-map-support": "0.5.13" 10532 }, ··· 10535 } 10536 }, 10537 "node_modules/jest-runtime": { 10538 - "version": "30.0.2", 10539 - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.0.2.tgz", 10540 - "integrity": "sha512-H1a51/soNOeAjoggu6PZKTH7DFt8JEGN4mesTSwyqD2jU9PXD04Bp6DKbt2YVtQvh2JcvH2vjbkEerCZ3lRn7A==", 10541 "dev": true, 10542 "license": "MIT", 10543 "dependencies": { 10544 - "@jest/environment": "30.0.2", 10545 - "@jest/fake-timers": "30.0.2", 10546 - "@jest/globals": "30.0.2", 10547 "@jest/source-map": "30.0.1", 10548 - "@jest/test-result": "30.0.2", 10549 - "@jest/transform": "30.0.2", 10550 - "@jest/types": "30.0.1", 10551 "@types/node": "*", 10552 "chalk": "^4.1.2", 10553 "cjs-module-lexer": "^2.1.0", 10554 "collect-v8-coverage": "^1.0.2", 10555 "glob": "^10.3.10", 10556 "graceful-fs": "^4.2.11", 10557 - "jest-haste-map": "30.0.2", 10558 - "jest-message-util": "30.0.2", 10559 - "jest-mock": "30.0.2", 10560 "jest-regex-util": "30.0.1", 10561 - "jest-resolve": "30.0.2", 10562 - "jest-snapshot": "30.0.2", 10563 - "jest-util": "30.0.2", 10564 "slash": "^3.0.0", 10565 "strip-bom": "^4.0.0" 10566 }, ··· 10569 } 10570 }, 10571 "node_modules/jest-snapshot": { 10572 - "version": "30.0.2", 10573 - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.0.2.tgz", 10574 - "integrity": "sha512-KeoHikoKGln3OlN7NS7raJ244nIVr2K46fBTNdfuxqYv2/g4TVyWDSO4fmk08YBJQMjs3HNfG1rlLfL/KA+nUw==", 10575 "dev": true, 10576 "license": "MIT", 10577 "dependencies": { ··· 10580 "@babel/plugin-syntax-jsx": "^7.27.1", 10581 "@babel/plugin-syntax-typescript": "^7.27.1", 10582 "@babel/types": "^7.27.3", 10583 - "@jest/expect-utils": "30.0.2", 10584 - "@jest/get-type": "30.0.1", 10585 - "@jest/snapshot-utils": "30.0.1", 10586 - "@jest/transform": "30.0.2", 10587 - "@jest/types": "30.0.1", 10588 - "babel-preset-current-node-syntax": "^1.1.0", 10589 "chalk": "^4.1.2", 10590 - "expect": "30.0.2", 10591 "graceful-fs": "^4.2.11", 10592 - "jest-diff": "30.0.2", 10593 - "jest-matcher-utils": "30.0.2", 10594 - "jest-message-util": "30.0.2", 10595 - "jest-util": "30.0.2", 10596 - "pretty-format": "30.0.2", 10597 "semver": "^7.7.2", 10598 "synckit": "^0.11.8" 10599 }, ··· 10615 } 10616 }, 10617 "node_modules/jest-snapshot/node_modules/pretty-format": { 10618 - "version": "30.0.2", 10619 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10620 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10621 "dev": true, 10622 "license": "MIT", 10623 "dependencies": { 10624 - "@jest/schemas": "30.0.1", 10625 "ansi-styles": "^5.2.0", 10626 "react-is": "^18.3.1" 10627 }, ··· 10637 "license": "MIT" 10638 }, 10639 "node_modules/jest-snapshot/node_modules/semver": { 10640 - "version": "7.7.2", 10641 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 10642 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 10643 "dev": true, 10644 "license": "ISC", 10645 "bin": { ··· 10650 } 10651 }, 10652 "node_modules/jest-util": { 10653 - "version": "30.0.2", 10654 - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.2.tgz", 10655 - "integrity": "sha512-8IyqfKS4MqprBuUpZNlFB5l+WFehc8bfCe1HSZFHzft2mOuND8Cvi9r1musli+u6F3TqanCZ/Ik4H4pXUolZIg==", 10656 "dev": true, 10657 "license": "MIT", 10658 "dependencies": { 10659 - "@jest/types": "30.0.1", 10660 "@types/node": "*", 10661 "chalk": "^4.1.2", 10662 "ci-info": "^4.2.0", ··· 10668 } 10669 }, 10670 "node_modules/jest-util/node_modules/picomatch": { 10671 - "version": "4.0.2", 10672 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 10673 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 10674 "dev": true, 10675 "license": "MIT", 10676 "engines": { ··· 10681 } 10682 }, 10683 "node_modules/jest-validate": { 10684 - "version": "30.0.2", 10685 - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.0.2.tgz", 10686 - "integrity": "sha512-noOvul+SFER4RIvNAwGn6nmV2fXqBq67j+hKGHKGFCmK4ks/Iy1FSrqQNBLGKlu4ZZIRL6Kg1U72N1nxuRCrGQ==", 10687 "dev": true, 10688 "license": "MIT", 10689 "dependencies": { 10690 - "@jest/get-type": "30.0.1", 10691 - "@jest/types": "30.0.1", 10692 "camelcase": "^6.3.0", 10693 "chalk": "^4.1.2", 10694 "leven": "^3.1.0", 10695 - "pretty-format": "30.0.2" 10696 }, 10697 "engines": { 10698 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10725 } 10726 }, 10727 "node_modules/jest-validate/node_modules/pretty-format": { 10728 - "version": "30.0.2", 10729 - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.2.tgz", 10730 - "integrity": "sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==", 10731 "dev": true, 10732 "license": "MIT", 10733 "dependencies": { 10734 - "@jest/schemas": "30.0.1", 10735 "ansi-styles": "^5.2.0", 10736 "react-is": "^18.3.1" 10737 }, ··· 10747 "license": "MIT" 10748 }, 10749 "node_modules/jest-watcher": { 10750 - "version": "30.0.2", 10751 - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.0.2.tgz", 10752 - "integrity": "sha512-vYO5+E7jJuF+XmONr6CrbXdlYrgvZqtkn6pdkgjt/dU64UAdc0v1cAVaAeWtAfUUMScxNmnUjKPUMdCpNVASwg==", 10753 "dev": true, 10754 "license": "MIT", 10755 "dependencies": { 10756 - "@jest/test-result": "30.0.2", 10757 - "@jest/types": "30.0.1", 10758 "@types/node": "*", 10759 "ansi-escapes": "^4.3.2", 10760 "chalk": "^4.1.2", 10761 "emittery": "^0.13.1", 10762 - "jest-util": "30.0.2", 10763 "string-length": "^4.0.2" 10764 }, 10765 "engines": { ··· 10767 } 10768 }, 10769 "node_modules/jest-worker": { 10770 - "version": "30.0.2", 10771 - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.0.2.tgz", 10772 - "integrity": "sha512-RN1eQmx7qSLFA+o9pfJKlqViwL5wt+OL3Vff/A+/cPsmuw7NPwfgl33AP+/agRmHzPOFgXviRycR9kYwlcRQXg==", 10773 "dev": true, 10774 "license": "MIT", 10775 "dependencies": { 10776 "@types/node": "*", 10777 "@ungap/structured-clone": "^1.3.0", 10778 - "jest-util": "30.0.2", 10779 "merge-stream": "^2.0.0", 10780 "supports-color": "^8.1.1" 10781 }, ··· 10814 "license": "MIT" 10815 }, 10816 "node_modules/jose": { 10817 - "version": "6.0.11", 10818 - "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.11.tgz", 10819 - "integrity": "sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==", 10820 "license": "MIT", 10821 "funding": { 10822 "url": "https://github.com/sponsors/panva" ··· 10841 "bin": { 10842 "js-yaml": "bin/js-yaml.js" 10843 } 10844 - }, 10845 - "node_modules/jsbn": { 10846 - "version": "1.1.0", 10847 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", 10848 - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", 10849 - "dev": true, 10850 - "license": "MIT" 10851 }, 10852 "node_modules/jsdom": { 10853 "version": "26.1.0", ··· 11170 "url": "https://github.com/sponsors/sindresorhus" 11171 } 11172 }, 11173 - "node_modules/lodash": { 11174 - "version": "4.17.21", 11175 - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 11176 - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 11177 - "dev": true, 11178 - "license": "MIT" 11179 - }, 11180 "node_modules/lodash.memoize": { 11181 "version": "4.1.2", 11182 "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", ··· 11239 } 11240 }, 11241 "node_modules/lt_donthave": { 11242 - "version": "2.0.5", 11243 - "resolved": "https://registry.npmjs.org/lt_donthave/-/lt_donthave-2.0.5.tgz", 11244 - "integrity": "sha512-DNsR7PIG4c8Tfg9tdx5yPKQ8/Z7leB82iTvemqfadPplooTil9MUvrqjkty/YD6FI5ZG3ZdHDtVd948SNg8Q7Q==", 11245 "dev": true, 11246 "funding": [ 11247 { ··· 11277 } 11278 }, 11279 "node_modules/magic-string": { 11280 - "version": "0.30.17", 11281 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 11282 - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 11283 "dev": true, 11284 "license": "MIT", 11285 "dependencies": { 11286 - "@jridgewell/sourcemap-codec": "^1.5.0" 11287 } 11288 }, 11289 "node_modules/magnet-uri": { ··· 11332 } 11333 }, 11334 "node_modules/make-dir/node_modules/semver": { 11335 - "version": "7.7.2", 11336 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 11337 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 11338 "dev": true, 11339 "license": "ISC", 11340 "bin": { ··· 11769 } 11770 }, 11771 "node_modules/mdn-data": { 11772 - "version": "2.21.0", 11773 - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz", 11774 - "integrity": "sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ==", 11775 "dev": true, 11776 "license": "CC0-1.0" 11777 }, ··· 12842 "license": "MIT" 12843 }, 12844 "node_modules/nanoid": { 12845 - "version": "5.1.5", 12846 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", 12847 - "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==", 12848 "funding": [ 12849 { 12850 "type": "github", ··· 12873 "license": "MIT" 12874 }, 12875 "node_modules/napi-postinstall": { 12876 - "version": "0.2.4", 12877 - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", 12878 - "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==", 12879 "dev": true, 12880 "license": "MIT", 12881 "bin": { ··· 12903 "engines": { 12904 "node": ">= 0.6" 12905 } 12906 }, 12907 "node_modules/netmask": { 12908 "version": "2.0.2", ··· 12915 } 12916 }, 12917 "node_modules/node-abi": { 12918 - "version": "3.75.0", 12919 - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", 12920 - "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", 12921 "dev": true, 12922 "license": "MIT", 12923 "dependencies": { ··· 12928 } 12929 }, 12930 "node_modules/node-abi/node_modules/semver": { 12931 - "version": "7.7.2", 12932 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 12933 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 12934 "dev": true, 12935 "license": "ISC", 12936 "bin": { ··· 13110 } 13111 }, 13112 "node_modules/node-gyp/node_modules/semver": { 13113 - "version": "7.7.2", 13114 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 13115 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 13116 "dev": true, 13117 "license": "ISC", 13118 "optional": true, ··· 13142 "license": "MIT" 13143 }, 13144 "node_modules/node-releases": { 13145 - "version": "2.0.19", 13146 - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 13147 - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", 13148 "dev": true, 13149 "license": "MIT" 13150 }, ··· 13311 } 13312 }, 13313 "node_modules/nwsapi": { 13314 - "version": "2.2.20", 13315 - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", 13316 - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", 13317 "dev": true, 13318 "license": "MIT" 13319 }, ··· 13608 } 13609 }, 13610 "node_modules/parse-asn1": { 13611 - "version": "5.1.7", 13612 - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", 13613 - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", 13614 "dev": true, 13615 "license": "ISC", 13616 "dependencies": { 13617 "asn1.js": "^4.10.1", 13618 "browserify-aes": "^1.2.0", 13619 "evp_bytestokey": "^1.0.3", 13620 - "hash-base": "~3.0", 13621 - "pbkdf2": "^3.1.2", 13622 "safe-buffer": "^5.2.1" 13623 }, 13624 "engines": { ··· 13655 } 13656 }, 13657 "node_modules/parse-torrent": { 13658 - "version": "11.0.18", 13659 - "resolved": "https://registry.npmjs.org/parse-torrent/-/parse-torrent-11.0.18.tgz", 13660 - "integrity": "sha512-C1igbmTrQQuKlspAfP1wcLaOPlvtu5qi4pMdPoCCfepHmxDOk8iArJ2J1yblLx11UefZJUaKEPSxIwMdG11SuA==", 13661 "dev": true, 13662 "funding": [ 13663 { ··· 13780 "license": "ISC" 13781 }, 13782 "node_modules/path-to-regexp": { 13783 - "version": "8.2.0", 13784 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", 13785 - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", 13786 "license": "MIT", 13787 - "engines": { 13788 - "node": ">=16" 13789 } 13790 }, 13791 "node_modules/pbkdf2": { 13792 - "version": "3.1.2", 13793 - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", 13794 - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", 13795 "dev": true, 13796 "license": "MIT", 13797 "dependencies": { 13798 - "create-hash": "^1.1.2", 13799 - "create-hmac": "^1.1.4", 13800 - "ripemd160": "^2.0.1", 13801 - "safe-buffer": "^5.0.1", 13802 - "sha.js": "^2.4.8" 13803 }, 13804 "engines": { 13805 - "node": ">=0.12" 13806 } 13807 }, 13808 "node_modules/picocolors": { ··· 13970 } 13971 }, 13972 "node_modules/preact": { 13973 - "version": "10.26.9", 13974 - "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.9.tgz", 13975 - "integrity": "sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==", 13976 "license": "MIT", 13977 "funding": { 13978 "type": "opencollective", ··· 14017 } 14018 }, 14019 "node_modules/prettier": { 14020 - "version": "3.5.3", 14021 - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", 14022 - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", 14023 "dev": true, 14024 "license": "MIT", 14025 "bin": { ··· 14046 } 14047 }, 14048 "node_modules/prettier-plugin-organize-imports": { 14049 - "version": "4.1.0", 14050 - "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz", 14051 - "integrity": "sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==", 14052 "dev": true, 14053 "license": "MIT", 14054 "peerDependencies": { 14055 "prettier": ">=2.0", 14056 "typescript": ">=2.9", 14057 - "vue-tsc": "^2.1.0" 14058 }, 14059 "peerDependenciesMeta": { 14060 "vue-tsc": { ··· 14377 } 14378 }, 14379 "node_modules/raw-body": { 14380 - "version": "3.0.0", 14381 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", 14382 - "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", 14383 "license": "MIT", 14384 "dependencies": { 14385 "bytes": "3.1.2", 14386 "http-errors": "2.0.0", 14387 - "iconv-lite": "0.6.3", 14388 "unpipe": "1.0.0" 14389 }, 14390 "engines": { 14391 - "node": ">= 0.8" 14392 } 14393 }, 14394 "node_modules/rc": { ··· 14724 } 14725 }, 14726 "node_modules/ripemd160": { 14727 - "version": "2.0.2", 14728 - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 14729 - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 14730 "dev": true, 14731 "license": "MIT", 14732 "dependencies": { 14733 - "hash-base": "^3.0.0", 14734 - "inherits": "^2.0.1" 14735 } 14736 }, 14737 "node_modules/rollup": { 14738 - "version": "4.44.0", 14739 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", 14740 - "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", 14741 "dev": true, 14742 "license": "MIT", 14743 "dependencies": { ··· 14751 "npm": ">=8.0.0" 14752 }, 14753 "optionalDependencies": { 14754 - "@rollup/rollup-android-arm-eabi": "4.44.0", 14755 - "@rollup/rollup-android-arm64": "4.44.0", 14756 - "@rollup/rollup-darwin-arm64": "4.44.0", 14757 - "@rollup/rollup-darwin-x64": "4.44.0", 14758 - "@rollup/rollup-freebsd-arm64": "4.44.0", 14759 - "@rollup/rollup-freebsd-x64": "4.44.0", 14760 - "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", 14761 - "@rollup/rollup-linux-arm-musleabihf": "4.44.0", 14762 - "@rollup/rollup-linux-arm64-gnu": "4.44.0", 14763 - "@rollup/rollup-linux-arm64-musl": "4.44.0", 14764 - "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", 14765 - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", 14766 - "@rollup/rollup-linux-riscv64-gnu": "4.44.0", 14767 - "@rollup/rollup-linux-riscv64-musl": "4.44.0", 14768 - "@rollup/rollup-linux-s390x-gnu": "4.44.0", 14769 - "@rollup/rollup-linux-x64-gnu": "4.44.0", 14770 - "@rollup/rollup-linux-x64-musl": "4.44.0", 14771 - "@rollup/rollup-win32-arm64-msvc": "4.44.0", 14772 - "@rollup/rollup-win32-ia32-msvc": "4.44.0", 14773 - "@rollup/rollup-win32-x64-msvc": "4.44.0", 14774 "fsevents": "~2.3.2" 14775 } 14776 }, ··· 15085 "license": "ISC" 15086 }, 15087 "node_modules/sha.js": { 15088 - "version": "2.4.11", 15089 - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 15090 - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 15091 "dev": true, 15092 "license": "(MIT AND BSD-3-Clause)", 15093 "dependencies": { 15094 - "inherits": "^2.0.1", 15095 - "safe-buffer": "^5.0.1" 15096 }, 15097 "bin": { 15098 "sha.js": "bin.js" 15099 } 15100 }, 15101 "node_modules/shebang-command": { ··· 15314 } 15315 }, 15316 "node_modules/socks": { 15317 - "version": "2.8.5", 15318 - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.5.tgz", 15319 - "integrity": "sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww==", 15320 "dev": true, 15321 "license": "MIT", 15322 "dependencies": { 15323 - "ip-address": "^9.0.5", 15324 "smart-buffer": "^4.2.0" 15325 }, 15326 "engines": { ··· 15414 } 15415 }, 15416 "node_modules/sprintf-js": { 15417 - "version": "1.1.3", 15418 - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", 15419 - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", 15420 "dev": true, 15421 "license": "BSD-3-Clause" 15422 }, ··· 15563 } 15564 }, 15565 "node_modules/streamx": { 15566 - "version": "2.22.0", 15567 - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", 15568 - "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", 15569 "dev": true, 15570 "license": "MIT", 15571 "dependencies": { ··· 15789 } 15790 }, 15791 "node_modules/strip-ansi": { 15792 - "version": "7.1.0", 15793 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 15794 - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 15795 "dev": true, 15796 "license": "MIT", 15797 "dependencies": { ··· 15819 } 15820 }, 15821 "node_modules/strip-ansi/node_modules/ansi-regex": { 15822 - "version": "6.1.0", 15823 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 15824 - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 15825 "dev": true, 15826 "license": "MIT", 15827 "engines": { ··· 15921 } 15922 }, 15923 "node_modules/synckit": { 15924 - "version": "0.11.8", 15925 - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", 15926 - "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", 15927 "dev": true, 15928 "license": "MIT", 15929 "dependencies": { 15930 - "@pkgr/core": "^0.2.4" 15931 }, 15932 "engines": { 15933 "node": "^14.18.0 || >=16.0.0" ··· 15956 } 15957 }, 15958 "node_modules/tar-fs": { 15959 - "version": "2.1.3", 15960 - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", 15961 - "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", 15962 "dev": true, 15963 "license": "MIT", 15964 "dependencies": { ··· 16094 "license": "MIT" 16095 }, 16096 "node_modules/throughput": { 16097 - "version": "1.0.1", 16098 - "resolved": "https://registry.npmjs.org/throughput/-/throughput-1.0.1.tgz", 16099 - "integrity": "sha512-4Mvv5P4xyVz6RM07wS3tGyZ/kPAiKtLeqznq3hK4pxDiTUSyQ5xeFlBiWxflCWexvSnxo2aAfedzKajJqihz4Q==", 16100 "dev": true, 16101 "license": "MIT" 16102 }, ··· 16143 "license": "Apache 2" 16144 }, 16145 "node_modules/tinyglobby": { 16146 - "version": "0.2.14", 16147 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", 16148 - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", 16149 "dev": true, 16150 "license": "MIT", 16151 "dependencies": { 16152 - "fdir": "^6.4.4", 16153 - "picomatch": "^4.0.2" 16154 }, 16155 "engines": { 16156 "node": ">=12.0.0" ··· 16160 } 16161 }, 16162 "node_modules/tinyglobby/node_modules/fdir": { 16163 - "version": "6.4.6", 16164 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", 16165 - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", 16166 "dev": true, 16167 "license": "MIT", 16168 "peerDependencies": { 16169 "picomatch": "^3 || ^4" 16170 }, ··· 16175 } 16176 }, 16177 "node_modules/tinyglobby/node_modules/picomatch": { 16178 - "version": "4.0.2", 16179 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 16180 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 16181 "dev": true, 16182 "license": "MIT", 16183 "engines": { ··· 16214 "dev": true, 16215 "license": "BSD-3-Clause" 16216 }, 16217 "node_modules/to-regex-range": { 16218 "version": "5.0.1", 16219 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", ··· 16237 } 16238 }, 16239 "node_modules/torrent-discovery": { 16240 - "version": "11.0.17", 16241 - "resolved": "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-11.0.17.tgz", 16242 - "integrity": "sha512-lOvw61g93GYrafHuHx8HkHCsX0nB7AoDUTVoQsLDlpjc2QPwld1HMALz9q6Q3BX9m87X8DI9+TrCGnT7QgOR3A==", 16243 "dev": true, 16244 "funding": [ 16245 { ··· 16257 ], 16258 "license": "MIT", 16259 "dependencies": { 16260 - "bittorrent-dht": "^11.0.10", 16261 "bittorrent-lsd": "^2.0.0", 16262 - "bittorrent-tracker": "^11.2.1", 16263 - "debug": "^4.4.1", 16264 "run-parallel": "^1.2.0" 16265 }, 16266 "engines": { ··· 16268 } 16269 }, 16270 "node_modules/torrent-piece": { 16271 - "version": "3.0.1", 16272 - "resolved": "https://registry.npmjs.org/torrent-piece/-/torrent-piece-3.0.1.tgz", 16273 - "integrity": "sha512-EvCqfOkNm3PXqgaGPVVmp0JlGC8fDpH+8Yt5uUiF4oCrAqy3htyUFxK1DJpneWfg1fFdeTKsstxLxQUrHpmocA==", 16274 "dev": true, 16275 "funding": [ 16276 { ··· 16334 } 16335 }, 16336 "node_modules/ts-jest": { 16337 - "version": "29.4.0", 16338 - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz", 16339 - "integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==", 16340 "dev": true, 16341 "license": "MIT", 16342 "dependencies": { 16343 "bs-logger": "^0.2.6", 16344 - "ejs": "^3.1.10", 16345 "fast-json-stable-stringify": "^2.1.0", 16346 "json5": "^2.2.3", 16347 "lodash.memoize": "^4.1.2", 16348 "make-error": "^1.3.6", 16349 - "semver": "^7.7.2", 16350 "type-fest": "^4.41.0", 16351 "yargs-parser": "^21.1.1" 16352 }, ··· 16387 } 16388 }, 16389 "node_modules/ts-jest/node_modules/semver": { 16390 - "version": "7.7.2", 16391 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 16392 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 16393 "dev": true, 16394 "license": "ISC", 16395 "bin": { ··· 16421 "optional": true 16422 }, 16423 "node_modules/tsx": { 16424 - "version": "4.20.3", 16425 - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz", 16426 - "integrity": "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==", 16427 "license": "MIT", 16428 "dependencies": { 16429 "esbuild": "~0.25.0", ··· 16588 } 16589 }, 16590 "node_modules/typescript": { 16591 - "version": "5.8.3", 16592 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", 16593 - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", 16594 "dev": true, 16595 "license": "Apache-2.0", 16596 "bin": { ··· 16602 } 16603 }, 16604 "node_modules/typescript-eslint": { 16605 - "version": "8.34.1", 16606 - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.1.tgz", 16607 - "integrity": "sha512-XjS+b6Vg9oT1BaIUfkW3M3LvqZE++rbzAMEHuccCfO/YkP43ha6w3jTEMilQxMF92nVOYCcdjv1ZUhAa1D/0ow==", 16608 "dev": true, 16609 "license": "MIT", 16610 "dependencies": { 16611 - "@typescript-eslint/eslint-plugin": "8.34.1", 16612 - "@typescript-eslint/parser": "8.34.1", 16613 - "@typescript-eslint/utils": "8.34.1" 16614 }, 16615 "engines": { 16616 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 16621 }, 16622 "peerDependencies": { 16623 "eslint": "^8.57.0 || ^9.0.0", 16624 - "typescript": ">=4.8.4 <5.9.0" 16625 } 16626 }, 16627 "node_modules/typescript-eslint-language-service": { ··· 16650 } 16651 }, 16652 "node_modules/typeson": { 16653 - "version": "9.0.3", 16654 - "resolved": "https://registry.npmjs.org/typeson/-/typeson-9.0.3.tgz", 16655 - "integrity": "sha512-vsOn+VPbIYI3jgj96vwIhAO0BNmlBxEgBKVmuzl1dwXzQe+3XjRi/gK2zYgAansWYlrtvluy4lvWcL8LF01P3Q==", 16656 "dev": true, 16657 "license": "MIT", 16658 "engines": { ··· 16660 } 16661 }, 16662 "node_modules/typeson-registry": { 16663 - "version": "11.1.1", 16664 - "resolved": "https://registry.npmjs.org/typeson-registry/-/typeson-registry-11.1.1.tgz", 16665 - "integrity": "sha512-WF8meNtURfGXXY2RitEMgZrMEclHU8IdxxN4YTcnXTQUHvisPYsKrxxPFhc4DKTCAc6sVvWVtKelOXFDtw/OQQ==", 16666 "dev": true, 16667 "license": "MIT", 16668 "dependencies": { 16669 "base64-arraybuffer-es6": "^3.1.0", 16670 - "typeson": "^9.0.3", 16671 - "whatwg-url": "^14.0.0" 16672 }, 16673 "engines": { 16674 - "node": ">=18.14.0" 16675 } 16676 }, 16677 "node_modules/uint8-util": { ··· 16704 } 16705 }, 16706 "node_modules/undici-types": { 16707 - "version": "7.8.0", 16708 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", 16709 - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", 16710 "dev": true, 16711 "license": "MIT" 16712 }, ··· 16746 } 16747 }, 16748 "node_modules/unist-util-is": { 16749 - "version": "6.0.0", 16750 - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", 16751 - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", 16752 "dev": true, 16753 "license": "MIT", 16754 "dependencies": { ··· 16790 } 16791 }, 16792 "node_modules/unist-util-visit-parents": { 16793 - "version": "6.0.1", 16794 - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", 16795 - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", 16796 "dev": true, 16797 "license": "MIT", 16798 "dependencies": { ··· 16829 } 16830 }, 16831 "node_modules/unrs-resolver": { 16832 - "version": "1.9.0", 16833 - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.0.tgz", 16834 - "integrity": "sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==", 16835 "dev": true, 16836 "hasInstallScript": true, 16837 "license": "MIT", 16838 "dependencies": { 16839 - "napi-postinstall": "^0.2.2" 16840 }, 16841 "funding": { 16842 "url": "https://opencollective.com/unrs-resolver" 16843 }, 16844 "optionalDependencies": { 16845 - "@unrs/resolver-binding-android-arm-eabi": "1.9.0", 16846 - "@unrs/resolver-binding-android-arm64": "1.9.0", 16847 - "@unrs/resolver-binding-darwin-arm64": "1.9.0", 16848 - "@unrs/resolver-binding-darwin-x64": "1.9.0", 16849 - "@unrs/resolver-binding-freebsd-x64": "1.9.0", 16850 - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.9.0", 16851 - "@unrs/resolver-binding-linux-arm-musleabihf": "1.9.0", 16852 - "@unrs/resolver-binding-linux-arm64-gnu": "1.9.0", 16853 - "@unrs/resolver-binding-linux-arm64-musl": "1.9.0", 16854 - "@unrs/resolver-binding-linux-ppc64-gnu": "1.9.0", 16855 - "@unrs/resolver-binding-linux-riscv64-gnu": "1.9.0", 16856 - "@unrs/resolver-binding-linux-riscv64-musl": "1.9.0", 16857 - "@unrs/resolver-binding-linux-s390x-gnu": "1.9.0", 16858 - "@unrs/resolver-binding-linux-x64-gnu": "1.9.0", 16859 - "@unrs/resolver-binding-linux-x64-musl": "1.9.0", 16860 - "@unrs/resolver-binding-wasm32-wasi": "1.9.0", 16861 - "@unrs/resolver-binding-win32-arm64-msvc": "1.9.0", 16862 - "@unrs/resolver-binding-win32-ia32-msvc": "1.9.0", 16863 - "@unrs/resolver-binding-win32-x64-msvc": "1.9.0" 16864 } 16865 }, 16866 "node_modules/update-browserslist-db": { 16867 - "version": "1.1.3", 16868 - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 16869 - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 16870 "dev": true, 16871 "funding": [ 16872 { ··· 17065 } 17066 }, 17067 "node_modules/vite": { 17068 - "version": "6.3.5", 17069 - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", 17070 - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", 17071 "dev": true, 17072 "license": "MIT", 17073 "dependencies": { ··· 17232 } 17233 }, 17234 "node_modules/vite-plugin-checker/node_modules/picomatch": { 17235 - "version": "4.0.2", 17236 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 17237 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 17238 "dev": true, 17239 "license": "MIT", 17240 "engines": { ··· 17262 } 17263 }, 17264 "node_modules/vite-prerender-plugin": { 17265 - "version": "0.5.10", 17266 - "resolved": "https://registry.npmjs.org/vite-prerender-plugin/-/vite-prerender-plugin-0.5.10.tgz", 17267 - "integrity": "sha512-m4i0G5oc3LPLA02uW2XsFZmYNxZdyryz5Ksi78O9puj/ao5c8dBUW06caGwoM1TmYknTBBUyKhtqajUpoP+z8Q==", 17268 "dev": true, 17269 "license": "MIT", 17270 "dependencies": { ··· 17276 "stack-trace": "^1.0.0-pre2" 17277 }, 17278 "peerDependencies": { 17279 - "vite": "5.x || 6.x" 17280 } 17281 }, 17282 "node_modules/vite-prerender-plugin/node_modules/source-map": { 17283 - "version": "0.7.4", 17284 - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", 17285 - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", 17286 "dev": true, 17287 "license": "BSD-3-Clause", 17288 "engines": { 17289 - "node": ">= 8" 17290 } 17291 }, 17292 "node_modules/vite/node_modules/fdir": { 17293 - "version": "6.4.6", 17294 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", 17295 - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", 17296 "dev": true, 17297 "license": "MIT", 17298 "peerDependencies": { 17299 "picomatch": "^3 || ^4" 17300 }, ··· 17305 } 17306 }, 17307 "node_modules/vite/node_modules/picomatch": { 17308 - "version": "4.0.2", 17309 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 17310 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 17311 "dev": true, 17312 "license": "MIT", 17313 "engines": { ··· 17405 } 17406 }, 17407 "node_modules/webtorrent": { 17408 - "version": "2.6.8", 17409 - "resolved": "https://registry.npmjs.org/webtorrent/-/webtorrent-2.6.8.tgz", 17410 - "integrity": "sha512-ZflZwJOmLPa7v5VXCJUV5FW/5CvOxlbRbfgXaHNEkQvBwt0aP7djXLo1e76LyqR+e+/CL6nG9ff8gySjJ4UqnA==", 17411 "dev": true, 17412 "funding": [ 17413 { ··· 17431 "addr-to-ip-port": "^2.0.0", 17432 "bitfield": "^4.2.0", 17433 "bittorrent-dht": "^11.0.10", 17434 - "bittorrent-protocol": "^4.1.16", 17435 "cache-chunk-store": "^3.2.2", 17436 "chunk-store-iterator": "^1.0.4", 17437 "cpus": "^1.0.3", ··· 17439 "cross-fetch-ponyfill": "^1.0.3", 17440 "debug": "^4.4.1", 17441 "escape-html": "^1.0.3", 17442 - "fs-chunk-store": "^4.1.0", 17443 "fsa-chunk-store": "^1.3.0", 17444 "immediate-chunk-store": "^2.2.0", 17445 "join-async-iterator": "^1.1.1", ··· 17456 "run-parallel": "^1.2.0", 17457 "run-parallel-limit": "^1.1.0", 17458 "speed-limiter": "^1.0.2", 17459 - "streamx": "2.22.0", 17460 - "throughput": "^1.0.1", 17461 "torrent-discovery": "^11.0.17", 17462 - "torrent-piece": "^3.0.1", 17463 "uint8-util": "^2.2.5", 17464 "unordered-array-remove": "^1.0.2", 17465 "ut_metadata": "^4.0.3", ··· 17593 } 17594 }, 17595 "node_modules/which-runtime": { 17596 - "version": "1.3.0", 17597 - "resolved": "https://registry.npmjs.org/which-runtime/-/which-runtime-1.3.0.tgz", 17598 - "integrity": "sha512-mQrEBUe15PdEuJvrBlvy3tika6sxQrkblI7JQ9kXeg8Lcby9FwmKvAYrCT3wLh91k6ltost7AVM7qYhjC8N0Zg==", 17599 "dev": true, 17600 "license": "Apache-2.0", 17601 "optional": true ··· 17779 "node": ">=0.10.0" 17780 } 17781 }, 17782 "node_modules/wrap-ansi": { 17783 "version": "8.1.0", 17784 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", ··· 17852 } 17853 }, 17854 "node_modules/wrap-ansi/node_modules/ansi-styles": { 17855 - "version": "6.2.1", 17856 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 17857 - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 17858 "dev": true, 17859 "license": "MIT", 17860 "engines": { ··· 17885 } 17886 }, 17887 "node_modules/ws": { 17888 - "version": "8.18.2", 17889 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", 17890 - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", 17891 "license": "MIT", 17892 "engines": { 17893 "node": ">=10.0.0" ··· 18051 } 18052 }, 18053 "node_modules/zod": { 18054 - "version": "3.25.67", 18055 - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz", 18056 - "integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==", 18057 "license": "MIT", 18058 "funding": { 18059 "url": "https://github.com/sponsors/colinhacks" 18060 } 18061 }, 18062 "node_modules/zod-schema-faker": { 18063 - "version": "2.0.0-beta.5", 18064 - "resolved": "https://registry.npmjs.org/zod-schema-faker/-/zod-schema-faker-2.0.0-beta.5.tgz", 18065 - "integrity": "sha512-3KKHnKbN4yDN6GtlGNG90aLEzktc20n/sZGvKyFBAJ82ASma3maxZIUQ0AuA50oBRlYPnL+nGgzOLTmsasr8uw==", 18066 "dev": true, 18067 "license": "MIT", 18068 "dependencies": { 18069 - "@faker-js/faker": "9.7.0", 18070 "randexp": "0.5.3" 18071 - }, 18072 - "peerDependencies": { 18073 - "@zod/core": "*" 18074 } 18075 }, 18076 "node_modules/zod-schema-faker/node_modules/@faker-js/faker": { 18077 - "version": "9.7.0", 18078 - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.7.0.tgz", 18079 - "integrity": "sha512-aozo5vqjCmDoXLNUJarFZx2IN/GgGaogY4TMJ6so/WLZOWpSV7fvj2dmrV6sEAnUm1O7aCrhTibjpzeDFgNqbg==", 18080 "dev": true, 18081 "funding": [ 18082 { ··· 18086 ], 18087 "license": "MIT", 18088 "engines": { 18089 - "node": ">=18.0.0", 18090 - "npm": ">=9.0.0" 18091 } 18092 }, 18093 "node_modules/zwitch": {
··· 71 } 72 }, 73 "node_modules/@adobe/css-tools": { 74 + "version": "4.4.4", 75 + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", 76 + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", 77 "dev": true, 78 "license": "MIT" 79 }, 80 "node_modules/@asamuzakjp/css-color": { 81 "version": "3.2.0", ··· 114 } 115 }, 116 "node_modules/@babel/compat-data": { 117 + "version": "7.28.5", 118 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", 119 + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", 120 "dev": true, 121 "license": "MIT", 122 "engines": { ··· 124 } 125 }, 126 "node_modules/@babel/core": { 127 + "version": "7.28.5", 128 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", 129 + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", 130 "dev": true, 131 "license": "MIT", 132 "dependencies": { 133 "@babel/code-frame": "^7.27.1", 134 + "@babel/generator": "^7.28.5", 135 "@babel/helper-compilation-targets": "^7.27.2", 136 + "@babel/helper-module-transforms": "^7.28.3", 137 + "@babel/helpers": "^7.28.4", 138 + "@babel/parser": "^7.28.5", 139 "@babel/template": "^7.27.2", 140 + "@babel/traverse": "^7.28.5", 141 + "@babel/types": "^7.28.5", 142 + "@jridgewell/remapping": "^2.3.5", 143 "convert-source-map": "^2.0.0", 144 "debug": "^4.1.0", 145 "gensync": "^1.0.0-beta.2", ··· 155 } 156 }, 157 "node_modules/@babel/generator": { 158 + "version": "7.28.5", 159 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", 160 + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", 161 "dev": true, 162 "license": "MIT", 163 "dependencies": { 164 + "@babel/parser": "^7.28.5", 165 + "@babel/types": "^7.28.5", 166 + "@jridgewell/gen-mapping": "^0.3.12", 167 + "@jridgewell/trace-mapping": "^0.3.28", 168 "jsesc": "^3.0.2" 169 }, 170 "engines": { ··· 201 "node": ">=6.9.0" 202 } 203 }, 204 + "node_modules/@babel/helper-globals": { 205 + "version": "7.28.0", 206 + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", 207 + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", 208 + "dev": true, 209 + "license": "MIT", 210 + "engines": { 211 + "node": ">=6.9.0" 212 + } 213 + }, 214 "node_modules/@babel/helper-module-imports": { 215 "version": "7.27.1", 216 "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", ··· 226 } 227 }, 228 "node_modules/@babel/helper-module-transforms": { 229 + "version": "7.28.3", 230 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", 231 + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", 232 "dev": true, 233 "license": "MIT", 234 "dependencies": { 235 "@babel/helper-module-imports": "^7.27.1", 236 "@babel/helper-validator-identifier": "^7.27.1", 237 + "@babel/traverse": "^7.28.3" 238 }, 239 "engines": { 240 "node": ">=6.9.0" ··· 264 } 265 }, 266 "node_modules/@babel/helper-validator-identifier": { 267 + "version": "7.28.5", 268 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 269 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 270 "dev": true, 271 "license": "MIT", 272 "engines": { ··· 284 } 285 }, 286 "node_modules/@babel/helpers": { 287 + "version": "7.28.4", 288 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", 289 + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", 290 "dev": true, 291 "license": "MIT", 292 "dependencies": { 293 "@babel/template": "^7.27.2", 294 + "@babel/types": "^7.28.4" 295 }, 296 "engines": { 297 "node": ">=6.9.0" 298 } 299 }, 300 "node_modules/@babel/parser": { 301 + "version": "7.28.5", 302 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", 303 + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", 304 "dev": true, 305 "license": "MIT", 306 "dependencies": { 307 + "@babel/types": "^7.28.5" 308 }, 309 "bin": { 310 "parser": "bin/babel-parser.js" ··· 589 } 590 }, 591 "node_modules/@babel/runtime": { 592 + "version": "7.28.4", 593 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", 594 + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", 595 "dev": true, 596 "license": "MIT", 597 "engines": { ··· 614 } 615 }, 616 "node_modules/@babel/traverse": { 617 + "version": "7.28.5", 618 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", 619 + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", 620 "dev": true, 621 "license": "MIT", 622 "dependencies": { 623 "@babel/code-frame": "^7.27.1", 624 + "@babel/generator": "^7.28.5", 625 + "@babel/helper-globals": "^7.28.0", 626 + "@babel/parser": "^7.28.5", 627 "@babel/template": "^7.27.2", 628 + "@babel/types": "^7.28.5", 629 + "debug": "^4.3.1" 630 }, 631 "engines": { 632 "node": ">=6.9.0" 633 } 634 }, 635 "node_modules/@babel/types": { 636 + "version": "7.28.5", 637 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", 638 + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", 639 "dev": true, 640 "license": "MIT", 641 "dependencies": { 642 "@babel/helper-string-parser": "^7.27.1", 643 + "@babel/helper-validator-identifier": "^7.28.5" 644 }, 645 "engines": { 646 "node": ">=6.9.0" ··· 654 "license": "MIT" 655 }, 656 "node_modules/@csstools/color-helpers": { 657 + "version": "5.1.0", 658 + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", 659 + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", 660 "dev": true, 661 "funding": [ 662 { ··· 698 } 699 }, 700 "node_modules/@csstools/css-color-parser": { 701 + "version": "3.1.0", 702 + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", 703 + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", 704 "dev": true, 705 "funding": [ 706 { ··· 714 ], 715 "license": "MIT", 716 "dependencies": { 717 + "@csstools/color-helpers": "^5.1.0", 718 "@csstools/css-calc": "^2.1.4" 719 }, 720 "engines": { ··· 769 } 770 }, 771 "node_modules/@emnapi/core": { 772 + "version": "1.6.0", 773 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.6.0.tgz", 774 + "integrity": "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==", 775 "dev": true, 776 "license": "MIT", 777 "optional": true, 778 "dependencies": { 779 + "@emnapi/wasi-threads": "1.1.0", 780 "tslib": "^2.4.0" 781 } 782 }, 783 "node_modules/@emnapi/runtime": { 784 + "version": "1.6.0", 785 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.6.0.tgz", 786 + "integrity": "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==", 787 "dev": true, 788 "license": "MIT", 789 "optional": true, ··· 792 } 793 }, 794 "node_modules/@emnapi/wasi-threads": { 795 + "version": "1.1.0", 796 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", 797 + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", 798 "dev": true, 799 "license": "MIT", 800 "optional": true, ··· 803 } 804 }, 805 "node_modules/@esbuild/aix-ppc64": { 806 + "version": "0.25.11", 807 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", 808 + "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", 809 "cpu": [ 810 "ppc64" 811 ], ··· 819 } 820 }, 821 "node_modules/@esbuild/android-arm": { 822 + "version": "0.25.11", 823 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", 824 + "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", 825 "cpu": [ 826 "arm" 827 ], ··· 835 } 836 }, 837 "node_modules/@esbuild/android-arm64": { 838 + "version": "0.25.11", 839 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", 840 + "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", 841 "cpu": [ 842 "arm64" 843 ], ··· 851 } 852 }, 853 "node_modules/@esbuild/android-x64": { 854 + "version": "0.25.11", 855 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", 856 + "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", 857 "cpu": [ 858 "x64" 859 ], ··· 867 } 868 }, 869 "node_modules/@esbuild/darwin-arm64": { 870 + "version": "0.25.11", 871 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", 872 + "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", 873 "cpu": [ 874 "arm64" 875 ], ··· 883 } 884 }, 885 "node_modules/@esbuild/darwin-x64": { 886 + "version": "0.25.11", 887 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", 888 + "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", 889 "cpu": [ 890 "x64" 891 ], ··· 899 } 900 }, 901 "node_modules/@esbuild/freebsd-arm64": { 902 + "version": "0.25.11", 903 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", 904 + "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", 905 "cpu": [ 906 "arm64" 907 ], ··· 915 } 916 }, 917 "node_modules/@esbuild/freebsd-x64": { 918 + "version": "0.25.11", 919 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", 920 + "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", 921 "cpu": [ 922 "x64" 923 ], ··· 931 } 932 }, 933 "node_modules/@esbuild/linux-arm": { 934 + "version": "0.25.11", 935 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", 936 + "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", 937 "cpu": [ 938 "arm" 939 ], ··· 947 } 948 }, 949 "node_modules/@esbuild/linux-arm64": { 950 + "version": "0.25.11", 951 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", 952 + "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", 953 "cpu": [ 954 "arm64" 955 ], ··· 963 } 964 }, 965 "node_modules/@esbuild/linux-ia32": { 966 + "version": "0.25.11", 967 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", 968 + "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", 969 "cpu": [ 970 "ia32" 971 ], ··· 979 } 980 }, 981 "node_modules/@esbuild/linux-loong64": { 982 + "version": "0.25.11", 983 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", 984 + "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", 985 "cpu": [ 986 "loong64" 987 ], ··· 995 } 996 }, 997 "node_modules/@esbuild/linux-mips64el": { 998 + "version": "0.25.11", 999 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", 1000 + "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", 1001 "cpu": [ 1002 "mips64el" 1003 ], ··· 1011 } 1012 }, 1013 "node_modules/@esbuild/linux-ppc64": { 1014 + "version": "0.25.11", 1015 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", 1016 + "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", 1017 "cpu": [ 1018 "ppc64" 1019 ], ··· 1027 } 1028 }, 1029 "node_modules/@esbuild/linux-riscv64": { 1030 + "version": "0.25.11", 1031 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", 1032 + "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", 1033 "cpu": [ 1034 "riscv64" 1035 ], ··· 1043 } 1044 }, 1045 "node_modules/@esbuild/linux-s390x": { 1046 + "version": "0.25.11", 1047 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", 1048 + "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", 1049 "cpu": [ 1050 "s390x" 1051 ], ··· 1059 } 1060 }, 1061 "node_modules/@esbuild/linux-x64": { 1062 + "version": "0.25.11", 1063 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", 1064 + "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", 1065 "cpu": [ 1066 "x64" 1067 ], ··· 1075 } 1076 }, 1077 "node_modules/@esbuild/netbsd-arm64": { 1078 + "version": "0.25.11", 1079 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", 1080 + "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", 1081 "cpu": [ 1082 "arm64" 1083 ], ··· 1091 } 1092 }, 1093 "node_modules/@esbuild/netbsd-x64": { 1094 + "version": "0.25.11", 1095 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", 1096 + "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", 1097 "cpu": [ 1098 "x64" 1099 ], ··· 1107 } 1108 }, 1109 "node_modules/@esbuild/openbsd-arm64": { 1110 + "version": "0.25.11", 1111 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", 1112 + "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", 1113 "cpu": [ 1114 "arm64" 1115 ], ··· 1123 } 1124 }, 1125 "node_modules/@esbuild/openbsd-x64": { 1126 + "version": "0.25.11", 1127 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", 1128 + "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", 1129 "cpu": [ 1130 "x64" 1131 ], ··· 1138 "node": ">=18" 1139 } 1140 }, 1141 + "node_modules/@esbuild/openharmony-arm64": { 1142 + "version": "0.25.11", 1143 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", 1144 + "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", 1145 + "cpu": [ 1146 + "arm64" 1147 + ], 1148 + "license": "MIT", 1149 + "optional": true, 1150 + "os": [ 1151 + "openharmony" 1152 + ], 1153 + "engines": { 1154 + "node": ">=18" 1155 + } 1156 + }, 1157 "node_modules/@esbuild/sunos-x64": { 1158 + "version": "0.25.11", 1159 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", 1160 + "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", 1161 "cpu": [ 1162 "x64" 1163 ], ··· 1171 } 1172 }, 1173 "node_modules/@esbuild/win32-arm64": { 1174 + "version": "0.25.11", 1175 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", 1176 + "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", 1177 "cpu": [ 1178 "arm64" 1179 ], ··· 1187 } 1188 }, 1189 "node_modules/@esbuild/win32-ia32": { 1190 + "version": "0.25.11", 1191 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", 1192 + "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", 1193 "cpu": [ 1194 "ia32" 1195 ], ··· 1203 } 1204 }, 1205 "node_modules/@esbuild/win32-x64": { 1206 + "version": "0.25.11", 1207 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", 1208 + "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", 1209 "cpu": [ 1210 "x64" 1211 ], ··· 1219 } 1220 }, 1221 "node_modules/@eslint-community/eslint-utils": { 1222 + "version": "4.9.0", 1223 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", 1224 + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", 1225 "dev": true, 1226 "license": "MIT", 1227 "dependencies": { ··· 1251 } 1252 }, 1253 "node_modules/@eslint-community/regexpp": { 1254 + "version": "4.12.2", 1255 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", 1256 + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", 1257 "dev": true, 1258 "license": "MIT", 1259 "engines": { ··· 1261 } 1262 }, 1263 "node_modules/@eslint/compat": { 1264 + "version": "1.4.0", 1265 + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.4.0.tgz", 1266 + "integrity": "sha512-DEzm5dKeDBPm3r08Ixli/0cmxr8LkRdwxMRUIJBlSCpAwSrvFEJpVBzV+66JhDxiaqKxnRzCXhtiMiczF7Hglg==", 1267 "dev": true, 1268 "license": "Apache-2.0", 1269 + "dependencies": { 1270 + "@eslint/core": "^0.16.0" 1271 + }, 1272 "engines": { 1273 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1274 }, 1275 "peerDependencies": { 1276 + "eslint": "^8.40 || 9" 1277 }, 1278 "peerDependenciesMeta": { 1279 "eslint": { ··· 1282 } 1283 }, 1284 "node_modules/@eslint/config-array": { 1285 + "version": "0.21.1", 1286 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", 1287 + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", 1288 "dev": true, 1289 "license": "Apache-2.0", 1290 "dependencies": { 1291 + "@eslint/object-schema": "^2.1.7", 1292 "debug": "^4.3.1", 1293 "minimatch": "^3.1.2" 1294 }, ··· 1321 } 1322 }, 1323 "node_modules/@eslint/config-helpers": { 1324 + "version": "0.4.1", 1325 + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.1.tgz", 1326 + "integrity": "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==", 1327 "dev": true, 1328 "license": "Apache-2.0", 1329 + "dependencies": { 1330 + "@eslint/core": "^0.16.0" 1331 + }, 1332 "engines": { 1333 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1334 } 1335 }, 1336 "node_modules/@eslint/core": { 1337 + "version": "0.16.0", 1338 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", 1339 + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", 1340 "dev": true, 1341 "license": "Apache-2.0", 1342 "dependencies": { ··· 1362 } 1363 }, 1364 "node_modules/@eslint/css-tree": { 1365 + "version": "3.6.6", 1366 + "resolved": "https://registry.npmjs.org/@eslint/css-tree/-/css-tree-3.6.6.tgz", 1367 + "integrity": "sha512-C3YiJMY9OZyZ/3vEMFWJIesdGaRY6DmIYvmtyxMT934CbrOKqRs+Iw7NWSRlJQEaK4dPYy2lZ2y1zkaj8z0p5A==", 1368 "dev": true, 1369 "license": "MIT", 1370 "dependencies": { 1371 + "mdn-data": "2.23.0", 1372 "source-map-js": "^1.0.1" 1373 }, 1374 "engines": { 1375 "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 1376 } 1377 }, 1378 + "node_modules/@eslint/css/node_modules/@eslint/core": { 1379 + "version": "0.14.0", 1380 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", 1381 + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", 1382 + "dev": true, 1383 + "license": "Apache-2.0", 1384 + "dependencies": { 1385 + "@types/json-schema": "^7.0.15" 1386 + }, 1387 + "engines": { 1388 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1389 + } 1390 + }, 1391 "node_modules/@eslint/eslintrc": { 1392 "version": "3.3.1", 1393 "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", ··· 1519 } 1520 }, 1521 "node_modules/@eslint/markdown": { 1522 + "version": "6.6.0", 1523 + "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-6.6.0.tgz", 1524 + "integrity": "sha512-IsWPy2jU3gaQDlioDC4sT4I4kG1hX1OMWs/q2sWwJrPoMASHW/Z4SDw+6Aql6EsHejGbagYuJbFq9Zvx+Y1b1Q==", 1525 "dev": true, 1526 "license": "MIT", 1527 + "workspaces": [ 1528 + "examples/*" 1529 + ], 1530 "dependencies": { 1531 "@eslint/core": "^0.14.0", 1532 "@eslint/plugin-kit": "^0.3.1", 1533 + "github-slugger": "^2.0.0", 1534 "mdast-util-from-markdown": "^2.0.2", 1535 "mdast-util-frontmatter": "^2.0.1", 1536 "mdast-util-gfm": "^3.0.0", ··· 1541 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1542 } 1543 }, 1544 + "node_modules/@eslint/markdown/node_modules/@eslint/core": { 1545 + "version": "0.14.0", 1546 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", 1547 + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", 1548 + "dev": true, 1549 + "license": "Apache-2.0", 1550 + "dependencies": { 1551 + "@types/json-schema": "^7.0.15" 1552 + }, 1553 + "engines": { 1554 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1555 + } 1556 + }, 1557 "node_modules/@eslint/object-schema": { 1558 + "version": "2.1.7", 1559 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", 1560 + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", 1561 "dev": true, 1562 "license": "Apache-2.0", 1563 "engines": { ··· 1565 } 1566 }, 1567 "node_modules/@eslint/plugin-kit": { 1568 + "version": "0.3.5", 1569 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", 1570 + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", 1571 "dev": true, 1572 "license": "Apache-2.0", 1573 "dependencies": { 1574 + "@eslint/core": "^0.15.2", 1575 "levn": "^0.4.1" 1576 }, 1577 "engines": { ··· 1579 } 1580 }, 1581 "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { 1582 + "version": "0.15.2", 1583 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", 1584 + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", 1585 "dev": true, 1586 "license": "Apache-2.0", 1587 "dependencies": { ··· 1592 } 1593 }, 1594 "node_modules/@faker-js/faker": { 1595 + "version": "9.9.0", 1596 + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.9.0.tgz", 1597 + "integrity": "sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==", 1598 "dev": true, 1599 "funding": [ 1600 { ··· 1627 } 1628 }, 1629 "node_modules/@humanfs/node": { 1630 + "version": "0.16.7", 1631 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", 1632 + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", 1633 "dev": true, 1634 "license": "Apache-2.0", 1635 "dependencies": { 1636 "@humanfs/core": "^0.19.1", 1637 + "@humanwhocodes/retry": "^0.4.0" 1638 }, 1639 "engines": { 1640 "node": ">=18.18.0" 1641 } 1642 }, 1643 "node_modules/@humanwhocodes/module-importer": { 1644 "version": "1.0.1", 1645 "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", ··· 1655 } 1656 }, 1657 "node_modules/@humanwhocodes/momoa": { 1658 + "version": "3.3.10", 1659 + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-3.3.10.tgz", 1660 + "integrity": "sha512-KWiFQpSAqEIyrTXko3hFNLeQvSK8zXlJQzhhxsyVn58WFRYXST99b3Nqnu+ttOtjds2Pl2grUHGpe2NzhPynuQ==", 1661 "dev": true, 1662 "license": "Apache-2.0", 1663 "engines": { ··· 1803 "node": ">=8" 1804 } 1805 }, 1806 "node_modules/@istanbuljs/schema": { 1807 "version": "0.1.3", 1808 "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", ··· 1814 } 1815 }, 1816 "node_modules/@jest/console": { 1817 + "version": "30.2.0", 1818 + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", 1819 + "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", 1820 "dev": true, 1821 "license": "MIT", 1822 "dependencies": { 1823 + "@jest/types": "30.2.0", 1824 "@types/node": "*", 1825 "chalk": "^4.1.2", 1826 + "jest-message-util": "30.2.0", 1827 + "jest-util": "30.2.0", 1828 "slash": "^3.0.0" 1829 }, 1830 "engines": { ··· 1832 } 1833 }, 1834 "node_modules/@jest/core": { 1835 + "version": "30.2.0", 1836 + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", 1837 + "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", 1838 "dev": true, 1839 "license": "MIT", 1840 "dependencies": { 1841 + "@jest/console": "30.2.0", 1842 "@jest/pattern": "30.0.1", 1843 + "@jest/reporters": "30.2.0", 1844 + "@jest/test-result": "30.2.0", 1845 + "@jest/transform": "30.2.0", 1846 + "@jest/types": "30.2.0", 1847 "@types/node": "*", 1848 "ansi-escapes": "^4.3.2", 1849 "chalk": "^4.1.2", 1850 "ci-info": "^4.2.0", 1851 "exit-x": "^0.2.2", 1852 "graceful-fs": "^4.2.11", 1853 + "jest-changed-files": "30.2.0", 1854 + "jest-config": "30.2.0", 1855 + "jest-haste-map": "30.2.0", 1856 + "jest-message-util": "30.2.0", 1857 "jest-regex-util": "30.0.1", 1858 + "jest-resolve": "30.2.0", 1859 + "jest-resolve-dependencies": "30.2.0", 1860 + "jest-runner": "30.2.0", 1861 + "jest-runtime": "30.2.0", 1862 + "jest-snapshot": "30.2.0", 1863 + "jest-util": "30.2.0", 1864 + "jest-validate": "30.2.0", 1865 + "jest-watcher": "30.2.0", 1866 "micromatch": "^4.0.8", 1867 + "pretty-format": "30.2.0", 1868 "slash": "^3.0.0" 1869 }, 1870 "engines": { ··· 1893 } 1894 }, 1895 "node_modules/@jest/core/node_modules/pretty-format": { 1896 + "version": "30.2.0", 1897 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 1898 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 1899 "dev": true, 1900 "license": "MIT", 1901 "dependencies": { 1902 + "@jest/schemas": "30.0.5", 1903 "ansi-styles": "^5.2.0", 1904 "react-is": "^18.3.1" 1905 }, ··· 1925 } 1926 }, 1927 "node_modules/@jest/environment": { 1928 + "version": "30.2.0", 1929 + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", 1930 + "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", 1931 "dev": true, 1932 "license": "MIT", 1933 "dependencies": { 1934 + "@jest/fake-timers": "30.2.0", 1935 + "@jest/types": "30.2.0", 1936 "@types/node": "*", 1937 + "jest-mock": "30.2.0" 1938 }, 1939 "engines": { 1940 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 1941 } 1942 }, 1943 "node_modules/@jest/environment-jsdom-abstract": { 1944 + "version": "30.2.0", 1945 + "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.2.0.tgz", 1946 + "integrity": "sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==", 1947 "dev": true, 1948 "license": "MIT", 1949 "dependencies": { 1950 + "@jest/environment": "30.2.0", 1951 + "@jest/fake-timers": "30.2.0", 1952 + "@jest/types": "30.2.0", 1953 "@types/jsdom": "^21.1.7", 1954 "@types/node": "*", 1955 + "jest-mock": "30.2.0", 1956 + "jest-util": "30.2.0" 1957 }, 1958 "engines": { 1959 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 1969 } 1970 }, 1971 "node_modules/@jest/expect": { 1972 + "version": "30.2.0", 1973 + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", 1974 + "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", 1975 "dev": true, 1976 "license": "MIT", 1977 "dependencies": { 1978 + "expect": "30.2.0", 1979 + "jest-snapshot": "30.2.0" 1980 }, 1981 "engines": { 1982 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 1983 } 1984 }, 1985 "node_modules/@jest/expect-utils": { 1986 + "version": "30.2.0", 1987 + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", 1988 + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", 1989 "dev": true, 1990 "license": "MIT", 1991 "dependencies": { 1992 + "@jest/get-type": "30.1.0" 1993 }, 1994 "engines": { 1995 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 1996 } 1997 }, 1998 "node_modules/@jest/fake-timers": { 1999 + "version": "30.2.0", 2000 + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", 2001 + "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", 2002 "dev": true, 2003 "license": "MIT", 2004 "dependencies": { 2005 + "@jest/types": "30.2.0", 2006 "@sinonjs/fake-timers": "^13.0.0", 2007 "@types/node": "*", 2008 + "jest-message-util": "30.2.0", 2009 + "jest-mock": "30.2.0", 2010 + "jest-util": "30.2.0" 2011 }, 2012 "engines": { 2013 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 2014 } 2015 }, 2016 "node_modules/@jest/get-type": { 2017 + "version": "30.1.0", 2018 + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", 2019 + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", 2020 "dev": true, 2021 "license": "MIT", 2022 "engines": { ··· 2024 } 2025 }, 2026 "node_modules/@jest/globals": { 2027 + "version": "30.2.0", 2028 + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", 2029 + "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", 2030 "dev": true, 2031 "license": "MIT", 2032 "dependencies": { 2033 + "@jest/environment": "30.2.0", 2034 + "@jest/expect": "30.2.0", 2035 + "@jest/types": "30.2.0", 2036 + "jest-mock": "30.2.0" 2037 }, 2038 "engines": { 2039 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 2054 } 2055 }, 2056 "node_modules/@jest/reporters": { 2057 + "version": "30.2.0", 2058 + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", 2059 + "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", 2060 "dev": true, 2061 "license": "MIT", 2062 "dependencies": { 2063 "@bcoe/v8-coverage": "^0.2.3", 2064 + "@jest/console": "30.2.0", 2065 + "@jest/test-result": "30.2.0", 2066 + "@jest/transform": "30.2.0", 2067 + "@jest/types": "30.2.0", 2068 "@jridgewell/trace-mapping": "^0.3.25", 2069 "@types/node": "*", 2070 "chalk": "^4.1.2", ··· 2077 "istanbul-lib-report": "^3.0.0", 2078 "istanbul-lib-source-maps": "^5.0.0", 2079 "istanbul-reports": "^3.1.3", 2080 + "jest-message-util": "30.2.0", 2081 + "jest-util": "30.2.0", 2082 + "jest-worker": "30.2.0", 2083 "slash": "^3.0.0", 2084 "string-length": "^4.0.2", 2085 "v8-to-istanbul": "^9.0.1" ··· 2097 } 2098 }, 2099 "node_modules/@jest/schemas": { 2100 + "version": "30.0.5", 2101 + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", 2102 + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", 2103 "dev": true, 2104 "license": "MIT", 2105 "dependencies": { ··· 2110 } 2111 }, 2112 "node_modules/@jest/snapshot-utils": { 2113 + "version": "30.2.0", 2114 + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", 2115 + "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", 2116 "dev": true, 2117 "license": "MIT", 2118 "dependencies": { 2119 + "@jest/types": "30.2.0", 2120 "chalk": "^4.1.2", 2121 "graceful-fs": "^4.2.11", 2122 "natural-compare": "^1.4.0" ··· 2141 } 2142 }, 2143 "node_modules/@jest/test-result": { 2144 + "version": "30.2.0", 2145 + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", 2146 + "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", 2147 "dev": true, 2148 "license": "MIT", 2149 "dependencies": { 2150 + "@jest/console": "30.2.0", 2151 + "@jest/types": "30.2.0", 2152 "@types/istanbul-lib-coverage": "^2.0.6", 2153 "collect-v8-coverage": "^1.0.2" 2154 }, ··· 2157 } 2158 }, 2159 "node_modules/@jest/test-sequencer": { 2160 + "version": "30.2.0", 2161 + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", 2162 + "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", 2163 "dev": true, 2164 "license": "MIT", 2165 "dependencies": { 2166 + "@jest/test-result": "30.2.0", 2167 "graceful-fs": "^4.2.11", 2168 + "jest-haste-map": "30.2.0", 2169 "slash": "^3.0.0" 2170 }, 2171 "engines": { ··· 2173 } 2174 }, 2175 "node_modules/@jest/transform": { 2176 + "version": "30.2.0", 2177 + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", 2178 + "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", 2179 "dev": true, 2180 "license": "MIT", 2181 "dependencies": { 2182 "@babel/core": "^7.27.4", 2183 + "@jest/types": "30.2.0", 2184 "@jridgewell/trace-mapping": "^0.3.25", 2185 + "babel-plugin-istanbul": "^7.0.1", 2186 "chalk": "^4.1.2", 2187 "convert-source-map": "^2.0.0", 2188 "fast-json-stable-stringify": "^2.1.0", 2189 "graceful-fs": "^4.2.11", 2190 + "jest-haste-map": "30.2.0", 2191 "jest-regex-util": "30.0.1", 2192 + "jest-util": "30.2.0", 2193 "micromatch": "^4.0.8", 2194 "pirates": "^4.0.7", 2195 "slash": "^3.0.0", ··· 2200 } 2201 }, 2202 "node_modules/@jest/types": { 2203 + "version": "30.2.0", 2204 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", 2205 + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", 2206 "dev": true, 2207 "license": "MIT", 2208 "dependencies": { 2209 "@jest/pattern": "30.0.1", 2210 + "@jest/schemas": "30.0.5", 2211 "@types/istanbul-lib-coverage": "^2.0.6", 2212 "@types/istanbul-reports": "^3.0.4", 2213 "@types/node": "*", ··· 2219 } 2220 }, 2221 "node_modules/@jridgewell/gen-mapping": { 2222 + "version": "0.3.13", 2223 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 2224 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 2225 "dev": true, 2226 "license": "MIT", 2227 "dependencies": { 2228 + "@jridgewell/sourcemap-codec": "^1.5.0", 2229 "@jridgewell/trace-mapping": "^0.3.24" 2230 } 2231 }, 2232 + "node_modules/@jridgewell/remapping": { 2233 + "version": "2.3.5", 2234 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 2235 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 2236 "dev": true, 2237 "license": "MIT", 2238 + "dependencies": { 2239 + "@jridgewell/gen-mapping": "^0.3.5", 2240 + "@jridgewell/trace-mapping": "^0.3.24" 2241 } 2242 }, 2243 + "node_modules/@jridgewell/resolve-uri": { 2244 + "version": "3.1.2", 2245 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 2246 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 2247 "dev": true, 2248 "license": "MIT", 2249 "engines": { ··· 2251 } 2252 }, 2253 "node_modules/@jridgewell/sourcemap-codec": { 2254 + "version": "1.5.5", 2255 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 2256 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 2257 "dev": true, 2258 "license": "MIT" 2259 }, 2260 "node_modules/@jridgewell/trace-mapping": { 2261 + "version": "0.3.31", 2262 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", 2263 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", 2264 "dev": true, 2265 "license": "MIT", 2266 "dependencies": { ··· 2313 "license": "MIT" 2314 }, 2315 "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { 2316 + "version": "1.22.11", 2317 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", 2318 + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", 2319 "dev": true, 2320 "license": "MIT", 2321 "dependencies": { 2322 + "is-core-module": "^2.16.1", 2323 "path-parse": "^1.0.7", 2324 "supports-preserve-symlinks-flag": "^1.0.0" 2325 }, ··· 2334 } 2335 }, 2336 "node_modules/@napi-rs/wasm-runtime": { 2337 + "version": "0.2.12", 2338 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", 2339 + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", 2340 "dev": true, 2341 "license": "MIT", 2342 "optional": true, 2343 "dependencies": { 2344 "@emnapi/core": "^1.4.3", 2345 "@emnapi/runtime": "^1.4.3", 2346 + "@tybys/wasm-util": "^0.10.0" 2347 } 2348 }, 2349 "node_modules/@nodelib/fs.scandir": { ··· 2397 } 2398 }, 2399 "node_modules/@npmcli/fs/node_modules/semver": { 2400 + "version": "7.7.3", 2401 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 2402 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 2403 "dev": true, 2404 "license": "ISC", 2405 "optional": true, ··· 2438 } 2439 }, 2440 "node_modules/@pkgr/core": { 2441 + "version": "0.2.9", 2442 + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", 2443 + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", 2444 "dev": true, 2445 "license": "MIT", 2446 "engines": { ··· 2451 } 2452 }, 2453 "node_modules/@preact/preset-vite": { 2454 + "version": "2.10.2", 2455 + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.10.2.tgz", 2456 + "integrity": "sha512-K9wHlJOtkE+cGqlyQ5v9kL3Ge0Ql4LlIZjkUTL+1zf3nNdF88F9UZN6VTV8jdzBX9Fl7WSzeNMSDG7qECPmSmg==", 2457 "dev": true, 2458 "license": "MIT", 2459 "dependencies": { ··· 2463 "@rollup/pluginutils": "^4.1.1", 2464 "babel-plugin-transform-hook-names": "^1.0.2", 2465 "debug": "^4.3.4", 2466 + "picocolors": "^1.1.1", 2467 "vite-prerender-plugin": "^0.5.3" 2468 }, 2469 "peerDependencies": { 2470 "@babel/core": "7.x", 2471 + "vite": "2.x || 3.x || 4.x || 5.x || 6.x || 7.x" 2472 } 2473 }, 2474 "node_modules/@preact/signals": { 2475 + "version": "2.3.2", 2476 + "resolved": "https://registry.npmjs.org/@preact/signals/-/signals-2.3.2.tgz", 2477 + "integrity": "sha512-Q22avIn4z0BQnmFeo6Y5HCnJTo8VufN84zN51OtqeNgZOVCYgdwEOcJKVX1x/IrjRVxUnOy6Ubn7H5aVFujXaQ==", 2478 "license": "MIT", 2479 "dependencies": { 2480 + "@preact/signals-core": "^1.12.0" 2481 }, 2482 "funding": { 2483 "type": "opencollective", 2484 "url": "https://opencollective.com/preact" 2485 }, 2486 "peerDependencies": { 2487 + "preact": ">= 10.25.0 || >=11.0.0-0" 2488 } 2489 }, 2490 "node_modules/@preact/signals-core": { 2491 + "version": "1.12.1", 2492 + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.12.1.tgz", 2493 + "integrity": "sha512-BwbTXpj+9QutoZLQvbttRg5x3l5468qaV2kufh+51yha1c53ep5dY4kTuZR35+3pAZxpfQerGJiQqg34ZNZ6uA==", 2494 "license": "MIT", 2495 "funding": { 2496 "type": "opencollective", ··· 2498 } 2499 }, 2500 "node_modules/@prefresh/babel-plugin": { 2501 + "version": "0.5.2", 2502 + "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.2.tgz", 2503 + "integrity": "sha512-AOl4HG6dAxWkJ5ndPHBgBa49oo/9bOiJuRDKHLSTyH+Fd9x00shTXpdiTj1W41l6oQIwUOAgJeHMn4QwIDpHkA==", 2504 "dev": true, 2505 "license": "MIT" 2506 }, 2507 "node_modules/@prefresh/core": { 2508 + "version": "1.5.8", 2509 + "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.5.8.tgz", 2510 + "integrity": "sha512-T7HMpakS1iPVCFZvfDLMGyrWAcO3toUN9/RkJUqqoRr/vNhQrZgHjidfhq3awDzAQtw1emDWH8dsOeu0DWqtgA==", 2511 "dev": true, 2512 "license": "MIT", 2513 "peerDependencies": { 2514 + "preact": "^10.0.0 || ^11.0.0-0" 2515 } 2516 }, 2517 "node_modules/@prefresh/utils": { 2518 + "version": "1.2.1", 2519 + "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.2.1.tgz", 2520 + "integrity": "sha512-vq/sIuN5nYfYzvyayXI4C2QkprfNaHUQ9ZX+3xLD8nL3rWyzpxOm1+K7RtMbhd+66QcaISViK7amjnheQ/4WZw==", 2521 "dev": true, 2522 "license": "MIT" 2523 }, 2524 "node_modules/@prefresh/vite": { 2525 + "version": "2.4.11", 2526 + "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.4.11.tgz", 2527 + "integrity": "sha512-/XjURQqdRiCG3NpMmWqE9kJwrg9IchIOWHzulCfqg2sRe/8oQ1g5De7xrk9lbqPIQLn7ntBkKdqWXIj4E9YXyg==", 2528 "dev": true, 2529 "license": "MIT", 2530 "dependencies": { 2531 "@babel/core": "^7.22.1", 2532 + "@prefresh/babel-plugin": "0.5.2", 2533 + "@prefresh/core": "^1.5.0", 2534 "@prefresh/utils": "^1.2.0", 2535 "@rollup/pluginutils": "^4.2.1" 2536 }, 2537 "peerDependencies": { 2538 + "preact": "^10.4.0 || ^11.0.0-0", 2539 "vite": ">=2.0.0" 2540 } 2541 }, ··· 2563 } 2564 }, 2565 "node_modules/@rollup/plugin-inject/node_modules/@rollup/pluginutils": { 2566 + "version": "5.3.0", 2567 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", 2568 + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", 2569 "dev": true, 2570 "license": "MIT", 2571 "dependencies": { ··· 2586 } 2587 }, 2588 "node_modules/@rollup/plugin-inject/node_modules/picomatch": { 2589 + "version": "4.0.3", 2590 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 2591 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 2592 "dev": true, 2593 "license": "MIT", 2594 "engines": { ··· 2613 } 2614 }, 2615 "node_modules/@rollup/rollup-android-arm-eabi": { 2616 + "version": "4.52.5", 2617 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", 2618 + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", 2619 "cpu": [ 2620 "arm" 2621 ], ··· 2627 ] 2628 }, 2629 "node_modules/@rollup/rollup-android-arm64": { 2630 + "version": "4.52.5", 2631 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", 2632 + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", 2633 "cpu": [ 2634 "arm64" 2635 ], ··· 2641 ] 2642 }, 2643 "node_modules/@rollup/rollup-darwin-arm64": { 2644 + "version": "4.52.5", 2645 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", 2646 + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", 2647 "cpu": [ 2648 "arm64" 2649 ], ··· 2655 ] 2656 }, 2657 "node_modules/@rollup/rollup-darwin-x64": { 2658 + "version": "4.52.5", 2659 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", 2660 + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", 2661 "cpu": [ 2662 "x64" 2663 ], ··· 2669 ] 2670 }, 2671 "node_modules/@rollup/rollup-freebsd-arm64": { 2672 + "version": "4.52.5", 2673 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", 2674 + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", 2675 "cpu": [ 2676 "arm64" 2677 ], ··· 2683 ] 2684 }, 2685 "node_modules/@rollup/rollup-freebsd-x64": { 2686 + "version": "4.52.5", 2687 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", 2688 + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", 2689 "cpu": [ 2690 "x64" 2691 ], ··· 2697 ] 2698 }, 2699 "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 2700 + "version": "4.52.5", 2701 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", 2702 + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", 2703 "cpu": [ 2704 "arm" 2705 ], ··· 2711 ] 2712 }, 2713 "node_modules/@rollup/rollup-linux-arm-musleabihf": { 2714 + "version": "4.52.5", 2715 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", 2716 + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", 2717 "cpu": [ 2718 "arm" 2719 ], ··· 2725 ] 2726 }, 2727 "node_modules/@rollup/rollup-linux-arm64-gnu": { 2728 + "version": "4.52.5", 2729 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", 2730 + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", 2731 "cpu": [ 2732 "arm64" 2733 ], ··· 2739 ] 2740 }, 2741 "node_modules/@rollup/rollup-linux-arm64-musl": { 2742 + "version": "4.52.5", 2743 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", 2744 + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", 2745 "cpu": [ 2746 "arm64" 2747 ], ··· 2752 "linux" 2753 ] 2754 }, 2755 + "node_modules/@rollup/rollup-linux-loong64-gnu": { 2756 + "version": "4.52.5", 2757 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", 2758 + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", 2759 "cpu": [ 2760 "loong64" 2761 ], ··· 2766 "linux" 2767 ] 2768 }, 2769 + "node_modules/@rollup/rollup-linux-ppc64-gnu": { 2770 + "version": "4.52.5", 2771 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", 2772 + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", 2773 "cpu": [ 2774 "ppc64" 2775 ], ··· 2781 ] 2782 }, 2783 "node_modules/@rollup/rollup-linux-riscv64-gnu": { 2784 + "version": "4.52.5", 2785 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", 2786 + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", 2787 "cpu": [ 2788 "riscv64" 2789 ], ··· 2795 ] 2796 }, 2797 "node_modules/@rollup/rollup-linux-riscv64-musl": { 2798 + "version": "4.52.5", 2799 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", 2800 + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", 2801 "cpu": [ 2802 "riscv64" 2803 ], ··· 2809 ] 2810 }, 2811 "node_modules/@rollup/rollup-linux-s390x-gnu": { 2812 + "version": "4.52.5", 2813 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", 2814 + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", 2815 "cpu": [ 2816 "s390x" 2817 ], ··· 2823 ] 2824 }, 2825 "node_modules/@rollup/rollup-linux-x64-gnu": { 2826 + "version": "4.52.5", 2827 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", 2828 + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", 2829 "cpu": [ 2830 "x64" 2831 ], ··· 2837 ] 2838 }, 2839 "node_modules/@rollup/rollup-linux-x64-musl": { 2840 + "version": "4.52.5", 2841 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", 2842 + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", 2843 "cpu": [ 2844 "x64" 2845 ], ··· 2850 "linux" 2851 ] 2852 }, 2853 + "node_modules/@rollup/rollup-openharmony-arm64": { 2854 + "version": "4.52.5", 2855 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", 2856 + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", 2857 + "cpu": [ 2858 + "arm64" 2859 + ], 2860 + "dev": true, 2861 + "license": "MIT", 2862 + "optional": true, 2863 + "os": [ 2864 + "openharmony" 2865 + ] 2866 + }, 2867 "node_modules/@rollup/rollup-win32-arm64-msvc": { 2868 + "version": "4.52.5", 2869 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", 2870 + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", 2871 "cpu": [ 2872 "arm64" 2873 ], ··· 2879 ] 2880 }, 2881 "node_modules/@rollup/rollup-win32-ia32-msvc": { 2882 + "version": "4.52.5", 2883 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", 2884 + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", 2885 "cpu": [ 2886 "ia32" 2887 ], ··· 2892 "win32" 2893 ] 2894 }, 2895 + "node_modules/@rollup/rollup-win32-x64-gnu": { 2896 + "version": "4.52.5", 2897 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", 2898 + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", 2899 + "cpu": [ 2900 + "x64" 2901 + ], 2902 + "dev": true, 2903 + "license": "MIT", 2904 + "optional": true, 2905 + "os": [ 2906 + "win32" 2907 + ] 2908 + }, 2909 "node_modules/@rollup/rollup-win32-x64-msvc": { 2910 + "version": "4.52.5", 2911 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", 2912 + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", 2913 "cpu": [ 2914 "x64" 2915 ], ··· 2939 } 2940 }, 2941 "node_modules/@sinclair/typebox": { 2942 + "version": "0.34.41", 2943 + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", 2944 + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", 2945 "dev": true, 2946 "license": "MIT" 2947 }, ··· 3003 "license": "MIT" 3004 }, 3005 "node_modules/@testing-library/jest-dom": { 3006 + "version": "6.9.1", 3007 + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", 3008 + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", 3009 "dev": true, 3010 "license": "MIT", 3011 "dependencies": { 3012 "@adobe/css-tools": "^4.4.0", 3013 "aria-query": "^5.0.0", 3014 "css.escape": "^1.5.1", 3015 "dom-accessibility-api": "^0.6.3", 3016 + "picocolors": "^1.1.1", 3017 "redent": "^3.0.0" 3018 }, 3019 "engines": { ··· 3022 "yarn": ">=1" 3023 } 3024 }, 3025 "node_modules/@testing-library/preact": { 3026 "version": "3.2.4", 3027 "resolved": "https://registry.npmjs.org/@testing-library/preact/-/preact-3.2.4.tgz", ··· 3039 } 3040 }, 3041 "node_modules/@thaunknown/simple-peer": { 3042 + "version": "10.0.12", 3043 + "resolved": "https://registry.npmjs.org/@thaunknown/simple-peer/-/simple-peer-10.0.12.tgz", 3044 + "integrity": "sha512-sDrkkOdzlJL8+FXQqYcBb2THHQU+Yrar92SjfW4ZLs877/4QA2kFejuA6DVepsoMpoIbXShc7OCXCwYt4AtGdQ==", 3045 "dev": true, 3046 "license": "MIT", 3047 "dependencies": { ··· 3091 } 3092 }, 3093 "node_modules/@tybys/wasm-util": { 3094 + "version": "0.10.1", 3095 + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", 3096 + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", 3097 "dev": true, 3098 "license": "MIT", 3099 "optional": true, ··· 3151 } 3152 }, 3153 "node_modules/@types/babel__traverse": { 3154 + "version": "7.28.0", 3155 + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", 3156 + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", 3157 "dev": true, 3158 "license": "MIT", 3159 "dependencies": { 3160 + "@babel/types": "^7.28.2" 3161 } 3162 }, 3163 "node_modules/@types/body-parser": { ··· 3217 "license": "MIT" 3218 }, 3219 "node_modules/@types/express": { 3220 + "version": "5.0.4", 3221 + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.4.tgz", 3222 + "integrity": "sha512-g64dbryHk7loCIrsa0R3shBnEu5p6LPJ09bu9NG58+jz+cRUjFrc3Bz0kNQ7j9bXeCsrRDvNET1G54P/GJkAyA==", 3223 "dev": true, 3224 "license": "MIT", 3225 "dependencies": { ··· 3229 } 3230 }, 3231 "node_modules/@types/express-serve-static-core": { 3232 + "version": "5.1.0", 3233 + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz", 3234 + "integrity": "sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==", 3235 "dev": true, 3236 "license": "MIT", 3237 "dependencies": { ··· 3300 } 3301 }, 3302 "node_modules/@types/jest/node_modules/pretty-format": { 3303 + "version": "30.2.0", 3304 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 3305 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 3306 "dev": true, 3307 "license": "MIT", 3308 "dependencies": { 3309 + "@jest/schemas": "30.0.5", 3310 "ansi-styles": "^5.2.0", 3311 "react-is": "^18.3.1" 3312 }, ··· 3403 "license": "MIT" 3404 }, 3405 "node_modules/@types/node": { 3406 + "version": "24.9.1", 3407 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", 3408 + "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", 3409 "dev": true, 3410 "license": "MIT", 3411 "dependencies": { 3412 + "undici-types": "~7.16.0" 3413 } 3414 }, 3415 "node_modules/@types/qs": { ··· 3427 "license": "MIT" 3428 }, 3429 "node_modules/@types/send": { 3430 + "version": "1.2.1", 3431 + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", 3432 + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", 3433 "dev": true, 3434 "license": "MIT", 3435 "dependencies": { 3436 "@types/node": "*" 3437 } 3438 }, 3439 "node_modules/@types/serve-static": { 3440 + "version": "1.15.10", 3441 + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", 3442 + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", 3443 "dev": true, 3444 "license": "MIT", 3445 "dependencies": { 3446 "@types/http-errors": "*", 3447 "@types/node": "*", 3448 + "@types/send": "<1" 3449 + } 3450 + }, 3451 + "node_modules/@types/serve-static/node_modules/@types/send": { 3452 + "version": "0.17.6", 3453 + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", 3454 + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", 3455 + "dev": true, 3456 + "license": "MIT", 3457 + "dependencies": { 3458 + "@types/mime": "^1", 3459 + "@types/node": "*" 3460 } 3461 }, 3462 "node_modules/@types/simple-peer": { 3463 + "version": "9.11.9", 3464 + "resolved": "https://registry.npmjs.org/@types/simple-peer/-/simple-peer-9.11.9.tgz", 3465 + "integrity": "sha512-6Gdl7TSS5oh9nuwKD4Pl8cSmaxWycYeZz9HLnJBNvIwWjZuGVsmHe9RwW3+9RxfhC1aIR9Z83DvaJoMw6rhkbg==", 3466 "dev": true, 3467 "license": "MIT", 3468 "dependencies": { ··· 3501 } 3502 }, 3503 "node_modules/@types/yargs": { 3504 + "version": "17.0.34", 3505 + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.34.tgz", 3506 + "integrity": "sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==", 3507 "dev": true, 3508 "license": "MIT", 3509 "dependencies": { ··· 3518 "license": "MIT" 3519 }, 3520 "node_modules/@typescript-eslint/eslint-plugin": { 3521 + "version": "8.46.2", 3522 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", 3523 + "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==", 3524 "dev": true, 3525 "license": "MIT", 3526 "dependencies": { 3527 "@eslint-community/regexpp": "^4.10.0", 3528 + "@typescript-eslint/scope-manager": "8.46.2", 3529 + "@typescript-eslint/type-utils": "8.46.2", 3530 + "@typescript-eslint/utils": "8.46.2", 3531 + "@typescript-eslint/visitor-keys": "8.46.2", 3532 "graphemer": "^1.4.0", 3533 "ignore": "^7.0.0", 3534 "natural-compare": "^1.4.0", ··· 3542 "url": "https://opencollective.com/typescript-eslint" 3543 }, 3544 "peerDependencies": { 3545 + "@typescript-eslint/parser": "^8.46.2", 3546 "eslint": "^8.57.0 || ^9.0.0", 3547 + "typescript": ">=4.8.4 <6.0.0" 3548 } 3549 }, 3550 "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { ··· 3558 } 3559 }, 3560 "node_modules/@typescript-eslint/parser": { 3561 + "version": "8.46.2", 3562 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", 3563 + "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", 3564 "dev": true, 3565 "license": "MIT", 3566 "dependencies": { 3567 + "@typescript-eslint/scope-manager": "8.46.2", 3568 + "@typescript-eslint/types": "8.46.2", 3569 + "@typescript-eslint/typescript-estree": "8.46.2", 3570 + "@typescript-eslint/visitor-keys": "8.46.2", 3571 "debug": "^4.3.4" 3572 }, 3573 "engines": { ··· 3579 }, 3580 "peerDependencies": { 3581 "eslint": "^8.57.0 || ^9.0.0", 3582 + "typescript": ">=4.8.4 <6.0.0" 3583 } 3584 }, 3585 "node_modules/@typescript-eslint/project-service": { 3586 + "version": "8.46.2", 3587 + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", 3588 + "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==", 3589 "dev": true, 3590 "license": "MIT", 3591 "dependencies": { 3592 + "@typescript-eslint/tsconfig-utils": "^8.46.2", 3593 + "@typescript-eslint/types": "^8.46.2", 3594 "debug": "^4.3.4" 3595 }, 3596 "engines": { ··· 3601 "url": "https://opencollective.com/typescript-eslint" 3602 }, 3603 "peerDependencies": { 3604 + "typescript": ">=4.8.4 <6.0.0" 3605 } 3606 }, 3607 "node_modules/@typescript-eslint/scope-manager": { 3608 + "version": "8.46.2", 3609 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", 3610 + "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", 3611 "dev": true, 3612 "license": "MIT", 3613 "dependencies": { 3614 + "@typescript-eslint/types": "8.46.2", 3615 + "@typescript-eslint/visitor-keys": "8.46.2" 3616 }, 3617 "engines": { 3618 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 3623 } 3624 }, 3625 "node_modules/@typescript-eslint/tsconfig-utils": { 3626 + "version": "8.46.2", 3627 + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", 3628 + "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==", 3629 "dev": true, 3630 "license": "MIT", 3631 "engines": { ··· 3636 "url": "https://opencollective.com/typescript-eslint" 3637 }, 3638 "peerDependencies": { 3639 + "typescript": ">=4.8.4 <6.0.0" 3640 } 3641 }, 3642 "node_modules/@typescript-eslint/type-utils": { 3643 + "version": "8.46.2", 3644 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", 3645 + "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==", 3646 "dev": true, 3647 "license": "MIT", 3648 "dependencies": { 3649 + "@typescript-eslint/types": "8.46.2", 3650 + "@typescript-eslint/typescript-estree": "8.46.2", 3651 + "@typescript-eslint/utils": "8.46.2", 3652 "debug": "^4.3.4", 3653 "ts-api-utils": "^2.1.0" 3654 }, ··· 3661 }, 3662 "peerDependencies": { 3663 "eslint": "^8.57.0 || ^9.0.0", 3664 + "typescript": ">=4.8.4 <6.0.0" 3665 } 3666 }, 3667 "node_modules/@typescript-eslint/types": { 3668 + "version": "8.46.2", 3669 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", 3670 + "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", 3671 "dev": true, 3672 "license": "MIT", 3673 "engines": { ··· 3679 } 3680 }, 3681 "node_modules/@typescript-eslint/typescript-estree": { 3682 + "version": "8.46.2", 3683 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", 3684 + "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", 3685 "dev": true, 3686 "license": "MIT", 3687 "dependencies": { 3688 + "@typescript-eslint/project-service": "8.46.2", 3689 + "@typescript-eslint/tsconfig-utils": "8.46.2", 3690 + "@typescript-eslint/types": "8.46.2", 3691 + "@typescript-eslint/visitor-keys": "8.46.2", 3692 "debug": "^4.3.4", 3693 "fast-glob": "^3.3.2", 3694 "is-glob": "^4.0.3", ··· 3704 "url": "https://opencollective.com/typescript-eslint" 3705 }, 3706 "peerDependencies": { 3707 + "typescript": ">=4.8.4 <6.0.0" 3708 } 3709 }, 3710 "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { ··· 3721 } 3722 }, 3723 "node_modules/@typescript-eslint/utils": { 3724 + "version": "8.46.2", 3725 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", 3726 + "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", 3727 "dev": true, 3728 "license": "MIT", 3729 "dependencies": { 3730 "@eslint-community/eslint-utils": "^4.7.0", 3731 + "@typescript-eslint/scope-manager": "8.46.2", 3732 + "@typescript-eslint/types": "8.46.2", 3733 + "@typescript-eslint/typescript-estree": "8.46.2" 3734 }, 3735 "engines": { 3736 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 3741 }, 3742 "peerDependencies": { 3743 "eslint": "^8.57.0 || ^9.0.0", 3744 + "typescript": ">=4.8.4 <6.0.0" 3745 } 3746 }, 3747 "node_modules/@typescript-eslint/visitor-keys": { 3748 + "version": "8.46.2", 3749 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", 3750 + "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", 3751 "dev": true, 3752 "license": "MIT", 3753 "dependencies": { 3754 + "@typescript-eslint/types": "8.46.2", 3755 "eslint-visitor-keys": "^4.2.1" 3756 }, 3757 "engines": { ··· 3770 "license": "ISC" 3771 }, 3772 "node_modules/@unrs/resolver-binding-android-arm-eabi": { 3773 + "version": "1.11.1", 3774 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", 3775 + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", 3776 "cpu": [ 3777 "arm" 3778 ], ··· 3784 ] 3785 }, 3786 "node_modules/@unrs/resolver-binding-android-arm64": { 3787 + "version": "1.11.1", 3788 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", 3789 + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", 3790 "cpu": [ 3791 "arm64" 3792 ], ··· 3798 ] 3799 }, 3800 "node_modules/@unrs/resolver-binding-darwin-arm64": { 3801 + "version": "1.11.1", 3802 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", 3803 + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", 3804 "cpu": [ 3805 "arm64" 3806 ], ··· 3812 ] 3813 }, 3814 "node_modules/@unrs/resolver-binding-darwin-x64": { 3815 + "version": "1.11.1", 3816 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", 3817 + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", 3818 "cpu": [ 3819 "x64" 3820 ], ··· 3826 ] 3827 }, 3828 "node_modules/@unrs/resolver-binding-freebsd-x64": { 3829 + "version": "1.11.1", 3830 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", 3831 + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", 3832 "cpu": [ 3833 "x64" 3834 ], ··· 3840 ] 3841 }, 3842 "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { 3843 + "version": "1.11.1", 3844 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", 3845 + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", 3846 "cpu": [ 3847 "arm" 3848 ], ··· 3854 ] 3855 }, 3856 "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { 3857 + "version": "1.11.1", 3858 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", 3859 + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", 3860 "cpu": [ 3861 "arm" 3862 ], ··· 3868 ] 3869 }, 3870 "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { 3871 + "version": "1.11.1", 3872 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", 3873 + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", 3874 "cpu": [ 3875 "arm64" 3876 ], ··· 3882 ] 3883 }, 3884 "node_modules/@unrs/resolver-binding-linux-arm64-musl": { 3885 + "version": "1.11.1", 3886 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", 3887 + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", 3888 "cpu": [ 3889 "arm64" 3890 ], ··· 3896 ] 3897 }, 3898 "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { 3899 + "version": "1.11.1", 3900 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", 3901 + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", 3902 "cpu": [ 3903 "ppc64" 3904 ], ··· 3910 ] 3911 }, 3912 "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { 3913 + "version": "1.11.1", 3914 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", 3915 + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", 3916 "cpu": [ 3917 "riscv64" 3918 ], ··· 3924 ] 3925 }, 3926 "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { 3927 + "version": "1.11.1", 3928 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", 3929 + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", 3930 "cpu": [ 3931 "riscv64" 3932 ], ··· 3938 ] 3939 }, 3940 "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { 3941 + "version": "1.11.1", 3942 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", 3943 + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", 3944 "cpu": [ 3945 "s390x" 3946 ], ··· 3952 ] 3953 }, 3954 "node_modules/@unrs/resolver-binding-linux-x64-gnu": { 3955 + "version": "1.11.1", 3956 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", 3957 + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", 3958 "cpu": [ 3959 "x64" 3960 ], ··· 3966 ] 3967 }, 3968 "node_modules/@unrs/resolver-binding-linux-x64-musl": { 3969 + "version": "1.11.1", 3970 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", 3971 + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", 3972 "cpu": [ 3973 "x64" 3974 ], ··· 3980 ] 3981 }, 3982 "node_modules/@unrs/resolver-binding-wasm32-wasi": { 3983 + "version": "1.11.1", 3984 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", 3985 + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", 3986 "cpu": [ 3987 "wasm32" 3988 ], ··· 3997 } 3998 }, 3999 "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { 4000 + "version": "1.11.1", 4001 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", 4002 + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", 4003 "cpu": [ 4004 "arm64" 4005 ], ··· 4011 ] 4012 }, 4013 "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { 4014 + "version": "1.11.1", 4015 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", 4016 + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", 4017 "cpu": [ 4018 "ia32" 4019 ], ··· 4025 ] 4026 }, 4027 "node_modules/@unrs/resolver-binding-win32-x64-msvc": { 4028 + "version": "1.11.1", 4029 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", 4030 + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", 4031 "cpu": [ 4032 "x64" 4033 ], ··· 4049 "http-parser-js": "^0.4.3" 4050 } 4051 }, 4052 "node_modules/abbrev": { 4053 "version": "1.1.1", 4054 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", ··· 4134 } 4135 }, 4136 "node_modules/agent-base": { 4137 + "version": "7.1.4", 4138 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", 4139 + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", 4140 "dev": true, 4141 "license": "MIT", 4142 "engines": { ··· 4246 } 4247 }, 4248 "node_modules/aproba": { 4249 + "version": "2.1.0", 4250 + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", 4251 + "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", 4252 "dev": true, 4253 "license": "ISC", 4254 "optional": true ··· 4464 "util": "^0.12.5" 4465 } 4466 }, 4467 "node_modules/async-function": { 4468 "version": "1.0.0", 4469 "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", ··· 4491 } 4492 }, 4493 "node_modules/b4a": { 4494 + "version": "1.7.3", 4495 + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", 4496 + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", 4497 "dev": true, 4498 + "license": "Apache-2.0", 4499 + "peerDependencies": { 4500 + "react-native-b4a": "*" 4501 + }, 4502 + "peerDependenciesMeta": { 4503 + "react-native-b4a": { 4504 + "optional": true 4505 + } 4506 + } 4507 }, 4508 "node_modules/babel-jest": { 4509 + "version": "30.2.0", 4510 + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", 4511 + "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", 4512 "dev": true, 4513 "license": "MIT", 4514 "dependencies": { 4515 + "@jest/transform": "30.2.0", 4516 "@types/babel__core": "^7.20.5", 4517 + "babel-plugin-istanbul": "^7.0.1", 4518 + "babel-preset-jest": "30.2.0", 4519 "chalk": "^4.1.2", 4520 "graceful-fs": "^4.2.11", 4521 "slash": "^3.0.0" ··· 4524 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 4525 }, 4526 "peerDependencies": { 4527 + "@babel/core": "^7.11.0 || ^8.0.0-0" 4528 } 4529 }, 4530 "node_modules/babel-plugin-istanbul": { 4531 + "version": "7.0.1", 4532 + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", 4533 + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", 4534 "dev": true, 4535 "license": "BSD-3-Clause", 4536 + "workspaces": [ 4537 + "test/babel-8" 4538 + ], 4539 "dependencies": { 4540 "@babel/helper-plugin-utils": "^7.0.0", 4541 "@istanbuljs/load-nyc-config": "^1.0.0", ··· 4548 } 4549 }, 4550 "node_modules/babel-plugin-jest-hoist": { 4551 + "version": "30.2.0", 4552 + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", 4553 + "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", 4554 "dev": true, 4555 "license": "MIT", 4556 "dependencies": { 4557 "@types/babel__core": "^7.20.5" 4558 }, 4559 "engines": { ··· 4571 } 4572 }, 4573 "node_modules/babel-preset-current-node-syntax": { 4574 + "version": "1.2.0", 4575 + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", 4576 + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", 4577 "dev": true, 4578 "license": "MIT", 4579 "dependencies": { ··· 4594 "@babel/plugin-syntax-top-level-await": "^7.14.5" 4595 }, 4596 "peerDependencies": { 4597 + "@babel/core": "^7.0.0 || ^8.0.0-0" 4598 } 4599 }, 4600 "node_modules/babel-preset-jest": { 4601 + "version": "30.2.0", 4602 + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", 4603 + "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", 4604 "dev": true, 4605 "license": "MIT", 4606 "dependencies": { 4607 + "babel-plugin-jest-hoist": "30.2.0", 4608 + "babel-preset-current-node-syntax": "^1.2.0" 4609 }, 4610 "engines": { 4611 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 4612 }, 4613 "peerDependencies": { 4614 + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" 4615 } 4616 }, 4617 "node_modules/balanced-match": { ··· 4622 "license": "MIT" 4623 }, 4624 "node_modules/bare-addon-resolve": { 4625 + "version": "1.9.5", 4626 + "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.9.5.tgz", 4627 + "integrity": "sha512-XdqrG73zLK9LDfblOJwoAxmJ+7YdfRW4ex46+f4L+wPhk7H7LDrRMAbBw8s8jkxeEFpUenyB7QHnv0ErAWd3Yg==", 4628 "dev": true, 4629 "license": "Apache-2.0", 4630 "optional": true, ··· 4642 } 4643 }, 4644 "node_modules/bare-events": { 4645 + "version": "2.8.1", 4646 + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.1.tgz", 4647 + "integrity": "sha512-oxSAxTS1hRfnyit2CL5QpAOS5ixfBjj6ex3yTNvXyY/kE719jQ/IjuESJBK2w5v4wwQRAHGseVJXx9QBYOtFGQ==", 4648 "dev": true, 4649 + "license": "Apache-2.0", 4650 + "peerDependencies": { 4651 + "bare-abort-controller": "*" 4652 + }, 4653 + "peerDependenciesMeta": { 4654 + "bare-abort-controller": { 4655 + "optional": true 4656 + } 4657 + } 4658 }, 4659 "node_modules/bare-fs": { 4660 + "version": "4.5.0", 4661 + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.0.tgz", 4662 + "integrity": "sha512-GljgCjeupKZJNetTqxKaQArLK10vpmK28or0+RwWjEl5Rk+/xG3wkpmkv+WrcBm3q1BwHKlnhXzR8O37kcvkXQ==", 4663 "dev": true, 4664 "license": "Apache-2.0", 4665 "dependencies": { 4666 "bare-events": "^2.5.4", 4667 "bare-path": "^3.0.0", 4668 + "bare-stream": "^2.6.4", 4669 + "bare-url": "^2.2.2", 4670 + "fast-fifo": "^1.3.2" 4671 }, 4672 "engines": { 4673 "bare": ">=1.16.0" ··· 4682 } 4683 }, 4684 "node_modules/bare-module-resolve": { 4685 + "version": "1.11.2", 4686 + "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.11.2.tgz", 4687 + "integrity": "sha512-HIBu9WacMejg3Dz4X1v6lJjp7ECnwpujvuLub+8I7JJLRwJaGxWMzGYvieOoS9R1n5iRByvTmLtIdPbwjfRgiQ==", 4688 "dev": true, 4689 "license": "Apache-2.0", 4690 "optional": true, ··· 4701 } 4702 }, 4703 "node_modules/bare-os": { 4704 + "version": "3.6.2", 4705 + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", 4706 + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", 4707 "dev": true, 4708 "license": "Apache-2.0", 4709 "engines": { ··· 4721 } 4722 }, 4723 "node_modules/bare-semver": { 4724 + "version": "1.0.2", 4725 + "resolved": "https://registry.npmjs.org/bare-semver/-/bare-semver-1.0.2.tgz", 4726 + "integrity": "sha512-ESVaN2nzWhcI5tf3Zzcq9aqCZ676VWzqw07eEZ0qxAcEOAFYBa0pWq8sK34OQeHLY3JsfKXZS9mDyzyxGjeLzA==", 4727 "dev": true, 4728 "license": "Apache-2.0", 4729 "optional": true 4730 }, 4731 "node_modules/bare-stream": { 4732 + "version": "2.7.0", 4733 + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", 4734 + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", 4735 "dev": true, 4736 "license": "Apache-2.0", 4737 "dependencies": { ··· 4751 } 4752 }, 4753 "node_modules/bare-url": { 4754 + "version": "2.3.1", 4755 + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.1.tgz", 4756 + "integrity": "sha512-v2yl0TnaZTdEnelkKtXZGnotiV6qATBlnNuUMrHl6v9Lmmrh9mw9RYyImPU7/4RahumSwQS1k2oKXcRfXcbjJw==", 4757 "dev": true, 4758 "license": "Apache-2.0", 4759 "dependencies": { 4760 "bare-path": "^3.0.0" 4761 } ··· 4800 ], 4801 "license": "MIT" 4802 }, 4803 + "node_modules/baseline-browser-mapping": { 4804 + "version": "2.8.20", 4805 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.20.tgz", 4806 + "integrity": "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==", 4807 + "dev": true, 4808 + "license": "Apache-2.0", 4809 + "bin": { 4810 + "baseline-browser-mapping": "dist/cli.js" 4811 + } 4812 + }, 4813 "node_modules/bencode": { 4814 "version": "4.0.0", 4815 "resolved": "https://registry.npmjs.org/bencode/-/bencode-4.0.0.tgz", ··· 4871 } 4872 }, 4873 "node_modules/bittorrent-dht": { 4874 + "version": "11.0.11", 4875 + "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-11.0.11.tgz", 4876 + "integrity": "sha512-5rWMoK/2XjcPSx9nfqiL6mHxsXLwohX+81aL4a3qUyGU1992mBqARQE/evZ+a6eWb5DeRjeDU+qFZm11rmPZnQ==", 4877 "dev": true, 4878 "funding": [ 4879 { ··· 4892 "license": "MIT", 4893 "dependencies": { 4894 "bencode": "^4.0.0", 4895 + "debug": "^4.4.3", 4896 "k-bucket": "^5.1.0", 4897 "k-rpc": "^5.1.0", 4898 "last-one-wins": "^1.0.4", ··· 4954 "license": "MIT" 4955 }, 4956 "node_modules/bittorrent-protocol": { 4957 + "version": "4.1.21", 4958 + "resolved": "https://registry.npmjs.org/bittorrent-protocol/-/bittorrent-protocol-4.1.21.tgz", 4959 + "integrity": "sha512-CcuPt6BL7gXa8BF+0GckYcQmr44ARfSPM0rYwMeYgWg+jftekWgy5vuxX6wJDpC5bKFvqNG+74bPBjyM7Swxrw==", 4960 "dev": true, 4961 "funding": [ 4962 { ··· 4975 "license": "MIT", 4976 "dependencies": { 4977 "bencode": "^4.0.0", 4978 + "bitfield": "^4.2.0", 4979 + "debug": "^4.4.3", 4980 "rc4": "^0.1.5", 4981 + "streamx": "^2.22.1", 4982 + "throughput": "^1.0.2", 4983 "uint8-util": "^2.2.5", 4984 "unordered-array-remove": "^1.0.2" 4985 }, ··· 4988 } 4989 }, 4990 "node_modules/bittorrent-tracker": { 4991 + "version": "11.2.2", 4992 + "resolved": "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-11.2.2.tgz", 4993 + "integrity": "sha512-pVjpd6tPtLByrYwtDOo+cVx9zQZ2XUvlaWrlm57+9yvVDKHuNL+TFEAtyfXuIutghG7Bde/uWXGfoVWpPYY+8A==", 4994 "dev": true, 4995 "funding": [ 4996 { ··· 5169 } 5170 }, 5171 "node_modules/browser-resolve/node_modules/resolve": { 5172 + "version": "1.22.11", 5173 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", 5174 + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", 5175 "dev": true, 5176 "license": "MIT", 5177 "dependencies": { 5178 + "is-core-module": "^2.16.1", 5179 "path-parse": "^1.0.7", 5180 "supports-preserve-symlinks-flag": "^1.0.0" 5181 }, ··· 5245 } 5246 }, 5247 "node_modules/browserify-sign": { 5248 + "version": "4.2.5", 5249 + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz", 5250 + "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==", 5251 "dev": true, 5252 "license": "ISC", 5253 "dependencies": { 5254 + "bn.js": "^5.2.2", 5255 + "browserify-rsa": "^4.1.1", 5256 "create-hash": "^1.2.0", 5257 "create-hmac": "^1.1.7", 5258 + "elliptic": "^6.6.1", 5259 "inherits": "^2.0.4", 5260 + "parse-asn1": "^5.1.9", 5261 "readable-stream": "^2.3.8", 5262 "safe-buffer": "^5.2.1" 5263 }, 5264 "engines": { 5265 + "node": ">= 0.10" 5266 } 5267 }, 5268 "node_modules/browserify-sign/node_modules/isarray": { ··· 5323 } 5324 }, 5325 "node_modules/browserslist": { 5326 + "version": "4.27.0", 5327 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", 5328 + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", 5329 "dev": true, 5330 "funding": [ 5331 { ··· 5343 ], 5344 "license": "MIT", 5345 "dependencies": { 5346 + "baseline-browser-mapping": "^2.8.19", 5347 + "caniuse-lite": "^1.0.30001751", 5348 + "electron-to-chromium": "^1.5.238", 5349 + "node-releases": "^2.0.26", 5350 + "update-browserslist-db": "^1.1.4" 5351 }, 5352 "bin": { 5353 "browserslist": "cli.js" ··· 5668 } 5669 }, 5670 "node_modules/caniuse-lite": { 5671 + "version": "1.0.30001751", 5672 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", 5673 + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", 5674 "dev": true, 5675 "funding": [ 5676 { ··· 5689 "license": "CC-BY-4.0" 5690 }, 5691 "node_modules/canvas": { 5692 + "version": "3.2.0", 5693 + "resolved": "https://registry.npmjs.org/canvas/-/canvas-3.2.0.tgz", 5694 + "integrity": "sha512-jk0GxrLtUEmW/TmFsk2WghvgHe8B0pxGilqCL21y8lHkPUGa6FTsnCNtHPOzT8O3y+N+m3espawV80bbBlgfTA==", 5695 "dev": true, 5696 "hasInstallScript": true, 5697 "license": "MIT", ··· 5845 } 5846 }, 5847 "node_modules/ci-info": { 5848 + "version": "4.3.1", 5849 + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", 5850 + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", 5851 "dev": true, 5852 "funding": [ 5853 { ··· 5861 } 5862 }, 5863 "node_modules/cipher-base": { 5864 + "version": "1.0.7", 5865 + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", 5866 + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", 5867 "dev": true, 5868 "license": "MIT", 5869 "dependencies": { 5870 "inherits": "^2.0.4", 5871 + "safe-buffer": "^5.2.1", 5872 + "to-buffer": "^1.2.2" 5873 }, 5874 "engines": { 5875 "node": ">= 0.10" ··· 5989 } 5990 }, 5991 "node_modules/collect-v8-coverage": { 5992 + "version": "1.0.3", 5993 + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", 5994 + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", 5995 "dev": true, 5996 "license": "MIT" 5997 }, ··· 6294 } 6295 }, 6296 "node_modules/css-select": { 6297 + "version": "5.2.2", 6298 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", 6299 + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", 6300 "dev": true, 6301 "license": "BSD-2-Clause", 6302 "dependencies": { ··· 6311 } 6312 }, 6313 "node_modules/css-what": { 6314 + "version": "6.2.2", 6315 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", 6316 + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", 6317 "dev": true, 6318 "license": "BSD-2-Clause", 6319 "engines": { ··· 6331 "license": "MIT" 6332 }, 6333 "node_modules/cssstyle": { 6334 + "version": "4.6.0", 6335 + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", 6336 + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", 6337 "dev": true, 6338 "license": "MIT", 6339 "dependencies": { ··· 6423 } 6424 }, 6425 "node_modules/debug": { 6426 + "version": "4.4.3", 6427 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 6428 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 6429 "license": "MIT", 6430 "dependencies": { 6431 "ms": "^2.1.3" ··· 6440 } 6441 }, 6442 "node_modules/decimal.js": { 6443 + "version": "10.6.0", 6444 + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", 6445 + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", 6446 "dev": true, 6447 "license": "MIT" 6448 }, ··· 6477 } 6478 }, 6479 "node_modules/dedent": { 6480 + "version": "1.7.0", 6481 + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", 6482 + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", 6483 "dev": true, 6484 "license": "MIT", 6485 "peerDependencies": { ··· 6764 } 6765 }, 6766 "node_modules/detect-libc": { 6767 + "version": "2.1.2", 6768 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 6769 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 6770 "dev": true, 6771 "license": "Apache-2.0", 6772 "engines": { ··· 6798 } 6799 }, 6800 "node_modules/dexie": { 6801 + "version": "4.2.1", 6802 + "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.2.1.tgz", 6803 + "integrity": "sha512-Ckej0NS6jxQ4Po3OrSQBFddayRhTCic2DoCAG5zacOfOVB9P2Q5Xc5uL/nVa7ZVs+HdMnvUPzLFCB/JwpB6Csg==", 6804 "license": "Apache-2.0" 6805 }, 6806 "node_modules/diffie-hellman": { ··· 6964 "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", 6965 "license": "MIT" 6966 }, 6967 "node_modules/electron-to-chromium": { 6968 + "version": "1.5.240", 6969 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.240.tgz", 6970 + "integrity": "sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==", 6971 "dev": true, 6972 "license": "ISC" 6973 }, ··· 7075 "license": "MIT" 7076 }, 7077 "node_modules/error-ex": { 7078 + "version": "1.3.4", 7079 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", 7080 + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", 7081 "dev": true, 7082 "license": "MIT", 7083 "dependencies": { ··· 7280 } 7281 }, 7282 "node_modules/esbuild": { 7283 + "version": "0.25.11", 7284 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", 7285 + "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", 7286 "hasInstallScript": true, 7287 "license": "MIT", 7288 "bin": { ··· 7292 "node": ">=18" 7293 }, 7294 "optionalDependencies": { 7295 + "@esbuild/aix-ppc64": "0.25.11", 7296 + "@esbuild/android-arm": "0.25.11", 7297 + "@esbuild/android-arm64": "0.25.11", 7298 + "@esbuild/android-x64": "0.25.11", 7299 + "@esbuild/darwin-arm64": "0.25.11", 7300 + "@esbuild/darwin-x64": "0.25.11", 7301 + "@esbuild/freebsd-arm64": "0.25.11", 7302 + "@esbuild/freebsd-x64": "0.25.11", 7303 + "@esbuild/linux-arm": "0.25.11", 7304 + "@esbuild/linux-arm64": "0.25.11", 7305 + "@esbuild/linux-ia32": "0.25.11", 7306 + "@esbuild/linux-loong64": "0.25.11", 7307 + "@esbuild/linux-mips64el": "0.25.11", 7308 + "@esbuild/linux-ppc64": "0.25.11", 7309 + "@esbuild/linux-riscv64": "0.25.11", 7310 + "@esbuild/linux-s390x": "0.25.11", 7311 + "@esbuild/linux-x64": "0.25.11", 7312 + "@esbuild/netbsd-arm64": "0.25.11", 7313 + "@esbuild/netbsd-x64": "0.25.11", 7314 + "@esbuild/openbsd-arm64": "0.25.11", 7315 + "@esbuild/openbsd-x64": "0.25.11", 7316 + "@esbuild/openharmony-arm64": "0.25.11", 7317 + "@esbuild/sunos-x64": "0.25.11", 7318 + "@esbuild/win32-arm64": "0.25.11", 7319 + "@esbuild/win32-ia32": "0.25.11", 7320 + "@esbuild/win32-x64": "0.25.11" 7321 } 7322 }, 7323 "node_modules/escalade": { ··· 7350 } 7351 }, 7352 "node_modules/eslint": { 7353 + "version": "9.38.0", 7354 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", 7355 + "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", 7356 "dev": true, 7357 "license": "MIT", 7358 "dependencies": { 7359 + "@eslint-community/eslint-utils": "^4.8.0", 7360 "@eslint-community/regexpp": "^4.12.1", 7361 + "@eslint/config-array": "^0.21.1", 7362 + "@eslint/config-helpers": "^0.4.1", 7363 + "@eslint/core": "^0.16.0", 7364 "@eslint/eslintrc": "^3.3.1", 7365 + "@eslint/js": "9.38.0", 7366 + "@eslint/plugin-kit": "^0.4.0", 7367 "@humanfs/node": "^0.16.6", 7368 "@humanwhocodes/module-importer": "^1.0.1", 7369 "@humanwhocodes/retry": "^0.4.2", 7370 "@types/estree": "^1.0.6", 7371 "ajv": "^6.12.4", 7372 "chalk": "^4.0.0", 7373 "cross-spawn": "^7.0.6", ··· 7410 } 7411 }, 7412 "node_modules/eslint-config-prettier": { 7413 + "version": "10.1.8", 7414 + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", 7415 + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", 7416 "dev": true, 7417 "license": "MIT", 7418 "bin": { ··· 7426 } 7427 }, 7428 "node_modules/eslint-plugin-prettier": { 7429 + "version": "5.5.4", 7430 + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", 7431 + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", 7432 "dev": true, 7433 "license": "MIT", 7434 "dependencies": { ··· 7567 "url": "https://opencollective.com/eslint" 7568 } 7569 }, 7570 + "node_modules/eslint/node_modules/@eslint/js": { 7571 + "version": "9.38.0", 7572 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", 7573 + "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", 7574 + "dev": true, 7575 + "license": "MIT", 7576 + "engines": { 7577 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7578 + }, 7579 + "funding": { 7580 + "url": "https://eslint.org/donate" 7581 + } 7582 + }, 7583 + "node_modules/eslint/node_modules/@eslint/plugin-kit": { 7584 + "version": "0.4.0", 7585 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", 7586 + "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", 7587 + "dev": true, 7588 + "license": "Apache-2.0", 7589 + "dependencies": { 7590 + "@eslint/core": "^0.16.0", 7591 + "levn": "^0.4.1" 7592 + }, 7593 + "engines": { 7594 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7595 + } 7596 + }, 7597 "node_modules/eslint/node_modules/brace-expansion": { 7598 "version": "1.1.12", 7599 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", ··· 7805 } 7806 }, 7807 "node_modules/expect": { 7808 + "version": "30.2.0", 7809 + "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", 7810 + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", 7811 "dev": true, 7812 "license": "MIT", 7813 "dependencies": { 7814 + "@jest/expect-utils": "30.2.0", 7815 + "@jest/get-type": "30.1.0", 7816 + "jest-matcher-utils": "30.2.0", 7817 + "jest-message-util": "30.2.0", 7818 + "jest-mock": "30.2.0", 7819 + "jest-util": "30.2.0" 7820 }, 7821 "engines": { 7822 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 8015 "license": "MIT", 8016 "optional": true 8017 }, 8018 "node_modules/filename-reserved-regex": { 8019 "version": "3.0.0", 8020 "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", ··· 8177 } 8178 }, 8179 "node_modules/fs-chunk-store": { 8180 + "version": "5.0.0", 8181 + "resolved": "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-5.0.0.tgz", 8182 + "integrity": "sha512-tKlT0joU9KmsLn0dTbVYVUa7VNqYQhl0X2qPPsN9lPEc3guXOmQJWY5/7kpo34Sk273qyWT5mqEhROCQPF+JKw==", 8183 "dev": true, 8184 "funding": [ 8185 { ··· 8200 "filename-reserved-regex": "^3.0.0", 8201 "queue-microtask": "^1.2.2", 8202 "random-access-file": "^4.0.0", 8203 "run-parallel": "^1.1.2", 8204 + "thunky": "^1.0.1", 8205 + "uint8-util": "^2.2.5" 8206 }, 8207 "engines": { 8208 "node": ">=12.20.0" ··· 8252 "optional": true 8253 }, 8254 "node_modules/fs-native-extensions": { 8255 + "version": "1.4.4", 8256 + "resolved": "https://registry.npmjs.org/fs-native-extensions/-/fs-native-extensions-1.4.4.tgz", 8257 + "integrity": "sha512-iLo3r2ei97thJNoj3DgSdzUF2hZ2yekZpXF98LlHc2eZGPOwiVblyEa6iS68zLu9ayXvlE8/c3CMaagNbHJB1Q==", 8258 "dev": true, 8259 "license": "Apache-2.0", 8260 "optional": true, ··· 8402 "node": ">=8" 8403 } 8404 }, 8405 + "node_modules/generator-function": { 8406 + "version": "2.0.1", 8407 + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", 8408 + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", 8409 + "dev": true, 8410 + "license": "MIT", 8411 + "engines": { 8412 + "node": ">= 0.4" 8413 + } 8414 + }, 8415 "node_modules/gensync": { 8416 "version": "1.0.0-beta.2", 8417 "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", ··· 8530 } 8531 }, 8532 "node_modules/get-tsconfig": { 8533 + "version": "4.13.0", 8534 + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", 8535 + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", 8536 "license": "MIT", 8537 "dependencies": { 8538 "resolve-pkg-maps": "^1.0.0" ··· 8547 "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", 8548 "dev": true, 8549 "license": "MIT" 8550 + }, 8551 + "node_modules/github-slugger": { 8552 + "version": "2.0.0", 8553 + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", 8554 + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", 8555 + "dev": true, 8556 + "license": "ISC" 8557 }, 8558 "node_modules/glob": { 8559 "version": "10.4.5", ··· 8597 "license": "BSD-2-Clause" 8598 }, 8599 "node_modules/globals": { 8600 + "version": "16.4.0", 8601 + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", 8602 + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", 8603 "dev": true, 8604 "license": "MIT", 8605 "engines": { ··· 8652 "dev": true, 8653 "license": "MIT" 8654 }, 8655 + "node_modules/handlebars": { 8656 + "version": "4.7.8", 8657 + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", 8658 + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", 8659 + "dev": true, 8660 + "license": "MIT", 8661 + "dependencies": { 8662 + "minimist": "^1.2.5", 8663 + "neo-async": "^2.6.2", 8664 + "source-map": "^0.6.1", 8665 + "wordwrap": "^1.0.0" 8666 + }, 8667 + "bin": { 8668 + "handlebars": "bin/handlebars" 8669 + }, 8670 + "engines": { 8671 + "node": ">=0.4.7" 8672 + }, 8673 + "optionalDependencies": { 8674 + "uglify-js": "^3.1.4" 8675 + } 8676 + }, 8677 "node_modules/harmony-reflect": { 8678 "version": "1.6.2", 8679 "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", ··· 9088 } 9089 }, 9090 "node_modules/indexeddbshim": { 9091 + "version": "16.1.0", 9092 + "resolved": "https://registry.npmjs.org/indexeddbshim/-/indexeddbshim-16.1.0.tgz", 9093 + "integrity": "sha512-cilsC67db5kWeqK+GDPTQBZFf+ZxiAlPx+vJoOJwqoWPqGE5A4noSSD1qH8sGfysAI6mqGxsmkLfkC6T9QbY1w==", 9094 "dev": true, 9095 "license": "(MIT OR Apache-2.0)", 9096 "dependencies": { 9097 + "canvas": "^3.2.0", 9098 "eventtargeter": "0.9.0", 9099 "sync-promise-expanded": "^1.0.0", 9100 + "typeson": "9.0.4", 9101 + "typeson-registry": "12.0.0", 9102 "websql-configurable": "^3.0.3" 9103 }, 9104 "engines": { ··· 9161 "license": "MIT" 9162 }, 9163 "node_modules/ip-address": { 9164 + "version": "10.0.1", 9165 + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", 9166 + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", 9167 "dev": true, 9168 "license": "MIT", 9169 "engines": { 9170 "node": ">= 12" 9171 } ··· 9438 } 9439 }, 9440 "node_modules/is-generator-function": { 9441 + "version": "1.1.2", 9442 + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", 9443 + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", 9444 "dev": true, 9445 "license": "MIT", 9446 "dependencies": { 9447 + "call-bound": "^1.0.4", 9448 + "generator-function": "^2.0.0", 9449 + "get-proto": "^1.0.1", 9450 "has-tostringtag": "^1.0.2", 9451 "safe-regex-test": "^1.1.0" 9452 }, ··· 9780 } 9781 }, 9782 "node_modules/istanbul-lib-instrument/node_modules/semver": { 9783 + "version": "7.7.3", 9784 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 9785 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 9786 "dev": true, 9787 "license": "ISC", 9788 "bin": { ··· 9823 } 9824 }, 9825 "node_modules/istanbul-reports": { 9826 + "version": "3.2.0", 9827 + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", 9828 + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", 9829 "dev": true, 9830 "license": "BSD-3-Clause", 9831 "dependencies": { ··· 9870 "@pkgjs/parseargs": "^0.11.0" 9871 } 9872 }, 9873 "node_modules/jest": { 9874 + "version": "30.2.0", 9875 + "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", 9876 + "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", 9877 "dev": true, 9878 "license": "MIT", 9879 "dependencies": { 9880 + "@jest/core": "30.2.0", 9881 + "@jest/types": "30.2.0", 9882 "import-local": "^3.2.0", 9883 + "jest-cli": "30.2.0" 9884 }, 9885 "bin": { 9886 "jest": "bin/jest.js" ··· 9898 } 9899 }, 9900 "node_modules/jest-changed-files": { 9901 + "version": "30.2.0", 9902 + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", 9903 + "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", 9904 "dev": true, 9905 "license": "MIT", 9906 "dependencies": { 9907 "execa": "^5.1.1", 9908 + "jest-util": "30.2.0", 9909 "p-limit": "^3.1.0" 9910 }, 9911 "engines": { ··· 9913 } 9914 }, 9915 "node_modules/jest-circus": { 9916 + "version": "30.2.0", 9917 + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", 9918 + "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", 9919 "dev": true, 9920 "license": "MIT", 9921 "dependencies": { 9922 + "@jest/environment": "30.2.0", 9923 + "@jest/expect": "30.2.0", 9924 + "@jest/test-result": "30.2.0", 9925 + "@jest/types": "30.2.0", 9926 "@types/node": "*", 9927 "chalk": "^4.1.2", 9928 "co": "^4.6.0", 9929 "dedent": "^1.6.0", 9930 "is-generator-fn": "^2.1.0", 9931 + "jest-each": "30.2.0", 9932 + "jest-matcher-utils": "30.2.0", 9933 + "jest-message-util": "30.2.0", 9934 + "jest-runtime": "30.2.0", 9935 + "jest-snapshot": "30.2.0", 9936 + "jest-util": "30.2.0", 9937 "p-limit": "^3.1.0", 9938 + "pretty-format": "30.2.0", 9939 "pure-rand": "^7.0.0", 9940 "slash": "^3.0.0", 9941 "stack-utils": "^2.0.6" ··· 9958 } 9959 }, 9960 "node_modules/jest-circus/node_modules/pretty-format": { 9961 + "version": "30.2.0", 9962 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 9963 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 9964 "dev": true, 9965 "license": "MIT", 9966 "dependencies": { 9967 + "@jest/schemas": "30.0.5", 9968 "ansi-styles": "^5.2.0", 9969 "react-is": "^18.3.1" 9970 }, ··· 9980 "license": "MIT" 9981 }, 9982 "node_modules/jest-cli": { 9983 + "version": "30.2.0", 9984 + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", 9985 + "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", 9986 "dev": true, 9987 "license": "MIT", 9988 "dependencies": { 9989 + "@jest/core": "30.2.0", 9990 + "@jest/test-result": "30.2.0", 9991 + "@jest/types": "30.2.0", 9992 "chalk": "^4.1.2", 9993 "exit-x": "^0.2.2", 9994 "import-local": "^3.2.0", 9995 + "jest-config": "30.2.0", 9996 + "jest-util": "30.2.0", 9997 + "jest-validate": "30.2.0", 9998 "yargs": "^17.7.2" 9999 }, 10000 "bin": { ··· 10013 } 10014 }, 10015 "node_modules/jest-config": { 10016 + "version": "30.2.0", 10017 + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", 10018 + "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", 10019 "dev": true, 10020 "license": "MIT", 10021 "dependencies": { 10022 "@babel/core": "^7.27.4", 10023 + "@jest/get-type": "30.1.0", 10024 "@jest/pattern": "30.0.1", 10025 + "@jest/test-sequencer": "30.2.0", 10026 + "@jest/types": "30.2.0", 10027 + "babel-jest": "30.2.0", 10028 "chalk": "^4.1.2", 10029 "ci-info": "^4.2.0", 10030 "deepmerge": "^4.3.1", 10031 "glob": "^10.3.10", 10032 "graceful-fs": "^4.2.11", 10033 + "jest-circus": "30.2.0", 10034 + "jest-docblock": "30.2.0", 10035 + "jest-environment-node": "30.2.0", 10036 "jest-regex-util": "30.0.1", 10037 + "jest-resolve": "30.2.0", 10038 + "jest-runner": "30.2.0", 10039 + "jest-util": "30.2.0", 10040 + "jest-validate": "30.2.0", 10041 "micromatch": "^4.0.8", 10042 "parse-json": "^5.2.0", 10043 + "pretty-format": "30.2.0", 10044 "slash": "^3.0.0", 10045 "strip-json-comments": "^3.1.1" 10046 }, ··· 10078 } 10079 }, 10080 "node_modules/jest-config/node_modules/pretty-format": { 10081 + "version": "30.2.0", 10082 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10083 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10084 "dev": true, 10085 "license": "MIT", 10086 "dependencies": { 10087 + "@jest/schemas": "30.0.5", 10088 "ansi-styles": "^5.2.0", 10089 "react-is": "^18.3.1" 10090 }, ··· 10100 "license": "MIT" 10101 }, 10102 "node_modules/jest-diff": { 10103 + "version": "30.2.0", 10104 + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", 10105 + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", 10106 "dev": true, 10107 "license": "MIT", 10108 "dependencies": { 10109 "@jest/diff-sequences": "30.0.1", 10110 + "@jest/get-type": "30.1.0", 10111 "chalk": "^4.1.2", 10112 + "pretty-format": "30.2.0" 10113 }, 10114 "engines": { 10115 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10129 } 10130 }, 10131 "node_modules/jest-diff/node_modules/pretty-format": { 10132 + "version": "30.2.0", 10133 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10134 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10135 "dev": true, 10136 "license": "MIT", 10137 "dependencies": { 10138 + "@jest/schemas": "30.0.5", 10139 "ansi-styles": "^5.2.0", 10140 "react-is": "^18.3.1" 10141 }, ··· 10151 "license": "MIT" 10152 }, 10153 "node_modules/jest-docblock": { 10154 + "version": "30.2.0", 10155 + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", 10156 + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", 10157 "dev": true, 10158 "license": "MIT", 10159 "dependencies": { ··· 10164 } 10165 }, 10166 "node_modules/jest-each": { 10167 + "version": "30.2.0", 10168 + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", 10169 + "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", 10170 "dev": true, 10171 "license": "MIT", 10172 "dependencies": { 10173 + "@jest/get-type": "30.1.0", 10174 + "@jest/types": "30.2.0", 10175 "chalk": "^4.1.2", 10176 + "jest-util": "30.2.0", 10177 + "pretty-format": "30.2.0" 10178 }, 10179 "engines": { 10180 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10194 } 10195 }, 10196 "node_modules/jest-each/node_modules/pretty-format": { 10197 + "version": "30.2.0", 10198 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10199 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10200 "dev": true, 10201 "license": "MIT", 10202 "dependencies": { 10203 + "@jest/schemas": "30.0.5", 10204 "ansi-styles": "^5.2.0", 10205 "react-is": "^18.3.1" 10206 }, ··· 10216 "license": "MIT" 10217 }, 10218 "node_modules/jest-environment-jsdom": { 10219 + "version": "30.2.0", 10220 + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.2.0.tgz", 10221 + "integrity": "sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==", 10222 "dev": true, 10223 "license": "MIT", 10224 "dependencies": { 10225 + "@jest/environment": "30.2.0", 10226 + "@jest/environment-jsdom-abstract": "30.2.0", 10227 "@types/jsdom": "^21.1.7", 10228 "@types/node": "*", 10229 "jsdom": "^26.1.0" ··· 10241 } 10242 }, 10243 "node_modules/jest-environment-node": { 10244 + "version": "30.2.0", 10245 + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", 10246 + "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", 10247 "dev": true, 10248 "license": "MIT", 10249 "dependencies": { 10250 + "@jest/environment": "30.2.0", 10251 + "@jest/fake-timers": "30.2.0", 10252 + "@jest/types": "30.2.0", 10253 "@types/node": "*", 10254 + "jest-mock": "30.2.0", 10255 + "jest-util": "30.2.0", 10256 + "jest-validate": "30.2.0" 10257 }, 10258 "engines": { 10259 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10273 } 10274 }, 10275 "node_modules/jest-haste-map": { 10276 + "version": "30.2.0", 10277 + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", 10278 + "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", 10279 "dev": true, 10280 "license": "MIT", 10281 "dependencies": { 10282 + "@jest/types": "30.2.0", 10283 "@types/node": "*", 10284 "anymatch": "^3.1.3", 10285 "fb-watchman": "^2.0.2", 10286 "graceful-fs": "^4.2.11", 10287 "jest-regex-util": "30.0.1", 10288 + "jest-util": "30.2.0", 10289 + "jest-worker": "30.2.0", 10290 "micromatch": "^4.0.8", 10291 "walker": "^1.0.8" 10292 }, ··· 10298 } 10299 }, 10300 "node_modules/jest-leak-detector": { 10301 + "version": "30.2.0", 10302 + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", 10303 + "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", 10304 "dev": true, 10305 "license": "MIT", 10306 "dependencies": { 10307 + "@jest/get-type": "30.1.0", 10308 + "pretty-format": "30.2.0" 10309 }, 10310 "engines": { 10311 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10325 } 10326 }, 10327 "node_modules/jest-leak-detector/node_modules/pretty-format": { 10328 + "version": "30.2.0", 10329 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10330 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10331 "dev": true, 10332 "license": "MIT", 10333 "dependencies": { 10334 + "@jest/schemas": "30.0.5", 10335 "ansi-styles": "^5.2.0", 10336 "react-is": "^18.3.1" 10337 }, ··· 10347 "license": "MIT" 10348 }, 10349 "node_modules/jest-matcher-utils": { 10350 + "version": "30.2.0", 10351 + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", 10352 + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", 10353 "dev": true, 10354 "license": "MIT", 10355 "dependencies": { 10356 + "@jest/get-type": "30.1.0", 10357 "chalk": "^4.1.2", 10358 + "jest-diff": "30.2.0", 10359 + "pretty-format": "30.2.0" 10360 }, 10361 "engines": { 10362 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10376 } 10377 }, 10378 "node_modules/jest-matcher-utils/node_modules/pretty-format": { 10379 + "version": "30.2.0", 10380 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10381 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10382 "dev": true, 10383 "license": "MIT", 10384 "dependencies": { 10385 + "@jest/schemas": "30.0.5", 10386 "ansi-styles": "^5.2.0", 10387 "react-is": "^18.3.1" 10388 }, ··· 10398 "license": "MIT" 10399 }, 10400 "node_modules/jest-message-util": { 10401 + "version": "30.2.0", 10402 + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", 10403 + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", 10404 "dev": true, 10405 "license": "MIT", 10406 "dependencies": { 10407 "@babel/code-frame": "^7.27.1", 10408 + "@jest/types": "30.2.0", 10409 "@types/stack-utils": "^2.0.3", 10410 "chalk": "^4.1.2", 10411 "graceful-fs": "^4.2.11", 10412 "micromatch": "^4.0.8", 10413 + "pretty-format": "30.2.0", 10414 "slash": "^3.0.0", 10415 "stack-utils": "^2.0.6" 10416 }, ··· 10432 } 10433 }, 10434 "node_modules/jest-message-util/node_modules/pretty-format": { 10435 + "version": "30.2.0", 10436 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10437 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10438 "dev": true, 10439 "license": "MIT", 10440 "dependencies": { 10441 + "@jest/schemas": "30.0.5", 10442 "ansi-styles": "^5.2.0", 10443 "react-is": "^18.3.1" 10444 }, ··· 10454 "license": "MIT" 10455 }, 10456 "node_modules/jest-mock": { 10457 + "version": "30.2.0", 10458 + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", 10459 + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", 10460 "dev": true, 10461 "license": "MIT", 10462 "dependencies": { 10463 + "@jest/types": "30.2.0", 10464 "@types/node": "*", 10465 + "jest-util": "30.2.0" 10466 }, 10467 "engines": { 10468 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10497 } 10498 }, 10499 "node_modules/jest-resolve": { 10500 + "version": "30.2.0", 10501 + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", 10502 + "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", 10503 "dev": true, 10504 "license": "MIT", 10505 "dependencies": { 10506 "chalk": "^4.1.2", 10507 "graceful-fs": "^4.2.11", 10508 + "jest-haste-map": "30.2.0", 10509 "jest-pnp-resolver": "^1.2.3", 10510 + "jest-util": "30.2.0", 10511 + "jest-validate": "30.2.0", 10512 "slash": "^3.0.0", 10513 "unrs-resolver": "^1.7.11" 10514 }, ··· 10517 } 10518 }, 10519 "node_modules/jest-resolve-dependencies": { 10520 + "version": "30.2.0", 10521 + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", 10522 + "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", 10523 "dev": true, 10524 "license": "MIT", 10525 "dependencies": { 10526 "jest-regex-util": "30.0.1", 10527 + "jest-snapshot": "30.2.0" 10528 }, 10529 "engines": { 10530 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" 10531 } 10532 }, 10533 "node_modules/jest-runner": { 10534 + "version": "30.2.0", 10535 + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", 10536 + "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", 10537 "dev": true, 10538 "license": "MIT", 10539 "dependencies": { 10540 + "@jest/console": "30.2.0", 10541 + "@jest/environment": "30.2.0", 10542 + "@jest/test-result": "30.2.0", 10543 + "@jest/transform": "30.2.0", 10544 + "@jest/types": "30.2.0", 10545 "@types/node": "*", 10546 "chalk": "^4.1.2", 10547 "emittery": "^0.13.1", 10548 "exit-x": "^0.2.2", 10549 "graceful-fs": "^4.2.11", 10550 + "jest-docblock": "30.2.0", 10551 + "jest-environment-node": "30.2.0", 10552 + "jest-haste-map": "30.2.0", 10553 + "jest-leak-detector": "30.2.0", 10554 + "jest-message-util": "30.2.0", 10555 + "jest-resolve": "30.2.0", 10556 + "jest-runtime": "30.2.0", 10557 + "jest-util": "30.2.0", 10558 + "jest-watcher": "30.2.0", 10559 + "jest-worker": "30.2.0", 10560 "p-limit": "^3.1.0", 10561 "source-map-support": "0.5.13" 10562 }, ··· 10565 } 10566 }, 10567 "node_modules/jest-runtime": { 10568 + "version": "30.2.0", 10569 + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", 10570 + "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", 10571 "dev": true, 10572 "license": "MIT", 10573 "dependencies": { 10574 + "@jest/environment": "30.2.0", 10575 + "@jest/fake-timers": "30.2.0", 10576 + "@jest/globals": "30.2.0", 10577 "@jest/source-map": "30.0.1", 10578 + "@jest/test-result": "30.2.0", 10579 + "@jest/transform": "30.2.0", 10580 + "@jest/types": "30.2.0", 10581 "@types/node": "*", 10582 "chalk": "^4.1.2", 10583 "cjs-module-lexer": "^2.1.0", 10584 "collect-v8-coverage": "^1.0.2", 10585 "glob": "^10.3.10", 10586 "graceful-fs": "^4.2.11", 10587 + "jest-haste-map": "30.2.0", 10588 + "jest-message-util": "30.2.0", 10589 + "jest-mock": "30.2.0", 10590 "jest-regex-util": "30.0.1", 10591 + "jest-resolve": "30.2.0", 10592 + "jest-snapshot": "30.2.0", 10593 + "jest-util": "30.2.0", 10594 "slash": "^3.0.0", 10595 "strip-bom": "^4.0.0" 10596 }, ··· 10599 } 10600 }, 10601 "node_modules/jest-snapshot": { 10602 + "version": "30.2.0", 10603 + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", 10604 + "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", 10605 "dev": true, 10606 "license": "MIT", 10607 "dependencies": { ··· 10610 "@babel/plugin-syntax-jsx": "^7.27.1", 10611 "@babel/plugin-syntax-typescript": "^7.27.1", 10612 "@babel/types": "^7.27.3", 10613 + "@jest/expect-utils": "30.2.0", 10614 + "@jest/get-type": "30.1.0", 10615 + "@jest/snapshot-utils": "30.2.0", 10616 + "@jest/transform": "30.2.0", 10617 + "@jest/types": "30.2.0", 10618 + "babel-preset-current-node-syntax": "^1.2.0", 10619 "chalk": "^4.1.2", 10620 + "expect": "30.2.0", 10621 "graceful-fs": "^4.2.11", 10622 + "jest-diff": "30.2.0", 10623 + "jest-matcher-utils": "30.2.0", 10624 + "jest-message-util": "30.2.0", 10625 + "jest-util": "30.2.0", 10626 + "pretty-format": "30.2.0", 10627 "semver": "^7.7.2", 10628 "synckit": "^0.11.8" 10629 }, ··· 10645 } 10646 }, 10647 "node_modules/jest-snapshot/node_modules/pretty-format": { 10648 + "version": "30.2.0", 10649 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10650 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10651 "dev": true, 10652 "license": "MIT", 10653 "dependencies": { 10654 + "@jest/schemas": "30.0.5", 10655 "ansi-styles": "^5.2.0", 10656 "react-is": "^18.3.1" 10657 }, ··· 10667 "license": "MIT" 10668 }, 10669 "node_modules/jest-snapshot/node_modules/semver": { 10670 + "version": "7.7.3", 10671 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 10672 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 10673 "dev": true, 10674 "license": "ISC", 10675 "bin": { ··· 10680 } 10681 }, 10682 "node_modules/jest-util": { 10683 + "version": "30.2.0", 10684 + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", 10685 + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", 10686 "dev": true, 10687 "license": "MIT", 10688 "dependencies": { 10689 + "@jest/types": "30.2.0", 10690 "@types/node": "*", 10691 "chalk": "^4.1.2", 10692 "ci-info": "^4.2.0", ··· 10698 } 10699 }, 10700 "node_modules/jest-util/node_modules/picomatch": { 10701 + "version": "4.0.3", 10702 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 10703 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 10704 "dev": true, 10705 "license": "MIT", 10706 "engines": { ··· 10711 } 10712 }, 10713 "node_modules/jest-validate": { 10714 + "version": "30.2.0", 10715 + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", 10716 + "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", 10717 "dev": true, 10718 "license": "MIT", 10719 "dependencies": { 10720 + "@jest/get-type": "30.1.0", 10721 + "@jest/types": "30.2.0", 10722 "camelcase": "^6.3.0", 10723 "chalk": "^4.1.2", 10724 "leven": "^3.1.0", 10725 + "pretty-format": "30.2.0" 10726 }, 10727 "engines": { 10728 "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" ··· 10755 } 10756 }, 10757 "node_modules/jest-validate/node_modules/pretty-format": { 10758 + "version": "30.2.0", 10759 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", 10760 + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", 10761 "dev": true, 10762 "license": "MIT", 10763 "dependencies": { 10764 + "@jest/schemas": "30.0.5", 10765 "ansi-styles": "^5.2.0", 10766 "react-is": "^18.3.1" 10767 }, ··· 10777 "license": "MIT" 10778 }, 10779 "node_modules/jest-watcher": { 10780 + "version": "30.2.0", 10781 + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", 10782 + "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", 10783 "dev": true, 10784 "license": "MIT", 10785 "dependencies": { 10786 + "@jest/test-result": "30.2.0", 10787 + "@jest/types": "30.2.0", 10788 "@types/node": "*", 10789 "ansi-escapes": "^4.3.2", 10790 "chalk": "^4.1.2", 10791 "emittery": "^0.13.1", 10792 + "jest-util": "30.2.0", 10793 "string-length": "^4.0.2" 10794 }, 10795 "engines": { ··· 10797 } 10798 }, 10799 "node_modules/jest-worker": { 10800 + "version": "30.2.0", 10801 + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", 10802 + "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", 10803 "dev": true, 10804 "license": "MIT", 10805 "dependencies": { 10806 "@types/node": "*", 10807 "@ungap/structured-clone": "^1.3.0", 10808 + "jest-util": "30.2.0", 10809 "merge-stream": "^2.0.0", 10810 "supports-color": "^8.1.1" 10811 }, ··· 10844 "license": "MIT" 10845 }, 10846 "node_modules/jose": { 10847 + "version": "6.1.0", 10848 + "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.0.tgz", 10849 + "integrity": "sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==", 10850 "license": "MIT", 10851 "funding": { 10852 "url": "https://github.com/sponsors/panva" ··· 10871 "bin": { 10872 "js-yaml": "bin/js-yaml.js" 10873 } 10874 }, 10875 "node_modules/jsdom": { 10876 "version": "26.1.0", ··· 11193 "url": "https://github.com/sponsors/sindresorhus" 11194 } 11195 }, 11196 "node_modules/lodash.memoize": { 11197 "version": "4.1.2", 11198 "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", ··· 11255 } 11256 }, 11257 "node_modules/lt_donthave": { 11258 + "version": "2.0.6", 11259 + "resolved": "https://registry.npmjs.org/lt_donthave/-/lt_donthave-2.0.6.tgz", 11260 + "integrity": "sha512-ZVcaRbZpNB6ugwa5T9gUN0Jg9XGT9cyVjZJvdbN3V27rOQ170rEs//zaQXEQkTCBhh3i/JnCRF472KWHJu74Yg==", 11261 "dev": true, 11262 "funding": [ 11263 { ··· 11293 } 11294 }, 11295 "node_modules/magic-string": { 11296 + "version": "0.30.21", 11297 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 11298 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 11299 "dev": true, 11300 "license": "MIT", 11301 "dependencies": { 11302 + "@jridgewell/sourcemap-codec": "^1.5.5" 11303 } 11304 }, 11305 "node_modules/magnet-uri": { ··· 11348 } 11349 }, 11350 "node_modules/make-dir/node_modules/semver": { 11351 + "version": "7.7.3", 11352 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 11353 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 11354 "dev": true, 11355 "license": "ISC", 11356 "bin": { ··· 11785 } 11786 }, 11787 "node_modules/mdn-data": { 11788 + "version": "2.23.0", 11789 + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.23.0.tgz", 11790 + "integrity": "sha512-786vq1+4079JSeu2XdcDjrhi/Ry7BWtjDl9WtGPWLiIHb2T66GvIVflZTBoSNZ5JqTtJGYEVMuFA/lbQlMOyDQ==", 11791 "dev": true, 11792 "license": "CC0-1.0" 11793 }, ··· 12858 "license": "MIT" 12859 }, 12860 "node_modules/nanoid": { 12861 + "version": "5.1.6", 12862 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", 12863 + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", 12864 "funding": [ 12865 { 12866 "type": "github", ··· 12889 "license": "MIT" 12890 }, 12891 "node_modules/napi-postinstall": { 12892 + "version": "0.3.4", 12893 + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", 12894 + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", 12895 "dev": true, 12896 "license": "MIT", 12897 "bin": { ··· 12919 "engines": { 12920 "node": ">= 0.6" 12921 } 12922 + }, 12923 + "node_modules/neo-async": { 12924 + "version": "2.6.2", 12925 + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", 12926 + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", 12927 + "dev": true, 12928 + "license": "MIT" 12929 }, 12930 "node_modules/netmask": { 12931 "version": "2.0.2", ··· 12938 } 12939 }, 12940 "node_modules/node-abi": { 12941 + "version": "3.78.0", 12942 + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.78.0.tgz", 12943 + "integrity": "sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==", 12944 "dev": true, 12945 "license": "MIT", 12946 "dependencies": { ··· 12951 } 12952 }, 12953 "node_modules/node-abi/node_modules/semver": { 12954 + "version": "7.7.3", 12955 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 12956 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 12957 "dev": true, 12958 "license": "ISC", 12959 "bin": { ··· 13133 } 13134 }, 13135 "node_modules/node-gyp/node_modules/semver": { 13136 + "version": "7.7.3", 13137 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 13138 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 13139 "dev": true, 13140 "license": "ISC", 13141 "optional": true, ··· 13165 "license": "MIT" 13166 }, 13167 "node_modules/node-releases": { 13168 + "version": "2.0.26", 13169 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", 13170 + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", 13171 "dev": true, 13172 "license": "MIT" 13173 }, ··· 13334 } 13335 }, 13336 "node_modules/nwsapi": { 13337 + "version": "2.2.22", 13338 + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz", 13339 + "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==", 13340 "dev": true, 13341 "license": "MIT" 13342 }, ··· 13631 } 13632 }, 13633 "node_modules/parse-asn1": { 13634 + "version": "5.1.9", 13635 + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", 13636 + "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", 13637 "dev": true, 13638 "license": "ISC", 13639 "dependencies": { 13640 "asn1.js": "^4.10.1", 13641 "browserify-aes": "^1.2.0", 13642 "evp_bytestokey": "^1.0.3", 13643 + "pbkdf2": "^3.1.5", 13644 "safe-buffer": "^5.2.1" 13645 }, 13646 "engines": { ··· 13677 } 13678 }, 13679 "node_modules/parse-torrent": { 13680 + "version": "11.0.19", 13681 + "resolved": "https://registry.npmjs.org/parse-torrent/-/parse-torrent-11.0.19.tgz", 13682 + "integrity": "sha512-T0lEkDdFVQsy0YxHIKjzDHSgt/yl57f3INs5jl7OZqAm77XDF0FgRgrv3LCKgSqsTOrMwYaF0t2761WKdvhgig==", 13683 "dev": true, 13684 "funding": [ 13685 { ··· 13802 "license": "ISC" 13803 }, 13804 "node_modules/path-to-regexp": { 13805 + "version": "8.3.0", 13806 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", 13807 + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", 13808 "license": "MIT", 13809 + "funding": { 13810 + "type": "opencollective", 13811 + "url": "https://opencollective.com/express" 13812 } 13813 }, 13814 "node_modules/pbkdf2": { 13815 + "version": "3.1.5", 13816 + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", 13817 + "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", 13818 "dev": true, 13819 "license": "MIT", 13820 "dependencies": { 13821 + "create-hash": "^1.2.0", 13822 + "create-hmac": "^1.1.7", 13823 + "ripemd160": "^2.0.3", 13824 + "safe-buffer": "^5.2.1", 13825 + "sha.js": "^2.4.12", 13826 + "to-buffer": "^1.2.1" 13827 }, 13828 "engines": { 13829 + "node": ">= 0.10" 13830 } 13831 }, 13832 "node_modules/picocolors": { ··· 13994 } 13995 }, 13996 "node_modules/preact": { 13997 + "version": "10.27.2", 13998 + "resolved": "https://registry.npmjs.org/preact/-/preact-10.27.2.tgz", 13999 + "integrity": "sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==", 14000 "license": "MIT", 14001 "funding": { 14002 "type": "opencollective", ··· 14041 } 14042 }, 14043 "node_modules/prettier": { 14044 + "version": "3.6.2", 14045 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", 14046 + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", 14047 "dev": true, 14048 "license": "MIT", 14049 "bin": { ··· 14070 } 14071 }, 14072 "node_modules/prettier-plugin-organize-imports": { 14073 + "version": "4.3.0", 14074 + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.3.0.tgz", 14075 + "integrity": "sha512-FxFz0qFhyBsGdIsb697f/EkvHzi5SZOhWAjxcx2dLt+Q532bAlhswcXGYB1yzjZ69kW8UoadFBw7TyNwlq96Iw==", 14076 "dev": true, 14077 "license": "MIT", 14078 "peerDependencies": { 14079 "prettier": ">=2.0", 14080 "typescript": ">=2.9", 14081 + "vue-tsc": "^2.1.0 || 3" 14082 }, 14083 "peerDependenciesMeta": { 14084 "vue-tsc": { ··· 14401 } 14402 }, 14403 "node_modules/raw-body": { 14404 + "version": "3.0.1", 14405 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz", 14406 + "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==", 14407 "license": "MIT", 14408 "dependencies": { 14409 "bytes": "3.1.2", 14410 "http-errors": "2.0.0", 14411 + "iconv-lite": "0.7.0", 14412 "unpipe": "1.0.0" 14413 }, 14414 "engines": { 14415 + "node": ">= 0.10" 14416 + } 14417 + }, 14418 + "node_modules/raw-body/node_modules/iconv-lite": { 14419 + "version": "0.7.0", 14420 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", 14421 + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", 14422 + "license": "MIT", 14423 + "dependencies": { 14424 + "safer-buffer": ">= 2.1.2 < 3.0.0" 14425 + }, 14426 + "engines": { 14427 + "node": ">=0.10.0" 14428 + }, 14429 + "funding": { 14430 + "type": "opencollective", 14431 + "url": "https://opencollective.com/express" 14432 } 14433 }, 14434 "node_modules/rc": { ··· 14764 } 14765 }, 14766 "node_modules/ripemd160": { 14767 + "version": "2.0.3", 14768 + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", 14769 + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", 14770 + "dev": true, 14771 + "license": "MIT", 14772 + "dependencies": { 14773 + "hash-base": "^3.1.2", 14774 + "inherits": "^2.0.4" 14775 + }, 14776 + "engines": { 14777 + "node": ">= 0.8" 14778 + } 14779 + }, 14780 + "node_modules/ripemd160/node_modules/hash-base": { 14781 + "version": "3.1.2", 14782 + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", 14783 + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", 14784 + "dev": true, 14785 + "license": "MIT", 14786 + "dependencies": { 14787 + "inherits": "^2.0.4", 14788 + "readable-stream": "^2.3.8", 14789 + "safe-buffer": "^5.2.1", 14790 + "to-buffer": "^1.2.1" 14791 + }, 14792 + "engines": { 14793 + "node": ">= 0.8" 14794 + } 14795 + }, 14796 + "node_modules/ripemd160/node_modules/isarray": { 14797 + "version": "1.0.0", 14798 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 14799 + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", 14800 + "dev": true, 14801 + "license": "MIT" 14802 + }, 14803 + "node_modules/ripemd160/node_modules/readable-stream": { 14804 + "version": "2.3.8", 14805 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", 14806 + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", 14807 "dev": true, 14808 "license": "MIT", 14809 "dependencies": { 14810 + "core-util-is": "~1.0.0", 14811 + "inherits": "~2.0.3", 14812 + "isarray": "~1.0.0", 14813 + "process-nextick-args": "~2.0.0", 14814 + "safe-buffer": "~5.1.1", 14815 + "string_decoder": "~1.1.1", 14816 + "util-deprecate": "~1.0.1" 14817 } 14818 }, 14819 + "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": { 14820 + "version": "5.1.2", 14821 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 14822 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 14823 + "dev": true, 14824 + "license": "MIT" 14825 + }, 14826 + "node_modules/ripemd160/node_modules/string_decoder": { 14827 + "version": "1.1.1", 14828 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 14829 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 14830 + "dev": true, 14831 + "license": "MIT", 14832 + "dependencies": { 14833 + "safe-buffer": "~5.1.0" 14834 + } 14835 + }, 14836 + "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": { 14837 + "version": "5.1.2", 14838 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 14839 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 14840 + "dev": true, 14841 + "license": "MIT" 14842 + }, 14843 "node_modules/rollup": { 14844 + "version": "4.52.5", 14845 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", 14846 + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", 14847 "dev": true, 14848 "license": "MIT", 14849 "dependencies": { ··· 14857 "npm": ">=8.0.0" 14858 }, 14859 "optionalDependencies": { 14860 + "@rollup/rollup-android-arm-eabi": "4.52.5", 14861 + "@rollup/rollup-android-arm64": "4.52.5", 14862 + "@rollup/rollup-darwin-arm64": "4.52.5", 14863 + "@rollup/rollup-darwin-x64": "4.52.5", 14864 + "@rollup/rollup-freebsd-arm64": "4.52.5", 14865 + "@rollup/rollup-freebsd-x64": "4.52.5", 14866 + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", 14867 + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", 14868 + "@rollup/rollup-linux-arm64-gnu": "4.52.5", 14869 + "@rollup/rollup-linux-arm64-musl": "4.52.5", 14870 + "@rollup/rollup-linux-loong64-gnu": "4.52.5", 14871 + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", 14872 + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", 14873 + "@rollup/rollup-linux-riscv64-musl": "4.52.5", 14874 + "@rollup/rollup-linux-s390x-gnu": "4.52.5", 14875 + "@rollup/rollup-linux-x64-gnu": "4.52.5", 14876 + "@rollup/rollup-linux-x64-musl": "4.52.5", 14877 + "@rollup/rollup-openharmony-arm64": "4.52.5", 14878 + "@rollup/rollup-win32-arm64-msvc": "4.52.5", 14879 + "@rollup/rollup-win32-ia32-msvc": "4.52.5", 14880 + "@rollup/rollup-win32-x64-gnu": "4.52.5", 14881 + "@rollup/rollup-win32-x64-msvc": "4.52.5", 14882 "fsevents": "~2.3.2" 14883 } 14884 }, ··· 15193 "license": "ISC" 15194 }, 15195 "node_modules/sha.js": { 15196 + "version": "2.4.12", 15197 + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", 15198 + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", 15199 "dev": true, 15200 "license": "(MIT AND BSD-3-Clause)", 15201 "dependencies": { 15202 + "inherits": "^2.0.4", 15203 + "safe-buffer": "^5.2.1", 15204 + "to-buffer": "^1.2.0" 15205 }, 15206 "bin": { 15207 "sha.js": "bin.js" 15208 + }, 15209 + "engines": { 15210 + "node": ">= 0.10" 15211 + }, 15212 + "funding": { 15213 + "url": "https://github.com/sponsors/ljharb" 15214 } 15215 }, 15216 "node_modules/shebang-command": { ··· 15429 } 15430 }, 15431 "node_modules/socks": { 15432 + "version": "2.8.7", 15433 + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", 15434 + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", 15435 "dev": true, 15436 "license": "MIT", 15437 "dependencies": { 15438 + "ip-address": "^10.0.1", 15439 "smart-buffer": "^4.2.0" 15440 }, 15441 "engines": { ··· 15529 } 15530 }, 15531 "node_modules/sprintf-js": { 15532 + "version": "1.0.3", 15533 + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 15534 + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", 15535 "dev": true, 15536 "license": "BSD-3-Clause" 15537 }, ··· 15678 } 15679 }, 15680 "node_modules/streamx": { 15681 + "version": "2.22.1", 15682 + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", 15683 + "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", 15684 "dev": true, 15685 "license": "MIT", 15686 "dependencies": { ··· 15904 } 15905 }, 15906 "node_modules/strip-ansi": { 15907 + "version": "7.1.2", 15908 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", 15909 + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", 15910 "dev": true, 15911 "license": "MIT", 15912 "dependencies": { ··· 15934 } 15935 }, 15936 "node_modules/strip-ansi/node_modules/ansi-regex": { 15937 + "version": "6.2.2", 15938 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", 15939 + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", 15940 "dev": true, 15941 "license": "MIT", 15942 "engines": { ··· 16036 } 16037 }, 16038 "node_modules/synckit": { 16039 + "version": "0.11.11", 16040 + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", 16041 + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", 16042 "dev": true, 16043 "license": "MIT", 16044 "dependencies": { 16045 + "@pkgr/core": "^0.2.9" 16046 }, 16047 "engines": { 16048 "node": "^14.18.0 || >=16.0.0" ··· 16071 } 16072 }, 16073 "node_modules/tar-fs": { 16074 + "version": "2.1.4", 16075 + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", 16076 + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", 16077 "dev": true, 16078 "license": "MIT", 16079 "dependencies": { ··· 16209 "license": "MIT" 16210 }, 16211 "node_modules/throughput": { 16212 + "version": "1.0.2", 16213 + "resolved": "https://registry.npmjs.org/throughput/-/throughput-1.0.2.tgz", 16214 + "integrity": "sha512-jvK1ZXuhsggjb3qYQjMiU/AVYYiTeqT5thWvYR2yuy2LGM84P5MSSyAinwHahGsdBYKR9m9HncVR/3f3nFKkxg==", 16215 "dev": true, 16216 "license": "MIT" 16217 }, ··· 16258 "license": "Apache 2" 16259 }, 16260 "node_modules/tinyglobby": { 16261 + "version": "0.2.15", 16262 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 16263 + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 16264 "dev": true, 16265 "license": "MIT", 16266 "dependencies": { 16267 + "fdir": "^6.5.0", 16268 + "picomatch": "^4.0.3" 16269 }, 16270 "engines": { 16271 "node": ">=12.0.0" ··· 16275 } 16276 }, 16277 "node_modules/tinyglobby/node_modules/fdir": { 16278 + "version": "6.5.0", 16279 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 16280 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 16281 "dev": true, 16282 "license": "MIT", 16283 + "engines": { 16284 + "node": ">=12.0.0" 16285 + }, 16286 "peerDependencies": { 16287 "picomatch": "^3 || ^4" 16288 }, ··· 16293 } 16294 }, 16295 "node_modules/tinyglobby/node_modules/picomatch": { 16296 + "version": "4.0.3", 16297 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 16298 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 16299 "dev": true, 16300 "license": "MIT", 16301 "engines": { ··· 16332 "dev": true, 16333 "license": "BSD-3-Clause" 16334 }, 16335 + "node_modules/to-buffer": { 16336 + "version": "1.2.2", 16337 + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", 16338 + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", 16339 + "dev": true, 16340 + "license": "MIT", 16341 + "dependencies": { 16342 + "isarray": "^2.0.5", 16343 + "safe-buffer": "^5.2.1", 16344 + "typed-array-buffer": "^1.0.3" 16345 + }, 16346 + "engines": { 16347 + "node": ">= 0.4" 16348 + } 16349 + }, 16350 "node_modules/to-regex-range": { 16351 "version": "5.0.1", 16352 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", ··· 16370 } 16371 }, 16372 "node_modules/torrent-discovery": { 16373 + "version": "11.0.19", 16374 + "resolved": "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-11.0.19.tgz", 16375 + "integrity": "sha512-BLhdj7o0px+u72UuhJmq6CB0LBkZOa1nwgbd5ktyTELJlvcRL8EoxSSmSpzMOIScLGgslh1uLaAy/POhLpagtg==", 16376 "dev": true, 16377 "funding": [ 16378 { ··· 16390 ], 16391 "license": "MIT", 16392 "dependencies": { 16393 + "bittorrent-dht": "^11.0.11", 16394 "bittorrent-lsd": "^2.0.0", 16395 + "bittorrent-tracker": "^11.2.2", 16396 + "debug": "^4.4.3", 16397 "run-parallel": "^1.2.0" 16398 }, 16399 "engines": { ··· 16401 } 16402 }, 16403 "node_modules/torrent-piece": { 16404 + "version": "3.0.2", 16405 + "resolved": "https://registry.npmjs.org/torrent-piece/-/torrent-piece-3.0.2.tgz", 16406 + "integrity": "sha512-K1A5tZ3BolFrUtnBpk9iDg8av1na0OgQ7E0IlA9tj0bcsPhLhzvln+oMtMmtkqAwmUsbNCilRm2ymUdZg0rVbQ==", 16407 "dev": true, 16408 "funding": [ 16409 { ··· 16467 } 16468 }, 16469 "node_modules/ts-jest": { 16470 + "version": "29.4.5", 16471 + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz", 16472 + "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==", 16473 "dev": true, 16474 "license": "MIT", 16475 "dependencies": { 16476 "bs-logger": "^0.2.6", 16477 "fast-json-stable-stringify": "^2.1.0", 16478 + "handlebars": "^4.7.8", 16479 "json5": "^2.2.3", 16480 "lodash.memoize": "^4.1.2", 16481 "make-error": "^1.3.6", 16482 + "semver": "^7.7.3", 16483 "type-fest": "^4.41.0", 16484 "yargs-parser": "^21.1.1" 16485 }, ··· 16520 } 16521 }, 16522 "node_modules/ts-jest/node_modules/semver": { 16523 + "version": "7.7.3", 16524 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 16525 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 16526 "dev": true, 16527 "license": "ISC", 16528 "bin": { ··· 16554 "optional": true 16555 }, 16556 "node_modules/tsx": { 16557 + "version": "4.20.6", 16558 + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.6.tgz", 16559 + "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==", 16560 "license": "MIT", 16561 "dependencies": { 16562 "esbuild": "~0.25.0", ··· 16721 } 16722 }, 16723 "node_modules/typescript": { 16724 + "version": "5.9.3", 16725 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 16726 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 16727 "dev": true, 16728 "license": "Apache-2.0", 16729 "bin": { ··· 16735 } 16736 }, 16737 "node_modules/typescript-eslint": { 16738 + "version": "8.46.2", 16739 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.2.tgz", 16740 + "integrity": "sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==", 16741 "dev": true, 16742 "license": "MIT", 16743 "dependencies": { 16744 + "@typescript-eslint/eslint-plugin": "8.46.2", 16745 + "@typescript-eslint/parser": "8.46.2", 16746 + "@typescript-eslint/typescript-estree": "8.46.2", 16747 + "@typescript-eslint/utils": "8.46.2" 16748 }, 16749 "engines": { 16750 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 16755 }, 16756 "peerDependencies": { 16757 "eslint": "^8.57.0 || ^9.0.0", 16758 + "typescript": ">=4.8.4 <6.0.0" 16759 } 16760 }, 16761 "node_modules/typescript-eslint-language-service": { ··· 16784 } 16785 }, 16786 "node_modules/typeson": { 16787 + "version": "9.0.4", 16788 + "resolved": "https://registry.npmjs.org/typeson/-/typeson-9.0.4.tgz", 16789 + "integrity": "sha512-umRYLe37m4fTu0AlgFaqu1C+N+i3LqAehCzbvNx9w7alyN1wpPyS6FbBEsvWD2FppS2yJ9gk0FkFBkZ/wJE13Q==", 16790 "dev": true, 16791 "license": "MIT", 16792 "engines": { ··· 16794 } 16795 }, 16796 "node_modules/typeson-registry": { 16797 + "version": "12.0.0", 16798 + "resolved": "https://registry.npmjs.org/typeson-registry/-/typeson-registry-12.0.0.tgz", 16799 + "integrity": "sha512-Yt53WwWPCiET6vH11gwkqeyv6g+NbVDCERzeTDklZZYaQi5EnjUcCSZnLEJbJKMRJaSFsqlrVg0NUD4g5aZoXQ==", 16800 "dev": true, 16801 "license": "MIT", 16802 "dependencies": { 16803 "base64-arraybuffer-es6": "^3.1.0", 16804 + "typeson": "^9.0.4", 16805 + "whatwg-url": "^14.2.0" 16806 }, 16807 "engines": { 16808 + "node": "^20.11.0 || >= 22.0.0" 16809 + } 16810 + }, 16811 + "node_modules/uglify-js": { 16812 + "version": "3.19.3", 16813 + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", 16814 + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", 16815 + "dev": true, 16816 + "license": "BSD-2-Clause", 16817 + "optional": true, 16818 + "bin": { 16819 + "uglifyjs": "bin/uglifyjs" 16820 + }, 16821 + "engines": { 16822 + "node": ">=0.8.0" 16823 } 16824 }, 16825 "node_modules/uint8-util": { ··· 16852 } 16853 }, 16854 "node_modules/undici-types": { 16855 + "version": "7.16.0", 16856 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", 16857 + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", 16858 "dev": true, 16859 "license": "MIT" 16860 }, ··· 16894 } 16895 }, 16896 "node_modules/unist-util-is": { 16897 + "version": "6.0.1", 16898 + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", 16899 + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", 16900 "dev": true, 16901 "license": "MIT", 16902 "dependencies": { ··· 16938 } 16939 }, 16940 "node_modules/unist-util-visit-parents": { 16941 + "version": "6.0.2", 16942 + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", 16943 + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", 16944 "dev": true, 16945 "license": "MIT", 16946 "dependencies": { ··· 16977 } 16978 }, 16979 "node_modules/unrs-resolver": { 16980 + "version": "1.11.1", 16981 + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", 16982 + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", 16983 "dev": true, 16984 "hasInstallScript": true, 16985 "license": "MIT", 16986 "dependencies": { 16987 + "napi-postinstall": "^0.3.0" 16988 }, 16989 "funding": { 16990 "url": "https://opencollective.com/unrs-resolver" 16991 }, 16992 "optionalDependencies": { 16993 + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", 16994 + "@unrs/resolver-binding-android-arm64": "1.11.1", 16995 + "@unrs/resolver-binding-darwin-arm64": "1.11.1", 16996 + "@unrs/resolver-binding-darwin-x64": "1.11.1", 16997 + "@unrs/resolver-binding-freebsd-x64": "1.11.1", 16998 + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", 16999 + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", 17000 + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", 17001 + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", 17002 + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", 17003 + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", 17004 + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", 17005 + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", 17006 + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", 17007 + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", 17008 + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", 17009 + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", 17010 + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", 17011 + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" 17012 } 17013 }, 17014 "node_modules/update-browserslist-db": { 17015 + "version": "1.1.4", 17016 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", 17017 + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", 17018 "dev": true, 17019 "funding": [ 17020 { ··· 17213 } 17214 }, 17215 "node_modules/vite": { 17216 + "version": "6.4.1", 17217 + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", 17218 + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", 17219 "dev": true, 17220 "license": "MIT", 17221 "dependencies": { ··· 17380 } 17381 }, 17382 "node_modules/vite-plugin-checker/node_modules/picomatch": { 17383 + "version": "4.0.3", 17384 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 17385 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 17386 "dev": true, 17387 "license": "MIT", 17388 "engines": { ··· 17410 } 17411 }, 17412 "node_modules/vite-prerender-plugin": { 17413 + "version": "0.5.12", 17414 + "resolved": "https://registry.npmjs.org/vite-prerender-plugin/-/vite-prerender-plugin-0.5.12.tgz", 17415 + "integrity": "sha512-EiwhbMn+flg14EysbLTmZSzq8NGTxhytgK3bf4aGRF1evWLGwZiHiUJ1KZDvbxgKbMf2pG6fJWGEa3UZXOnR1g==", 17416 "dev": true, 17417 "license": "MIT", 17418 "dependencies": { ··· 17424 "stack-trace": "^1.0.0-pre2" 17425 }, 17426 "peerDependencies": { 17427 + "vite": "5.x || 6.x || 7.x" 17428 } 17429 }, 17430 "node_modules/vite-prerender-plugin/node_modules/source-map": { 17431 + "version": "0.7.6", 17432 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", 17433 + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", 17434 "dev": true, 17435 "license": "BSD-3-Clause", 17436 "engines": { 17437 + "node": ">= 12" 17438 } 17439 }, 17440 "node_modules/vite/node_modules/fdir": { 17441 + "version": "6.5.0", 17442 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 17443 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 17444 "dev": true, 17445 "license": "MIT", 17446 + "engines": { 17447 + "node": ">=12.0.0" 17448 + }, 17449 "peerDependencies": { 17450 "picomatch": "^3 || ^4" 17451 }, ··· 17456 } 17457 }, 17458 "node_modules/vite/node_modules/picomatch": { 17459 + "version": "4.0.3", 17460 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 17461 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 17462 "dev": true, 17463 "license": "MIT", 17464 "engines": { ··· 17556 } 17557 }, 17558 "node_modules/webtorrent": { 17559 + "version": "2.8.4", 17560 + "resolved": "https://registry.npmjs.org/webtorrent/-/webtorrent-2.8.4.tgz", 17561 + "integrity": "sha512-OTzeMVa6r9GXzjj428HC5gSi6oRKFEqOpR5cwQ8+GtbYgQz6PF6y3tzqnVFf6xWvnKcoZiabpHud3gx01Cbt2A==", 17562 "dev": true, 17563 "funding": [ 17564 { ··· 17582 "addr-to-ip-port": "^2.0.0", 17583 "bitfield": "^4.2.0", 17584 "bittorrent-dht": "^11.0.10", 17585 + "bittorrent-protocol": "^4.1.20", 17586 "cache-chunk-store": "^3.2.2", 17587 "chunk-store-iterator": "^1.0.4", 17588 "cpus": "^1.0.3", ··· 17590 "cross-fetch-ponyfill": "^1.0.3", 17591 "debug": "^4.4.1", 17592 "escape-html": "^1.0.3", 17593 + "fs-chunk-store": "^5.0.0", 17594 "fsa-chunk-store": "^1.3.0", 17595 "immediate-chunk-store": "^2.2.0", 17596 "join-async-iterator": "^1.1.1", ··· 17607 "run-parallel": "^1.2.0", 17608 "run-parallel-limit": "^1.1.0", 17609 "speed-limiter": "^1.0.2", 17610 + "streamx": "2.22.1", 17611 + "throughput": "^1.0.2", 17612 "torrent-discovery": "^11.0.17", 17613 + "torrent-piece": "^3.0.2", 17614 "uint8-util": "^2.2.5", 17615 "unordered-array-remove": "^1.0.2", 17616 "ut_metadata": "^4.0.3", ··· 17744 } 17745 }, 17746 "node_modules/which-runtime": { 17747 + "version": "1.3.2", 17748 + "resolved": "https://registry.npmjs.org/which-runtime/-/which-runtime-1.3.2.tgz", 17749 + "integrity": "sha512-5kwCfWml7+b2NO7KrLMhYihjRx0teKkd3yGp1Xk5Vaf2JGdSh+rgVhEALAD9c/59dP+YwJHXoEO7e8QPy7gOkw==", 17750 "dev": true, 17751 "license": "Apache-2.0", 17752 "optional": true ··· 17930 "node": ">=0.10.0" 17931 } 17932 }, 17933 + "node_modules/wordwrap": { 17934 + "version": "1.0.0", 17935 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 17936 + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", 17937 + "dev": true, 17938 + "license": "MIT" 17939 + }, 17940 "node_modules/wrap-ansi": { 17941 "version": "8.1.0", 17942 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", ··· 18010 } 18011 }, 18012 "node_modules/wrap-ansi/node_modules/ansi-styles": { 18013 + "version": "6.2.3", 18014 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", 18015 + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", 18016 "dev": true, 18017 "license": "MIT", 18018 "engines": { ··· 18043 } 18044 }, 18045 "node_modules/ws": { 18046 + "version": "8.18.3", 18047 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", 18048 + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", 18049 "license": "MIT", 18050 "engines": { 18051 "node": ">=10.0.0" ··· 18209 } 18210 }, 18211 "node_modules/zod": { 18212 + "version": "3.25.76", 18213 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", 18214 + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", 18215 "license": "MIT", 18216 "funding": { 18217 "url": "https://github.com/sponsors/colinhacks" 18218 } 18219 }, 18220 "node_modules/zod-schema-faker": { 18221 + "version": "2.0.0-beta.8", 18222 + "resolved": "https://registry.npmjs.org/zod-schema-faker/-/zod-schema-faker-2.0.0-beta.8.tgz", 18223 + "integrity": "sha512-K39FxJDarc+LeANA3E1uVhyMvqmRFseEzfoZZQ73mqtcbfIKCKwPSc1ljQTn7Zbrb9x+1R8uHaGwIRVBCtSoBA==", 18224 "dev": true, 18225 "license": "MIT", 18226 "dependencies": { 18227 + "@faker-js/faker": "10.0.0", 18228 "randexp": "0.5.3" 18229 } 18230 }, 18231 "node_modules/zod-schema-faker/node_modules/@faker-js/faker": { 18232 + "version": "10.0.0", 18233 + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-10.0.0.tgz", 18234 + "integrity": "sha512-UollFEUkVXutsaP+Vndjxar40Gs5JL2HeLcl8xO1QAjJgOdhc3OmBFWyEylS+RddWaaBiAzH+5/17PLQJwDiLw==", 18235 "dev": true, 18236 "funding": [ 18237 { ··· 18241 ], 18242 "license": "MIT", 18243 "engines": { 18244 + "node": "^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0", 18245 + "npm": ">=10" 18246 } 18247 }, 18248 "node_modules/zwitch": {
+1
src/client/components/debug-nuke.tsx
··· 11 12 try { 13 window.indexedDB.deleteDatabase('skypod') 14 window.location.reload() 15 } catch (error) { 16 console.error('Failed to nuke database:', error)
··· 11 12 try { 13 window.indexedDB.deleteDatabase('skypod') 14 + window.indexedDB.deleteDatabase('realm-identity') 15 window.location.reload() 16 } catch (error) { 17 console.error('Failed to nuke database:', error)
+133
src/client/components/feed-import-nytimes.tsx
···
··· 1 + import {useSignal} from '@preact/signals' 2 + import {useCallback} from 'preact/hooks' 3 + 4 + import {useSkypod} from '#client/skypod/context' 5 + import {useRealmIdentity} from '#realm/client/context-identity' 6 + 7 + // NY Times RSS feeds from https://www.nytimes.com/rss 8 + const NYTIMES_FEEDS = [ 9 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml', title: 'Home Page'}, 10 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/World.xml', title: 'World'}, 11 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Africa.xml', title: 'Africa'}, 12 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Americas.xml', title: 'Americas'}, 13 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/AsiaPacific.xml', title: 'Asia Pacific'}, 14 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Europe.xml', title: 'Europe'}, 15 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/MiddleEast.xml', title: 'Middle East'}, 16 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/US.xml', title: 'U.S.'}, 17 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Education.xml', title: 'Education'}, 18 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Politics.xml', title: 'Politics'}, 19 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Upshot.xml', title: 'Upshot'}, 20 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/NYRegion.xml', title: 'New York'}, 21 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Business.xml', title: 'Business'}, 22 + { 23 + url: 'https://rss.nytimes.com/services/xml/rss/nyt/EnergyEnvironment.xml', 24 + title: 'Energy & Environment', 25 + }, 26 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/SmallBusiness.xml', title: 'Small Business'}, 27 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Economy.xml', title: 'Economy'}, 28 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Dealbook.xml', title: 'DealBook'}, 29 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/MediaandAdvertising.xml', title: 'Media'}, 30 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/YourMoney.xml', title: 'Your Money'}, 31 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml', title: 'Technology'}, 32 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/PersonalTech.xml', title: 'Personal Tech'}, 33 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Sports.xml', title: 'Sports'}, 34 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Baseball.xml', title: 'Baseball'}, 35 + { 36 + url: 'https://rss.nytimes.com/services/xml/rss/nyt/CollegeBasketball.xml', 37 + title: 'College Basketball', 38 + }, 39 + { 40 + url: 'https://rss.nytimes.com/services/xml/rss/nyt/CollegeFootball.xml', 41 + title: 'College Football', 42 + }, 43 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Golf.xml', title: 'Golf'}, 44 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Hockey.xml', title: 'Hockey'}, 45 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/ProBasketball.xml', title: 'Pro Basketball'}, 46 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/ProFootball.xml', title: 'Pro Football'}, 47 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Soccer.xml', title: 'Soccer'}, 48 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Tennis.xml', title: 'Tennis'}, 49 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Science.xml', title: 'Science'}, 50 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Climate.xml', title: 'Climate'}, 51 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Space.xml', title: 'Space & Cosmos'}, 52 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Health.xml', title: 'Health'}, 53 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Well.xml', title: 'Well'}, 54 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Arts.xml', title: 'Arts'}, 55 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/ArtandDesign.xml', title: 'Art & Design'}, 56 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Books.xml', title: 'Books'}, 57 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Dance.xml', title: 'Dance'}, 58 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Movies.xml', title: 'Movies'}, 59 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Music.xml', title: 'Music'}, 60 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Television.xml', title: 'Television'}, 61 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Theater.xml', title: 'Theater'}, 62 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Fashion.xml', title: 'Fashion & Style'}, 63 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Dining.xml', title: 'Food'}, 64 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Travel.xml', title: 'Travel'}, 65 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Magazine.xml', title: 'Magazine'}, 66 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/tmagazine.xml', title: 'T Magazine'}, 67 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/RealEstate.xml', title: 'Real Estate'}, 68 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Automobiles.xml', title: 'Automobiles'}, 69 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Obituaries.xml', title: 'Obituaries'}, 70 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/Opinion.xml', title: 'Opinion'}, 71 + {url: 'https://rss.nytimes.com/services/xml/rss/nyt/sunday-review.xml', title: 'Sunday Review'}, 72 + ] 73 + 74 + export const FeedImportNYTimes: preact.FunctionComponent = () => { 75 + const {identity} = useRealmIdentity() 76 + const store = useSkypod() 77 + 78 + const importing$ = useSignal(false) 79 + const imported$ = useSignal(0) 80 + const errors$ = useSignal<string[]>([]) 81 + 82 + const importAll = useCallback(() => { 83 + importing$.value = true 84 + imported$.value = 0 85 + errors$.value = [] 86 + 87 + const go = async () => { 88 + for (const feed of NYTIMES_FEEDS) { 89 + try { 90 + const action = store.action('feed:add', { 91 + url: feed.url, 92 + lock: {by: identity.identid}, 93 + private: false, 94 + }) 95 + 96 + await store.dispatch(action) 97 + imported$.value++ 98 + } catch (ex: unknown) { 99 + const msg = ex instanceof Error ? ex.message : String(ex) 100 + errors$.value = [...errors$.value, `${feed.title}: ${msg}`] 101 + console.error(`Failed to import ${feed.title}:`, ex) 102 + } 103 + } 104 + 105 + importing$.value = false 106 + } 107 + 108 + go().catch((exc: unknown) => { 109 + console.error('error loading feeds', exc) 110 + }) 111 + }, [store, identity.identid, importing$, imported$, errors$]) 112 + 113 + return ( 114 + <div className="feed-import-nytimes"> 115 + <button type="button" onClick={importAll} disabled={importing$.value}> 116 + {importing$.value 117 + ? `Importing... (${imported$.value}/${NYTIMES_FEEDS.length})` 118 + : 'Import All NY Times Feeds'} 119 + </button> 120 + 121 + {errors$.value.length > 0 && ( 122 + <details> 123 + <summary>Errors ({errors$.value.length})</summary> 124 + <ul> 125 + {errors$.value.map((err, i) => ( 126 + <li key={i}>{err}</li> 127 + ))} 128 + </ul> 129 + </details> 130 + )} 131 + </div> 132 + ) 133 + }
+2
src/client/page-app.tsx
··· 8 import {RealmIdentityFallbackProps, RealmIdentityProvider} from '#realm/client/context-identity' 9 10 import {DebugNuke} from './components/debug-nuke' 11 import {Messenger} from './components/messenger' 12 import {PeerList} from './components/peer-list' 13 ··· 29 <SkypodProvider> 30 <RealmConnectionManager /> 31 <PeerList /> 32 <Messenger /> 33 <DebugNuke /> 34 </SkypodProvider>
··· 8 import {RealmIdentityFallbackProps, RealmIdentityProvider} from '#realm/client/context-identity' 9 10 import {DebugNuke} from './components/debug-nuke' 11 + import {FeedImportNYTimes} from './components/feed-import-nytimes' 12 import {Messenger} from './components/messenger' 13 import {PeerList} from './components/peer-list' 14 ··· 30 <SkypodProvider> 31 <RealmConnectionManager /> 32 <PeerList /> 33 + <FeedImportNYTimes /> 34 <Messenger /> 35 <DebugNuke /> 36 </SkypodProvider>
+11 -12
src/client/root/service-database.ts
··· 5 import {LCTimestamp, LogicalClock} from '#realm/protocol/logical-clock' 6 import {Feed, FeedEntry, Lock} from '#skypod/schema' 7 8 - export interface LocalIdentity { 9 - identid: IdentID 10 - keypair: CryptoKeyPair 11 - } 12 - 13 export interface Realm { 14 realmid: RealmID 15 touchedAt: number ··· 22 action: unknown 23 } 24 25 type Lockable = {lock: Lock | null} 26 27 export class Database extends Dexie { 28 - identity!: Table<LocalIdentity> 29 realms!: Table<Realm> 30 feeds!: Table<Feed> 31 entries!: Table<FeedEntry> 32 - actions!: Table<StoredAction> 33 - 34 - clock?: LogicalClock 35 36 constructor() { 37 super('skypod') 38 39 this.version(1).stores({ 40 - identity: '&identid', 41 realms: '&realmid, touchedAt', 42 - actions: '&clock, actor', 43 - 44 feeds: '&url, *tags, lock.at, lock.by, lastRefresh.status', 45 feedentries: '&[entryguid+feedurl], feedurl, *tags, lock.at, lock.by, publishedAt, fetchedAt', 46 })
··· 5 import {LCTimestamp, LogicalClock} from '#realm/protocol/logical-clock' 6 import {Feed, FeedEntry, Lock} from '#skypod/schema' 7 8 export interface Realm { 9 realmid: RealmID 10 touchedAt: number ··· 17 action: unknown 18 } 19 20 + export interface StoredClock { 21 + actor: IdentID 22 + clock: LCTimestamp 23 + } 24 + 25 type Lockable = {lock: Lock | null} 26 27 export class Database extends Dexie { 28 realms!: Table<Realm> 29 + actions!: Table<StoredAction> 30 + clocks!: Table<StoredClock> 31 + clock?: LogicalClock 32 + 33 feeds!: Table<Feed> 34 entries!: Table<FeedEntry> 35 36 constructor() { 37 super('skypod') 38 39 this.version(1).stores({ 40 realms: '&realmid, touchedAt', 41 + actions: '&[actor+clock], actor', 42 + clocks: '&actor', 43 feeds: '&url, *tags, lock.at, lock.by, lastRefresh.status', 44 feedentries: '&[entryguid+feedurl], feedurl, *tags, lock.at, lock.by, publishedAt, fetchedAt', 45 })
+11 -5
src/client/skypod/context.tsx
··· 43 props, 44 ) => { 45 const {db} = useDatabase() 46 - const {identity, clock} = useRealmIdentity() 47 const {realm} = useRealmConnection() 48 49 const processor = useRef<Worker>(null) ··· 84 dispatch: async <K extends keyof ActionMap>(action: ActionMap[K]) => { 85 try { 86 const {identid: actor} = LogicalClock.extract(action.clk) 87 - await db.actions.add({clock: action.clk, actor, action}) 88 } catch (err: unknown) { 89 if (typeof err === 'object' && err && 'name' in err && err.name === 'ConstraintError') { 90 console.debug('duplicate action ignored', action) ··· 128 dat: ActionMap[N]['dat'], 129 opt?: ActionOpts, 130 ): ActionMap[N] => { 131 - const clk = clock.now() 132 return {typ: 'act', clk, msg, dat, opt} as ActionMap[N] 133 }, 134 ··· 187 if (parsed.success) { 188 console.log('handling forwarded event:', parsed) 189 190 - await clock.save(parsed.data.clk) 191 await context.current.dispatch({...parsed.data, opt: {local: true}}) 192 } 193 } ··· 205 connection.removeEventListener('peerdata', handler as EventListener) 206 connection.removeEventListener('wsdata', handler as EventListener) 207 } 208 - }, [context, clock, realm.value]) 209 210 const patchSchema = z.union([ 211 z.object({
··· 43 props, 44 ) => { 45 const {db} = useDatabase() 46 + const {identity} = useRealmIdentity() 47 const {realm} = useRealmConnection() 48 49 const processor = useRef<Worker>(null) ··· 84 dispatch: async <K extends keyof ActionMap>(action: ActionMap[K]) => { 85 try { 86 const {identid: actor} = LogicalClock.extract(action.clk) 87 + await db.transaction('rw', [db.clocks, db.actions], async (tx) => { 88 + await db.actions.add({clock: action.clk, actor, action}) 89 + 90 + const extant = await tx.clocks.get(actor) 91 + if (!extant || LogicalClock.compare(extant.clock, action.clk) < 0) 92 + await tx.clocks.put({actor, clock: action.clk}) 93 + }) 94 } catch (err: unknown) { 95 if (typeof err === 'object' && err && 'name' in err && err.name === 'ConstraintError') { 96 console.debug('duplicate action ignored', action) ··· 134 dat: ActionMap[N]['dat'], 135 opt?: ActionOpts, 136 ): ActionMap[N] => { 137 + const clk = identity.clock.now() 138 return {typ: 'act', clk, msg, dat, opt} as ActionMap[N] 139 }, 140 ··· 193 if (parsed.success) { 194 console.log('handling forwarded event:', parsed) 195 196 + identity.clock.tick(parsed.data.clk) 197 await context.current.dispatch({...parsed.data, opt: {local: true}}) 198 } 199 } ··· 211 connection.removeEventListener('peerdata', handler as EventListener) 212 connection.removeEventListener('wsdata', handler as EventListener) 213 } 214 + }, [context, identity, realm.value]) 215 216 const patchSchema = z.union([ 217 z.object({
+5 -1
src/common/crypto/cipher.ts
··· 96 async encrypt(data: string | Uint8Array): Promise<string> { 97 const iv = crypto.getRandomValues(new Uint8Array(12)) 98 const encoded = asUint8Array(data) 99 - const encrypted = await crypto.subtle.encrypt({...encrAlgo, iv}, this.#cryptokey, encoded) 100 101 // output = [iv + encrypted] which gives us the auth tag 102
··· 96 async encrypt(data: string | Uint8Array): Promise<string> { 97 const iv = crypto.getRandomValues(new Uint8Array(12)) 98 const encoded = asUint8Array(data) 99 + const encrypted = await crypto.subtle.encrypt( 100 + {...encrAlgo, iv}, 101 + this.#cryptokey, 102 + encoded as BufferSource, 103 + ) 104 105 // output = [iv + encrypted] which gives us the auth tag 106
+2 -2
src/realm/client/context-connection.tsx
··· 27 fallback: (props: RealmConnectionFallbackProps) => preact.ComponentChild 28 }> = (props) => { 29 const {db} = useDatabase() 30 - const {identity, clock} = useRealmIdentity() 31 32 const error$ = useSignal<ProtocolError>() 33 const loading$ = useSignal<boolean>(true) ··· 79 useSignalEffect(() => { 80 if (!connectopts$.value.realmid) return 81 82 - const connection = new RealmConnection(props.url, db, identity, clock, connectopts$.value) 83 connection.addEventListener('wsopen', onChange) 84 connection.addEventListener('wsclose', onChange) 85 connection.addEventListener('wserror', onChange)
··· 27 fallback: (props: RealmConnectionFallbackProps) => preact.ComponentChild 28 }> = (props) => { 29 const {db} = useDatabase() 30 + const {identity} = useRealmIdentity() 31 32 const error$ = useSignal<ProtocolError>() 33 const loading$ = useSignal<boolean>(true) ··· 79 useSignalEffect(() => { 80 if (!connectopts$.value.realmid) return 81 82 + const connection = new RealmConnection(props.url, db, identity, connectopts$.value) 83 connection.addEventListener('wsopen', onChange) 84 connection.addEventListener('wsclose', onChange) 85 connection.addEventListener('wserror', onChange)
+7 -37
src/realm/client/context-identity.tsx
··· 1 import {useSignal} from '@preact/signals' 2 import {createContext} from 'preact' 3 - import {useContext, useEffect} from 'preact/hooks' 4 5 - import {useDatabase} from '#client/root/context-database' 6 - import {generateSigningJwkPair} from '#common/crypto/jwks' 7 import {normalizeProtocolError, ProtocolError} from '#common/errors' 8 - import {IdentBrand, IdentID} from '#realm/protocol/index' 9 - import {ClockState, ClockStorage, LogicalClock} from '#realm/protocol/logical-clock' 10 11 - import {RealmIdentity} from './service-identity' 12 13 export interface RealmIdentityContext { 14 identity: RealmIdentity 15 - clock: LogicalClock 16 } 17 18 export interface RealmIdentityFallbackProps { ··· 22 23 export const RealmIdentityContext = createContext<RealmIdentityContext | null>(null) 24 25 - // Create storage that persists per identity 26 - function localIdentityClockStore(ident: IdentID): ClockStorage { 27 - const key = `lc-state-${ident}` 28 - return { 29 - save(state) { 30 - localStorage.setItem(key, JSON.stringify(state)) 31 - }, 32 - load(): ClockState | null { 33 - const stored = localStorage.getItem(key) 34 - return stored ? (JSON.parse(stored) as ClockState) : null 35 - }, 36 - } 37 - } 38 - 39 export const RealmIdentityProvider: preact.FunctionComponent<{ 40 fallback: (props: RealmIdentityFallbackProps) => preact.ComponentChild 41 children: preact.ComponentChildren 42 }> = (props) => { 43 - const {db} = useDatabase() 44 45 const error$ = useSignal<ProtocolError>() 46 const value$ = useSignal<RealmIdentityContext>() ··· 49 useEffect(() => { 50 const go = async () => { 51 try { 52 - let identity = await db.identity.toCollection().first() 53 - if (!identity) { 54 - const identid = IdentBrand.generate() 55 - const keypair = await generateSigningJwkPair() 56 - 57 - identity = {identid, keypair} 58 - await db.identity.put(identity) 59 - } 60 - 61 - const clock = new LogicalClock(identity.identid, localIdentityClockStore(identity.identid)) 62 - await clock.load() 63 - 64 error$.value = undefined 65 - value$.value = {identity: new RealmIdentity(identity.identid, identity.keypair), clock} 66 } catch (ex: unknown) { 67 error$.value = normalizeProtocolError(ex) 68 - value$.value = undefined 69 } 70 } 71 72 go().catch((ex: unknown) => { 73 console.error('error loading identity!', ex) 74 }) 75 - }, [db.identity, value$, error$]) 76 77 return value$.value ? ( 78 <RealmIdentityContext.Provider value={value$.value}>
··· 1 import {useSignal} from '@preact/signals' 2 import {createContext} from 'preact' 3 + import {useContext, useEffect, useMemo} from 'preact/hooks' 4 5 import {normalizeProtocolError, ProtocolError} from '#common/errors' 6 7 + import {IdentityStore, RealmIdentity} from './service-identity' 8 9 export interface RealmIdentityContext { 10 identity: RealmIdentity 11 } 12 13 export interface RealmIdentityFallbackProps { ··· 17 18 export const RealmIdentityContext = createContext<RealmIdentityContext | null>(null) 19 20 export const RealmIdentityProvider: preact.FunctionComponent<{ 21 fallback: (props: RealmIdentityFallbackProps) => preact.ComponentChild 22 children: preact.ComponentChildren 23 }> = (props) => { 24 + const store = useMemo(() => new IdentityStore(), []) 25 26 const error$ = useSignal<ProtocolError>() 27 const value$ = useSignal<RealmIdentityContext>() ··· 30 useEffect(() => { 31 const go = async () => { 32 try { 33 + const identity = await store.fetch() 34 + value$.value = {identity} 35 error$.value = undefined 36 } catch (ex: unknown) { 37 + value$.value = undefined 38 error$.value = normalizeProtocolError(ex) 39 } 40 } 41 42 go().catch((ex: unknown) => { 43 console.error('error loading identity!', ex) 44 }) 45 + }, [store, value$, error$]) 46 47 return value$.value ? ( 48 <RealmIdentityContext.Provider value={value$.value}>
+29 -32
src/realm/client/service-connection-sync.ts
··· 1 import {Database, StoredAction} from '#client/root/service-database' 2 import {IdentID} from '#realm/protocol/index' 3 - import {LCTimestamp, LogicalClock} from '#realm/protocol/logical-clock' 4 import {DeviceScanner} from './service-device' 5 6 export class RealmSyncManager { 7 #db: Database 8 - #clock: LogicalClock 9 - #identid: IdentID 10 #peers: Map<IdentID, unknown> 11 #device: DeviceScanner 12 13 // objects are shared with realm connection 14 15 - constructor(db: Database, clock: LogicalClock, identid: IdentID, peers: Map<IdentID, unknown>) { 16 this.#db = db 17 - this.#clock = clock 18 - this.#identid = identid 19 this.#peers = peers 20 this.#device = new DeviceScanner() 21 } ··· 37 chooseSyncPeer(peerids: IdentID[]): IdentID | null { 38 let max: IdentID | null = null 39 for (const identid of peerids) { 40 - if (identid === this.#identid) continue 41 if (max === null || max.localeCompare(identid) < 0) { 42 max = identid 43 } ··· 46 return max 47 } 48 49 - async buildSyncState(): Promise<Record<IdentID, LCTimestamp | null>> { 50 - const states: Record<IdentID, LCTimestamp | null> = { 51 - [this.#identid]: this.#clock.latest(), 52 - } 53 54 - // because we're iterating newest to oldest, we just care about the first we see 55 - const query = this.#db.actions.orderBy('clock').reverse() 56 - await query.each((action) => { 57 - if (!states[action.actor]) { 58 - states[action.actor] = action.clock 59 - } 60 - }) 61 62 return states 63 } 64 65 - async buildSyncDelta(clocks: Record<IdentID, LCTimestamp | null>): Promise<StoredAction[]> { 66 - const known = await this.#db.actions.orderBy('actor').uniqueKeys() 67 - const results = await Promise.all( 68 - known.map(async (actor) => { 69 - const clock = clocks[actor as IdentID] || null 70 71 - let query = this.#db.actions.where('actor').equals(actor) 72 - if (clock) { 73 - query = query.and((action) => LogicalClock.compare(action.clock, clock) > 0) 74 - } 75 - 76 - return query.toArray() 77 - }), 78 - ) 79 80 - return results.flat().sort((a, b) => LogicalClock.compare(a.clock, b.clock)) 81 } 82 }
··· 1 + import Dexie from 'dexie' 2 + 3 import {Database, StoredAction} from '#client/root/service-database' 4 import {IdentID} from '#realm/protocol/index' 5 + import {PeerClocks} from '#realm/protocol/logical-clock' 6 + 7 import {DeviceScanner} from './service-device' 8 + import {RealmIdentity} from './service-identity' 9 10 export class RealmSyncManager { 11 #db: Database 12 + #identity: RealmIdentity 13 #peers: Map<IdentID, unknown> 14 #device: DeviceScanner 15 16 // objects are shared with realm connection 17 18 + constructor(db: Database, identity: RealmIdentity, peers: Map<IdentID, unknown>) { 19 this.#db = db 20 + this.#identity = identity 21 this.#peers = peers 22 this.#device = new DeviceScanner() 23 } ··· 39 chooseSyncPeer(peerids: IdentID[]): IdentID | null { 40 let max: IdentID | null = null 41 for (const identid of peerids) { 42 + if (identid === this.#identity.identid) continue 43 if (max === null || max.localeCompare(identid) < 0) { 44 max = identid 45 } ··· 48 return max 49 } 50 51 + async buildSyncState(): Promise<PeerClocks> { 52 + const states: PeerClocks = {} 53 54 + states[this.#identity.identid] = this.#identity.latest 55 + await this.#db.clocks.each((row) => (states[row.actor] = row.clock)) 56 57 return states 58 } 59 60 + async buildSyncDelta(clocks: PeerClocks): Promise<StoredAction[]> { 61 + const states = await this.buildSyncState() 62 + const initial = this.#db.actions.where('[actor+clock]').equals([Dexie.minKey, Dexie.minKey]) 63 + // this is the root for the reduction; dexie doesn't have an "additive identity" for `or` - table.toCollection is (all) not (none) 64 65 + const known = Object.keys(states) as IdentID[] 66 + const actions = known.reduce((memo, actor) => { 67 + const clock = clocks[actor] ?? null 68 + return memo.or('[actor+clock]').between( 69 + [actor, clock ?? Dexie.minKey], 70 + [actor, states[actor]], 71 + clock == null, // include lower only if they don't have it 72 + true, // always include the most recent 73 + ) 74 + }, initial) 75 76 + // already in clock order 77 + return await actions.sortBy('clock') 78 } 79 }
+2 -9
src/realm/client/service-connection.ts
··· 11 12 import {IdentID, RealmID} from '#realm/protocol/brands' 13 import * as protocol from '#realm/protocol/index' 14 - import {LogicalClock} from '#realm/protocol/logical-clock' 15 16 import {Database} from '#client/root/service-database' 17 ··· 50 #serverseq = 0 51 #serversync = false 52 53 - constructor( 54 - url: string, 55 - db: Database, 56 - identity: RealmIdentity, 57 - clock: LogicalClock, 58 - options: ConnectionOptions, 59 - ) { 60 super() 61 this.#abort = new AbortController() 62 this.#identity = identity ··· 66 this.#peers = new Map() 67 this.#nonces = new Map() 68 69 - this.#sync = new RealmSyncManager(db, clock, identity.identid, this.#peers) 70 this.#socket = new WebSocket(url) 71 this.#socket.onopen = this.#handleSocketOpen 72 this.#socket.onclose = this.#handleSocketClose
··· 11 12 import {IdentID, RealmID} from '#realm/protocol/brands' 13 import * as protocol from '#realm/protocol/index' 14 15 import {Database} from '#client/root/service-database' 16 ··· 49 #serverseq = 0 50 #serversync = false 51 52 + constructor(url: string, db: Database, identity: RealmIdentity, options: ConnectionOptions) { 53 super() 54 this.#abort = new AbortController() 55 this.#identity = identity ··· 59 this.#peers = new Map() 60 this.#nonces = new Map() 61 62 + this.#sync = new RealmSyncManager(db, identity, this.#peers) 63 this.#socket = new WebSocket(url) 64 this.#socket.onopen = this.#handleSocketOpen 65 this.#socket.onclose = this.#handleSocketClose
+81 -6
src/realm/client/service-identity.ts
··· 1 - import {JWK, jwkExport} from '#common/crypto/jwks' 2 - import {IdentID} from '#realm/protocol/index' 3 4 import {Signable} from './types' 5 6 - /** manages websocket and webrtc connections for a realm */ 7 export class RealmIdentity { 8 #identid: IdentID 9 #keypair: CryptoKeyPair 10 #pubjwk: Promise<JWK> | undefined 11 12 - constructor(identid: IdentID, keypair: CryptoKeyPair) { 13 - this.#identid = identid 14 - this.#keypair = keypair 15 } 16 17 get identid() { ··· 22 return this.#keypair.publicKey 23 } 24 25 get pubjwk() { 26 return (this.#pubjwk ??= jwkExport.parseAsync(this.#keypair.publicKey)) 27 } ··· 30 return token.sign(this.#keypair.privateKey) 31 } 32 }
··· 1 + import Dexie, {type Table} from 'dexie' 2 + 3 + import {generateSigningJwkPair, JWK, jwkExport} from '#common/crypto/jwks' 4 + import {IdentBrand, IdentID} from '#realm/protocol/index' 5 + import {LCTimestamp, LogicalClock} from '#realm/protocol/logical-clock' 6 7 import {Signable} from './types' 8 9 + export interface StoredIdentity { 10 + identid: IdentID 11 + keypair: CryptoKeyPair 12 + clock?: LCTimestamp 13 + } 14 + 15 export class RealmIdentity { 16 #identid: IdentID 17 #keypair: CryptoKeyPair 18 + #clock: LogicalClock 19 + 20 #pubjwk: Promise<JWK> | undefined 21 22 + constructor(stored: StoredIdentity) { 23 + this.#identid = stored.identid 24 + this.#keypair = stored.keypair 25 + this.#clock = new LogicalClock(this.#identid, stored.clock ?? null) 26 + } 27 + 28 + onTick(cb: (event: CustomEvent<LCTimestamp>) => void) { 29 + this.#clock.addEventListener('tick', cb as EventListener) 30 + } 31 + 32 + offTick(cb: (event: CustomEvent<LCTimestamp>) => void) { 33 + this.#clock.removeEventListener('tick', cb as EventListener) 34 } 35 36 get identid() { ··· 41 return this.#keypair.publicKey 42 } 43 44 + get clock() { 45 + return this.#clock 46 + } 47 + 48 + get latest() { 49 + return this.#clock.latest() 50 + } 51 + 52 get pubjwk() { 53 return (this.#pubjwk ??= jwkExport.parseAsync(this.#keypair.publicKey)) 54 } ··· 57 return token.sign(this.#keypair.privateKey) 58 } 59 } 60 + 61 + class IdentityDatabase extends Dexie { 62 + identity!: Table<StoredIdentity> 63 + 64 + constructor() { 65 + super('realm-identity') 66 + this.version(1).stores({ 67 + identity: '&identid', 68 + }) 69 + } 70 + } 71 + 72 + export class IdentityStore { 73 + #db: IdentityDatabase 74 + #loaded?: RealmIdentity 75 + 76 + constructor() { 77 + this.#db = new IdentityDatabase() 78 + } 79 + 80 + #load(row: StoredIdentity) { 81 + this.#loaded = new RealmIdentity(row) 82 + this.#loaded.onTick(this.#ontick) 83 + return this.#loaded 84 + } 85 + 86 + #ontick = (event: CustomEvent<LCTimestamp>) => { 87 + if (!this.#loaded) return 88 + this.#db.identity.update(this.#loaded.identid, {clock: event.detail}).catch((exc: unknown) => { 89 + console.warn('could not save latest clock?', exc) 90 + }) 91 + } 92 + 93 + async fetch(): Promise<RealmIdentity> { 94 + if (this.#loaded) return this.#loaded 95 + 96 + const extant = await this.#db.identity.toCollection().first() 97 + if (extant) return this.#load(extant) 98 + 99 + const identid = IdentBrand.generate() 100 + const keypair = await generateSigningJwkPair() 101 + 102 + const row = {identid, keypair} 103 + await this.#db.identity.put(row) 104 + 105 + return this.#load(row) 106 + } 107 + }
+14 -42
src/realm/protocol/logical-clock.ts
··· 1 import {IdentBrand, IdentID} from '#realm/protocol/brands' 2 import {z} from 'zod/v4' 3 4 - export interface ClockStorage { 5 - save(state: ClockState): void | Promise<void> 6 - load(): ClockState | null | Promise<ClockState | null> 7 - } 8 - 9 - export interface ClockState { 10 - latest: LCTimestamp 11 - seconds: number 12 - counter: number 13 - } 14 - 15 export type LCExploded = { 16 identid: IdentID 17 seconds: number 18 counter: number 19 } 20 21 - export type LCTimestamp = z.infer<typeof LogicalClock.schema> 22 23 - export class LogicalClock { 24 // hlc format: 'lc.seconds.counter.identid' 25 26 static #hlc = Symbol('hlc') ··· 85 /// 86 87 #identid: IdentID 88 - #storage?: ClockStorage 89 - 90 #counter = 0 91 #seconds = 0 92 #latest: LCTimestamp | null = null 93 94 - constructor(identid: IdentID, storage?: ClockStorage) { 95 this.#identid = identid 96 - this.#storage = storage 97 - this.#latest = null 98 } 99 100 get actor() { 101 return this.#identid 102 } 103 104 - async load() { 105 - if (this.#storage) { 106 - const persisted = await this.#storage.load() 107 - if (persisted) { 108 - this.#counter = persisted.counter 109 - this.#seconds = persisted.seconds 110 - this.#latest = persisted.latest 111 - } 112 - } 113 - } 114 - 115 - async save(latest: LCTimestamp) { 116 - this.#latest = latest 117 - if (this.#storage) { 118 - await this.#storage.save({latest, seconds: this.#seconds, counter: this.#counter}) 119 - } 120 - } 121 - 122 latest(): LCTimestamp | null { 123 return this.#latest 124 } ··· 139 } 140 141 const hlcstr = `lc:${this.#seconds.toFixed(0)}:${this.#counter}:${this.#identid}` 142 - const hlc = LogicalClock.parse(hlcstr) 143 144 - // kicks off in the background 145 - this.save(hlc).catch((ex: unknown) => { 146 - console.warn('couldnt save clock state', ex) 147 - }) 148 149 - return hlc 150 } 151 152 elapsed(timestamp: LCTimestamp): number {
··· 1 import {IdentBrand, IdentID} from '#realm/protocol/brands' 2 import {z} from 'zod/v4' 3 4 + export type LCTimestamp = z.infer<typeof LogicalClock.schema> 5 export type LCExploded = { 6 identid: IdentID 7 seconds: number 8 counter: number 9 } 10 11 + export type PeerClocks = Record<IdentID, LCTimestamp | null> 12 13 + export class LogicalClock extends EventTarget { 14 // hlc format: 'lc.seconds.counter.identid' 15 16 static #hlc = Symbol('hlc') ··· 75 /// 76 77 #identid: IdentID 78 #counter = 0 79 #seconds = 0 80 #latest: LCTimestamp | null = null 81 82 + constructor(identid: IdentID, latest: LCTimestamp | null = null) { 83 + super() 84 this.#identid = identid 85 + this.#latest = latest 86 } 87 88 get actor() { 89 return this.#identid 90 } 91 92 latest(): LCTimestamp | null { 93 return this.#latest 94 } ··· 109 } 110 111 const hlcstr = `lc:${this.#seconds.toFixed(0)}:${this.#counter}:${this.#identid}` 112 + return this.tick(LogicalClock.parse(hlcstr)) 113 + } 114 115 + tick(timestamp: LCTimestamp) { 116 + if (!this.#latest || LogicalClock.compare(this.#latest, timestamp) < 0) { 117 + this.#latest = timestamp 118 + this.dispatchEvent(new CustomEvent('tick', {detail: timestamp})) 119 + } 120 121 + return this.#latest 122 } 123 124 elapsed(timestamp: LCTimestamp): number {
+4 -3
src/realm/realm-storage.ts src/realm/server/state-storage.ts
··· 5 6 import {jwkExport, jwkImport, type JWK} from '#common/crypto/jwks' 7 import {StrictMap} from '#common/strict-map' 8 import {IdentBrand, IdentID, RealmBrand, RealmID} from '#realm/protocol/index' 9 - import {LCTimestamp, LogicalClock} from '#realm/protocol/logical-clock' 10 import {actionMessageSchema} from '#realm/protocol/schema' 11 12 export type IncomingAction = z.infer<typeof actionMessageSchema> ··· 159 } 160 } 161 162 - async buildSyncState(): Promise<Record<IdentID, LCTimestamp | null>> { 163 const states: Record<IdentID, LCTimestamp | null> = {} 164 165 try { ··· 177 return states 178 } 179 180 - async buildSyncDelta(clocks: Record<IdentID, LCTimestamp | null>): Promise<StoredAction[]> { 181 const results: StoredAction[] = [] 182 try { 183 for await (const value of this.#db.values()) {
··· 5 6 import {jwkExport, jwkImport, type JWK} from '#common/crypto/jwks' 7 import {StrictMap} from '#common/strict-map' 8 + 9 import {IdentBrand, IdentID, RealmBrand, RealmID} from '#realm/protocol/index' 10 + import {LCTimestamp, LogicalClock, PeerClocks} from '#realm/protocol/logical-clock' 11 import {actionMessageSchema} from '#realm/protocol/schema' 12 13 export type IncomingAction = z.infer<typeof actionMessageSchema> ··· 160 } 161 } 162 163 + async buildSyncState(): Promise<PeerClocks> { 164 const states: Record<IdentID, LCTimestamp | null> = {} 165 166 try { ··· 178 return states 179 } 180 181 + async buildSyncDelta(clocks: PeerClocks): Promise<StoredAction[]> { 182 const results: StoredAction[] = [] 183 try { 184 for await (const value of this.#db.values()) {
+1 -1
src/realm/server/state.ts
··· 4 import {DeviceCaps, DeviceInfo} from '#realm/protocol/device' 5 import {IdentID, RealmID} from '#realm/protocol/index' 6 7 - import {RealmStorage} from '#realm/realm-storage' 8 9 /** An authenticated identity; only handed out in response to successful authentication. */ 10 export interface AuthenticatedIdentity {
··· 4 import {DeviceCaps, DeviceInfo} from '#realm/protocol/device' 5 import {IdentID, RealmID} from '#realm/protocol/index' 6 7 + import {RealmStorage} from './state-storage' 8 9 /** An authenticated identity; only handed out in response to successful authentication. */ 10 export interface AuthenticatedIdentity {
-3
src/server/index.ts
··· 14 */ 15 export function buildServer(root: string): http.Server { 16 const app = express() 17 - 18 - // not sure why this error is coming up 19 - // eslint-disable-next-line @typescript-eslint/no-misused-promises 20 const server = http.createServer(app) 21 22 // API routes
··· 14 */ 15 export function buildServer(root: string): http.Server { 16 const app = express() 17 const server = http.createServer(app) 18 19 // API routes