diff --git a/go.mod b/go.mod index 536d66e4..d3280f69 100644 --- a/go.mod +++ b/go.mod @@ -6,44 +6,44 @@ toolchain go1.23.2 require ( github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 - github.com/alibabacloud-go/alb-20200616/v2 v2.2.6 + github.com/alibabacloud-go/alb-20200616/v2 v2.2.7 github.com/alibabacloud-go/cas-20200407/v3 v3.0.4 github.com/alibabacloud-go/cdn-20180510/v5 v5.2.2 github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10 - github.com/alibabacloud-go/esa-20240910/v2 v2.12.0 + github.com/alibabacloud-go/esa-20240910/v2 v2.13.0 github.com/alibabacloud-go/live-20161101 v1.1.1 github.com/alibabacloud-go/nlb-20220430/v2 v2.0.3 github.com/alibabacloud-go/slb-20140515/v4 v4.0.10 github.com/alibabacloud-go/tea v1.2.2 github.com/alibabacloud-go/waf-openapi-20211001/v5 v5.0.4 github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible - github.com/aws/aws-sdk-go-v2/service/acm v1.30.13 - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.5 - github.com/baidubce/bce-sdk-go v0.9.214 - github.com/byteplus-sdk/byteplus-sdk-golang v1.0.40 + github.com/aws/aws-sdk-go-v2/service/acm v1.30.18 + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.10 + github.com/baidubce/bce-sdk-go v0.9.216 + github.com/byteplus-sdk/byteplus-sdk-golang v1.0.41 github.com/go-acme/lego/v4 v4.21.0 - github.com/go-resty/resty/v2 v2.16.4 + github.com/go-resty/resty/v2 v2.16.5 github.com/go-viper/mapstructure/v2 v2.2.1 - github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.132 + github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.135 github.com/nikoksr/notify v1.3.0 github.com/pavlo-v-chernykh/keystore-go/v4 v4.5.0 github.com/pkg/sftp v1.13.7 github.com/pocketbase/dbx v1.11.0 - github.com/pocketbase/pocketbase v0.25.0 + github.com/pocketbase/pocketbase v0.25.4 github.com/povsister/scp v0.0.0-20240802064259-28781e87b246 github.com/qiniu/go-sdk/v7 v7.25.2 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1084 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1084 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1084 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1084 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1084 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1084 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1096 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1096 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1096 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1096 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1096 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1096 github.com/ucloud/ucloud-sdk-go v0.22.31 - github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.8 - github.com/volcengine/volc-sdk-golang v1.0.193 - github.com/volcengine/volcengine-go-sdk v1.0.178 - golang.org/x/crypto v0.32.0 - golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c + github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.9 + github.com/volcengine/volc-sdk-golang v1.0.194 + github.com/volcengine/volcengine-go-sdk v1.0.180 + golang.org/x/crypto v0.33.0 + golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac k8s.io/api v0.32.1 k8s.io/apimachinery v0.32.1 k8s.io/client-go v0.32.1 @@ -120,24 +120,24 @@ require ( github.com/aliyun/alibaba-cloud-sdk-go v1.63.83 // indirect github.com/aliyun/credentials-go v1.4.3 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/aws/aws-sdk-go-v2 v1.36.0 + github.com/aws/aws-sdk-go-v2 v1.36.1 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect github.com/aws/aws-sdk-go-v2/config v1.29.5 github.com/aws/aws-sdk-go-v2/credentials v1.17.58 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.58 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.31 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.12 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.75.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.13 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/clbanning/mxj/v2 v2.7.0 // indirect @@ -180,20 +180,20 @@ require ( go.opencensus.io v0.24.0 // indirect gocloud.dev v0.40.0 // indirect golang.org/x/image v0.24.0 // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/mod v0.23.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/oauth2 v0.26.0 // indirect golang.org/x/sync v0.11.0 golang.org/x/sys v0.30.0 // indirect - golang.org/x/term v0.28.0 // indirect + golang.org/x/term v0.29.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.9.0 - golang.org/x/tools v0.29.0 // indirect + golang.org/x/tools v0.30.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect - google.golang.org/api v0.219.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489 // indirect + google.golang.org/api v0.220.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250207221924-e9438ea467c6 // indirect google.golang.org/grpc v1.70.0 // indirect - google.golang.org/protobuf v1.36.4 // indirect + google.golang.org/protobuf v1.36.5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/libc v1.61.11 // indirect diff --git a/go.sum b/go.sum index e470d833..e9239294 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,8 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= -cloud.google.com/go/auth v0.14.0 h1:A5C4dKV/Spdvxcl0ggWwWEzzP7AZMJSEIgrkngwhGYM= -cloud.google.com/go/auth v0.14.0/go.mod h1:CYsoRL1PdiDuqeQpZE0bP2pnPrGqFcOkI0nldEQis+A= +cloud.google.com/go/auth v0.14.1 h1:AwoJbzUdxA/whv1qj3TLKwh3XX5sikny2fc40wUl+h0= +cloud.google.com/go/auth v0.14.1/go.mod h1:4JHUxlGXisL0AW8kXPtUF6ztuOksyfUQNFjfsOCXkPM= cloud.google.com/go/auth/oauth2adapt v0.2.7 h1:/Lc7xODdqcEw8IrZ9SvwnlLX6j9FHQM74z6cBk9Rw6M= cloud.google.com/go/auth/oauth2adapt v0.2.7/go.mod h1:NTbTTzfvPl1Y3V1nPpOgl2w6d/FjO7NNUQaWSox6ZMc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= @@ -102,8 +102,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alex-ant/gomath v0.0.0-20160516115720-89013a210a82/go.mod h1:nLnM0KdK1CmygvjpDUO6m1TjSsiQtL61juhNsvV/JVI= -github.com/alibabacloud-go/alb-20200616/v2 v2.2.6 h1:lgTuFZSfULbwpotnmE8qguIWTwR+X+F5Xrz6WrHQCaA= -github.com/alibabacloud-go/alb-20200616/v2 v2.2.6/go.mod h1:jU/K+GVb5b0vjiDpkf6E0dH77tsi1jTLGWm4ouCiRxk= +github.com/alibabacloud-go/alb-20200616/v2 v2.2.7 h1:IdNb5qq+/j2WdpCLOYphZD7ETkmxuPEZLs9qFmrXlEY= +github.com/alibabacloud-go/alb-20200616/v2 v2.2.7/go.mod h1:jU/K+GVb5b0vjiDpkf6E0dH77tsi1jTLGWm4ouCiRxk= github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6 h1:eIf+iGJxdU4U9ypaUfbtOWCsZSbTb8AUHvyPrxu6mAA= github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6/go.mod h1:4EUIoxs/do24zMOGGqYVWgw0s9NtiylnJglOeEB5UJo= github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc= @@ -137,8 +137,8 @@ github.com/alibabacloud-go/debug v1.0.1/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/ql github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8= github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= -github.com/alibabacloud-go/esa-20240910/v2 v2.12.0 h1:DPyKQSVf+uba5SBEGgBpXRA8NpFuym1cSTKm1LzSxEo= -github.com/alibabacloud-go/esa-20240910/v2 v2.12.0/go.mod h1:P1w/+i7dE2xSXVHJznEOVImlLtqqrzUJQQk2AsyBJ6o= +github.com/alibabacloud-go/esa-20240910/v2 v2.13.0 h1:qLYLwczIIzoB1XxkyNC7rxbL3wkyBmVTAJZ+WZPtBTM= +github.com/alibabacloud-go/esa-20240910/v2 v2.13.0/go.mod h1:P1w/+i7dE2xSXVHJznEOVImlLtqqrzUJQQk2AsyBJ6o= github.com/alibabacloud-go/live-20161101 v1.1.1 h1:rUGfA8RHmCMtQ5M3yMSyRde+yRXWqVecmiXBU3XrGJ8= github.com/alibabacloud-go/live-20161101 v1.1.1/go.mod h1:g84w6qeAodT0/IHdc0tEed2a8PyhQhYl7TAj3jGl4A4= github.com/alibabacloud-go/nlb-20220430/v2 v2.0.3 h1:LtyUVlgBEKyzWgQJurzXM6MXCt84sQr9cE5OKqYymko= @@ -210,54 +210,54 @@ github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= -github.com/aws/aws-sdk-go-v2 v1.36.0 h1:b1wM5CcE65Ujwn565qcwgtOTT1aT4ADOHHgglKjG7fk= -github.com/aws/aws-sdk-go-v2 v1.36.0/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= +github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E= +github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg= github.com/aws/aws-sdk-go-v2/config v1.29.5 h1:4lS2IB+wwkj5J43Tq/AwvnscBerBJtQQ6YS7puzCI1k= github.com/aws/aws-sdk-go-v2/config v1.29.5/go.mod h1:SNzldMlDVbN6nWxM7XsUiNXPSa1LWlqiXtvh/1PrJGg= github.com/aws/aws-sdk-go-v2/credentials v1.17.58 h1:/d7FUpAPU8Lf2KUdjniQvfNdlMID0Sd9pS23FJ3SS9Y= github.com/aws/aws-sdk-go-v2/credentials v1.17.58/go.mod h1:aVYW33Ow10CyMQGFgC0ptMRIqJWvJ4nxZb0sUiuQT/A= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 h1:7lOW8NUwE9UZekS1DYoiPdVAqZ6A+LheHWb+mHbNOq8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27/go.mod h1:w1BASFIPOPUae7AgaH4SbjNbfdkxuggLyGfNFTn8ITY= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 h1:KwsodFKVQTlI5EyhRSugALzsV6mG/SGrdjlMXSZSdso= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28/go.mod h1:EY3APf9MzygVhKuPXAc5H+MkGb8k/DOSQjWS0LgkKqI= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.58 h1:/BsEGAyMai+KdXS+CMHlLhB5miAO19wOqE6tj8azWPM= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.58/go.mod h1:KHM3lfl/sAJBCoLI1Lsg5w4SD2VDYWwQi7vxbKhw7TI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31 h1:lWm9ucLSRFiI4dQQafLrEOmEDGry3Swrz0BIRdiHJqQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31/go.mod h1:Huu6GG0YTfbPphQkDSo4dEGmQRTKb9k9G7RdtyQWxuI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 h1:ACxDklUKKXb48+eg5ROZXi1vDgfMyfIA/WyvqHcHI0o= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31/go.mod h1:yadnfsDwqXeVaohbGc/RaD287PuyRw2wugkh5ZL2J6k= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.31 h1:8IwBjuLdqIO1dGB+dZ9zJEl8wzY3bVYxcs0Xyu/Lsc0= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.31/go.mod h1:8tMBcuVjL4kP/ECEIWTCWtwV2kj6+ouEKl4cqR4iWLw= -github.com/aws/aws-sdk-go-v2/service/acm v1.30.13 h1:aPCPsgDxQqOS3zPJKYJQVh02q8stjSQ1haHaUucCAUM= -github.com/aws/aws-sdk-go-v2/service/acm v1.30.13/go.mod h1:3pfuOCVLzWu3aiavTB9bOIdZpVadNYt6fyZdp+fDOSU= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.5 h1:oBLlEuSL5G9W8M4GtEVdNi+xsQP+9lphVkbYf38Isgs= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.5/go.mod h1:H/t3dGwvHy2WJ+ZwyDBWva7ttsoxSxt5qC1OMcc0iJ0= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 h1:OIHj/nAhVzIXGzbAE+4XmZ8FPvro3THr6NlqErJc3wY= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32/go.mod h1:LiBEsDo34OJXqdDlRGsilhlIiXR7DL+6Cx2f4p1EgzI= +github.com/aws/aws-sdk-go-v2/service/acm v1.30.18 h1:/MZpjVk95P+lF9dUcOmyQwp1r0Ld4A8AxfQLdf1w8bU= +github.com/aws/aws-sdk-go-v2/service/acm v1.30.18/go.mod h1:JaIJpS5R/ADAyK2gGYcQSmpMyty24/nLxvwsPe629BI= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.10 h1:fdLh7eMf5mxtggx2nG0+cFkaiRK+ULCOPK3qq8eTje4= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.10/go.mod h1:uBca+/1aH5v/RYWXqyymLrsbmx1vU9bBxeurlC627Gc= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.5 h1:siiQ+jummya9OLPDEyHVb2dLW4aOMe22FGDd0sAfuSw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.5/go.mod h1:iHVx2J9pWzITdP5MJY6qWfG34TfD9EA+Qi3eV6qQCXw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12 h1:O+8vD2rGjfihBewr5bT+QUfYUHIxCVgG61LHoT59shM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12/go.mod h1:usVdWJaosa66NMvmCrr08NcWDBRv4E6+YFG2pUdw1Lk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.12 h1:tkVNm99nkJnFo1H9IIQb5QkCiPcvCDn3Pos+IeTbGRA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.12/go.mod h1:dIVlquSPUMqEJtx2/W17SM2SuESRaVEhEV9alcMqxjw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.0 h1:kT2WeWcFySdYpPgyqJMSUE7781Qucjtn6wBvrgm9P+M= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.0/go.mod h1:WYH1ABybY7JK9TITPnk6ZlP7gQB8psI4c9qDmMsnLSA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 h1:OBsrtam3rk8NfBEq7OLOMm5HtQ9Yyw32X4UQMya/wjw= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13/go.mod h1:3U4gFA5pmoCOja7aq4nSaIAGbaOHv2Yl2ug018cmC+Q= github.com/aws/aws-sdk-go-v2/service/route53 v1.48.1 h1:njgAP7Rtt4DGdTGFPhJ4gaZXCD1CDj/SZDa5W4ZgSTs= github.com/aws/aws-sdk-go-v2/service/route53 v1.48.1/go.mod h1:TN4PcCL0lvqmYcv+AV8iZFC4Sd0FM06QDaoBXrFEftU= github.com/aws/aws-sdk-go-v2/service/s3 v1.75.3 h1:JBod0SnNqcWQ0+uAyzeRFG1zCHotW8DukumYYyNy0zo= github.com/aws/aws-sdk-go-v2/service/s3 v1.75.3/go.mod h1:FHSHmyEUkzRbaFFqqm6bkLAOQHgqhsLmfCahvCBMiyA= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 h1:c5WJ3iHz7rLIgArznb3JCSQT3uUMiz9DLZhIX+1G8ok= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.14/go.mod h1:+JJQTxB6N4niArC14YNtxcQtwEqzS3o9Z32n7q33Rfs= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 h1:f1L/JtUkVODD+k1+IiSJUUv8A++2qVr+Xvb3xWXETMU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13/go.mod h1:tvqlFoja8/s0o+UruA1Nrezo/df0PzdunMDDurUfg6U= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.13 h1:3LXNnmtH3TURctC23hnC0p/39Q5gre3FI7BNOiDcVWc= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.13/go.mod h1:7Yn+p66q/jt38qMoVfNvjbm3D89mGBnkwDcijgtih8w= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 h1:/eE3DogBjYlvlbhd2ssWyeuovWunHLxfgw3s/OJa4GQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.15/go.mod h1:2PCJYpi7EKeA5SkStAmZlF6fi0uUABuhtF8ILHjGc3Y= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 h1:M/zwXiL2iXUrHputuXgmO94TVNmcenPHxgLXLutodKE= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14/go.mod h1:RVwIw3y/IqxC2YEXSIkAzRDdEU1iRabDPaYjpGCbCGQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 h1:TzeR06UCMUq+KA3bDkujxK1GVGy+G8qQN/QVYzGLkQE= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.14/go.mod h1:dspXf/oYWGWo6DEvj98wpaTeqt5+DMidZD0A9BYTizc= github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= -github.com/baidubce/bce-sdk-go v0.9.214 h1:bsVfwMh/emI6vreEveUEq9xAr6xtHLycTAGy2K7kvKM= -github.com/baidubce/bce-sdk-go v0.9.214/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg= +github.com/baidubce/bce-sdk-go v0.9.216 h1:jRq4C1UGYcvHo6Gst2kuUzhWwJM6EqXCmhIsTKQvf4k= +github.com/baidubce/bce-sdk-go v0.9.216/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -265,8 +265,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/blinkbean/dingtalk v1.1.3 h1:MbidFZYom7DTFHD/YIs+eaI7kRy52kmWE/sy0xjo6E4= github.com/blinkbean/dingtalk v1.1.3/go.mod h1:9BaLuGSBqY3vT5hstValh48DbsKO7vaHaJnG9pXwbto= -github.com/byteplus-sdk/byteplus-sdk-golang v1.0.40 h1:DIVVXfeIg4FXdN1pIoL3Q8YoC/VXu5nn2zcDKFHqe6s= -github.com/byteplus-sdk/byteplus-sdk-golang v1.0.40/go.mod h1:7iCaE+dR9EycrJU0GQyMhptbInLbQhsKXiDKDjNi8Vs= +github.com/byteplus-sdk/byteplus-sdk-golang v1.0.41 h1:zLw2bwsW0gjNN1c9Zim1iv0g8ms+pV8pQ9yhLquOj1Q= +github.com/byteplus-sdk/byteplus-sdk-golang v1.0.41/go.mod h1:7iCaE+dR9EycrJU0GQyMhptbInLbQhsKXiDKDjNi8Vs= github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= @@ -403,8 +403,8 @@ github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91 github.com/go-playground/validator/v10 v10.7.0/go.mod h1:xm76BBt941f7yWdGnI2DVPFFg1UK3YY04qifoXU3lOk= github.com/go-playground/validator/v10 v10.16.0 h1:x+plE831WK4vaKHO/jpgUGsvLKIqRRkz6M78GuJAfGE= github.com/go-playground/validator/v10 v10.16.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= -github.com/go-resty/resty/v2 v2.16.4 h1:81IjtszQKwbz7dot4LLYGwhJNUsNwECD2O7nru5q60E= -github.com/go-resty/resty/v2 v2.16.4/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= +github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= +github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= @@ -555,8 +555,8 @@ github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.132 h1:5LqzrJa8LADcY0sDEdV35e8nbwI7RoUQEt+KXWvWoY0= -github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.132/go.mod h1:JWz2ujO9X3oU5wb6kXp+DpR2UuDj2SldDbX8T0FSuhI= +github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.135 h1:UbNMlPfh0GhRY3iVkvv4fXFJ+bLqXoVCwjqe6geFdPs= +github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.135/go.mod h1:Y/+YLCFCJtS29i2MbYPTUlNNfwXvkzEsZKR0imY/2aY= github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -725,8 +725,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pocketbase/dbx v1.11.0 h1:LpZezioMfT3K4tLrqA55wWFw1EtH1pM4tzSVa7kgszU= github.com/pocketbase/dbx v1.11.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs= -github.com/pocketbase/pocketbase v0.25.0 h1:/4YQq1hd0muvhzbERyUTVNh88N0BCj5diqK0jtLN6k8= -github.com/pocketbase/pocketbase v0.25.0/go.mod h1:tOtOv7f3vJhAiyUluIwV9JPuKeknZRQ9F6uJE3W/ntI= +github.com/pocketbase/pocketbase v0.25.4 h1:3bsq+9RvLUmQs6bRlhuO0UiUnf9tt6aODPTHQlj8pYk= +github.com/pocketbase/pocketbase v0.25.4/go.mod h1:CfcfWJ2u4eWaQbrpZ1rEkqIk9rB521yb9JVLNpEl/8E= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/povsister/scp v0.0.0-20240802064259-28781e87b246 h1:c4D8BPWLOxxdaxQLfLKQXH2YXY/E9yo3jrDSL54XrTw= @@ -811,28 +811,29 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 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.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= 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.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1084 h1:5Iz0/XXuUU1MdKrmvccQLAk+llp7bEk36h984qE8T9Y= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1084/go.mod h1:3nbV34YVSizZRIqFx1dgNp4ef8omgIebKaLR9F5bICM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1084 h1:/71/twaTjtN5Hj9iMQaq4Zf20whqKcRO8FExzQMQzdM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1084/go.mod h1:i/+RxtoN5tjr68alWwo99kNNE7mNPYg2liUFvAwNtJk= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1084 h1:kVMffrA57uPQvNaPBXSp1NJPiz+Y0a/bxqiEVBjrZAI= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1096 h1:/nbiqUXO5/7WYATAGt65ULSEB48q+gCws6rI8kkt8Ck= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1096/go.mod h1:EtQl1Sj7WaofRoyetOsDqCO+MvnFMba3ZUrD9KZo5sQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1096 h1:Z9I0iPNWfwbwRcPrWaY5w5WL2d6NrlyBI1dSGq7jobk= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1096/go.mod h1:lQBepDW2LTraTn+zOwgtoU1zVmKvgsUWqMjtmTRjn30= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1084/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1096 h1:DMokC7T0UF8wMfT1kD+mX3M+hc2C06gmFvQ9gsfRPmI= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1096/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1084 h1:kwctN0WQYt8/iKP+iRCTCwdzEMIXsXklbRIib5rjeQ8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1084/go.mod h1:qE67ApiBzeRvzeDsV+GxyIDbVIDemsKpHXllQATz/Vw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1084 h1:5qycOmUrfeOXluBDdULUZdbadZsvNqdpXgkt3SfZGSI= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1084/go.mod h1:tEa+1jYkcgrFo4Y13orgk3D3BySAwnrZ1T+lnAU+3Q8= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1084 h1:NBRaaKBeZKhGhpZkXKnAT8HWMQuV15QPNApBjB+4C8k= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1084/go.mod h1:+VVUGbyLN66PdAu7+qM0gTNKQ8JH02eJSaImGGg+UzU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1084 h1:Tcl6f/fBt+y7KmhlRcCMenm4wRNf8z1fm0jrhDmIkaQ= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1084/go.mod h1:hBCyZEVg22KuOIaiUc7M2mjXWpCwa8Q3T1X6h+3EPCA= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1096 h1:h9FP40Ycg45egJlZcjbLyc4IUeFoq+wSpR43sHMALtM= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1096/go.mod h1:+Np3rsf08RDXsl8+7/MC4QcUeOuZj0KwNhA8tkL7BXg= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1096 h1:7ZmPusU52i5bT9bf5xBeqJclyBx75zFGEIOmiXme9YU= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1096/go.mod h1:aMpGcDskqqhXtfMaeo2egO61tgh/zt07L1ohSPwmjWk= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1096 h1:N62IFKL1ZRNQ7WPLNn8x9eYnwM4lOUIVY3buW6kbGtg= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1096/go.mod h1:4PZRRpZp+jvYBUbUajsoZREnk7sJXMnPAiGB4IX8IkM= github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= @@ -844,13 +845,13 @@ github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6 github.com/ucloud/ucloud-sdk-go v0.22.31 h1:izZK+Re9ZkJAd1fHSVpFzgh8uKda4f5G6++iUw4n/mE= github.com/ucloud/ucloud-sdk-go v0.22.31/go.mod h1:dyLmFHmUfgb4RZKYQP9IArlvQ2pxzFthfhwxRzOEPIw= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.8 h1:/vB6jop4i70Ys8KAzK0xZfbMzMggJsTnIp6gZYnnSFM= -github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.8/go.mod h1:IrjK84IJJTuOZOTMv/P18Ydjy/x+ow7fF7q11jAxXLM= +github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.9 h1:fEnScn2dXfvfNcFnvJnpf/cYdj8kLIe5QC5qORlFO2c= +github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.9/go.mod h1:IrjK84IJJTuOZOTMv/P18Ydjy/x+ow7fF7q11jAxXLM= github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU= -github.com/volcengine/volc-sdk-golang v1.0.193 h1:mL1rlk+m9SaqF2MSGFWfigEaz10ZVJiYDnFuWfj65Ww= -github.com/volcengine/volc-sdk-golang v1.0.193/go.mod h1:u0VtPvlXWpXDTmc9IHkaW1q+5Jjwus4oAqRhNMDRInE= -github.com/volcengine/volcengine-go-sdk v1.0.178 h1:lCu2JuWOoIZAjNfJSBi/KLTWVFdvejLXsBrNE1wgCIU= -github.com/volcengine/volcengine-go-sdk v1.0.178/go.mod h1:gfEDc1s7SYaGoY+WH2dRrS3qiuDJMkwqyfXWCa7+7oA= +github.com/volcengine/volc-sdk-golang v1.0.194 h1:3o0INQzdtYJWvdGrtX02booCqPL5TsWSq2W1Ur7Bzlo= +github.com/volcengine/volc-sdk-golang v1.0.194/go.mod h1:u0VtPvlXWpXDTmc9IHkaW1q+5Jjwus4oAqRhNMDRInE= +github.com/volcengine/volcengine-go-sdk v1.0.180 h1:lzcNlaxeGIUdXgDuVH7KJwZYZjIZzaCAYPDh91htU6U= +github.com/volcengine/volcengine-go-sdk v1.0.180/go.mod h1:gfEDc1s7SYaGoY+WH2dRrS3qiuDJMkwqyfXWCa7+7oA= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= @@ -870,7 +871,7 @@ go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQc go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.mongodb.org/mongo-driver v1.12.0/go.mod h1:AZkxhPnFJUoH7kZlFkVKucV20K387miPfm7oimrSmK0= +go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= go.mongodb.org/mongo-driver v1.17.2 h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793SqyhzM= go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -881,22 +882,24 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/detectors/gcp v1.32.0 h1:P78qWqkLSShicHmAzfECaTgvslqHxblNE9j62Ws1NK8= go.opentelemetry.io/contrib/detectors/gcp v1.32.0/go.mod h1:TVqo0Sda4Cv8gCIixd7LuLwW4EylumVWfhjZJjDD4DU= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 h1:DheMAlT6POBP+gh8RUH19EOTnQIor5QE0uSRPtzCpSw= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0/go.mod h1:wZcGmeVO9nzP67aYSLDqXNWK87EZWhi7JWj1v7ZXf94= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= @@ -935,9 +938,8 @@ golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -951,8 +953,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc= -golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -981,8 +983,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1035,8 +1037,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1133,7 +1135,6 @@ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1147,9 +1148,8 @@ golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= -golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1165,7 +1165,6 @@ golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1227,8 +1226,8 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= -golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1255,8 +1254,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.219.0 h1:nnKIvxKs/06jWawp2liznTBnMRQBEPpGo7I+oEypTX0= -google.golang.org/api v0.219.0/go.mod h1:K6OmjGm+NtLrIkHxv1U3a0qIf/0JOvAHd5O/6AoyKYE= +google.golang.org/api v0.220.0 h1:3oMI4gdBgB72WFVwE1nerDD8W3HUOS4kypK6rRLbGns= +google.golang.org/api v0.220.0/go.mod h1:26ZAlY6aN/8WgpCzjPNy18QpYaz7Zgg1h0qe1GkZEmY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1299,8 +1298,8 @@ google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489 h1:5bKytslY8ViY0Cj/ewmRtrWHW64bNF03cAatUUFCdFI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489/go.mod h1:8BS3B93F/U1juMFq9+EDk+qOT5CO1R9IzXxG3PTqiRk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250207221924-e9438ea467c6 h1:2duwAxN2+k0xLNpjnHTXoMUgnv6VPSp5fiqTuwSxjmI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250207221924-e9438ea467c6/go.mod h1:8BS3B93F/U1juMFq9+EDk+qOT5CO1R9IzXxG3PTqiRk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1335,8 +1334,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= -google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/certificate/service.go b/internal/certificate/service.go index a207d1c3..adcb8b97 100644 --- a/internal/certificate/service.go +++ b/internal/certificate/service.go @@ -41,13 +41,13 @@ func NewCertificateService(certRepo certificateRepository) *CertificateService { func (s *CertificateService) InitSchedule(ctx context.Context) error { app.GetScheduler().MustAdd("certificateExpireSoonNotify", "0 0 * * *", func() { - certs, err := s.certRepo.ListExpireSoon(context.Background()) + certificates, err := s.certRepo.ListExpireSoon(context.Background()) if err != nil { app.GetLogger().Error("failed to get certificates which expire soon", "err", err) return } - notification := buildExpireSoonNotification(certs) + notification := buildExpireSoonNotification(certificates) if notification == nil { return } diff --git a/internal/deployer/providers.go b/internal/deployer/providers.go index 97cb0861..a9878f8a 100644 --- a/internal/deployer/providers.go +++ b/internal/deployer/providers.go @@ -214,8 +214,8 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger, case domain.DeployProviderTypeBaotaPanelSite: { access := domain.AccessConfigForBaotaPanel{} - if err := maps.Decode(options.ProviderAccessConfig, &access); err != nil { - return nil, nil, fmt.Errorf("failed to decode provider access config: %w", err) + if err := maps.Populate(options.ProviderAccessConfig, &access); err != nil { + return nil, nil, fmt.Errorf("failed to populate provider access config: %w", err) } deployer, err := providerBaotaPanelSite.NewWithLogger(&providerBaotaPanelSite.BaotaPanelSiteDeployerConfig{ diff --git a/internal/domain/access.go b/internal/domain/access.go index e6d94764..e9df61d2 100644 --- a/internal/domain/access.go +++ b/internal/domain/access.go @@ -12,7 +12,6 @@ type Access struct { Name string `json:"name" db:"name"` Provider string `json:"provider" db:"provider"` Config string `json:"config" db:"config"` - Usage string `json:"usage" db:"usage"` DeletedAt *time.Time `json:"deleted" db:"deleted"` } diff --git a/internal/domain/provider.go b/internal/domain/provider.go index 49bf2cee..350b3926 100644 --- a/internal/domain/provider.go +++ b/internal/domain/provider.go @@ -9,19 +9,30 @@ type AccessProviderType string NOTICE: If you add new constant, please keep ASCII order. */ const ( + AccessProviderType1Panel = AccessProviderType("1panel") // 1Panel(预留) AccessProviderTypeACMEHttpReq = AccessProviderType("acmehttpreq") + AccessProviderTypeAkamai = AccessProviderType("akamai") // Akamai(预留) AccessProviderTypeAliyun = AccessProviderType("aliyun") AccessProviderTypeAWS = AccessProviderType("aws") AccessProviderTypeAzure = AccessProviderType("azure") AccessProviderTypeBaiduCloud = AccessProviderType("baiducloud") + AccessProviderTypeBaishan = AccessProviderType("baishan") // 白山云(预留) AccessProviderTypeBaotaPanel = AccessProviderType("baotapanel") AccessProviderTypeBytePlus = AccessProviderType("byteplus") + AccessProviderTypeCacheFly = AccessProviderType("cachefly") // CacheFly(预留) + AccessProviderTypeCdnfly = AccessProviderType("cdnfly") // Cdnly(预留) AccessProviderTypeCloudflare = AccessProviderType("cloudflare") AccessProviderTypeClouDNS = AccessProviderType("cloudns") + AccessProviderTypeCMCCCloud = AccessProviderType("cmcccloud") // 移动云(预留) + AccessProviderTypeCTCCCloud = AccessProviderType("ctcccloud") // 联通云(预留) + AccessProviderTypeCUCCCloud = AccessProviderType("cucccloud") // 天翼云(预留) AccessProviderTypeDogeCloud = AccessProviderType("dogecloud") AccessProviderTypeEdgio = AccessProviderType("edgio") + AccessProviderTypeFastly = AccessProviderType("fastly") // Fastly(预留) AccessProviderTypeGname = AccessProviderType("gname") + AccessProviderTypeGcore = AccessProviderType("gcore") // Gcore(预留) AccessProviderTypeGoDaddy = AccessProviderType("godaddy") + AccessProviderTypeGoEdge = AccessProviderType("goedge") // GoEdge(预留) AccessProviderTypeHuaweiCloud = AccessProviderType("huaweicloud") AccessProviderTypeKubernetes = AccessProviderType("k8s") AccessProviderTypeLocal = AccessProviderType("local") @@ -31,6 +42,7 @@ const ( AccessProviderTypePowerDNS = AccessProviderType("powerdns") AccessProviderTypeQiniu = AccessProviderType("qiniu") AccessProviderTypeRainYun = AccessProviderType("rainyun") + AccessProviderTypeSafeLine = AccessProviderType("safeline") // 雷池(预留) AccessProviderTypeSSH = AccessProviderType("ssh") AccessProviderTypeTencentCloud = AccessProviderType("tencentcloud") AccessProviderTypeUCloud = AccessProviderType("ucloud") diff --git a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel-site.go b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go similarity index 100% rename from internal/pkg/core/deployer/providers/baotapanel-site/baotapanel-site.go rename to internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go diff --git a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel-site_test.go b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go similarity index 100% rename from internal/pkg/core/deployer/providers/baotapanel-site/baotapanel-site_test.go rename to internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go diff --git a/internal/pkg/vendors/btpanel-sdk/client.go b/internal/pkg/vendors/btpanel-sdk/client.go index 43e3d415..9557612a 100644 --- a/internal/pkg/vendors/btpanel-sdk/client.go +++ b/internal/pkg/vendors/btpanel-sdk/client.go @@ -91,7 +91,7 @@ func (c *BaoTaPanelClient) sendRequestWithResult(path string, params map[string] if err := json.Unmarshal(resp.Body(), &jsonResp); err != nil { return fmt.Errorf("baota: failed to parse response: %w", err) } - if err := maps.Decode(jsonResp, &result); err != nil { + if err := maps.Populate(jsonResp, &result); err != nil { return fmt.Errorf("baota: failed to parse response: %w", err) } @@ -99,7 +99,7 @@ func (c *BaoTaPanelClient) sendRequestWithResult(path string, params map[string] if result.GetMsg() == nil { return fmt.Errorf("baota api error: unknown error") } else { - return fmt.Errorf("baota api error: %s", result.GetMsg()) + return fmt.Errorf("baota api error: %s", *result.GetMsg()) } } diff --git a/internal/pkg/vendors/gname-sdk/client.go b/internal/pkg/vendors/gname-sdk/client.go index 6bf4e2db..64baab95 100644 --- a/internal/pkg/vendors/gname-sdk/client.go +++ b/internal/pkg/vendors/gname-sdk/client.go @@ -150,7 +150,7 @@ func (c *GnameClient) sendRequestWithResult(path string, params map[string]any, if err := json.Unmarshal(resp.Body(), &jsonResp); err != nil { return fmt.Errorf("gname: failed to parse response: %w", err) } - if err := maps.Decode(jsonResp, &result); err != nil { + if err := maps.Populate(jsonResp, &result); err != nil { return fmt.Errorf("gname: failed to parse response: %w", err) } diff --git a/internal/repository/access.go b/internal/repository/access.go index a8370fd8..0bfeaea9 100644 --- a/internal/repository/access.go +++ b/internal/repository/access.go @@ -48,7 +48,6 @@ func (r *AccessRepository) castRecordToModel(record *core.Record) (*domain.Acces Name: record.GetString("name"), Provider: record.GetString("provider"), Config: record.GetString("config"), - Usage: record.GetString("usage"), } return access, nil } diff --git a/internal/workflow/node-processor/apply_node.go b/internal/workflow/node-processor/apply_node.go index 3c974b8c..26ff6b9e 100644 --- a/internal/workflow/node-processor/apply_node.go +++ b/internal/workflow/node-processor/apply_node.go @@ -123,7 +123,7 @@ func (n *applyNode) checkCanSkip(ctx context.Context, lastOutput *domain.Workflo renewalInterval := time.Duration(currentNodeConfig.SkipBeforeExpiryDays) * time.Hour * 24 expirationTime := time.Until(lastCertificate.ExpireAt) if expirationTime > renewalInterval { - return true, fmt.Sprintf("已申请过证书,且证书尚未临近过期(尚余 %d 天过期,不足 %d 天时续期)", int(expirationTime.Hours()/24), currentNodeConfig.SkipBeforeExpiryDays) + return true, fmt.Sprintf("已申请过证书,且证书尚未临近过期(尚余 %d 天过期,不足 %d 天时续期),跳过此次申请", int(expirationTime.Hours()/24), currentNodeConfig.SkipBeforeExpiryDays) } } } diff --git a/internal/workflow/node-processor/deploy_node.go b/internal/workflow/node-processor/deploy_node.go index c7ab964f..492f5385 100644 --- a/internal/workflow/node-processor/deploy_node.go +++ b/internal/workflow/node-processor/deploy_node.go @@ -107,7 +107,7 @@ func (n *deployNode) checkCanSkip(ctx context.Context, lastOutput *domain.Workfl } if currentNodeConfig.SkipOnLastSucceeded { - return true, "已部署过证书" + return true, "已部署过证书,跳过此次部署" } } diff --git a/main.go b/main.go index 2c3d84c2..73d1a2a9 100644 --- a/main.go +++ b/main.go @@ -2,7 +2,7 @@ package main import ( "flag" - "log" + "log/slog" "os" "strings" _ "time/tzdata" @@ -56,15 +56,13 @@ func main() { app.OnTerminate().BindFunc(func(e *core.TerminateEvent) error { routes.Unregister() - - log.Println("Exit!") - + slog.Info("[CERTIMATE] Exit!") return e.Next() }) - log.Printf("Visit the website: http://%s", flagHttp) + slog.Info("[CERTIMATE] Visit the website: http://" + flagHttp) if err := app.Start(); err != nil { - log.Fatal(err) + slog.Error("[CERTIMATE] Start failed.", "err", err) } } diff --git a/migrations/1737141502_superusers_initial.go b/migrations/1737141502_superusers_initial.go deleted file mode 100644 index 4440ed76..00000000 --- a/migrations/1737141502_superusers_initial.go +++ /dev/null @@ -1,27 +0,0 @@ -package migrations - -import ( - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - superusers, err := app.FindCollectionByNameOrId(core.CollectionNameSuperusers) - if err != nil { - return err - } - - record, _ := app.FindAuthRecordByEmail(core.CollectionNameSuperusers, "admin@certimate.fun") - if record == nil { - record := core.NewRecord(superusers) - record.Set("email", "admin@certimate.fun") - record.Set("password", "1234567890") - return app.Save(record) - } - - return nil - }, func(app core.App) error { - return nil - }) -} diff --git a/migrations/1738767422_updated_certificate.go b/migrations/1738767422_updated_certificate.go deleted file mode 100644 index e5dfe573..00000000 --- a/migrations/1738767422_updated_certificate.go +++ /dev/null @@ -1,127 +0,0 @@ -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np") - if err != nil { - return err - } - - // update collection data - if err := json.Unmarshal([]byte(`{ - "indexes": [ - "CREATE INDEX ` + "`" + `idx_Jx8TXzDCmw` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowId` + "`" + `)", - "CREATE INDEX ` + "`" + `idx_kcKpgAZapk` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowNodeId` + "`" + `)" - ] - }`), &collection); err != nil { - return err - } - - // add field - if err := collection.Fields.AddMarshaledJSONAt(3, []byte(`{ - "autogeneratePattern": "", - "hidden": false, - "id": "text2069360702", - "max": 0, - "min": 0, - "name": "serialNumber", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }`)); err != nil { - return err - } - - // add field - if err := collection.Fields.AddMarshaledJSONAt(6, []byte(`{ - "autogeneratePattern": "", - "hidden": false, - "id": "text2910474005", - "max": 0, - "min": 0, - "name": "issuer", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }`)); err != nil { - return err - } - - // add field - if err := collection.Fields.AddMarshaledJSONAt(8, []byte(`{ - "autogeneratePattern": "", - "hidden": false, - "id": "text4164403445", - "max": 0, - "min": 0, - "name": "keyAlgorithm", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }`)); err != nil { - return err - } - - // add field - if err := collection.Fields.AddMarshaledJSONAt(11, []byte(`{ - "autogeneratePattern": "", - "hidden": false, - "id": "text2045248758", - "max": 0, - "min": 0, - "name": "acmeAccountUrl", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np") - if err != nil { - return err - } - - // update collection data - if err := json.Unmarshal([]byte(`{ - "indexes": [] - }`), &collection); err != nil { - return err - } - - // remove field - collection.Fields.RemoveById("text2069360702") - - // remove field - collection.Fields.RemoveById("text2910474005") - - // remove field - collection.Fields.RemoveById("text4164403445") - - // remove field - collection.Fields.RemoveById("text2045248758") - - return app.Save(collection) - }) -} diff --git a/migrations/1738828775_updated_workflow.go b/migrations/1738828775_updated_workflow.go deleted file mode 100644 index 7e06df36..00000000 --- a/migrations/1738828775_updated_workflow.go +++ /dev/null @@ -1,65 +0,0 @@ -package migrations - -import ( - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("tovyif5ax6j62ur") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(10, []byte(`{ - "hidden": false, - "id": "zivdxh23", - "maxSelect": 1, - "name": "lastRunStatus", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "pending", - "running", - "succeeded", - "failed", - "canceled" - ] - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("tovyif5ax6j62ur") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(10, []byte(`{ - "hidden": false, - "id": "zivdxh23", - "maxSelect": 1, - "name": "lastRunStatus", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "pending", - "running", - "succeeded", - "failed" - ] - }`)); err != nil { - return err - } - - return app.Save(collection) - }) -} diff --git a/migrations/1738828788_updated_workflow_run.go b/migrations/1738828788_updated_workflow_run.go deleted file mode 100644 index b5ff20a7..00000000 --- a/migrations/1738828788_updated_workflow_run.go +++ /dev/null @@ -1,65 +0,0 @@ -package migrations - -import ( - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("qjp8lygssgwyqyz") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ - "hidden": false, - "id": "qldmh0tw", - "maxSelect": 1, - "name": "status", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "pending", - "running", - "succeeded", - "failed", - "canceled" - ] - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("qjp8lygssgwyqyz") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ - "hidden": false, - "id": "qldmh0tw", - "maxSelect": 1, - "name": "status", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "pending", - "running", - "succeeded", - "failed" - ] - }`)); err != nil { - return err - } - - return app.Save(collection) - }) -} diff --git a/migrations/1738839725_updated_certificate.go b/migrations/1738839725_updated_certificate.go deleted file mode 100644 index 447d5297..00000000 --- a/migrations/1738839725_updated_certificate.go +++ /dev/null @@ -1,67 +0,0 @@ -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np") - if err != nil { - return err - } - - // update collection data - if err := json.Unmarshal([]byte(`{ - "indexes": [ - "CREATE INDEX ` + "`" + `idx_Jx8TXzDCmw` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowId` + "`" + `)", - "CREATE INDEX ` + "`" + `idx_kcKpgAZapk` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowNodeId` + "`" + `)", - "CREATE INDEX ` + "`" + `idx_2cRXqNDyyp` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowRunId` + "`" + `)" - ] - }`), &collection); err != nil { - return err - } - - // add field - if err := collection.Fields.AddMarshaledJSONAt(15, []byte(`{ - "cascadeDelete": false, - "collectionId": "qjp8lygssgwyqyz", - "hidden": false, - "id": "relation3917999135", - "maxSelect": 1, - "minSelect": 0, - "name": "workflowRunId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np") - if err != nil { - return err - } - - // update collection data - if err := json.Unmarshal([]byte(`{ - "indexes": [ - "CREATE INDEX ` + "`" + `idx_Jx8TXzDCmw` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowId` + "`" + `)", - "CREATE INDEX ` + "`" + `idx_kcKpgAZapk` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowNodeId` + "`" + `)" - ] - }`), &collection); err != nil { - return err - } - - // remove field - collection.Fields.RemoveById("relation3917999135") - - return app.Save(collection) - }) -} diff --git a/migrations/1738840633_updated_workflow_output.go b/migrations/1738840633_updated_workflow_output.go deleted file mode 100644 index 6e836a76..00000000 --- a/migrations/1738840633_updated_workflow_output.go +++ /dev/null @@ -1,63 +0,0 @@ -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("bqnxb95f2cooowp") - if err != nil { - return err - } - - // update collection data - if err := json.Unmarshal([]byte(`{ - "indexes": [ - "CREATE INDEX ` + "`" + `idx_BYoQPsz4my` + "`" + ` ON ` + "`" + `workflow_output` + "`" + ` (` + "`" + `workflowId` + "`" + `)", - "CREATE INDEX ` + "`" + `idx_O9zxLETuxJ` + "`" + ` ON ` + "`" + `workflow_output` + "`" + ` (` + "`" + `runId` + "`" + `)" - ] - }`), &collection); err != nil { - return err - } - - // add field - if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ - "cascadeDelete": false, - "collectionId": "qjp8lygssgwyqyz", - "hidden": false, - "id": "relation821863227", - "maxSelect": 1, - "minSelect": 0, - "name": "runId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("bqnxb95f2cooowp") - if err != nil { - return err - } - - // update collection data - if err := json.Unmarshal([]byte(`{ - "indexes": [] - }`), &collection); err != nil { - return err - } - - // remove field - collection.Fields.RemoveById("relation821863227") - - return app.Save(collection) - }) -} diff --git a/migrations/1739202463_updated_access.go b/migrations/1739202463_updated_access.go deleted file mode 100644 index ccaffbce..00000000 --- a/migrations/1739202463_updated_access.go +++ /dev/null @@ -1,99 +0,0 @@ -package migrations - -import ( - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ - "hidden": false, - "id": "hwy7m03o", - "maxSelect": 1, - "name": "provider", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "acmehttpreq", - "aliyun", - "aws", - "azure", - "baiducloud", - "baotapanel", - "byteplus", - "cloudflare", - "dogecloud", - "godaddy", - "huaweicloud", - "k8s", - "local", - "namedotcom", - "namesilo", - "powerdns", - "qiniu", - "ssh", - "tencentcloud", - "ucloud", - "volcengine", - "webhook" - ] - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ - "hidden": false, - "id": "hwy7m03o", - "maxSelect": 1, - "name": "provider", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "acmehttpreq", - "aliyun", - "aws", - "azure", - "baiducloud", - "byteplus", - "cloudflare", - "dogecloud", - "godaddy", - "huaweicloud", - "k8s", - "local", - "namedotcom", - "namesilo", - "powerdns", - "qiniu", - "ssh", - "tencentcloud", - "ucloud", - "volcengine", - "webhook" - ] - }`)); err != nil { - return err - } - - return app.Save(collection) - }) -} diff --git a/migrations/1739263253_updated_workflow_run.go b/migrations/1739263253_updated_workflow_run.go deleted file mode 100644 index 5286a7b8..00000000 --- a/migrations/1739263253_updated_workflow_run.go +++ /dev/null @@ -1,58 +0,0 @@ -package migrations - -import ( - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("qjp8lygssgwyqyz") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(1, []byte(`{ - "cascadeDelete": true, - "collectionId": "tovyif5ax6j62ur", - "hidden": false, - "id": "m8xfsyyy", - "maxSelect": 1, - "minSelect": 0, - "name": "workflowId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("qjp8lygssgwyqyz") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(1, []byte(`{ - "cascadeDelete": false, - "collectionId": "tovyif5ax6j62ur", - "hidden": false, - "id": "m8xfsyyy", - "maxSelect": 1, - "minSelect": 0, - "name": "workflowId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - return app.Save(collection) - }) -} diff --git a/migrations/1739263264_updated_workflow_output.go b/migrations/1739263264_updated_workflow_output.go deleted file mode 100644 index e2add066..00000000 --- a/migrations/1739263264_updated_workflow_output.go +++ /dev/null @@ -1,92 +0,0 @@ -package migrations - -import ( - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("bqnxb95f2cooowp") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(1, []byte(`{ - "cascadeDelete": true, - "collectionId": "tovyif5ax6j62ur", - "hidden": false, - "id": "jka88auc", - "maxSelect": 1, - "minSelect": 0, - "name": "workflowId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ - "cascadeDelete": true, - "collectionId": "qjp8lygssgwyqyz", - "hidden": false, - "id": "relation821863227", - "maxSelect": 1, - "minSelect": 0, - "name": "runId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - return app.Save(collection) - }, func(app core.App) error { - collection, err := app.FindCollectionByNameOrId("bqnxb95f2cooowp") - if err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(1, []byte(`{ - "cascadeDelete": false, - "collectionId": "tovyif5ax6j62ur", - "hidden": false, - "id": "jka88auc", - "maxSelect": 1, - "minSelect": 0, - "name": "workflowId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - // update field - if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ - "cascadeDelete": false, - "collectionId": "qjp8lygssgwyqyz", - "hidden": false, - "id": "relation821863227", - "maxSelect": 1, - "minSelect": 0, - "name": "runId", - "presentable": false, - "required": false, - "system": false, - "type": "relation" - }`)); err != nil { - return err - } - - return app.Save(collection) - }) -} diff --git a/migrations/1737141501_collections_snapshot.go b/migrations/1739462400_collections_snapshot.go similarity index 80% rename from migrations/1737141501_collections_snapshot.go rename to migrations/1739462400_collections_snapshot.go index 1a933d41..523792c7 100644 --- a/migrations/1737141501_collections_snapshot.go +++ b/migrations/1739462400_collections_snapshot.go @@ -1,12 +1,116 @@ package migrations import ( + x509 "crypto/x509" + "log/slog" + "strings" + "github.com/pocketbase/pocketbase/core" m "github.com/pocketbase/pocketbase/migrations" + + "github.com/usual2970/certimate/internal/pkg/utils/certs" ) func init() { m.Register(func(app core.App) error { + slog.Info("[CERTIMATE] migration: ready ...") + + // backup collection records + collectionRecords := make([]*core.Record, 0) + collections, err := app.FindAllCollections(core.CollectionTypeBase) + if err != nil { + return err + } else { + for _, collection := range collections { + switch collection.Name { + case "acme_accounts", "access", "certificate", "workflow", "settings": + { + records, err := app.FindAllRecords(collection) + if err != nil { + return err + } + collectionRecords = append(collectionRecords, records...) + + slog.Info("[CERTIMATE] migration: collection '" + collection.Name + "' backed up") + + if collection.Name == "access" { + collection.Fields.RemoveByName("usage") + + for i, field := range collection.Fields { + if field.GetName() == "provider" { + collection.Fields.AddMarshaledJSONAt(i+1, []byte(`{ + "hidden": false, + "id": "hwy7m03o", + "maxSelect": 1, + "name": "provider", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "1panel", + "acmehttpreq", + "akamai", + "aliyun", + "aws", + "azure", + "baiducloud", + "baishan", + "baotapanel", + "byteplus", + "cachefly", + "cdnfly", + "cloudflare", + "cloudns", + "cmcccloud", + "ctcccloud", + "cucccloud", + "dogecloud", + "edgio", + "fastly", + "gname", + "gcore", + "godaddy", + "goedge", + "huaweicloud", + "k8s", + "local", + "namedotcom", + "namesilo", + "ns1", + "powerdns", + "qiniu", + "rainyun", + "safeline", + "ssh", + "tencentcloud", + "ucloud", + "volcengine", + "webhook", + "westcn" + ] + }`)) + } + } + + err := app.Save(collection) + if err != nil { + return err + } + } + } + + case "domains", "deployments", "access_groups": + { + app.Delete(collection) + + slog.Info("[CERTIMATE] migration: collection '" + collection.Name + "' truncated") + } + } + } + } + + // migrate jsonData := `[ { "createRule": null, @@ -50,27 +154,46 @@ func init() { "system": false, "type": "select", "values": [ + "1panel", "acmehttpreq", + "akamai", "aliyun", "aws", "azure", "baiducloud", + "baishan", + "baotapanel", "byteplus", + "cachefly", + "cdnfly", "cloudflare", + "cloudns", + "cmcccloud", + "ctcccloud", + "cucccloud", "dogecloud", + "edgio", + "fastly", + "gname", + "gcore", "godaddy", + "goedge", "huaweicloud", "k8s", "local", "namedotcom", "namesilo", + "ns1", "powerdns", "qiniu", + "rainyun", + "safeline", "ssh", "tencentcloud", "ucloud", "volcengine", - "webhook" + "webhook", + "westcn" ] }, { @@ -83,21 +206,6 @@ func init() { "system": false, "type": "json" }, - { - "hidden": false, - "id": "hsxcnlvd", - "maxSelect": 1, - "name": "usage", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "apply", - "deploy", - "all" - ] - }, { "hidden": false, "id": "lr33hiwg", @@ -132,7 +240,8 @@ func init() { ], "id": "4yzbv8urny5ja1e", "indexes": [ - "CREATE INDEX ` + "`" + `idx_wkoST0j` + "`" + ` ON ` + "`" + `access` + "`" + ` (` + "`" + `name` + "`" + `)" + "CREATE INDEX ` + "`" + `idx_wkoST0j` + "`" + ` ON ` + "`" + `access` + "`" + ` (` + "`" + `name` + "`" + `)", + "CREATE INDEX ` + "`" + `idx_frh0JT1Aqx` + "`" + ` ON ` + "`" + `access` + "`" + ` (` + "`" + `provider` + "`" + `)" ], "listRule": null, "name": "access", @@ -450,7 +559,8 @@ func init() { "pending", "running", "succeeded", - "failed" + "failed", + "canceled" ] }, { @@ -513,7 +623,7 @@ func init() { "type": "text" }, { - "cascadeDelete": false, + "cascadeDelete": true, "collectionId": "tovyif5ax6j62ur", "hidden": false, "id": "jka88auc", @@ -525,6 +635,19 @@ func init() { "system": false, "type": "relation" }, + { + "cascadeDelete": true, + "collectionId": "qjp8lygssgwyqyz", + "hidden": false, + "id": "relation821863227", + "maxSelect": 1, + "minSelect": 0, + "name": "runId", + "presentable": false, + "required": false, + "system": false, + "type": "relation" + }, { "autogeneratePattern": "", "hidden": false, @@ -590,7 +713,10 @@ func init() { } ], "id": "bqnxb95f2cooowp", - "indexes": [], + "indexes": [ + "CREATE INDEX ` + "`" + `idx_BYoQPsz4my` + "`" + ` ON ` + "`" + `workflow_output` + "`" + ` (` + "`" + `workflowId` + "`" + `)", + "CREATE INDEX ` + "`" + `idx_O9zxLETuxJ` + "`" + ` ON ` + "`" + `workflow_output` + "`" + ` (` + "`" + `runId` + "`" + `)" + ], "listRule": null, "name": "workflow_output", "system": false, @@ -644,6 +770,20 @@ func init() { "system": false, "type": "text" }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2069360702", + "max": 0, + "min": 0, + "name": "serialNumber", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, { "autogeneratePattern": "", "hidden": false, @@ -672,6 +812,20 @@ func init() { "system": false, "type": "text" }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2910474005", + "max": 0, + "min": 0, + "name": "issuer", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, { "autogeneratePattern": "", "hidden": false, @@ -686,6 +840,20 @@ func init() { "system": false, "type": "text" }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4164403445", + "max": 0, + "min": 0, + "name": "keyAlgorithm", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, { "hidden": false, "id": "v40aqzpd", @@ -708,6 +876,20 @@ func init() { "system": false, "type": "date" }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2045248758", + "max": 0, + "min": 0, + "name": "acmeAccountUrl", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, { "exceptDomains": null, "hidden": false, @@ -743,6 +925,19 @@ func init() { "system": false, "type": "relation" }, + { + "cascadeDelete": false, + "collectionId": "qjp8lygssgwyqyz", + "hidden": false, + "id": "relation3917999135", + "maxSelect": 1, + "minSelect": 0, + "name": "workflowRunId", + "presentable": false, + "required": false, + "system": false, + "type": "relation" + }, { "autogeneratePattern": "", "hidden": false, @@ -803,7 +998,11 @@ func init() { } ], "id": "4szxr9x43tpj6np", - "indexes": [], + "indexes": [ + "CREATE INDEX ` + "`" + `idx_Jx8TXzDCmw` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowId` + "`" + `)", + "CREATE INDEX ` + "`" + `idx_kcKpgAZapk` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowNodeId` + "`" + `)", + "CREATE INDEX ` + "`" + `idx_2cRXqNDyyp` + "`" + ` ON ` + "`" + `certificate` + "`" + ` (` + "`" + `workflowRunId` + "`" + `)" + ], "listRule": null, "name": "certificate", "system": false, @@ -830,7 +1029,7 @@ func init() { "type": "text" }, { - "cascadeDelete": false, + "cascadeDelete": true, "collectionId": "tovyif5ax6j62ur", "hidden": false, "id": "m8xfsyyy", @@ -855,7 +1054,8 @@ func init() { "pending", "running", "succeeded", - "failed" + "failed", + "canceled" ] }, { @@ -1517,8 +1717,84 @@ func init() { "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId" } ]` + err = app.ImportCollectionsByMarshaledJSON([]byte(jsonData), false) + if err != nil { + return err + } - return app.ImportCollectionsByMarshaledJSON([]byte(jsonData), false) + slog.Info("[CERTIMATE] migration: collections imported") + + // restore records + for _, record := range collectionRecords { + changed := false + + switch record.Collection().Name { + case "access": + { + if record.GetString("provider") == "tencent" { + record.Set("provider", "tencentcloud") + changed = true + } else if record.GetString("provider") == "pdns" { + record.Set("provider", "powerdns") + changed = true + } else if record.GetString("provider") == "httpreq" { + record.Set("provider", "acmehttpreq") + changed = true + } + } + + case "certificate": + { + if record.GetString("issuer") == "" { + cert, _ := certs.ParseCertificateFromPEM(record.GetString("certificate")) + if cert != nil { + record.Set("issuer", strings.Join(cert.Issuer.Organization, ";")) + changed = true + } + } + if record.GetString("serialNumber") == "" { + cert, _ := certs.ParseCertificateFromPEM(record.GetString("certificate")) + if cert != nil { + record.Set("serialNumber", strings.ToUpper(cert.SerialNumber.Text(16))) + changed = true + } + } + if record.GetString("keyAlgorithm") == "" { + cert, _ := certs.ParseCertificateFromPEM(record.GetString("certificate")) + if cert != nil { + switch cert.SignatureAlgorithm { + case x509.SHA256WithRSA, x509.SHA256WithRSAPSS: + record.Set("keyAlgorithm", "RSA2048") + case x509.SHA384WithRSA, x509.SHA384WithRSAPSS: + record.Set("keyAlgorithm", "RSA3072") + case x509.SHA512WithRSA, x509.SHA512WithRSAPSS: + record.Set("keyAlgorithm", "RSA4096") + case x509.ECDSAWithSHA256: + record.Set("keyAlgorithm", "EC256") + case x509.ECDSAWithSHA384: + record.Set("keyAlgorithm", "EC384") + case x509.ECDSAWithSHA512: + record.Set("keyAlgorithm", "EC512") + } + changed = true + } + } + } + } + + if changed { + err = app.Save(record) + if err != nil { + return err + } + + slog.Info("[CERTIMATE] migration: collection '" + record.Collection().Name + "' record #" + record.Id + " updated") + } + } + + slog.Info("[CERTIMATE] migration: done") + + return nil }, func(app core.App) error { return nil }) diff --git a/migrations/1739462401_superusers_initial.go b/migrations/1739462401_superusers_initial.go new file mode 100644 index 00000000..d3098adb --- /dev/null +++ b/migrations/1739462401_superusers_initial.go @@ -0,0 +1,44 @@ +package migrations + +import ( + "os" + "strings" + + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +func init() { + m.Register(func(app core.App) error { + superusers, err := app.FindCollectionByNameOrId(core.CollectionNameSuperusers) + if err != nil { + return err + } + + records, err := app.FindAllRecords(superusers) + if err != nil { + return err + } + + if len(records) == 0 { + envUsername := strings.TrimSpace(os.Getenv("CERTIMATE_ADMIN_USERNAME")) + if envUsername == "" { + envUsername = "admin@certimate.fun" + } + + envPassword := strings.TrimSpace(os.Getenv("CERTIMATE_ADMIN_PASSWORD")) + if envPassword == "" { + envPassword = "1234567890" + } + + record := core.NewRecord(superusers) + record.Set("email", envUsername) + record.Set("password", envPassword) + return app.Save(record) + } + + return nil + }, func(app core.App) error { + return nil + }) +} diff --git a/ui/package-lock.json b/ui/package-lock.json index 394aebcd..8a62cdef 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -8,28 +8,28 @@ "name": "ui", "version": "0.0.0", "dependencies": { - "@ant-design/icons": "^5.5.2", - "@ant-design/pro-components": "^2.8.4", + "@ant-design/icons": "^5.6.1", + "@ant-design/pro-components": "^2.8.5", "ahooks": "^3.8.4", - "antd": "^5.23.1", + "antd": "^5.24.0", "antd-zod": "^6.0.1", "clsx": "^2.1.1", "cron-parser": "^4.9.0", "file-saver": "^2.0.5", - "i18next": "^24.2.1", + "i18next": "^24.2.2", "i18next-browser-languagedetector": "^8.0.2", "immer": "^10.1.1", - "lucide-react": "^0.473.0", + "lucide-react": "^0.475.0", "nanoid": "^5.0.9", - "pocketbase": "^0.25.0", + "pocketbase": "^0.25.1", "radash": "^12.1.0", "react": "^18.3.1", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.3.1", "react-i18next": "^15.4.0", - "react-router-dom": "^7.1.3", + "react-router-dom": "^7.1.5", "tailwind-merge": "^2.6.0", - "zod": "^3.24.1", + "zod": "^3.24.2", "zustand": "^5.0.3" }, "devDependencies": { @@ -39,26 +39,26 @@ "@types/react": "^18.3.12", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-dom": "^18.3.1", - "@typescript-eslint/eslint-plugin": "^8.20.0", - "@typescript-eslint/parser": "^8.20.0", - "@vitejs/plugin-legacy": "^6.0.0", + "@typescript-eslint/eslint-plugin": "^8.24.0", + "@typescript-eslint/parser": "^8.24.0", + "@vitejs/plugin-legacy": "^6.0.1", "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.20", "eslint": "^8.57.0", "eslint-config-prettier": "^10.0.1", "eslint-import-resolver-typescript": "^3.7.0", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-prettier": "^5.2.2", + "eslint-plugin-prettier": "^5.2.3", "eslint-plugin-react-hooks": "^5.1.0", - "eslint-plugin-react-refresh": "^0.4.18", + "eslint-plugin-react-refresh": "^0.4.19", "eslint-plugin-tailwindcss": "^3.18.0", "fs-extra": "^11.3.0", - "postcss": "^8.5.1", - "prettier": "^3.4.2", + "postcss": "^8.5.2", + "prettier": "^3.5.0", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", "typescript": "^5.7.3", - "vite": "^6.0.7" + "vite": "^6.1.0" } }, "node_modules/@alloc/quick-lru": { @@ -95,9 +95,9 @@ } }, "node_modules/@ant-design/cssinjs": { - "version": "1.22.0", - "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.22.0.tgz", - "integrity": "sha512-W9XSFeRPR0mAN3OuxfuS/xhENCYKf+8s+QyNNER0FSWoK9OpISTag6CCweg6lq0hASQ/2Vcza0Z8/kGivCP0Ng==", + "version": "1.23.0", + "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz", + "integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==", "dependencies": { "@babel/runtime": "^7.11.1", "@emotion/hash": "^0.8.0", @@ -138,9 +138,9 @@ } }, "node_modules/@ant-design/icons": { - "version": "5.5.2", - "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.5.2.tgz", - "integrity": "sha512-xc53rjVBl9v2BqFxUjZGti/RfdDeA8/6KYglmInM2PNqSXc/WfuGDTifJI/ZsokJK0aeKvOIbXc9y2g8ILAhEA==", + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", "dependencies": { "@ant-design/colors": "^7.0.0", "@ant-design/icons-svg": "^4.4.0", @@ -162,9 +162,9 @@ "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" }, "node_modules/@ant-design/pro-card": { - "version": "2.9.4", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-card/-/pro-card-2.9.4.tgz", - "integrity": "sha512-qxRJCLcLV+pc1ljSIjCq5AIDlNioiziIzX/K4JjYTBV8gmlcurV30mVt8k/K0PM2vbPS1RcEzhX0D7tlUNwWDg==", + "version": "2.9.5", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-card/-/pro-card-2.9.5.tgz", + "integrity": "sha512-2ioOI6G4/zkC+YgnvRjAMgKKz2VNuGCaqYrmpDZDCl7ptWiwDoE13uQxR7+5x7STGzMwQLSf09Z45Qh1IUVJiQ==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@ant-design/icons": "^5.0.0", @@ -181,19 +181,19 @@ } }, "node_modules/@ant-design/pro-components": { - "version": "2.8.4", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-components/-/pro-components-2.8.4.tgz", - "integrity": "sha512-TEI+V/zpD6KEP5vJUAKb7f9eq9T1q6TOBDuFndoVgNaij0I90SZZVHdiz+bwhuN5P7HIVdsWtnQo4MHMVM5JNw==", + "version": "2.8.5", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-components/-/pro-components-2.8.5.tgz", + "integrity": "sha512-wHPuoPXN6qVBAE6L6GKGPfMG0dUZWnsGAA9i66jIQYibATOY3ggw9VcBYVUhZKbFa6VlJ5axFMrSvYYgha6HQA==", "dependencies": { - "@ant-design/pro-card": "2.9.4", - "@ant-design/pro-descriptions": "2.6.4", - "@ant-design/pro-field": "3.0.1", - "@ant-design/pro-form": "2.31.4", - "@ant-design/pro-layout": "7.22.1", - "@ant-design/pro-list": "2.6.4", + "@ant-design/pro-card": "2.9.5", + "@ant-design/pro-descriptions": "2.6.5", + "@ant-design/pro-field": "3.0.2", + "@ant-design/pro-form": "2.31.5", + "@ant-design/pro-layout": "7.22.2", + "@ant-design/pro-list": "2.6.5", "@ant-design/pro-provider": "2.15.3", "@ant-design/pro-skeleton": "2.2.1", - "@ant-design/pro-table": "3.18.4", + "@ant-design/pro-table": "3.18.5", "@ant-design/pro-utils": "2.16.3", "@babel/runtime": "^7.16.3" }, @@ -204,12 +204,12 @@ } }, "node_modules/@ant-design/pro-descriptions": { - "version": "2.6.4", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-descriptions/-/pro-descriptions-2.6.4.tgz", - "integrity": "sha512-/c0nFYI4HJBR+mY6wymiAiMjOVxgeS+KjGTWj3/GG7sM7BzodntlWeOpe8yW4ss9KFRc8Kd8M6DJOSL9BvqMhg==", + "version": "2.6.5", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-descriptions/-/pro-descriptions-2.6.5.tgz", + "integrity": "sha512-aj6pUCKpOcwYykSc6zAG8GJf5AJoNf1K8u2QfOB0qKdgK9wGFITUphfM+rFMxa1CrpDGbtApsmOmDLtYlkH2sg==", "dependencies": { - "@ant-design/pro-field": "3.0.1", - "@ant-design/pro-form": "2.31.4", + "@ant-design/pro-field": "3.0.2", + "@ant-design/pro-form": "2.31.5", "@ant-design/pro-provider": "2.15.3", "@ant-design/pro-skeleton": "2.2.1", "@ant-design/pro-utils": "2.16.3", @@ -238,9 +238,9 @@ } }, "node_modules/@ant-design/pro-field": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-field/-/pro-field-3.0.1.tgz", - "integrity": "sha512-Wp2e5eeea7LIO7f3hMgf/PkZrwcnmWgkOLWRkeHXOyCuQzOfi9MiVHs2n7oFiTKMFvkaKipWBTJThBz5BFtIsQ==", + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-field/-/pro-field-3.0.2.tgz", + "integrity": "sha512-eqJxMUeMLfBFs0AXH7geAsmCLEiYrRJw+tmyHO8bioUUgw8O2abG2jwdMRVOMkhhIKszbpLDNYOmCB2h/36eEQ==", "dependencies": { "@ant-design/icons": "^5.0.0", "@ant-design/pro-provider": "2.15.3", @@ -260,12 +260,12 @@ } }, "node_modules/@ant-design/pro-form": { - "version": "2.31.4", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-form/-/pro-form-2.31.4.tgz", - "integrity": "sha512-LLlURJkJEtLAvwuPyYtfL9BxcrXtEOmHbmIBZ/u5Cekg/mAL/k5w04ElSP0ImiDU6p3jdHTbHeePzJAE1H603g==", + "version": "2.31.5", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-form/-/pro-form-2.31.5.tgz", + "integrity": "sha512-LTFx29c2LvO5m1PWsiI9C0VH78/b9fzC4EldD8OH6hy9dcH1bmKZdrVZogQKD1Y8m4yU43kDNzoPbizow6SdKQ==", "dependencies": { "@ant-design/icons": "^5.0.0", - "@ant-design/pro-field": "3.0.1", + "@ant-design/pro-field": "3.0.2", "@ant-design/pro-provider": "2.15.3", "@ant-design/pro-utils": "2.16.3", "@babel/runtime": "^7.18.0", @@ -286,9 +286,9 @@ } }, "node_modules/@ant-design/pro-layout": { - "version": "7.22.1", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-layout/-/pro-layout-7.22.1.tgz", - "integrity": "sha512-aOwdd/u/yz/0ZHPDpnoVUIDGneZUDw62lCo3C4s6o0SGQrCOkYvY0efG4yLC4RA8eSFvXwnMt5pB7ii7f46KLQ==", + "version": "7.22.2", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-layout/-/pro-layout-7.22.2.tgz", + "integrity": "sha512-RlXqN+EVnF1Sup84O0IjS/vMMgwFnbBZwvR+GVnmZg/+cIa4/BDTXyhbb1KRwUqzn1ctDzj7JfbWOWqmGMw6yA==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@ant-design/icons": "^5.0.0", @@ -313,15 +313,15 @@ } }, "node_modules/@ant-design/pro-list": { - "version": "2.6.4", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-list/-/pro-list-2.6.4.tgz", - "integrity": "sha512-ALsvn5l1gsTUgSj8zkMpoOMwutxJVnSU7w6zR5/zRMABnyVTw3a3JJv7C9/kPiEDBa30kvtqbh1P/Uq1qD1v2A==", + "version": "2.6.5", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-list/-/pro-list-2.6.5.tgz", + "integrity": "sha512-Mc8bgxaf4Ro3PUtfTAd6BrvHhNhi8Vi1CzHFJVqwBQo11Qly+T9eLCKIaKnFwm4wfatOL8f5ANCANW3Te/YDYQ==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@ant-design/icons": "^5.0.0", - "@ant-design/pro-card": "2.9.4", - "@ant-design/pro-field": "3.0.1", - "@ant-design/pro-table": "3.18.4", + "@ant-design/pro-card": "2.9.5", + "@ant-design/pro-field": "3.0.2", + "@ant-design/pro-table": "3.18.5", "@ant-design/pro-utils": "2.16.3", "@babel/runtime": "^7.18.0", "classnames": "^2.3.2", @@ -384,15 +384,15 @@ } }, "node_modules/@ant-design/pro-table": { - "version": "3.18.4", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-table/-/pro-table-3.18.4.tgz", - "integrity": "sha512-vQQ9R5/U6fS+b/Kb3iVqy/dkDe7avAiX/L3n/JIA5skp+t1NQTCZBlPDzopp+2dJDd96aXdWGDIfV6kiSuL82g==", + "version": "3.18.5", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-table/-/pro-table-3.18.5.tgz", + "integrity": "sha512-LejqPfHnTL8aKIbh8uOY8BcKAP7OZZlD0UwxPU631OYixuEB5J++ayhZh6Yj3Yye62t3A7lXN9+Tc8pab9Golw==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@ant-design/icons": "^5.0.0", - "@ant-design/pro-card": "2.9.4", - "@ant-design/pro-field": "3.0.1", - "@ant-design/pro-form": "2.31.4", + "@ant-design/pro-card": "2.9.5", + "@ant-design/pro-field": "3.0.2", + "@ant-design/pro-form": "2.31.5", "@ant-design/pro-provider": "2.15.3", "@ant-design/pro-utils": "2.16.3", "@babel/runtime": "^7.18.0", @@ -466,30 +466,31 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.26.8.tgz", + "integrity": "sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.8", + "@babel/template": "^7.26.8", + "@babel/traverse": "^7.26.8", + "@babel/types": "^7.26.8", + "@types/gensync": "^1.0.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -514,13 +515,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.8.tgz", + "integrity": "sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==", "dev": true, "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.26.8", + "@babel/types": "^7.26.8", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -542,12 +543,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -694,9 +695,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -720,14 +721,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.26.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, "dependencies": { "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -791,25 +792,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "version": "7.26.7", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", "dev": true, "dependencies": { "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.8.tgz", + "integrity": "sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==", "dev": true, "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -971,14 +972,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.8" }, "engines": { "node": ">=6.9.0" @@ -1005,12 +1006,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.26.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1400,12 +1401,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.26.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1680,12 +1681,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1695,12 +1696,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.26.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1773,14 +1774,14 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.26.8.tgz", + "integrity": "sha512-um7Sy+2THd697S4zJEfv/U5MHGJzkN2xhtsR3T/SWRbVSic62nbISh51VVfU9JiO/L/Z97QczHTaFVkOU8IzNg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", @@ -1792,9 +1793,9 @@ "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", "@babel/plugin-transform-block-scoping": "^7.25.9", "@babel/plugin-transform-class-properties": "^7.25.9", "@babel/plugin-transform-class-static-block": "^7.26.0", @@ -1805,7 +1806,7 @@ "@babel/plugin-transform-duplicate-keys": "^7.25.9", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-for-of": "^7.25.9", "@babel/plugin-transform-function-name": "^7.25.9", @@ -1814,12 +1815,12 @@ "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", "@babel/plugin-transform-member-expression-literals": "^7.25.9", "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", "@babel/plugin-transform-modules-systemjs": "^7.25.9", "@babel/plugin-transform-modules-umd": "^7.25.9", "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", "@babel/plugin-transform-numeric-separator": "^7.25.9", "@babel/plugin-transform-object-rest-spread": "^7.25.9", "@babel/plugin-transform-object-super": "^7.25.9", @@ -1835,17 +1836,17 @@ "@babel/plugin-transform-shorthand-properties": "^7.25.9", "@babel/plugin-transform-spread": "^7.25.9", "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", "@babel/plugin-transform-unicode-escapes": "^7.25.9", "@babel/plugin-transform-unicode-property-regex": "^7.25.9", "@babel/plugin-transform-unicode-regex": "^7.25.9", "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "core-js-compat": "^3.40.0", "semver": "^6.3.1" }, "engines": { @@ -1890,30 +1891,30 @@ } }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.26.8.tgz", + "integrity": "sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.8", + "@babel/types": "^7.26.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.8.tgz", + "integrity": "sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", + "@babel/generator": "^7.26.8", + "@babel/parser": "^7.26.8", + "@babel/template": "^7.26.8", + "@babel/types": "^7.26.8", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1922,9 +1923,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.8", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.8.tgz", + "integrity": "sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -2882,9 +2883,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", - "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.6.tgz", + "integrity": "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==", "cpu": [ "arm" ], @@ -2895,9 +2896,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", - "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.6.tgz", + "integrity": "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==", "cpu": [ "arm64" ], @@ -2908,9 +2909,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", - "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.6.tgz", + "integrity": "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==", "cpu": [ "arm64" ], @@ -2921,9 +2922,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", - "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.6.tgz", + "integrity": "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==", "cpu": [ "x64" ], @@ -2934,9 +2935,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", - "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.6.tgz", + "integrity": "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==", "cpu": [ "arm64" ], @@ -2947,9 +2948,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", - "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.6.tgz", + "integrity": "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==", "cpu": [ "x64" ], @@ -2960,9 +2961,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", - "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.6.tgz", + "integrity": "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==", "cpu": [ "arm" ], @@ -2973,9 +2974,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", - "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.6.tgz", + "integrity": "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==", "cpu": [ "arm" ], @@ -2986,9 +2987,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", - "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz", + "integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==", "cpu": [ "arm64" ], @@ -2999,9 +3000,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", - "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.6.tgz", + "integrity": "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==", "cpu": [ "arm64" ], @@ -3012,9 +3013,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", - "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.6.tgz", + "integrity": "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==", "cpu": [ "loong64" ], @@ -3025,9 +3026,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", - "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.6.tgz", + "integrity": "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==", "cpu": [ "ppc64" ], @@ -3038,9 +3039,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", - "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.6.tgz", + "integrity": "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==", "cpu": [ "riscv64" ], @@ -3051,9 +3052,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", - "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.6.tgz", + "integrity": "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==", "cpu": [ "s390x" ], @@ -3064,9 +3065,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", - "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz", + "integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==", "cpu": [ "x64" ], @@ -3077,9 +3078,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", - "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.6.tgz", + "integrity": "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==", "cpu": [ "x64" ], @@ -3090,9 +3091,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", - "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.6.tgz", + "integrity": "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==", "cpu": [ "arm64" ], @@ -3103,9 +3104,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", - "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.6.tgz", + "integrity": "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==", "cpu": [ "ia32" ], @@ -3116,9 +3117,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", - "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.6.tgz", + "integrity": "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==", "cpu": [ "x64" ], @@ -3202,6 +3203,12 @@ "@types/node": "*" } }, + "node_modules/@types/gensync": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@types/gensync/-/gensync-1.0.4.tgz", + "integrity": "sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz", @@ -3261,20 +3268,20 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", - "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz", + "integrity": "sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/type-utils": "8.20.0", - "@typescript-eslint/utils": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/type-utils": "8.24.0", + "@typescript-eslint/utils": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3290,15 +3297,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.20.0.tgz", - "integrity": "sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.24.0.tgz", + "integrity": "sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/typescript-estree": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4" }, "engines": { @@ -3314,13 +3321,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", - "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz", + "integrity": "sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0" + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3331,15 +3338,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", - "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz", + "integrity": "sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.20.0", - "@typescript-eslint/utils": "8.20.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/utils": "8.24.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3354,9 +3361,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.20.0.tgz", - "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3367,19 +3374,19 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", - "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", + "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3393,15 +3400,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.20.0.tgz", - "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.24.0.tgz", + "integrity": "sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/typescript-estree": "8.20.0" + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3416,12 +3423,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", - "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", + "version": "8.24.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -3464,17 +3471,17 @@ "dev": true }, "node_modules/@vitejs/plugin-legacy": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-6.0.0.tgz", - "integrity": "sha512-pWt9cWaGJAKYw+67VLpN8hSP+G+yAQnrf5Pqh/NzSDKFl/4KpxTtwb5OLQezHoZOxghahO/ha3IpvblBbX/t6A==", + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-6.0.1.tgz", + "integrity": "sha512-rMAUn0qXwCemlky7ZmaeP8va5Woz/6yVohDaTu7Wd+Jydi/Z/VmTDBlSOUbYFmfhDaVpV4ppWLiaUOPWqo9H6w==", "dev": true, "dependencies": { - "@babel/core": "^7.26.0", - "@babel/preset-env": "^7.26.0", - "browserslist": "^4.24.2", + "@babel/core": "^7.26.7", + "@babel/preset-env": "^7.26.7", + "browserslist": "^4.24.4", "browserslist-to-esbuild": "^2.1.1", - "core-js": "^3.39.0", - "magic-string": "^0.30.13", + "core-js": "^3.40.0", + "magic-string": "^0.30.17", "regenerator-runtime": "^0.14.1", "systemjs": "^6.15.1" }, @@ -3585,15 +3592,15 @@ } }, "node_modules/antd": { - "version": "5.23.1", - "resolved": "https://registry.npmmirror.com/antd/-/antd-5.23.1.tgz", - "integrity": "sha512-rg5xd5LotHw0IRyo/nsiUN/EEV3e+xU4V4UmIb/62hMN9+3APyz1Ohjf17a+fN13jC8sNY1hP1K252SU2Th0xA==", + "version": "5.24.0", + "resolved": "https://registry.npmmirror.com/antd/-/antd-5.24.0.tgz", + "integrity": "sha512-05PZBIf6ijLHAQskBTW3nwS2t7tQmyLA6Xq8vK2Sk5tsgCsH/UE1cNCDYnKFGRJ7cKYuWJ565JDo9LejbiO42A==", "dependencies": { "@ant-design/colors": "^7.2.0", - "@ant-design/cssinjs": "^1.22.0", + "@ant-design/cssinjs": "^1.23.0", "@ant-design/cssinjs-utils": "^1.1.3", "@ant-design/fast-color": "^2.0.6", - "@ant-design/icons": "^5.5.2", + "@ant-design/icons": "^5.6.1", "@ant-design/react-slick": "~1.1.2", "@babel/runtime": "^7.26.0", "@rc-component/color-picker": "~2.0.1", @@ -3617,25 +3624,25 @@ "rc-mentions": "~2.19.1", "rc-menu": "~9.16.0", "rc-motion": "^2.9.5", - "rc-notification": "~5.6.2", - "rc-pagination": "~5.0.0", - "rc-picker": "~4.9.2", + "rc-notification": "~5.6.3", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.0", "rc-progress": "~4.0.0", - "rc-rate": "~2.13.0", + "rc-rate": "~2.13.1", "rc-resize-observer": "^1.4.3", "rc-segmented": "~2.7.0", - "rc-select": "~14.16.5", + "rc-select": "~14.16.6", "rc-slider": "~11.1.8", "rc-steps": "~6.0.1", "rc-switch": "~4.1.0", "rc-table": "~7.50.2", - "rc-tabs": "~15.5.0", + "rc-tabs": "~15.5.1", "rc-textarea": "~1.9.0", - "rc-tooltip": "~6.3.2", + "rc-tooltip": "~6.4.0", "rc-tree": "~5.13.0", "rc-tree-select": "~5.27.0", "rc-upload": "~4.8.1", - "rc-util": "^5.44.3", + "rc-util": "^5.44.4", "scroll-into-view-if-needed": "^3.1.0", "throttle-debounce": "^5.0.2" }, @@ -3880,13 +3887,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -3944,9 +3951,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", + "version": "4.24.4", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -4177,9 +4184,9 @@ } }, "node_modules/core-js": { - "version": "3.39.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.39.0.tgz", - "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", + "version": "3.40.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.40.0.tgz", + "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -4188,12 +4195,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.40.0", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -4848,9 +4855,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.2", - "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.2.tgz", - "integrity": "sha512-1yI3/hf35wmlq66C8yOyrujQnel+v5l1Vop5Cl2I6ylyNTT1JbuUUnV3/41PzwTzcyDp/oF0jWE3HXvcH5AQOQ==", + "version": "5.2.3", + "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", + "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", @@ -4890,9 +4897,9 @@ } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.18", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", - "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", + "version": "0.4.19", + "resolved": "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", + "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", "dev": true, "peerDependencies": { "eslint": ">=8.40" @@ -5609,9 +5616,9 @@ } }, "node_modules/i18next": { - "version": "24.2.1", - "resolved": "https://registry.npmmirror.com/i18next/-/i18next-24.2.1.tgz", - "integrity": "sha512-Q2wC1TjWcSikn1VAJg13UGIjc+okpFxQTxjVAymOnSA3RpttBQNMPf2ovcgoFVsV4QNxTfNZMAxorXZXsk4fBA==", + "version": "24.2.2", + "resolved": "https://registry.npmmirror.com/i18next/-/i18next-24.2.2.tgz", + "integrity": "sha512-NE6i86lBCKRYZa5TaUDkU5S4HFgLIEJRLr3Whf2psgaxBleQ2LC1YW1Vc+SCgkAW7VEzndT6al6+CzegSUHcTQ==", "funding": [ { "type": "individual", @@ -6325,9 +6332,9 @@ } }, "node_modules/lucide-react": { - "version": "0.473.0", - "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.473.0.tgz", - "integrity": "sha512-KW6u5AKeIjkvrxXZ6WuCu9zHE/gEYSXCay+Gre2ZoInD0Je/e3RBtP4OHpJVJ40nDklSvjVKjgH7VU8/e2dzRw==", + "version": "0.475.0", + "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.475.0.tgz", + "integrity": "sha512-NJzvVu1HwFVeZ+Gwq2q00KygM1aBhy/ZrhY9FsAgJtpB+E4R7uxRk9M2iKvHa6/vNxZydIB59htha4c2vvwvVg==", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } @@ -6788,9 +6795,9 @@ } }, "node_modules/pocketbase": { - "version": "0.25.0", - "resolved": "https://registry.npmmirror.com/pocketbase/-/pocketbase-0.25.0.tgz", - "integrity": "sha512-xbjiQG/tnh2HsjZrTW7ZEJASvl4hmGAB5PQAmNRkRU8BmrPib7zwKyXdiYJl34QN7ADpqykZD2lAMdDtrrQbuw==" + "version": "0.25.1", + "resolved": "https://registry.npmmirror.com/pocketbase/-/pocketbase-0.25.1.tgz", + "integrity": "sha512-2IH0KLI/qMNR/E17C7BGWX2FxW7Tead+igLHOWZ45P56v/NyVT18Jnmddeft+3qWWGL1Hog2F8bc4orWV/+Fcg==" }, "node_modules/possible-typed-array-names": { "version": "1.0.0", @@ -6802,9 +6809,9 @@ } }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.2", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "dev": true, "funding": [ { @@ -6972,9 +6979,9 @@ } }, "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.5.0.tgz", + "integrity": "sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -7256,9 +7263,9 @@ } }, "node_modules/rc-notification": { - "version": "5.6.2", - "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.2.tgz", - "integrity": "sha512-Id4IYMoii3zzrG0lB0gD6dPgJx4Iu95Xu0BQrhHIbp7ZnAZbLqdqQ73aIWH0d0UFcElxwaKjnzNovTjo7kXz7g==", + "version": "5.6.3", + "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.3.tgz", + "integrity": "sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -7289,9 +7296,9 @@ } }, "node_modules/rc-pagination": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-5.0.0.tgz", - "integrity": "sha512-QjrPvbAQwps93iluvFM62AEYglGYhWW2q/nliQqmvkTi4PXP4HHoh00iC1Sa5LLVmtWQHmG73fBi2x6H6vFHRg==", + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.3.2", @@ -7303,9 +7310,9 @@ } }, "node_modules/rc-picker": { - "version": "4.9.2", - "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.9.2.tgz", - "integrity": "sha512-SLW4PRudODOomipKI0dvykxW4P8LOqtMr17MOaLU6NQJhkh9SZeh44a/8BMxwv5T6e3kiIeYc9k5jFg2Mv35Pg==", + "version": "4.11.1", + "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.11.1.tgz", + "integrity": "sha512-qHaZrHrYjAVwMcKqMXJz9xHifQgQpKSav0E1ejOe3SFTHZggPlmKzLnA5i//Y4DEumR4HZEsePSOdOlmX1JvAw==", "dependencies": { "@babel/runtime": "^7.24.7", "@rc-component/trigger": "^2.0.0", @@ -7355,9 +7362,9 @@ } }, "node_modules/rc-rate": { - "version": "2.13.0", - "resolved": "https://registry.npmmirror.com/rc-rate/-/rc-rate-2.13.0.tgz", - "integrity": "sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==", + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -7491,9 +7498,9 @@ } }, "node_modules/rc-tabs": { - "version": "15.5.0", - "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.5.0.tgz", - "integrity": "sha512-NrDcTaUJLh9UuDdMBkjKTn97U9iXG44s9D03V5NHkhEDWO5/nC6PwC3RhkCWFMKB9hh+ryqgZ+TIr1b9Jd/hnQ==", + "version": "15.5.1", + "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.5.1.tgz", + "integrity": "sha512-yiWivLAjEo5d1v2xlseB2dQocsOhkoVSfo1krS8v8r+02K+TBUjSjXIf7dgyVSxp6wRIPv5pMi5hanNUlQMgUA==", "dependencies": { "@babel/runtime": "^7.11.2", "classnames": "2.x", @@ -7528,13 +7535,14 @@ } }, "node_modules/rc-tooltip": { - "version": "6.3.2", - "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.3.2.tgz", - "integrity": "sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA==", + "version": "6.4.0", + "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", "dependencies": { "@babel/runtime": "^7.11.2", "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.1" + "classnames": "^2.3.1", + "rc-util": "^5.44.3" }, "peerDependencies": { "react": ">=16.9.0", @@ -7591,9 +7599,9 @@ } }, "node_modules/rc-util": { - "version": "5.44.3", - "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.44.3.tgz", - "integrity": "sha512-q6KCcOFk3rv/zD3MckhJteZxb0VjAIFuf622B7ElK4vfrZdAzs16XR5p3VTdy3+U5jfJU5ACz4QnhLSuAGe5dA==", + "version": "5.44.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", "dependencies": { "@babel/runtime": "^7.18.3", "react-is": "^18.2.0" @@ -7702,9 +7710,9 @@ } }, "node_modules/react-router": { - "version": "7.1.3", - "resolved": "https://registry.npmmirror.com/react-router/-/react-router-7.1.3.tgz", - "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", + "version": "7.1.5", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-7.1.5.tgz", + "integrity": "sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA==", "dependencies": { "@types/cookie": "^0.6.0", "cookie": "^1.0.1", @@ -7725,11 +7733,11 @@ } }, "node_modules/react-router-dom": { - "version": "7.1.3", - "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-7.1.3.tgz", - "integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==", + "version": "7.1.5", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-7.1.5.tgz", + "integrity": "sha512-/4f9+up0Qv92D3bB8iN5P1s3oHAepSGa9h5k6tpTFlixTTskJZwKGhJ6vRJ277tLD1zuaZTt95hyGWV1Z37csQ==", "dependencies": { - "react-router": "7.1.3" + "react-router": "7.1.5" }, "engines": { "node": ">=20.0.0" @@ -7954,9 +7962,9 @@ } }, "node_modules/rollup": { - "version": "4.29.1", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.29.1.tgz", - "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", + "version": "4.34.6", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.34.6.tgz", + "integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==", "dev": true, "dependencies": { "@types/estree": "1.0.6" @@ -7969,25 +7977,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.29.1", - "@rollup/rollup-android-arm64": "4.29.1", - "@rollup/rollup-darwin-arm64": "4.29.1", - "@rollup/rollup-darwin-x64": "4.29.1", - "@rollup/rollup-freebsd-arm64": "4.29.1", - "@rollup/rollup-freebsd-x64": "4.29.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", - "@rollup/rollup-linux-arm-musleabihf": "4.29.1", - "@rollup/rollup-linux-arm64-gnu": "4.29.1", - "@rollup/rollup-linux-arm64-musl": "4.29.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", - "@rollup/rollup-linux-riscv64-gnu": "4.29.1", - "@rollup/rollup-linux-s390x-gnu": "4.29.1", - "@rollup/rollup-linux-x64-gnu": "4.29.1", - "@rollup/rollup-linux-x64-musl": "4.29.1", - "@rollup/rollup-win32-arm64-msvc": "4.29.1", - "@rollup/rollup-win32-ia32-msvc": "4.29.1", - "@rollup/rollup-win32-x64-msvc": "4.29.1", + "@rollup/rollup-android-arm-eabi": "4.34.6", + "@rollup/rollup-android-arm64": "4.34.6", + "@rollup/rollup-darwin-arm64": "4.34.6", + "@rollup/rollup-darwin-x64": "4.34.6", + "@rollup/rollup-freebsd-arm64": "4.34.6", + "@rollup/rollup-freebsd-x64": "4.34.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", + "@rollup/rollup-linux-arm-musleabihf": "4.34.6", + "@rollup/rollup-linux-arm64-gnu": "4.34.6", + "@rollup/rollup-linux-arm64-musl": "4.34.6", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", + "@rollup/rollup-linux-riscv64-gnu": "4.34.6", + "@rollup/rollup-linux-s390x-gnu": "4.34.6", + "@rollup/rollup-linux-x64-gnu": "4.34.6", + "@rollup/rollup-linux-x64-musl": "4.34.6", + "@rollup/rollup-win32-arm64-msvc": "4.34.6", + "@rollup/rollup-win32-ia32-msvc": "4.34.6", + "@rollup/rollup-win32-x64-msvc": "4.34.6", "fsevents": "~2.3.2" } }, @@ -8540,9 +8548,9 @@ } }, "node_modules/swr": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/swr/-/swr-2.3.0.tgz", - "integrity": "sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA==", + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/swr/-/swr-2.3.2.tgz", + "integrity": "sha512-RosxFpiabojs75IwQ316DGoDRmOqtiAj0tg8wCcbEu4CiLZBs/a9QNtHV7TUfDXmmlgqij/NqzKq/eLelyv9xA==", "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.4.0" @@ -8721,9 +8729,9 @@ "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" }, "node_modules/ts-api-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-2.0.0.tgz", - "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, "engines": { "node": ">=18.12" @@ -9010,14 +9018,14 @@ "dev": true }, "node_modules/vite": { - "version": "6.0.7", - "resolved": "https://registry.npmmirror.com/vite/-/vite-6.0.7.tgz", - "integrity": "sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==", + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/vite/-/vite-6.1.0.tgz", + "integrity": "sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==", "dev": true, "dependencies": { "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" + "postcss": "^8.5.1", + "rollup": "^4.30.1" }, "bin": { "vite": "bin/vite.js" @@ -9374,9 +9382,9 @@ } }, "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmmirror.com/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "version": "3.24.2", + "resolved": "https://registry.npmmirror.com/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/ui/package.json b/ui/package.json index f2b1e993..b3a9c756 100644 --- a/ui/package.json +++ b/ui/package.json @@ -10,28 +10,28 @@ "preview": "vite preview" }, "dependencies": { - "@ant-design/icons": "^5.5.2", - "@ant-design/pro-components": "^2.8.4", + "@ant-design/icons": "^5.6.1", + "@ant-design/pro-components": "^2.8.5", "ahooks": "^3.8.4", - "antd": "^5.23.1", + "antd": "^5.24.0", "antd-zod": "^6.0.1", "clsx": "^2.1.1", "cron-parser": "^4.9.0", "file-saver": "^2.0.5", - "i18next": "^24.2.1", + "i18next": "^24.2.2", "i18next-browser-languagedetector": "^8.0.2", "immer": "^10.1.1", - "lucide-react": "^0.473.0", + "lucide-react": "^0.475.0", "nanoid": "^5.0.9", - "pocketbase": "^0.25.0", + "pocketbase": "^0.25.1", "radash": "^12.1.0", "react": "^18.3.1", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.3.1", "react-i18next": "^15.4.0", - "react-router-dom": "^7.1.3", + "react-router-dom": "^7.1.5", "tailwind-merge": "^2.6.0", - "zod": "^3.24.1", + "zod": "^3.24.2", "zustand": "^5.0.3" }, "devDependencies": { @@ -41,25 +41,25 @@ "@types/react": "^18.3.12", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-dom": "^18.3.1", - "@typescript-eslint/eslint-plugin": "^8.20.0", - "@typescript-eslint/parser": "^8.20.0", - "@vitejs/plugin-legacy": "^6.0.0", + "@typescript-eslint/eslint-plugin": "^8.24.0", + "@typescript-eslint/parser": "^8.24.0", + "@vitejs/plugin-legacy": "^6.0.1", "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.20", "eslint": "^8.57.0", "eslint-config-prettier": "^10.0.1", "eslint-import-resolver-typescript": "^3.7.0", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-prettier": "^5.2.2", + "eslint-plugin-prettier": "^5.2.3", "eslint-plugin-react-hooks": "^5.1.0", - "eslint-plugin-react-refresh": "^0.4.18", + "eslint-plugin-react-refresh": "^0.4.19", "eslint-plugin-tailwindcss": "^3.18.0", "fs-extra": "^11.3.0", - "postcss": "^8.5.1", - "prettier": "^3.4.2", + "postcss": "^8.5.2", + "prettier": "^3.5.0", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", "typescript": "^5.7.3", - "vite": "^6.0.7" + "vite": "^6.1.0" } } diff --git a/ui/src/components/MultipleInput.tsx b/ui/src/components/MultipleInput.tsx index 8931379c..d28db745 100644 --- a/ui/src/components/MultipleInput.tsx +++ b/ui/src/components/MultipleInput.tsx @@ -259,12 +259,12 @@ const MultipleInputItem = forwardRef - + {removeBtn} {upBtn} {downBtn} {addBtn} - + ); } diff --git a/ui/src/components/access/AccessEditModal.tsx b/ui/src/components/access/AccessEditModal.tsx index 067dc339..66154866 100644 --- a/ui/src/components/access/AccessEditModal.tsx +++ b/ui/src/components/access/AccessEditModal.tsx @@ -4,7 +4,6 @@ import { useControllableValue } from "ahooks"; import { Modal, notification } from "antd"; import { type AccessModel } from "@/domain/access"; -import { accessProvidersMap } from "@/domain/provider"; import { useTriggerElement, useZustandShallowSelector } from "@/hooks"; import { useAccessesStore } from "@/stores/access"; import { getErrMsg } from "@/utils/error"; @@ -50,7 +49,6 @@ const AccessEditModal = ({ data, loading, trigger, preset, afterSubmit, ...props try { let values: AccessModel = formRef.current!.getFieldsValue(); - values.usage = accessProvidersMap.get(values.provider)!.usage; if (preset === "add") { if (data?.id) { diff --git a/ui/src/components/certificate/CertificateDetailDrawer.tsx b/ui/src/components/certificate/CertificateDetailDrawer.tsx index 9db04ab6..2cedeb2b 100644 --- a/ui/src/components/certificate/CertificateDetailDrawer.tsx +++ b/ui/src/components/certificate/CertificateDetailDrawer.tsx @@ -35,7 +35,7 @@ const CertificateDetailDrawer = ({ data, loading, trigger, ...props }: Certifica loading={loading} placement="right" title={`Certificate #${data?.id}`} - width={640} + width={720} onClose={() => setOpen(false)} > diff --git a/ui/src/components/provider/AccessProviderSelect.tsx b/ui/src/components/provider/AccessProviderSelect.tsx index ffba5c8a..04b859ac 100644 --- a/ui/src/components/provider/AccessProviderSelect.tsx +++ b/ui/src/components/provider/AccessProviderSelect.tsx @@ -29,22 +29,16 @@ const AccessProviderSelect = (props: AccessProviderSelectProps) => {
- {provider?.usage === ACCESS_USAGES.APPLY && ( + {provider?.usages?.includes(ACCESS_USAGES.APPLY) && ( <> {t("access.props.provider.usage.dns")} )} - {provider?.usage === ACCESS_USAGES.DEPLOY && ( + {provider?.usages?.includes(ACCESS_USAGES.DEPLOY) && ( <> {t("access.props.provider.usage.host")} )} - {provider?.usage === ACCESS_USAGES.ALL && ( - <> - {t("access.props.provider.usage.dns")} - {t("access.props.provider.usage.host")} - - )}
); diff --git a/ui/src/components/provider/DeployProviderPicker.tsx b/ui/src/components/provider/DeployProviderPicker.tsx index c90debb5..af373255 100644 --- a/ui/src/components/provider/DeployProviderPicker.tsx +++ b/ui/src/components/provider/DeployProviderPicker.tsx @@ -1,9 +1,9 @@ -import { memo, useEffect, useRef, useState } from "react"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; -import { Avatar, Card, Col, Empty, Flex, Input, type InputRef, Row, Typography } from "antd"; +import { Avatar, Card, Col, Empty, Flex, Input, type InputRef, Row, Tabs, Tooltip, Typography } from "antd"; import Show from "@/components/Show"; -import { deployProvidersMap } from "@/domain/provider"; +import { DEPLOY_CATEGORIES, deployProvidersMap } from "@/domain/provider"; export type DeployProviderPickerProps = { className?: string; @@ -24,15 +24,26 @@ const DeployProviderPicker = ({ className, style, autoFocus, placeholder, onSele } }, []); - const providers = Array.from(deployProvidersMap.values()); - const filteredProviders = providers.filter((provider) => { - if (keyword) { - const value = keyword.toLowerCase(); - return provider.type.toLowerCase().includes(value) || t(provider.name).toLowerCase().includes(value); - } + const [category, setCategory] = useState(DEPLOY_CATEGORIES.ALL); - return true; - }); + const providers = useMemo(() => { + return Array.from(deployProvidersMap.values()) + .filter((provider) => { + if (keyword) { + const value = keyword.toLowerCase(); + return provider.type.toLowerCase().includes(value) || t(provider.name).toLowerCase().includes(value); + } + + return true; + }) + .filter((provider) => { + if (category && category !== DEPLOY_CATEGORIES.ALL) { + return provider.category === category; + } + + return true; + }); + }, [keyword, category]); const handleProviderTypeSelect = (value: string) => { onSelect?.(value); @@ -43,29 +54,56 @@ const DeployProviderPicker = ({ className, style, autoFocus, placeholder, onSele setKeyword(e.target.value.trim())} />
- 0} fallback={}> - - {filteredProviders.map((provider, index) => { - return ( - - { - handleProviderTypeSelect(provider.type); - }} - > - - - {t(provider.name)} - - - - ); - })} - - + + ({ + key: key, + label: t(`provider.category.${key}`), + }))} + size="small" + tabBarStyle={{ marginLeft: "-1rem" }} + tabPosition="left" + onChange={(key) => setCategory(key)} + /> + +
+ 0} fallback={}> + + {providers.map((provider, index) => { + return ( + + { + handleProviderTypeSelect(provider.type); + }} + > + + + + {t(provider.name)} + + + + + ); + })} + + +
+
); diff --git a/ui/src/components/workflow/WorkflowRunDetail.tsx b/ui/src/components/workflow/WorkflowRunDetail.tsx index 22ad5b1f..785624f9 100644 --- a/ui/src/components/workflow/WorkflowRunDetail.tsx +++ b/ui/src/components/workflow/WorkflowRunDetail.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import { useTranslation } from "react-i18next"; import { SelectOutlined as SelectOutlinedIcon } from "@ant-design/icons"; import { useRequest } from "ahooks"; -import { Alert, Button, Divider, Empty, Table, type TableProps, Tooltip, Typography, notification } from "antd"; +import { Alert, Button, Divider, Empty, Space, Table, type TableProps, Tooltip, Typography, notification } from "antd"; import dayjs from "dayjs"; import { ClientResponseError } from "pocketbase"; @@ -101,7 +101,7 @@ const WorkflowRunArtifacts = ({ runId }: { runId: string }) => { align: "end", width: 120, render: (_, record) => ( - + { } /> - + ), }, ]; diff --git a/ui/src/components/workflow/WorkflowRunDetailDrawer.tsx b/ui/src/components/workflow/WorkflowRunDetailDrawer.tsx index 44ee8be8..79eb103c 100644 --- a/ui/src/components/workflow/WorkflowRunDetailDrawer.tsx +++ b/ui/src/components/workflow/WorkflowRunDetailDrawer.tsx @@ -36,7 +36,7 @@ const WorkflowRunDetailDrawer = ({ data, loading, trigger, ...props }: WorkflowR loading={loading} placement="right" title={`WorkflowRun #${data?.id}`} - width={640} + width={720} onClose={() => setOpen(false)} > diff --git a/ui/src/components/workflow/WorkflowRuns.tsx b/ui/src/components/workflow/WorkflowRuns.tsx index b52069f6..25f3891a 100644 --- a/ui/src/components/workflow/WorkflowRuns.tsx +++ b/ui/src/components/workflow/WorkflowRuns.tsx @@ -11,7 +11,7 @@ import { SyncOutlined as SyncOutlinedIcon, } from "@ant-design/icons"; import { useRequest } from "ahooks"; -import { Button, Empty, Modal, Table, type TableProps, Tag, Tooltip, notification } from "antd"; +import { Button, Empty, Modal, Space, Table, type TableProps, Tag, Tooltip, notification } from "antd"; import dayjs from "dayjs"; import { ClientResponseError } from "pocketbase"; @@ -140,7 +140,7 @@ const WorkflowRuns = ({ className, style, workflowId }: WorkflowRunsProps) => { record.status === WORKFLOW_RUN_STATUSES.CANCELED; return ( - + { }} /> - + ); }, }, diff --git a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx index bfb5f420..5a0472dd 100644 --- a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx @@ -279,7 +279,7 @@ const ApplyNodeConfigForm = forwardRef { const provider = accessProvidersMap.get(record.provider); - if (ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.APPLY === provider?.usage) { + if (provider?.usages?.includes(ACCESS_USAGES.APPLY)) { formInst.setFieldValue("providerAccessId", record.id); } }} @@ -292,7 +292,7 @@ const ApplyNodeConfigForm = forwardRef { const provider = accessProvidersMap.get(record.provider); - return ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.APPLY === provider?.usage; + return !!provider?.usages?.includes(ACCESS_USAGES.APPLY); }} onChange={handleProviderAccessSelect} /> diff --git a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx index 92ce46cc..78d1b99d 100644 --- a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx @@ -212,7 +212,6 @@ const DeployNodeConfigForm = forwardRef { if (fieldProvider === value) return; - // TODO: 暂时不支持切换部署目标,需后端调整,否则之前若存在部署结果输出就不会再部署 // 切换部署目标时重置表单,避免其他部署目标的配置字段影响当前部署目标 if (initialValues?.provider === value) { formInst.resetFields(); @@ -276,13 +275,7 @@ const DeployNodeConfigForm = forwardRef} > - + @@ -308,7 +301,7 @@ const DeployNodeConfigForm = forwardRef { const provider = accessProvidersMap.get(record.provider); - if (ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.DEPLOY === provider?.usage) { + if (provider?.usages?.includes(ACCESS_USAGES.DEPLOY)) { formInst.setFieldValue("providerAccessId", record.id); } }} @@ -325,7 +318,7 @@ const DeployNodeConfigForm = forwardRef diff --git a/ui/src/components/workflow/node/_SharedNode.tsx b/ui/src/components/workflow/node/_SharedNode.tsx index a7b88e4c..fec24a6a 100644 --- a/ui/src/components/workflow/node/_SharedNode.tsx +++ b/ui/src/components/workflow/node/_SharedNode.tsx @@ -307,7 +307,7 @@ const SharedNodeConfigDrawer = ({ loading={loading} open={open} title={
{node.name}
} - width={640} + width={720} onClose={handleClose} > {children} diff --git a/ui/src/domain/access.ts b/ui/src/domain/access.ts index ed7f8559..cf6b1055 100644 --- a/ui/src/domain/access.ts +++ b/ui/src/domain/access.ts @@ -1,5 +1,3 @@ -import { type AccessUsageType } from "./provider"; - export interface AccessModel extends BaseModel { name: string; provider: string; @@ -36,7 +34,6 @@ export interface AccessModel extends BaseModel { | AccessConfigForWebhook | AccessConfigForWestcn ); - usage: AccessUsageType; } // #region AccessConfig diff --git a/ui/src/domain/provider.ts b/ui/src/domain/provider.ts index 15562238..1a3272cd 100644 --- a/ui/src/domain/provider.ts +++ b/ui/src/domain/provider.ts @@ -37,7 +37,6 @@ export const ACCESS_PROVIDERS = Object.freeze({ export type AccessProviderType = (typeof ACCESS_PROVIDERS)[keyof typeof ACCESS_PROVIDERS]; export const ACCESS_USAGES = Object.freeze({ - ALL: "all", APPLY: "apply", DEPLOY: "deploy", } as const); @@ -48,7 +47,7 @@ export type AccessProvider = { type: AccessProviderType; name: string; icon: string; - usage: AccessUsageType; + usages: AccessUsageType[]; }; export const accessProvidersMap: Map = new Map( @@ -57,41 +56,41 @@ export const accessProvidersMap: Map [ - type, + [ACCESS_PROVIDERS.LOCAL, "provider.local", "/imgs/providers/local.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.SSH, "provider.ssh", "/imgs/providers/ssh.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.WEBHOOK, "provider.webhook", "/imgs/providers/webhook.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.KUBERNETES, "provider.kubernetes", "/imgs/providers/kubernetes.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.ALIYUN, "provider.aliyun", "/imgs/providers/aliyun.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.TENCENTCLOUD, "provider.tencentcloud", "/imgs/providers/tencentcloud.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.HUAWEICLOUD, "provider.huaweicloud", "/imgs/providers/huaweicloud.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.VOLCENGINE, "provider.volcengine", "/imgs/providers/volcengine.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.AWS, "provider.aws", "/imgs/providers/aws.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.BAIDUCLOUD, "provider.baiducloud", "/imgs/providers/baiducloud.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.QINIU, "provider.qiniu", "/imgs/providers/qiniu.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.DOGECLOUD, "provider.dogecloud", "/imgs/providers/dogecloud.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.BYTEPLUS, "provider.byteplus", "/imgs/providers/byteplus.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.UCLOUD, "provider.ucloud", "/imgs/providers/ucloud.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.BAOTAPANEL, "provider.baotapanel", "/imgs/providers/baotapanel.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.EDGIO, "provider.edgio", "/imgs/providers/edgio.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.AZURE, "provider.azure", "/imgs/providers/azure.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.CLOUDFLARE, "provider.cloudflare", "/imgs/providers/cloudflare.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.CLOUDNS, "provider.cloudns", "/imgs/providers/cloudns.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.GNAME, "provider.gname", "/imgs/providers/gname.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.GODADDY, "provider.godaddy", "/imgs/providers/godaddy.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.NAMEDOTCOM, "provider.namedotcom", "/imgs/providers/namedotcom.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.NAMESILO, "provider.namesilo", "/imgs/providers/namesilo.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.NS1, "provider.ns1", "/imgs/providers/ns1.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.RAINYUN, "provider.rainyun", "/imgs/providers/rainyun.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.WESTCN, "provider.westcn", "/imgs/providers/westcn.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.POWERDNS, "provider.powerdns", "/imgs/providers/powerdns.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.ACMEHTTPREQ, "provider.acmehttpreq", "/imgs/providers/acmehttpreq.svg", [ACCESS_USAGES.APPLY]], + ].map((e) => [ + e[0] as string, { - type: type as AccessProviderType, - name: name, - icon: icon, - usage: usage as AccessUsageType, + type: e[0] as AccessProviderType, + name: e[1] as string, + icon: e[2] as string, + usages: e[3] as AccessUsageType[], }, ]) ); @@ -142,23 +141,23 @@ export const applyDNSProvidersMap: Map [ type, { @@ -219,11 +218,25 @@ export const DEPLOY_PROVIDERS = Object.freeze({ export type DeployProviderType = (typeof DEPLOY_PROVIDERS)[keyof typeof DEPLOY_PROVIDERS]; +export const DEPLOY_CATEGORIES = Object.freeze({ + ALL: "all", + CDN: "cdn", + STORAGE: "storage", + LOADBALANCE: "loadbalance", + FIREWALL: "firewall", + LIVE: "live", + WEBSITE: "website", + OTHER: "other", +} as const); + +export type DeployCategoryType = (typeof DEPLOY_CATEGORIES)[keyof typeof DEPLOY_CATEGORIES]; + export type DeployProvider = { type: DeployProviderType; name: string; icon: string; provider: AccessProviderType; + category: DeployCategoryType; }; export const deployProvidersMap: Map = new Map( @@ -232,51 +245,52 @@ export const deployProvidersMap: Map [ + [DEPLOY_PROVIDERS.LOCAL, "provider.local", DEPLOY_CATEGORIES.OTHER], + [DEPLOY_PROVIDERS.SSH, "provider.ssh", DEPLOY_CATEGORIES.OTHER], + [DEPLOY_PROVIDERS.WEBHOOK, "provider.webhook", DEPLOY_CATEGORIES.OTHER], + [DEPLOY_PROVIDERS.KUBERNETES_SECRET, "provider.kubernetes.secret", DEPLOY_CATEGORIES.OTHER], + [DEPLOY_PROVIDERS.ALIYUN_OSS, "provider.aliyun.oss", DEPLOY_CATEGORIES.STORAGE], + [DEPLOY_PROVIDERS.ALIYUN_CDN, "provider.aliyun.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.ALIYUN_DCDN, "provider.aliyun.dcdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.ALIYUN_ESA, "provider.aliyun.esa", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.ALIYUN_CLB, "provider.aliyun.clb", DEPLOY_CATEGORIES.LOADBALANCE], + [DEPLOY_PROVIDERS.ALIYUN_ALB, "provider.aliyun.alb", DEPLOY_CATEGORIES.LOADBALANCE], + [DEPLOY_PROVIDERS.ALIYUN_NLB, "provider.aliyun.nlb", DEPLOY_CATEGORIES.LOADBALANCE], + [DEPLOY_PROVIDERS.ALIYUN_WAF, "provider.aliyun.waf", DEPLOY_CATEGORIES.FIREWALL], + [DEPLOY_PROVIDERS.ALIYUN_LIVE, "provider.aliyun.live", DEPLOY_CATEGORIES.LIVE], + [DEPLOY_PROVIDERS.ALIYUN_CAS_DEPLOY, "provider.aliyun.cas_deploy", DEPLOY_CATEGORIES.OTHER], + [DEPLOY_PROVIDERS.TENCENTCLOUD_COS, "provider.tencentcloud.cos", DEPLOY_CATEGORIES.STORAGE], + [DEPLOY_PROVIDERS.TENCENTCLOUD_CDN, "provider.tencentcloud.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.TENCENTCLOUD_ECDN, "provider.tencentcloud.ecdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.TENCENTCLOUD_EO, "provider.tencentcloud.eo", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.TENCENTCLOUD_CLB, "provider.tencentcloud.clb", DEPLOY_CATEGORIES.LOADBALANCE], + [DEPLOY_PROVIDERS.TENCENTCLOUD_CSS, "provider.tencentcloud.css", DEPLOY_CATEGORIES.LIVE], + [DEPLOY_PROVIDERS.TENCENTCLOUD_SSL_DEPLOY, "provider.tencentcloud.ssl_deploy", DEPLOY_CATEGORIES.OTHER], + [DEPLOY_PROVIDERS.HUAWEICLOUD_CDN, "provider.huaweicloud.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.HUAWEICLOUD_ELB, "provider.huaweicloud.elb", DEPLOY_CATEGORIES.LOADBALANCE], + [DEPLOY_PROVIDERS.BAIDUCLOUD_CDN, "provider.baiducloud.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.VOLCENGINE_TOS, "provider.volcengine.tos", DEPLOY_CATEGORIES.STORAGE], + [DEPLOY_PROVIDERS.VOLCENGINE_CDN, "provider.volcengine.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.VOLCENGINE_DCDN, "provider.volcengine.dcdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.VOLCENGINE_CLB, "provider.volcengine.clb", DEPLOY_CATEGORIES.LOADBALANCE], + [DEPLOY_PROVIDERS.VOLCENGINE_LIVE, "provider.volcengine.live", DEPLOY_CATEGORIES.LIVE], + [DEPLOY_PROVIDERS.QINIU_CDN, "provider.qiniu.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.QINIU_PILI, "provider.qiniu.pili", DEPLOY_CATEGORIES.LIVE], + [DEPLOY_PROVIDERS.DOGECLOUD_CDN, "provider.dogecloud.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.BYTEPLUS_CDN, "provider.byteplus.cdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.UCLOUD_US3, "provider.ucloud.us3", DEPLOY_CATEGORIES.STORAGE], + [DEPLOY_PROVIDERS.UCLOUD_UCDN, "provider.ucloud.ucdn", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.AWS_CLOUDFRONT, "provider.aws.cloudfront", DEPLOY_CATEGORIES.CDN], + [DEPLOY_PROVIDERS.BAOTAPANEL_SITE, "provider.baotapanel.site", DEPLOY_CATEGORIES.WEBSITE], + [DEPLOY_PROVIDERS.EDGIO_APPLICATIONS, "provider.edgio.applications", DEPLOY_CATEGORIES.WEBSITE], + ].map(([type, name, category]) => [ type, { type: type as DeployProviderType, name: name, icon: accessProvidersMap.get(type.split("-")[0])!.icon, provider: type.split("-")[0] as AccessProviderType, + category: category as DeployCategoryType, }, ]) ); diff --git a/ui/src/i18n/locales/en/index.ts b/ui/src/i18n/locales/en/index.ts index 89675923..f038efc7 100644 --- a/ui/src/i18n/locales/en/index.ts +++ b/ui/src/i18n/locales/en/index.ts @@ -3,6 +3,7 @@ import nlsCertificate from "./nls.certificate.json"; import nlsCommon from "./nls.common.json"; import nlsDashboard from "./nls.dashboard.json"; import nlsLogin from "./nls.login.json"; +import nlsProvider from "./nls.provider.json"; import nlsSettings from "./nls.settings.json"; import nlsWorkflow from "./nls.workflow.json"; import nlsWorkflowNodes from "./nls.workflow.nodes.json"; @@ -13,6 +14,7 @@ export default Object.freeze({ ...nlsLogin, ...nlsDashboard, ...nlsSettings, + ...nlsProvider, ...nlsAccess, ...nlsWorkflow, ...nlsWorkflowNodes, diff --git a/ui/src/i18n/locales/en/nls.access.json b/ui/src/i18n/locales/en/nls.access.json index 25f8765d..af3676b3 100644 --- a/ui/src/i18n/locales/en/nls.access.json +++ b/ui/src/i18n/locales/en/nls.access.json @@ -3,6 +3,8 @@ "access.nodata": "No accesses. Please create an authorization first.", + "access.search.placeholder": "Search by access name ...", + "access.action.add": "Create authorization", "access.action.edit": "Edit authorization", "access.action.duplicate": "Duplicate authorization", diff --git a/ui/src/i18n/locales/en/nls.certificate.json b/ui/src/i18n/locales/en/nls.certificate.json index 7557daff..cca7fdb4 100644 --- a/ui/src/i18n/locales/en/nls.certificate.json +++ b/ui/src/i18n/locales/en/nls.certificate.json @@ -3,6 +3,8 @@ "certificate.nodata": "No certificates. Please create a workflow to generate certificates! 😀", + "certificate.search.placeholder": "Search by certificate name or serial number ...", + "certificate.action.view": "View certificate", "certificate.action.delete": "Delete certificate", "certificate.action.delete.confirm": "Are you sure to delete this certificate?", diff --git a/ui/src/i18n/locales/en/nls.common.json b/ui/src/i18n/locales/en/nls.common.json index 5b305561..d5e5508b 100644 --- a/ui/src/i18n/locales/en/nls.common.json +++ b/ui/src/i18n/locales/en/nls.common.json @@ -35,75 +35,75 @@ "common.errmsg.ip_invalid": "Please enter a valid IP address", "common.errmsg.url_invalid": "Please enter a valid URL", - "common.provider.acmehttpreq": "Http Request (ACME Proxy)", - "common.provider.aliyun": "Alibaba Cloud", - "common.provider.aliyun.alb": "Alibaba Cloud - ALB (Application Load Balancer)", - "common.provider.aliyun.cas_deploy": "Alibaba Cloud - via CAS (Certificate Management Service) Deployment Job", - "common.provider.aliyun.cdn": "Alibaba Cloud - CDN (Content Delivery Network)", - "common.provider.aliyun.clb": "Alibaba Cloud - CLB (Classic Load Balancer)", - "common.provider.aliyun.dcdn": "Alibaba Cloud - DCDN (Dynamic Route for Content Delivery Network)", - "common.provider.aliyun.dns": "Alibaba Cloud - DNS (Domain Name Service)", - "common.provider.aliyun.esa": "Alibaba Cloud - ESA (Edge Security Acceleration)", - "common.provider.aliyun.live": "Alibaba Cloud - ApsaraVideo Live", - "common.provider.aliyun.nlb": "Alibaba Cloud - NLB (Network Load Balancer)", - "common.provider.aliyun.oss": "Alibaba Cloud - OSS (Object Storage Service)", - "common.provider.aliyun.waf": "Alibaba Cloud - WAF (Web Application Firewall)", - "common.provider.aws": "AWS", - "common.provider.aws.cloudfront": "AWS - CloudFront", - "common.provider.aws.route53": "AWS - Route53", - "common.provider.azure": "Azure", - "common.provider.azure.dns": "Azure - DNS", - "common.provider.baiducloud": "Baidu Cloud", - "common.provider.baiducloud.cdn": "Baidu Cloud - CDN (Content Delivery Network)", - "common.provider.baotapanel": "BaoTa Panel", - "common.provider.baotapanel.site": "BaoTa Panel - Site", - "common.provider.byteplus": "BytePlus", - "common.provider.byteplus.cdn": "BytePlus - CDN (Content Delivery Network)", - "common.provider.cloudflare": "Cloudflare", - "common.provider.cloudns": "ClouDNS", - "common.provider.dogecloud": "Doge Cloud", - "common.provider.dogecloud.cdn": "Doge Cloud - CDN (Content Delivery Network)", - "common.provider.edgio": "Edgio", - "common.provider.edgio.applications": "Edgio - Applications", - "common.provider.gname": "GNAME", - "common.provider.godaddy": "GoDaddy", - "common.provider.huaweicloud": "Huawei Cloud", - "common.provider.huaweicloud.cdn": "Huawei Cloud - CDN (Content Delivery Network)", - "common.provider.huaweicloud.dns": "Huawei Cloud - DNS (Domain Name Service)", - "common.provider.huaweicloud.elb": "Huawei Cloud - ELB (Elastic Load Balance)", - "common.provider.kubernetes": "Kubernetes", - "common.provider.kubernetes.secret": "Kubernetes - Secret", - "common.provider.local": "Local deployment", - "common.provider.namedotcom": "Name.com", - "common.provider.namesilo": "NameSilo", - "common.provider.ns1": "NS1 (IBM NS1 Connect)", - "common.provider.powerdns": "PowerDNS", - "common.provider.qiniu": "Qiniu", - "common.provider.qiniu.cdn": "Qiniu - CDN (Content Delivery Network)", - "common.provider.qiniu.pili": "Qiniu - Pili", - "common.provider.rainyun": "Rain Yun", - "common.provider.ssh": "SSH deployment", - "common.provider.tencentcloud": "Tencent Cloud", - "common.provider.tencentcloud.cdn": "Tencent Cloud - CDN (Content Delivery Network)", - "common.provider.tencentcloud.clb": "Tencent Cloud - CLB (Cloud Load Balancer)", - "common.provider.tencentcloud.cos": "Tencent Cloud - COS (Cloud Object Storage)", - "common.provider.tencentcloud.css": "Tencent Cloud - CSS (Cloud Streaming Service)", - "common.provider.tencentcloud.dns": "Tencent Cloud - DNS (Domain Name Service)", - "common.provider.tencentcloud.ecdn": "Tencent Cloud - ECDN (Enterprise Content Delivery Network)", - "common.provider.tencentcloud.eo": "Tencent Cloud - EdgeOne", - "common.provider.tencentcloud.ssl_deploy": "Tencent Cloud - via SSL Certificate Service Deployment Job", - "common.provider.ucloud": "UCloud", - "common.provider.ucloud.ucdn": "UCloud - UCDN (UCloud Content Delivery Network)", - "common.provider.ucloud.us3": "UCloud - US3 (UCloud Object-based Storage)", - "common.provider.volcengine": "Volcengine", - "common.provider.volcengine.cdn": "Volcengine - CDN (Content Delivery Network)", - "common.provider.volcengine.clb": "Volcengine - CLB (Cloud Load Balancer)", - "common.provider.volcengine.dcdn": "Volcengine - DCDN (Dynamic Content Delivery Network)", - "common.provider.volcengine.dns": "Volcengine - DNS (Domain Name Service)", - "common.provider.volcengine.live": "Volcengine - Live", - "common.provider.volcengine.tos": "Volcengine - TOS (Tinder Object Storage)", - "common.provider.webhook": "Webhook", - "common.provider.westcn": "West.cn", + "provider.acmehttpreq": "Http Request (ACME Proxy)", + "provider.aliyun": "Alibaba Cloud", + "provider.aliyun.alb": "Alibaba Cloud - ALB (Application Load Balancer)", + "provider.aliyun.cas_deploy": "Alibaba Cloud - via CAS (Certificate Management Service) Deployment Job", + "provider.aliyun.cdn": "Alibaba Cloud - CDN (Content Delivery Network)", + "provider.aliyun.clb": "Alibaba Cloud - CLB (Classic Load Balancer)", + "provider.aliyun.dcdn": "Alibaba Cloud - DCDN (Dynamic Route for Content Delivery Network)", + "provider.aliyun.dns": "Alibaba Cloud - DNS (Domain Name Service)", + "provider.aliyun.esa": "Alibaba Cloud - ESA (Edge Security Acceleration)", + "provider.aliyun.live": "Alibaba Cloud - ApsaraVideo Live", + "provider.aliyun.nlb": "Alibaba Cloud - NLB (Network Load Balancer)", + "provider.aliyun.oss": "Alibaba Cloud - OSS (Object Storage Service)", + "provider.aliyun.waf": "Alibaba Cloud - WAF (Web Application Firewall)", + "provider.aws": "AWS", + "provider.aws.cloudfront": "AWS - CloudFront", + "provider.aws.route53": "AWS - Route53", + "provider.azure": "Azure", + "provider.azure.dns": "Azure - DNS", + "provider.baiducloud": "Baidu Cloud", + "provider.baiducloud.cdn": "Baidu Cloud - CDN (Content Delivery Network)", + "provider.baotapanel": "BaoTa Panel", + "provider.baotapanel.site": "BaoTa Panel - Site", + "provider.byteplus": "BytePlus", + "provider.byteplus.cdn": "BytePlus - CDN (Content Delivery Network)", + "provider.cloudflare": "Cloudflare", + "provider.cloudns": "ClouDNS", + "provider.dogecloud": "Doge Cloud", + "provider.dogecloud.cdn": "Doge Cloud - CDN (Content Delivery Network)", + "provider.edgio": "Edgio", + "provider.edgio.applications": "Edgio - Applications", + "provider.gname": "GNAME", + "provider.godaddy": "GoDaddy", + "provider.huaweicloud": "Huawei Cloud", + "provider.huaweicloud.cdn": "Huawei Cloud - CDN (Content Delivery Network)", + "provider.huaweicloud.dns": "Huawei Cloud - DNS (Domain Name Service)", + "provider.huaweicloud.elb": "Huawei Cloud - ELB (Elastic Load Balance)", + "provider.kubernetes": "Kubernetes", + "provider.kubernetes.secret": "Kubernetes - Secret", + "provider.local": "Local deployment", + "provider.namedotcom": "Name.com", + "provider.namesilo": "NameSilo", + "provider.ns1": "NS1 (IBM NS1 Connect)", + "provider.powerdns": "PowerDNS", + "provider.qiniu": "Qiniu", + "provider.qiniu.cdn": "Qiniu - CDN (Content Delivery Network)", + "provider.qiniu.pili": "Qiniu - Pili", + "provider.rainyun": "Rain Yun", + "provider.ssh": "SSH deployment", + "provider.tencentcloud": "Tencent Cloud", + "provider.tencentcloud.cdn": "Tencent Cloud - CDN (Content Delivery Network)", + "provider.tencentcloud.clb": "Tencent Cloud - CLB (Cloud Load Balancer)", + "provider.tencentcloud.cos": "Tencent Cloud - COS (Cloud Object Storage)", + "provider.tencentcloud.css": "Tencent Cloud - CSS (Cloud Streaming Service)", + "provider.tencentcloud.dns": "Tencent Cloud - DNS (Domain Name Service)", + "provider.tencentcloud.ecdn": "Tencent Cloud - ECDN (Enterprise Content Delivery Network)", + "provider.tencentcloud.eo": "Tencent Cloud - EdgeOne", + "provider.tencentcloud.ssl_deploy": "Tencent Cloud - via SSL Certificate Service Deployment Job", + "provider.ucloud": "UCloud", + "provider.ucloud.ucdn": "UCloud - UCDN (UCloud Content Delivery Network)", + "provider.ucloud.us3": "UCloud - US3 (UCloud Object-based Storage)", + "provider.volcengine": "Volcengine", + "provider.volcengine.cdn": "Volcengine - CDN (Content Delivery Network)", + "provider.volcengine.clb": "Volcengine - CLB (Cloud Load Balancer)", + "provider.volcengine.dcdn": "Volcengine - DCDN (Dynamic Content Delivery Network)", + "provider.volcengine.dns": "Volcengine - DNS (Domain Name Service)", + "provider.volcengine.live": "Volcengine - Live", + "provider.volcengine.tos": "Volcengine - TOS (Tinder Object Storage)", + "provider.webhook": "Webhook", + "provider.westcn": "West.cn", "common.notifier.bark": "Bark", "common.notifier.dingtalk": "DingTalk", diff --git a/ui/src/i18n/locales/en/nls.provider.json b/ui/src/i18n/locales/en/nls.provider.json new file mode 100644 index 00000000..5f9a97e1 --- /dev/null +++ b/ui/src/i18n/locales/en/nls.provider.json @@ -0,0 +1,95 @@ +{ + "provider.1panel": "1Panel", + "provider.acmehttpreq": "Http Request (ACME Proxy)", + "provider.aliyun": "Alibaba Cloud", + "provider.aliyun.alb": "Alibaba Cloud - ALB (Application Load Balancer)", + "provider.aliyun.cas_deploy": "Alibaba Cloud - via CAS (Certificate Management Service) Deployment Job", + "provider.aliyun.cdn": "Alibaba Cloud - CDN (Content Delivery Network)", + "provider.aliyun.clb": "Alibaba Cloud - CLB (Classic Load Balancer)", + "provider.aliyun.dcdn": "Alibaba Cloud - DCDN (Dynamic Route for Content Delivery Network)", + "provider.aliyun.dns": "Alibaba Cloud - DNS (Domain Name Service)", + "provider.aliyun.esa": "Alibaba Cloud - ESA (Edge Security Acceleration)", + "provider.aliyun.live": "Alibaba Cloud - ApsaraVideo Live", + "provider.aliyun.nlb": "Alibaba Cloud - NLB (Network Load Balancer)", + "provider.aliyun.oss": "Alibaba Cloud - OSS (Object Storage Service)", + "provider.aliyun.waf": "Alibaba Cloud - WAF (Web Application Firewall)", + "provider.akamai": "Akamai", + "provider.akamai.cdn": "Akamai - CDN (Content Delivery Network)", + "provider.aws": "AWS", + "provider.aws.cloudfront": "AWS - CloudFront", + "provider.aws.route53": "AWS - Route53", + "provider.azure": "Azure", + "provider.azure.dns": "Azure - DNS", + "provider.baiducloud": "Baidu Cloud", + "provider.baiducloud.cdn": "Baidu Cloud - CDN (Content Delivery Network)", + "provider.baishan": "Baishan", + "provider.baishan.cdn": "Baishan - CDN (Content Delivery Network)", + "provider.baotapanel": "BaoTa Panel", + "provider.baotapanel.site": "BaoTa Panel - Site", + "provider.byteplus": "BytePlus", + "provider.byteplus.cdn": "BytePlus - CDN (Content Delivery Network)", + "provider.cachefly": "Cachefly", + "provider.cdnfly": "Cdnfly", + "provider.cloudflare": "Cloudflare", + "provider.cloudns": "ClouDNS", + "provider.cmcccloud": "China Mobile Cloud (ECloud)", + "provider.ctcccloud": "China Telecom Cloud (State Cloud)", + "provider.cucccloud": "China Unicom Cloud", + "provider.dogecloud": "Doge Cloud", + "provider.dogecloud.cdn": "Doge Cloud - CDN (Content Delivery Network)", + "provider.edgio": "Edgio", + "provider.edgio.applications": "Edgio - Applications", + "provider.fastly": "Fastly", + "provider.gcore": "Gcore", + "provider.gname": "GNAME", + "provider.godaddy": "GoDaddy", + "provider.goedge": "GoEdge", + "provider.goedge.cdn": "GoEdge - CDN (Content Delivery Network)", + "provider.huaweicloud": "Huawei Cloud", + "provider.huaweicloud.cdn": "Huawei Cloud - CDN (Content Delivery Network)", + "provider.huaweicloud.dns": "Huawei Cloud - DNS (Domain Name Service)", + "provider.huaweicloud.elb": "Huawei Cloud - ELB (Elastic Load Balance)", + "provider.kubernetes": "Kubernetes", + "provider.kubernetes.secret": "Kubernetes - Secret", + "provider.local": "Local deployment", + "provider.namedotcom": "Name.com", + "provider.namesilo": "NameSilo", + "provider.ns1": "NS1 (IBM NS1 Connect)", + "provider.powerdns": "PowerDNS", + "provider.qiniu": "Qiniu", + "provider.qiniu.cdn": "Qiniu - CDN (Content Delivery Network)", + "provider.qiniu.pili": "Qiniu - Pili", + "provider.rainyun": "Rain Yun", + "provider.safeline": "SafeLine", + "provider.ssh": "SSH deployment", + "provider.tencentcloud": "Tencent Cloud", + "provider.tencentcloud.cdn": "Tencent Cloud - CDN (Content Delivery Network)", + "provider.tencentcloud.clb": "Tencent Cloud - CLB (Cloud Load Balancer)", + "provider.tencentcloud.cos": "Tencent Cloud - COS (Cloud Object Storage)", + "provider.tencentcloud.css": "Tencent Cloud - CSS (Cloud Streaming Service)", + "provider.tencentcloud.dns": "Tencent Cloud - DNS (Domain Name Service)", + "provider.tencentcloud.ecdn": "Tencent Cloud - ECDN (Enterprise Content Delivery Network)", + "provider.tencentcloud.eo": "Tencent Cloud - EdgeOne", + "provider.tencentcloud.ssl_deploy": "Tencent Cloud - via SSL Certificate Service Deployment Job", + "provider.ucloud": "UCloud", + "provider.ucloud.ucdn": "UCloud - UCDN (UCloud Content Delivery Network)", + "provider.ucloud.us3": "UCloud - US3 (UCloud Object-based Storage)", + "provider.volcengine": "Volcengine", + "provider.volcengine.cdn": "Volcengine - CDN (Content Delivery Network)", + "provider.volcengine.clb": "Volcengine - CLB (Cloud Load Balancer)", + "provider.volcengine.dcdn": "Volcengine - DCDN (Dynamic Content Delivery Network)", + "provider.volcengine.dns": "Volcengine - DNS (Domain Name Service)", + "provider.volcengine.live": "Volcengine - Live", + "provider.volcengine.tos": "Volcengine - TOS (Tinder Object Storage)", + "provider.webhook": "Webhook", + "provider.westcn": "West.cn", + + "provider.category.all": "All", + "provider.category.cdn": "CDN", + "provider.category.storage": "Storage", + "provider.category.loadbalance": "Load Balance", + "provider.category.firewall": "Firewall", + "provider.category.live": "Live", + "provider.category.website": "Website", + "provider.category.other": "Other" +} diff --git a/ui/src/i18n/locales/en/nls.workflow.json b/ui/src/i18n/locales/en/nls.workflow.json index 465923d1..b4f9d7e6 100644 --- a/ui/src/i18n/locales/en/nls.workflow.json +++ b/ui/src/i18n/locales/en/nls.workflow.json @@ -3,6 +3,8 @@ "workflow.nodata": "No workflows. Please create a workflow to generate certificates! 😀", + "workflow.search.placeholder": "Search by workflow name ...", + "workflow.action.create": "Create workflow", "workflow.action.edit": "Edit workflow", "workflow.action.delete": "Delete workflow", diff --git a/ui/src/i18n/locales/zh/index.ts b/ui/src/i18n/locales/zh/index.ts index 89675923..f038efc7 100644 --- a/ui/src/i18n/locales/zh/index.ts +++ b/ui/src/i18n/locales/zh/index.ts @@ -3,6 +3,7 @@ import nlsCertificate from "./nls.certificate.json"; import nlsCommon from "./nls.common.json"; import nlsDashboard from "./nls.dashboard.json"; import nlsLogin from "./nls.login.json"; +import nlsProvider from "./nls.provider.json"; import nlsSettings from "./nls.settings.json"; import nlsWorkflow from "./nls.workflow.json"; import nlsWorkflowNodes from "./nls.workflow.nodes.json"; @@ -13,6 +14,7 @@ export default Object.freeze({ ...nlsLogin, ...nlsDashboard, ...nlsSettings, + ...nlsProvider, ...nlsAccess, ...nlsWorkflow, ...nlsWorkflowNodes, diff --git a/ui/src/i18n/locales/zh/nls.access.json b/ui/src/i18n/locales/zh/nls.access.json index 3581a527..37ebb112 100644 --- a/ui/src/i18n/locales/zh/nls.access.json +++ b/ui/src/i18n/locales/zh/nls.access.json @@ -3,6 +3,8 @@ "access.nodata": "暂无授权信息,请先新建授权", + "access.search.placeholder": "按授权名称搜索……", + "access.action.add": "新建授权", "access.action.edit": "编辑授权", "access.action.duplicate": "复制授权", diff --git a/ui/src/i18n/locales/zh/nls.certificate.json b/ui/src/i18n/locales/zh/nls.certificate.json index b4e9bee0..3c55e660 100644 --- a/ui/src/i18n/locales/zh/nls.certificate.json +++ b/ui/src/i18n/locales/zh/nls.certificate.json @@ -3,6 +3,8 @@ "certificate.nodata": "暂无证书,新建一个工作流去生成证书吧~ 😀", + "certificate.search.placeholder": "按证书名称或序列号搜索……", + "certificate.action.view": "查看证书", "certificate.action.delete": "删除证书", "certificate.action.delete.confirm": "确定要删除此证书吗?", diff --git a/ui/src/i18n/locales/zh/nls.common.json b/ui/src/i18n/locales/zh/nls.common.json index cfc23730..7e9b9036 100644 --- a/ui/src/i18n/locales/zh/nls.common.json +++ b/ui/src/i18n/locales/zh/nls.common.json @@ -35,76 +35,6 @@ "common.errmsg.ip_invalid": "请输入正确的 IP 地址", "common.errmsg.url_invalid": "请输入正确的 URL 地址", - "common.provider.acmehttpreq": "Http Request (ACME Proxy)", - "common.provider.aliyun": "阿里云", - "common.provider.aliyun.alb": "阿里云 - 应用型负载均衡 ALB", - "common.provider.aliyun.cas_deploy": "阿里云 - 通过数字证书管理服务 CAS 创建部署任务", - "common.provider.aliyun.cdn": "阿里云 - 内容分发网络 CDN", - "common.provider.aliyun.clb": "阿里云 - 传统型负载均衡 CLB", - "common.provider.aliyun.dcdn": "阿里云 - 全站加速 DCDN", - "common.provider.aliyun.esa": "阿里云 - 边缘安全加速 ESA", - "common.provider.aliyun.dns": "阿里云 - 云解析 DNS", - "common.provider.aliyun.live": "阿里云 - 视频直播 Live", - "common.provider.aliyun.nlb": "阿里云 - 网络型负载均衡 NLB", - "common.provider.aliyun.oss": "阿里云 - 对象存储 OSS", - "common.provider.aliyun.waf": "阿里云 - Web 应用防火墙 WAF", - "common.provider.aws": "AWS", - "common.provider.aws.cloudfront": "AWS - CloudFront", - "common.provider.aws.route53": "AWS - Route53", - "common.provider.azure": "Azure", - "common.provider.azure.dns": "Azure - DNS", - "common.provider.baiducloud": "百度智能云", - "common.provider.baiducloud.cdn": "百度智能云 - 内容分发网络 CDN", - "common.provider.baotapanel": "宝塔面板", - "common.provider.baotapanel.site": "宝塔面板 - 网站", - "common.provider.byteplus": "BytePlus", - "common.provider.byteplus.cdn": "BytePlus - 内容分发网络 CDN", - "common.provider.cloudflare": "Cloudflare", - "common.provider.cloudns": "ClouDNS", - "common.provider.dogecloud": "多吉云", - "common.provider.dogecloud.cdn": "多吉云 - 内容分发网络 CDN", - "common.provider.edgio": "Edgio", - "common.provider.edgio.applications": "Edgio - Applications", - "common.provider.gname": "GNAME", - "common.provider.godaddy": "GoDaddy", - "common.provider.huaweicloud": "华为云", - "common.provider.huaweicloud.cdn": "华为云 - 内容分发网络 CDN", - "common.provider.huaweicloud.dns": "华为云 - 云解析 DNS", - "common.provider.huaweicloud.elb": "华为云 - 弹性负载均衡 ELB", - "common.provider.kubernetes": "Kubernetes", - "common.provider.kubernetes.secret": "Kubernetes - Secret", - "common.provider.local": "本地部署", - "common.provider.namedotcom": "Name.com", - "common.provider.namesilo": "NameSilo", - "common.provider.ns1": "NS1(IBM NS1 Connect)", - "common.provider.powerdns": "PowerDNS", - "common.provider.qiniu": "七牛云", - "common.provider.qiniu.cdn": "七牛云 - 内容分发网络 CDN", - "common.provider.qiniu.pili": "七牛云 - 视频直播 Pili", - "common.provider.rainyun": "雨云", - "common.provider.ssh": "SSH 部署", - "common.provider.tencentcloud": "腾讯云", - "common.provider.tencentcloud.cdn": "腾讯云 - 内容分发网络 CDN", - "common.provider.tencentcloud.clb": "腾讯云 - 负载均衡 CLB", - "common.provider.tencentcloud.cos": "腾讯云 - 对象存储 COS", - "common.provider.tencentcloud.css": "腾讯云 - 云直播 CSS", - "common.provider.tencentcloud.dns": "腾讯云 - 云解析 DNS", - "common.provider.tencentcloud.ecdn": "腾讯云 - 全站加速网络 ECDN", - "common.provider.tencentcloud.eo": "腾讯云 - 边缘安全加速平台 EdgeOne", - "common.provider.tencentcloud.ssl_deploy": "腾讯云 - 通过 SSL 证书服务创建部署任务", - "common.provider.ucloud": "优刻得", - "common.provider.ucloud.ucdn": "优刻得 - 内容分发 UCDN", - "common.provider.ucloud.us3": "优刻得 - 对象存储 US3", - "common.provider.volcengine": "火山引擎", - "common.provider.volcengine.cdn": "火山引擎 - 内容分发网络 CDN", - "common.provider.volcengine.clb": "火山引擎 - 负载均衡 CLB", - "common.provider.volcengine.dcdn": "火山引擎 - 全站加速 DCDN", - "common.provider.volcengine.dns": "火山引擎 - 云解析 DNS", - "common.provider.volcengine.live": "火山引擎 - 视频直播 Live", - "common.provider.volcengine.tos": "火山引擎 - 对象存储 TOS", - "common.provider.webhook": "Webhook", - "common.provider.westcn": "西部数码", - "common.notifier.bark": "Bark", "common.notifier.dingtalk": "钉钉", "common.notifier.email": "邮件", diff --git a/ui/src/i18n/locales/zh/nls.provider.json b/ui/src/i18n/locales/zh/nls.provider.json new file mode 100644 index 00000000..a4146670 --- /dev/null +++ b/ui/src/i18n/locales/zh/nls.provider.json @@ -0,0 +1,95 @@ +{ + "provider.1panel": "1Panel", + "provider.acmehttpreq": "Http Request (ACME Proxy)", + "provider.aliyun": "阿里云", + "provider.aliyun.alb": "阿里云 - 应用型负载均衡 ALB", + "provider.aliyun.cas_deploy": "阿里云 - 通过数字证书管理服务 CAS 创建部署任务", + "provider.aliyun.cdn": "阿里云 - 内容分发网络 CDN", + "provider.aliyun.clb": "阿里云 - 传统型负载均衡 CLB", + "provider.aliyun.dcdn": "阿里云 - 全站加速 DCDN", + "provider.aliyun.esa": "阿里云 - 边缘安全加速 ESA", + "provider.aliyun.dns": "阿里云 - 云解析 DNS", + "provider.aliyun.live": "阿里云 - 视频直播 Live", + "provider.aliyun.nlb": "阿里云 - 网络型负载均衡 NLB", + "provider.aliyun.oss": "阿里云 - 对象存储 OSS", + "provider.aliyun.waf": "阿里云 - Web 应用防火墙 WAF", + "provider.akamai": "Akamai", + "provider.akamai.cdn": "Akamai - 内容分发网络 CDN", + "provider.aws": "AWS", + "provider.aws.cloudfront": "AWS - CloudFront", + "provider.aws.route53": "AWS - Route53", + "provider.azure": "Azure", + "provider.azure.dns": "Azure - DNS", + "provider.baiducloud": "百度智能云", + "provider.baiducloud.cdn": "百度智能云 - 内容分发网络 CDN", + "provider.baishan": "白山云", + "provider.baishan.cdn": "白山云 - 内容分发网络 CDN", + "provider.baotapanel": "宝塔面板", + "provider.baotapanel.site": "宝塔面板 - 网站", + "provider.byteplus": "BytePlus", + "provider.byteplus.cdn": "BytePlus - 内容分发网络 CDN", + "provider.cachefly": "Cachefly", + "provider.cdnfly": "Cdnfly", + "provider.cloudflare": "Cloudflare", + "provider.cloudns": "ClouDNS", + "provider.cmcccloud": "移动云", + "provider.ctcccloud": "联通云", + "provider.cucccloud": "天翼云", + "provider.dogecloud": "多吉云", + "provider.dogecloud.cdn": "多吉云 - 内容分发网络 CDN", + "provider.edgio": "Edgio", + "provider.edgio.applications": "Edgio - Applications", + "provider.fastly": "Fastly", + "provider.gcore": "Gcore", + "provider.gname": "GNAME", + "provider.godaddy": "GoDaddy", + "provider.goedge": "GoEdge", + "provider.goedge.cdn": "GoEdge - 内容分发网络 CDN", + "provider.huaweicloud": "华为云", + "provider.huaweicloud.cdn": "华为云 - 内容分发网络 CDN", + "provider.huaweicloud.dns": "华为云 - 云解析 DNS", + "provider.huaweicloud.elb": "华为云 - 弹性负载均衡 ELB", + "provider.kubernetes": "Kubernetes", + "provider.kubernetes.secret": "Kubernetes - Secret", + "provider.local": "本地部署", + "provider.namedotcom": "Name.com", + "provider.namesilo": "NameSilo", + "provider.ns1": "NS1(IBM NS1 Connect)", + "provider.powerdns": "PowerDNS", + "provider.qiniu": "七牛云", + "provider.qiniu.cdn": "七牛云 - 内容分发网络 CDN", + "provider.qiniu.pili": "七牛云 - 视频直播 Pili", + "provider.rainyun": "雨云", + "provider.safeline": "雷池", + "provider.ssh": "SSH 部署", + "provider.tencentcloud": "腾讯云", + "provider.tencentcloud.cdn": "腾讯云 - 内容分发网络 CDN", + "provider.tencentcloud.clb": "腾讯云 - 负载均衡 CLB", + "provider.tencentcloud.cos": "腾讯云 - 对象存储 COS", + "provider.tencentcloud.css": "腾讯云 - 云直播 CSS", + "provider.tencentcloud.dns": "腾讯云 - 云解析 DNS", + "provider.tencentcloud.ecdn": "腾讯云 - 全站加速网络 ECDN", + "provider.tencentcloud.eo": "腾讯云 - 边缘安全加速平台 EdgeOne", + "provider.tencentcloud.ssl_deploy": "腾讯云 - 通过 SSL 证书服务创建部署任务", + "provider.ucloud": "优刻得", + "provider.ucloud.ucdn": "优刻得 - 内容分发 UCDN", + "provider.ucloud.us3": "优刻得 - 对象存储 US3", + "provider.volcengine": "火山引擎", + "provider.volcengine.cdn": "火山引擎 - 内容分发网络 CDN", + "provider.volcengine.clb": "火山引擎 - 负载均衡 CLB", + "provider.volcengine.dcdn": "火山引擎 - 全站加速 DCDN", + "provider.volcengine.dns": "火山引擎 - 云解析 DNS", + "provider.volcengine.live": "火山引擎 - 视频直播 Live", + "provider.volcengine.tos": "火山引擎 - 对象存储 TOS", + "provider.webhook": "Webhook", + "provider.westcn": "西部数码", + + "provider.category.all": "全部", + "provider.category.cdn": "CDN", + "provider.category.storage": "存储", + "provider.category.loadbalance": "负载均衡", + "provider.category.firewall": "防火墙", + "provider.category.live": "直播", + "provider.category.website": "网站", + "provider.category.other": "其他" +} diff --git a/ui/src/i18n/locales/zh/nls.workflow.json b/ui/src/i18n/locales/zh/nls.workflow.json index 31c726f9..46cdc228 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.json +++ b/ui/src/i18n/locales/zh/nls.workflow.json @@ -3,6 +3,8 @@ "workflow.nodata": "暂无工作流,请先新建工作流", + "workflow.search.placeholder": "按工作流名称搜索……", + "workflow.action.create": "新建工作流", "workflow.action.edit": "编辑工作流", "workflow.action.delete": "删除工作流", diff --git a/ui/src/i18n/locales/zh/nls.workflow.runs.json b/ui/src/i18n/locales/zh/nls.workflow.runs.json index 4a57e4ca..e3928f24 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.runs.json +++ b/ui/src/i18n/locales/zh/nls.workflow.runs.json @@ -3,7 +3,7 @@ "workflow_run.action.cancel": "取消执行", "workflow_run.action.cancel.confirm": "确定要取消此执行吗?请注意此操作仅中止流程,但不会回滚已执行的节点。", "workflow_run.action.delete": "删除执行", - "workflow_run.action.delete.confirm": "确定要删除此执行吗?请注意此操作仅清除日志历史,但不会影响各节点的执行结果和签发的证书。", + "workflow_run.action.delete.confirm": "确定要删除此执行吗?请注意此操作仅清除日志历史,但不会影响签发的证书。", "workflow_run.props.id": "ID", "workflow_run.props.status": "状态", diff --git a/ui/src/pages/accesses/AccessList.tsx b/ui/src/pages/accesses/AccessList.tsx index 53f10d52..66cdeab8 100644 --- a/ui/src/pages/accesses/AccessList.tsx +++ b/ui/src/pages/accesses/AccessList.tsx @@ -1,14 +1,16 @@ import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; +import { useSearchParams } from "react-router-dom"; import { DeleteOutlined as DeleteOutlinedIcon, EditOutlined as EditOutlinedIcon, PlusOutlined as PlusOutlinedIcon, + ReloadOutlined as ReloadOutlinedIcon, SnippetsOutlined as SnippetsOutlinedIcon, } from "@ant-design/icons"; import { PageHeader } from "@ant-design/pro-components"; import { useRequest } from "ahooks"; -import { Avatar, Button, Empty, Modal, Space, Table, type TableProps, Tooltip, Typography, notification } from "antd"; +import { Avatar, Button, Card, Empty, Flex, Input, Modal, Space, Table, type TableProps, Tooltip, Typography, notification } from "antd"; import dayjs from "dayjs"; import { ClientResponseError } from "pocketbase"; @@ -20,6 +22,8 @@ import { useAccessesStore } from "@/stores/access"; import { getErrMsg } from "@/utils/error"; const AccessList = () => { + const [searchParams] = useSearchParams(); + const { t } = useTranslation(); const [modalApi, ModelContextHolder] = Modal.useModal(); @@ -78,7 +82,7 @@ const AccessList = () => { fixed: "right", width: 120, render: (_, record) => ( - + { }} /> - + ), }, ]; const [tableData, setTableData] = useState([]); const [tableTotal, setTableTotal] = useState(0); + const [filters, setFilters] = useState>(() => { + return { + keyword: searchParams.get("keyword"), + }; + }); + const [page, setPage] = useState(1); const [pageSize, setPageSize] = useState(10); @@ -134,14 +144,21 @@ const AccessList = () => { () => { const startIndex = (page - 1) * pageSize; const endIndex = startIndex + pageSize; - const items = accesses.slice(startIndex, endIndex); + const list = accesses.filter((e) => { + const keyword = (filters["keyword"] as string | undefined)?.trim(); + if (keyword) { + return e.name.includes(keyword); + } + + return true; + }); return Promise.resolve({ - items, - totalItems: accesses.length, + items: list.slice(startIndex, endIndex), + totalItems: list.length, }); }, { - refreshDeps: [accesses, page, pageSize], + refreshDeps: [accesses, filters, page, pageSize], onSuccess: (res) => { setTableData(res.items); setTableTotal(res.totalItems); @@ -149,6 +166,16 @@ const AccessList = () => { } ); + const handleSearch = (value: string) => { + setFilters((prev) => ({ ...prev, keyword: value })); + }; + + const handleReloadClick = () => { + if (loading) return; + + fetchAccesses(); + }; + const handleDeleteClick = async (data: AccessModel) => { modalApi.confirm({ title: t("access.action.delete"), @@ -186,30 +213,43 @@ const AccessList = () => { ]} /> - - columns={tableColumns} - dataSource={tableData} - loading={!loadedAtOnce || loading} - locale={{ - emptyText: , - }} - pagination={{ - current: page, - pageSize: pageSize, - total: tableTotal, - showSizeChanger: true, - onChange: (page: number, pageSize: number) => { - setPage(page); - setPageSize(pageSize); - }, - onShowSizeChange: (page: number, pageSize: number) => { - setPage(page); - setPageSize(pageSize); - }, - }} - rowKey={(record) => record.id} - scroll={{ x: "max(100%, 960px)" }} - /> + +
+ +
+ +
+
+
+
+
+ + + columns={tableColumns} + dataSource={tableData} + loading={!loadedAtOnce || loading} + locale={{ + emptyText: , + }} + pagination={{ + current: page, + pageSize: pageSize, + total: tableTotal, + showSizeChanger: true, + onChange: (page: number, pageSize: number) => { + setPage(page); + setPageSize(pageSize); + }, + onShowSizeChange: (page: number, pageSize: number) => { + setPage(page); + setPageSize(pageSize); + }, + }} + rowKey={(record) => record.id} + scroll={{ x: "max(100%, 960px)" }} + /> +
); }; diff --git a/ui/src/pages/certificates/CertificateList.tsx b/ui/src/pages/certificates/CertificateList.tsx index 4c1b9684..265f0185 100644 --- a/ui/src/pages/certificates/CertificateList.tsx +++ b/ui/src/pages/certificates/CertificateList.tsx @@ -1,10 +1,28 @@ import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useNavigate, useSearchParams } from "react-router-dom"; -import { DeleteOutlined as DeleteOutlinedIcon, SelectOutlined as SelectOutlinedIcon } from "@ant-design/icons"; +import { DeleteOutlined as DeleteOutlinedIcon, ReloadOutlined as ReloadOutlinedIcon, SelectOutlined as SelectOutlinedIcon } from "@ant-design/icons"; import { PageHeader } from "@ant-design/pro-components"; import { useRequest } from "ahooks"; -import { Button, Divider, Empty, Menu, type MenuProps, Modal, Radio, Space, Table, type TableProps, Tooltip, Typography, notification, theme } from "antd"; +import { + Button, + Card, + Divider, + Empty, + Flex, + Input, + Menu, + type MenuProps, + Modal, + Radio, + Space, + Table, + type TableProps, + Tooltip, + Typography, + notification, + theme, +} from "antd"; import dayjs from "dayjs"; import { ClientResponseError } from "pocketbase"; @@ -169,7 +187,7 @@ const CertificateList = () => { fixed: "right", width: 120, render: (_, record) => ( - + { - + @@ -303,7 +303,7 @@ const WorkflowDetail = () => { >