diff --git a/.codecov.yml b/.codecov.yml index 66638a53..e7f7311f 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -29,4 +29,5 @@ ignore: - "frontend/coverage/*" - "backend/cmd/seed/*" - "backend/data/*" + - "backend/coverage/*" - "*.md" diff --git a/.dockerignore b/.dockerignore index 65fcdf52..019c4750 100644 --- a/.dockerignore +++ b/.dockerignore @@ -23,14 +23,15 @@ htmlcov/ # Node/Frontend build artifacts frontend/node_modules/ frontend/coverage/ +frontend/dist/ frontend/.vite/ frontend/*.tsbuildinfo -# Keep frontend/dist - needed in final image # Go/Backend +backend/api backend/*.out +backend/coverage/ backend/coverage.*.out -# Keep backend/api binary - needed in final image # Databases (runtime) backend/data/*.db diff --git a/.gitignore b/.gitignore index 1fba65a2..fe92692c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ htmlcov/ # Node/Frontend frontend/node_modules/ +backend/node_modules/ frontend/dist/ frontend/coverage/ frontend/.vite/ @@ -24,6 +25,7 @@ frontend/*.tsbuildinfo # Go/Backend backend/api backend/*.out +backend/coverage/ backend/coverage.*.out # Databases @@ -40,10 +42,14 @@ backend/cmd/api/data/*.db *.swo *~ .DS_Store +*.code-workspace # Logs *.log logs/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* # Environment .env @@ -58,3 +64,7 @@ backend/data/caddy/ # Docker docker-compose.override.yml + +# Testing +coverage/ +*.xml diff --git a/backend/.env.example b/backend/.env.example new file mode 100644 index 00000000..3777dec1 --- /dev/null +++ b/backend/.env.example @@ -0,0 +1,5 @@ +CPM_ENV=development +CPM_HTTP_PORT=8080 +CPM_DB_PATH=./data/cpm.db +CPM_CADDY_ADMIN_API=http://localhost:2019 +CPM_CADDY_CONFIG_DIR=./data/caddy diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 00000000..59e0b05f --- /dev/null +++ b/backend/README.md @@ -0,0 +1,19 @@ +# Backend Service + +This folder contains the Go API for CaddyProxyManager+. + +## Prerequisites +- Go 1.22+ + +## Getting started +```bash +cp .env.example .env # optional +cd backend +go run ./cmd/api +``` + +## Tests +```bash +cd backend +go test ./... +``` diff --git a/backend/go.mod b/backend/go.mod new file mode 100644 index 00000000..11a856bc --- /dev/null +++ b/backend/go.mod @@ -0,0 +1,46 @@ +module github.com/Wikid82/CaddyProxyManagerPlus/backend + +go 1.25.4 + +require ( + github.com/gin-gonic/gin v1.10.0 + github.com/golang-jwt/jwt/v5 v5.3.0 + github.com/google/uuid v1.6.0 + github.com/stretchr/testify v1.11.1 + golang.org/x/crypto v0.45.0 + gorm.io/driver/sqlite v1.6.0 + gorm.io/gorm v1.31.1 +) + +require ( + github.com/bytedance/sonic v1.11.6 // indirect + github.com/bytedance/sonic/loader v0.1.1 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.20.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-sqlite3 v1.14.22 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + golang.org/x/arch v0.8.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/text v0.31.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/backend/go.sum b/backend/go.sum new file mode 100644 index 00000000..5b797192 --- /dev/null +++ b/backend/go.sum @@ -0,0 +1,118 @@ +github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= +github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= +github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= +github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= +golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= +gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ= +gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8= +gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8= +gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= +gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs= +gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= +gorm.io/gorm v1.31.1 h1:7CA8FTFz/gRfgqgpeKIBcervUn3xSyPUmr6B2WXJ7kg= +gorm.io/gorm v1.31.1/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/backend/node_modules/.bin/esbuild b/backend/node_modules/.bin/esbuild deleted file mode 120000 index c83ac070..00000000 --- a/backend/node_modules/.bin/esbuild +++ /dev/null @@ -1 +0,0 @@ -../esbuild/bin/esbuild \ No newline at end of file diff --git a/backend/node_modules/.bin/nanoid b/backend/node_modules/.bin/nanoid deleted file mode 120000 index e2be547b..00000000 --- a/backend/node_modules/.bin/nanoid +++ /dev/null @@ -1 +0,0 @@ -../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/backend/node_modules/.bin/parser b/backend/node_modules/.bin/parser deleted file mode 120000 index ce7bf97e..00000000 --- a/backend/node_modules/.bin/parser +++ /dev/null @@ -1 +0,0 @@ -../@babel/parser/bin/babel-parser.js \ No newline at end of file diff --git a/backend/node_modules/.bin/rollup b/backend/node_modules/.bin/rollup deleted file mode 120000 index 5939621c..00000000 --- a/backend/node_modules/.bin/rollup +++ /dev/null @@ -1 +0,0 @@ -../rollup/dist/bin/rollup \ No newline at end of file diff --git a/backend/node_modules/.bin/semver b/backend/node_modules/.bin/semver deleted file mode 120000 index 5aaadf42..00000000 --- a/backend/node_modules/.bin/semver +++ /dev/null @@ -1 +0,0 @@ -../semver/bin/semver.js \ No newline at end of file diff --git a/backend/node_modules/.bin/vite b/backend/node_modules/.bin/vite deleted file mode 120000 index 6d1e3bea..00000000 --- a/backend/node_modules/.bin/vite +++ /dev/null @@ -1 +0,0 @@ -../vite/bin/vite.js \ No newline at end of file diff --git a/backend/node_modules/.bin/vitest b/backend/node_modules/.bin/vitest deleted file mode 120000 index 22734979..00000000 --- a/backend/node_modules/.bin/vitest +++ /dev/null @@ -1 +0,0 @@ -../vitest/vitest.mjs \ No newline at end of file diff --git a/backend/node_modules/.bin/why-is-node-running b/backend/node_modules/.bin/why-is-node-running deleted file mode 120000 index f08a594c..00000000 --- a/backend/node_modules/.bin/why-is-node-running +++ /dev/null @@ -1 +0,0 @@ -../why-is-node-running/cli.js \ No newline at end of file diff --git a/backend/node_modules/@babel/helper-string-parser/LICENSE b/backend/node_modules/@babel/helper-string-parser/LICENSE deleted file mode 100644 index f31575ec..00000000 --- a/backend/node_modules/@babel/helper-string-parser/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Sebastian McKenzie and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/node_modules/@babel/helper-string-parser/README.md b/backend/node_modules/@babel/helper-string-parser/README.md deleted file mode 100644 index 771b4700..00000000 --- a/backend/node_modules/@babel/helper-string-parser/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-string-parser - -> A utility package to parse strings - -See our website [@babel/helper-string-parser](https://babeljs.io/docs/babel-helper-string-parser) for more information. - -## Install - -Using npm: - -```sh -npm install --save @babel/helper-string-parser -``` - -or using yarn: - -```sh -yarn add @babel/helper-string-parser -``` diff --git a/backend/node_modules/@babel/helper-string-parser/lib/index.js b/backend/node_modules/@babel/helper-string-parser/lib/index.js deleted file mode 100644 index 2d941155..00000000 --- a/backend/node_modules/@babel/helper-string-parser/lib/index.js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.readCodePoint = readCodePoint; -exports.readInt = readInt; -exports.readStringContents = readStringContents; -var _isDigit = function isDigit(code) { - return code >= 48 && code <= 57; -}; -const forbiddenNumericSeparatorSiblings = { - decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), - hex: new Set([46, 88, 95, 120]) -}; -const isAllowedNumericSeparatorSibling = { - bin: ch => ch === 48 || ch === 49, - oct: ch => ch >= 48 && ch <= 55, - dec: ch => ch >= 48 && ch <= 57, - hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 -}; -function readStringContents(type, input, pos, lineStart, curLine, errors) { - const initialPos = pos; - const initialLineStart = lineStart; - const initialCurLine = curLine; - let out = ""; - let firstInvalidLoc = null; - let chunkStart = pos; - const { - length - } = input; - for (;;) { - if (pos >= length) { - errors.unterminated(initialPos, initialLineStart, initialCurLine); - out += input.slice(chunkStart, pos); - break; - } - const ch = input.charCodeAt(pos); - if (isStringEnd(type, ch, input, pos)) { - out += input.slice(chunkStart, pos); - break; - } - if (ch === 92) { - out += input.slice(chunkStart, pos); - const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); - if (res.ch === null && !firstInvalidLoc) { - firstInvalidLoc = { - pos, - lineStart, - curLine - }; - } else { - out += res.ch; - } - ({ - pos, - lineStart, - curLine - } = res); - chunkStart = pos; - } else if (ch === 8232 || ch === 8233) { - ++pos; - ++curLine; - lineStart = pos; - } else if (ch === 10 || ch === 13) { - if (type === "template") { - out += input.slice(chunkStart, pos) + "\n"; - ++pos; - if (ch === 13 && input.charCodeAt(pos) === 10) { - ++pos; - } - ++curLine; - chunkStart = lineStart = pos; - } else { - errors.unterminated(initialPos, initialLineStart, initialCurLine); - } - } else { - ++pos; - } - } - return { - pos, - str: out, - firstInvalidLoc, - lineStart, - curLine, - containsInvalid: !!firstInvalidLoc - }; -} -function isStringEnd(type, ch, input, pos) { - if (type === "template") { - return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; - } - return ch === (type === "double" ? 34 : 39); -} -function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { - const throwOnInvalid = !inTemplate; - pos++; - const res = ch => ({ - pos, - ch, - lineStart, - curLine - }); - const ch = input.charCodeAt(pos++); - switch (ch) { - case 110: - return res("\n"); - case 114: - return res("\r"); - case 120: - { - let code; - ({ - code, - pos - } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); - return res(code === null ? null : String.fromCharCode(code)); - } - case 117: - { - let code; - ({ - code, - pos - } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); - return res(code === null ? null : String.fromCodePoint(code)); - } - case 116: - return res("\t"); - case 98: - return res("\b"); - case 118: - return res("\u000b"); - case 102: - return res("\f"); - case 13: - if (input.charCodeAt(pos) === 10) { - ++pos; - } - case 10: - lineStart = pos; - ++curLine; - case 8232: - case 8233: - return res(""); - case 56: - case 57: - if (inTemplate) { - return res(null); - } else { - errors.strictNumericEscape(pos - 1, lineStart, curLine); - } - default: - if (ch >= 48 && ch <= 55) { - const startPos = pos - 1; - const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); - let octalStr = match[0]; - let octal = parseInt(octalStr, 8); - if (octal > 255) { - octalStr = octalStr.slice(0, -1); - octal = parseInt(octalStr, 8); - } - pos += octalStr.length - 1; - const next = input.charCodeAt(pos); - if (octalStr !== "0" || next === 56 || next === 57) { - if (inTemplate) { - return res(null); - } else { - errors.strictNumericEscape(startPos, lineStart, curLine); - } - } - return res(String.fromCharCode(octal)); - } - return res(String.fromCharCode(ch)); - } -} -function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { - const initialPos = pos; - let n; - ({ - n, - pos - } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); - if (n === null) { - if (throwOnInvalid) { - errors.invalidEscapeSequence(initialPos, lineStart, curLine); - } else { - pos = initialPos - 1; - } - } - return { - code: n, - pos - }; -} -function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { - const start = pos; - const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; - const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; - let invalid = false; - let total = 0; - for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { - const code = input.charCodeAt(pos); - let val; - if (code === 95 && allowNumSeparator !== "bail") { - const prev = input.charCodeAt(pos - 1); - const next = input.charCodeAt(pos + 1); - if (!allowNumSeparator) { - if (bailOnError) return { - n: null, - pos - }; - errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); - } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { - if (bailOnError) return { - n: null, - pos - }; - errors.unexpectedNumericSeparator(pos, lineStart, curLine); - } - ++pos; - continue; - } - if (code >= 97) { - val = code - 97 + 10; - } else if (code >= 65) { - val = code - 65 + 10; - } else if (_isDigit(code)) { - val = code - 48; - } else { - val = Infinity; - } - if (val >= radix) { - if (val <= 9 && bailOnError) { - return { - n: null, - pos - }; - } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { - val = 0; - } else if (forceLen) { - val = 0; - invalid = true; - } else { - break; - } - } - ++pos; - total = total * radix + val; - } - if (pos === start || len != null && pos - start !== len || invalid) { - return { - n: null, - pos - }; - } - return { - n: total, - pos - }; -} -function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { - const ch = input.charCodeAt(pos); - let code; - if (ch === 123) { - ++pos; - ({ - code, - pos - } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); - ++pos; - if (code !== null && code > 0x10ffff) { - if (throwOnInvalid) { - errors.invalidCodePoint(pos, lineStart, curLine); - } else { - return { - code: null, - pos - }; - } - } - } else { - ({ - code, - pos - } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); - } - return { - code, - pos - }; -} - -//# sourceMappingURL=index.js.map diff --git a/backend/node_modules/@babel/helper-string-parser/lib/index.js.map b/backend/node_modules/@babel/helper-string-parser/lib/index.js.map deleted file mode 100644 index fcf76fff..00000000 --- a/backend/node_modules/@babel/helper-string-parser/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["isDigit","code","forbiddenNumericSeparatorSiblings","decBinOct","Set","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","type","input","pos","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","length","unterminated","slice","charCodeAt","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","String","fromCharCode","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","exec","octalStr","octal","parseInt","next","len","forceLen","n","readInt","invalidEscapeSequence","radix","allowNumSeparator","bailOnError","start","forbiddenSiblings","isAllowedSibling","invalid","total","i","e","Infinity","val","prev","numericSeparatorInEscapeSequence","Number","isNaN","has","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint"],"sources":["../src/index.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n"],"mappings":";;;;;;;;eAAA,SAASA,OAAOA,CAACC,IAAI,EAAE;EACrB,OAAOA,IAAI,MAAU,IAAIA,IAAI,MAAU;AACzC,CAAC;AAID,MAAMC,iCAAiC,GAAG;EACxCC,SAAS,EAAE,IAAIC,GAAG,CAAS,kCAS1B,CAAC;EACFC,GAAG,EAAE,IAAID,GAAG,CAAS,iBAKpB;AACH,CAAC;AAED,MAAME,gCAAgC,GAAG;EAEvCC,GAAG,EAAGC,EAAU,IAAKA,EAAE,OAAqB,IAAIA,EAAE,OAAqB;EAGvEC,GAAG,EAAGD,EAAU,IAAKA,EAAE,MAAoB,IAAIA,EAAE,MAAoB;EAGrEE,GAAG,EAAGF,EAAU,IAAKA,EAAE,MAAoB,IAAIA,EAAE,MAAoB;EAGrEH,GAAG,EAAGG,EAAU,IACbA,EAAE,MAAoB,IAAIA,EAAE,MAAoB,IAChDA,EAAE,MAAwB,IAAIA,EAAE,MAAyB,IACzDA,EAAE,MAAwB,IAAIA,EAAE;AACrC,CAAC;AAUM,SAASG,kBAAkBA,CAChCC,IAAsC,EACtCC,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfC,MAAmC,EACnC;EACA,MAAMC,UAAU,GAAGJ,GAAG;EACtB,MAAMK,gBAAgB,GAAGJ,SAAS;EAClC,MAAMK,cAAc,GAAGJ,OAAO;EAE9B,IAAIK,GAAG,GAAG,EAAE;EACZ,IAAIC,eAAe,GAAG,IAAI;EAC1B,IAAIC,UAAU,GAAGT,GAAG;EACpB,MAAM;IAAEU;EAAO,CAAC,GAAGX,KAAK;EACxB,SAAS;IACP,IAAIC,GAAG,IAAIU,MAAM,EAAE;MACjBP,MAAM,CAACQ,YAAY,CAACP,UAAU,EAAEC,gBAAgB,EAAEC,cAAc,CAAC;MACjEC,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC;MACnC;IACF;IACA,MAAMN,EAAE,GAAGK,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;IAChC,IAAIc,WAAW,CAAChB,IAAI,EAAEJ,EAAE,EAAEK,KAAK,EAAEC,GAAG,CAAC,EAAE;MACrCO,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC;MACnC;IACF;IACA,IAAIN,EAAE,OAAwB,EAAE;MAC9Ba,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC;MACnC,MAAMe,GAAG,GAAGC,eAAe,CACzBjB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACPJ,IAAI,KAAK,UAAU,EACnBK,MACF,CAAC;MACD,IAAIY,GAAG,CAACrB,EAAE,KAAK,IAAI,IAAI,CAACc,eAAe,EAAE;QACvCA,eAAe,GAAG;UAAER,GAAG;UAAEC,SAAS;UAAEC;QAAQ,CAAC;MAC/C,CAAC,MAAM;QACLK,GAAG,IAAIQ,GAAG,CAACrB,EAAE;MACf;MACA,CAAC;QAAEM,GAAG;QAAEC,SAAS;QAAEC;MAAQ,CAAC,GAAGa,GAAG;MAClCN,UAAU,GAAGT,GAAG;IAClB,CAAC,MAAM,IACLN,EAAE,SAA4B,IAC9BA,EAAE,SAAiC,EACnC;MACA,EAAEM,GAAG;MACL,EAAEE,OAAO;MACTD,SAAS,GAAGD,GAAG;IACjB,CAAC,MAAM,IAAIN,EAAE,OAAuB,IAAIA,EAAE,OAA6B,EAAE;MACvE,IAAII,IAAI,KAAK,UAAU,EAAE;QACvBS,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC,GAAG,IAAI;QAC1C,EAAEA,GAAG;QACL,IACEN,EAAE,OAA6B,IAC/BK,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC,OAAuB,EAC5C;UACA,EAAEA,GAAG;QACP;QACA,EAAEE,OAAO;QACTO,UAAU,GAAGR,SAAS,GAAGD,GAAG;MAC9B,CAAC,MAAM;QACLG,MAAM,CAACQ,YAAY,CAACP,UAAU,EAAEC,gBAAgB,EAAEC,cAAc,CAAC;MACnE;IACF,CAAC,MAAM;MACL,EAAEN,GAAG;IACP;EACF;EACA,OAEI;IACEA,GAAG;IACHiB,GAAG,EAAEV,GAAG;IACRC,eAAe;IACfP,SAAS;IACTC,OAAO;IACPgB,eAAe,EAAE,CAAC,CAACV;EACrB,CAAC;AACP;AAEA,SAASM,WAAWA,CAClBhB,IAAsC,EACtCJ,EAAU,EACVK,KAAa,EACbC,GAAW,EACX;EACA,IAAIF,IAAI,KAAK,UAAU,EAAE;IACvB,OACEJ,EAAE,OAA0B,IAC3BA,EAAE,OAAyB,IAC1BK,KAAK,CAACc,UAAU,CAACb,GAAG,GAAG,CAAC,CAAC,QAA8B;EAE7D;EACA,OACEN,EAAE,MAAMI,IAAI,KAAK,QAAQ,UAAiD,CAAC;AAE/E;AAOA,SAASkB,eAAeA,CACtBjB,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfiB,UAAmB,EACnBhB,MAAgC,EAChC;EACA,MAAMiB,cAAc,GAAG,CAACD,UAAU;EAClCnB,GAAG,EAAE;EAEL,MAAMe,GAAG,GAAIrB,EAAiB,KAAM;IAAEM,GAAG;IAAEN,EAAE;IAAEO,SAAS;IAAEC;EAAQ,CAAC,CAAC;EAEpE,MAAMR,EAAE,GAAGK,KAAK,CAACc,UAAU,CAACb,GAAG,EAAE,CAAC;EAClC,QAAQN,EAAE;IACR;MACE,OAAOqB,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,OAAOA,GAAG,CAAC,IAAI,CAAC;IAClB;MAA2B;QACzB,IAAI5B,IAAI;QACR,CAAC;UAAEA,IAAI;UAAEa;QAAI,CAAC,GAAGqB,WAAW,CAC1BtB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACP,CAAC,EACD,KAAK,EACLkB,cAAc,EACdjB,MACF,CAAC;QACD,OAAOY,GAAG,CAAC5B,IAAI,KAAK,IAAI,GAAG,IAAI,GAAGmC,MAAM,CAACC,YAAY,CAACpC,IAAI,CAAC,CAAC;MAC9D;IACA;MAA2B;QACzB,IAAIA,IAAI;QACR,CAAC;UAAEA,IAAI;UAAEa;QAAI,CAAC,GAAGwB,aAAa,CAC5BzB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACPkB,cAAc,EACdjB,MACF,CAAC;QACD,OAAOY,GAAG,CAAC5B,IAAI,KAAK,IAAI,GAAG,IAAI,GAAGmC,MAAM,CAACG,aAAa,CAACtC,IAAI,CAAC,CAAC;MAC/D;IACA;MACE,OAAO4B,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,OAAOA,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,OAAOA,GAAG,CAAC,QAAQ,CAAC;IACtB;MACE,OAAOA,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,IAAIhB,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC,OAAuB,EAAE;QAChD,EAAEA,GAAG;MACP;IAEF;MACEC,SAAS,GAAGD,GAAG;MACf,EAAEE,OAAO;IAEX;IACA;MACE,OAAOa,GAAG,CAAC,EAAE,CAAC;IAChB;IACA;MACE,IAAII,UAAU,EAAE;QACd,OAAOJ,GAAG,CAAC,IAAI,CAAC;MAClB,CAAC,MAAM;QACLZ,MAAM,CAACuB,mBAAmB,CAAC1B,GAAG,GAAG,CAAC,EAAEC,SAAS,EAAEC,OAAO,CAAC;MACzD;IAEF;MACE,IAAIR,EAAE,MAAoB,IAAIA,EAAE,MAAoB,EAAE;QACpD,MAAMiC,QAAQ,GAAG3B,GAAG,GAAG,CAAC;QACxB,MAAM4B,KAAK,GAAG,SAAS,CAACC,IAAI,CAAC9B,KAAK,CAACa,KAAK,CAACe,QAAQ,EAAE3B,GAAG,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI8B,QAAQ,GAAGF,KAAK,CAAC,CAAC,CAAC;QAEvB,IAAIG,KAAK,GAAGC,QAAQ,CAACF,QAAQ,EAAE,CAAC,CAAC;QACjC,IAAIC,KAAK,GAAG,GAAG,EAAE;UACfD,QAAQ,GAAGA,QAAQ,CAAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;UAChCmB,KAAK,GAAGC,QAAQ,CAACF,QAAQ,EAAE,CAAC,CAAC;QAC/B;QACA9B,GAAG,IAAI8B,QAAQ,CAACpB,MAAM,GAAG,CAAC;QAC1B,MAAMuB,IAAI,GAAGlC,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;QAClC,IACE8B,QAAQ,KAAK,GAAG,IAChBG,IAAI,OAAqB,IACzBA,IAAI,OAAqB,EACzB;UACA,IAAId,UAAU,EAAE;YACd,OAAOJ,GAAG,CAAC,IAAI,CAAC;UAClB,CAAC,MAAM;YACLZ,MAAM,CAACuB,mBAAmB,CAACC,QAAQ,EAAE1B,SAAS,EAAEC,OAAO,CAAC;UAC1D;QACF;QAEA,OAAOa,GAAG,CAACO,MAAM,CAACC,YAAY,CAACQ,KAAK,CAAC,CAAC;MACxC;MAEA,OAAOhB,GAAG,CAACO,MAAM,CAACC,YAAY,CAAC7B,EAAE,CAAC,CAAC;EACvC;AACF;AAOA,SAAS2B,WAAWA,CAClBtB,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfgC,GAAW,EACXC,QAAiB,EACjBf,cAAuB,EACvBjB,MAA4B,EAC5B;EACA,MAAMC,UAAU,GAAGJ,GAAG;EACtB,IAAIoC,CAAC;EACL,CAAC;IAAEA,CAAC;IAAEpC;EAAI,CAAC,GAAGqC,OAAO,CACnBtC,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACP,EAAE,EACFgC,GAAG,EACHC,QAAQ,EACR,KAAK,EACLhC,MAAM,EACY,CAACiB,cACrB,CAAC;EACD,IAAIgB,CAAC,KAAK,IAAI,EAAE;IACd,IAAIhB,cAAc,EAAE;MAClBjB,MAAM,CAACmC,qBAAqB,CAAClC,UAAU,EAAEH,SAAS,EAAEC,OAAO,CAAC;IAC9D,CAAC,MAAM;MACLF,GAAG,GAAGI,UAAU,GAAG,CAAC;IACtB;EACF;EACA,OAAO;IAAEjB,IAAI,EAAEiD,CAAC;IAAEpC;EAAI,CAAC;AACzB;AAuBO,SAASqC,OAAOA,CACrBtC,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfqC,KAAa,EACbL,GAAuB,EACvBC,QAAiB,EACjBK,iBAAmC,EACnCrC,MAAwB,EACxBsC,WAAoB,EACpB;EACA,MAAMC,KAAK,GAAG1C,GAAG;EACjB,MAAM2C,iBAAiB,GACrBJ,KAAK,KAAK,EAAE,GACRnD,iCAAiC,CAACG,GAAG,GACrCH,iCAAiC,CAACC,SAAS;EACjD,MAAMuD,gBAAgB,GACpBL,KAAK,KAAK,EAAE,GACR/C,gCAAgC,CAACD,GAAG,GACpCgD,KAAK,KAAK,EAAE,GACV/C,gCAAgC,CAACI,GAAG,GACpC2C,KAAK,KAAK,CAAC,GACT/C,gCAAgC,CAACG,GAAG,GACpCH,gCAAgC,CAACC,GAAG;EAE9C,IAAIoD,OAAO,GAAG,KAAK;EACnB,IAAIC,KAAK,GAAG,CAAC;EAEb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGd,GAAG,IAAI,IAAI,GAAGe,QAAQ,GAAGf,GAAG,EAAEa,CAAC,GAAGC,CAAC,EAAE,EAAED,CAAC,EAAE;IAC5D,MAAM5D,IAAI,GAAGY,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;IAClC,IAAIkD,GAAG;IAEP,IAAI/D,IAAI,OAAyB,IAAIqD,iBAAiB,KAAK,MAAM,EAAE;MACjE,MAAMW,IAAI,GAAGpD,KAAK,CAACc,UAAU,CAACb,GAAG,GAAG,CAAC,CAAC;MACtC,MAAMiC,IAAI,GAAGlC,KAAK,CAACc,UAAU,CAACb,GAAG,GAAG,CAAC,CAAC;MAEtC,IAAI,CAACwC,iBAAiB,EAAE;QACtB,IAAIC,WAAW,EAAE,OAAO;UAAEL,CAAC,EAAE,IAAI;UAAEpC;QAAI,CAAC;QACxCG,MAAM,CAACiD,gCAAgC,CAACpD,GAAG,EAAEC,SAAS,EAAEC,OAAO,CAAC;MAClE,CAAC,MAAM,IACLmD,MAAM,CAACC,KAAK,CAACrB,IAAI,CAAC,IAClB,CAACW,gBAAgB,CAACX,IAAI,CAAC,IACvBU,iBAAiB,CAACY,GAAG,CAACJ,IAAI,CAAC,IAC3BR,iBAAiB,CAACY,GAAG,CAACtB,IAAI,CAAC,EAC3B;QACA,IAAIQ,WAAW,EAAE,OAAO;UAAEL,CAAC,EAAE,IAAI;UAAEpC;QAAI,CAAC;QACxCG,MAAM,CAACqD,0BAA0B,CAACxD,GAAG,EAAEC,SAAS,EAAEC,OAAO,CAAC;MAC5D;MAGA,EAAEF,GAAG;MACL;IACF;IAEA,IAAIb,IAAI,MAAwB,EAAE;MAChC+D,GAAG,GAAG/D,IAAI,KAAuB,KAAqB;IACxD,CAAC,MAAM,IAAIA,IAAI,MAAwB,EAAE;MACvC+D,GAAG,GAAG/D,IAAI,KAAuB,KAAqB;IACxD,CAAC,MAAM,IAAIsE,QAAA,CAAkBtE,IAAI,CAAC,EAAE;MAClC+D,GAAG,GAAG/D,IAAI,KAAmB;IAC/B,CAAC,MAAM;MACL+D,GAAG,GAAGD,QAAQ;IAChB;IACA,IAAIC,GAAG,IAAIX,KAAK,EAAE;MAGhB,IAAIW,GAAG,IAAI,CAAC,IAAIT,WAAW,EAAE;QAC3B,OAAO;UAAEL,CAAC,EAAE,IAAI;UAAEpC;QAAI,CAAC;MACzB,CAAC,MAAM,IACLkD,GAAG,IAAI,CAAC,IACR/C,MAAM,CAACuD,YAAY,CAAC1D,GAAG,EAAEC,SAAS,EAAEC,OAAO,EAAEqC,KAAK,CAAC,EACnD;QACAW,GAAG,GAAG,CAAC;MACT,CAAC,MAAM,IAAIf,QAAQ,EAAE;QACnBe,GAAG,GAAG,CAAC;QACPL,OAAO,GAAG,IAAI;MAChB,CAAC,MAAM;QACL;MACF;IACF;IACA,EAAE7C,GAAG;IACL8C,KAAK,GAAGA,KAAK,GAAGP,KAAK,GAAGW,GAAG;EAC7B;EACA,IAAIlD,GAAG,KAAK0C,KAAK,IAAKR,GAAG,IAAI,IAAI,IAAIlC,GAAG,GAAG0C,KAAK,KAAKR,GAAI,IAAIW,OAAO,EAAE;IACpE,OAAO;MAAET,CAAC,EAAE,IAAI;MAAEpC;IAAI,CAAC;EACzB;EAEA,OAAO;IAAEoC,CAAC,EAAEU,KAAK;IAAE9C;EAAI,CAAC;AAC1B;AAMO,SAASwB,aAAaA,CAC3BzB,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfkB,cAAuB,EACvBjB,MAA8B,EAC9B;EACA,MAAMT,EAAE,GAAGK,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;EAChC,IAAIb,IAAI;EAER,IAAIO,EAAE,QAA6B,EAAE;IACnC,EAAEM,GAAG;IACL,CAAC;MAAEb,IAAI;MAAEa;IAAI,CAAC,GAAGqB,WAAW,CAC1BtB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACPH,KAAK,CAAC4D,OAAO,CAAC,GAAG,EAAE3D,GAAG,CAAC,GAAGA,GAAG,EAC7B,IAAI,EACJoB,cAAc,EACdjB,MACF,CAAC;IACD,EAAEH,GAAG;IACL,IAAIb,IAAI,KAAK,IAAI,IAAIA,IAAI,GAAG,QAAQ,EAAE;MACpC,IAAIiC,cAAc,EAAE;QAClBjB,MAAM,CAACyD,gBAAgB,CAAC5D,GAAG,EAAEC,SAAS,EAAEC,OAAO,CAAC;MAClD,CAAC,MAAM;QACL,OAAO;UAAEf,IAAI,EAAE,IAAI;UAAEa;QAAI,CAAC;MAC5B;IACF;EACF,CAAC,MAAM;IACL,CAAC;MAAEb,IAAI;MAAEa;IAAI,CAAC,GAAGqB,WAAW,CAC1BtB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACP,CAAC,EACD,KAAK,EACLkB,cAAc,EACdjB,MACF,CAAC;EACH;EACA,OAAO;IAAEhB,IAAI;IAAEa;EAAI,CAAC;AACtB","ignoreList":[]} diff --git a/backend/node_modules/@babel/helper-string-parser/package.json b/backend/node_modules/@babel/helper-string-parser/package.json deleted file mode 100644 index 33e1dd2e..00000000 --- a/backend/node_modules/@babel/helper-string-parser/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@babel/helper-string-parser", - "version": "7.27.1", - "description": "A utility package to parse strings", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-string-parser" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-string-parser", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "devDependencies": { - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)", - "exports": { - ".": { - "types": "./lib/index.d.ts", - "default": "./lib/index.js" - }, - "./package.json": "./package.json" - }, - "type": "commonjs" -} diff --git a/backend/node_modules/@babel/helper-validator-identifier/LICENSE b/backend/node_modules/@babel/helper-validator-identifier/LICENSE deleted file mode 100644 index f31575ec..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Sebastian McKenzie and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/node_modules/@babel/helper-validator-identifier/README.md b/backend/node_modules/@babel/helper-validator-identifier/README.md deleted file mode 100644 index 05c19e64..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-validator-identifier - -> Validate identifier/keywords name - -See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information. - -## Install - -Using npm: - -```sh -npm install --save @babel/helper-validator-identifier -``` - -or using yarn: - -```sh -yarn add @babel/helper-validator-identifier -``` diff --git a/backend/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/backend/node_modules/@babel/helper-validator-identifier/lib/identifier.js deleted file mode 100644 index b12e6e4b..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/lib/identifier.js +++ /dev/null @@ -1,70 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isIdentifierChar = isIdentifierChar; -exports.isIdentifierName = isIdentifierName; -exports.isIdentifierStart = isIdentifierStart; -let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; -const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); -const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; -const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; -function isInAstralSet(code, set) { - let pos = 0x10000; - for (let i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; - } - return false; -} -function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes); -} -function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); -} -function isIdentifierName(name) { - let isFirst = true; - for (let i = 0; i < name.length; i++) { - let cp = name.charCodeAt(i); - if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { - const trail = name.charCodeAt(++i); - if ((trail & 0xfc00) === 0xdc00) { - cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); - } - } - if (isFirst) { - isFirst = false; - if (!isIdentifierStart(cp)) { - return false; - } - } else if (!isIdentifierChar(cp)) { - return false; - } - } - return !isFirst; -} - -//# sourceMappingURL=identifier.js.map diff --git a/backend/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map b/backend/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map deleted file mode 100644 index bc35c37c..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","RegExp","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","code","set","pos","i","length","isIdentifierStart","test","String","fromCharCode","isIdentifierChar","isIdentifierName","name","isFirst","cp","charCodeAt","trail"],"sources":["../src/identifier.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088f\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7dc\\ua7f1-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1add\\u1ae0-\\u1aeb\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n"],"mappings":";;;;;;;;AAaA,IAAIA,4BAA4B,GAAG,spIAAspI;AAEzrI,IAAIC,uBAAuB,GAAG,4lFAA4lF;AAE1nF,MAAMC,uBAAuB,GAAG,IAAIC,MAAM,CACxC,GAAG,GAAGH,4BAA4B,GAAG,GACvC,CAAC;AACD,MAAMI,kBAAkB,GAAG,IAAID,MAAM,CACnC,GAAG,GAAGH,4BAA4B,GAAGC,uBAAuB,GAAG,GACjE,CAAC;AAEDD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAI;AAQ7D,MAAMI,0BAA0B,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEjnD,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,GAAG,CAAC;AAK52B,SAASC,aAAaA,CAACC,IAAY,EAAEC,GAAsB,EAAW;EACpE,IAAIC,GAAG,GAAG,OAAO;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,MAAM,GAAGH,GAAG,CAACG,MAAM,EAAED,CAAC,GAAGC,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IACvDD,GAAG,IAAID,GAAG,CAACE,CAAC,CAAC;IACb,IAAID,GAAG,GAAGF,IAAI,EAAE,OAAO,KAAK;IAE5BE,GAAG,IAAID,GAAG,CAACE,CAAC,GAAG,CAAC,CAAC;IACjB,IAAID,GAAG,IAAIF,IAAI,EAAE,OAAO,IAAI;EAC9B;EACA,OAAO,KAAK;AACd;AAIO,SAASK,iBAAiBA,CAACL,IAAY,EAAW;EACvD,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,MAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,OAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,IAAI,MAAM,EAAE;IAClB,OACEA,IAAI,IAAI,IAAI,IAAIN,uBAAuB,CAACY,IAAI,CAACC,MAAM,CAACC,YAAY,CAACR,IAAI,CAAC,CAAC;EAE3E;EACA,OAAOD,aAAa,CAACC,IAAI,EAAEH,0BAA0B,CAAC;AACxD;AAIO,SAASY,gBAAgBA,CAACT,IAAY,EAAW;EACtD,IAAIA,IAAI,KAAmB,EAAE,OAAOA,IAAI,OAAyB;EACjE,IAAIA,IAAI,KAAkB,EAAE,OAAO,IAAI;EACvC,IAAIA,IAAI,KAAuB,EAAE,OAAO,KAAK;EAC7C,IAAIA,IAAI,MAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,OAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,IAAI,MAAM,EAAE;IAClB,OAAOA,IAAI,IAAI,IAAI,IAAIJ,kBAAkB,CAACU,IAAI,CAACC,MAAM,CAACC,YAAY,CAACR,IAAI,CAAC,CAAC;EAC3E;EACA,OACED,aAAa,CAACC,IAAI,EAAEH,0BAA0B,CAAC,IAC/CE,aAAa,CAACC,IAAI,EAAEF,qBAAqB,CAAC;AAE9C;AAIO,SAASY,gBAAgBA,CAACC,IAAY,EAAW;EACtD,IAAIC,OAAO,GAAG,IAAI;EAClB,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGQ,IAAI,CAACP,MAAM,EAAED,CAAC,EAAE,EAAE;IAKpC,IAAIU,EAAE,GAAGF,IAAI,CAACG,UAAU,CAACX,CAAC,CAAC;IAC3B,IAAI,CAACU,EAAE,GAAG,MAAM,MAAM,MAAM,IAAIV,CAAC,GAAG,CAAC,GAAGQ,IAAI,CAACP,MAAM,EAAE;MACnD,MAAMW,KAAK,GAAGJ,IAAI,CAACG,UAAU,CAAC,EAAEX,CAAC,CAAC;MAClC,IAAI,CAACY,KAAK,GAAG,MAAM,MAAM,MAAM,EAAE;QAC/BF,EAAE,GAAG,OAAO,IAAI,CAACA,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,IAAIE,KAAK,GAAG,KAAK,CAAC;MACvD;IACF;IACA,IAAIH,OAAO,EAAE;MACXA,OAAO,GAAG,KAAK;MACf,IAAI,CAACP,iBAAiB,CAACQ,EAAE,CAAC,EAAE;QAC1B,OAAO,KAAK;MACd;IACF,CAAC,MAAM,IAAI,CAACJ,gBAAgB,CAACI,EAAE,CAAC,EAAE;MAChC,OAAO,KAAK;IACd;EACF;EACA,OAAO,CAACD,OAAO;AACjB","ignoreList":[]} diff --git a/backend/node_modules/@babel/helper-validator-identifier/lib/index.js b/backend/node_modules/@babel/helper-validator-identifier/lib/index.js deleted file mode 100644 index 76b22822..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/lib/index.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function () { - return _identifier.isIdentifierChar; - } -}); -Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function () { - return _identifier.isIdentifierName; - } -}); -Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function () { - return _identifier.isIdentifierStart; - } -}); -Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function () { - return _keyword.isKeyword; - } -}); -Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function () { - return _keyword.isReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindOnlyReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindReservedWord; - } -}); -Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictReservedWord; - } -}); -var _identifier = require("./identifier.js"); -var _keyword = require("./keyword.js"); - -//# sourceMappingURL=index.js.map diff --git a/backend/node_modules/@babel/helper-validator-identifier/lib/index.js.map b/backend/node_modules/@babel/helper-validator-identifier/lib/index.js.map deleted file mode 100644 index 171a454d..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]} diff --git a/backend/node_modules/@babel/helper-validator-identifier/lib/keyword.js b/backend/node_modules/@babel/helper-validator-identifier/lib/keyword.js deleted file mode 100644 index 054cf847..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/lib/keyword.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isKeyword = isKeyword; -exports.isReservedWord = isReservedWord; -exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; -exports.isStrictBindReservedWord = isStrictBindReservedWord; -exports.isStrictReservedWord = isStrictReservedWord; -const reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] -}; -const keywords = new Set(reservedWords.keyword); -const reservedWordsStrictSet = new Set(reservedWords.strict); -const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); -function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; -} -function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); -} -function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); -} -function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); -} -function isKeyword(word) { - return keywords.has(word); -} - -//# sourceMappingURL=keyword.js.map diff --git a/backend/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map b/backend/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map deleted file mode 100644 index 5ce6976b..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]} diff --git a/backend/node_modules/@babel/helper-validator-identifier/package.json b/backend/node_modules/@babel/helper-validator-identifier/package.json deleted file mode 100644 index 3181738d..00000000 --- a/backend/node_modules/@babel/helper-validator-identifier/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@babel/helper-validator-identifier", - "version": "7.28.5", - "description": "Validate identifier/keywords name", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-validator-identifier" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "exports": { - ".": { - "types": "./lib/index.d.ts", - "default": "./lib/index.js" - }, - "./package.json": "./package.json" - }, - "devDependencies": { - "@unicode/unicode-17.0.0": "^1.6.10", - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)", - "type": "commonjs" -} diff --git a/backend/node_modules/@babel/parser/bin/babel-parser.js b/backend/node_modules/@babel/parser/bin/babel-parser.js deleted file mode 100755 index 4808c5ee..00000000 --- a/backend/node_modules/@babel/parser/bin/babel-parser.js +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable no-var, unicorn/prefer-node-protocol */ - -var parser = require(".."); -var fs = require("fs"); - -var filename = process.argv[2]; -if (!filename) { - console.error("no filename specified"); -} else { - var file = fs.readFileSync(filename, "utf8"); - var ast = parser.parse(file); - - console.log(JSON.stringify(ast, null, " ")); -} diff --git a/backend/node_modules/@babel/parser/typings/babel-parser.d.ts b/backend/node_modules/@babel/parser/typings/babel-parser.d.ts deleted file mode 100644 index 82c35c16..00000000 --- a/backend/node_modules/@babel/parser/typings/babel-parser.d.ts +++ /dev/null @@ -1,262 +0,0 @@ -// This file is auto-generated! Do not modify it directly. -// Run `yarn gulp bundle-dts` to re-generate it. -/* eslint-disable @typescript-eslint/consistent-type-imports, @typescript-eslint/no-redundant-type-constituents */ -import { File, Expression } from '@babel/types'; - -declare class Position { - line: number; - column: number; - index: number; - constructor(line: number, col: number, index: number); -} - -type SyntaxPlugin = "flow" | "typescript" | "jsx" | "pipelineOperator" | "placeholders"; -type ParseErrorCode = "BABEL_PARSER_SYNTAX_ERROR" | "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"; -interface ParseErrorSpecification { - code: ParseErrorCode; - reasonCode: string; - syntaxPlugin?: SyntaxPlugin; - missingPlugin?: string | string[]; - loc: Position; - details: ErrorDetails; - pos: number; -} -type ParseError$1 = SyntaxError & ParseErrorSpecification; - -type BABEL_8_BREAKING = false; -type IF_BABEL_7 = false extends BABEL_8_BREAKING ? V : never; - -type Plugin$1 = - | "asyncDoExpressions" - | IF_BABEL_7<"asyncGenerators"> - | IF_BABEL_7<"bigInt"> - | IF_BABEL_7<"classPrivateMethods"> - | IF_BABEL_7<"classPrivateProperties"> - | IF_BABEL_7<"classProperties"> - | IF_BABEL_7<"classStaticBlock"> - | IF_BABEL_7<"decimal"> - | "decorators-legacy" - | "deferredImportEvaluation" - | "decoratorAutoAccessors" - | "destructuringPrivate" - | "deprecatedImportAssert" - | "doExpressions" - | IF_BABEL_7<"dynamicImport"> - | IF_BABEL_7<"explicitResourceManagement"> - | "exportDefaultFrom" - | IF_BABEL_7<"exportNamespaceFrom"> - | "flow" - | "flowComments" - | "functionBind" - | "functionSent" - | "importMeta" - | "jsx" - | IF_BABEL_7<"jsonStrings"> - | IF_BABEL_7<"logicalAssignment"> - | IF_BABEL_7<"importAssertions"> - | IF_BABEL_7<"importReflection"> - | "moduleBlocks" - | IF_BABEL_7<"moduleStringNames"> - | IF_BABEL_7<"nullishCoalescingOperator"> - | IF_BABEL_7<"numericSeparator"> - | IF_BABEL_7<"objectRestSpread"> - | IF_BABEL_7<"optionalCatchBinding"> - | IF_BABEL_7<"optionalChaining"> - | "partialApplication" - | "placeholders" - | IF_BABEL_7<"privateIn"> - | IF_BABEL_7<"regexpUnicodeSets"> - | "sourcePhaseImports" - | "throwExpressions" - | IF_BABEL_7<"topLevelAwait"> - | "v8intrinsic" - | ParserPluginWithOptions[0]; - -type ParserPluginWithOptions = - | ["decorators", DecoratorsPluginOptions] - | ["discardBinding", { syntaxType: "void" }] - | ["estree", { classFeatures?: boolean }] - | IF_BABEL_7<["importAttributes", { deprecatedAssertSyntax: boolean }]> - | IF_BABEL_7<["moduleAttributes", { version: "may-2020" }]> - | ["optionalChainingAssign", { version: "2023-07" }] - | ["pipelineOperator", PipelineOperatorPluginOptions] - | ["recordAndTuple", RecordAndTuplePluginOptions] - | ["flow", FlowPluginOptions] - | ["typescript", TypeScriptPluginOptions]; - -type PluginConfig = Plugin$1 | ParserPluginWithOptions; - -interface DecoratorsPluginOptions { - decoratorsBeforeExport?: boolean; - allowCallParenthesized?: boolean; -} - -interface PipelineOperatorPluginOptions { - proposal: BABEL_8_BREAKING extends false - ? "minimal" | "fsharp" | "hack" | "smart" - : "fsharp" | "hack"; - topicToken?: "%" | "#" | "@@" | "^^" | "^"; -} - -interface RecordAndTuplePluginOptions { - syntaxType: "bar" | "hash"; -} - -type FlowPluginOptions = BABEL_8_BREAKING extends true - ? { - all?: boolean; - enums?: boolean; - } - : { - all?: boolean; - }; - -interface TypeScriptPluginOptions { - dts?: boolean; - disallowAmbiguousJSXLike?: boolean; -} - -type Plugin = PluginConfig; - -type SourceType = "script" | "commonjs" | "module" | "unambiguous"; -interface Options { - /** - * By default, import and export declarations can only appear at a program's top level. - * Setting this option to true allows them anywhere where a statement is allowed. - */ - allowImportExportEverywhere?: boolean; - /** - * By default, await use is not allowed outside of an async function. - * Set this to true to accept such code. - */ - allowAwaitOutsideFunction?: boolean; - /** - * By default, a return statement at the top level raises an error. - * Set this to true to accept such code. - */ - allowReturnOutsideFunction?: boolean; - /** - * By default, new.target use is not allowed outside of a function or class. - * Set this to true to accept such code. - */ - allowNewTargetOutsideFunction?: boolean; - /** - * By default, super calls are not allowed outside of a method. - * Set this to true to accept such code. - */ - allowSuperOutsideMethod?: boolean; - /** - * By default, exported identifiers must refer to a declared variable. - * Set this to true to allow export statements to reference undeclared variables. - */ - allowUndeclaredExports?: boolean; - /** - * By default, yield use is not allowed outside of a generator function. - * Set this to true to accept such code. - */ - allowYieldOutsideFunction?: boolean; - /** - * By default, Babel parser JavaScript code according to Annex B syntax. - * Set this to `false` to disable such behavior. - */ - annexB?: boolean; - /** - * By default, Babel attaches comments to adjacent AST nodes. - * When this option is set to false, comments are not attached. - * It can provide up to 30% performance improvement when the input code has many comments. - * @babel/eslint-parser will set it for you. - * It is not recommended to use attachComment: false with Babel transform, - * as doing so removes all the comments in output code, and renders annotations such as - * /* istanbul ignore next *\/ nonfunctional. - */ - attachComment?: boolean; - /** - * By default, Babel always throws an error when it finds some invalid code. - * When this option is set to true, it will store the parsing error and - * try to continue parsing the invalid input file. - */ - errorRecovery?: boolean; - /** - * Indicate the mode the code should be parsed in. - * Can be one of "script", "commonjs", "module", or "unambiguous". Defaults to "script". - * "unambiguous" will make @babel/parser attempt to guess, based on the presence - * of ES6 import or export statements. - * Files with ES6 imports and exports are considered "module" and are otherwise "script". - * - * Use "commonjs" to parse code that is intended to be run in a CommonJS environment such as Node.js. - */ - sourceType?: SourceType; - /** - * Correlate output AST nodes with their source filename. - * Useful when generating code and source maps from the ASTs of multiple input files. - */ - sourceFilename?: string; - /** - * By default, all source indexes start from 0. - * You can provide a start index to alternatively start with. - * Useful for integration with other source tools. - */ - startIndex?: number; - /** - * By default, the first line of code parsed is treated as line 1. - * You can provide a line number to alternatively start with. - * Useful for integration with other source tools. - */ - startLine?: number; - /** - * By default, the parsed code is treated as if it starts from line 1, column 0. - * You can provide a column number to alternatively start with. - * Useful for integration with other source tools. - */ - startColumn?: number; - /** - * Array containing the plugins that you want to enable. - */ - plugins?: Plugin[]; - /** - * Should the parser work in strict mode. - * Defaults to true if sourceType === 'module'. Otherwise, false. - */ - strictMode?: boolean; - /** - * Adds a ranges property to each node: [node.start, node.end] - */ - ranges?: boolean; - /** - * Adds all parsed tokens to a tokens property on the File node. - */ - tokens?: boolean; - /** - * By default, the parser adds information about parentheses by setting - * `extra.parenthesized` to `true` as needed. - * When this option is `true` the parser creates `ParenthesizedExpression` - * AST nodes instead of using the `extra` property. - */ - createParenthesizedExpressions?: boolean; - /** - * The default is false in Babel 7 and true in Babel 8 - * Set this to true to parse it as an `ImportExpression` node. - * Otherwise `import(foo)` is parsed as `CallExpression(Import, [Identifier(foo)])`. - */ - createImportExpressions?: boolean; -} - -type ParserOptions = Partial; -type ParseError = ParseError$1; -type ParseResult = Result & { - comments: File["comments"]; - errors: null | ParseError[]; - tokens?: File["tokens"]; -}; -/** - * Parse the provided code as an entire ECMAScript program. - */ -declare function parse(input: string, options?: ParserOptions): ParseResult; -declare function parseExpression(input: string, options?: ParserOptions): ParseResult; - -declare const tokTypes: { - // todo(flow->ts) real token type - [name: string]: any; -}; - -export { DecoratorsPluginOptions, FlowPluginOptions, ParseError, ParseResult, ParserOptions, PluginConfig as ParserPlugin, ParserPluginWithOptions, PipelineOperatorPluginOptions, RecordAndTuplePluginOptions, TypeScriptPluginOptions, parse, parseExpression, tokTypes }; diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 00000000..4273df30 --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,1655 @@ +{ + "name": "backend", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "@vitest/coverage-v8": "^4.0.10" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "peer": true + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "dev": true, + "peer": true + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "peer": true + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/@vitest/coverage-v8": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.10.tgz", + "integrity": "sha512-g+brmtoKa/sAeIohNJnnWhnHtU6GuqqVOSQ4SxDIPcgZWZyhJs5RmF5LpqXs8Kq64lANP+vnbn5JLzhLj/G56g==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.0.10", + "ast-v8-to-istanbul": "^0.3.8", + "debug": "^4.4.3", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.1", + "std-env": "^3.10.0", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.0.10", + "vitest": "4.0.10" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.10.tgz", + "integrity": "sha512-3QkTX/lK39FBNwARCQRSQr0TP9+ywSdxSX+LgbJ2M1WmveXP72anTbnp2yl5fH+dU6SUmBzNMrDHs80G8G2DZg==", + "dev": true, + "peer": true, + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.10", + "@vitest/utils": "4.0.10", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.10.tgz", + "integrity": "sha512-e2OfdexYkjkg8Hh3L9NVEfbwGXq5IZbDovkf30qW2tOh7Rh9sVtmSr2ztEXOFbymNxS4qjzLXUQIvATvN4B+lg==", + "dev": true, + "peer": true, + "dependencies": { + "@vitest/spy": "4.0.10", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.10.tgz", + "integrity": "sha512-99EQbpa/zuDnvVjthwz5bH9o8iPefoQZ63WV8+bsRJZNw3qQSvSltfut8yu1Jc9mqOYi7pEbsKxYTi/rjaq6PA==", + "dev": true, + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.10.tgz", + "integrity": "sha512-EXU2iSkKvNwtlL8L8doCpkyclw0mc/t4t9SeOnfOFPyqLmQwuceMPA4zJBa6jw0MKsZYbw7kAn+gl7HxrlB8UQ==", + "dev": true, + "peer": true, + "dependencies": { + "@vitest/utils": "4.0.10", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.10.tgz", + "integrity": "sha512-2N4X2ZZl7kZw0qeGdQ41H0KND96L3qX1RgwuCfy6oUsF2ISGD/HpSbmms+CkIOsQmg2kulwfhJ4CI0asnZlvkg==", + "dev": true, + "peer": true, + "dependencies": { + "@vitest/pretty-format": "4.0.10", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.10.tgz", + "integrity": "sha512-AsY6sVS8OLb96GV5RoG8B6I35GAbNrC49AO+jNRF9YVGb/g9t+hzNm1H6kD0NDp8tt7VJLs6hb7YMkDXqu03iw==", + "dev": true, + "peer": true, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.10.tgz", + "integrity": "sha512-kOuqWnEwZNtQxMKg3WmPK1vmhZu9WcoX69iwWjVz+jvKTsF1emzsv3eoPcDr6ykA3qP2bsCQE7CwqfNtAVzsmg==", + "dev": true, + "dependencies": { + "@vitest/pretty-format": "4.0.10", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, + "node_modules/chai": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "peer": true + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "peer": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "peer": true + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "peer": true + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "peer": true + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "peer": true + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "peer": true + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "peer": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vite": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz", + "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", + "dev": true, + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.10.tgz", + "integrity": "sha512-2Fqty3MM9CDwOVet/jaQalYlbcjATZwPYGcqpiYQqgQ/dLC7GuHdISKgTYIVF/kaishKxLzleKWWfbSDklyIKg==", + "dev": true, + "peer": true, + "dependencies": { + "@vitest/expect": "4.0.10", + "@vitest/mocker": "4.0.10", + "@vitest/pretty-format": "4.0.10", + "@vitest/runner": "4.0.10", + "@vitest/snapshot": "4.0.10", + "@vitest/spy": "4.0.10", + "@vitest/utils": "4.0.10", + "debug": "^4.4.3", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.10", + "@vitest/browser-preview": "4.0.10", + "@vitest/browser-webdriverio": "4.0.10", + "@vitest/ui": "4.0.10", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "peer": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 00000000..06565b23 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,5 @@ +{ + "devDependencies": { + "@vitest/coverage-v8": "^4.0.10" + } +} diff --git a/frontend/coverage/ImportReviewTable.tsx.html b/frontend/coverage/ImportReviewTable.tsx.html deleted file mode 100644 index 95055b89..00000000 --- a/frontend/coverage/ImportReviewTable.tsx.html +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - Code coverage report for ImportReviewTable.tsx - - - - - - - - - -
-
-

All files ImportReviewTable.tsx

-
- -
- 90.47% - Statements - 19/21 -
- - -
- 91.3% - Branches - 21/23 -
- - -
- 100% - Functions - 8/8 -
- - -
- 90% - Lines - 18/20 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173  -  -  -  -  -  -  -  -  -  -  -12x -12x -  -12x -  -12x -2x -  -  -12x -  -1x -1x -  -  -  -  -1x -1x -1x -  -1x -  -  -  -12x -  -  -  -  -  -  -  -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -9x -  -  -  -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -12x -12x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useState } from 'react'
- 
-interface ImportReviewTableProps {
-  hosts: any[]
-  conflicts: string[]
-  errors: string[]
-  onCommit: (resolutions: Record<string, string>) => Promise<void>
-  onCancel: () => void
-}
- 
-export default function ImportReviewTable({ hosts, conflicts, errors, onCommit, onCancel }: ImportReviewTableProps) {
-  const [resolutions, setResolutions] = useState<Record<string, string>>({})
-  const [loading, setLoading] = useState(false)
- 
-  const hasConflicts = conflicts.length > 0
- 
-  const handleResolutionChange = (domain: string, action: string) => {
-    setResolutions({ ...resolutions, [domain]: action })
-  }
- 
-  const handleCommit = async () => {
-    // Ensure all conflicts have resolutions
-    const unresolvedConflicts = conflicts.filter(c => !resolutions[c])
-    Iif (unresolvedConflicts.length > 0) {
-      alert(`Please resolve all conflicts: ${unresolvedConflicts.join(', ')}`)
-      return
-    }
- 
-    setLoading(true)
-    try {
-      await onCommit(resolutions)
-    } finally {
-      setLoading(false)
-    }
-  }
- 
-  return (
-    <div className="space-y-6">
-      {/* Errors */}
-      {errors.length > 0 && (
-        <div className="bg-red-900/20 border border-red-500 rounded-lg p-4">
-          <h3 className="text-lg font-semibold text-red-400 mb-2">Errors</h3>
-          <ul className="list-disc list-inside space-y-1">
-            {errors.map((error, idx) => (
-              <li key={idx} className="text-sm text-red-300">{error}</li>
-            ))}
-          </ul>
-        </div>
-      )}
- 
-      {/* Conflicts */}
-      {hasConflicts && (
-        <div className="bg-yellow-900/20 border border-yellow-500 rounded-lg p-4">
-          <h3 className="text-lg font-semibold text-yellow-400 mb-2">
-            Conflicts Detected ({conflicts.length})
-          </h3>
-          <p className="text-sm text-gray-300 mb-4">
-            The following domains already exist. Choose how to handle each conflict:
-          </p>
-          <div className="space-y-3">
-            {conflicts.map((domain) => (
-              <div key={domain} className="flex items-center justify-between bg-gray-900 p-3 rounded">
-                <span className="text-white font-medium">{domain}</span>
-                <select
-                  value={resolutions[domain] || ''}
-                  onChange={e => handleResolutionChange(domain, e.target.value)}
-                  className="bg-gray-800 border border-gray-700 rounded px-3 py-1 text-white text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
-                >
-                  <option value="">-- Choose action --</option>
-                  <option value="skip">Skip (keep existing)</option>
-                  <option value="overwrite">Overwrite existing</option>
-                </select>
-              </div>
-            ))}
-          </div>
-        </div>
-      )}
- 
-      {/* Preview Hosts */}
-      <div className="bg-dark-card rounded-lg border border-gray-800 overflow-hidden">
-        <div className="px-6 py-4 bg-gray-900 border-b border-gray-800">
-          <h3 className="text-lg font-semibold text-white">
-            Hosts to Import ({hosts.length})
-          </h3>
-        </div>
-        <div className="overflow-x-auto">
-          <table className="w-full">
-            <thead className="bg-gray-900 border-b border-gray-800">
-              <tr>
-                <th className="px-6 py-3 text-left text-xs font-medium text-gray-400 uppercase tracking-wider">
-                  Domain
-                </th>
-                <th className="px-6 py-3 text-left text-xs font-medium text-gray-400 uppercase tracking-wider">
-                  Forward To
-                </th>
-                <th className="px-6 py-3 text-left text-xs font-medium text-gray-400 uppercase tracking-wider">
-                  SSL
-                </th>
-                <th className="px-6 py-3 text-left text-xs font-medium text-gray-400 uppercase tracking-wider">
-                  Features
-                </th>
-              </tr>
-            </thead>
-            <tbody className="divide-y divide-gray-800">
-              {hosts.map((host, idx) => {
-                const isConflict = conflicts.includes(host.domain_names)
-                return (
-                  <tr key={idx} className={`hover:bg-gray-900/50 ${isConflict ? 'bg-yellow-900/10' : ''}`}>
-                    <td className="px-6 py-4 whitespace-nowrap">
-                      <div className="flex items-center gap-2">
-                        <span className="text-sm font-medium text-white">{host.domain_names}</span>
-                        {isConflict && (
-                          <span className="px-2 py-1 text-xs bg-yellow-900/30 text-yellow-400 rounded">
-                            Conflict
-                          </span>
-                        )}
-                      </div>
-                    </td>
-                    <td className="px-6 py-4 whitespace-nowrap">
-                      <div className="text-sm text-gray-300">
-                        {host.forward_scheme}://{host.forward_host}:{host.forward_port}
-                      </div>
-                    </td>
-                    <td className="px-6 py-4 whitespace-nowrap">
-                      {host.ssl_forced && (
-                        <span className="px-2 py-1 text-xs bg-green-900/30 text-green-400 rounded">
-                          SSL
-                        </span>
-                      )}
-                    </td>
-                    <td className="px-6 py-4 whitespace-nowrap">
-                      <div className="flex gap-2">
-                        {host.http2_support && (
-                          <span className="px-2 py-1 text-xs bg-blue-900/30 text-blue-400 rounded">
-                            HTTP/2
-                          </span>
-                        )}
-                        {host.websocket_support && (
-                          <span className="px-2 py-1 text-xs bg-purple-900/30 text-purple-400 rounded">
-                            WS
-                          </span>
-                        )}
-                      </div>
-                    </td>
-                  </tr>
-                )
-              })}
-            </tbody>
-          </table>
-        </div>
-      </div>
- 
-      {/* Actions */}
-      <div className="flex gap-3 justify-end">
-        <button
-          onClick={onCancel}
-          disabled={loading}
-          className="px-6 py-2 bg-gray-700 hover:bg-gray-600 text-white rounded-lg font-medium transition-colors disabled:opacity-50"
-        >
-          Cancel
-        </button>
-        <button
-          onClick={handleCommit}
-          disabled={loading || (hasConflicts && Object.keys(resolutions).length < conflicts.length)}
-          className="px-6 py-2 bg-blue-active hover:bg-blue-hover text-white rounded-lg font-medium transition-colors disabled:opacity-50"
-        >
-          {loading ? 'Importing...' : 'Commit Import'}
-        </button>
-      </div>
-    </div>
-  )
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/frontend/coverage/Layout.tsx.html b/frontend/coverage/Layout.tsx.html deleted file mode 100644 index beefe3e2..00000000 --- a/frontend/coverage/Layout.tsx.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - Code coverage report for Layout.tsx - - - - - - - - - -
-
-

All files Layout.tsx

-
- -
- 100% - Statements - 5/5 -
- - -
- 100% - Branches - 2/2 -
- - -
- 100% - Functions - 2/2 -
- - -
- 100% - Lines - 5/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59  -  -  -  -  -  -  -  -4x -  -4x -  -  -  -  -  -  -  -4x -  -  -  -  -  -  -  -  -20x -20x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { ReactNode } from 'react'
-import { Link, useLocation } from 'react-router-dom'
- 
-interface LayoutProps {
-  children: ReactNode
-}
- 
-export default function Layout({ children }: LayoutProps) {
-  const location = useLocation()
- 
-  const navigation = [
-    { name: 'Dashboard', path: '/', icon: '📊' },
-    { name: 'Proxy Hosts', path: '/proxy-hosts', icon: '🌐' },
-    { name: 'Remote Servers', path: '/remote-servers', icon: '🖥️' },
-    { name: 'Import Caddyfile', path: '/import', icon: '📥' },
-    { name: 'Settings', path: '/settings', icon: '⚙️' },
-  ]
- 
-  return (
-    <div className="min-h-screen bg-dark-bg flex">
-      {/* Sidebar */}
-      <aside className="w-60 bg-dark-sidebar border-r border-gray-800 flex flex-col">
-        <div className="p-6">
-          <h1 className="text-xl font-bold text-white">Caddy Proxy Manager+</h1>
-        </div>
-        <nav className="flex-1 px-4 space-y-1">
-          {navigation.map((item) => {
-            const isActive = location.pathname === item.path
-            return (
-              <Link
-                key={item.path}
-                to={item.path}
-                className={`flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium transition-colors ${
-                  isActive
-                    ? 'bg-blue-active text-white'
-                    : 'text-gray-400 hover:bg-gray-800 hover:text-white'
-                }`}
-              >
-                <span className="text-lg">{item.icon}</span>
-                {item.name}
-              </Link>
-            )
-          })}
-        </nav>
-        <div className="p-4 border-t border-gray-800">
-          <div className="text-xs text-gray-500">
-            Version 0.1.0
-          </div>
-        </div>
-      </aside>
- 
-      {/* Main content */}
-      <main className="flex-1 overflow-auto">
-        {children}
-      </main>
-    </div>
-  )
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/frontend/coverage/ProxyHostForm.tsx.html b/frontend/coverage/ProxyHostForm.tsx.html deleted file mode 100644 index 0d9fb644..00000000 --- a/frontend/coverage/ProxyHostForm.tsx.html +++ /dev/null @@ -1,895 +0,0 @@ - - - - - - Code coverage report for ProxyHostForm.tsx - - - - - - - - - -
-
-

All files ProxyHostForm.tsx

-
- -
- 64.1% - Statements - 25/39 -
- - -
- 86.84% - Branches - 33/38 -
- - -
- 50% - Functions - 10/20 -
- - -
- 65.78% - Lines - 25/38 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -18x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -18x -18x -18x -  -18x -6x -6x -6x -6x -  -  -  -  -6x -  -  -18x -1x -1x -1x -  -1x -1x -  -  -  -1x -  -  -  -18x -  -  -  -  -  -  -  -  -  -  -  -18x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -16x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useState, useEffect } from 'react'
-import { ProxyHost } from '../hooks/useProxyHosts'
-import { remoteServersAPI } from '../services/api'
- 
-interface ProxyHostFormProps {
-  host?: ProxyHost
-  onSubmit: (data: Partial<ProxyHost>) => Promise<void>
-  onCancel: () => void
-}
- 
-interface RemoteServer {
-  uuid: string
-  name: string
-  provider: string
-  host: string
-  port: number
-  enabled: boolean
-}
- 
-export default function ProxyHostForm({ host, onSubmit, onCancel }: ProxyHostFormProps) {
-  const [formData, setFormData] = useState({
-    domain_names: host?.domain_names || '',
-    forward_scheme: host?.forward_scheme || 'http',
-    forward_host: host?.forward_host || '',
-    forward_port: host?.forward_port || 80,
-    ssl_forced: host?.ssl_forced ?? false,
-    http2_support: host?.http2_support ?? false,
-    hsts_enabled: host?.hsts_enabled ?? false,
-    hsts_subdomains: host?.hsts_subdomains ?? false,
-    block_exploits: host?.block_exploits ?? true,
-    websocket_support: host?.websocket_support ?? false,
-    advanced_config: host?.advanced_config || '',
-    enabled: host?.enabled ?? true,
-  })
- 
-  const [remoteServers, setRemoteServers] = useState<RemoteServer[]>([])
-  const [loading, setLoading] = useState(false)
-  const [error, setError] = useState<string | null>(null)
- 
-  useEffect(() => {
-    const fetchServers = async () => {
-      try {
-        const servers = await remoteServersAPI.list(true)
-        setRemoteServers(servers)
-      } catch (err) {
-        console.error('Failed to fetch remote servers:', err)
-      }
-    }
-    fetchServers()
-  }, [])
- 
-  const handleSubmit = async (e: React.FormEvent) => {
-    e.preventDefault()
-    setLoading(true)
-    setError(null)
- 
-    try {
-      await onSubmit(formData)
-    } catch (err) {
-      setError(err instanceof Error ? err.message : 'Failed to save proxy host')
-    } finally {
-      setLoading(false)
-    }
-  }
- 
-  const handleServerSelect = (serverUuid: string) => {
-    const server = remoteServers.find(s => s.uuid === serverUuid)
-    if (server) {
-      setFormData({
-        ...formData,
-        forward_host: server.host,
-        forward_port: server.port,
-        forward_scheme: 'http',
-      })
-    }
-  }
- 
-  return (
-    <div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center p-4 z-50">
-      <div className="bg-dark-card rounded-lg border border-gray-800 max-w-2xl w-full max-h-[90vh] overflow-y-auto">
-        <div className="p-6 border-b border-gray-800">
-          <h2 className="text-2xl font-bold text-white">
-            {host ? 'Edit Proxy Host' : 'Add Proxy Host'}
-          </h2>
-        </div>
- 
-        <form onSubmit={handleSubmit} className="p-6 space-y-6">
-          {error && (
-            <div className="bg-red-900/20 border border-red-500 text-red-400 px-4 py-3 rounded">
-              {error}
-            </div>
-          )}
- 
-          {/* Domain Names */}
-          <div>
-            <label className="block text-sm font-medium text-gray-300 mb-2">
-              Domain Names (comma-separated)
-            </label>
-            <input
-              type="text"
-              required
-              value={formData.domain_names}
-              onChange={e => setFormData({ ...formData, domain_names: e.target.value })}
-              placeholder="example.com, www.example.com"
-              className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-            />
-          </div>
- 
-          {/* Remote Server Quick Select */}
-          {remoteServers.length > 0 && (
-            <div>
-              <label className="block text-sm font-medium text-gray-300 mb-2">
-                Quick Select from Remote Servers
-              </label>
-              <select
-                onChange={e => handleServerSelect(e.target.value)}
-                className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-              >
-                <option value="">-- Select a server --</option>
-                {remoteServers.map(server => (
-                  <option key={server.uuid} value={server.uuid}>
-                    {server.name} ({server.host}:{server.port})
-                  </option>
-                ))}
-              </select>
-            </div>
-          )}
- 
-          {/* Forward Details */}
-          <div className="grid grid-cols-3 gap-4">
-            <div>
-              <label className="block text-sm font-medium text-gray-300 mb-2">Scheme</label>
-              <select
-                value={formData.forward_scheme}
-                onChange={e => setFormData({ ...formData, forward_scheme: e.target.value })}
-                className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-              >
-                <option value="http">HTTP</option>
-                <option value="https">HTTPS</option>
-              </select>
-            </div>
-            <div>
-              <label className="block text-sm font-medium text-gray-300 mb-2">Host</label>
-              <input
-                type="text"
-                required
-                value={formData.forward_host}
-                onChange={e => setFormData({ ...formData, forward_host: e.target.value })}
-                placeholder="192.168.1.100"
-                className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-              />
-            </div>
-            <div>
-              <label className="block text-sm font-medium text-gray-300 mb-2">Port</label>
-              <input
-                type="number"
-                required
-                min="1"
-                max="65535"
-                value={formData.forward_port}
-                onChange={e => setFormData({ ...formData, forward_port: parseInt(e.target.value) })}
-                className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-              />
-            </div>
-          </div>
- 
-          {/* SSL & Security Options */}
-          <div className="space-y-3">
-            <label className="flex items-center gap-3">
-              <input
-                type="checkbox"
-                checked={formData.ssl_forced}
-                onChange={e => setFormData({ ...formData, ssl_forced: e.target.checked })}
-                className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-              />
-              <span className="text-sm text-gray-300">Force SSL</span>
-            </label>
-            <label className="flex items-center gap-3">
-              <input
-                type="checkbox"
-                checked={formData.http2_support}
-                onChange={e => setFormData({ ...formData, http2_support: e.target.checked })}
-                className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-              />
-              <span className="text-sm text-gray-300">HTTP/2 Support</span>
-            </label>
-            <label className="flex items-center gap-3">
-              <input
-                type="checkbox"
-                checked={formData.hsts_enabled}
-                onChange={e => setFormData({ ...formData, hsts_enabled: e.target.checked })}
-                className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-              />
-              <span className="text-sm text-gray-300">HSTS Enabled</span>
-            </label>
-            <label className="flex items-center gap-3">
-              <input
-                type="checkbox"
-                checked={formData.hsts_subdomains}
-                onChange={e => setFormData({ ...formData, hsts_subdomains: e.target.checked })}
-                className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-              />
-              <span className="text-sm text-gray-300">HSTS Subdomains</span>
-            </label>
-            <label className="flex items-center gap-3">
-              <input
-                type="checkbox"
-                checked={formData.block_exploits}
-                onChange={e => setFormData({ ...formData, block_exploits: e.target.checked })}
-                className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-              />
-              <span className="text-sm text-gray-300">Block Common Exploits</span>
-            </label>
-            <label className="flex items-center gap-3">
-              <input
-                type="checkbox"
-                checked={formData.websocket_support}
-                onChange={e => setFormData({ ...formData, websocket_support: e.target.checked })}
-                className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-              />
-              <span className="text-sm text-gray-300">WebSocket Support</span>
-            </label>
-            <label className="flex items-center gap-3">
-              <input
-                type="checkbox"
-                checked={formData.enabled}
-                onChange={e => setFormData({ ...formData, enabled: e.target.checked })}
-                className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-              />
-              <span className="text-sm text-gray-300">Enabled</span>
-            </label>
-          </div>
- 
-          {/* Advanced Config */}
-          <div>
-            <label className="block text-sm font-medium text-gray-300 mb-2">
-              Advanced Caddy Config (Optional)
-            </label>
-            <textarea
-              value={formData.advanced_config}
-              onChange={e => setFormData({ ...formData, advanced_config: e.target.value })}
-              placeholder="Additional Caddy directives..."
-              rows={4}
-              className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white font-mono text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
-            />
-          </div>
- 
-          {/* Actions */}
-          <div className="flex gap-3 justify-end pt-4 border-t border-gray-800">
-            <button
-              type="button"
-              onClick={onCancel}
-              disabled={loading}
-              className="px-6 py-2 bg-gray-700 hover:bg-gray-600 text-white rounded-lg font-medium transition-colors disabled:opacity-50"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              disabled={loading}
-              className="px-6 py-2 bg-blue-active hover:bg-blue-hover text-white rounded-lg font-medium transition-colors disabled:opacity-50"
-            >
-              {loading ? 'Saving...' : (host ? 'Update' : 'Create')}
-            </button>
-          </div>
-        </form>
-      </div>
-    </div>
-  )
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/frontend/coverage/RemoteServerForm.tsx.html b/frontend/coverage/RemoteServerForm.tsx.html deleted file mode 100644 index f11438cf..00000000 --- a/frontend/coverage/RemoteServerForm.tsx.html +++ /dev/null @@ -1,715 +0,0 @@ - - - - - - Code coverage report for RemoteServerForm.tsx - - - - - - - - - -
-
-

All files RemoteServerForm.tsx

-
- -
- 58.06% - Statements - 18/31 -
- - -
- 54.76% - Branches - 23/42 -
- - -
- 66.66% - Functions - 6/9 -
- - -
- 60% - Lines - 18/30 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211  -  -  -  -  -  -  -  -  -  -  -13x -  -  -  -  -  -  -  -  -13x -13x -13x -13x -  -13x -1x -1x -1x -  -1x -1x -  -  -  -1x -  -  -  -13x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -13x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
import { useState } from 'react'
-import { RemoteServer } from '../hooks/useRemoteServers'
-import { remoteServersAPI } from '../services/api'
- 
-interface RemoteServerFormProps {
-  server?: RemoteServer
-  onSubmit: (data: Partial<RemoteServer>) => Promise<void>
-  onCancel: () => void
-}
- 
-export default function RemoteServerForm({ server, onSubmit, onCancel }: RemoteServerFormProps) {
-  const [formData, setFormData] = useState({
-    name: server?.name || '',
-    provider: server?.provider || 'generic',
-    host: server?.host || '',
-    port: server?.port || 80,
-    username: server?.username || '',
-    enabled: server?.enabled ?? true,
-  })
- 
-  const [loading, setLoading] = useState(false)
-  const [error, setError] = useState<string | null>(null)
-  const [testResult, setTestResult] = useState<any | null>(null)
-  const [testing, setTesting] = useState(false)
- 
-  const handleSubmit = async (e: React.FormEvent) => {
-    e.preventDefault()
-    setLoading(true)
-    setError(null)
- 
-    try {
-      await onSubmit(formData)
-    } catch (err) {
-      setError(err instanceof Error ? err.message : 'Failed to save remote server')
-    } finally {
-      setLoading(false)
-    }
-  }
- 
-  const handleTestConnection = async () => {
-    if (!server) return
- 
-    setTesting(true)
-    setTestResult(null)
-    setError(null)
- 
-    try {
-      const result = await remoteServersAPI.test(server.uuid)
-      setTestResult(result)
-    } catch (err) {
-      setError(err instanceof Error ? err.message : 'Failed to test connection')
-    } finally {
-      setTesting(false)
-    }
-  }
- 
-  return (
-    <div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center p-4 z-50">
-      <div className="bg-dark-card rounded-lg border border-gray-800 max-w-lg w-full">
-        <div className="p-6 border-b border-gray-800">
-          <h2 className="text-2xl font-bold text-white">
-            {server ? 'Edit Remote Server' : 'Add Remote Server'}
-          </h2>
-        </div>
- 
-        <form onSubmit={handleSubmit} className="p-6 space-y-4">
-          {error && (
-            <div className="bg-red-900/20 border border-red-500 text-red-400 px-4 py-3 rounded">
-              {error}
-            </div>
-          )}
- 
-          <div>
-            <label className="block text-sm font-medium text-gray-300 mb-2">Name</label>
-            <input
-              type="text"
-              required
-              value={formData.name}
-              onChange={e => setFormData({ ...formData, name: e.target.value })}
-              placeholder="My Production Server"
-              className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-            />
-          </div>
- 
-          <div>
-            <label className="block text-sm font-medium text-gray-300 mb-2">Provider</label>
-            <select
-              value={formData.provider}
-              onChange={e => setFormData({ ...formData, provider: e.target.value })}
-              className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-            >
-              <option value="generic">Generic</option>
-              <option value="docker">Docker</option>
-              <option value="kubernetes">Kubernetes</option>
-              <option value="aws">AWS</option>
-              <option value="gcp">GCP</option>
-              <option value="azure">Azure</option>
-            </select>
-          </div>
- 
-          <div className="grid grid-cols-2 gap-4">
-            <div>
-              <label className="block text-sm font-medium text-gray-300 mb-2">Host</label>
-              <input
-                type="text"
-                required
-                value={formData.host}
-                onChange={e => setFormData({ ...formData, host: e.target.value })}
-                placeholder="192.168.1.100"
-                className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-              />
-            </div>
-            <div>
-              <label className="block text-sm font-medium text-gray-300 mb-2">Port</label>
-              <input
-                type="number"
-                required
-                min="1"
-                max="65535"
-                value={formData.port}
-                onChange={e => setFormData({ ...formData, port: parseInt(e.target.value) })}
-                className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-              />
-            </div>
-          </div>
- 
-          <div>
-            <label className="block text-sm font-medium text-gray-300 mb-2">
-              Username (Optional)
-            </label>
-            <input
-              type="text"
-              value={formData.username}
-              onChange={e => setFormData({ ...formData, username: e.target.value })}
-              placeholder="admin"
-              className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
-            />
-          </div>
- 
-          <label className="flex items-center gap-3">
-            <input
-              type="checkbox"
-              checked={formData.enabled}
-              onChange={e => setFormData({ ...formData, enabled: e.target.checked })}
-              className="w-4 h-4 text-blue-600 bg-gray-900 border-gray-700 rounded focus:ring-blue-500"
-            />
-            <span className="text-sm text-gray-300">Enabled</span>
-          </label>
- 
-          {/* Connection Test */}
-          {server && (
-            <div className="pt-4 border-t border-gray-800">
-              <button
-                type="button"
-                onClick={handleTestConnection}
-                disabled={testing}
-                className="w-full px-4 py-2 bg-gray-700 hover:bg-gray-600 text-white rounded-lg font-medium transition-colors disabled:opacity-50 flex items-center justify-center gap-2"
-              >
-                {testing ? (
-                  <>
-                    <span className="animate-spin">⏳</span>
-                    Testing Connection...
-                  </>
-                ) : (
-                  <>
-                    <span>🔌</span>
-                    Test Connection
-                  </>
-                )}
-              </button>
-              {testResult && (
-                <div className={`mt-3 p-3 rounded-lg ${testResult.reachable ? 'bg-green-900/20 border border-green-500' : 'bg-red-900/20 border border-red-500'}`}>
-                  <div className="flex items-center gap-2">
-                    <span className={testResult.reachable ? 'text-green-400' : 'text-red-400'}>
-                      {testResult.reachable ? '✓ Connection Successful' : '✗ Connection Failed'}
-                    </span>
-                  </div>
-                  {testResult.error && (
-                    <div className="text-xs text-red-300 mt-1">{testResult.error}</div>
-                  )}
-                  {testResult.address && (
-                    <div className="text-xs text-gray-400 mt-1">Address: {testResult.address}</div>
-                  )}
-                </div>
-              )}
-            </div>
-          )}
- 
-          <div className="flex gap-3 justify-end pt-4 border-t border-gray-800">
-            <button
-              type="button"
-              onClick={onCancel}
-              disabled={loading}
-              className="px-6 py-2 bg-gray-700 hover:bg-gray-600 text-white rounded-lg font-medium transition-colors disabled:opacity-50"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              disabled={loading}
-              className="px-6 py-2 bg-blue-active hover:bg-blue-hover text-white rounded-lg font-medium transition-colors disabled:opacity-50"
-            >
-              {loading ? 'Saving...' : (server ? 'Update' : 'Create')}
-            </button>
-          </div>
-        </form>
-      </div>
-    </div>
-  )
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/frontend/coverage/coverage-final.json b/frontend/coverage/coverage-final.json index 13b2a7be..3869103c 100644 --- a/frontend/coverage/coverage-final.json +++ b/frontend/coverage/coverage-final.json @@ -1,5 +1,12 @@ -{"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/ImportReviewTable.tsx": {"path":"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/ImportReviewTable.tsx","statementMap":{"0":{"start":{"line":12,"column":36},"end":{"line":12,"column":null}},"1":{"start":{"line":13,"column":28},"end":{"line":13,"column":null}},"2":{"start":{"line":15,"column":23},"end":{"line":15,"column":null}},"3":{"start":{"line":17,"column":33},"end":{"line":19,"column":null}},"4":{"start":{"line":18,"column":4},"end":{"line":18,"column":null}},"5":{"start":{"line":21,"column":23},"end":{"line":35,"column":null}},"6":{"start":{"line":23,"column":32},"end":{"line":23,"column":null}},"7":{"start":{"line":23,"column":54},"end":{"line":23,"column":69}},"8":{"start":{"line":24,"column":4},"end":{"line":27,"column":null}},"9":{"start":{"line":25,"column":6},"end":{"line":25,"column":null}},"10":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"11":{"start":{"line":29,"column":4},"end":{"line":29,"column":null}},"12":{"start":{"line":30,"column":4},"end":{"line":34,"column":null}},"13":{"start":{"line":31,"column":6},"end":{"line":31,"column":null}},"14":{"start":{"line":33,"column":6},"end":{"line":33,"column":null}},"15":{"start":{"line":37,"column":2},"end":{"line":170,"column":null}},"16":{"start":{"line":45,"column":14},"end":{"line":45,"column":null}},"17":{"start":{"line":62,"column":14},"end":{"line":73,"column":null}},"18":{"start":{"line":66,"column":33},"end":{"line":66,"column":null}},"19":{"start":{"line":106,"column":35},"end":{"line":106,"column":null}},"20":{"start":{"line":107,"column":16},"end":{"line":145,"column":null}}},"fnMap":{"0":{"name":"ImportReviewTable","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":42}},"loc":{"start":{"line":11,"column":116},"end":{"line":172,"column":null}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":33},"end":{"line":17,"column":34}},"loc":{"start":{"line":17,"column":69},"end":{"line":19,"column":null}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":23},"end":{"line":21,"column":35}},"loc":{"start":{"line":21,"column":35},"end":{"line":35,"column":null}},"line":21},"3":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":49},"end":{"line":23,"column":54}},"loc":{"start":{"line":23,"column":54},"end":{"line":23,"column":69}},"line":23},"4":{"name":"(anonymous_4)","decl":{"start":{"line":44,"column":24},"end":{"line":44,"column":25}},"loc":{"start":{"line":45,"column":14},"end":{"line":45,"column":null}},"line":45},"5":{"name":"(anonymous_5)","decl":{"start":{"line":61,"column":27},"end":{"line":61,"column":28}},"loc":{"start":{"line":62,"column":14},"end":{"line":73,"column":null}},"line":62},"6":{"name":"(anonymous_6)","decl":{"start":{"line":66,"column":28},"end":{"line":66,"column":33}},"loc":{"start":{"line":66,"column":33},"end":{"line":66,"column":null}},"line":66},"7":{"name":"(anonymous_7)","decl":{"start":{"line":105,"column":25},"end":{"line":105,"column":26}},"loc":{"start":{"line":105,"column":40},"end":{"line":147,"column":15}},"line":105}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":4},"end":{"line":27,"column":null}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":27,"column":null}},{"start":{},"end":{}}],"line":24},"1":{"loc":{"start":{"line":40,"column":7},"end":{"line":48,"column":null}},"type":"binary-expr","locations":[{"start":{"line":40,"column":7},"end":{"line":40,"column":null}},{"start":{"line":41,"column":8},"end":{"line":48,"column":null}}],"line":40},"2":{"loc":{"start":{"line":52,"column":7},"end":{"line":76,"column":null}},"type":"binary-expr","locations":[{"start":{"line":52,"column":7},"end":{"line":52,"column":null}},{"start":{"line":53,"column":8},"end":{"line":76,"column":null}}],"line":52},"3":{"loc":{"start":{"line":65,"column":25},"end":{"line":65,"column":null}},"type":"binary-expr","locations":[{"start":{"line":65,"column":25},"end":{"line":65,"column":48}},{"start":{"line":65,"column":48},"end":{"line":65,"column":null}}],"line":65},"4":{"loc":{"start":{"line":108,"column":67},"end":{"line":108,"column":103}},"type":"cond-expr","locations":[{"start":{"line":108,"column":80},"end":{"line":108,"column":101}},{"start":{"line":108,"column":101},"end":{"line":108,"column":103}}],"line":108},"5":{"loc":{"start":{"line":112,"column":25},"end":{"line":115,"column":null}},"type":"binary-expr","locations":[{"start":{"line":112,"column":25},"end":{"line":112,"column":null}},{"start":{"line":113,"column":26},"end":{"line":115,"column":null}}],"line":112},"6":{"loc":{"start":{"line":125,"column":23},"end":{"line":128,"column":null}},"type":"binary-expr","locations":[{"start":{"line":125,"column":23},"end":{"line":125,"column":null}},{"start":{"line":126,"column":24},"end":{"line":128,"column":null}}],"line":125},"7":{"loc":{"start":{"line":133,"column":25},"end":{"line":136,"column":null}},"type":"binary-expr","locations":[{"start":{"line":133,"column":25},"end":{"line":133,"column":null}},{"start":{"line":134,"column":26},"end":{"line":136,"column":null}}],"line":133},"8":{"loc":{"start":{"line":138,"column":25},"end":{"line":141,"column":null}},"type":"binary-expr","locations":[{"start":{"line":138,"column":25},"end":{"line":138,"column":null}},{"start":{"line":139,"column":26},"end":{"line":141,"column":null}}],"line":138},"9":{"loc":{"start":{"line":164,"column":20},"end":{"line":164,"column":null}},"type":"binary-expr","locations":[{"start":{"line":164,"column":20},"end":{"line":164,"column":32}},{"start":{"line":164,"column":32},"end":{"line":164,"column":48}},{"start":{"line":164,"column":48},"end":{"line":164,"column":null}}],"line":164},"10":{"loc":{"start":{"line":167,"column":11},"end":{"line":167,"column":null}},"type":"cond-expr","locations":[{"start":{"line":167,"column":21},"end":{"line":167,"column":38}},{"start":{"line":167,"column":38},"end":{"line":167,"column":null}}],"line":167}},"s":{"0":12,"1":12,"2":12,"3":12,"4":2,"5":12,"6":1,"7":1,"8":1,"9":0,"10":0,"11":1,"12":1,"13":1,"14":1,"15":12,"16":2,"17":9,"18":2,"19":12,"20":12},"f":{"0":12,"1":2,"2":1,"3":1,"4":2,"5":9,"6":2,"7":12},"b":{"0":[0,1],"1":[12,1],"2":[12,9],"3":[9,5],"4":[1,11],"5":[12,1],"6":[12,11],"7":[12,11],"8":[12,0],"9":[12,11,8],"10":[1,11]},"meta":{"lastBranch":11,"lastFunction":8,"lastStatement":21,"seen":{"f:11:24:11:42":0,"s:12:36:12:Infinity":0,"s:13:28:13:Infinity":1,"s:15:23:15:Infinity":2,"s:17:33:19:Infinity":3,"f:17:33:17:34":1,"s:18:4:18:Infinity":4,"s:21:23:35:Infinity":5,"f:21:23:21:35":2,"s:23:32:23:Infinity":6,"f:23:49:23:54":3,"s:23:54:23:69":7,"b:24:4:27:Infinity:undefined:undefined:undefined:undefined":0,"s:24:4:27:Infinity":8,"s:25:6:25:Infinity":9,"s:26:6:26:Infinity":10,"s:29:4:29:Infinity":11,"s:30:4:34:Infinity":12,"s:31:6:31:Infinity":13,"s:33:6:33:Infinity":14,"s:37:2:170:Infinity":15,"b:40:7:40:Infinity:41:8:48:Infinity":1,"f:44:24:44:25":4,"s:45:14:45:Infinity":16,"b:52:7:52:Infinity:53:8:76:Infinity":2,"f:61:27:61:28":5,"s:62:14:73:Infinity":17,"b:65:25:65:48:65:48:65:Infinity":3,"f:66:28:66:33":6,"s:66:33:66:Infinity":18,"f:105:25:105:26":7,"s:106:35:106:Infinity":19,"s:107:16:145:Infinity":20,"b:108:80:108:101:108:101:108:103":4,"b:112:25:112:Infinity:113:26:115:Infinity":5,"b:125:23:125:Infinity:126:24:128:Infinity":6,"b:133:25:133:Infinity:134:26:136:Infinity":7,"b:138:25:138:Infinity:139:26:141:Infinity":8,"b:164:20:164:32:164:32:164:48:164:48:164:Infinity":9,"b:167:21:167:38:167:38:167:Infinity":10}}} -,"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/Layout.tsx": {"path":"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/Layout.tsx","statementMap":{"0":{"start":{"line":9,"column":8},"end":{"line":9,"column":null}},"1":{"start":{"line":11,"column":21},"end":{"line":17,"column":null}},"2":{"start":{"line":19,"column":2},"end":{"line":56,"column":null}},"3":{"start":{"line":28,"column":29},"end":{"line":28,"column":null}},"4":{"start":{"line":29,"column":12},"end":{"line":41,"column":null}}},"fnMap":{"0":{"name":"Layout","decl":{"start":{"line":8,"column":24},"end":{"line":8,"column":31}},"loc":{"start":{"line":8,"column":58},"end":{"line":58,"column":null}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":26},"end":{"line":27,"column":27}},"loc":{"start":{"line":27,"column":36},"end":{"line":43,"column":11}},"line":27}},"branchMap":{"0":{"loc":{"start":{"line":34,"column":18},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":35,"column":22},"end":{"line":35,"column":null}},{"start":{"line":36,"column":22},"end":{"line":36,"column":null}}],"line":34}},"s":{"0":4,"1":4,"2":4,"3":20,"4":20},"f":{"0":4,"1":20},"b":{"0":[4,16]},"meta":{"lastBranch":1,"lastFunction":2,"lastStatement":5,"seen":{"f:8:24:8:31":0,"s:9:8:9:Infinity":0,"s:11:21:17:Infinity":1,"s:19:2:56:Infinity":2,"f:27:26:27:27":1,"s:28:29:28:Infinity":3,"s:29:12:41:Infinity":4,"b:35:22:35:Infinity:36:22:36:Infinity":0}}} -,"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/ProxyHostForm.tsx": {"path":"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/ProxyHostForm.tsx","statementMap":{"0":{"start":{"line":21,"column":30},"end":{"line":34,"column":null}},"1":{"start":{"line":36,"column":40},"end":{"line":36,"column":null}},"2":{"start":{"line":37,"column":28},"end":{"line":37,"column":null}},"3":{"start":{"line":38,"column":24},"end":{"line":38,"column":null}},"4":{"start":{"line":40,"column":2},"end":{"line":50,"column":null}},"5":{"start":{"line":41,"column":25},"end":{"line":48,"column":null}},"6":{"start":{"line":42,"column":6},"end":{"line":47,"column":null}},"7":{"start":{"line":43,"column":24},"end":{"line":43,"column":null}},"8":{"start":{"line":44,"column":8},"end":{"line":44,"column":null}},"9":{"start":{"line":46,"column":8},"end":{"line":46,"column":null}},"10":{"start":{"line":49,"column":4},"end":{"line":49,"column":null}},"11":{"start":{"line":52,"column":23},"end":{"line":64,"column":null}},"12":{"start":{"line":53,"column":4},"end":{"line":53,"column":null}},"13":{"start":{"line":54,"column":4},"end":{"line":54,"column":null}},"14":{"start":{"line":55,"column":4},"end":{"line":55,"column":null}},"15":{"start":{"line":57,"column":4},"end":{"line":63,"column":null}},"16":{"start":{"line":58,"column":6},"end":{"line":58,"column":null}},"17":{"start":{"line":60,"column":6},"end":{"line":60,"column":null}},"18":{"start":{"line":62,"column":6},"end":{"line":62,"column":null}},"19":{"start":{"line":66,"column":29},"end":{"line":76,"column":null}},"20":{"start":{"line":67,"column":19},"end":{"line":67,"column":null}},"21":{"start":{"line":67,"column":43},"end":{"line":67,"column":64}},"22":{"start":{"line":68,"column":4},"end":{"line":75,"column":null}},"23":{"start":{"line":69,"column":6},"end":{"line":74,"column":null}},"24":{"start":{"line":78,"column":2},"end":{"line":268,"column":null}},"25":{"start":{"line":103,"column":29},"end":{"line":103,"column":null}},"26":{"start":{"line":116,"column":31},"end":{"line":116,"column":null}},"27":{"start":{"line":121,"column":18},"end":{"line":123,"column":null}},"28":{"start":{"line":135,"column":31},"end":{"line":135,"column":null}},"29":{"start":{"line":148,"column":31},"end":{"line":148,"column":null}},"30":{"start":{"line":161,"column":31},"end":{"line":161,"column":null}},"31":{"start":{"line":173,"column":31},"end":{"line":173,"column":null}},"32":{"start":{"line":182,"column":31},"end":{"line":182,"column":null}},"33":{"start":{"line":191,"column":31},"end":{"line":191,"column":null}},"34":{"start":{"line":200,"column":31},"end":{"line":200,"column":null}},"35":{"start":{"line":209,"column":31},"end":{"line":209,"column":null}},"36":{"start":{"line":218,"column":31},"end":{"line":218,"column":null}},"37":{"start":{"line":227,"column":31},"end":{"line":227,"column":null}},"38":{"start":{"line":241,"column":29},"end":{"line":241,"column":null}}},"fnMap":{"0":{"name":"ProxyHostForm","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":38}},"loc":{"start":{"line":20,"column":88},"end":{"line":270,"column":null}},"line":20},"1":{"name":"(anonymous_1)","decl":{"start":{"line":40,"column":12},"end":{"line":40,"column":18}},"loc":{"start":{"line":40,"column":18},"end":{"line":50,"column":5}},"line":40},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":25},"end":{"line":41,"column":37}},"loc":{"start":{"line":41,"column":37},"end":{"line":48,"column":null}},"line":41},"3":{"name":"(anonymous_3)","decl":{"start":{"line":52,"column":23},"end":{"line":52,"column":30}},"loc":{"start":{"line":52,"column":53},"end":{"line":64,"column":null}},"line":52},"4":{"name":"(anonymous_4)","decl":{"start":{"line":66,"column":29},"end":{"line":66,"column":30}},"loc":{"start":{"line":66,"column":53},"end":{"line":76,"column":null}},"line":66},"5":{"name":"(anonymous_5)","decl":{"start":{"line":67,"column":38},"end":{"line":67,"column":43}},"loc":{"start":{"line":67,"column":43},"end":{"line":67,"column":64}},"line":67},"6":{"name":"(anonymous_6)","decl":{"start":{"line":103,"column":24},"end":{"line":103,"column":29}},"loc":{"start":{"line":103,"column":29},"end":{"line":103,"column":null}},"line":103},"7":{"name":"(anonymous_7)","decl":{"start":{"line":116,"column":26},"end":{"line":116,"column":31}},"loc":{"start":{"line":116,"column":31},"end":{"line":116,"column":null}},"line":116},"8":{"name":"(anonymous_8)","decl":{"start":{"line":120,"column":35},"end":{"line":120,"column":null}},"loc":{"start":{"line":121,"column":18},"end":{"line":123,"column":null}},"line":121},"9":{"name":"(anonymous_9)","decl":{"start":{"line":135,"column":26},"end":{"line":135,"column":31}},"loc":{"start":{"line":135,"column":31},"end":{"line":135,"column":null}},"line":135},"10":{"name":"(anonymous_10)","decl":{"start":{"line":148,"column":26},"end":{"line":148,"column":31}},"loc":{"start":{"line":148,"column":31},"end":{"line":148,"column":null}},"line":148},"11":{"name":"(anonymous_11)","decl":{"start":{"line":161,"column":26},"end":{"line":161,"column":31}},"loc":{"start":{"line":161,"column":31},"end":{"line":161,"column":null}},"line":161},"12":{"name":"(anonymous_12)","decl":{"start":{"line":173,"column":26},"end":{"line":173,"column":31}},"loc":{"start":{"line":173,"column":31},"end":{"line":173,"column":null}},"line":173},"13":{"name":"(anonymous_13)","decl":{"start":{"line":182,"column":26},"end":{"line":182,"column":31}},"loc":{"start":{"line":182,"column":31},"end":{"line":182,"column":null}},"line":182},"14":{"name":"(anonymous_14)","decl":{"start":{"line":191,"column":26},"end":{"line":191,"column":31}},"loc":{"start":{"line":191,"column":31},"end":{"line":191,"column":null}},"line":191},"15":{"name":"(anonymous_15)","decl":{"start":{"line":200,"column":26},"end":{"line":200,"column":31}},"loc":{"start":{"line":200,"column":31},"end":{"line":200,"column":null}},"line":200},"16":{"name":"(anonymous_16)","decl":{"start":{"line":209,"column":26},"end":{"line":209,"column":31}},"loc":{"start":{"line":209,"column":31},"end":{"line":209,"column":null}},"line":209},"17":{"name":"(anonymous_17)","decl":{"start":{"line":218,"column":26},"end":{"line":218,"column":31}},"loc":{"start":{"line":218,"column":31},"end":{"line":218,"column":null}},"line":218},"18":{"name":"(anonymous_18)","decl":{"start":{"line":227,"column":26},"end":{"line":227,"column":31}},"loc":{"start":{"line":227,"column":31},"end":{"line":227,"column":null}},"line":227},"19":{"name":"(anonymous_19)","decl":{"start":{"line":241,"column":24},"end":{"line":241,"column":29}},"loc":{"start":{"line":241,"column":29},"end":{"line":241,"column":null}},"line":241}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":18},"end":{"line":22,"column":null}},"type":"binary-expr","locations":[{"start":{"line":22,"column":18},"end":{"line":22,"column":40}},{"start":{"line":22,"column":40},"end":{"line":22,"column":null}}],"line":22},"1":{"loc":{"start":{"line":23,"column":20},"end":{"line":23,"column":null}},"type":"binary-expr","locations":[{"start":{"line":23,"column":20},"end":{"line":23,"column":44}},{"start":{"line":23,"column":44},"end":{"line":23,"column":null}}],"line":23},"2":{"loc":{"start":{"line":24,"column":18},"end":{"line":24,"column":null}},"type":"binary-expr","locations":[{"start":{"line":24,"column":18},"end":{"line":24,"column":40}},{"start":{"line":24,"column":40},"end":{"line":24,"column":null}}],"line":24},"3":{"loc":{"start":{"line":25,"column":18},"end":{"line":25,"column":null}},"type":"binary-expr","locations":[{"start":{"line":25,"column":18},"end":{"line":25,"column":40}},{"start":{"line":25,"column":40},"end":{"line":25,"column":null}}],"line":25},"4":{"loc":{"start":{"line":26,"column":16},"end":{"line":26,"column":null}},"type":"binary-expr","locations":[{"start":{"line":26,"column":16},"end":{"line":26,"column":36}},{"start":{"line":26,"column":36},"end":{"line":26,"column":null}}],"line":26},"5":{"loc":{"start":{"line":27,"column":19},"end":{"line":27,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":19},"end":{"line":27,"column":42}},{"start":{"line":27,"column":42},"end":{"line":27,"column":null}}],"line":27},"6":{"loc":{"start":{"line":28,"column":18},"end":{"line":28,"column":null}},"type":"binary-expr","locations":[{"start":{"line":28,"column":18},"end":{"line":28,"column":40}},{"start":{"line":28,"column":40},"end":{"line":28,"column":null}}],"line":28},"7":{"loc":{"start":{"line":29,"column":21},"end":{"line":29,"column":null}},"type":"binary-expr","locations":[{"start":{"line":29,"column":21},"end":{"line":29,"column":46}},{"start":{"line":29,"column":46},"end":{"line":29,"column":null}}],"line":29},"8":{"loc":{"start":{"line":30,"column":20},"end":{"line":30,"column":null}},"type":"binary-expr","locations":[{"start":{"line":30,"column":20},"end":{"line":30,"column":44}},{"start":{"line":30,"column":44},"end":{"line":30,"column":null}}],"line":30},"9":{"loc":{"start":{"line":31,"column":23},"end":{"line":31,"column":null}},"type":"binary-expr","locations":[{"start":{"line":31,"column":23},"end":{"line":31,"column":50}},{"start":{"line":31,"column":50},"end":{"line":31,"column":null}}],"line":31},"10":{"loc":{"start":{"line":32,"column":21},"end":{"line":32,"column":null}},"type":"binary-expr","locations":[{"start":{"line":32,"column":21},"end":{"line":32,"column":46}},{"start":{"line":32,"column":46},"end":{"line":32,"column":null}}],"line":32},"11":{"loc":{"start":{"line":33,"column":13},"end":{"line":33,"column":null}},"type":"binary-expr","locations":[{"start":{"line":33,"column":13},"end":{"line":33,"column":30}},{"start":{"line":33,"column":30},"end":{"line":33,"column":null}}],"line":33},"12":{"loc":{"start":{"line":60,"column":15},"end":{"line":60,"column":79}},"type":"cond-expr","locations":[{"start":{"line":60,"column":38},"end":{"line":60,"column":52}},{"start":{"line":60,"column":52},"end":{"line":60,"column":79}}],"line":60},"13":{"loc":{"start":{"line":68,"column":4},"end":{"line":75,"column":null}},"type":"if","locations":[{"start":{"line":68,"column":4},"end":{"line":75,"column":null}},{"start":{},"end":{}}],"line":68},"14":{"loc":{"start":{"line":83,"column":13},"end":{"line":83,"column":null}},"type":"cond-expr","locations":[{"start":{"line":83,"column":20},"end":{"line":83,"column":40}},{"start":{"line":83,"column":40},"end":{"line":83,"column":null}}],"line":83},"15":{"loc":{"start":{"line":88,"column":11},"end":{"line":91,"column":null}},"type":"binary-expr","locations":[{"start":{"line":88,"column":11},"end":{"line":88,"column":null}},{"start":{"line":89,"column":12},"end":{"line":91,"column":null}}],"line":88},"16":{"loc":{"start":{"line":110,"column":11},"end":{"line":126,"column":null}},"type":"binary-expr","locations":[{"start":{"line":110,"column":11},"end":{"line":110,"column":null}},{"start":{"line":111,"column":12},"end":{"line":126,"column":null}}],"line":110},"17":{"loc":{"start":{"line":263,"column":15},"end":{"line":263,"column":null}},"type":"cond-expr","locations":[{"start":{"line":263,"column":25},"end":{"line":263,"column":40}},{"start":{"line":263,"column":40},"end":{"line":263,"column":null}}],"line":263},"18":{"loc":{"start":{"line":263,"column":40},"end":{"line":263,"column":null}},"type":"cond-expr","locations":[{"start":{"line":263,"column":47},"end":{"line":263,"column":58}},{"start":{"line":263,"column":58},"end":{"line":263,"column":null}}],"line":263}},"s":{"0":18,"1":18,"2":18,"3":18,"4":18,"5":6,"6":6,"7":6,"8":6,"9":0,"10":6,"11":18,"12":1,"13":1,"14":1,"15":1,"16":1,"17":0,"18":1,"19":18,"20":0,"21":0,"22":0,"23":0,"24":18,"25":1,"26":0,"27":16,"28":0,"29":1,"30":1,"31":1,"32":0,"33":0,"34":0,"35":0,"36":1,"37":0,"38":0},"f":{"0":18,"1":6,"2":6,"3":1,"4":0,"5":0,"6":1,"7":0,"8":16,"9":0,"10":1,"11":1,"12":1,"13":0,"14":0,"15":0,"16":0,"17":1,"18":0,"19":0},"b":{"0":[18,16],"1":[18,16],"2":[18,16],"3":[18,16],"4":[18,16],"5":[18,16],"6":[18,16],"7":[18,16],"8":[18,16],"9":[18,16],"10":[18,18],"11":[18,16],"12":[0,0],"13":[0,0],"14":[2,16],"15":[18,0],"16":[18,8],"17":[1,17],"18":[2,15]},"meta":{"lastBranch":19,"lastFunction":20,"lastStatement":39,"seen":{"f:20:24:20:38":0,"s:21:30:34:Infinity":0,"b:22:18:22:40:22:40:22:Infinity":0,"b:23:20:23:44:23:44:23:Infinity":1,"b:24:18:24:40:24:40:24:Infinity":2,"b:25:18:25:40:25:40:25:Infinity":3,"b:26:16:26:36:26:36:26:Infinity":4,"b:27:19:27:42:27:42:27:Infinity":5,"b:28:18:28:40:28:40:28:Infinity":6,"b:29:21:29:46:29:46:29:Infinity":7,"b:30:20:30:44:30:44:30:Infinity":8,"b:31:23:31:50:31:50:31:Infinity":9,"b:32:21:32:46:32:46:32:Infinity":10,"b:33:13:33:30:33:30:33:Infinity":11,"s:36:40:36:Infinity":1,"s:37:28:37:Infinity":2,"s:38:24:38:Infinity":3,"s:40:2:50:Infinity":4,"f:40:12:40:18":1,"s:41:25:48:Infinity":5,"f:41:25:41:37":2,"s:42:6:47:Infinity":6,"s:43:24:43:Infinity":7,"s:44:8:44:Infinity":8,"s:46:8:46:Infinity":9,"s:49:4:49:Infinity":10,"s:52:23:64:Infinity":11,"f:52:23:52:30":3,"s:53:4:53:Infinity":12,"s:54:4:54:Infinity":13,"s:55:4:55:Infinity":14,"s:57:4:63:Infinity":15,"s:58:6:58:Infinity":16,"s:60:6:60:Infinity":17,"b:60:38:60:52:60:52:60:79":12,"s:62:6:62:Infinity":18,"s:66:29:76:Infinity":19,"f:66:29:66:30":4,"s:67:19:67:Infinity":20,"f:67:38:67:43":5,"s:67:43:67:64":21,"b:68:4:75:Infinity:undefined:undefined:undefined:undefined":13,"s:68:4:75:Infinity":22,"s:69:6:74:Infinity":23,"s:78:2:268:Infinity":24,"b:83:20:83:40:83:40:83:Infinity":14,"b:88:11:88:Infinity:89:12:91:Infinity":15,"f:103:24:103:29":6,"s:103:29:103:Infinity":25,"b:110:11:110:Infinity:111:12:126:Infinity":16,"f:116:26:116:31":7,"s:116:31:116:Infinity":26,"f:120:35:120:Infinity":8,"s:121:18:123:Infinity":27,"f:135:26:135:31":9,"s:135:31:135:Infinity":28,"f:148:26:148:31":10,"s:148:31:148:Infinity":29,"f:161:26:161:31":11,"s:161:31:161:Infinity":30,"f:173:26:173:31":12,"s:173:31:173:Infinity":31,"f:182:26:182:31":13,"s:182:31:182:Infinity":32,"f:191:26:191:31":14,"s:191:31:191:Infinity":33,"f:200:26:200:31":15,"s:200:31:200:Infinity":34,"f:209:26:209:31":16,"s:209:31:209:Infinity":35,"f:218:26:218:31":17,"s:218:31:218:Infinity":36,"f:227:26:227:31":18,"s:227:31:227:Infinity":37,"f:241:24:241:29":19,"s:241:29:241:Infinity":38,"b:263:25:263:40:263:40:263:Infinity":17,"b:263:47:263:58:263:58:263:Infinity":18}}} -,"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/RemoteServerForm.tsx": {"path":"/home/jeremy/Server/Projects/CaddyProxyManagerPlus/CaddyProxyManagerPlus/frontend/src/components/RemoteServerForm.tsx","statementMap":{"0":{"start":{"line":12,"column":30},"end":{"line":19,"column":null}},"1":{"start":{"line":21,"column":28},"end":{"line":21,"column":null}},"2":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"3":{"start":{"line":23,"column":34},"end":{"line":23,"column":null}},"4":{"start":{"line":24,"column":28},"end":{"line":24,"column":null}},"5":{"start":{"line":26,"column":23},"end":{"line":38,"column":null}},"6":{"start":{"line":27,"column":4},"end":{"line":27,"column":null}},"7":{"start":{"line":28,"column":4},"end":{"line":28,"column":null}},"8":{"start":{"line":29,"column":4},"end":{"line":29,"column":null}},"9":{"start":{"line":31,"column":4},"end":{"line":37,"column":null}},"10":{"start":{"line":32,"column":6},"end":{"line":32,"column":null}},"11":{"start":{"line":34,"column":6},"end":{"line":34,"column":null}},"12":{"start":{"line":36,"column":6},"end":{"line":36,"column":null}},"13":{"start":{"line":40,"column":31},"end":{"line":55,"column":null}},"14":{"start":{"line":41,"column":4},"end":{"line":41,"column":null}},"15":{"start":{"line":41,"column":17},"end":{"line":41,"column":null}},"16":{"start":{"line":43,"column":4},"end":{"line":43,"column":null}},"17":{"start":{"line":44,"column":4},"end":{"line":44,"column":null}},"18":{"start":{"line":45,"column":4},"end":{"line":45,"column":null}},"19":{"start":{"line":47,"column":4},"end":{"line":54,"column":null}},"20":{"start":{"line":48,"column":21},"end":{"line":48,"column":null}},"21":{"start":{"line":49,"column":6},"end":{"line":49,"column":null}},"22":{"start":{"line":51,"column":6},"end":{"line":51,"column":null}},"23":{"start":{"line":53,"column":6},"end":{"line":53,"column":null}},"24":{"start":{"line":57,"column":2},"end":{"line":208,"column":null}},"25":{"start":{"line":79,"column":29},"end":{"line":79,"column":null}},"26":{"start":{"line":89,"column":29},"end":{"line":89,"column":null}},"27":{"start":{"line":108,"column":31},"end":{"line":108,"column":null}},"28":{"start":{"line":121,"column":31},"end":{"line":121,"column":null}},"29":{"start":{"line":134,"column":29},"end":{"line":134,"column":null}},"30":{"start":{"line":144,"column":29},"end":{"line":144,"column":null}}},"fnMap":{"0":{"name":"RemoteServerForm","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":41}},"loc":{"start":{"line":11,"column":96},"end":{"line":210,"column":null}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":23},"end":{"line":26,"column":30}},"loc":{"start":{"line":26,"column":53},"end":{"line":38,"column":null}},"line":26},"2":{"name":"(anonymous_2)","decl":{"start":{"line":40,"column":31},"end":{"line":40,"column":43}},"loc":{"start":{"line":40,"column":43},"end":{"line":55,"column":null}},"line":40},"3":{"name":"(anonymous_3)","decl":{"start":{"line":79,"column":24},"end":{"line":79,"column":29}},"loc":{"start":{"line":79,"column":29},"end":{"line":79,"column":null}},"line":79},"4":{"name":"(anonymous_4)","decl":{"start":{"line":89,"column":24},"end":{"line":89,"column":29}},"loc":{"start":{"line":89,"column":29},"end":{"line":89,"column":null}},"line":89},"5":{"name":"(anonymous_5)","decl":{"start":{"line":108,"column":26},"end":{"line":108,"column":31}},"loc":{"start":{"line":108,"column":31},"end":{"line":108,"column":null}},"line":108},"6":{"name":"(anonymous_6)","decl":{"start":{"line":121,"column":26},"end":{"line":121,"column":31}},"loc":{"start":{"line":121,"column":31},"end":{"line":121,"column":null}},"line":121},"7":{"name":"(anonymous_7)","decl":{"start":{"line":134,"column":24},"end":{"line":134,"column":29}},"loc":{"start":{"line":134,"column":29},"end":{"line":134,"column":null}},"line":134},"8":{"name":"(anonymous_8)","decl":{"start":{"line":144,"column":24},"end":{"line":144,"column":29}},"loc":{"start":{"line":144,"column":29},"end":{"line":144,"column":null}},"line":144}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":10},"end":{"line":13,"column":null}},"type":"binary-expr","locations":[{"start":{"line":13,"column":10},"end":{"line":13,"column":26}},{"start":{"line":13,"column":26},"end":{"line":13,"column":null}}],"line":13},"1":{"loc":{"start":{"line":14,"column":14},"end":{"line":14,"column":null}},"type":"binary-expr","locations":[{"start":{"line":14,"column":14},"end":{"line":14,"column":34}},{"start":{"line":14,"column":34},"end":{"line":14,"column":null}}],"line":14},"2":{"loc":{"start":{"line":15,"column":10},"end":{"line":15,"column":null}},"type":"binary-expr","locations":[{"start":{"line":15,"column":10},"end":{"line":15,"column":26}},{"start":{"line":15,"column":26},"end":{"line":15,"column":null}}],"line":15},"3":{"loc":{"start":{"line":16,"column":10},"end":{"line":16,"column":null}},"type":"binary-expr","locations":[{"start":{"line":16,"column":10},"end":{"line":16,"column":26}},{"start":{"line":16,"column":26},"end":{"line":16,"column":null}}],"line":16},"4":{"loc":{"start":{"line":17,"column":14},"end":{"line":17,"column":null}},"type":"binary-expr","locations":[{"start":{"line":17,"column":14},"end":{"line":17,"column":34}},{"start":{"line":17,"column":34},"end":{"line":17,"column":null}}],"line":17},"5":{"loc":{"start":{"line":18,"column":13},"end":{"line":18,"column":null}},"type":"binary-expr","locations":[{"start":{"line":18,"column":13},"end":{"line":18,"column":32}},{"start":{"line":18,"column":32},"end":{"line":18,"column":null}}],"line":18},"6":{"loc":{"start":{"line":34,"column":15},"end":{"line":34,"column":82}},"type":"cond-expr","locations":[{"start":{"line":34,"column":38},"end":{"line":34,"column":52}},{"start":{"line":34,"column":52},"end":{"line":34,"column":82}}],"line":34},"7":{"loc":{"start":{"line":41,"column":4},"end":{"line":41,"column":null}},"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":41,"column":null}},{"start":{},"end":{}}],"line":41},"8":{"loc":{"start":{"line":51,"column":15},"end":{"line":51,"column":79}},"type":"cond-expr","locations":[{"start":{"line":51,"column":38},"end":{"line":51,"column":52}},{"start":{"line":51,"column":52},"end":{"line":51,"column":79}}],"line":51},"9":{"loc":{"start":{"line":62,"column":13},"end":{"line":62,"column":null}},"type":"cond-expr","locations":[{"start":{"line":62,"column":22},"end":{"line":62,"column":45}},{"start":{"line":62,"column":45},"end":{"line":62,"column":null}}],"line":62},"10":{"loc":{"start":{"line":67,"column":11},"end":{"line":70,"column":null}},"type":"binary-expr","locations":[{"start":{"line":67,"column":11},"end":{"line":67,"column":null}},{"start":{"line":68,"column":12},"end":{"line":70,"column":null}}],"line":67},"11":{"loc":{"start":{"line":151,"column":11},"end":{"line":186,"column":null}},"type":"binary-expr","locations":[{"start":{"line":151,"column":11},"end":{"line":151,"column":null}},{"start":{"line":152,"column":12},"end":{"line":186,"column":null}}],"line":151},"12":{"loc":{"start":{"line":159,"column":17},"end":{"line":168,"column":null}},"type":"cond-expr","locations":[{"start":{"line":160,"column":18},"end":{"line":163,"column":null}},{"start":{"line":165,"column":18},"end":{"line":168,"column":null}}],"line":159},"13":{"loc":{"start":{"line":171,"column":15},"end":{"line":184,"column":null}},"type":"binary-expr","locations":[{"start":{"line":171,"column":15},"end":{"line":171,"column":null}},{"start":{"line":172,"column":16},"end":{"line":184,"column":null}}],"line":171},"14":{"loc":{"start":{"line":172,"column":55},"end":{"line":172,"column":159}},"type":"cond-expr","locations":[{"start":{"line":172,"column":78},"end":{"line":172,"column":122}},{"start":{"line":172,"column":122},"end":{"line":172,"column":159}}],"line":172},"15":{"loc":{"start":{"line":174,"column":37},"end":{"line":174,"column":null}},"type":"cond-expr","locations":[{"start":{"line":174,"column":60},"end":{"line":174,"column":79}},{"start":{"line":174,"column":79},"end":{"line":174,"column":null}}],"line":174},"16":{"loc":{"start":{"line":175,"column":23},"end":{"line":175,"column":null}},"type":"cond-expr","locations":[{"start":{"line":175,"column":46},"end":{"line":175,"column":74}},{"start":{"line":175,"column":74},"end":{"line":175,"column":null}}],"line":175},"17":{"loc":{"start":{"line":178,"column":19},"end":{"line":179,"column":null}},"type":"binary-expr","locations":[{"start":{"line":178,"column":19},"end":{"line":178,"column":null}},{"start":{"line":179,"column":20},"end":{"line":179,"column":null}}],"line":178},"18":{"loc":{"start":{"line":181,"column":19},"end":{"line":182,"column":null}},"type":"binary-expr","locations":[{"start":{"line":181,"column":19},"end":{"line":181,"column":null}},{"start":{"line":182,"column":20},"end":{"line":182,"column":null}}],"line":181},"19":{"loc":{"start":{"line":203,"column":15},"end":{"line":203,"column":null}},"type":"cond-expr","locations":[{"start":{"line":203,"column":25},"end":{"line":203,"column":40}},{"start":{"line":203,"column":40},"end":{"line":203,"column":null}}],"line":203},"20":{"loc":{"start":{"line":203,"column":40},"end":{"line":203,"column":null}},"type":"cond-expr","locations":[{"start":{"line":203,"column":49},"end":{"line":203,"column":60}},{"start":{"line":203,"column":60},"end":{"line":203,"column":null}}],"line":203}},"s":{"0":13,"1":13,"2":13,"3":13,"4":13,"5":13,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":1,"13":13,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":13,"25":1,"26":1,"27":1,"28":1,"29":0,"30":0},"f":{"0":13,"1":1,"2":0,"3":1,"4":1,"5":1,"6":1,"7":0,"8":0},"b":{"0":[13,11],"1":[13,11],"2":[13,11],"3":[13,11],"4":[13,12],"5":[13,11],"6":[0,0],"7":[0,0],"8":[0,0],"9":[2,11],"10":[13,0],"11":[13,2],"12":[0,2],"13":[2,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[1,12],"20":[2,10]},"meta":{"lastBranch":21,"lastFunction":9,"lastStatement":31,"seen":{"f:11:24:11:41":0,"s:12:30:19:Infinity":0,"b:13:10:13:26:13:26:13:Infinity":0,"b:14:14:14:34:14:34:14:Infinity":1,"b:15:10:15:26:15:26:15:Infinity":2,"b:16:10:16:26:16:26:16:Infinity":3,"b:17:14:17:34:17:34:17:Infinity":4,"b:18:13:18:32:18:32:18:Infinity":5,"s:21:28:21:Infinity":1,"s:22:24:22:Infinity":2,"s:23:34:23:Infinity":3,"s:24:28:24:Infinity":4,"s:26:23:38:Infinity":5,"f:26:23:26:30":1,"s:27:4:27:Infinity":6,"s:28:4:28:Infinity":7,"s:29:4:29:Infinity":8,"s:31:4:37:Infinity":9,"s:32:6:32:Infinity":10,"s:34:6:34:Infinity":11,"b:34:38:34:52:34:52:34:82":6,"s:36:6:36:Infinity":12,"s:40:31:55:Infinity":13,"f:40:31:40:43":2,"b:41:4:41:Infinity:undefined:undefined:undefined:undefined":7,"s:41:4:41:Infinity":14,"s:41:17:41:Infinity":15,"s:43:4:43:Infinity":16,"s:44:4:44:Infinity":17,"s:45:4:45:Infinity":18,"s:47:4:54:Infinity":19,"s:48:21:48:Infinity":20,"s:49:6:49:Infinity":21,"s:51:6:51:Infinity":22,"b:51:38:51:52:51:52:51:79":8,"s:53:6:53:Infinity":23,"s:57:2:208:Infinity":24,"b:62:22:62:45:62:45:62:Infinity":9,"b:67:11:67:Infinity:68:12:70:Infinity":10,"f:79:24:79:29":3,"s:79:29:79:Infinity":25,"f:89:24:89:29":4,"s:89:29:89:Infinity":26,"f:108:26:108:31":5,"s:108:31:108:Infinity":27,"f:121:26:121:31":6,"s:121:31:121:Infinity":28,"f:134:24:134:29":7,"s:134:29:134:Infinity":29,"f:144:24:144:29":8,"s:144:29:144:Infinity":30,"b:151:11:151:Infinity:152:12:186:Infinity":11,"b:160:18:163:Infinity:165:18:168:Infinity":12,"b:171:15:171:Infinity:172:16:184:Infinity":13,"b:172:78:172:122:172:122:172:159":14,"b:174:60:174:79:174:79:174:Infinity":15,"b:175:46:175:74:175:74:175:Infinity":16,"b:178:19:178:Infinity:179:20:179:Infinity":17,"b:181:19:181:Infinity:182:20:182:Infinity":18,"b:203:25:203:40:203:40:203:Infinity":19,"b:203:49:203:60:203:60:203:Infinity":20}}} +{"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ImportReviewTable.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ImportReviewTable.tsx","statementMap":{"0":{"start":{"line":17,"column":36},"end":{"line":21,"column":null}},"1":{"start":{"line":18,"column":41},"end":{"line":18,"column":null}},"2":{"start":{"line":19,"column":4},"end":{"line":19,"column":null}},"3":{"start":{"line":19,"column":39},"end":{"line":19,"column":56}},"4":{"start":{"line":20,"column":4},"end":{"line":20,"column":null}},"5":{"start":{"line":22,"column":34},"end":{"line":22,"column":null}},"6":{"start":{"line":23,"column":24},"end":{"line":23,"column":null}},"7":{"start":{"line":25,"column":23},"end":{"line":35,"column":null}},"8":{"start":{"line":26,"column":4},"end":{"line":26,"column":null}},"9":{"start":{"line":27,"column":4},"end":{"line":27,"column":null}},"10":{"start":{"line":28,"column":4},"end":{"line":34,"column":null}},"11":{"start":{"line":29,"column":6},"end":{"line":29,"column":null}},"12":{"start":{"line":31,"column":6},"end":{"line":31,"column":null}},"13":{"start":{"line":33,"column":6},"end":{"line":33,"column":null}},"14":{"start":{"line":37,"column":2},"end":{"line":119,"column":null}},"15":{"start":{"line":69,"column":14},"end":{"line":69,"column":null}},"16":{"start":{"line":89,"column":29},"end":{"line":89,"column":null}},"17":{"start":{"line":90,"column":34},"end":{"line":90,"column":null}},"18":{"start":{"line":91,"column":14},"end":{"line":113,"column":null}},"19":{"start":{"line":100,"column":39},"end":{"line":100,"column":null}}},"fnMap":{"0":{"name":"ImportReviewTable","decl":{"start":{"line":16,"column":24},"end":{"line":16,"column":42}},"loc":{"start":{"line":16,"column":99},"end":{"line":121,"column":null}},"line":16},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":73},"end":{"line":17,"column":79}},"loc":{"start":{"line":17,"column":79},"end":{"line":21,"column":3}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":22},"end":{"line":19,"column":23}},"loc":{"start":{"line":19,"column":37},"end":{"line":19,"column":57}},"line":19},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":23},"end":{"line":25,"column":35}},"loc":{"start":{"line":25,"column":35},"end":{"line":35,"column":null}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":68,"column":24},"end":{"line":68,"column":25}},"loc":{"start":{"line":69,"column":14},"end":{"line":69,"column":null}},"line":69},"5":{"name":"(anonymous_5)","decl":{"start":{"line":88,"column":23},"end":{"line":88,"column":24}},"loc":{"start":{"line":88,"column":35},"end":{"line":115,"column":13}},"line":88},"6":{"name":"(anonymous_6)","decl":{"start":{"line":100,"column":34},"end":{"line":100,"column":39}},"loc":{"start":{"line":100,"column":39},"end":{"line":100,"column":null}},"line":100}},"branchMap":{"0":{"loc":{"start":{"line":31,"column":15},"end":{"line":31,"column":77}},"type":"cond-expr","locations":[{"start":{"line":31,"column":38},"end":{"line":31,"column":52}},{"start":{"line":31,"column":52},"end":{"line":31,"column":77}}],"line":31},"1":{"loc":{"start":{"line":53,"column":13},"end":{"line":53,"column":null}},"type":"cond-expr","locations":[{"start":{"line":53,"column":26},"end":{"line":53,"column":44}},{"start":{"line":53,"column":44},"end":{"line":53,"column":null}}],"line":53},"2":{"loc":{"start":{"line":58,"column":7},"end":{"line":61,"column":null}},"type":"binary-expr","locations":[{"start":{"line":58,"column":7},"end":{"line":58,"column":null}},{"start":{"line":59,"column":8},"end":{"line":61,"column":null}}],"line":58},"3":{"loc":{"start":{"line":64,"column":7},"end":{"line":72,"column":null}},"type":"binary-expr","locations":[{"start":{"line":64,"column":7},"end":{"line":64,"column":null}},{"start":{"line":65,"column":8},"end":{"line":72,"column":null}}],"line":64},"4":{"loc":{"start":{"line":97,"column":21},"end":{"line":110,"column":null}},"type":"cond-expr","locations":[{"start":{"line":98,"column":22},"end":{"line":106,"column":null}},{"start":{"line":108,"column":22},"end":{"line":110,"column":null}}],"line":97}},"s":{"0":9,"1":6,"2":6,"3":3,"4":6,"5":9,"6":9,"7":9,"8":1,"9":1,"10":1,"11":1,"12":0,"13":1,"14":9,"15":2,"16":9,"17":9,"18":9,"19":1},"f":{"0":9,"1":6,"2":3,"3":1,"4":2,"5":9,"6":1},"b":{"0":[0,0],"1":[1,8],"2":[9,0],"3":[9,1],"4":[6,3]},"meta":{"lastBranch":5,"lastFunction":7,"lastStatement":20,"seen":{"f:16:24:16:42":0,"s:17:36:21:Infinity":0,"f:17:73:17:79":1,"s:18:41:18:Infinity":1,"s:19:4:19:Infinity":2,"f:19:22:19:23":2,"s:19:39:19:56":3,"s:20:4:20:Infinity":4,"s:22:34:22:Infinity":5,"s:23:24:23:Infinity":6,"s:25:23:35:Infinity":7,"f:25:23:25:35":3,"s:26:4:26:Infinity":8,"s:27:4:27:Infinity":9,"s:28:4:34:Infinity":10,"s:29:6:29:Infinity":11,"s:31:6:31:Infinity":12,"b:31:38:31:52:31:52:31:77":0,"s:33:6:33:Infinity":13,"s:37:2:119:Infinity":14,"b:53:26:53:44:53:44:53:Infinity":1,"b:58:7:58:Infinity:59:8:61:Infinity":2,"b:64:7:64:Infinity:65:8:72:Infinity":3,"f:68:24:68:25":4,"s:69:14:69:Infinity":15,"f:88:23:88:24":5,"s:89:29:89:Infinity":16,"s:90:34:90:Infinity":17,"s:91:14:113:Infinity":18,"b:98:22:106:Infinity:108:22:110:Infinity":4,"f:100:34:100:39":6,"s:100:39:100:Infinity":19}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/components/Layout.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/components/Layout.tsx","statementMap":{"0":{"start":{"line":11,"column":8},"end":{"line":11,"column":null}},"1":{"start":{"line":12,"column":36},"end":{"line":12,"column":null}},"2":{"start":{"line":14,"column":21},"end":{"line":21,"column":null}},"3":{"start":{"line":23,"column":2},"end":{"line":86,"column":null}},"4":{"start":{"line":30,"column":59},"end":{"line":30,"column":null}},"5":{"start":{"line":49,"column":29},"end":{"line":49,"column":null}},"6":{"start":{"line":50,"column":12},"end":{"line":63,"column":null}},"7":{"start":{"line":54,"column":31},"end":{"line":54,"column":null}},"8":{"start":{"line":78,"column":25},"end":{"line":78,"column":null}}},"fnMap":{"0":{"name":"Layout","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":31}},"loc":{"start":{"line":10,"column":58},"end":{"line":88,"column":null}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":30,"column":53},"end":{"line":30,"column":59}},"loc":{"start":{"line":30,"column":59},"end":{"line":30,"column":null}},"line":30},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":26},"end":{"line":48,"column":27}},"loc":{"start":{"line":48,"column":36},"end":{"line":65,"column":11}},"line":48},"3":{"name":"(anonymous_3)","decl":{"start":{"line":54,"column":25},"end":{"line":54,"column":31}},"loc":{"start":{"line":54,"column":31},"end":{"line":54,"column":null}},"line":54},"4":{"name":"(anonymous_4)","decl":{"start":{"line":78,"column":19},"end":{"line":78,"column":25}},"loc":{"start":{"line":78,"column":25},"end":{"line":78,"column":null}},"line":78}},"branchMap":{"0":{"loc":{"start":{"line":31,"column":13},"end":{"line":31,"column":null}},"type":"cond-expr","locations":[{"start":{"line":31,"column":27},"end":{"line":31,"column":33}},{"start":{"line":31,"column":33},"end":{"line":31,"column":null}}],"line":31},"1":{"loc":{"start":{"line":40,"column":10},"end":{"line":40,"column":78}},"type":"cond-expr","locations":[{"start":{"line":40,"column":24},"end":{"line":40,"column":42}},{"start":{"line":40,"column":42},"end":{"line":40,"column":78}}],"line":40},"2":{"loc":{"start":{"line":56,"column":18},"end":{"line":58,"column":null}},"type":"cond-expr","locations":[{"start":{"line":57,"column":22},"end":{"line":57,"column":null}},{"start":{"line":58,"column":22},"end":{"line":58,"column":null}}],"line":56},"3":{"loc":{"start":{"line":75,"column":7},"end":{"line":79,"column":null}},"type":"binary-expr","locations":[{"start":{"line":75,"column":7},"end":{"line":75,"column":null}},{"start":{"line":76,"column":8},"end":{"line":79,"column":null}}],"line":75}},"s":{"0":4,"1":4,"2":4,"3":4,"4":0,"5":24,"6":24,"7":0,"8":0},"f":{"0":4,"1":0,"2":24,"3":0,"4":0},"b":{"0":[0,4],"1":[0,4],"2":[4,20],"3":[4,0]},"meta":{"lastBranch":4,"lastFunction":5,"lastStatement":9,"seen":{"f:10:24:10:31":0,"s:11:8:11:Infinity":0,"s:12:36:12:Infinity":1,"s:14:21:21:Infinity":2,"s:23:2:86:Infinity":3,"f:30:53:30:59":1,"s:30:59:30:Infinity":4,"b:31:27:31:33:31:33:31:Infinity":0,"b:40:24:40:42:40:42:40:78":1,"f:48:26:48:27":2,"s:49:29:49:Infinity":5,"s:50:12:63:Infinity":6,"f:54:25:54:31":3,"s:54:31:54:Infinity":7,"b:57:22:57:Infinity:58:22:58:Infinity":2,"b:75:7:75:Infinity:76:8:79:Infinity":3,"f:78:19:78:25":4,"s:78:25:78:Infinity":8}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ProxyHostForm.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ProxyHostForm.tsx","statementMap":{"0":{"start":{"line":12,"column":30},"end":{"line":25,"column":null}},"1":{"start":{"line":27,"column":33},"end":{"line":27,"column":null}},"2":{"start":{"line":28,"column":28},"end":{"line":28,"column":null}},"3":{"start":{"line":29,"column":24},"end":{"line":29,"column":null}},"4":{"start":{"line":31,"column":23},"end":{"line":43,"column":null}},"5":{"start":{"line":32,"column":4},"end":{"line":32,"column":null}},"6":{"start":{"line":33,"column":4},"end":{"line":33,"column":null}},"7":{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},"8":{"start":{"line":36,"column":4},"end":{"line":42,"column":null}},"9":{"start":{"line":37,"column":6},"end":{"line":37,"column":null}},"10":{"start":{"line":39,"column":6},"end":{"line":39,"column":null}},"11":{"start":{"line":41,"column":6},"end":{"line":41,"column":null}},"12":{"start":{"line":45,"column":29},"end":{"line":55,"column":null}},"13":{"start":{"line":46,"column":19},"end":{"line":46,"column":null}},"14":{"start":{"line":46,"column":43},"end":{"line":46,"column":64}},"15":{"start":{"line":47,"column":4},"end":{"line":54,"column":null}},"16":{"start":{"line":48,"column":6},"end":{"line":53,"column":null}},"17":{"start":{"line":57,"column":2},"end":{"line":247,"column":null}},"18":{"start":{"line":82,"column":29},"end":{"line":82,"column":null}},"19":{"start":{"line":95,"column":31},"end":{"line":95,"column":null}},"20":{"start":{"line":100,"column":18},"end":{"line":102,"column":null}},"21":{"start":{"line":114,"column":31},"end":{"line":114,"column":null}},"22":{"start":{"line":127,"column":31},"end":{"line":127,"column":null}},"23":{"start":{"line":140,"column":31},"end":{"line":140,"column":null}},"24":{"start":{"line":152,"column":31},"end":{"line":152,"column":null}},"25":{"start":{"line":161,"column":31},"end":{"line":161,"column":null}},"26":{"start":{"line":170,"column":31},"end":{"line":170,"column":null}},"27":{"start":{"line":179,"column":31},"end":{"line":179,"column":null}},"28":{"start":{"line":188,"column":31},"end":{"line":188,"column":null}},"29":{"start":{"line":197,"column":31},"end":{"line":197,"column":null}},"30":{"start":{"line":206,"column":31},"end":{"line":206,"column":null}},"31":{"start":{"line":220,"column":29},"end":{"line":220,"column":null}}},"fnMap":{"0":{"name":"ProxyHostForm","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":38}},"loc":{"start":{"line":11,"column":88},"end":{"line":249,"column":null}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":31,"column":23},"end":{"line":31,"column":30}},"loc":{"start":{"line":31,"column":53},"end":{"line":43,"column":null}},"line":31},"2":{"name":"(anonymous_2)","decl":{"start":{"line":45,"column":29},"end":{"line":45,"column":30}},"loc":{"start":{"line":45,"column":53},"end":{"line":55,"column":null}},"line":45},"3":{"name":"(anonymous_3)","decl":{"start":{"line":46,"column":38},"end":{"line":46,"column":43}},"loc":{"start":{"line":46,"column":43},"end":{"line":46,"column":64}},"line":46},"4":{"name":"(anonymous_4)","decl":{"start":{"line":82,"column":24},"end":{"line":82,"column":29}},"loc":{"start":{"line":82,"column":29},"end":{"line":82,"column":null}},"line":82},"5":{"name":"(anonymous_5)","decl":{"start":{"line":95,"column":26},"end":{"line":95,"column":31}},"loc":{"start":{"line":95,"column":31},"end":{"line":95,"column":null}},"line":95},"6":{"name":"(anonymous_6)","decl":{"start":{"line":99,"column":35},"end":{"line":99,"column":null}},"loc":{"start":{"line":100,"column":18},"end":{"line":102,"column":null}},"line":100},"7":{"name":"(anonymous_7)","decl":{"start":{"line":114,"column":26},"end":{"line":114,"column":31}},"loc":{"start":{"line":114,"column":31},"end":{"line":114,"column":null}},"line":114},"8":{"name":"(anonymous_8)","decl":{"start":{"line":127,"column":26},"end":{"line":127,"column":31}},"loc":{"start":{"line":127,"column":31},"end":{"line":127,"column":null}},"line":127},"9":{"name":"(anonymous_9)","decl":{"start":{"line":140,"column":26},"end":{"line":140,"column":31}},"loc":{"start":{"line":140,"column":31},"end":{"line":140,"column":null}},"line":140},"10":{"name":"(anonymous_10)","decl":{"start":{"line":152,"column":26},"end":{"line":152,"column":31}},"loc":{"start":{"line":152,"column":31},"end":{"line":152,"column":null}},"line":152},"11":{"name":"(anonymous_11)","decl":{"start":{"line":161,"column":26},"end":{"line":161,"column":31}},"loc":{"start":{"line":161,"column":31},"end":{"line":161,"column":null}},"line":161},"12":{"name":"(anonymous_12)","decl":{"start":{"line":170,"column":26},"end":{"line":170,"column":31}},"loc":{"start":{"line":170,"column":31},"end":{"line":170,"column":null}},"line":170},"13":{"name":"(anonymous_13)","decl":{"start":{"line":179,"column":26},"end":{"line":179,"column":31}},"loc":{"start":{"line":179,"column":31},"end":{"line":179,"column":null}},"line":179},"14":{"name":"(anonymous_14)","decl":{"start":{"line":188,"column":26},"end":{"line":188,"column":31}},"loc":{"start":{"line":188,"column":31},"end":{"line":188,"column":null}},"line":188},"15":{"name":"(anonymous_15)","decl":{"start":{"line":197,"column":26},"end":{"line":197,"column":31}},"loc":{"start":{"line":197,"column":31},"end":{"line":197,"column":null}},"line":197},"16":{"name":"(anonymous_16)","decl":{"start":{"line":206,"column":26},"end":{"line":206,"column":31}},"loc":{"start":{"line":206,"column":31},"end":{"line":206,"column":null}},"line":206},"17":{"name":"(anonymous_17)","decl":{"start":{"line":220,"column":24},"end":{"line":220,"column":29}},"loc":{"start":{"line":220,"column":29},"end":{"line":220,"column":null}},"line":220}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":18},"end":{"line":13,"column":null}},"type":"binary-expr","locations":[{"start":{"line":13,"column":18},"end":{"line":13,"column":40}},{"start":{"line":13,"column":40},"end":{"line":13,"column":null}}],"line":13},"1":{"loc":{"start":{"line":14,"column":20},"end":{"line":14,"column":null}},"type":"binary-expr","locations":[{"start":{"line":14,"column":20},"end":{"line":14,"column":44}},{"start":{"line":14,"column":44},"end":{"line":14,"column":null}}],"line":14},"2":{"loc":{"start":{"line":15,"column":18},"end":{"line":15,"column":null}},"type":"binary-expr","locations":[{"start":{"line":15,"column":18},"end":{"line":15,"column":40}},{"start":{"line":15,"column":40},"end":{"line":15,"column":null}}],"line":15},"3":{"loc":{"start":{"line":16,"column":18},"end":{"line":16,"column":null}},"type":"binary-expr","locations":[{"start":{"line":16,"column":18},"end":{"line":16,"column":40}},{"start":{"line":16,"column":40},"end":{"line":16,"column":null}}],"line":16},"4":{"loc":{"start":{"line":17,"column":16},"end":{"line":17,"column":null}},"type":"binary-expr","locations":[{"start":{"line":17,"column":16},"end":{"line":17,"column":36}},{"start":{"line":17,"column":36},"end":{"line":17,"column":null}}],"line":17},"5":{"loc":{"start":{"line":18,"column":19},"end":{"line":18,"column":null}},"type":"binary-expr","locations":[{"start":{"line":18,"column":19},"end":{"line":18,"column":42}},{"start":{"line":18,"column":42},"end":{"line":18,"column":null}}],"line":18},"6":{"loc":{"start":{"line":19,"column":18},"end":{"line":19,"column":null}},"type":"binary-expr","locations":[{"start":{"line":19,"column":18},"end":{"line":19,"column":40}},{"start":{"line":19,"column":40},"end":{"line":19,"column":null}}],"line":19},"7":{"loc":{"start":{"line":20,"column":21},"end":{"line":20,"column":null}},"type":"binary-expr","locations":[{"start":{"line":20,"column":21},"end":{"line":20,"column":46}},{"start":{"line":20,"column":46},"end":{"line":20,"column":null}}],"line":20},"8":{"loc":{"start":{"line":21,"column":20},"end":{"line":21,"column":null}},"type":"binary-expr","locations":[{"start":{"line":21,"column":20},"end":{"line":21,"column":44}},{"start":{"line":21,"column":44},"end":{"line":21,"column":null}}],"line":21},"9":{"loc":{"start":{"line":22,"column":23},"end":{"line":22,"column":null}},"type":"binary-expr","locations":[{"start":{"line":22,"column":23},"end":{"line":22,"column":50}},{"start":{"line":22,"column":50},"end":{"line":22,"column":null}}],"line":22},"10":{"loc":{"start":{"line":23,"column":21},"end":{"line":23,"column":null}},"type":"binary-expr","locations":[{"start":{"line":23,"column":21},"end":{"line":23,"column":46}},{"start":{"line":23,"column":46},"end":{"line":23,"column":null}}],"line":23},"11":{"loc":{"start":{"line":24,"column":13},"end":{"line":24,"column":null}},"type":"binary-expr","locations":[{"start":{"line":24,"column":13},"end":{"line":24,"column":30}},{"start":{"line":24,"column":30},"end":{"line":24,"column":null}}],"line":24},"12":{"loc":{"start":{"line":39,"column":15},"end":{"line":39,"column":79}},"type":"cond-expr","locations":[{"start":{"line":39,"column":38},"end":{"line":39,"column":52}},{"start":{"line":39,"column":52},"end":{"line":39,"column":79}}],"line":39},"13":{"loc":{"start":{"line":47,"column":4},"end":{"line":54,"column":null}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":54,"column":null}},{"start":{},"end":{}}],"line":47},"14":{"loc":{"start":{"line":62,"column":13},"end":{"line":62,"column":null}},"type":"cond-expr","locations":[{"start":{"line":62,"column":20},"end":{"line":62,"column":40}},{"start":{"line":62,"column":40},"end":{"line":62,"column":null}}],"line":62},"15":{"loc":{"start":{"line":67,"column":11},"end":{"line":70,"column":null}},"type":"binary-expr","locations":[{"start":{"line":67,"column":11},"end":{"line":67,"column":null}},{"start":{"line":68,"column":12},"end":{"line":70,"column":null}}],"line":67},"16":{"loc":{"start":{"line":89,"column":11},"end":{"line":105,"column":null}},"type":"binary-expr","locations":[{"start":{"line":89,"column":11},"end":{"line":89,"column":null}},{"start":{"line":90,"column":12},"end":{"line":105,"column":null}}],"line":89},"17":{"loc":{"start":{"line":242,"column":15},"end":{"line":242,"column":null}},"type":"cond-expr","locations":[{"start":{"line":242,"column":25},"end":{"line":242,"column":40}},{"start":{"line":242,"column":40},"end":{"line":242,"column":null}}],"line":242},"18":{"loc":{"start":{"line":242,"column":40},"end":{"line":242,"column":null}},"type":"cond-expr","locations":[{"start":{"line":242,"column":47},"end":{"line":242,"column":58}},{"start":{"line":242,"column":58},"end":{"line":242,"column":null}}],"line":242}},"s":{"0":13,"1":13,"2":13,"3":13,"4":13,"5":1,"6":1,"7":1,"8":1,"9":1,"10":0,"11":1,"12":13,"13":0,"14":0,"15":0,"16":0,"17":13,"18":1,"19":0,"20":26,"21":0,"22":1,"23":1,"24":1,"25":0,"26":0,"27":0,"28":0,"29":1,"30":0,"31":0},"f":{"0":13,"1":1,"2":0,"3":0,"4":1,"5":0,"6":26,"7":0,"8":1,"9":1,"10":1,"11":0,"12":0,"13":0,"14":0,"15":1,"16":0,"17":0},"b":{"0":[13,12],"1":[13,12],"2":[13,12],"3":[13,12],"4":[13,12],"5":[13,12],"6":[13,12],"7":[13,12],"8":[13,12],"9":[13,12],"10":[13,13],"11":[13,12],"12":[0,0],"13":[0,0],"14":[1,12],"15":[13,0],"16":[13,13],"17":[1,12],"18":[1,11]},"meta":{"lastBranch":19,"lastFunction":18,"lastStatement":32,"seen":{"f:11:24:11:38":0,"s:12:30:25:Infinity":0,"b:13:18:13:40:13:40:13:Infinity":0,"b:14:20:14:44:14:44:14:Infinity":1,"b:15:18:15:40:15:40:15:Infinity":2,"b:16:18:16:40:16:40:16:Infinity":3,"b:17:16:17:36:17:36:17:Infinity":4,"b:18:19:18:42:18:42:18:Infinity":5,"b:19:18:19:40:19:40:19:Infinity":6,"b:20:21:20:46:20:46:20:Infinity":7,"b:21:20:21:44:21:44:21:Infinity":8,"b:22:23:22:50:22:50:22:Infinity":9,"b:23:21:23:46:23:46:23:Infinity":10,"b:24:13:24:30:24:30:24:Infinity":11,"s:27:33:27:Infinity":1,"s:28:28:28:Infinity":2,"s:29:24:29:Infinity":3,"s:31:23:43:Infinity":4,"f:31:23:31:30":1,"s:32:4:32:Infinity":5,"s:33:4:33:Infinity":6,"s:34:4:34:Infinity":7,"s:36:4:42:Infinity":8,"s:37:6:37:Infinity":9,"s:39:6:39:Infinity":10,"b:39:38:39:52:39:52:39:79":12,"s:41:6:41:Infinity":11,"s:45:29:55:Infinity":12,"f:45:29:45:30":2,"s:46:19:46:Infinity":13,"f:46:38:46:43":3,"s:46:43:46:64":14,"b:47:4:54:Infinity:undefined:undefined:undefined:undefined":13,"s:47:4:54:Infinity":15,"s:48:6:53:Infinity":16,"s:57:2:247:Infinity":17,"b:62:20:62:40:62:40:62:Infinity":14,"b:67:11:67:Infinity:68:12:70:Infinity":15,"f:82:24:82:29":4,"s:82:29:82:Infinity":18,"b:89:11:89:Infinity:90:12:105:Infinity":16,"f:95:26:95:31":5,"s:95:31:95:Infinity":19,"f:99:35:99:Infinity":6,"s:100:18:102:Infinity":20,"f:114:26:114:31":7,"s:114:31:114:Infinity":21,"f:127:26:127:31":8,"s:127:31:127:Infinity":22,"f:140:26:140:31":9,"s:140:31:140:Infinity":23,"f:152:26:152:31":10,"s:152:31:152:Infinity":24,"f:161:26:161:31":11,"s:161:31:161:Infinity":25,"f:170:26:170:31":12,"s:170:31:170:Infinity":26,"f:179:26:179:31":13,"s:179:31:179:Infinity":27,"f:188:26:188:31":14,"s:188:31:188:Infinity":28,"f:197:26:197:31":15,"s:197:31:197:Infinity":29,"f:206:26:206:31":16,"s:206:31:206:Infinity":30,"f:220:24:220:29":17,"s:220:29:220:Infinity":31,"b:242:25:242:40:242:40:242:Infinity":17,"b:242:47:242:58:242:58:242:Infinity":18}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/components/RemoteServerForm.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/components/RemoteServerForm.tsx","statementMap":{"0":{"start":{"line":12,"column":30},"end":{"line":19,"column":null}},"1":{"start":{"line":21,"column":28},"end":{"line":21,"column":null}},"2":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"3":{"start":{"line":24,"column":2},"end":{"line":33,"column":null}},"4":{"start":{"line":25,"column":4},"end":{"line":32,"column":null}},"5":{"start":{"line":35,"column":23},"end":{"line":46,"column":null}},"6":{"start":{"line":36,"column":4},"end":{"line":36,"column":null}},"7":{"start":{"line":37,"column":4},"end":{"line":37,"column":null}},"8":{"start":{"line":38,"column":4},"end":{"line":38,"column":null}},"9":{"start":{"line":39,"column":4},"end":{"line":45,"column":null}},"10":{"start":{"line":40,"column":6},"end":{"line":40,"column":null}},"11":{"start":{"line":42,"column":6},"end":{"line":42,"column":null}},"12":{"start":{"line":44,"column":6},"end":{"line":44,"column":null}},"13":{"start":{"line":48,"column":31},"end":{"line":60,"column":null}},"14":{"start":{"line":49,"column":4},"end":{"line":49,"column":null}},"15":{"start":{"line":49,"column":23},"end":{"line":49,"column":null}},"16":{"start":{"line":50,"column":4},"end":{"line":50,"column":null}},"17":{"start":{"line":51,"column":4},"end":{"line":51,"column":null}},"18":{"start":{"line":52,"column":4},"end":{"line":59,"column":null}},"19":{"start":{"line":53,"column":21},"end":{"line":53,"column":null}},"20":{"start":{"line":54,"column":6},"end":{"line":54,"column":null}},"21":{"start":{"line":56,"column":6},"end":{"line":56,"column":null}},"22":{"start":{"line":58,"column":6},"end":{"line":58,"column":null}},"23":{"start":{"line":62,"column":2},"end":{"line":178,"column":null}},"24":{"start":{"line":84,"column":29},"end":{"line":84,"column":null}},"25":{"start":{"line":95,"column":31},"end":{"line":95,"column":null}},"26":{"start":{"line":109,"column":31},"end":{"line":109,"column":null}},"27":{"start":{"line":124,"column":31},"end":{"line":124,"column":null}},"28":{"start":{"line":133,"column":31},"end":{"line":133,"column":null}},"29":{"start":{"line":143,"column":29},"end":{"line":143,"column":null}}},"fnMap":{"0":{"name":"RemoteServerForm","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":41}},"loc":{"start":{"line":11,"column":80},"end":{"line":180,"column":null}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":12},"end":{"line":24,"column":18}},"loc":{"start":{"line":24,"column":18},"end":{"line":33,"column":5}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":35,"column":23},"end":{"line":35,"column":30}},"loc":{"start":{"line":35,"column":53},"end":{"line":46,"column":null}},"line":35},"3":{"name":"(anonymous_3)","decl":{"start":{"line":48,"column":31},"end":{"line":48,"column":43}},"loc":{"start":{"line":48,"column":43},"end":{"line":60,"column":null}},"line":48},"4":{"name":"(anonymous_4)","decl":{"start":{"line":84,"column":24},"end":{"line":84,"column":29}},"loc":{"start":{"line":84,"column":29},"end":{"line":84,"column":null}},"line":84},"5":{"name":"(anonymous_5)","decl":{"start":{"line":95,"column":26},"end":{"line":95,"column":31}},"loc":{"start":{"line":95,"column":31},"end":{"line":95,"column":null}},"line":95},"6":{"name":"(anonymous_6)","decl":{"start":{"line":109,"column":26},"end":{"line":109,"column":31}},"loc":{"start":{"line":109,"column":31},"end":{"line":109,"column":null}},"line":109},"7":{"name":"(anonymous_7)","decl":{"start":{"line":124,"column":26},"end":{"line":124,"column":31}},"loc":{"start":{"line":124,"column":31},"end":{"line":124,"column":null}},"line":124},"8":{"name":"(anonymous_8)","decl":{"start":{"line":133,"column":26},"end":{"line":133,"column":31}},"loc":{"start":{"line":133,"column":31},"end":{"line":133,"column":null}},"line":133},"9":{"name":"(anonymous_9)","decl":{"start":{"line":143,"column":24},"end":{"line":143,"column":29}},"loc":{"start":{"line":143,"column":29},"end":{"line":143,"column":null}},"line":143}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":10},"end":{"line":13,"column":null}},"type":"binary-expr","locations":[{"start":{"line":13,"column":10},"end":{"line":13,"column":26}},{"start":{"line":13,"column":26},"end":{"line":13,"column":null}}],"line":13},"1":{"loc":{"start":{"line":14,"column":14},"end":{"line":14,"column":null}},"type":"binary-expr","locations":[{"start":{"line":14,"column":14},"end":{"line":14,"column":34}},{"start":{"line":14,"column":34},"end":{"line":14,"column":null}}],"line":14},"2":{"loc":{"start":{"line":15,"column":10},"end":{"line":15,"column":null}},"type":"binary-expr","locations":[{"start":{"line":15,"column":10},"end":{"line":15,"column":26}},{"start":{"line":15,"column":26},"end":{"line":15,"column":null}}],"line":15},"3":{"loc":{"start":{"line":16,"column":10},"end":{"line":16,"column":null}},"type":"binary-expr","locations":[{"start":{"line":16,"column":10},"end":{"line":16,"column":26}},{"start":{"line":16,"column":26},"end":{"line":16,"column":null}}],"line":16},"4":{"loc":{"start":{"line":17,"column":14},"end":{"line":17,"column":null}},"type":"binary-expr","locations":[{"start":{"line":17,"column":14},"end":{"line":17,"column":34}},{"start":{"line":17,"column":34},"end":{"line":17,"column":null}}],"line":17},"5":{"loc":{"start":{"line":18,"column":13},"end":{"line":18,"column":null}},"type":"binary-expr","locations":[{"start":{"line":18,"column":13},"end":{"line":18,"column":32}},{"start":{"line":18,"column":32},"end":{"line":18,"column":null}}],"line":18},"6":{"loc":{"start":{"line":26,"column":12},"end":{"line":26,"column":null}},"type":"binary-expr","locations":[{"start":{"line":26,"column":12},"end":{"line":26,"column":28}},{"start":{"line":26,"column":28},"end":{"line":26,"column":null}}],"line":26},"7":{"loc":{"start":{"line":27,"column":16},"end":{"line":27,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":16},"end":{"line":27,"column":36}},{"start":{"line":27,"column":36},"end":{"line":27,"column":null}}],"line":27},"8":{"loc":{"start":{"line":28,"column":12},"end":{"line":28,"column":null}},"type":"binary-expr","locations":[{"start":{"line":28,"column":12},"end":{"line":28,"column":28}},{"start":{"line":28,"column":28},"end":{"line":28,"column":null}}],"line":28},"9":{"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":null}},"type":"binary-expr","locations":[{"start":{"line":29,"column":12},"end":{"line":29,"column":28}},{"start":{"line":29,"column":28},"end":{"line":29,"column":null}}],"line":29},"10":{"loc":{"start":{"line":30,"column":16},"end":{"line":30,"column":null}},"type":"binary-expr","locations":[{"start":{"line":30,"column":16},"end":{"line":30,"column":36}},{"start":{"line":30,"column":36},"end":{"line":30,"column":null}}],"line":30},"11":{"loc":{"start":{"line":31,"column":15},"end":{"line":31,"column":null}},"type":"binary-expr","locations":[{"start":{"line":31,"column":15},"end":{"line":31,"column":34}},{"start":{"line":31,"column":34},"end":{"line":31,"column":null}}],"line":31},"12":{"loc":{"start":{"line":42,"column":15},"end":{"line":42,"column":75}},"type":"cond-expr","locations":[{"start":{"line":42,"column":38},"end":{"line":42,"column":52}},{"start":{"line":42,"column":52},"end":{"line":42,"column":75}}],"line":42},"13":{"loc":{"start":{"line":49,"column":4},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":49,"column":null}},{"start":{},"end":{}}],"line":49},"14":{"loc":{"start":{"line":67,"column":13},"end":{"line":67,"column":null}},"type":"cond-expr","locations":[{"start":{"line":67,"column":22},"end":{"line":67,"column":45}},{"start":{"line":67,"column":45},"end":{"line":67,"column":null}}],"line":67},"15":{"loc":{"start":{"line":72,"column":11},"end":{"line":75,"column":null}},"type":"binary-expr","locations":[{"start":{"line":72,"column":11},"end":{"line":72,"column":null}},{"start":{"line":73,"column":12},"end":{"line":75,"column":null}}],"line":72},"16":{"loc":{"start":{"line":150,"column":13},"end":{"line":158,"column":null}},"type":"binary-expr","locations":[{"start":{"line":150,"column":13},"end":{"line":150,"column":null}},{"start":{"line":151,"column":14},"end":{"line":158,"column":null}}],"line":150},"17":{"loc":{"start":{"line":173,"column":15},"end":{"line":173,"column":null}},"type":"cond-expr","locations":[{"start":{"line":173,"column":25},"end":{"line":173,"column":40}},{"start":{"line":173,"column":40},"end":{"line":173,"column":null}}],"line":173},"18":{"loc":{"start":{"line":173,"column":40},"end":{"line":173,"column":null}},"type":"cond-expr","locations":[{"start":{"line":173,"column":49},"end":{"line":173,"column":60}},{"start":{"line":173,"column":60},"end":{"line":173,"column":null}}],"line":173}},"s":{"0":20,"1":20,"2":20,"3":20,"4":7,"5":20,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":1,"13":20,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":20,"24":1,"25":1,"26":1,"27":1,"28":0,"29":0},"f":{"0":20,"1":7,"2":1,"3":0,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0},"b":{"0":[20,16],"1":[20,16],"2":[20,16],"3":[20,16],"4":[20,18],"5":[20,16],"6":[7,5],"7":[7,5],"8":[7,5],"9":[7,5],"10":[7,6],"11":[7,5],"12":[0,0],"13":[0,0],"14":[4,16],"15":[20,0],"16":[20,4],"17":[1,19],"18":[4,15]},"meta":{"lastBranch":19,"lastFunction":10,"lastStatement":30,"seen":{"f:11:24:11:41":0,"s:12:30:19:Infinity":0,"b:13:10:13:26:13:26:13:Infinity":0,"b:14:14:14:34:14:34:14:Infinity":1,"b:15:10:15:26:15:26:15:Infinity":2,"b:16:10:16:26:16:26:16:Infinity":3,"b:17:14:17:34:17:34:17:Infinity":4,"b:18:13:18:32:18:32:18:Infinity":5,"s:21:28:21:Infinity":1,"s:22:24:22:Infinity":2,"s:24:2:33:Infinity":3,"f:24:12:24:18":1,"s:25:4:32:Infinity":4,"b:26:12:26:28:26:28:26:Infinity":6,"b:27:16:27:36:27:36:27:Infinity":7,"b:28:12:28:28:28:28:28:Infinity":8,"b:29:12:29:28:29:28:29:Infinity":9,"b:30:16:30:36:30:36:30:Infinity":10,"b:31:15:31:34:31:34:31:Infinity":11,"s:35:23:46:Infinity":5,"f:35:23:35:30":2,"s:36:4:36:Infinity":6,"s:37:4:37:Infinity":7,"s:38:4:38:Infinity":8,"s:39:4:45:Infinity":9,"s:40:6:40:Infinity":10,"s:42:6:42:Infinity":11,"b:42:38:42:52:42:52:42:75":12,"s:44:6:44:Infinity":12,"s:48:31:60:Infinity":13,"f:48:31:48:43":3,"b:49:4:49:Infinity:undefined:undefined:undefined:undefined":13,"s:49:4:49:Infinity":14,"s:49:23:49:Infinity":15,"s:50:4:50:Infinity":16,"s:51:4:51:Infinity":17,"s:52:4:59:Infinity":18,"s:53:21:53:Infinity":19,"s:54:6:54:Infinity":20,"s:56:6:56:Infinity":21,"s:58:6:58:Infinity":22,"s:62:2:178:Infinity":23,"b:67:22:67:45:67:45:67:Infinity":14,"b:72:11:72:Infinity:73:12:75:Infinity":15,"f:84:24:84:29":4,"s:84:29:84:Infinity":24,"f:95:26:95:31":5,"s:95:31:95:Infinity":25,"f:109:26:109:31":6,"s:109:31:109:Infinity":26,"f:124:26:124:31":7,"s:124:31:124:Infinity":27,"f:133:26:133:31":8,"s:133:31:133:Infinity":28,"f:143:24:143:29":9,"s:143:29:143:Infinity":29,"b:150:13:150:Infinity:151:14:158:Infinity":16,"b:173:25:173:40:173:40:173:Infinity":17,"b:173:49:173:60:173:60:173:Infinity":18}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ThemeToggle.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ThemeToggle.tsx","statementMap":{"0":{"start":{"line":5,"column":29},"end":{"line":5,"column":null}},"1":{"start":{"line":7,"column":2},"end":{"line":10,"column":null}}},"fnMap":{"0":{"name":"ThemeToggle","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":30}},"loc":{"start":{"line":4,"column":30},"end":{"line":12,"column":null}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":80},"end":{"line":8,"column":115}},"type":"cond-expr","locations":[{"start":{"line":8,"column":99},"end":{"line":8,"column":109}},{"start":{"line":8,"column":109},"end":{"line":8,"column":115}}],"line":8},"1":{"loc":{"start":{"line":9,"column":7},"end":{"line":9,"column":null}},"type":"cond-expr","locations":[{"start":{"line":9,"column":26},"end":{"line":9,"column":33}},{"start":{"line":9,"column":33},"end":{"line":9,"column":null}}],"line":9}},"s":{"0":8,"1":8},"f":{"0":8},"b":{"0":[8,0],"1":[8,0]},"meta":{"lastBranch":2,"lastFunction":1,"lastStatement":2,"seen":{"f:4:16:4:30":0,"s:5:29:5:Infinity":0,"s:7:2:10:Infinity":1,"b:8:99:8:109:8:109:8:115":0,"b:9:26:9:33:9:33:9:Infinity":1}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ui/Button.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/components/ui/Button.tsx","statementMap":{"0":{"start":{"line":20,"column":21},"end":{"line":20,"column":null}},"1":{"start":{"line":22,"column":19},"end":{"line":27,"column":null}},"2":{"start":{"line":29,"column":16},"end":{"line":33,"column":null}},"3":{"start":{"line":35,"column":2},"end":{"line":53,"column":null}}},"fnMap":{"0":{"name":"Button","decl":{"start":{"line":11,"column":16},"end":{"line":11,"column":23}},"loc":{"start":{"line":19,"column":16},"end":{"line":55,"column":null}},"line":19}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":2},"end":{"line":12,"column":null}},"type":"default-arg","locations":[{"start":{"line":12,"column":12},"end":{"line":12,"column":null}}],"line":12},"1":{"loc":{"start":{"line":13,"column":2},"end":{"line":13,"column":null}},"type":"default-arg","locations":[{"start":{"line":13,"column":9},"end":{"line":13,"column":null}}],"line":13},"2":{"loc":{"start":{"line":14,"column":2},"end":{"line":14,"column":null}},"type":"default-arg","locations":[{"start":{"line":14,"column":14},"end":{"line":14,"column":null}}],"line":14},"3":{"loc":{"start":{"line":43,"column":16},"end":{"line":43,"column":null}},"type":"binary-expr","locations":[{"start":{"line":43,"column":16},"end":{"line":43,"column":28}},{"start":{"line":43,"column":28},"end":{"line":43,"column":null}}],"line":43},"4":{"loc":{"start":{"line":46,"column":7},"end":{"line":50,"column":null}},"type":"binary-expr","locations":[{"start":{"line":46,"column":7},"end":{"line":46,"column":null}},{"start":{"line":47,"column":8},"end":{"line":50,"column":null}}],"line":46}},"s":{"0":12,"1":12,"2":12,"3":12},"f":{"0":12},"b":{"0":[12],"1":[12],"2":[12],"3":[12,12],"4":[12,0]},"meta":{"lastBranch":5,"lastFunction":1,"lastStatement":4,"seen":{"f:11:16:11:23":0,"b:12:12:12:Infinity":0,"b:13:9:13:Infinity":1,"b:14:14:14:Infinity":2,"s:20:21:20:Infinity":0,"s:22:19:27:Infinity":1,"s:29:16:33:Infinity":2,"s:35:2:53:Infinity":3,"b:43:16:43:28:43:28:43:Infinity":3,"b:46:7:46:Infinity:47:8:50:Infinity":4}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/context/ThemeContext.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/context/ThemeContext.tsx","statementMap":{"0":{"start":{"line":10,"column":6},"end":{"line":10,"column":null}},"1":{"start":{"line":13,"column":24},"end":{"line":16,"column":null}},"2":{"start":{"line":14,"column":18},"end":{"line":14,"column":null}},"3":{"start":{"line":15,"column":4},"end":{"line":15,"column":null}},"4":{"start":{"line":18,"column":2},"end":{"line":23,"column":null}},"5":{"start":{"line":19,"column":17},"end":{"line":19,"column":null}},"6":{"start":{"line":20,"column":4},"end":{"line":20,"column":null}},"7":{"start":{"line":21,"column":4},"end":{"line":21,"column":null}},"8":{"start":{"line":22,"column":4},"end":{"line":22,"column":null}},"9":{"start":{"line":25,"column":22},"end":{"line":27,"column":null}},"10":{"start":{"line":26,"column":4},"end":{"line":26,"column":null}},"11":{"start":{"line":26,"column":21},"end":{"line":26,"column":55}},"12":{"start":{"line":29,"column":2},"end":{"line":32,"column":null}},"13":{"start":{"line":37,"column":8},"end":{"line":37,"column":null}},"14":{"start":{"line":38,"column":2},"end":{"line":40,"column":null}},"15":{"start":{"line":39,"column":4},"end":{"line":39,"column":null}},"16":{"start":{"line":41,"column":2},"end":{"line":41,"column":null}}},"fnMap":{"0":{"name":"ThemeProvider","decl":{"start":{"line":12,"column":16},"end":{"line":12,"column":30}},"loc":{"start":{"line":12,"column":69},"end":{"line":34,"column":null}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":44},"end":{"line":13,"column":50}},"loc":{"start":{"line":13,"column":50},"end":{"line":16,"column":3}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":12},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":18},"end":{"line":23,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":22},"end":{"line":25,"column":28}},"loc":{"start":{"line":25,"column":28},"end":{"line":27,"column":null}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":13},"end":{"line":26,"column":21}},"loc":{"start":{"line":26,"column":21},"end":{"line":26,"column":55}},"line":26},"5":{"name":"useTheme","decl":{"start":{"line":36,"column":16},"end":{"line":36,"column":27}},"loc":{"start":{"line":36,"column":27},"end":{"line":42,"column":null}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":12},"end":{"line":15,"column":null}},"type":"binary-expr","locations":[{"start":{"line":15,"column":12},"end":{"line":15,"column":31}},{"start":{"line":15,"column":31},"end":{"line":15,"column":null}}],"line":15},"1":{"loc":{"start":{"line":26,"column":21},"end":{"line":26,"column":55}},"type":"cond-expr","locations":[{"start":{"line":26,"column":39},"end":{"line":26,"column":49}},{"start":{"line":26,"column":49},"end":{"line":26,"column":55}}],"line":26},"2":{"loc":{"start":{"line":38,"column":2},"end":{"line":40,"column":null}},"type":"if","locations":[{"start":{"line":38,"column":2},"end":{"line":40,"column":null}},{"start":{},"end":{}}],"line":38}},"s":{"0":1,"1":4,"2":4,"3":4,"4":4,"5":4,"6":4,"7":4,"8":4,"9":4,"10":0,"11":0,"12":4,"13":8,"14":8,"15":0,"16":8},"f":{"0":4,"1":4,"2":4,"3":0,"4":0,"5":8},"b":{"0":[4,1],"1":[0,0],"2":[0,8]},"meta":{"lastBranch":3,"lastFunction":6,"lastStatement":17,"seen":{"s:10:6:10:Infinity":0,"f:12:16:12:30":0,"s:13:24:16:Infinity":1,"f:13:44:13:50":1,"s:14:18:14:Infinity":2,"s:15:4:15:Infinity":3,"b:15:12:15:31:15:31:15:Infinity":0,"s:18:2:23:Infinity":4,"f:18:12:18:18":2,"s:19:17:19:Infinity":5,"s:20:4:20:Infinity":6,"s:21:4:21:Infinity":7,"s:22:4:22:Infinity":8,"s:25:22:27:Infinity":9,"f:25:22:25:28":3,"s:26:4:26:Infinity":10,"f:26:13:26:21":4,"s:26:21:26:55":11,"b:26:39:26:49:26:49:26:55":1,"s:29:2:32:Infinity":12,"f:36:16:36:27":5,"s:37:8:37:Infinity":13,"b:38:2:40:Infinity:undefined:undefined:undefined:undefined":2,"s:38:2:40:Infinity":14,"s:39:4:39:Infinity":15,"s:41:2:41:Infinity":16}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/hooks/useImport.ts": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/hooks/useImport.ts","statementMap":{"0":{"start":{"line":12,"column":25},"end":{"line":12,"column":null}},"1":{"start":{"line":15,"column":8},"end":{"line":15,"column":null}},"2":{"start":{"line":18,"column":8},"end":{"line":29,"column":null}},"3":{"start":{"line":22,"column":19},"end":{"line":22,"column":null}},"4":{"start":{"line":24,"column":6},"end":{"line":26,"column":null}},"5":{"start":{"line":25,"column":8},"end":{"line":25,"column":null}},"6":{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},"7":{"start":{"line":31,"column":8},"end":{"line":35,"column":null}},"8":{"start":{"line":37,"column":8},"end":{"line":43,"column":null}},"9":{"start":{"line":38,"column":17},"end":{"line":38,"column":null}},"10":{"start":{"line":40,"column":6},"end":{"line":40,"column":null}},"11":{"start":{"line":41,"column":6},"end":{"line":41,"column":null}},"12":{"start":{"line":45,"column":8},"end":{"line":53,"column":null}},"13":{"start":{"line":46,"column":17},"end":{"line":46,"column":null}},"14":{"start":{"line":48,"column":6},"end":{"line":48,"column":null}},"15":{"start":{"line":49,"column":6},"end":{"line":49,"column":null}},"16":{"start":{"line":51,"column":6},"end":{"line":51,"column":null}},"17":{"start":{"line":55,"column":8},"end":{"line":61,"column":null}},"18":{"start":{"line":56,"column":16},"end":{"line":56,"column":null}},"19":{"start":{"line":58,"column":6},"end":{"line":58,"column":null}},"20":{"start":{"line":59,"column":6},"end":{"line":59,"column":null}},"21":{"start":{"line":63,"column":2},"end":{"line":73,"column":null}}},"fnMap":{"0":{"name":"useImport","decl":{"start":{"line":14,"column":16},"end":{"line":14,"column":28}},"loc":{"start":{"line":14,"column":28},"end":{"line":74,"column":null}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":21},"end":{"line":21,"column":22}},"loc":{"start":{"line":21,"column":32},"end":{"line":28,"column":null}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":16},"end":{"line":38,"column":17}},"loc":{"start":{"line":38,"column":17},"end":{"line":38,"column":null}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":15},"end":{"line":39,"column":21}},"loc":{"start":{"line":39,"column":21},"end":{"line":42,"column":null}},"line":39},"4":{"name":"(anonymous_4)","decl":{"start":{"line":46,"column":16},"end":{"line":46,"column":17}},"loc":{"start":{"line":46,"column":17},"end":{"line":46,"column":null}},"line":46},"5":{"name":"(anonymous_5)","decl":{"start":{"line":47,"column":15},"end":{"line":47,"column":21}},"loc":{"start":{"line":47,"column":21},"end":{"line":52,"column":null}},"line":47},"6":{"name":"(anonymous_6)","decl":{"start":{"line":56,"column":16},"end":{"line":56,"column":22}},"loc":{"start":{"line":56,"column":16},"end":{"line":56,"column":null}},"line":56},"7":{"name":"(anonymous_7)","decl":{"start":{"line":57,"column":15},"end":{"line":57,"column":21}},"loc":{"start":{"line":57,"column":21},"end":{"line":60,"column":null}},"line":57}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":6},"end":{"line":26,"column":null}},"type":"if","locations":[{"start":{"line":24,"column":6},"end":{"line":26,"column":null}},{"start":{},"end":{}}],"line":24},"1":{"loc":{"start":{"line":24,"column":10},"end":{"line":24,"column":69}},"type":"binary-expr","locations":[{"start":{"line":24,"column":10},"end":{"line":24,"column":31}},{"start":{"line":24,"column":31},"end":{"line":24,"column":69}}],"line":24},"2":{"loc":{"start":{"line":34,"column":13},"end":{"line":34,"column":null}},"type":"binary-expr","locations":[{"start":{"line":34,"column":13},"end":{"line":34,"column":48}},{"start":{"line":34,"column":48},"end":{"line":34,"column":null}}],"line":34},"3":{"loc":{"start":{"line":64,"column":13},"end":{"line":64,"column":null}},"type":"binary-expr","locations":[{"start":{"line":64,"column":13},"end":{"line":64,"column":42}},{"start":{"line":64,"column":42},"end":{"line":64,"column":null}}],"line":64},"4":{"loc":{"start":{"line":65,"column":13},"end":{"line":65,"column":null}},"type":"binary-expr","locations":[{"start":{"line":65,"column":13},"end":{"line":65,"column":34}},{"start":{"line":65,"column":34},"end":{"line":65,"column":null}}],"line":65},"5":{"loc":{"start":{"line":66,"column":13},"end":{"line":66,"column":null}},"type":"binary-expr","locations":[{"start":{"line":66,"column":13},"end":{"line":66,"column":38}},{"start":{"line":66,"column":38},"end":{"line":66,"column":66}},{"start":{"line":66,"column":66},"end":{"line":66,"column":94}},{"start":{"line":66,"column":94},"end":{"line":66,"column":null}}],"line":66},"6":{"loc":{"start":{"line":67,"column":12},"end":{"line":69,"column":null}},"type":"cond-expr","locations":[{"start":{"line":67,"column":118},"end":{"line":68,"column":null}},{"start":{"line":69,"column":8},"end":{"line":69,"column":null}}],"line":67},"7":{"loc":{"start":{"line":67,"column":12},"end":{"line":67,"column":null}},"type":"binary-expr","locations":[{"start":{"line":67,"column":12},"end":{"line":67,"column":33}},{"start":{"line":67,"column":33},"end":{"line":67,"column":55}},{"start":{"line":67,"column":55},"end":{"line":67,"column":79}},{"start":{"line":67,"column":79},"end":{"line":67,"column":103}},{"start":{"line":67,"column":103},"end":{"line":67,"column":null}}],"line":67},"8":{"loc":{"start":{"line":68,"column":10},"end":{"line":68,"column":133}},"type":"binary-expr","locations":[{"start":{"line":68,"column":10},"end":{"line":68,"column":31}},{"start":{"line":68,"column":31},"end":{"line":68,"column":53}},{"start":{"line":68,"column":53},"end":{"line":68,"column":77}},{"start":{"line":68,"column":77},"end":{"line":68,"column":101}},{"start":{"line":68,"column":101},"end":{"line":68,"column":133}}],"line":68}},"s":{"0":1,"1":19,"2":19,"3":61,"4":61,"5":29,"6":32,"7":19,"8":19,"9":5,"10":4,"11":4,"12":19,"13":2,"14":1,"15":1,"16":1,"17":19,"18":1,"19":1,"20":1,"21":19},"f":{"0":19,"1":61,"2":5,"3":4,"4":2,"5":1,"6":1,"7":1},"b":{"0":[29,32],"1":[61,29],"2":[19,9],"3":[19,10],"4":[19,12],"5":[19,13,13,13],"6":[2,17],"7":[19,19,19,18,17],"8":[2,2,2,1,0]},"meta":{"lastBranch":9,"lastFunction":8,"lastStatement":22,"seen":{"s:12:25:12:Infinity":0,"f:14:16:14:28":0,"s:15:8:15:Infinity":1,"s:18:8:29:Infinity":2,"f:21:21:21:22":1,"s:22:19:22:Infinity":3,"b:24:6:26:Infinity:undefined:undefined:undefined:undefined":0,"s:24:6:26:Infinity":4,"b:24:10:24:31:24:31:24:69":1,"s:25:8:25:Infinity":5,"s:27:6:27:Infinity":6,"s:31:8:35:Infinity":7,"b:34:13:34:48:34:48:34:Infinity":2,"s:37:8:43:Infinity":8,"f:38:16:38:17":2,"s:38:17:38:Infinity":9,"f:39:15:39:21":3,"s:40:6:40:Infinity":10,"s:41:6:41:Infinity":11,"s:45:8:53:Infinity":12,"f:46:16:46:17":4,"s:46:17:46:Infinity":13,"f:47:15:47:21":5,"s:48:6:48:Infinity":14,"s:49:6:49:Infinity":15,"s:51:6:51:Infinity":16,"s:55:8:61:Infinity":17,"f:56:16:56:22":6,"s:56:16:56:Infinity":18,"f:57:15:57:21":7,"s:58:6:58:Infinity":19,"s:59:6:59:Infinity":20,"s:63:2:73:Infinity":21,"b:64:13:64:42:64:42:64:Infinity":3,"b:65:13:65:34:65:34:65:Infinity":4,"b:66:13:66:38:66:38:66:66:66:66:66:94:66:94:66:Infinity":5,"b:67:118:68:Infinity:69:8:69:Infinity":6,"b:67:12:67:33:67:33:67:55:67:55:67:79:67:79:67:103:67:103:67:Infinity":7,"b:68:10:68:31:68:31:68:53:68:53:68:77:68:77:68:101:68:101:68:133":8}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/hooks/useProxyHosts.ts": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/hooks/useProxyHosts.ts","statementMap":{"0":{"start":{"line":10,"column":25},"end":{"line":10,"column":null}},"1":{"start":{"line":13,"column":8},"end":{"line":13,"column":null}},"2":{"start":{"line":15,"column":8},"end":{"line":18,"column":null}},"3":{"start":{"line":20,"column":8},"end":{"line":25,"column":null}},"4":{"start":{"line":21,"column":17},"end":{"line":21,"column":null}},"5":{"start":{"line":23,"column":6},"end":{"line":23,"column":null}},"6":{"start":{"line":27,"column":8},"end":{"line":33,"column":null}},"7":{"start":{"line":28,"column":30},"end":{"line":29,"column":null}},"8":{"start":{"line":31,"column":6},"end":{"line":31,"column":null}},"9":{"start":{"line":35,"column":8},"end":{"line":40,"column":null}},"10":{"start":{"line":36,"column":17},"end":{"line":36,"column":null}},"11":{"start":{"line":38,"column":6},"end":{"line":38,"column":null}},"12":{"start":{"line":42,"column":2},"end":{"line":52,"column":null}},"13":{"start":{"line":47,"column":60},"end":{"line":47,"column":null}}},"fnMap":{"0":{"name":"useProxyHosts","decl":{"start":{"line":12,"column":16},"end":{"line":12,"column":32}},"loc":{"start":{"line":12,"column":32},"end":{"line":53,"column":null}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":16},"end":{"line":21,"column":17}},"loc":{"start":{"line":21,"column":17},"end":{"line":21,"column":null}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":15},"end":{"line":22,"column":21}},"loc":{"start":{"line":22,"column":21},"end":{"line":24,"column":null}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":28,"column":16},"end":{"line":28,"column":17}},"loc":{"start":{"line":28,"column":30},"end":{"line":29,"column":null}},"line":28},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":15},"end":{"line":30,"column":21}},"loc":{"start":{"line":30,"column":21},"end":{"line":32,"column":null}},"line":30},"5":{"name":"(anonymous_5)","decl":{"start":{"line":36,"column":16},"end":{"line":36,"column":17}},"loc":{"start":{"line":36,"column":17},"end":{"line":36,"column":null}},"line":36},"6":{"name":"(anonymous_6)","decl":{"start":{"line":37,"column":15},"end":{"line":37,"column":21}},"loc":{"start":{"line":37,"column":21},"end":{"line":39,"column":null}},"line":37},"7":{"name":"(anonymous_7)","decl":{"start":{"line":47,"column":16},"end":{"line":47,"column":17}},"loc":{"start":{"line":47,"column":60},"end":{"line":47,"column":null}},"line":47}},"branchMap":{"0":{"loc":{"start":{"line":43,"column":11},"end":{"line":43,"column":null}},"type":"binary-expr","locations":[{"start":{"line":43,"column":11},"end":{"line":43,"column":25}},{"start":{"line":43,"column":25},"end":{"line":43,"column":null}}],"line":43},"1":{"loc":{"start":{"line":45,"column":11},"end":{"line":45,"column":null}},"type":"cond-expr","locations":[{"start":{"line":45,"column":26},"end":{"line":45,"column":58}},{"start":{"line":45,"column":58},"end":{"line":45,"column":null}}],"line":45}},"s":{"0":1,"1":19,"2":19,"3":19,"4":2,"5":1,"6":19,"7":2,"8":1,"9":19,"10":2,"11":1,"12":19,"13":2},"f":{"0":19,"1":2,"2":1,"3":2,"4":1,"5":2,"6":1,"7":2},"b":{"0":[19,9],"1":[1,18]},"meta":{"lastBranch":2,"lastFunction":8,"lastStatement":14,"seen":{"s:10:25:10:Infinity":0,"f:12:16:12:32":0,"s:13:8:13:Infinity":1,"s:15:8:18:Infinity":2,"s:20:8:25:Infinity":3,"f:21:16:21:17":1,"s:21:17:21:Infinity":4,"f:22:15:22:21":2,"s:23:6:23:Infinity":5,"s:27:8:33:Infinity":6,"f:28:16:28:17":3,"s:28:30:29:Infinity":7,"f:30:15:30:21":4,"s:31:6:31:Infinity":8,"s:35:8:40:Infinity":9,"f:36:16:36:17":5,"s:36:17:36:Infinity":10,"f:37:15:37:21":6,"s:38:6:38:Infinity":11,"s:42:2:52:Infinity":12,"b:43:11:43:25:43:25:43:Infinity":0,"b:45:26:45:58:45:58:45:Infinity":1,"f:47:16:47:17":7,"s:47:60:47:Infinity":13}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/hooks/useRemoteServers.ts": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/hooks/useRemoteServers.ts","statementMap":{"0":{"start":{"line":11,"column":25},"end":{"line":11,"column":null}},"1":{"start":{"line":14,"column":8},"end":{"line":14,"column":null}},"2":{"start":{"line":16,"column":8},"end":{"line":19,"column":null}},"3":{"start":{"line":18,"column":13},"end":{"line":18,"column":null}},"4":{"start":{"line":21,"column":8},"end":{"line":26,"column":null}},"5":{"start":{"line":22,"column":17},"end":{"line":22,"column":null}},"6":{"start":{"line":24,"column":6},"end":{"line":24,"column":null}},"7":{"start":{"line":28,"column":8},"end":{"line":34,"column":null}},"8":{"start":{"line":29,"column":30},"end":{"line":30,"column":null}},"9":{"start":{"line":32,"column":6},"end":{"line":32,"column":null}},"10":{"start":{"line":36,"column":8},"end":{"line":41,"column":null}},"11":{"start":{"line":37,"column":17},"end":{"line":37,"column":null}},"12":{"start":{"line":39,"column":6},"end":{"line":39,"column":null}},"13":{"start":{"line":43,"column":8},"end":{"line":45,"column":null}},"14":{"start":{"line":44,"column":17},"end":{"line":44,"column":null}},"15":{"start":{"line":47,"column":2},"end":{"line":59,"column":null}},"16":{"start":{"line":52,"column":65},"end":{"line":52,"column":null}}},"fnMap":{"0":{"name":"useRemoteServers","decl":{"start":{"line":13,"column":16},"end":{"line":13,"column":33}},"loc":{"start":{"line":13,"column":54},"end":{"line":60,"column":null}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":13},"end":{"line":18,"column":19}},"loc":{"start":{"line":18,"column":13},"end":{"line":18,"column":null}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":16},"end":{"line":22,"column":17}},"loc":{"start":{"line":22,"column":17},"end":{"line":22,"column":null}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":15},"end":{"line":23,"column":21}},"loc":{"start":{"line":23,"column":21},"end":{"line":25,"column":null}},"line":23},"4":{"name":"(anonymous_4)","decl":{"start":{"line":29,"column":16},"end":{"line":29,"column":17}},"loc":{"start":{"line":29,"column":30},"end":{"line":30,"column":null}},"line":29},"5":{"name":"(anonymous_5)","decl":{"start":{"line":31,"column":15},"end":{"line":31,"column":21}},"loc":{"start":{"line":31,"column":21},"end":{"line":33,"column":null}},"line":31},"6":{"name":"(anonymous_6)","decl":{"start":{"line":37,"column":16},"end":{"line":37,"column":17}},"loc":{"start":{"line":37,"column":17},"end":{"line":37,"column":null}},"line":37},"7":{"name":"(anonymous_7)","decl":{"start":{"line":38,"column":15},"end":{"line":38,"column":21}},"loc":{"start":{"line":38,"column":21},"end":{"line":40,"column":null}},"line":38},"8":{"name":"(anonymous_8)","decl":{"start":{"line":44,"column":16},"end":{"line":44,"column":17}},"loc":{"start":{"line":44,"column":17},"end":{"line":44,"column":null}},"line":44},"9":{"name":"(anonymous_9)","decl":{"start":{"line":52,"column":18},"end":{"line":52,"column":19}},"loc":{"start":{"line":52,"column":65},"end":{"line":52,"column":null}},"line":52}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":33},"end":{"line":13,"column":54}},"type":"default-arg","locations":[{"start":{"line":13,"column":47},"end":{"line":13,"column":54}}],"line":13},"1":{"loc":{"start":{"line":48,"column":13},"end":{"line":48,"column":null}},"type":"binary-expr","locations":[{"start":{"line":48,"column":13},"end":{"line":48,"column":27}},{"start":{"line":48,"column":27},"end":{"line":48,"column":null}}],"line":48},"2":{"loc":{"start":{"line":50,"column":11},"end":{"line":50,"column":null}},"type":"cond-expr","locations":[{"start":{"line":50,"column":26},"end":{"line":50,"column":58}},{"start":{"line":50,"column":58},"end":{"line":50,"column":null}}],"line":50}},"s":{"0":1,"1":23,"2":23,"3":13,"4":23,"5":2,"6":1,"7":23,"8":2,"9":1,"10":23,"11":2,"12":1,"13":23,"14":2,"15":23,"16":2},"f":{"0":23,"1":13,"2":2,"3":1,"4":2,"5":1,"6":2,"7":1,"8":2,"9":2},"b":{"0":[23],"1":[23,11],"2":[1,22]},"meta":{"lastBranch":3,"lastFunction":10,"lastStatement":17,"seen":{"s:11:25:11:Infinity":0,"f:13:16:13:33":0,"b:13:47:13:54":0,"s:14:8:14:Infinity":1,"s:16:8:19:Infinity":2,"f:18:13:18:19":1,"s:18:13:18:Infinity":3,"s:21:8:26:Infinity":4,"f:22:16:22:17":2,"s:22:17:22:Infinity":5,"f:23:15:23:21":3,"s:24:6:24:Infinity":6,"s:28:8:34:Infinity":7,"f:29:16:29:17":4,"s:29:30:30:Infinity":8,"f:31:15:31:21":5,"s:32:6:32:Infinity":9,"s:36:8:41:Infinity":10,"f:37:16:37:17":6,"s:37:17:37:Infinity":11,"f:38:15:38:21":7,"s:39:6:39:Infinity":12,"s:43:8:45:Infinity":13,"f:44:16:44:17":8,"s:44:17:44:Infinity":14,"s:47:2:59:Infinity":15,"b:48:13:48:27:48:27:48:Infinity":1,"b:50:26:50:58:50:58:50:Infinity":2,"f:52:18:52:19":9,"s:52:65:52:Infinity":16}}} +,"/home/jeremy/Server/Projects/cpmp/frontend/src/pages/Setup.tsx": {"path":"/home/jeremy/Server/Projects/cpmp/frontend/src/pages/Setup.tsx","statementMap":{"0":{"start":{"line":6,"column":24},"end":{"line":142,"column":null}},"1":{"start":{"line":7,"column":8},"end":{"line":7,"column":null}},"2":{"start":{"line":8,"column":30},"end":{"line":12,"column":null}},"3":{"start":{"line":13,"column":24},"end":{"line":13,"column":null}},"4":{"start":{"line":15,"column":49},"end":{"line":19,"column":null}},"5":{"start":{"line":21,"column":2},"end":{"line":25,"column":null}},"6":{"start":{"line":22,"column":4},"end":{"line":24,"column":null}},"7":{"start":{"line":23,"column":6},"end":{"line":23,"column":null}},"8":{"start":{"line":27,"column":8},"end":{"line":35,"column":null}},"9":{"start":{"line":30,"column":6},"end":{"line":30,"column":null}},"10":{"start":{"line":33,"column":6},"end":{"line":33,"column":null}},"11":{"start":{"line":37,"column":23},"end":{"line":41,"column":null}},"12":{"start":{"line":38,"column":4},"end":{"line":38,"column":null}},"13":{"start":{"line":39,"column":4},"end":{"line":39,"column":null}},"14":{"start":{"line":40,"column":4},"end":{"line":40,"column":null}},"15":{"start":{"line":43,"column":2},"end":{"line":49,"column":null}},"16":{"start":{"line":44,"column":4},"end":{"line":47,"column":null}},"17":{"start":{"line":51,"column":2},"end":{"line":53,"column":null}},"18":{"start":{"line":52,"column":4},"end":{"line":52,"column":null}},"19":{"start":{"line":55,"column":2},"end":{"line":140,"column":null}},"20":{"start":{"line":80,"column":33},"end":{"line":80,"column":null}},"21":{"start":{"line":95,"column":33},"end":{"line":95,"column":null}},"22":{"start":{"line":114,"column":33},"end":{"line":114,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":30}},"loc":{"start":{"line":6,"column":30},"end":{"line":142,"column":null}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":12},"end":{"line":21,"column":18}},"loc":{"start":{"line":21,"column":18},"end":{"line":25,"column":5}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":15},"end":{"line":29,"column":21}},"loc":{"start":{"line":29,"column":21},"end":{"line":31,"column":null}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":32,"column":13},"end":{"line":32,"column":14}},"loc":{"start":{"line":32,"column":27},"end":{"line":34,"column":null}},"line":32},"4":{"name":"(anonymous_4)","decl":{"start":{"line":37,"column":23},"end":{"line":37,"column":24}},"loc":{"start":{"line":37,"column":47},"end":{"line":41,"column":null}},"line":37},"5":{"name":"(anonymous_5)","decl":{"start":{"line":80,"column":26},"end":{"line":80,"column":27}},"loc":{"start":{"line":80,"column":33},"end":{"line":80,"column":null}},"line":80},"6":{"name":"(anonymous_6)","decl":{"start":{"line":95,"column":26},"end":{"line":95,"column":27}},"loc":{"start":{"line":95,"column":33},"end":{"line":95,"column":null}},"line":95},"7":{"name":"(anonymous_7)","decl":{"start":{"line":114,"column":26},"end":{"line":114,"column":27}},"loc":{"start":{"line":114,"column":33},"end":{"line":114,"column":null}},"line":114}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":4},"end":{"line":24,"column":null}},"type":"if","locations":[{"start":{"line":22,"column":4},"end":{"line":24,"column":null}},{"start":{},"end":{}}],"line":22},"1":{"loc":{"start":{"line":22,"column":8},"end":{"line":22,"column":41}},"type":"binary-expr","locations":[{"start":{"line":22,"column":8},"end":{"line":22,"column":18}},{"start":{"line":22,"column":18},"end":{"line":22,"column":41}}],"line":22},"2":{"loc":{"start":{"line":33,"column":15},"end":{"line":33,"column":58}},"type":"binary-expr","locations":[{"start":{"line":33,"column":15},"end":{"line":33,"column":44}},{"start":{"line":33,"column":44},"end":{"line":33,"column":58}}],"line":33},"3":{"loc":{"start":{"line":43,"column":2},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":43,"column":2},"end":{"line":49,"column":null}},{"start":{},"end":{}}],"line":43},"4":{"loc":{"start":{"line":51,"column":2},"end":{"line":53,"column":null}},"type":"if","locations":[{"start":{"line":51,"column":2},"end":{"line":53,"column":null}},{"start":{},"end":{}}],"line":51},"5":{"loc":{"start":{"line":51,"column":6},"end":{"line":51,"column":39}},"type":"binary-expr","locations":[{"start":{"line":51,"column":6},"end":{"line":51,"column":16}},{"start":{"line":51,"column":16},"end":{"line":51,"column":39}}],"line":51},"6":{"loc":{"start":{"line":119,"column":11},"end":{"line":122,"column":null}},"type":"binary-expr","locations":[{"start":{"line":119,"column":11},"end":{"line":119,"column":null}},{"start":{"line":120,"column":12},"end":{"line":122,"column":null}}],"line":119},"7":{"loc":{"start":{"line":131,"column":15},"end":{"line":134,"column":null}},"type":"cond-expr","locations":[{"start":{"line":132,"column":16},"end":{"line":132,"column":null}},{"start":{"line":134,"column":16},"end":{"line":134,"column":null}}],"line":131}},"s":{"0":1,"1":3,"2":3,"3":3,"4":3,"5":3,"6":3,"7":0,"8":3,"9":0,"10":0,"11":3,"12":0,"13":0,"14":0,"15":3,"16":2,"17":1,"18":0,"19":1,"20":0,"21":0,"22":0},"f":{"0":3,"1":3,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"b":{"0":[0,3],"1":[3,1],"2":[0,0],"3":[2,1],"4":[0,1],"5":[1,1],"6":[1,0],"7":[0,1]},"meta":{"lastBranch":8,"lastFunction":8,"lastStatement":23,"seen":{"s:6:24:142:Infinity":0,"f:6:24:6:30":0,"s:7:8:7:Infinity":1,"s:8:30:12:Infinity":2,"s:13:24:13:Infinity":3,"s:15:49:19:Infinity":4,"s:21:2:25:Infinity":5,"f:21:12:21:18":1,"b:22:4:24:Infinity:undefined:undefined:undefined:undefined":0,"s:22:4:24:Infinity":6,"b:22:8:22:18:22:18:22:41":1,"s:23:6:23:Infinity":7,"s:27:8:35:Infinity":8,"f:29:15:29:21":2,"s:30:6:30:Infinity":9,"f:32:13:32:14":3,"s:33:6:33:Infinity":10,"b:33:15:33:44:33:44:33:58":2,"s:37:23:41:Infinity":11,"f:37:23:37:24":4,"s:38:4:38:Infinity":12,"s:39:4:39:Infinity":13,"s:40:4:40:Infinity":14,"b:43:2:49:Infinity:undefined:undefined:undefined:undefined":3,"s:43:2:49:Infinity":15,"s:44:4:47:Infinity":16,"b:51:2:53:Infinity:undefined:undefined:undefined:undefined":4,"s:51:2:53:Infinity":17,"b:51:6:51:16:51:16:51:39":5,"s:52:4:52:Infinity":18,"s:55:2:140:Infinity":19,"f:80:26:80:27":5,"s:80:33:80:Infinity":20,"f:95:26:95:27":6,"s:95:33:95:Infinity":21,"f:114:26:114:27":7,"s:114:33:114:Infinity":22,"b:119:11:119:Infinity:120:12:122:Infinity":6,"b:132:16:132:Infinity:134:16:134:Infinity":7}}} } diff --git a/frontend/coverage/index.html b/frontend/coverage/index.html index 7e9252f6..4c2a2566 100644 --- a/frontend/coverage/index.html +++ b/frontend/coverage/index.html @@ -23,30 +23,30 @@
- 69.79% + 77.89% Statements - 67/96 + 148/190
- 75.23% + 82.09% Branches - 79/105 + 133/162
- 66.66% + 70.73% Functions - 26/39 + 58/82
- 70.96% + 79.03% Lines - 66/93 + 147/186
@@ -79,63 +79,78 @@ - ImportReviewTable.tsx - -
+ components + +
- 90.47% - 19/21 - 91.3% - 21/23 - 100% - 8/8 - 90% - 18/20 + 68.81% + 64/93 + 81.63% + 80/98 + 60.97% + 25/41 + 70% + 63/90 - Layout.tsx + components/ui
100% - 5/5 + 4/4 + 85.71% + 6/7 100% - 2/2 + 1/1 100% - 2/2 - 100% - 5/5 + 4/4 - ProxyHostForm.tsx - -
+ context + +
- 64.1% - 25/39 - 86.84% - 33/38 + 82.35% + 14/17 50% - 10/20 - 65.78% - 25/38 + 3/6 + 66.66% + 4/6 + 87.5% + 14/16 - RemoteServerForm.tsx - -
+ hooks + +
- 58.06% - 18/31 - 54.76% - 23/42 - 66.66% - 6/9 - 60% - 18/30 + 100% + 53/53 + 97.14% + 34/35 + 100% + 26/26 + 100% + 53/53 + + + + pages + +
+ + 56.52% + 13/23 + 62.5% + 10/16 + 25% + 2/8 + 56.52% + 13/23 @@ -146,7 +161,7 @@